1. 06 Jan, 2021 11 commits
    • Jiawei Gu's avatar
      drm/amdgpu: fix potential memory leak during navi12 deinitialization · e6d5c64e
      Jiawei Gu authored
      Navi12 HDCP & DTM deinitialization needs continue to free bo if already
      created though initialized flag is not set.
      Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarJiawei Gu <Jiawei.Gu@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      e6d5c64e
    • Arnd Bergmann's avatar
      drm/amd/display: Fix unused variable warning · 4f6a0550
      Arnd Bergmann authored
      Some of the newly added code is hidden inside of #ifdef
      blocks, but one variable is unused when debugfs is disabled:
      
      drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:8370:8: error: unused variable 'configure_crc' [-Werror,-Wunused-variable]
      
      Change the #ifdef to an if(IS_ENABLED()) check to fix the warning
      and avoid adding more #ifdefs.
      
      Fixes: c920888c ("drm/amd/display: Expose new CRC window property")
      Reviewed-by: default avatarWayne Lin <Wayne.Lin@amd.com>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      4f6a0550
    • Xiaojian Du's avatar
      drm/amd/pm: improve the fine grain tuning function for RV/RV2/PCO · 98b64762
      Xiaojian Du authored
      This patch is to improve the fine grain tuning function for RV/RV2/PCO.
      The fine grain tuning function uses the sysfs node -- pp_od_clk_voltage
      to config gfxclk. Meanwhile, another sysfs
      node -- power_dpm_force_perfomance_level also affects the gfx clk.
      It will cause confusion when these two sysfs nodes works
      together. So this patch adds one flag to avoid this confusion, the flag
      will make these two sysfs nodes work separately.
      The flag is set as "disabled" by default, so the fine grain tuning function
      will be disabled by default.
      Only when power_dpm_force_perfomance_level is changed to
      "manual" mode, the flag will be set as "enabled",
      and the fine grain tuning function will be enabled.
      In other profile modes, including "auto", "high", "low",
      "profile_peak", "profile_standard", "profile_min_sclk",
      "profile_min_mclk", the flag will be set as "disabled",
      and the od range of fine grain tuning function will
      be restored default value.
      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>
      98b64762
    • Xiaojian Du's avatar
      drm/amd/pm: fix the failure when change power profile for renoir · 44cb39e1
      Xiaojian Du authored
      This patch is to fix the failure when change power profile to
      "profile_peak" 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>
      44cb39e1
    • Dennis Li's avatar
      drm/amdgpu: fix a GPU hang issue when remove device · 88e21af1
      Dennis Li authored
      When GFXOFF is enabled and GPU is idle, driver will fail to access some
      registers. Therefore change to disable power gating before all access
      registers with MMIO.
      
      Dmesg log is as following:
      amdgpu 0000:03:00.0: amdgpu: amdgpu: finishing device.
      amdgpu: cp queue pipe 4 queue 0 preemption failed
      amdgpu 0000:03:00.0: amdgpu: failed to write reg 2890 wait reg 28a2
      amdgpu 0000:03:00.0: amdgpu: failed to write reg 1a6f4 wait reg 1a706
      amdgpu 0000:03:00.0: amdgpu: failed to write reg 2890 wait reg 28a2
      amdgpu 0000:03:00.0: amdgpu: failed to write reg 1a6f4 wait reg 1a706
      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>
      88e21af1
    • Dennis Li's avatar
      drm/amdgpu: fix a memory protection fault when remove amdgpu device · 9a029a3f
      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>
      9a029a3f
    • Hawking Zhang's avatar
      drm/amdgpu: switched to cached noretry setting for vangogh · ed1df585
      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>
      ed1df585
    • Kevin Wang's avatar
      drm/amd/display: fix sysfs amdgpu_current_backlight_pwm NULL pointer issue · a7b5d9dd
      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>
      a7b5d9dd
    • John Clements's avatar
      drm/amd/pm: updated PM to I2C controller port on sienna cichlid · fc996f95
      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>
      fc996f95
    • Xiaojian Du's avatar
      drm/amd/pm: improve the fine grain tuning function for RV/RV2/PCO · 37030aba
      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>
      37030aba
    • Xiaojian Du's avatar
      drm/amd/pm: correct the sensor value of power for vangogh · 0e61f09a
      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>
      0e61f09a
  2. 24 Dec, 2020 2 commits
  3. 23 Dec, 2020 21 commits
  4. 18 Dec, 2020 6 commits