1. 05 Jan, 2021 16 commits
    • Dennis Li's avatar
      drm/amdgpu: fix a memory protection fault when remove amdgpu device · eb5f4f46
      Dennis Li authored
      ASD and TA share the same firmware in SIENNA_CICHLID and only TA
      firmware is requested during boot, so only need release TA firmware when
      remove device.
      
      [   83.877150] general protection fault, probably for non-canonical address 0x1269f97e6ed04095: 0000 [#1] SMP PTI
      [   83.888076] CPU: 0 PID: 1312 Comm: modprobe Tainted: G        W  OE     5.9.0-rc5-deli-amd-vangogh-0.0.6.6-114-gdd99d5669a96-dirty #2
      [   83.901160] Hardware name: System manufacturer System Product Name/TUF Z370-PLUS GAMING II, BIOS 0411 09/21/2018
      [   83.912353] RIP: 0010:free_fw_priv+0xc/0x120
      [   83.917531] Code: e8 99 cd b0 ff b8 a1 ff ff ff eb 9f 4c 89 f7 e8 8a cd b0 ff b8 f4 ff ff ff eb 90 0f 1f 00 0f 1f 44 00 00 55 48 89 e5 41 54 53 <4c> 8b 67 18 48 89 fb 4c 89 e7 e8 45 94 41 00 b8 ff ff ff ff f0 0f
      [   83.937576] RSP: 0018:ffffbc34c13a3ce0 EFLAGS: 00010206
      [   83.943699] RAX: ffffffffbb681850 RBX: ffffa047f117eb60 RCX: 0000000080800055
      [   83.951879] RDX: ffffbc34c1d5f000 RSI: 0000000080800055 RDI: 1269f97e6ed04095
      [   83.959955] RBP: ffffbc34c13a3cf0 R08: 0000000000000000 R09: 0000000000000001
      [   83.968107] R10: ffffbc34c13a3cc8 R11: 00000000ffffff00 R12: ffffa047d6b23378
      [   83.976166] R13: ffffa047d6b23338 R14: ffffa047d6b240c8 R15: 0000000000000000
      [   83.984295] FS:  00007f74f6712540(0000) GS:ffffa047fbe00000(0000) knlGS:0000000000000000
      [   83.993323] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [   84.000056] CR2: 0000556a1cca4e18 CR3: 000000021faa8004 CR4: 00000000003706f0
      [   84.008128] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [   84.016155] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [   84.024174] Call Trace:
      [   84.027514]  release_firmware.part.11+0x4b/0x70
      [   84.033017]  release_firmware+0x13/0x20
      [   84.037803]  psp_sw_fini+0x77/0xb0 [amdgpu]
      [   84.042857]  amdgpu_device_fini+0x38c/0x5d0 [amdgpu]
      [   84.048815]  amdgpu_driver_unload_kms+0x43/0x70 [amdgpu]
      [   84.055055]  drm_dev_unregister+0x73/0xb0 [drm]
      [   84.060499]  drm_dev_unplug+0x28/0x30 [drm]
      [   84.065598]  amdgpu_dev_uninit+0x1b/0x40 [amdgpu]
      [   84.071223]  amdgpu_pci_remove+0x4e/0x70 [amdgpu]
      [   84.076835]  pci_device_remove+0x3e/0xc0
      [   84.081609]  device_release_driver_internal+0xfb/0x1c0
      [   84.087558]  driver_detach+0x4d/0xa0
      [   84.092041]  bus_remove_driver+0x5f/0xe0
      [   84.096854]  driver_unregister+0x2f/0x50
      [   84.101594]  pci_unregister_driver+0x22/0xa0
      [   84.106806]  amdgpu_exit+0x15/0x2b [amdgpu]
      Signed-off-by: default avatarDennis Li <Dennis.Li@amd.com>
      Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      eb5f4f46
    • Hawking Zhang's avatar
      drm/amdgpu: switched to cached noretry setting for vangogh · fdcf0167
      Hawking Zhang authored
      global noretry setting is cached to gmc.noretry
      Signed-off-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      fdcf0167
    • Jiansong Chen's avatar
      drm/amdgpu: remove unnecessary asic check for sdma5.2 · 0533af16
      Jiansong Chen authored
      For sdma5.2, all sdma instances will share the same fw,
      remove unnecessary asic check to be more generic.
      Signed-off-by: default avatarJiansong Chen <Jiansong.Chen@amd.com>
      Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      0533af16
    • Kevin Wang's avatar
      drm/amd/display: fix sysfs amdgpu_current_backlight_pwm NULL pointer issue · 823e4bd6
      Kevin Wang authored
      fix NULL pointer issue when read sysfs amdgpu_current_backlight_pwm sysfs node.
      
      Call Trace:
      [  248.273833] BUG: kernel NULL pointer dereference, address: 0000000000000130
      [  248.273930] #PF: supervisor read access in kernel mode
      [  248.273993] #PF: error_code(0x0000) - not-present page
      [  248.274054] PGD 0 P4D 0
      [  248.274092] Oops: 0000 [#1] SMP PTI
      [  248.274138] CPU: 2 PID: 1377 Comm: cat Tainted: G           OE     5.9.0-rc5-drm-next-5.9+ #1
      [  248.274233] Hardware name: System manufacturer System Product Name/Z170-A, BIOS 3802 03/15/2018
      [  248.274641] RIP: 0010:dc_link_get_backlight_level+0x5/0x70 [amdgpu]
      [  248.274718] Code: 67 ff ff ff 41 b9 03 00 00 00 e9 45 ff ff ff d1 ea e9 55 ff ff ff 0f 1f 44 00 00 66 2e
      0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 <48> 8b 87 30 01 00 00 48 8b 00 48 8b 88 88 03 00 00 48 8d 81 e8 01
      [  248.274919] RSP: 0018:ffffb5ad809b3df0 EFLAGS: 00010203
      [  248.274982] RAX: ffffa0f77d1c0010 RBX: ffffa0f793ae9168 RCX: 0000000000000001
      [  248.275064] RDX: ffffa0f79753db00 RSI: 0000000000000001 RDI: 0000000000000000
      [  248.275145] RBP: ffffb5ad809b3e00 R08: ffffb5ad809b3da0 R09: 0000000000000000
      [  248.275225] R10: ffffb5ad809b3e68 R11: 0000000000000000 R12: ffffa0f793ae9190
      [  248.275306] R13: ffffb5ad809b3ef0 R14: 0000000000000001 R15: ffffa0f793ae9168
      [  248.275388] FS:  00007f5f1ec4d540(0000) GS:ffffa0f79ec80000(0000) knlGS:0000000000000000
      [  248.275480] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  248.275547] CR2: 0000000000000130 CR3: 000000042a03c005 CR4: 00000000003706e0
      [  248.275628] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  248.275708] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [  248.275789] Call Trace:
      [  248.276124]  ? current_backlight_read+0x24/0x40 [amdgpu]
      [  248.276194]  seq_read+0xc3/0x3f0
      [  248.276240]  full_proxy_read+0x5c/0x90
      [  248.276290]  vfs_read+0xa7/0x190
      [  248.276334]  ksys_read+0xa7/0xe0
      [  248.276379]  __x64_sys_read+0x1a/0x20
      [  248.276429]  do_syscall_64+0x37/0x80
      [  248.276477]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
      [  248.276538] RIP: 0033:0x7f5f1e75c191
      [  248.276585] Code: fe ff ff 48 8d 3d b7 9d 0a 00 48 83 ec 08 e8 46 4d 02 00 66 0f 1f 44 00 00 48 8d 05 71 07
      2e 00 8b 00 85 c0 75 13 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 41 54 55 49 89 d4 53Hw
      [  248.276784] RSP: 002b:00007ffcb1fc3f38 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
      [  248.276872] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f5f1e75c191
      [  248.276953] RDX: 0000000000020000 RSI: 00007f5f1ec2b000 RDI: 0000000000000003
      [  248.277034] RBP: 0000000000020000 R08: 00000000ffffffff R09: 0000000000000000
      [  248.277115] R10: 0000000000000022 R11: 0000000000000246 R12: 00007f5f1ec2b000
      [  248.277195] R13: 0000000000000003 R14: 00007f5f1ec2b00f R15: 0000000000020000
      [  248.277279] Modules linked in: amdgpu(OE) iommu_v2 gpu_sched ttm(OE) drm_kms_helper cec drm
      i2c_algo_bit fb_sys_fops syscopyarea sysfillrect sysimgblt rpcsec_gss_krb5 auth_rpcgss nfsv4 nfs
      lockd grace fscache nls_iso8859_1 snd_hda_codec_realtek snd_hda_codec_hdmi snd_hda_codec_generic
      ledtrig_audio intel_rapl_msr intel_rapl_common snd_hda_intel snd_intel_dspcfg x86_pkg_temp_thermal
      intel_powerclamp snd_hda_codec snd_hda_core snd_hwdep snd_pcm snd_seq_midi snd_seq_midi_event mei_hdcp
      coretemp snd_rawmidi snd_seq kvm_intel kvm snd_seq_device snd_timer irqbypass joydev snd input_leds soundcore
      crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd glue_helper rapl intel_cstate
      mac_hid mei_me serio_raw mei eeepc_wmi wmi_bmof asus_wmi mxm_wmi intel_wmi_thunderbolt acpi_pad sparse_keymap
      efi_pstore sch_fq_codel parport_pc ppdev lp parport sunrpc ip_tables x_tables autofs4 hid_logitech_hidpp
      hid_logitech_dj hid_generic usbhid hid e1000e psmouse ahci libahci wmi video
      [  248.278211] CR2: 0000000000000130
      [  248.278221] ---[ end trace 1fbe72fe6f91091d ]---
      [  248.357226] RIP: 0010:dc_link_get_backlight_level+0x5/0x70 [amdgpu]
      [  248.357272] Code: 67 ff ff ff 41 b9 03 00 00 00 e9 45 ff ff ff d1 ea e9 55 ff ff ff 0f 1f 44 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 <48> 8b 87 30 01 00 00 48 8b 00 48 8b 88 88 03 00 00 48 8d 81 e8 01
      Signed-off-by: default avatarKevin Wang <kevin1.wang@amd.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      823e4bd6
    • Xiaojian Du's avatar
      drm/amd/pm: add support to umd P-state function for vangogh · ea173d15
      Xiaojian Du authored
      This patch is to add support to umd P-state function for vangogh.
      It enables the "set" function of 3 sysfs nodes: pp_dpm_mclk,
      pp_dpm_fclk, pp_dpm_socclk, the functions is used to set the DPM
      frequency level of memclk/fclk/socclk.
      Due to only after enabling the "power_dpm_force_performance_level"
      sysfs node, it is allowed to set these three nodes,
      so this patch also enables the "powe_dpm_force_performance_level"
      sysfs node, which is used to change power profile.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Reviewed-by: default avatarHuang Rui <ray.huang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      ea173d15
    • Xiaojian Du's avatar
      drm/amd/pm: add some basic functions to support umd P-state function for vangogh. · dd9e0b21
      Xiaojian Du authored
      This patch is to add some basic functions to support
      umd P-state function for vangogh.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Reviewed-by: default avatarHuang Rui <ray.huang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      dd9e0b21
    • Xiaojian Du's avatar
      drm/amd/pm: add some basic functions to support umd P-state function for vangogh. · d0e4e112
      Xiaojian Du authored
      This patch is to add some basic functions to support umd
      P-state function for vangogh.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Reviewed-by: default avatarHuang Rui <ray.huang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      d0e4e112
    • Xiaojian Du's avatar
      drm/amd/pm: enable the fine grain tuning function for renoir · 16a0fd2a
      Xiaojian Du authored
      This patch is to enable the fine grain tuning function for renoir.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Reviewed-by: default avatarHuang Rui <ray.huang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      16a0fd2a
    • Xiaojian Du's avatar
      drm/amd/pm: add the fine grain tuning function for renoir · ca55f459
      Xiaojian Du authored
      This patch is to add the fine grain tuning function for renoir.
      This function uses the pp_od_clk_voltage sysfs file to configure the min
      and max value of gfx clock frequency manually or restore the default value.
      
      Command guide:
      echo "s level value" > pp_od_clk_voltage
              "s" - set the sclk frequency
              "level" - 0 or 1, "0" represents the min value,  "1" represents
              the max value
              "value" - the target value of sclk frequency, it should
              be limited in the safe range
      echo "r" > pp_od_clk_voltage
              "r" - reset the sclk frequency, restore the default value instantly
      echo "c" > pp_od_clk_voltage
              "c" - commit the min and max value of sclk frequency to the system
              only after the commit command, the target values set by "s" command
              will take effect.
      Example:
      1)change power profile from "auto" to "standard"
              $ cat power_dpm_force_performance_level
              auto
              $ echo "profile_standard" > power_dpm_force_performance_level
              $ cat power_dpm_force_performance_level
              profile_standard
      2)check the default sclk frequency
              $ cat pp_od_clk_voltage
              OD_SCLK:
              0:        200Mhz
              1:       1400Mhz
              OD_RANGE:
              SCLK:     200MHz       1400MHz
      3)use "s" -- set command to configure the min and max sclk frequency
              $ echo "s 0 600" > pp_od_clk_voltage
              $ echo "s 1 1000" > pp_od_clk_voltage
              $ echo "c" > pp_od_clk_voltage
              $ cat pp_od_clk_voltage
              OD_SCLK:
              0:        600Mhz
              1:       1000Mhz
              OD_RANGE:
              SCLK:     200MHz       1400MHz
      4)use "r" -- reset command to restore the min or max sclk frequency
              $ echo "r" > pp_od_clk_voltage
              $ cat pp_od_clk_voltage
              OD_SCLK:
              0:        200Mhz
              1:       1400Mhz
              OD_RANGE:
              SCLK:     200MHz       1400MHz
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Reviewed-by: default avatarHuang Rui <ray.huang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      ca55f459
    • John Clements's avatar
      drm/amd/pm: updated PM to I2C controller port on sienna cichlid · 0d294931
      John Clements authored
      sienna cichlid interfaces with RAS eeprom on I2C controller port 1
      Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Signed-off-by: default avatarJohn Clements <john.clements@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      0d294931
    • Xiaojian Du's avatar
      drm/amd/pm: improve the fine grain tuning function for RV/RV2/PCO · 37f5d8b7
      Xiaojian Du authored
      This patch is to improve the fine grain tuning function for RV/RV2/PCO.
      This patch adds two new commands: "restore" and "commit".
      This function uses the pp_od_clk_voltage sysfs file to configure the min
      and max value of gfx clock frequency manually or restore the default value.
      
      Command guide:
      echo "s level value" > pp_od_clk_voltage
              "s" - set the sclk frequency
              "level" - 0 or 1, "0" represents the min value,  "1" represents
              the max value
              "value" - the target value of sclk frequency, it should be limited in the
              safe range
      echo "r" > pp_od_clk_voltage
              "r" - reset the sclk frequency, restore the default value instantly
      echo "c" > pp_od_clk_voltage
              "c" - commit the min and max value of sclk frequency to the system
              only after the commit command, the target values set by "s" command
              will take effect.
      Example:
      1)change power profile from "auto" to "manual"
              $ cat power_dpm_force_performance_level
              auto
              $ echo "manual" > power_dpm_force_performance_level
              $ cat power_dpm_force_performance_level
              manual
      2)check the default sclk frequency
              $ cat pp_od_clk_voltage
              OD_SCLK:
              0:        200Mhz
              1:       1400Mhz
              OD_RANGE:
              SCLK:     200MHz       1400MHz
      3)use "s" -- set command to configure the min and max sclk frequency
              $ echo "s 0 600" > pp_od_clk_voltage
              $ echo "s 1 1000" > pp_od_clk_voltage
              $ echo "c" > pp_od_clk_voltage
              $ cat pp_od_clk_voltage
              OD_SCLK:
              0:        600Mhz
              1:       1000Mhz
              OD_RANGE:
              SCLK:     200MHz       1400MHz
      4)use "r" -- reset command to restore the min or max sclk frequency
              $ echo "r" > pp_od_clk_voltage
              $ cat pp_od_clk_voltage
              OD_SCLK:
              0:        200Mhz
              1:       1400Mhz
              OD_RANGE:
              SCLK:     200MHz       1400MHz
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      37f5d8b7
    • Xiaojian Du's avatar
      drm/amd/pm: enable the "fetch" function of pp_dpm_vclk/dclk for vangogh · f02c7336
      Xiaojian Du authored
      This patch is to enable the "fetch" function of pp_dpm_vclk and
      pp_dpm_dclk.
      It allows to fetch the current frequency of vcn and dcn and their
      DPM levels for vangogh.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Acked-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      f02c7336
    • Xiaojian Du's avatar
      drm/amd/pm: add two new sysfs nodes for vangogh · 9577b0ec
      Xiaojian Du authored
      This patch is to add two new sysfs nodes for vangogh:
      pp_dpm_dclk and pp_dpm_vclk.
      The two sysfs nodes are similar to pp_dpm_fclk/memclk/socclk.
      pp_dpm_dclk represents the DPM frequency of dcn unit.
      pp_dpm_vclk represents the DPM frequency of vcn unit.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Acked-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      9577b0ec
    • Xiaojian Du's avatar
      drm/amd/pm: add new feature map macros to resolve duplicate name · 54800b58
      Xiaojian Du authored
      This patch is to add new feature map macros to resolve duplicate name.
      Vangogh uses one different format to name some feature bits of swSMU, it
      causes some duplicate name in the existing feature map list.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Acked-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      54800b58
    • Xiaojian Du's avatar
      drm/amd/pm: add support to umd P-state "fetch" function for vangogh · ae7b32e7
      Xiaojian Du authored
      This patch is to add supoort to umd P-state function for vangogh.
      It enables the "fetch" function of 3 sysfs nodes: pp_dpm_mclk,
      pp_dpm_fclk, pp_dpm_socclk,the function is used to fetch
      the current frequency of memclk/fclk/socclk.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Acked-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      ae7b32e7
    • Xiaojian Du's avatar
      drm/amd/pm: correct the sensor value of power for vangogh · 23289a22
      Xiaojian Du authored
      This patch is to correct the sensor value of power for vangogh.
      Signed-off-by: default avatarXiaojian Du <Xiaojian.Du@amd.com>
      Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      23289a22
  2. 23 Dec, 2020 24 commits