[SRU][Cosmic/Bionic/OEM-B][PATCH 0/1] The machine of lenovo M715 with the AMD GPU (Radeon Vega 8 Mobile, rev ca, 1002:15dd) often hangs randomly

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[SRU][Cosmic/Bionic/OEM-B][PATCH 0/1] The machine of lenovo M715 with the AMD GPU (Radeon Vega 8 Mobile, rev ca, 1002:15dd) often hangs randomly

Hui Wang
BugLink: https://bugs.launchpad.net/bugs/1796789

[Impact]
On the machine of Lenovo M715, there is an AMD GPU (1022:15dd rev ca), when it
switchs to amdgpufb, the system will hang randomlly, sometimes it hangs during
boot, reboot or poweroff, sometimes it hangs with longtime standby.


[Fix]
Through bisecting, I found this patch can fix the problem, looks like without
this patch the ATOM BIOS can't be parsed correctlly.


[Test Case]
Did the test of "boot, reboot and poweroff" 5 times, worked very well.
Let the system standby over one night, worked very well.

[Regression Potential]
Very low, I tested this patch on at least 6 differnt lenovo machines
and those machines have different AMD GPUs on them, all of them worked
as well as before.


Harry Wentland (1):
  drm/amd: Add missing fields in atom_integrated_system_info_v1_11

 drivers/gpu/drm/amd/include/atomfirmware.h | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

[SRU][Cosmic/Bionic/OEM-B][PATCH 1/1] drm/amd: Add missing fields in atom_integrated_system_info_v1_11

Hui Wang
From: Harry Wentland <[hidden email]>

BugLink: https://bugs.launchpad.net/bugs/1796789

This structure needs to align with structure in atomfirmware table.
Update it.

Signed-off-by: Harry Wentland <[hidden email]>
Acked-by: Alex Deucher <[hidden email]>
Reviewed-by: Dmytro Laktyushkin <[hidden email]>
Signed-off-by: Alex Deucher <[hidden email]>
(cherry picked from commit d04cc604a66b07eff8fce824fb6c0fdc0875d2e3)
Signed-off-by: Hui Wang <[hidden email]>
---
 drivers/gpu/drm/amd/include/atomfirmware.h | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/include/atomfirmware.h b/drivers/gpu/drm/amd/include/atomfirmware.h
index 7c92f47..53fcda5 100644
--- a/drivers/gpu/drm/amd/include/atomfirmware.h
+++ b/drivers/gpu/drm/amd/include/atomfirmware.h
@@ -1048,7 +1048,7 @@ struct atom_integrated_system_info_v1_11
   uint16_t  dpphy_override;                   // bit vector, enum of atom_sysinfo_dpphy_override_def
   uint16_t  lvds_misc;                        // enum of atom_sys_info_lvds_misc_def
   uint16_t  backlight_pwm_hz;                 // pwm frequency in hz
-  uint8_t   memorytype;                       // enum of atom_sys_mem_type
+  uint8_t   memorytype;                       // enum of atom_dmi_t17_mem_type_def, APU memory type indication.
   uint8_t   umachannelnumber;                 // number of memory channels
   uint8_t   pwr_on_digon_to_de;               /* all pwr sequence numbers below are in uint of 4ms */
   uint8_t   pwr_on_de_to_vary_bl;
@@ -1058,18 +1058,25 @@ struct atom_integrated_system_info_v1_11
   uint8_t   pwr_on_vary_bl_to_blon;
   uint8_t   pwr_down_bloff_to_vary_bloff;
   uint8_t   min_allowed_bl_level;
+  uint8_t   htc_hyst_limit;
+  uint8_t   htc_tmp_limit;
+  uint8_t   reserved1;
+  uint8_t   reserved2;
   struct atom_external_display_connection_info extdispconninfo;
   struct atom_14nm_dpphy_dvihdmi_tuningset dvi_tuningset;
   struct atom_14nm_dpphy_dvihdmi_tuningset hdmi_tuningset;
   struct atom_14nm_dpphy_dvihdmi_tuningset hdmi6g_tuningset;
-  struct atom_14nm_dpphy_dp_tuningset dp_tuningset;
-  struct atom_14nm_dpphy_dp_tuningset dp_hbr3_tuningset;
+  struct atom_14nm_dpphy_dp_tuningset dp_tuningset;        // rbr 1.62G dp tuning set
+  struct atom_14nm_dpphy_dp_tuningset dp_hbr3_tuningset;   // HBR3 dp tuning set
   struct atom_camera_data  camera_info;
   struct atom_hdmi_retimer_redriver_set dp0_retimer_set;   //for DP0
   struct atom_hdmi_retimer_redriver_set dp1_retimer_set;   //for DP1
   struct atom_hdmi_retimer_redriver_set dp2_retimer_set;   //for DP2
   struct atom_hdmi_retimer_redriver_set dp3_retimer_set;   //for DP3
-  uint32_t  reserved[108];
+  struct atom_14nm_dpphy_dp_tuningset dp_hbr_tuningset;    //hbr 2.7G dp tuning set
+  struct atom_14nm_dpphy_dp_tuningset dp_hbr2_tuningset;   //hbr2 5.4G dp turnig set
+  struct atom_14nm_dpphy_dp_tuningset edp_tuningset;       //edp tuning set
+  uint32_t  reserved[66];
 };
 
 
--
2.7.4


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU][Cosmic/Bionic/OEM-B][PATCH 1/1] drm/amd: Add missing fields in atom_integrated_system_info_v1_11

Stefan Bader-2
On 09.10.2018 07:22, Hui Wang wrote:

> From: Harry Wentland <[hidden email]>
>
> BugLink: https://bugs.launchpad.net/bugs/1796789
>
> This structure needs to align with structure in atomfirmware table.
> Update it.
>
> Signed-off-by: Harry Wentland <[hidden email]>
> Acked-by: Alex Deucher <[hidden email]>
> Reviewed-by: Dmytro Laktyushkin <[hidden email]>
> Signed-off-by: Alex Deucher <[hidden email]>
> (cherry picked from commit d04cc604a66b07eff8fce824fb6c0fdc0875d2e3)
> Signed-off-by: Hui Wang <[hidden email]>
Acked-by: Stefan Bader <[hidden email]>

> ---
>  drivers/gpu/drm/amd/include/atomfirmware.h | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/include/atomfirmware.h b/drivers/gpu/drm/amd/include/atomfirmware.h
> index 7c92f47..53fcda5 100644
> --- a/drivers/gpu/drm/amd/include/atomfirmware.h
> +++ b/drivers/gpu/drm/amd/include/atomfirmware.h
> @@ -1048,7 +1048,7 @@ struct atom_integrated_system_info_v1_11
>    uint16_t  dpphy_override;                   // bit vector, enum of atom_sysinfo_dpphy_override_def
>    uint16_t  lvds_misc;                        // enum of atom_sys_info_lvds_misc_def
>    uint16_t  backlight_pwm_hz;                 // pwm frequency in hz
> -  uint8_t   memorytype;                       // enum of atom_sys_mem_type
> +  uint8_t   memorytype;                       // enum of atom_dmi_t17_mem_type_def, APU memory type indication.
>    uint8_t   umachannelnumber;                 // number of memory channels
>    uint8_t   pwr_on_digon_to_de;               /* all pwr sequence numbers below are in uint of 4ms */
>    uint8_t   pwr_on_de_to_vary_bl;
> @@ -1058,18 +1058,25 @@ struct atom_integrated_system_info_v1_11
>    uint8_t   pwr_on_vary_bl_to_blon;
>    uint8_t   pwr_down_bloff_to_vary_bloff;
>    uint8_t   min_allowed_bl_level;
> +  uint8_t   htc_hyst_limit;
> +  uint8_t   htc_tmp_limit;
> +  uint8_t   reserved1;
> +  uint8_t   reserved2;
>    struct atom_external_display_connection_info extdispconninfo;
>    struct atom_14nm_dpphy_dvihdmi_tuningset dvi_tuningset;
>    struct atom_14nm_dpphy_dvihdmi_tuningset hdmi_tuningset;
>    struct atom_14nm_dpphy_dvihdmi_tuningset hdmi6g_tuningset;
> -  struct atom_14nm_dpphy_dp_tuningset dp_tuningset;
> -  struct atom_14nm_dpphy_dp_tuningset dp_hbr3_tuningset;
> +  struct atom_14nm_dpphy_dp_tuningset dp_tuningset;        // rbr 1.62G dp tuning set
> +  struct atom_14nm_dpphy_dp_tuningset dp_hbr3_tuningset;   // HBR3 dp tuning set
>    struct atom_camera_data  camera_info;
>    struct atom_hdmi_retimer_redriver_set dp0_retimer_set;   //for DP0
>    struct atom_hdmi_retimer_redriver_set dp1_retimer_set;   //for DP1
>    struct atom_hdmi_retimer_redriver_set dp2_retimer_set;   //for DP2
>    struct atom_hdmi_retimer_redriver_set dp3_retimer_set;   //for DP3
> -  uint32_t  reserved[108];
> +  struct atom_14nm_dpphy_dp_tuningset dp_hbr_tuningset;    //hbr 2.7G dp tuning set
> +  struct atom_14nm_dpphy_dp_tuningset dp_hbr2_tuningset;   //hbr2 5.4G dp turnig set
> +  struct atom_14nm_dpphy_dp_tuningset edp_tuningset;       //edp tuning set
> +  uint32_t  reserved[66];
>  };
>  
>  
>


--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team

signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

ACK: [SRU][Cosmic/Bionic/OEM-B][PATCH 1/1] drm/amd: Add missing fields in atom_integrated_system_info_v1_11

Khaled Elmously
In reply to this post by Hui Wang
On 2018-10-09 13:22:16 , Hui Wang wrote:

> From: Harry Wentland <[hidden email]>
>
> BugLink: https://bugs.launchpad.net/bugs/1796789
>
> This structure needs to align with structure in atomfirmware table.
> Update it.
>
> Signed-off-by: Harry Wentland <[hidden email]>
> Acked-by: Alex Deucher <[hidden email]>
> Reviewed-by: Dmytro Laktyushkin <[hidden email]>
> Signed-off-by: Alex Deucher <[hidden email]>
> (cherry picked from commit d04cc604a66b07eff8fce824fb6c0fdc0875d2e3)
> Signed-off-by: Hui Wang <[hidden email]>
> ---
>  drivers/gpu/drm/amd/include/atomfirmware.h | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/include/atomfirmware.h b/drivers/gpu/drm/amd/include/atomfirmware.h
> index 7c92f47..53fcda5 100644
> --- a/drivers/gpu/drm/amd/include/atomfirmware.h
> +++ b/drivers/gpu/drm/amd/include/atomfirmware.h
> @@ -1048,7 +1048,7 @@ struct atom_integrated_system_info_v1_11
>    uint16_t  dpphy_override;                   // bit vector, enum of atom_sysinfo_dpphy_override_def
>    uint16_t  lvds_misc;                        // enum of atom_sys_info_lvds_misc_def
>    uint16_t  backlight_pwm_hz;                 // pwm frequency in hz
> -  uint8_t   memorytype;                       // enum of atom_sys_mem_type
> +  uint8_t   memorytype;                       // enum of atom_dmi_t17_mem_type_def, APU memory type indication.
>    uint8_t   umachannelnumber;                 // number of memory channels
>    uint8_t   pwr_on_digon_to_de;               /* all pwr sequence numbers below are in uint of 4ms */
>    uint8_t   pwr_on_de_to_vary_bl;
> @@ -1058,18 +1058,25 @@ struct atom_integrated_system_info_v1_11
>    uint8_t   pwr_on_vary_bl_to_blon;
>    uint8_t   pwr_down_bloff_to_vary_bloff;
>    uint8_t   min_allowed_bl_level;
> +  uint8_t   htc_hyst_limit;
> +  uint8_t   htc_tmp_limit;
> +  uint8_t   reserved1;
> +  uint8_t   reserved2;
>    struct atom_external_display_connection_info extdispconninfo;
>    struct atom_14nm_dpphy_dvihdmi_tuningset dvi_tuningset;
>    struct atom_14nm_dpphy_dvihdmi_tuningset hdmi_tuningset;
>    struct atom_14nm_dpphy_dvihdmi_tuningset hdmi6g_tuningset;
> -  struct atom_14nm_dpphy_dp_tuningset dp_tuningset;
> -  struct atom_14nm_dpphy_dp_tuningset dp_hbr3_tuningset;
> +  struct atom_14nm_dpphy_dp_tuningset dp_tuningset;        // rbr 1.62G dp tuning set
> +  struct atom_14nm_dpphy_dp_tuningset dp_hbr3_tuningset;   // HBR3 dp tuning set
>    struct atom_camera_data  camera_info;
>    struct atom_hdmi_retimer_redriver_set dp0_retimer_set;   //for DP0
>    struct atom_hdmi_retimer_redriver_set dp1_retimer_set;   //for DP1
>    struct atom_hdmi_retimer_redriver_set dp2_retimer_set;   //for DP2
>    struct atom_hdmi_retimer_redriver_set dp3_retimer_set;   //for DP3
> -  uint32_t  reserved[108];
> +  struct atom_14nm_dpphy_dp_tuningset dp_hbr_tuningset;    //hbr 2.7G dp tuning set
> +  struct atom_14nm_dpphy_dp_tuningset dp_hbr2_tuningset;   //hbr2 5.4G dp turnig set
> +  struct atom_14nm_dpphy_dp_tuningset edp_tuningset;       //edp tuning set
> +  uint32_t  reserved[66];
>  };
>  
>

Acked-by: Khalid Elmously <[hidden email]>

 

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team
Reply | Threaded
Open this post in threaded view
|

APPLIED[C]: [SRU][Cosmic/Bionic/OEM-B][PATCH 1/1] drm/amd: Add missing fields in atom_integrated_system_info_v1_11

Thadeu Lima de Souza Cascardo-3
In reply to this post by Hui Wang
Applied to cosmic master-next branch.

Thanks.
Cascardo.

--
kernel-team mailing list
[hidden email]
https://lists.ubuntu.com/mailman/listinfo/kernel-team