diff options
| author | hathach <[email protected]> | 2013-09-23 00:24:51 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-09-23 00:24:51 +0700 |
| commit | 85f3ad9d3becf277400ec6c865281ada43ae19a4 (patch) | |
| tree | 2bb4161fc85688d954ad538663f5aa249017bdc3 /tinyusb/class | |
| parent | a8a10e86502617313ced924691a014d94bd54c82 (diff) | |
refractor hcd API to allow queue xfer without actually transferring data
Diffstat (limited to 'tinyusb/class')
| -rw-r--r-- | tinyusb/class/msc_host.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/tinyusb/class/msc_host.c b/tinyusb/class/msc_host.c index dc6588500..00aebeba9 100644 --- a/tinyusb/class/msc_host.c +++ b/tinyusb/class/msc_host.c @@ -175,8 +175,8 @@ static tusb_error_t scsi_command_send(msch_interface_t * p_msch, scsi_cmd_type_t } ASSERT_STATUS( hcd_pipe_xfer(p_msch->bulk_out, (uint8_t*) &p_msch->cbw, sizeof(msc_cmd_block_wrapper_t), false) ); - ASSERT_STATUS( hcd_pipe_xfer(p_msch->bulk_in , p_msch->buffer, p_msch->cbw.xfer_bytes, false) ); - //ASSERT_STATUS( hcd_pipe_xfer(p_msch->bulk_in , &p_msch->csw, sizeof(msc_cmd_status_wrapper_t), true) ); + ASSERT_STATUS( hcd_pipe_queue_xfer(p_msch->bulk_in , p_msch->buffer, p_msch->cbw.xfer_bytes) ); + ASSERT_STATUS( hcd_pipe_xfer(p_msch->bulk_in , &p_msch->csw, sizeof(msc_cmd_status_wrapper_t), true) ); } void msch_init(void) @@ -241,10 +241,7 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con //------------- SCSI Inquiry -------------// scsi_command_send(&msch_data[dev_addr-1], SCSI_CMD_INQUIRY, 0); - osal_task_delay(5); - ASSERT_STATUS( hcd_pipe_xfer(msch_data[dev_addr-1].bulk_in , (uint8_t*) &msch_data[dev_addr-1].csw, sizeof(msc_cmd_status_wrapper_t), true) ); - osal_task_delay(5); - // check csw + osal_task_delay(2); memcpy(msch_data[dev_addr-1].vendor_id, ((scsi_inquiry_data_t*)msch_data[dev_addr-1].buffer)->vendor_id, @@ -256,17 +253,12 @@ tusb_error_t msch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t con #if 0 //------------- SCSI Request Sense -------------// scsi_command_send(&msch_data[dev_addr-1], SCSI_CMD_REQUEST_SENSE, 0); - osal_task_delay(5); - ASSERT_STATUS( hcd_pipe_xfer(msch_data[dev_addr-1].bulk_in , (uint8_t*) &msch_data[dev_addr-1].csw, sizeof(msc_cmd_status_wrapper_t), true) ); - osal_task_delay(5); + osal_task_delay(2); #endif //------------- SCSI Read Capacity 10 -------------// scsi_command_send(&msch_data[dev_addr-1], SCSI_CMD_READ_CAPACITY_10, 0); - osal_task_delay(5); - ASSERT_STATUS( hcd_pipe_xfer(msch_data[dev_addr-1].bulk_in , (uint8_t*) &msch_data[dev_addr-1].csw, sizeof(msc_cmd_status_wrapper_t), true) ); - osal_task_delay(5); - // check csw + osal_task_delay(2); msch_data[dev_addr-1].last_lba = __be2le( ((scsi_read_capacity10_data_t*)msch_data[dev_addr-1].buffer)->last_lba ); msch_data[dev_addr-1].block_size = (uint16_t) __be2le( ((scsi_read_capacity10_data_t*)msch_data[dev_addr-1].buffer)->block_size ); |
