[PATCH v2] drm/amdgpu: expose amdgpu_sensors on pre-powerplay chips

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

 



On 14/02/17 12:52 PM, Tom St Denis wrote:
> On 14/02/17 12:16 PM, Tom St Denis wrote:
>> On 14/02/17 12:01 PM, Samuel Pitoiset wrote:
>>> No worries. I thought that check was enough. Anyway, writing code
>>> without the hardware should be avoided. :)
>>>
>>> Can you try the thing suggested by Alex? Because I will need to fix up
>>> the DRM ioctl codepath as well.
>>
>> Sure, I'm building a module with a amdgpu_dpm check near the top of the
>> debugfs read function.
>
> It seems returning an error code causes it to do "bad things" on read
>
> [root at kaveri linux]# git diff
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index 80821b4..d63c443 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -3198,6 +3198,9 @@ static ssize_t amdgpu_debugfs_sensor_read(struct
> file *f, char __user *buf,
>         if (size & 3 || *pos & 0x3)
>                 return -EINVAL;
>
> +       if (amdgpu_dpm == 0)
> +               return -EINVAL;
> +
>         /* convert offset to sensor number */
>         idx = *pos >> 2;
>
> That's what I applied on top of Samuel's three patches.
>
> With DPM enabled it works fine obviously, with it disabled the entire
> system hangs.  I think probably because the VFS spins trying to read but
> never finishes...

Nevermind, the issue is umr reading UVD registers when dpm=0 on KV. 
Without sampling UVD the error works properly.

So add those three lines to your patch (and similar in the ioctl) you 
should be fine.

Cheers,
Tom


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

  Powered by Linux