Re: [PATCH] drm/amdgpu/acp: Make PM domain really work

2021-07-21 Thread Alex Deucher
Applied.  Thanks!  I've removed the unused variables when I applied.

Alex

On Tue, Jul 20, 2021 at 1:31 PM Kai-Heng Feng
 wrote:
>
> Devices created by mfd_add_hotplug_devices() don't really increase the
> index of its name, so get_mfd_cell_dev() cannot find any device, hence a
> NULL dev is passed to pm_genpd_add_device():
> [   56.974926] (NULL device *): amdgpu: device acp_audio_dma.0.auto added to 
> pm domain
> [   56.974933] (NULL device *): amdgpu: Failed to add dev to genpd
> [   56.974941] [drm:amdgpu_device_ip_init [amdgpu]] *ERROR* hw_init of IP 
> block  failed -22
> [   56.975810] amdgpu :00:01.0: amdgpu: amdgpu_device_ip_init failed
> [   56.975839] amdgpu :00:01.0: amdgpu: Fatal error during GPU init
> [   56.977136] [ cut here ]
> [   56.977143] kernel BUG at mm/slub.c:4206!
> [   56.977158] invalid opcode:  [#1] SMP NOPTI
> [   56.977167] CPU: 1 PID: 1648 Comm: modprobe Not tainted 
> 5.12.0-051200rc8-generic #202104182230
> [   56.977175] Hardware name: To Be Filled By O.E.M. To Be Filled By 
> O.E.M./FM2A68M-HD+, BIOS P5.20 02/13/2019
> [   56.977180] RIP: 0010:kfree+0x3bf/0x410
> [   56.977195] Code: 89 e7 48 d3 e2 f7 da e8 5f 0d 02 00 80 e7 02 75 3e 44 89 
> ee 4c 89 e7 e8 ef 5f fd ff e9 fa fe ff ff 49 8b 44 24 08 a8 01 75 b7 <0f> 0b 
> 4c 8b 4d b0 48 8b 4d a8 48 89 da 4c 89 e6 41 b8 01 00 00 00
> [   56.977202] RSP: 0018:a48640ff79f0 EFLAGS: 00010246
> [   56.977210] RAX:  RBX: 9286127d5608 RCX: 
> 
> [   56.977215] RDX:  RSI: c099d0fb RDI: 
> 9286127d5608
> [   56.977220] RBP: a48640ff7a48 R08: 0001 R09: 
> 0001
> [   56.977224] R10:  R11: 9286087d8458 R12: 
> f3ae0449f540
> [   56.977229] R13:  R14: dead0122 R15: 
> dead0100
> [   56.977234] FS:  7f9de5929540() GS:928612e8() 
> knlGS:
> [   56.977240] CS:  0010 DS:  ES:  CR0: 80050033
> [   56.977245] CR2: 7f697dd97160 CR3: 0001110f CR4: 
> 001506e0
> [   56.977251] Call Trace:
> [   56.977261]  amdgpu_dm_encoder_destroy+0x1b/0x30 [amdgpu]
> [   56.978056]  drm_mode_config_cleanup+0x4f/0x2e0 [drm]
> [   56.978147]  ? kfree+0x3dd/0x410
> [   56.978157]  ? drm_managed_release+0xc8/0x100 [drm]
> [   56.978232]  drm_mode_config_init_release+0xe/0x10 [drm]
> [   56.978311]  drm_managed_release+0x9d/0x100 [drm]
> [   56.978388]  devm_drm_dev_init_release+0x4d/0x70 [drm]
> [   56.978450]  devm_action_release+0x15/0x20
> [   56.978459]  release_nodes+0x77/0xc0
> [   56.978469]  devres_release_all+0x3f/0x50
> [   56.978477]  really_probe+0x245/0x460
> [   56.978485]  driver_probe_device+0xe9/0x160
> [   56.978492]  device_driver_attach+0xab/0xb0
> [   56.978499]  __driver_attach+0x8f/0x150
> [   56.978506]  ? device_driver_attach+0xb0/0xb0
> [   56.978513]  bus_for_each_dev+0x7e/0xc0
> [   56.978521]  driver_attach+0x1e/0x20
> [   56.978528]  bus_add_driver+0x135/0x1f0
> [   56.978534]  driver_register+0x91/0xf0
> [   56.978540]  __pci_register_driver+0x54/0x60
> [   56.978549]  amdgpu_init+0x77/0x1000 [amdgpu]
> [   56.979246]  ? 0xc0dbc000
> [   56.979254]  do_one_initcall+0x48/0x1d0
> [   56.979265]  ? kmem_cache_alloc_trace+0x120/0x230
> [   56.979274]  ? do_init_module+0x28/0x280
> [   56.979282]  do_init_module+0x62/0x280
> [   56.979288]  load_module+0x71c/0x7a0
> [   56.979296]  __do_sys_finit_module+0xc2/0x120
> [   56.979305]  __x64_sys_finit_module+0x1a/0x20
> [   56.979311]  do_syscall_64+0x38/0x90
> [   56.979319]  entry_SYSCALL_64_after_hwframe+0x44/0xae
> [   56.979328] RIP: 0033:0x7f9de54f989d
> [   56.979335] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 
> f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 
> 01 f0 ff ff 73 01 c3 48 8b 0d c3 f5 0c 00 f7 d8 64 89 01 48
> [   56.979342] RSP: 002b:7ffe3c395a28 EFLAGS: 0246 ORIG_RAX: 
> 0139
> [   56.979350] RAX: ffda RBX: 560df3ef4330 RCX: 
> 7f9de54f989d
> [   56.979355] RDX:  RSI: 560df3a07358 RDI: 
> 000f
> [   56.979360] RBP: 0004 R08:  R09: 
> 
> [   56.979365] R10: 000f R11: 0246 R12: 
> 560df3a07358
> [   56.979369] R13:  R14: 560df3ef4460 R15: 
> 560df3ef4330
> [   56.979377] Modules linked in: amdgpu(+) iommu_v2 gpu_sched drm_ttm_helper 
> ttm drm_kms_helper cec rc_core i2c_algo_bit fb_sys_fops syscopyarea 
> sysfillrect sysimgblt nft_counter xt_tcpudp ipt_REJECT nf_reject_ipv4 
> xt_conntrack iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 
> iptable_mangle iptable_raw iptable_security ip_set nf_tables libcrc32c 
> nfnetlink ip6_tables iptable_filter bpfilter input_leds binfmt_misc 
> edac_mce_amd kvm_amd ccp kvm snd_hda_codec_realtek snd_hda_codec_generic 
> crct10dif_pclmul snd_hd

[PATCH] drm/amdgpu/acp: Make PM domain really work

2021-07-20 Thread Kai-Heng Feng
Devices created by mfd_add_hotplug_devices() don't really increase the
index of its name, so get_mfd_cell_dev() cannot find any device, hence a
NULL dev is passed to pm_genpd_add_device():
[   56.974926] (NULL device *): amdgpu: device acp_audio_dma.0.auto added to pm 
domain
[   56.974933] (NULL device *): amdgpu: Failed to add dev to genpd
[   56.974941] [drm:amdgpu_device_ip_init [amdgpu]] *ERROR* hw_init of IP block 
 failed -22
[   56.975810] amdgpu :00:01.0: amdgpu: amdgpu_device_ip_init failed
[   56.975839] amdgpu :00:01.0: amdgpu: Fatal error during GPU init
[   56.977136] [ cut here ]
[   56.977143] kernel BUG at mm/slub.c:4206!
[   56.977158] invalid opcode:  [#1] SMP NOPTI
[   56.977167] CPU: 1 PID: 1648 Comm: modprobe Not tainted 
5.12.0-051200rc8-generic #202104182230
[   56.977175] Hardware name: To Be Filled By O.E.M. To Be Filled By 
O.E.M./FM2A68M-HD+, BIOS P5.20 02/13/2019
[   56.977180] RIP: 0010:kfree+0x3bf/0x410
[   56.977195] Code: 89 e7 48 d3 e2 f7 da e8 5f 0d 02 00 80 e7 02 75 3e 44 89 
ee 4c 89 e7 e8 ef 5f fd ff e9 fa fe ff ff 49 8b 44 24 08 a8 01 75 b7 <0f> 0b 4c 
8b 4d b0 48 8b 4d a8 48 89 da 4c 89 e6 41 b8 01 00 00 00
[   56.977202] RSP: 0018:a48640ff79f0 EFLAGS: 00010246
[   56.977210] RAX:  RBX: 9286127d5608 RCX: 
[   56.977215] RDX:  RSI: c099d0fb RDI: 9286127d5608
[   56.977220] RBP: a48640ff7a48 R08: 0001 R09: 0001
[   56.977224] R10:  R11: 9286087d8458 R12: f3ae0449f540
[   56.977229] R13:  R14: dead0122 R15: dead0100
[   56.977234] FS:  7f9de5929540() GS:928612e8() 
knlGS:
[   56.977240] CS:  0010 DS:  ES:  CR0: 80050033
[   56.977245] CR2: 7f697dd97160 CR3: 0001110f CR4: 001506e0
[   56.977251] Call Trace:
[   56.977261]  amdgpu_dm_encoder_destroy+0x1b/0x30 [amdgpu]
[   56.978056]  drm_mode_config_cleanup+0x4f/0x2e0 [drm]
[   56.978147]  ? kfree+0x3dd/0x410
[   56.978157]  ? drm_managed_release+0xc8/0x100 [drm]
[   56.978232]  drm_mode_config_init_release+0xe/0x10 [drm]
[   56.978311]  drm_managed_release+0x9d/0x100 [drm]
[   56.978388]  devm_drm_dev_init_release+0x4d/0x70 [drm]
[   56.978450]  devm_action_release+0x15/0x20
[   56.978459]  release_nodes+0x77/0xc0
[   56.978469]  devres_release_all+0x3f/0x50
[   56.978477]  really_probe+0x245/0x460
[   56.978485]  driver_probe_device+0xe9/0x160
[   56.978492]  device_driver_attach+0xab/0xb0
[   56.978499]  __driver_attach+0x8f/0x150
[   56.978506]  ? device_driver_attach+0xb0/0xb0
[   56.978513]  bus_for_each_dev+0x7e/0xc0
[   56.978521]  driver_attach+0x1e/0x20
[   56.978528]  bus_add_driver+0x135/0x1f0
[   56.978534]  driver_register+0x91/0xf0
[   56.978540]  __pci_register_driver+0x54/0x60
[   56.978549]  amdgpu_init+0x77/0x1000 [amdgpu]
[   56.979246]  ? 0xc0dbc000
[   56.979254]  do_one_initcall+0x48/0x1d0
[   56.979265]  ? kmem_cache_alloc_trace+0x120/0x230
[   56.979274]  ? do_init_module+0x28/0x280
[   56.979282]  do_init_module+0x62/0x280
[   56.979288]  load_module+0x71c/0x7a0
[   56.979296]  __do_sys_finit_module+0xc2/0x120
[   56.979305]  __x64_sys_finit_module+0x1a/0x20
[   56.979311]  do_syscall_64+0x38/0x90
[   56.979319]  entry_SYSCALL_64_after_hwframe+0x44/0xae
[   56.979328] RIP: 0033:0x7f9de54f989d
[   56.979335] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 
f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 
f0 ff ff 73 01 c3 48 8b 0d c3 f5 0c 00 f7 d8 64 89 01 48
[   56.979342] RSP: 002b:7ffe3c395a28 EFLAGS: 0246 ORIG_RAX: 
0139
[   56.979350] RAX: ffda RBX: 560df3ef4330 RCX: 7f9de54f989d
[   56.979355] RDX:  RSI: 560df3a07358 RDI: 000f
[   56.979360] RBP: 0004 R08:  R09: 
[   56.979365] R10: 000f R11: 0246 R12: 560df3a07358
[   56.979369] R13:  R14: 560df3ef4460 R15: 560df3ef4330
[   56.979377] Modules linked in: amdgpu(+) iommu_v2 gpu_sched drm_ttm_helper 
ttm drm_kms_helper cec rc_core i2c_algo_bit fb_sys_fops syscopyarea sysfillrect 
sysimgblt nft_counter xt_tcpudp ipt_REJECT nf_reject_ipv4 xt_conntrack 
iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_mangle 
iptable_raw iptable_security ip_set nf_tables libcrc32c nfnetlink ip6_tables 
iptable_filter bpfilter input_leds binfmt_misc edac_mce_amd kvm_amd ccp kvm 
snd_hda_codec_realtek snd_hda_codec_generic crct10dif_pclmul snd_hda_codec_hdmi 
ledtrig_audio ghash_clmulni_intel aesni_intel snd_hda_intel snd_intel_dspcfg 
snd_seq_midi crypto_simd snd_intel_sdw_acpi cryptd snd_hda_codec 
snd_seq_midi_event snd_rawmidi snd_hda_core snd_hwdep snd_seq fam15h_power 
k10temp snd_pcm snd_seq_device snd_timer snd mac_hid soundcore sch_fq_codel 
nct6775 hwmon_vid d