|
@@ -503,7 +503,7 @@ static int isd200_action( struct us_data *us, int action,
|
|
|
|
|
|
switch ( action ) {
|
|
|
case ACTION_READ_STATUS:
|
|
|
- US_DEBUGP(" isd200_action(READ_STATUS)\n");
|
|
|
+ usb_stor_dbg(us, " isd200_action(READ_STATUS)\n");
|
|
|
ata.generic.ActionSelect = ACTION_SELECT_0|ACTION_SELECT_2;
|
|
|
ata.generic.RegisterSelect =
|
|
|
REG_CYLINDER_LOW | REG_CYLINDER_HIGH |
|
|
@@ -512,7 +512,7 @@ static int isd200_action( struct us_data *us, int action,
|
|
|
break;
|
|
|
|
|
|
case ACTION_ENUM:
|
|
|
- US_DEBUGP(" isd200_action(ENUM,0x%02x)\n",value);
|
|
|
+ usb_stor_dbg(us, " isd200_action(ENUM,0x%02x)\n", value);
|
|
|
ata.generic.ActionSelect = ACTION_SELECT_1|ACTION_SELECT_2|
|
|
|
ACTION_SELECT_3|ACTION_SELECT_4|
|
|
|
ACTION_SELECT_5;
|
|
@@ -522,7 +522,7 @@ static int isd200_action( struct us_data *us, int action,
|
|
|
break;
|
|
|
|
|
|
case ACTION_RESET:
|
|
|
- US_DEBUGP(" isd200_action(RESET)\n");
|
|
|
+ usb_stor_dbg(us, " isd200_action(RESET)\n");
|
|
|
ata.generic.ActionSelect = ACTION_SELECT_1|ACTION_SELECT_2|
|
|
|
ACTION_SELECT_3|ACTION_SELECT_4;
|
|
|
ata.generic.RegisterSelect = REG_DEVICE_CONTROL;
|
|
@@ -531,7 +531,7 @@ static int isd200_action( struct us_data *us, int action,
|
|
|
break;
|
|
|
|
|
|
case ACTION_REENABLE:
|
|
|
- US_DEBUGP(" isd200_action(REENABLE)\n");
|
|
|
+ usb_stor_dbg(us, " isd200_action(REENABLE)\n");
|
|
|
ata.generic.ActionSelect = ACTION_SELECT_1|ACTION_SELECT_2|
|
|
|
ACTION_SELECT_3|ACTION_SELECT_4;
|
|
|
ata.generic.RegisterSelect = REG_DEVICE_CONTROL;
|
|
@@ -540,7 +540,7 @@ static int isd200_action( struct us_data *us, int action,
|
|
|
break;
|
|
|
|
|
|
case ACTION_SOFT_RESET:
|
|
|
- US_DEBUGP(" isd200_action(SOFT_RESET)\n");
|
|
|
+ usb_stor_dbg(us, " isd200_action(SOFT_RESET)\n");
|
|
|
ata.generic.ActionSelect = ACTION_SELECT_1|ACTION_SELECT_5;
|
|
|
ata.generic.RegisterSelect = REG_DEVICE_HEAD | REG_COMMAND;
|
|
|
ata.write.DeviceHeadByte = info->DeviceHead;
|
|
@@ -549,7 +549,7 @@ static int isd200_action( struct us_data *us, int action,
|
|
|
break;
|
|
|
|
|
|
case ACTION_IDENTIFY:
|
|
|
- US_DEBUGP(" isd200_action(IDENTIFY)\n");
|
|
|
+ usb_stor_dbg(us, " isd200_action(IDENTIFY)\n");
|
|
|
ata.generic.RegisterSelect = REG_COMMAND;
|
|
|
ata.write.CommandByte = ATA_CMD_ID_ATA;
|
|
|
isd200_set_srb(info, DMA_FROM_DEVICE, info->id,
|
|
@@ -557,7 +557,7 @@ static int isd200_action( struct us_data *us, int action,
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
- US_DEBUGP("Error: Undefined action %d\n",action);
|
|
|
+ usb_stor_dbg(us, "Error: Undefined action %d\n", action);
|
|
|
return ISD200_ERROR;
|
|
|
}
|
|
|
|
|
@@ -567,7 +567,8 @@ static int isd200_action( struct us_data *us, int action,
|
|
|
if (status == USB_STOR_TRANSPORT_GOOD)
|
|
|
status = ISD200_GOOD;
|
|
|
else {
|
|
|
- US_DEBUGP(" isd200_action(0x%02x) error: %d\n",action,status);
|
|
|
+ usb_stor_dbg(us, " isd200_action(0x%02x) error: %d\n",
|
|
|
+ action, status);
|
|
|
status = ISD200_ERROR;
|
|
|
/* need to reset device here */
|
|
|
}
|
|
@@ -589,17 +590,17 @@ static int isd200_read_regs( struct us_data *us )
|
|
|
int retStatus = ISD200_GOOD;
|
|
|
int transferStatus;
|
|
|
|
|
|
- US_DEBUGP("Entering isd200_IssueATAReadRegs\n");
|
|
|
+ usb_stor_dbg(us, "Entering isd200_IssueATAReadRegs\n");
|
|
|
|
|
|
transferStatus = isd200_action( us, ACTION_READ_STATUS,
|
|
|
info->RegsBuf, sizeof(info->ATARegs) );
|
|
|
if (transferStatus != ISD200_TRANSPORT_GOOD) {
|
|
|
- US_DEBUGP(" Error reading ATA registers\n");
|
|
|
+ usb_stor_dbg(us, " Error reading ATA registers\n");
|
|
|
retStatus = ISD200_ERROR;
|
|
|
} else {
|
|
|
memcpy(info->ATARegs, info->RegsBuf, sizeof(info->ATARegs));
|
|
|
- US_DEBUGP(" Got ATA Register[ATA_REG_ERROR_OFFSET] = 0x%x\n",
|
|
|
- info->ATARegs[ATA_REG_ERROR_OFFSET]);
|
|
|
+ usb_stor_dbg(us, " Got ATA Register[ATA_REG_ERROR_OFFSET] = 0x%x\n",
|
|
|
+ info->ATARegs[ATA_REG_ERROR_OFFSET]);
|
|
|
}
|
|
|
|
|
|
return retStatus;
|
|
@@ -629,7 +630,7 @@ static void isd200_invoke_transport( struct us_data *us,
|
|
|
* short-circuit all other processing
|
|
|
*/
|
|
|
if (test_bit(US_FLIDX_TIMED_OUT, &us->dflags)) {
|
|
|
- US_DEBUGP("-- command was aborted\n");
|
|
|
+ usb_stor_dbg(us, "-- command was aborted\n");
|
|
|
goto Handle_Abort;
|
|
|
}
|
|
|
|
|
@@ -641,23 +642,23 @@ static void isd200_invoke_transport( struct us_data *us,
|
|
|
break;
|
|
|
|
|
|
case USB_STOR_TRANSPORT_NO_SENSE:
|
|
|
- US_DEBUGP("-- transport indicates protocol failure\n");
|
|
|
+ usb_stor_dbg(us, "-- transport indicates protocol failure\n");
|
|
|
srb->result = SAM_STAT_CHECK_CONDITION;
|
|
|
return;
|
|
|
|
|
|
case USB_STOR_TRANSPORT_FAILED:
|
|
|
- US_DEBUGP("-- transport indicates command failure\n");
|
|
|
+ usb_stor_dbg(us, "-- transport indicates command failure\n");
|
|
|
need_auto_sense = 1;
|
|
|
break;
|
|
|
|
|
|
case USB_STOR_TRANSPORT_ERROR:
|
|
|
- US_DEBUGP("-- transport indicates transport error\n");
|
|
|
+ usb_stor_dbg(us, "-- transport indicates transport error\n");
|
|
|
srb->result = DID_ERROR << 16;
|
|
|
/* Need reset here */
|
|
|
return;
|
|
|
|
|
|
default:
|
|
|
- US_DEBUGP("-- transport indicates unknown error\n");
|
|
|
+ usb_stor_dbg(us, "-- transport indicates unknown error\n");
|
|
|
srb->result = DID_ERROR << 16;
|
|
|
/* Need reset here */
|
|
|
return;
|
|
@@ -669,14 +670,14 @@ static void isd200_invoke_transport( struct us_data *us,
|
|
|
(srb->cmnd[0] == MODE_SENSE) ||
|
|
|
(srb->cmnd[0] == LOG_SENSE) ||
|
|
|
(srb->cmnd[0] == MODE_SENSE_10))) {
|
|
|
- US_DEBUGP("-- unexpectedly short transfer\n");
|
|
|
+ usb_stor_dbg(us, "-- unexpectedly short transfer\n");
|
|
|
need_auto_sense = 1;
|
|
|
}
|
|
|
|
|
|
if (need_auto_sense) {
|
|
|
result = isd200_read_regs(us);
|
|
|
if (test_bit(US_FLIDX_TIMED_OUT, &us->dflags)) {
|
|
|
- US_DEBUGP("-- auto-sense aborted\n");
|
|
|
+ usb_stor_dbg(us, "-- auto-sense aborted\n");
|
|
|
goto Handle_Abort;
|
|
|
}
|
|
|
if (result == ISD200_GOOD) {
|
|
@@ -710,40 +711,40 @@ static void isd200_invoke_transport( struct us_data *us,
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_USB_STORAGE_DEBUG
|
|
|
-static void isd200_log_config( struct isd200_info* info )
|
|
|
+static void isd200_log_config(struct us_data *us, struct isd200_info *info)
|
|
|
{
|
|
|
- US_DEBUGP(" Event Notification: 0x%x\n",
|
|
|
- info->ConfigData.EventNotification);
|
|
|
- US_DEBUGP(" External Clock: 0x%x\n",
|
|
|
- info->ConfigData.ExternalClock);
|
|
|
- US_DEBUGP(" ATA Init Timeout: 0x%x\n",
|
|
|
- info->ConfigData.ATAInitTimeout);
|
|
|
- US_DEBUGP(" ATAPI Command Block Size: 0x%x\n",
|
|
|
- (info->ConfigData.ATAConfig & ATACFG_BLOCKSIZE) >> 6);
|
|
|
- US_DEBUGP(" Master/Slave Selection: 0x%x\n",
|
|
|
- info->ConfigData.ATAConfig & ATACFG_MASTER);
|
|
|
- US_DEBUGP(" ATAPI Reset: 0x%x\n",
|
|
|
- info->ConfigData.ATAConfig & ATACFG_ATAPI_RESET);
|
|
|
- US_DEBUGP(" ATA Timing: 0x%x\n",
|
|
|
- info->ConfigData.ATAConfig & ATACFG_TIMING);
|
|
|
- US_DEBUGP(" ATA Major Command: 0x%x\n",
|
|
|
- info->ConfigData.ATAMajorCommand);
|
|
|
- US_DEBUGP(" ATA Minor Command: 0x%x\n",
|
|
|
- info->ConfigData.ATAMinorCommand);
|
|
|
- US_DEBUGP(" Init Status: 0x%x\n",
|
|
|
- info->ConfigData.ATAExtraConfig & ATACFGE_INIT_STATUS);
|
|
|
- US_DEBUGP(" Config Descriptor 2: 0x%x\n",
|
|
|
- info->ConfigData.ATAExtraConfig & ATACFGE_CONF_DESC2);
|
|
|
- US_DEBUGP(" Skip Device Boot: 0x%x\n",
|
|
|
- info->ConfigData.ATAExtraConfig & ATACFGE_SKIP_BOOT);
|
|
|
- US_DEBUGP(" ATA 3 State Supsend: 0x%x\n",
|
|
|
- info->ConfigData.ATAExtraConfig & ATACFGE_STATE_SUSPEND);
|
|
|
- US_DEBUGP(" Descriptor Override: 0x%x\n",
|
|
|
- info->ConfigData.ATAExtraConfig & ATACFGE_DESC_OVERRIDE);
|
|
|
- US_DEBUGP(" Last LUN Identifier: 0x%x\n",
|
|
|
- info->ConfigData.ATAExtraConfig & ATACFGE_LAST_LUN);
|
|
|
- US_DEBUGP(" SRST Enable: 0x%x\n",
|
|
|
- info->ConfigData.ATAExtraConfig & CFG_CAPABILITY_SRST);
|
|
|
+ usb_stor_dbg(us, " Event Notification: 0x%x\n",
|
|
|
+ info->ConfigData.EventNotification);
|
|
|
+ usb_stor_dbg(us, " External Clock: 0x%x\n",
|
|
|
+ info->ConfigData.ExternalClock);
|
|
|
+ usb_stor_dbg(us, " ATA Init Timeout: 0x%x\n",
|
|
|
+ info->ConfigData.ATAInitTimeout);
|
|
|
+ usb_stor_dbg(us, " ATAPI Command Block Size: 0x%x\n",
|
|
|
+ (info->ConfigData.ATAConfig & ATACFG_BLOCKSIZE) >> 6);
|
|
|
+ usb_stor_dbg(us, " Master/Slave Selection: 0x%x\n",
|
|
|
+ info->ConfigData.ATAConfig & ATACFG_MASTER);
|
|
|
+ usb_stor_dbg(us, " ATAPI Reset: 0x%x\n",
|
|
|
+ info->ConfigData.ATAConfig & ATACFG_ATAPI_RESET);
|
|
|
+ usb_stor_dbg(us, " ATA Timing: 0x%x\n",
|
|
|
+ info->ConfigData.ATAConfig & ATACFG_TIMING);
|
|
|
+ usb_stor_dbg(us, " ATA Major Command: 0x%x\n",
|
|
|
+ info->ConfigData.ATAMajorCommand);
|
|
|
+ usb_stor_dbg(us, " ATA Minor Command: 0x%x\n",
|
|
|
+ info->ConfigData.ATAMinorCommand);
|
|
|
+ usb_stor_dbg(us, " Init Status: 0x%x\n",
|
|
|
+ info->ConfigData.ATAExtraConfig & ATACFGE_INIT_STATUS);
|
|
|
+ usb_stor_dbg(us, " Config Descriptor 2: 0x%x\n",
|
|
|
+ info->ConfigData.ATAExtraConfig & ATACFGE_CONF_DESC2);
|
|
|
+ usb_stor_dbg(us, " Skip Device Boot: 0x%x\n",
|
|
|
+ info->ConfigData.ATAExtraConfig & ATACFGE_SKIP_BOOT);
|
|
|
+ usb_stor_dbg(us, " ATA 3 State Supsend: 0x%x\n",
|
|
|
+ info->ConfigData.ATAExtraConfig & ATACFGE_STATE_SUSPEND);
|
|
|
+ usb_stor_dbg(us, " Descriptor Override: 0x%x\n",
|
|
|
+ info->ConfigData.ATAExtraConfig & ATACFGE_DESC_OVERRIDE);
|
|
|
+ usb_stor_dbg(us, " Last LUN Identifier: 0x%x\n",
|
|
|
+ info->ConfigData.ATAExtraConfig & ATACFGE_LAST_LUN);
|
|
|
+ usb_stor_dbg(us, " SRST Enable: 0x%x\n",
|
|
|
+ info->ConfigData.ATAExtraConfig & CFG_CAPABILITY_SRST);
|
|
|
}
|
|
|
#endif
|
|
|
|
|
@@ -762,9 +763,9 @@ static int isd200_write_config( struct us_data *us )
|
|
|
int result;
|
|
|
|
|
|
#ifdef CONFIG_USB_STORAGE_DEBUG
|
|
|
- US_DEBUGP("Entering isd200_write_config\n");
|
|
|
- US_DEBUGP(" Writing the following ISD200 Config Data:\n");
|
|
|
- isd200_log_config(info);
|
|
|
+ usb_stor_dbg(us, "Entering isd200_write_config\n");
|
|
|
+ usb_stor_dbg(us, " Writing the following ISD200 Config Data:\n");
|
|
|
+ isd200_log_config(us, info);
|
|
|
#endif
|
|
|
|
|
|
/* let's send the command via the control pipe */
|
|
@@ -779,13 +780,13 @@ static int isd200_write_config( struct us_data *us )
|
|
|
sizeof(info->ConfigData));
|
|
|
|
|
|
if (result >= 0) {
|
|
|
- US_DEBUGP(" ISD200 Config Data was written successfully\n");
|
|
|
+ usb_stor_dbg(us, " ISD200 Config Data was written successfully\n");
|
|
|
} else {
|
|
|
- US_DEBUGP(" Request to write ISD200 Config Data failed!\n");
|
|
|
+ usb_stor_dbg(us, " Request to write ISD200 Config Data failed!\n");
|
|
|
retStatus = ISD200_ERROR;
|
|
|
}
|
|
|
|
|
|
- US_DEBUGP("Leaving isd200_write_config %08X\n", retStatus);
|
|
|
+ usb_stor_dbg(us, "Leaving isd200_write_config %08X\n", retStatus);
|
|
|
return retStatus;
|
|
|
}
|
|
|
|
|
@@ -804,7 +805,7 @@ static int isd200_read_config( struct us_data *us )
|
|
|
int retStatus = ISD200_GOOD;
|
|
|
int result;
|
|
|
|
|
|
- US_DEBUGP("Entering isd200_read_config\n");
|
|
|
+ usb_stor_dbg(us, "Entering isd200_read_config\n");
|
|
|
|
|
|
/* read the configuration information from ISD200. Use this to */
|
|
|
/* determine what the special ATA CDB bytes are. */
|
|
@@ -821,16 +822,16 @@ static int isd200_read_config( struct us_data *us )
|
|
|
|
|
|
|
|
|
if (result >= 0) {
|
|
|
- US_DEBUGP(" Retrieved the following ISD200 Config Data:\n");
|
|
|
+ usb_stor_dbg(us, " Retrieved the following ISD200 Config Data:\n");
|
|
|
#ifdef CONFIG_USB_STORAGE_DEBUG
|
|
|
- isd200_log_config(info);
|
|
|
+ isd200_log_config(us, info);
|
|
|
#endif
|
|
|
} else {
|
|
|
- US_DEBUGP(" Request to get ISD200 Config Data failed!\n");
|
|
|
+ usb_stor_dbg(us, " Request to get ISD200 Config Data failed!\n");
|
|
|
retStatus = ISD200_ERROR;
|
|
|
}
|
|
|
|
|
|
- US_DEBUGP("Leaving isd200_read_config %08X\n", retStatus);
|
|
|
+ usb_stor_dbg(us, "Leaving isd200_read_config %08X\n", retStatus);
|
|
|
return retStatus;
|
|
|
}
|
|
|
|
|
@@ -848,15 +849,15 @@ static int isd200_atapi_soft_reset( struct us_data *us )
|
|
|
int retStatus = ISD200_GOOD;
|
|
|
int transferStatus;
|
|
|
|
|
|
- US_DEBUGP("Entering isd200_atapi_soft_reset\n");
|
|
|
+ usb_stor_dbg(us, "Entering isd200_atapi_soft_reset\n");
|
|
|
|
|
|
transferStatus = isd200_action( us, ACTION_SOFT_RESET, NULL, 0 );
|
|
|
if (transferStatus != ISD200_TRANSPORT_GOOD) {
|
|
|
- US_DEBUGP(" Error issuing Atapi Soft Reset\n");
|
|
|
+ usb_stor_dbg(us, " Error issuing Atapi Soft Reset\n");
|
|
|
retStatus = ISD200_ERROR;
|
|
|
}
|
|
|
|
|
|
- US_DEBUGP("Leaving isd200_atapi_soft_reset %08X\n", retStatus);
|
|
|
+ usb_stor_dbg(us, "Leaving isd200_atapi_soft_reset %08X\n", retStatus);
|
|
|
return retStatus;
|
|
|
}
|
|
|
|
|
@@ -874,13 +875,13 @@ static int isd200_srst( struct us_data *us )
|
|
|
int retStatus = ISD200_GOOD;
|
|
|
int transferStatus;
|
|
|
|
|
|
- US_DEBUGP("Entering isd200_SRST\n");
|
|
|
+ usb_stor_dbg(us, "Entering isd200_SRST\n");
|
|
|
|
|
|
transferStatus = isd200_action( us, ACTION_RESET, NULL, 0 );
|
|
|
|
|
|
/* check to see if this request failed */
|
|
|
if (transferStatus != ISD200_TRANSPORT_GOOD) {
|
|
|
- US_DEBUGP(" Error issuing SRST\n");
|
|
|
+ usb_stor_dbg(us, " Error issuing SRST\n");
|
|
|
retStatus = ISD200_ERROR;
|
|
|
} else {
|
|
|
/* delay 10ms to give the drive a chance to see it */
|
|
@@ -888,7 +889,7 @@ static int isd200_srst( struct us_data *us )
|
|
|
|
|
|
transferStatus = isd200_action( us, ACTION_REENABLE, NULL, 0 );
|
|
|
if (transferStatus != ISD200_TRANSPORT_GOOD) {
|
|
|
- US_DEBUGP(" Error taking drive out of reset\n");
|
|
|
+ usb_stor_dbg(us, " Error taking drive out of reset\n");
|
|
|
retStatus = ISD200_ERROR;
|
|
|
} else {
|
|
|
/* delay 50ms to give the drive a chance to recover after SRST */
|
|
@@ -896,7 +897,7 @@ static int isd200_srst( struct us_data *us )
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- US_DEBUGP("Leaving isd200_srst %08X\n", retStatus);
|
|
|
+ usb_stor_dbg(us, "Leaving isd200_srst %08X\n", retStatus);
|
|
|
return retStatus;
|
|
|
}
|
|
|
|
|
@@ -938,13 +939,13 @@ static int isd200_try_enum(struct us_data *us, unsigned char master_slave,
|
|
|
|
|
|
if (!detect) {
|
|
|
if (regs[ATA_REG_STATUS_OFFSET] & ATA_BUSY) {
|
|
|
- US_DEBUGP(" %s status is still BSY, try again...\n",
|
|
|
- master_slave == ATA_ADDRESS_DEVHEAD_STD ?
|
|
|
- "Master" : "Slave");
|
|
|
+ usb_stor_dbg(us, " %s status is still BSY, try again...\n",
|
|
|
+ master_slave == ATA_ADDRESS_DEVHEAD_STD ?
|
|
|
+ "Master" : "Slave");
|
|
|
} else {
|
|
|
- US_DEBUGP(" %s status !BSY, continue with next operation\n",
|
|
|
- master_slave == ATA_ADDRESS_DEVHEAD_STD ?
|
|
|
- "Master" : "Slave");
|
|
|
+ usb_stor_dbg(us, " %s status !BSY, continue with next operation\n",
|
|
|
+ master_slave == ATA_ADDRESS_DEVHEAD_STD ?
|
|
|
+ "Master" : "Slave");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -953,11 +954,11 @@ static int isd200_try_enum(struct us_data *us, unsigned char master_slave,
|
|
|
/* ATA_ERR (workaround for Archos CD-ROM) */
|
|
|
else if (regs[ATA_REG_STATUS_OFFSET] &
|
|
|
(ATA_BUSY | ATA_DF | ATA_ERR)) {
|
|
|
- US_DEBUGP(" Status indicates it is not ready, try again...\n");
|
|
|
+ usb_stor_dbg(us, " Status indicates it is not ready, try again...\n");
|
|
|
}
|
|
|
/* check for DRDY, ATA devices set DRDY after SRST */
|
|
|
else if (regs[ATA_REG_STATUS_OFFSET] & ATA_DRDY) {
|
|
|
- US_DEBUGP(" Identified ATA device\n");
|
|
|
+ usb_stor_dbg(us, " Identified ATA device\n");
|
|
|
info->DeviceFlags |= DF_ATA_DEVICE;
|
|
|
info->DeviceHead = master_slave;
|
|
|
break;
|
|
@@ -978,27 +979,27 @@ static int isd200_try_enum(struct us_data *us, unsigned char master_slave,
|
|
|
*/
|
|
|
if ((master_slave & ATA_ADDRESS_DEVHEAD_SLAVE) &&
|
|
|
!recheckAsMaster) {
|
|
|
- US_DEBUGP(" Identified ATAPI device as slave. Rechecking again as master\n");
|
|
|
+ usb_stor_dbg(us, " Identified ATAPI device as slave. Rechecking again as master\n");
|
|
|
recheckAsMaster = 1;
|
|
|
master_slave = ATA_ADDRESS_DEVHEAD_STD;
|
|
|
} else {
|
|
|
- US_DEBUGP(" Identified ATAPI device\n");
|
|
|
+ usb_stor_dbg(us, " Identified ATAPI device\n");
|
|
|
info->DeviceHead = master_slave;
|
|
|
|
|
|
status = isd200_atapi_soft_reset(us);
|
|
|
break;
|
|
|
}
|
|
|
} else {
|
|
|
- US_DEBUGP(" Not ATA, not ATAPI. Weird.\n");
|
|
|
+ usb_stor_dbg(us, " Not ATA, not ATAPI - Weird\n");
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
/* check for timeout on this request */
|
|
|
if (time_after_eq(jiffies, endTime)) {
|
|
|
if (!detect)
|
|
|
- US_DEBUGP(" BSY check timeout, just continue with next operation...\n");
|
|
|
+ usb_stor_dbg(us, " BSY check timeout, just continue with next operation...\n");
|
|
|
else
|
|
|
- US_DEBUGP(" Device detect timeout!\n");
|
|
|
+ usb_stor_dbg(us, " Device detect timeout!\n");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1020,7 +1021,7 @@ static int isd200_manual_enum(struct us_data *us)
|
|
|
struct isd200_info *info = (struct isd200_info *)us->extra;
|
|
|
int retStatus = ISD200_GOOD;
|
|
|
|
|
|
- US_DEBUGP("Entering isd200_manual_enum\n");
|
|
|
+ usb_stor_dbg(us, "Entering isd200_manual_enum\n");
|
|
|
|
|
|
retStatus = isd200_read_config(us);
|
|
|
if (retStatus == ISD200_GOOD) {
|
|
@@ -1039,14 +1040,15 @@ static int isd200_manual_enum(struct us_data *us)
|
|
|
|
|
|
isslave = (info->DeviceHead & ATA_ADDRESS_DEVHEAD_SLAVE) ? 1 : 0;
|
|
|
if (!(info->ConfigData.ATAConfig & ATACFG_MASTER)) {
|
|
|
- US_DEBUGP(" Setting Master/Slave selection to %d\n", isslave);
|
|
|
+ usb_stor_dbg(us, " Setting Master/Slave selection to %d\n",
|
|
|
+ isslave);
|
|
|
info->ConfigData.ATAConfig &= 0x3f;
|
|
|
info->ConfigData.ATAConfig |= (isslave<<6);
|
|
|
retStatus = isd200_write_config(us);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- US_DEBUGP("Leaving isd200_manual_enum %08X\n", retStatus);
|
|
|
+ usb_stor_dbg(us, "Leaving isd200_manual_enum %08X\n", retStatus);
|
|
|
return(retStatus);
|
|
|
}
|
|
|
|
|
@@ -1064,35 +1066,35 @@ static void isd200_fix_driveid(u16 *id)
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
-static void isd200_dump_driveid(u16 *id)
|
|
|
+static void isd200_dump_driveid(struct us_data *us, u16 *id)
|
|
|
{
|
|
|
- US_DEBUGP(" Identify Data Structure:\n");
|
|
|
- US_DEBUGP(" config = 0x%x\n", id[ATA_ID_CONFIG]);
|
|
|
- US_DEBUGP(" cyls = 0x%x\n", id[ATA_ID_CYLS]);
|
|
|
- US_DEBUGP(" heads = 0x%x\n", id[ATA_ID_HEADS]);
|
|
|
- US_DEBUGP(" track_bytes = 0x%x\n", id[4]);
|
|
|
- US_DEBUGP(" sector_bytes = 0x%x\n", id[5]);
|
|
|
- US_DEBUGP(" sectors = 0x%x\n", id[ATA_ID_SECTORS]);
|
|
|
- US_DEBUGP(" serial_no[0] = 0x%x\n", *(char *)&id[ATA_ID_SERNO]);
|
|
|
- US_DEBUGP(" buf_type = 0x%x\n", id[20]);
|
|
|
- US_DEBUGP(" buf_size = 0x%x\n", id[ATA_ID_BUF_SIZE]);
|
|
|
- US_DEBUGP(" ecc_bytes = 0x%x\n", id[22]);
|
|
|
- US_DEBUGP(" fw_rev[0] = 0x%x\n", *(char *)&id[ATA_ID_FW_REV]);
|
|
|
- US_DEBUGP(" model[0] = 0x%x\n", *(char *)&id[ATA_ID_PROD]);
|
|
|
- US_DEBUGP(" max_multsect = 0x%x\n", id[ATA_ID_MAX_MULTSECT] & 0xff);
|
|
|
- US_DEBUGP(" dword_io = 0x%x\n", id[ATA_ID_DWORD_IO]);
|
|
|
- US_DEBUGP(" capability = 0x%x\n", id[ATA_ID_CAPABILITY] >> 8);
|
|
|
- US_DEBUGP(" tPIO = 0x%x\n", id[ATA_ID_OLD_PIO_MODES] >> 8);
|
|
|
- US_DEBUGP(" tDMA = 0x%x\n", id[ATA_ID_OLD_DMA_MODES] >> 8);
|
|
|
- US_DEBUGP(" field_valid = 0x%x\n", id[ATA_ID_FIELD_VALID]);
|
|
|
- US_DEBUGP(" cur_cyls = 0x%x\n", id[ATA_ID_CUR_CYLS]);
|
|
|
- US_DEBUGP(" cur_heads = 0x%x\n", id[ATA_ID_CUR_HEADS]);
|
|
|
- US_DEBUGP(" cur_sectors = 0x%x\n", id[ATA_ID_CUR_SECTORS]);
|
|
|
- US_DEBUGP(" cur_capacity = 0x%x\n", ata_id_u32(id, 57));
|
|
|
- US_DEBUGP(" multsect = 0x%x\n", id[ATA_ID_MULTSECT] & 0xff);
|
|
|
- US_DEBUGP(" lba_capacity = 0x%x\n", ata_id_u32(id, ATA_ID_LBA_CAPACITY));
|
|
|
- US_DEBUGP(" command_set_1 = 0x%x\n", id[ATA_ID_COMMAND_SET_1]);
|
|
|
- US_DEBUGP(" command_set_2 = 0x%x\n", id[ATA_ID_COMMAND_SET_2]);
|
|
|
+ usb_stor_dbg(us, " Identify Data Structure:\n");
|
|
|
+ usb_stor_dbg(us, " config = 0x%x\n", id[ATA_ID_CONFIG]);
|
|
|
+ usb_stor_dbg(us, " cyls = 0x%x\n", id[ATA_ID_CYLS]);
|
|
|
+ usb_stor_dbg(us, " heads = 0x%x\n", id[ATA_ID_HEADS]);
|
|
|
+ usb_stor_dbg(us, " track_bytes = 0x%x\n", id[4]);
|
|
|
+ usb_stor_dbg(us, " sector_bytes = 0x%x\n", id[5]);
|
|
|
+ usb_stor_dbg(us, " sectors = 0x%x\n", id[ATA_ID_SECTORS]);
|
|
|
+ usb_stor_dbg(us, " serial_no[0] = 0x%x\n", *(char *)&id[ATA_ID_SERNO]);
|
|
|
+ usb_stor_dbg(us, " buf_type = 0x%x\n", id[20]);
|
|
|
+ usb_stor_dbg(us, " buf_size = 0x%x\n", id[ATA_ID_BUF_SIZE]);
|
|
|
+ usb_stor_dbg(us, " ecc_bytes = 0x%x\n", id[22]);
|
|
|
+ usb_stor_dbg(us, " fw_rev[0] = 0x%x\n", *(char *)&id[ATA_ID_FW_REV]);
|
|
|
+ usb_stor_dbg(us, " model[0] = 0x%x\n", *(char *)&id[ATA_ID_PROD]);
|
|
|
+ usb_stor_dbg(us, " max_multsect = 0x%x\n", id[ATA_ID_MAX_MULTSECT] & 0xff);
|
|
|
+ usb_stor_dbg(us, " dword_io = 0x%x\n", id[ATA_ID_DWORD_IO]);
|
|
|
+ usb_stor_dbg(us, " capability = 0x%x\n", id[ATA_ID_CAPABILITY] >> 8);
|
|
|
+ usb_stor_dbg(us, " tPIO = 0x%x\n", id[ATA_ID_OLD_PIO_MODES] >> 8);
|
|
|
+ usb_stor_dbg(us, " tDMA = 0x%x\n", id[ATA_ID_OLD_DMA_MODES] >> 8);
|
|
|
+ usb_stor_dbg(us, " field_valid = 0x%x\n", id[ATA_ID_FIELD_VALID]);
|
|
|
+ usb_stor_dbg(us, " cur_cyls = 0x%x\n", id[ATA_ID_CUR_CYLS]);
|
|
|
+ usb_stor_dbg(us, " cur_heads = 0x%x\n", id[ATA_ID_CUR_HEADS]);
|
|
|
+ usb_stor_dbg(us, " cur_sectors = 0x%x\n", id[ATA_ID_CUR_SECTORS]);
|
|
|
+ usb_stor_dbg(us, " cur_capacity = 0x%x\n", ata_id_u32(id, 57));
|
|
|
+ usb_stor_dbg(us, " multsect = 0x%x\n", id[ATA_ID_MULTSECT] & 0xff);
|
|
|
+ usb_stor_dbg(us, " lba_capacity = 0x%x\n", ata_id_u32(id, ATA_ID_LBA_CAPACITY));
|
|
|
+ usb_stor_dbg(us, " command_set_1 = 0x%x\n", id[ATA_ID_COMMAND_SET_1]);
|
|
|
+ usb_stor_dbg(us, " command_set_2 = 0x%x\n", id[ATA_ID_COMMAND_SET_2]);
|
|
|
}
|
|
|
|
|
|
/**************************************************************************
|
|
@@ -1109,7 +1111,7 @@ static int isd200_get_inquiry_data( struct us_data *us )
|
|
|
int retStatus = ISD200_GOOD;
|
|
|
u16 *id = info->id;
|
|
|
|
|
|
- US_DEBUGP("Entering isd200_get_inquiry_data\n");
|
|
|
+ usb_stor_dbg(us, "Entering isd200_get_inquiry_data\n");
|
|
|
|
|
|
/* set default to Master */
|
|
|
info->DeviceHead = ATA_ADDRESS_DEVHEAD_STD;
|
|
@@ -1127,7 +1129,7 @@ static int isd200_get_inquiry_data( struct us_data *us )
|
|
|
id, ATA_ID_WORDS * 2);
|
|
|
if (transferStatus != ISD200_TRANSPORT_GOOD) {
|
|
|
/* Error issuing ATA Command Identify */
|
|
|
- US_DEBUGP(" Error issuing ATA Command Identify\n");
|
|
|
+ usb_stor_dbg(us, " Error issuing ATA Command Identify\n");
|
|
|
retStatus = ISD200_ERROR;
|
|
|
} else {
|
|
|
/* ATA Command Identify successful */
|
|
@@ -1136,7 +1138,7 @@ static int isd200_get_inquiry_data( struct us_data *us )
|
|
|
__u16 *dest;
|
|
|
|
|
|
isd200_fix_driveid(id);
|
|
|
- isd200_dump_driveid(id);
|
|
|
+ isd200_dump_driveid(us, id);
|
|
|
|
|
|
memset(&info->InquiryData, 0, sizeof(info->InquiryData));
|
|
|
|
|
@@ -1170,7 +1172,7 @@ static int isd200_get_inquiry_data( struct us_data *us )
|
|
|
|
|
|
/* determine if it supports Media Status Notification */
|
|
|
if (id[ATA_ID_COMMAND_SET_2] & COMMANDSET_MEDIA_STATUS) {
|
|
|
- US_DEBUGP(" Device supports Media Status Notification\n");
|
|
|
+ usb_stor_dbg(us, " Device supports Media Status Notification\n");
|
|
|
|
|
|
/* Indicate that it is enabled, even though it is not
|
|
|
* This allows the lock/unlock of the media to work
|
|
@@ -1190,7 +1192,8 @@ static int isd200_get_inquiry_data( struct us_data *us )
|
|
|
us->protocol_name = "Transparent SCSI";
|
|
|
us->proto_handler = usb_stor_transparent_scsi_command;
|
|
|
|
|
|
- US_DEBUGP("Protocol changed to: %s\n", us->protocol_name);
|
|
|
+ usb_stor_dbg(us, "Protocol changed to: %s\n",
|
|
|
+ us->protocol_name);
|
|
|
|
|
|
/* Free driver structure */
|
|
|
us->extra_destructor(info);
|
|
@@ -1200,7 +1203,7 @@ static int isd200_get_inquiry_data( struct us_data *us )
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- US_DEBUGP("Leaving isd200_get_inquiry_data %08X\n", retStatus);
|
|
|
+ usb_stor_dbg(us, "Leaving isd200_get_inquiry_data %08X\n", retStatus);
|
|
|
|
|
|
return(retStatus);
|
|
|
}
|
|
@@ -1231,7 +1234,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
/* SCSI Command */
|
|
|
switch (srb->cmnd[0]) {
|
|
|
case INQUIRY:
|
|
|
- US_DEBUGP(" ATA OUT - INQUIRY\n");
|
|
|
+ usb_stor_dbg(us, " ATA OUT - INQUIRY\n");
|
|
|
|
|
|
/* copy InquiryData */
|
|
|
usb_stor_set_xfer_buf((unsigned char *) &info->InquiryData,
|
|
@@ -1241,7 +1244,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
break;
|
|
|
|
|
|
case MODE_SENSE:
|
|
|
- US_DEBUGP(" ATA OUT - SCSIOP_MODE_SENSE\n");
|
|
|
+ usb_stor_dbg(us, " ATA OUT - SCSIOP_MODE_SENSE\n");
|
|
|
|
|
|
/* Initialize the return buffer */
|
|
|
usb_stor_set_xfer_buf(senseData, sizeof(senseData), srb);
|
|
@@ -1255,14 +1258,14 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
ataCdb->write.CommandByte = ATA_COMMAND_GET_MEDIA_STATUS;
|
|
|
isd200_srb_set_bufflen(srb, 0);
|
|
|
} else {
|
|
|
- US_DEBUGP(" Media Status not supported, just report okay\n");
|
|
|
+ usb_stor_dbg(us, " Media Status not supported, just report okay\n");
|
|
|
srb->result = SAM_STAT_GOOD;
|
|
|
sendToTransport = 0;
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case TEST_UNIT_READY:
|
|
|
- US_DEBUGP(" ATA OUT - SCSIOP_TEST_UNIT_READY\n");
|
|
|
+ usb_stor_dbg(us, " ATA OUT - SCSIOP_TEST_UNIT_READY\n");
|
|
|
|
|
|
if (info->DeviceFlags & DF_MEDIA_STATUS_ENABLED)
|
|
|
{
|
|
@@ -1273,7 +1276,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
ataCdb->write.CommandByte = ATA_COMMAND_GET_MEDIA_STATUS;
|
|
|
isd200_srb_set_bufflen(srb, 0);
|
|
|
} else {
|
|
|
- US_DEBUGP(" Media Status not supported, just report okay\n");
|
|
|
+ usb_stor_dbg(us, " Media Status not supported, just report okay\n");
|
|
|
srb->result = SAM_STAT_GOOD;
|
|
|
sendToTransport = 0;
|
|
|
}
|
|
@@ -1284,7 +1287,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
unsigned long capacity;
|
|
|
struct read_capacity_data readCapacityData;
|
|
|
|
|
|
- US_DEBUGP(" ATA OUT - SCSIOP_READ_CAPACITY\n");
|
|
|
+ usb_stor_dbg(us, " ATA OUT - SCSIOP_READ_CAPACITY\n");
|
|
|
|
|
|
if (ata_id_has_lba(id))
|
|
|
capacity = ata_id_u32(id, ATA_ID_LBA_CAPACITY) - 1;
|
|
@@ -1303,7 +1306,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
break;
|
|
|
|
|
|
case READ_10:
|
|
|
- US_DEBUGP(" ATA OUT - SCSIOP_READ\n");
|
|
|
+ usb_stor_dbg(us, " ATA OUT - SCSIOP_READ\n");
|
|
|
|
|
|
lba = be32_to_cpu(*(__be32 *)&srb->cmnd[2]);
|
|
|
blockCount = (unsigned long)srb->cmnd[7]<<8 | (unsigned long)srb->cmnd[8];
|
|
@@ -1335,7 +1338,7 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
break;
|
|
|
|
|
|
case WRITE_10:
|
|
|
- US_DEBUGP(" ATA OUT - SCSIOP_WRITE\n");
|
|
|
+ usb_stor_dbg(us, " ATA OUT - SCSIOP_WRITE\n");
|
|
|
|
|
|
lba = be32_to_cpu(*(__be32 *)&srb->cmnd[2]);
|
|
|
blockCount = (unsigned long)srb->cmnd[7]<<8 | (unsigned long)srb->cmnd[8];
|
|
@@ -1367,10 +1370,11 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
break;
|
|
|
|
|
|
case ALLOW_MEDIUM_REMOVAL:
|
|
|
- US_DEBUGP(" ATA OUT - SCSIOP_MEDIUM_REMOVAL\n");
|
|
|
+ usb_stor_dbg(us, " ATA OUT - SCSIOP_MEDIUM_REMOVAL\n");
|
|
|
|
|
|
if (info->DeviceFlags & DF_REMOVABLE_MEDIA) {
|
|
|
- US_DEBUGP(" srb->cmnd[4] = 0x%X\n", srb->cmnd[4]);
|
|
|
+ usb_stor_dbg(us, " srb->cmnd[4] = 0x%X\n",
|
|
|
+ srb->cmnd[4]);
|
|
|
|
|
|
ataCdb->generic.SignatureByte0 = info->ConfigData.ATAMajorCommand;
|
|
|
ataCdb->generic.SignatureByte1 = info->ConfigData.ATAMinorCommand;
|
|
@@ -1380,25 +1384,25 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
ATA_CMD_MEDIA_LOCK : ATA_CMD_MEDIA_UNLOCK;
|
|
|
isd200_srb_set_bufflen(srb, 0);
|
|
|
} else {
|
|
|
- US_DEBUGP(" Not removeable media, just report okay\n");
|
|
|
+ usb_stor_dbg(us, " Not removeable media, just report okay\n");
|
|
|
srb->result = SAM_STAT_GOOD;
|
|
|
sendToTransport = 0;
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
case START_STOP:
|
|
|
- US_DEBUGP(" ATA OUT - SCSIOP_START_STOP_UNIT\n");
|
|
|
- US_DEBUGP(" srb->cmnd[4] = 0x%X\n", srb->cmnd[4]);
|
|
|
+ usb_stor_dbg(us, " ATA OUT - SCSIOP_START_STOP_UNIT\n");
|
|
|
+ usb_stor_dbg(us, " srb->cmnd[4] = 0x%X\n", srb->cmnd[4]);
|
|
|
|
|
|
if ((srb->cmnd[4] & 0x3) == 0x2) {
|
|
|
- US_DEBUGP(" Media Eject\n");
|
|
|
+ usb_stor_dbg(us, " Media Eject\n");
|
|
|
ataCdb->generic.SignatureByte0 = info->ConfigData.ATAMajorCommand;
|
|
|
ataCdb->generic.SignatureByte1 = info->ConfigData.ATAMinorCommand;
|
|
|
ataCdb->generic.TransferBlockSize = 0;
|
|
|
ataCdb->generic.RegisterSelect = REG_COMMAND;
|
|
|
ataCdb->write.CommandByte = ATA_COMMAND_MEDIA_EJECT;
|
|
|
} else if ((srb->cmnd[4] & 0x3) == 0x1) {
|
|
|
- US_DEBUGP(" Get Media Status\n");
|
|
|
+ usb_stor_dbg(us, " Get Media Status\n");
|
|
|
ataCdb->generic.SignatureByte0 = info->ConfigData.ATAMajorCommand;
|
|
|
ataCdb->generic.SignatureByte1 = info->ConfigData.ATAMinorCommand;
|
|
|
ataCdb->generic.TransferBlockSize = 1;
|
|
@@ -1406,14 +1410,15 @@ static int isd200_scsi_to_ata(struct scsi_cmnd *srb, struct us_data *us,
|
|
|
ataCdb->write.CommandByte = ATA_COMMAND_GET_MEDIA_STATUS;
|
|
|
isd200_srb_set_bufflen(srb, 0);
|
|
|
} else {
|
|
|
- US_DEBUGP(" Nothing to do, just report okay\n");
|
|
|
+ usb_stor_dbg(us, " Nothing to do, just report okay\n");
|
|
|
srb->result = SAM_STAT_GOOD;
|
|
|
sendToTransport = 0;
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
- US_DEBUGP("Unsupported SCSI command - 0x%X\n", srb->cmnd[0]);
|
|
|
+ usb_stor_dbg(us, "Unsupported SCSI command - 0x%X\n",
|
|
|
+ srb->cmnd[0]);
|
|
|
srb->result = DID_ERROR << 16;
|
|
|
sendToTransport = 0;
|
|
|
break;
|
|
@@ -1470,8 +1475,7 @@ static int isd200_init_info(struct us_data *us)
|
|
|
if (retStatus == ISD200_GOOD) {
|
|
|
us->extra = info;
|
|
|
us->extra_destructor = isd200_free_info_ptrs;
|
|
|
- } else
|
|
|
- US_DEBUGP("ERROR - kmalloc failure\n");
|
|
|
+ }
|
|
|
|
|
|
return retStatus;
|
|
|
}
|
|
@@ -1482,19 +1486,19 @@ static int isd200_init_info(struct us_data *us)
|
|
|
|
|
|
static int isd200_Initialization(struct us_data *us)
|
|
|
{
|
|
|
- US_DEBUGP("ISD200 Initialization...\n");
|
|
|
+ usb_stor_dbg(us, "ISD200 Initialization...\n");
|
|
|
|
|
|
/* Initialize ISD200 info struct */
|
|
|
|
|
|
if (isd200_init_info(us) == ISD200_ERROR) {
|
|
|
- US_DEBUGP("ERROR Initializing ISD200 Info struct\n");
|
|
|
+ usb_stor_dbg(us, "ERROR Initializing ISD200 Info struct\n");
|
|
|
} else {
|
|
|
/* Get device specific data */
|
|
|
|
|
|
if (isd200_get_inquiry_data(us) != ISD200_GOOD)
|
|
|
- US_DEBUGP("ISD200 Initialization Failure\n");
|
|
|
+ usb_stor_dbg(us, "ISD200 Initialization Failure\n");
|
|
|
else
|
|
|
- US_DEBUGP("ISD200 Initialization complete\n");
|
|
|
+ usb_stor_dbg(us, "ISD200 Initialization complete\n");
|
|
|
}
|
|
|
|
|
|
return 0;
|
|
@@ -1519,7 +1523,7 @@ static void isd200_ata_command(struct scsi_cmnd *srb, struct us_data *us)
|
|
|
/* Make sure driver was initialized */
|
|
|
|
|
|
if (us->extra == NULL)
|
|
|
- US_DEBUGP("ERROR Driver not initialized\n");
|
|
|
+ usb_stor_dbg(us, "ERROR Driver not initialized\n");
|
|
|
|
|
|
scsi_set_resid(srb, 0);
|
|
|
/* scsi_bufflen might change in protocol translation to ata */
|