> Hi, > > if (dev_info->wspecversion >= UFS_DEV_HPB_SUPPORT_VERSION && > > (b_ufs_feature_sup & UFS_DEV_HPB_SUPPORT)) { > > - dev_info->hpb_enabled = true; > > + bool hpb_en = false; > > + > > ufshpb_get_dev_info(hba, desc_buf); > > + > > + if (!ufshpb_is_legacy(hba)) > > + err = ufshcd_query_flag_retry(hba, > > + > > UPIU_QUERY_OPCODE_READ_FLAG, > > + > > QUERY_FLAG_IDN_HPB_EN, 0, > > + &hpb_en); > > + > > + if (ufshpb_is_legacy(hba) || (!err && hpb_en)) > > + dev_info->hpb_enabled = true; > > } > I think there is a confusion concerning fHPBEn flag. > The spec say: "If host wants to enable HPB, host set the fHPBEn flag as ‘1’." > And its default value is '0'. > So upon successful init, we should set this flag and not read it. After some further thinking, I wish to withdraw from my comment above. The spec doesn't really say how this flag should be used, but provides the "system" With a mean to disable hpb.
So I tend to agree with your interpretation, that this flag should be configured by the OEMs, Along with all other hpb configurables, should they choose to enable it. As it is of a persistent nature, we might even consider in the future, to add some logic that will allow to use this flag to disable hpb. Thanks, Avri > > I wouldn't rush to fix it however, before we see what Martin/Greg are planning > for this feature. > Thanks, > Avri