[PATCH] drm/panfrost: Skip speed binning on EOPNOTSUPP

Steven Price steven.price at arm.com
Wed Aug 16 09:45:02 UTC 2023


On 16/08/2023 02:42, David Michael wrote:
> Encountered on an ARM Mali-T760 MP4, attempting to read the nvmem
> variable can also return EOPNOTSUPP instead of ENOENT when speed
> binning is unsupported.
> 
> Cc: <stable at vger.kernel.org>
> Fixes: 7d690f936e9b ("drm/panfrost: Add basic support for speed binning")
> Signed-off-by: David Michael <fedora.dm0 at gmail.com>

Reviewed-by: Steven Price <steven.price at arm.com>

> ---
> 
> Hi,
> 
> I upgraded an old Chromebook (veyron-minnie) to 6.4, and it fell back to
> software rendering with "Cannot read speed-bin (-95)." in dmesg.  Does
> this error code also make sense to skip?  Hardware acceleration seems to
> work as it did previously with this change.

I believe this is because the kernel is compiled without CONFIG_NVMEM so
the stub function is returning EOPNOTSUPP.

Since most platforms don't support speed binning just continuing is the
correct approach on those. For platforms with speed binning this means
the binning won't be applied if !CONFIG_NVMEM - but I don't think
there's much we can do about that.

Steve

> 
> Thanks.
> 
> David
> 
>  drivers/gpu/drm/panfrost/panfrost_devfreq.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_devfreq.c b/drivers/gpu/drm/panfrost/panfrost_devfreq.c
> index 58dfb15a8757..e78de99e9933 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_devfreq.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_devfreq.c
> @@ -96,7 +96,7 @@ static int panfrost_read_speedbin(struct device *dev)
>  		 * keep going without it; any other error means that we are
>  		 * supposed to read the bin value, but we failed doing so.
>  		 */
> -		if (ret != -ENOENT) {
> +		if (ret != -ENOENT && ret != -EOPNOTSUPP) {
>  			DRM_DEV_ERROR(dev, "Cannot read speed-bin (%d).", ret);
>  			return ret;
>  		}



More information about the dri-devel mailing list