> 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);
> +
> + 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))
If is_legacy you shouldn't send fHPBen in the first place, not ignoring its
failure.
Also, using a Boolean is limiting you to HPB2.0 vs. HPB1.0.
What would you do in new flags/attributes/descriptors that HPB3.0 will
introduce?
> + dev_info->hpb_enabled = true;
> }