On Thu, 2011-12-08 at 18:30 +0100, Sebastian Andrzej Siewior wrote: > UAS supports command queues only if running in SuperSpeed aka USB3.0. If > the device is connected at USB2.0 speed aka HighSpeed command queuing is > not supported. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > drivers/target/target_core_cdb.c | 9 ++++++++- > include/target/target_core_fabric.h | 5 +++++ > 2 files changed, 13 insertions(+), 1 deletions(-) > > diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c > index 957fac7..11c538d 100644 > --- a/drivers/target/target_core_cdb.c > +++ b/drivers/target/target_core_cdb.c > @@ -73,6 +73,7 @@ target_emulate_inquiry_std(struct se_cmd *cmd) > struct se_device *dev = cmd->se_dev; > struct se_portal_group *tpg = lun->lun_sep->sep_tpg; > unsigned char *buf; > + u32 cmd_queue; > > /* > * Make sure we at least have 6 bytes of INQUIRY response > @@ -106,8 +107,14 @@ target_emulate_inquiry_std(struct se_cmd *cmd) > goto out; > } > > - buf[7] = 0x32; /* Sync=1 and CmdQue=1 */ > + if (tpg->se_tpg_tfo->cmd_queue_supported) > + cmd_queue = tpg->se_tpg_tfo->cmd_queue_supported(cmd); > + else > + cmd_queue = 1; > > + buf[7] = 0x30; /* WBUS16=1, Sync=1 */ > + if (cmd_queue) > + buf[7] |= 0x02; /* CmdQue */ > /* > * Do not include vendor, product, reversion info in INQUIRY > * response payload for cdbs with a small allocation length. > diff --git a/include/target/target_core_fabric.h b/include/target/target_core_fabric.h > index d035d86..0511bdf 100644 > --- a/include/target/target_core_fabric.h > +++ b/include/target/target_core_fabric.h > @@ -45,6 +45,11 @@ struct target_core_fabric_ops { > */ > int (*new_cmd_map)(struct se_cmd *); > /* > + * Optional function pointer for TCM to check if command queueing is > + * supported. This affects the INQUIRY command. Default is yes. > + */ > + int (*cmd_queue_supported)(struct se_cmd *); > + /* > * Optional to release struct se_cmd and fabric dependent allocated > * I/O descriptor in transport_cmd_check_stop(). > * This would be better served by a 'bool disable_cmdque' set to zero by default for non uasp fabrics instead of a new function pointer here.. --nab -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html