Avri, On Sat, 2020-05-30 at 06:56 +0000, Avri Altman wrote: > > > > > From: Bean Huo <beanhuo@xxxxxxxxxx> > > > > For UFS 3.1, the normal unit descriptor is 10 bytes larger > > than the RPMB unit, however, both descriptors share the same > > desc_idn, to cover both unit descriptors with one length, we > > choose the normal unit descriptor length by desc_index. > > This is not what your code is doing. > For RPMB - desc size will not be 0x2d but remain 256. sorry, I'm afraid I didn't quite get your point here. would you go over it again in detail please? > > Your strategy is still correct IMO - if you assign the larger size, > The device will not reply with error, but with the proper buffer. > > You can also rely that reading the rpmb unit descriptor will not > happen before > Reading regular luns, because this is happening in the first > slave_alloc. > On my side, I saw the Well-know LU descriptor is read before regulaer/normal LU descritptor. see ufshcd_add_lus(); I did further debug to verify my patch, and the unit descriptor read sequence: 1. read RPMB descriptor: desc_id 2, desc_index 0xc4 2. read LU 0 descriptor: desc_id 2, desc_index 0 3. read LU 0 descriptor: desc_id 2, desc_index 1 4. read LU 0 descriptor: desc_id 2, desc_index 2 5. read LU 0 descriptor: desc_id 2, desc_index 4 .... > Hence, I think you can drop the extra if, and just add the comment. > so, this 'if' is still needed. otherwise, LU descriptor length will be initialized as 0x23(RPMB descriptor length). if I am wrong, please correct me. thanks, Bean