drm/amd/pm: initialize feature_enabled/feature_support bitmap for yellow carp
authorXiaomeng Hou <Xiaomeng.Hou@amd.com>
Mon, 8 Mar 2021 23:19:39 +0000 (07:19 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 4 Jun 2021 20:03:21 +0000 (16:03 -0400)
Initialize the feature_enabled and feature_supported bitmap for yellow
carp.

Acked-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Xiaomeng Hou <Xiaomeng.Hou@amd.com>
Reviewed-by: Kevin Wang <kevin1.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/pm/swsmu/smu13/yellow_carp_ppt.c

index 935754e..feef77c 100644 (file)
@@ -177,6 +177,30 @@ err0_out:
        return -ENOMEM;
 }
 
+static int yellow_carp_system_features_control(struct smu_context *smu, bool en)
+{
+       struct smu_feature *feature = &smu->smu_feature;
+       uint32_t feature_mask[2];
+       int ret = 0;
+
+       bitmap_zero(feature->enabled, feature->feature_num);
+       bitmap_zero(feature->supported, feature->feature_num);
+
+       if (!en)
+               return ret;
+
+       ret = smu_cmn_get_enabled_32_bits_mask(smu, feature_mask, 2);
+       if (ret)
+               return ret;
+
+       bitmap_copy(feature->enabled, (unsigned long *)&feature_mask,
+                   feature->feature_num);
+       bitmap_copy(feature->supported, (unsigned long *)&feature_mask,
+                   feature->feature_num);
+
+       return 0;
+}
+
 static int yellow_carp_dpm_set_vcn_enable(struct smu_context *smu, bool enable)
 {
        int ret = 0;
@@ -679,6 +703,7 @@ static const struct pptable_funcs yellow_carp_ppt_funcs = {
        .check_fw_version = smu_v13_0_1_check_fw_version,
        .init_smc_tables = yellow_carp_init_smc_tables,
        .fini_smc_tables = smu_v13_0_1_fini_smc_tables,
+       .system_features_control = yellow_carp_system_features_control,
        .send_smc_msg_with_param = smu_cmn_send_smc_msg_with_param,
        .send_smc_msg = smu_cmn_send_smc_msg,
        .dpm_set_vcn_enable = yellow_carp_dpm_set_vcn_enable,