Re: please help with intermittent s2idle problem on AMD laptop

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 10/16/2024 01:26, Corey Hickey wrote:
> On 2024-10-15 03:40, Shyam Sundar S K wrote:
>>> This time, I get some debug lines from amd_pmc_dump_registers(). I am
>>> including my debug patch here--I think it gives a bit of context that
>>> I can understand better.
>>>
>>>
>>> <6>[ 1143.655752] amd_pmc_probe: 1
>>> <6>[ 1143.655763] amd_pmc_probe: 2
>>> <6>[ 1143.655764] amd_pmc_probe: 3
>>> <6>[ 1143.655773] amd_pmc_probe: 4
>>> <6>[ 1143.655796] amd_pmc_probe: 5
>>> <6>[ 1143.655797] amd_pmc_probe: 6
>>> <6>[ 1143.655798] amd_pmc_is_stb_supported cpu_id: 5352
>>> <7>[ 1143.684758] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_RESPONSE:1
>>> <7>[ 1143.684768] amd_pmc AMDI0009:00:
>>> AMD_S2D_REGISTER_ARGUMENT:100000
>>> <7>[ 1143.684770] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_MESSAGE:85
>>> <6>[ 1143.684772] amd_pmc_s2d_init size: 1048576
>>> <3>[ 1143.684873] amd_pmc AMDI0009:00: SMU cmd failed. err: 0xff
>>> <7>[ 1143.684886] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_RESPONSE:ff
>>> <7>[ 1143.684894] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_ARGUMENT:5
>>> <7>[ 1143.684901] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_MESSAGE:85
>>> <6>[ 1143.684903] amd_pmc_s2d_init s2d_dram_size ret: -5
>>> <7>[ 1143.715734] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_RESPONSE:1
>>> <7>[ 1143.715741] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_ARGUMENT:0
>>> <7>[ 1143.715744] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_MESSAGE:85
>>> <7>[ 1143.746780] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_RESPONSE:1
>>> <7>[ 1143.746790] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_ARGUMENT:0
>>> <7>[ 1143.746793] amd_pmc AMDI0009:00: AMD_S2D_REGISTER_MESSAGE:85
>>> <6>[ 1143.746795] amd_pmc_s2d_init p_a_l: 0 p_a_hi: 0 s_p_a: 0 sz:
>>> 16777216
>>>
>>
>> High and low addresses are zero, because STB is not enabled on your
>> system. So S2D (Spill to DRAM) mailbox commands are expected to fail.
>> You will have to contact Frame.work team to get you the STB feature
>> enabled.
> 
> Thank you for checking the logs.
> 
> Would it be valid to have the driver check for this, as in the
> following (untested) patch?
> 
> 
> diff --git a/drivers/platform/x86/amd/pmc/pmc.c
> b/drivers/platform/x86/amd/pmc/pmc.c
> index 6ca497473d78..148d57fc7b95 100644
> --- a/drivers/platform/x86/amd/pmc/pmc.c
> +++ b/drivers/platform/x86/amd/pmc/pmc.c
> @@ -1001,6 +1001,11 @@ static int amd_pmc_s2d_init(struct amd_pmc_dev
> *dev)
>         amd_pmc_send_cmd(dev, S2D_PHYS_ADDR_LOW, &phys_addr_low,
> dev->s2d_msg_id, true);
>         amd_pmc_send_cmd(dev, S2D_PHYS_ADDR_HIGH, &phys_addr_hi,
> dev->s2d_msg_id, true);
>  
> +       if (!phys_addr_hi && !phys_addr_low) {
> +               printk(KERN_WARNING "amd_pmc: STB is not enabled on
> the system; disable enable_stb or contact system vendor\n");
> +               return -ENOMEM;
> +       }
> +
>         stb_phys_addr = ((u64)phys_addr_hi << 32 | phys_addr_low);
>  
>         /* Clear msg_port for other SMU operation */
> 
> 
> Something like that could have helped me understand the situation is
> better. If a patch like that would be welcome, I can test and submit
> it.

Sorry I missed this thread. Yes, please submit this change for review.

Instead of returning -ENOMEM, just return -EINVAL (as the address
obtained from PMFW is incorrect).

Thanks,
Shyam




[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux