• Home
  • Raw
  • Download

Lines Matching full:us

479 static int ene_sd_init(struct us_data *us);
480 static int ene_ms_init(struct us_data *us);
481 static int ene_load_bincode(struct us_data *us, unsigned char flag);
492 static int ene_send_scsi_cmd(struct us_data *us, u8 fDir, void *buf, int use_sg) in ene_send_scsi_cmd() argument
494 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ene_send_scsi_cmd()
495 struct bulk_cs_wrap *bcs = (struct bulk_cs_wrap *) us->iobuf; in ene_send_scsi_cmd()
502 /* usb_stor_dbg(us, "transport --- ene_send_scsi_cmd\n"); */ in ene_send_scsi_cmd()
504 result = usb_stor_bulk_transfer_buf(us, us->send_bulk_pipe, in ene_send_scsi_cmd()
507 usb_stor_dbg(us, "send cmd to out endpoint fail ---\n"); in ene_send_scsi_cmd()
515 pipe = us->recv_bulk_pipe; in ene_send_scsi_cmd()
517 pipe = us->send_bulk_pipe; in ene_send_scsi_cmd()
521 result = usb_stor_bulk_srb(us, pipe, us->srb); in ene_send_scsi_cmd()
523 result = usb_stor_bulk_transfer_sg(us, pipe, buf, in ene_send_scsi_cmd()
527 usb_stor_dbg(us, "data transfer fail ---\n"); in ene_send_scsi_cmd()
533 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, bcs, in ene_send_scsi_cmd()
537 usb_stor_dbg(us, "Received 0-length CSW; retrying...\n"); in ene_send_scsi_cmd()
538 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in ene_send_scsi_cmd()
544 usb_stor_dbg(us, "Attempting to get CSW (2nd try)...\n"); in ene_send_scsi_cmd()
545 result = usb_stor_bulk_transfer_buf(us, us->recv_bulk_pipe, in ene_send_scsi_cmd()
557 * was really transferred and what the device tells us in ene_send_scsi_cmd()
559 if (residue && !(us->fflags & US_FL_IGNORE_RESIDUE)) { in ene_send_scsi_cmd()
561 if (us->srb != NULL) in ene_send_scsi_cmd()
562 scsi_set_resid(us->srb, max(scsi_get_resid(us->srb), in ene_send_scsi_cmd()
572 static int do_scsi_request_sense(struct us_data *us, struct scsi_cmnd *srb) in do_scsi_request_sense() argument
574 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in do_scsi_request_sense()
588 static int do_scsi_inquiry(struct us_data *us, struct scsi_cmnd *srb) in do_scsi_inquiry() argument
600 static int sd_scsi_test_unit_ready(struct us_data *us, struct scsi_cmnd *srb) in sd_scsi_test_unit_ready() argument
602 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in sd_scsi_test_unit_ready()
607 ene_sd_init(us); in sd_scsi_test_unit_ready()
614 static int sd_scsi_mode_sense(struct us_data *us, struct scsi_cmnd *srb) in sd_scsi_mode_sense() argument
616 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in sd_scsi_mode_sense()
633 static int sd_scsi_read_capacity(struct us_data *us, struct scsi_cmnd *srb) in sd_scsi_read_capacity() argument
640 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in sd_scsi_read_capacity()
642 usb_stor_dbg(us, "sd_scsi_read_capacity\n"); in sd_scsi_read_capacity()
655 usb_stor_dbg(us, "bl_len = %x\n", bl_len); in sd_scsi_read_capacity()
656 usb_stor_dbg(us, "bl_num = %x\n", bl_num); in sd_scsi_read_capacity()
673 static int sd_scsi_read(struct us_data *us, struct scsi_cmnd *srb) in sd_scsi_read() argument
677 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in sd_scsi_read()
678 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in sd_scsi_read()
689 result = ene_load_bincode(us, SD_RW_PATTERN); in sd_scsi_read()
691 usb_stor_dbg(us, "Load SD RW pattern Fail !!\n"); in sd_scsi_read()
709 result = ene_send_scsi_cmd(us, FDIR_READ, scsi_sglist(srb), 1); in sd_scsi_read()
713 static int sd_scsi_write(struct us_data *us, struct scsi_cmnd *srb) in sd_scsi_write() argument
717 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in sd_scsi_write()
718 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in sd_scsi_write()
729 result = ene_load_bincode(us, SD_RW_PATTERN); in sd_scsi_write()
731 usb_stor_dbg(us, "Load SD RW pattern Fail !!\n"); in sd_scsi_write()
749 result = ene_send_scsi_cmd(us, FDIR_WRITE, scsi_sglist(srb), 1); in sd_scsi_write()
757 static int ms_lib_set_logicalpair(struct us_data *us, u16 logblk, u16 phyblk) in ms_lib_set_logicalpair() argument
759 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_set_logicalpair()
770 static int ms_lib_set_logicalblockmark(struct us_data *us, u16 phyblk, u16 mark) in ms_lib_set_logicalblockmark() argument
772 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_set_logicalblockmark()
782 static int ms_lib_set_initialerrorblock(struct us_data *us, u16 phyblk) in ms_lib_set_initialerrorblock() argument
784 return ms_lib_set_logicalblockmark(us, phyblk, MS_LB_INITIAL_ERROR); in ms_lib_set_initialerrorblock()
787 static int ms_lib_set_bootblockmark(struct us_data *us, u16 phyblk) in ms_lib_set_bootblockmark() argument
789 return ms_lib_set_logicalblockmark(us, phyblk, MS_LB_BOOT_BLOCK); in ms_lib_set_bootblockmark()
792 static int ms_lib_free_logicalmap(struct us_data *us) in ms_lib_free_logicalmap() argument
794 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_free_logicalmap()
805 static int ms_lib_alloc_logicalmap(struct us_data *us) in ms_lib_alloc_logicalmap() argument
808 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_alloc_logicalmap()
818 ms_lib_free_logicalmap(us); in ms_lib_alloc_logicalmap()
831 static void ms_lib_clear_writebuf(struct us_data *us) in ms_lib_clear_writebuf() argument
834 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_clear_writebuf()
852 static int ms_count_freeblock(struct us_data *us, u16 PhyBlock) in ms_count_freeblock() argument
855 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_count_freeblock()
871 static int ms_read_readpage(struct us_data *us, u32 PhyBlockAddr, in ms_read_readpage() argument
874 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ms_read_readpage()
875 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_read_readpage()
880 result = ene_load_bincode(us, MS_RW_PATTERN); in ms_read_readpage()
898 result = ene_send_scsi_cmd(us, FDIR_READ, PageBuf, 0); in ms_read_readpage()
917 result = ene_send_scsi_cmd(us, FDIR_READ, bbuf, 0); in ms_read_readpage()
933 static int ms_lib_process_bootblock(struct us_data *us, u16 PhyBlock, u8 *PageData) in ms_lib_process_bootblock() argument
941 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_process_bootblock()
980 if (ms_lib_alloc_logicalmap(us)) in ms_lib_process_bootblock()
984 ms_lib_set_bootblockmark(us, PhyBlock); in ms_lib_process_bootblock()
1014 switch (ms_read_readpage(us, PhyBlock, PageNumber, (u32 *)PageBuffer, &ExtraData)) { in ms_lib_process_bootblock()
1029 ms_lib_set_initialerrorblock(us, phyblk); in ms_lib_process_bootblock()
1040 …switch (ms_read_readpage(us, PhyBlock, (u8)(EntryOffset / MS_BYTES_PER_PAGE + 1), (u32 *)PageBuffe… in ms_lib_process_bootblock()
1064 ms_lib_free_logicalmap(us); in ms_lib_process_bootblock()
1072 static void ms_lib_free_writebuf(struct us_data *us) in ms_lib_free_writebuf() argument
1074 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_free_writebuf()
1093 static void ms_lib_free_allocatedarea(struct us_data *us) in ms_lib_free_allocatedarea() argument
1095 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_free_allocatedarea()
1097 ms_lib_free_writebuf(us); /* Free MS_Lib.pagemap */ in ms_lib_free_allocatedarea()
1098 ms_lib_free_logicalmap(us); /* kfree MS_Lib.Phy2LogMap and MS_Lib.Log2PhyMap */ in ms_lib_free_allocatedarea()
1100 /* set struct us point flag to 0 */ in ms_lib_free_allocatedarea()
1114 static int ms_lib_alloc_writebuf(struct us_data *us) in ms_lib_alloc_writebuf() argument
1116 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_alloc_writebuf()
1128 ms_lib_free_writebuf(us); in ms_lib_alloc_writebuf()
1132 ms_lib_clear_writebuf(us); in ms_lib_alloc_writebuf()
1137 static int ms_lib_force_setlogical_pair(struct us_data *us, u16 logblk, u16 phyblk) in ms_lib_force_setlogical_pair() argument
1139 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_force_setlogical_pair()
1154 static int ms_read_copyblock(struct us_data *us, u16 oldphy, u16 newphy, in ms_read_copyblock() argument
1157 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ms_read_copyblock()
1160 result = ene_load_bincode(us, MS_RW_PATTERN); in ms_read_copyblock()
1180 result = ene_send_scsi_cmd(us, FDIR_WRITE, buf, 0); in ms_read_copyblock()
1187 static int ms_read_eraseblock(struct us_data *us, u32 PhyBlockAddr) in ms_read_eraseblock() argument
1189 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ms_read_eraseblock()
1193 result = ene_load_bincode(us, MS_RW_PATTERN); in ms_read_eraseblock()
1207 result = ene_send_scsi_cmd(us, FDIR_READ, NULL, 0); in ms_read_eraseblock()
1214 static int ms_lib_check_disableblock(struct us_data *us, u16 PhyBlock) in ms_lib_check_disableblock() argument
1220 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_check_disableblock()
1228 ms_read_readpage(us, PhyBlock, 1, (u32 *)PageBuf, &extdat); in ms_lib_check_disableblock()
1245 static int ms_lib_setacquired_errorblock(struct us_data *us, u16 phyblk) in ms_lib_setacquired_errorblock() argument
1248 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_setacquired_errorblock()
1264 static int ms_lib_overwrite_extra(struct us_data *us, u32 PhyBlockAddr, in ms_lib_overwrite_extra() argument
1267 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ms_lib_overwrite_extra()
1270 result = ene_load_bincode(us, MS_RW_PATTERN); in ms_lib_overwrite_extra()
1289 result = ene_send_scsi_cmd(us, FDIR_READ, NULL, 0); in ms_lib_overwrite_extra()
1296 static int ms_lib_error_phyblock(struct us_data *us, u16 phyblk) in ms_lib_error_phyblock() argument
1298 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_error_phyblock()
1303 ms_lib_setacquired_errorblock(us, phyblk); in ms_lib_error_phyblock()
1306 return ms_lib_overwrite_extra(us, phyblk, 0, (u8)(~MS_REG_OVR_BKST & BYTE_MASK)); in ms_lib_error_phyblock()
1311 static int ms_lib_erase_phyblock(struct us_data *us, u16 phyblk) in ms_lib_erase_phyblock() argument
1314 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_erase_phyblock()
1327 switch (ms_read_eraseblock(us, phyblk)) { in ms_lib_erase_phyblock()
1333 ms_lib_error_phyblock(us, phyblk); in ms_lib_erase_phyblock()
1337 …fo, MS_LIB_CTRL_RDONLY); /* MS_LibCtrlSet will used by ENE_MSInit ,need check, and why us to info*/ in ms_lib_erase_phyblock()
1338 ms_lib_setacquired_errorblock(us, phyblk); in ms_lib_erase_phyblock()
1343 ms_lib_setacquired_errorblock(us, phyblk); in ms_lib_erase_phyblock()
1348 static int ms_lib_read_extra(struct us_data *us, u32 PhyBlock, in ms_lib_read_extra() argument
1351 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ms_lib_read_extra()
1352 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_read_extra()
1368 result = ene_send_scsi_cmd(us, FDIR_READ, bbuf, 0); in ms_lib_read_extra()
1383 static int ms_libsearch_block_from_physical(struct us_data *us, u16 phyblk) in ms_libsearch_block_from_physical() argument
1387 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_libsearch_block_from_physical()
1400 switch (ms_lib_read_extra(us, blk, 0, &extdat)) { in ms_libsearch_block_from_physical()
1410 ms_lib_setacquired_errorblock(us, blk); in ms_libsearch_block_from_physical()
1415 ms_lib_setacquired_errorblock(us, blk); in ms_libsearch_block_from_physical()
1419 switch (ms_lib_erase_phyblock(us, blk)) { in ms_libsearch_block_from_physical()
1426 ms_lib_error_phyblock(us, blk); in ms_libsearch_block_from_physical()
1434 static int ms_libsearch_block_from_logical(struct us_data *us, u16 logblk) in ms_libsearch_block_from_logical() argument
1437 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_libsearch_block_from_logical()
1449 return ms_libsearch_block_from_physical(us, phyblk); in ms_libsearch_block_from_logical()
1452 static int ms_scsi_test_unit_ready(struct us_data *us, struct scsi_cmnd *srb) in ms_scsi_test_unit_ready() argument
1454 struct ene_ub6250_info *info = (struct ene_ub6250_info *)(us->extra); in ms_scsi_test_unit_ready()
1460 ene_ms_init(us); in ms_scsi_test_unit_ready()
1467 static int ms_scsi_mode_sense(struct us_data *us, struct scsi_cmnd *srb) in ms_scsi_mode_sense() argument
1469 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_scsi_mode_sense()
1485 static int ms_scsi_read_capacity(struct us_data *us, struct scsi_cmnd *srb) in ms_scsi_read_capacity() argument
1492 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_scsi_read_capacity()
1494 usb_stor_dbg(us, "ms_scsi_read_capacity\n"); in ms_scsi_read_capacity()
1502 usb_stor_dbg(us, "bl_len = %x\n", bl_len); in ms_scsi_read_capacity()
1503 usb_stor_dbg(us, "bl_num = %x\n", bl_num); in ms_scsi_read_capacity()
1533 static int ms_lib_read_extrablock(struct us_data *us, u32 PhyBlock, in ms_lib_read_extrablock() argument
1536 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ms_lib_read_extrablock()
1552 result = ene_send_scsi_cmd(us, FDIR_READ, buf, 0); in ms_lib_read_extrablock()
1559 static int ms_lib_scan_logicalblocknumber(struct us_data *us, u16 btBlk1st) in ms_lib_scan_logicalblocknumber() argument
1565 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_lib_scan_logicalblocknumber()
1580 ms_lib_read_extrablock(us, PhyBlock, 0, 0x80, in ms_lib_scan_logicalblocknumber()
1592 ms_lib_setacquired_errorblock(us, PhyBlock); in ms_lib_scan_logicalblocknumber()
1597 ms_lib_erase_phyblock(us, PhyBlock); in ms_lib_scan_logicalblocknumber()
1603 ms_lib_erase_phyblock(us, PhyBlock); in ms_lib_scan_logicalblocknumber()
1611 ms_lib_set_logicalpair(us, extdat.logadr, PhyBlock); in ms_lib_scan_logicalblocknumber()
1612 if (ms_lib_check_disableblock(us, btBlk1st)) { in ms_lib_scan_logicalblocknumber()
1613 ms_lib_set_logicalpair(us, extdat.logadr, newblk); in ms_lib_scan_logicalblocknumber()
1618 ms_lib_read_extra(us, newblk, 0, &extdat); in ms_lib_scan_logicalblocknumber()
1620 ms_lib_erase_phyblock(us, PhyBlock); in ms_lib_scan_logicalblocknumber()
1623 ms_lib_erase_phyblock(us, newblk); in ms_lib_scan_logicalblocknumber()
1627 ms_lib_set_logicalpair(us, extdat.logadr, PhyBlock); in ms_lib_scan_logicalblocknumber()
1636 static int ms_scsi_read(struct us_data *us, struct scsi_cmnd *srb) in ms_scsi_read() argument
1640 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ms_scsi_read()
1641 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_scsi_read()
1652 result = ene_load_bincode(us, MSP_RW_PATTERN); in ms_scsi_read()
1654 usb_stor_dbg(us, "Load MPS RW pattern Fail !!\n"); in ms_scsi_read()
1670 result = ene_send_scsi_cmd(us, FDIR_READ, scsi_sglist(srb), 1); in ms_scsi_read()
1683 result = ene_load_bincode(us, MS_RW_PATTERN); in ms_scsi_read()
1714 result = ene_send_scsi_cmd(us, FDIR_READ, buf+offset, 0); in ms_scsi_read()
1735 static int ms_scsi_write(struct us_data *us, struct scsi_cmnd *srb) in ms_scsi_write() argument
1738 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ms_scsi_write()
1740 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_scsi_write()
1753 result = ene_load_bincode(us, MSP_RW_PATTERN); in ms_scsi_write()
1771 result = ene_send_scsi_cmd(us, FDIR_WRITE, scsi_sglist(srb), 1); in ms_scsi_write()
1784 result = ene_load_bincode(us, MS_RW_PATTERN); in ms_scsi_write()
1800 oldphy = ms_libconv_to_physical(info, PhyBlockAddr); /* need check us <-> info */ in ms_scsi_write()
1801 newphy = ms_libsearch_block_from_logical(us, PhyBlockAddr); in ms_scsi_write()
1803 result = ms_read_copyblock(us, oldphy, newphy, PhyBlockAddr, PageNum, buf+offset, len); in ms_scsi_write()
1812 ms_lib_force_setlogical_pair(us, PhyBlockAddr, newphy); in ms_scsi_write()
1831 static int ene_get_card_type(struct us_data *us, u16 index, void *buf) in ene_get_card_type() argument
1833 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ene_get_card_type()
1844 result = ene_send_scsi_cmd(us, FDIR_READ, buf, 0); in ene_get_card_type()
1848 static int ene_get_card_status(struct us_data *us, u8 *buf) in ene_get_card_status() argument
1852 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ene_get_card_status()
1854 /*usb_stor_dbg(us, "transport --- ENE_ReadSDReg\n");*/ in ene_get_card_status()
1878 static int ene_load_bincode(struct us_data *us, unsigned char flag) in ene_load_bincode() argument
1885 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ene_load_bincode()
1886 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ene_load_bincode()
1894 usb_stor_dbg(us, "SD_INIT1_PATTERN\n"); in ene_load_bincode()
1898 usb_stor_dbg(us, "SD_INIT2_PATTERN\n"); in ene_load_bincode()
1902 usb_stor_dbg(us, "SD_RW_PATTERN\n"); in ene_load_bincode()
1907 usb_stor_dbg(us, "MS_INIT_PATTERN\n"); in ene_load_bincode()
1911 usb_stor_dbg(us, "MSP_RW_PATTERN\n"); in ene_load_bincode()
1915 usb_stor_dbg(us, "MS_RW_PATTERN\n"); in ene_load_bincode()
1919 usb_stor_dbg(us, "----------- Unknown PATTERN ----------\n"); in ene_load_bincode()
1923 err = request_firmware(&sd_fw, fw_name, &us->pusb_dev->dev); in ene_load_bincode()
1925 usb_stor_dbg(us, "load firmware %s failed\n", fw_name); in ene_load_bincode()
1938 result = ene_send_scsi_cmd(us, FDIR_WRITE, buf, 0); in ene_load_bincode()
1939 if (us->srb != NULL) in ene_load_bincode()
1940 scsi_set_resid(us->srb, 0); in ene_load_bincode()
1949 static int ms_card_init(struct us_data *us) in ms_card_init() argument
1957 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ms_card_init()
1961 ms_lib_free_allocatedarea(us); /* Clean buffer and set struct us_data flag to 0 */ in ms_card_init()
1976 switch (ms_read_readpage(us, TmpBlock, 0, (u32 *)PageBuffer0, &extdat)) { in ms_card_init()
2018 result = ms_lib_process_bootblock(us, btBlk1st, PageBuffer1); in ms_card_init()
2022 result = ms_lib_process_bootblock(us, btBlk2nd, PageBuffer0); in ms_card_init()
2041 result = ms_lib_scan_logicalblocknumber(us, btBlk1st); in ms_card_init()
2048 if (ms_count_freeblock(us, TmpBlock) == 0) { in ms_card_init()
2055 if (ms_lib_alloc_writebuf(us)) { in ms_card_init()
2070 static int ene_ms_init(struct us_data *us) in ene_ms_init() argument
2072 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ene_ms_init()
2075 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ene_ms_init()
2082 result = ene_load_bincode(us, MS_INIT_PATTERN); in ene_ms_init()
2095 result = ene_send_scsi_cmd(us, FDIR_READ, bbuf, 0); in ene_ms_init()
2114 ms_card_init(us); /* Card is MS (to ms.c)*/ in ene_ms_init()
2116 usb_stor_dbg(us, "MS Init Code OK !!\n"); in ene_ms_init()
2118 usb_stor_dbg(us, "MS Card Not Ready --- %x\n", bbuf[0]); in ene_ms_init()
2125 static int ene_sd_init(struct us_data *us) in ene_sd_init() argument
2128 struct bulk_cb_wrap *bcb = (struct bulk_cb_wrap *) us->iobuf; in ene_sd_init()
2129 struct ene_ub6250_info *info = (struct ene_ub6250_info *) us->extra; in ene_sd_init()
2132 usb_stor_dbg(us, "transport --- ENE_SDInit\n"); in ene_sd_init()
2134 result = ene_load_bincode(us, SD_INIT1_PATTERN); in ene_sd_init()
2136 usb_stor_dbg(us, "Load SD Init Code Part-1 Fail !!\n"); in ene_sd_init()
2145 result = ene_send_scsi_cmd(us, FDIR_READ, NULL, 0); in ene_sd_init()
2147 usb_stor_dbg(us, "Execution SD Init Code Fail !!\n"); in ene_sd_init()
2152 result = ene_load_bincode(us, SD_INIT2_PATTERN); in ene_sd_init()
2154 usb_stor_dbg(us, "Load SD Init Code Part-2 Fail !!\n"); in ene_sd_init()
2164 result = ene_send_scsi_cmd(us, FDIR_READ, bbuf, 0); in ene_sd_init()
2166 usb_stor_dbg(us, "Execution SD Init Code Fail !!\n"); in ene_sd_init()
2174 ene_get_card_status(us, bbuf); in ene_sd_init()
2175 usb_stor_dbg(us, "Insert = %x\n", s->Insert); in ene_sd_init()
2176 usb_stor_dbg(us, "Ready = %x\n", s->Ready); in ene_sd_init()
2177 usb_stor_dbg(us, "IsMMC = %x\n", s->IsMMC); in ene_sd_init()
2178 usb_stor_dbg(us, "HiCapacity = %x\n", s->HiCapacity); in ene_sd_init()
2179 usb_stor_dbg(us, "HiSpeed = %x\n", s->HiSpeed); in ene_sd_init()
2180 usb_stor_dbg(us, "WtP = %x\n", s->WtP); in ene_sd_init()
2182 usb_stor_dbg(us, "SD Card Not Ready --- %x\n", bbuf[0]); in ene_sd_init()
2189 static int ene_init(struct us_data *us) in ene_init() argument
2193 struct ene_ub6250_info *info = (struct ene_ub6250_info *)(us->extra); in ene_init()
2196 result = ene_get_card_type(us, REG_CARD_STATUS, bbuf); in ene_init()
2203 result = ene_sd_init(us); in ene_init()
2210 result = ene_ms_init(us); in ene_init()
2219 static int sd_scsi_irp(struct us_data *us, struct scsi_cmnd *srb) in sd_scsi_irp() argument
2222 struct ene_ub6250_info *info = (struct ene_ub6250_info *)us->extra; in sd_scsi_irp()
2226 result = sd_scsi_test_unit_ready(us, srb); in sd_scsi_irp()
2229 result = do_scsi_request_sense(us, srb); in sd_scsi_irp()
2232 result = do_scsi_inquiry(us, srb); in sd_scsi_irp()
2235 result = sd_scsi_mode_sense(us, srb); in sd_scsi_irp()
2239 result = SD_SCSI_Start_Stop(us, srb); in sd_scsi_irp()
2243 result = sd_scsi_read_capacity(us, srb); in sd_scsi_irp()
2246 result = sd_scsi_read(us, srb); in sd_scsi_irp()
2249 result = sd_scsi_write(us, srb); in sd_scsi_irp()
2264 static int ms_scsi_irp(struct us_data *us, struct scsi_cmnd *srb) in ms_scsi_irp() argument
2267 struct ene_ub6250_info *info = (struct ene_ub6250_info *)us->extra; in ms_scsi_irp()
2271 result = ms_scsi_test_unit_ready(us, srb); in ms_scsi_irp()
2274 result = do_scsi_request_sense(us, srb); in ms_scsi_irp()
2277 result = do_scsi_inquiry(us, srb); in ms_scsi_irp()
2280 result = ms_scsi_mode_sense(us, srb); in ms_scsi_irp()
2283 result = ms_scsi_read_capacity(us, srb); in ms_scsi_irp()
2286 result = ms_scsi_read(us, srb); in ms_scsi_irp()
2289 result = ms_scsi_write(us, srb); in ms_scsi_irp()
2301 static int ene_transport(struct scsi_cmnd *srb, struct us_data *us) in ene_transport() argument
2304 struct ene_ub6250_info *info = (struct ene_ub6250_info *)(us->extra); in ene_transport()
2306 /*US_DEBUG(usb_stor_show_command(us, srb)); */ in ene_transport()
2309 result = ene_init(us); in ene_transport()
2313 result = sd_scsi_irp(us, srb); in ene_transport()
2316 result = ms_scsi_irp(us, srb); in ene_transport()
2328 struct us_data *us; in ene_ub6250_probe() local
2331 result = usb_stor_probe1(&us, intf, id, in ene_ub6250_probe()
2338 us->extra = kzalloc(sizeof(struct ene_ub6250_info), GFP_KERNEL); in ene_ub6250_probe()
2339 if (!us->extra) in ene_ub6250_probe()
2341 us->extra_destructor = ene_ub6250_info_destructor; in ene_ub6250_probe()
2343 info = (struct ene_ub6250_info *)(us->extra); in ene_ub6250_probe()
2346 kfree(us->extra); in ene_ub6250_probe()
2350 us->transport_name = "ene_ub6250"; in ene_ub6250_probe()
2351 us->transport = ene_transport; in ene_ub6250_probe()
2352 us->max_lun = 0; in ene_ub6250_probe()
2354 result = usb_stor_probe2(us); in ene_ub6250_probe()
2359 result = ene_get_card_type(us, REG_CARD_STATUS, info->bbuf); in ene_ub6250_probe()
2380 struct us_data *us = usb_get_intfdata(iface); in ene_ub6250_resume() local
2381 struct ene_ub6250_info *info = (struct ene_ub6250_info *)(us->extra); in ene_ub6250_resume()
2383 mutex_lock(&us->dev_mutex); in ene_ub6250_resume()
2385 if (us->suspend_resume_hook) in ene_ub6250_resume()
2386 (us->suspend_resume_hook)(us, US_RESUME); in ene_ub6250_resume()
2388 mutex_unlock(&us->dev_mutex); in ene_ub6250_resume()
2402 struct us_data *us = usb_get_intfdata(iface); in ene_ub6250_reset_resume() local
2403 struct ene_ub6250_info *info = (struct ene_ub6250_info *)(us->extra); in ene_ub6250_reset_resume()