> 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; > }