firewire: fw-sbp2: set command set related device flags
Copied from sbp2: - enable spin-up by START STOP UNIT for all devices - enable INQUIRY (36) workaround on demand - prefer READ/ WRITE (10) over (6) for all devices - prefer MODE SENSE (10) for MMC devices Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
parent
907293d788
commit
cfb01381f4
1 changed files with 17 additions and 0 deletions
|
@ -968,11 +968,27 @@ static int sbp2_scsi_queuecommand(struct scsi_cmnd *cmd, scsi_done_fn_t done)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int sbp2_scsi_slave_alloc(struct scsi_device *sdev)
|
||||||
|
{
|
||||||
|
struct fw_unit *unit = (struct fw_unit *)sdev->host->hostdata[0];
|
||||||
|
struct sbp2_device *sd = unit->device.driver_data;
|
||||||
|
|
||||||
|
sdev->allow_restart = 1;
|
||||||
|
|
||||||
|
if (sd->workarounds & SBP2_WORKAROUND_INQUIRY_36)
|
||||||
|
sdev->inquiry_len = 36;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int sbp2_scsi_slave_configure(struct scsi_device *sdev)
|
static int sbp2_scsi_slave_configure(struct scsi_device *sdev)
|
||||||
{
|
{
|
||||||
struct fw_unit *unit = (struct fw_unit *)sdev->host->hostdata[0];
|
struct fw_unit *unit = (struct fw_unit *)sdev->host->hostdata[0];
|
||||||
struct sbp2_device *sd = unit->device.driver_data;
|
struct sbp2_device *sd = unit->device.driver_data;
|
||||||
|
|
||||||
|
sdev->use_10_for_rw = 1;
|
||||||
|
|
||||||
|
if (sdev->type == TYPE_ROM)
|
||||||
|
sdev->use_10_for_ms = 1;
|
||||||
if (sdev->type == TYPE_DISK &&
|
if (sdev->type == TYPE_DISK &&
|
||||||
sd->workarounds & SBP2_WORKAROUND_MODE_SENSE_8)
|
sd->workarounds & SBP2_WORKAROUND_MODE_SENSE_8)
|
||||||
sdev->skip_ms_page_8 = 1;
|
sdev->skip_ms_page_8 = 1;
|
||||||
|
@ -1004,6 +1020,7 @@ static struct scsi_host_template scsi_driver_template = {
|
||||||
.name = "SBP-2 IEEE-1394",
|
.name = "SBP-2 IEEE-1394",
|
||||||
.proc_name = (char *)sbp2_driver_name,
|
.proc_name = (char *)sbp2_driver_name,
|
||||||
.queuecommand = sbp2_scsi_queuecommand,
|
.queuecommand = sbp2_scsi_queuecommand,
|
||||||
|
.slave_alloc = sbp2_scsi_slave_alloc,
|
||||||
.slave_configure = sbp2_scsi_slave_configure,
|
.slave_configure = sbp2_scsi_slave_configure,
|
||||||
.eh_abort_handler = sbp2_scsi_abort,
|
.eh_abort_handler = sbp2_scsi_abort,
|
||||||
.this_id = -1,
|
.this_id = -1,
|
||||||
|
|
Loading…
Add table
Reference in a new issue