> > > so you split the "Task Tag" filed byte3 in the UPIU header to two > > > parts, bit7~bit5 is for the VHs ID, and bit4~bit0 is for the task > > > ID. > > > but this is not defined in the Spec 2.1. correct? > > > > > > You're right. > > > > For PH, TASK_TAG[7:5] will be set to "0" but a VHID will be used in > > case of VH. > > > > > > > > Best Regards, > > > > Chanho Park > > Hi Chanho Park, > Thansk for yoru reply. > > I didn't see your changes about task_tag and IID. Having a look at > ufshcd_prepare_utp_scsi_cmd_upiu(), the task tag in the UPIU header is > still only task tag. and IID is always 0x00. > > If you didn't add these changes, your patch is un-readable, and also the > driver doesn't have a real usage case. I already replied regarding this in another mail thread and please refer below comments. The controller will handle the tag translation. https://lore.kernel.org/linux-scsi/002901d782c6$937ac0f0$ba7042d0$@samsung.com/ > Also, you mentioned there is no support/change needed from the UFS device > side. But, IMO, if you changed the UPIU header, there are changes needed > on the UFS device side in order to use your driver. Please see the figure[1]. Once IID_IN_TASKTAG bit is set, the function arbiter will translate the value of UPIU header before delivering it to the device. [1]: https://lore.kernel.org/linux-scsi/20210714071131.101204-1-chanho61.park@xxxxxxxxxxx/ Best Regards, Chanho Park