drm/amd/powerplay: Align with VBIOS to support AVFS parameters.
authorRex Zhu <Rex.Zhu@amd.com>
Wed, 31 May 2017 11:29:53 +0000 (19:29 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Thu, 1 Jun 2017 20:00:19 +0000 (16:00 -0400)
Signed-off-by: Rex Zhu <Rex.Zhu@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/include/atomfirmware.h
drivers/gpu/drm/amd/powerplay/hwmgr/ppatomfwctrl.c
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c

index d38687516d60631f1ae69f7d743ca601c6ce4390..0021a1c63356e8cee086dfc50c0dd5c09329abfa 100644 (file)
@@ -1206,10 +1206,10 @@ struct  atom_asic_profiling_info_v4_1
   uint32_t  gb_vdroop_table_ckson_a1;
   uint32_t  gb_vdroop_table_ckson_a2;
   uint32_t  avfsgb_fuse_table_cksoff_m1;
-  uint16_t  avfsgb_fuse_table_cksoff_m2;
+  uint32_t  avfsgb_fuse_table_cksoff_m2;
   uint32_t  avfsgb_fuse_table_cksoff_b;
   uint32_t  avfsgb_fuse_table_ckson_m1;        
-  uint16_t  avfsgb_fuse_table_ckson_m2;
+  uint32_t  avfsgb_fuse_table_ckson_m2;
   uint32_t  avfsgb_fuse_table_ckson_b;
   uint16_t  max_voltage_0_25mv;
   uint8_t   enable_gb_vdroop_table_cksoff;
@@ -1220,16 +1220,16 @@ struct  atom_asic_profiling_info_v4_1
   uint8_t   enable_apply_avfs_cksoff_voltage;
   uint8_t   reserved;
   uint32_t  dispclk2gfxclk_a;
-  uint16_t  dispclk2gfxclk_b;
+  uint32_t  dispclk2gfxclk_b;
   uint32_t  dispclk2gfxclk_c;
   uint32_t  pixclk2gfxclk_a;
-  uint16_t  pixclk2gfxclk_b;
+  uint32_t  pixclk2gfxclk_b;
   uint32_t  pixclk2gfxclk_c;
   uint32_t  dcefclk2gfxclk_a;
-  uint16_t  dcefclk2gfxclk_b;
+  uint32_t  dcefclk2gfxclk_b;
   uint32_t  dcefclk2gfxclk_c;
   uint32_t  phyclk2gfxclk_a;
-  uint16_t  phyclk2gfxclk_b;
+  uint32_t  phyclk2gfxclk_b;
   uint32_t  phyclk2gfxclk_c;
 };
 
index 1ba05cc3a972a5fccd72bdadfd9c2671d470e6ae..720d5006ff62842efbf46bdc47ea03bba6ad5bb1 100644 (file)
@@ -315,13 +315,13 @@ int pp_atomfwctrl_get_avfs_information(struct pp_hwmgr *hwmgr,
        param->ulGbFuseTableCksoffM1 =
                        le32_to_cpu(profile->avfsgb_fuse_table_cksoff_m1);
        param->ulGbFuseTableCksoffM2 =
-                       le16_to_cpu(profile->avfsgb_fuse_table_cksoff_m2);
+                       le32_to_cpu(profile->avfsgb_fuse_table_cksoff_m2);
        param->ulGbFuseTableCksoffB =
                        le32_to_cpu(profile->avfsgb_fuse_table_cksoff_b);
        param->ulGbFuseTableCksonM1 =
                        le32_to_cpu(profile->avfsgb_fuse_table_ckson_m1);
        param->ulGbFuseTableCksonM2 =
-                       le16_to_cpu(profile->avfsgb_fuse_table_ckson_m2);
+                       le32_to_cpu(profile->avfsgb_fuse_table_ckson_m2);
        param->ulGbFuseTableCksonB =
                        le32_to_cpu(profile->avfsgb_fuse_table_ckson_b);
 
@@ -335,25 +335,25 @@ int pp_atomfwctrl_get_avfs_information(struct pp_hwmgr *hwmgr,
        param->ulDispclk2GfxclkM1 =
                        le32_to_cpu(profile->dispclk2gfxclk_a);
        param->ulDispclk2GfxclkM2 =
-                       le16_to_cpu(profile->dispclk2gfxclk_b);
+                       le32_to_cpu(profile->dispclk2gfxclk_b);
        param->ulDispclk2GfxclkB =
                        le32_to_cpu(profile->dispclk2gfxclk_c);
        param->ulDcefclk2GfxclkM1 =
                        le32_to_cpu(profile->dcefclk2gfxclk_a);
        param->ulDcefclk2GfxclkM2 =
-                       le16_to_cpu(profile->dcefclk2gfxclk_b);
+                       le32_to_cpu(profile->dcefclk2gfxclk_b);
        param->ulDcefclk2GfxclkB =
                        le32_to_cpu(profile->dcefclk2gfxclk_c);
        param->ulPixelclk2GfxclkM1 =
                        le32_to_cpu(profile->pixclk2gfxclk_a);
        param->ulPixelclk2GfxclkM2 =
-                       le16_to_cpu(profile->pixclk2gfxclk_b);
+                       le32_to_cpu(profile->pixclk2gfxclk_b);
        param->ulPixelclk2GfxclkB =
                        le32_to_cpu(profile->pixclk2gfxclk_c);
        param->ulPhyclk2GfxclkM1 =
                        le32_to_cpu(profile->phyclk2gfxclk_a);
        param->ulPhyclk2GfxclkM2 =
-                       le16_to_cpu(profile->phyclk2gfxclk_b);
+                       le32_to_cpu(profile->phyclk2gfxclk_b);
        param->ulPhyclk2GfxclkB =
                        le32_to_cpu(profile->phyclk2gfxclk_c);
 
index 30bc0537a4b8f5591f788dd318b5bb2ba007efca..971f78983187edef8cbd29b4d66aeeae9deb472d 100644 (file)
@@ -2097,7 +2097,7 @@ static int vega10_populate_avfs_parameters(struct pp_hwmgr *hwmgr)
                        pp_table->AvfsGbCksOn.m1 =
                                        cpu_to_le32(avfs_params.ulGbFuseTableCksonM1);
                        pp_table->AvfsGbCksOn.m2 =
-                                       cpu_to_le16(avfs_params.ulGbFuseTableCksonM2);
+                                       cpu_to_le32(avfs_params.ulGbFuseTableCksonM2);
                        pp_table->AvfsGbCksOn.b =
                                        cpu_to_le32(avfs_params.ulGbFuseTableCksonB);
                        pp_table->AvfsGbCksOn.m1_shift = 24;
@@ -2109,7 +2109,7 @@ static int vega10_populate_avfs_parameters(struct pp_hwmgr *hwmgr)
                        pp_table->AvfsGbCksOff.m1 =
                                        cpu_to_le32(avfs_params.ulGbFuseTableCksoffM1);
                        pp_table->AvfsGbCksOff.m2 =
-                                       cpu_to_le16(avfs_params.ulGbFuseTableCksoffM2);
+                                       cpu_to_le32(avfs_params.ulGbFuseTableCksoffM2);
                        pp_table->AvfsGbCksOff.b =
                                        cpu_to_le32(avfs_params.ulGbFuseTableCksoffB);
                        pp_table->AvfsGbCksOff.m1_shift = 24;