[PATCH v3 2/3] drm/vc4: Remove conflicting framebuffers before callind bind_all

Thomas Zimmermann tzimmermann at suse.de
Mon Dec 13 01:51:24 PST 2021



Am 13.12.21 um 10:47 schrieb Thomas Zimmermann:
> Hi Maxime
> 
> Am 13.12.21 um 10:25 schrieb Maxime Ripard:
>> The bind hooks will modify their controller registers, so simplefb is
>> going to be unusable anyway. Let's avoid any transient state where it
>> could still be in the system but no longer functionnal.
>>
>> Acked-by: Nicolas Saenz Julienne <nsaenz at kernel.org>
>> Signed-off-by: Maxime Ripard <maxime at cerno.tech>
>> ---
>>   drivers/gpu/drm/vc4/vc4_drv.c | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/vc4/vc4_drv.c 
>> b/drivers/gpu/drm/vc4/vc4_drv.c
>> index 16abc3a3d601..8ab89f805826 100644
>> --- a/drivers/gpu/drm/vc4/vc4_drv.c
>> +++ b/drivers/gpu/drm/vc4/vc4_drv.c
>> @@ -251,6 +251,10 @@ static int vc4_drm_bind(struct device *dev)
> 
> Since you work on this, I'd like to suggest to call 
> drm_firmware_drivers_only() at the very top of this function. It's our 
> new interface for the kernel's nomodeset argument. If it returns false, 

s/false/true

> the user has disabled native drivers for this boot. The generic DRM 
> driver will continue to run the device.
> 
>>       if (ret)
>>           return ret;
>> +    ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
>> +    if (ret)
>> +        return ret;
>> +
> 
> There's quite a bit of work being done before calling this function. 
> None of it is allowed to touch HW.
> 
> Is that reliable? If so, the code is fine, otherwise the call should go 
> to the top of the function.
> 
> Best regards
> Thomas
> 
>>       ret = component_bind_all(dev, drm);
>>       if (ret)
>>           return ret;
>> @@ -259,10 +263,6 @@ static int vc4_drm_bind(struct device *dev)
>>       if (ret)
>>           goto unbind_all;
>> -    ret = drm_aperture_remove_framebuffers(false, &vc4_drm_driver);
>> -    if (ret)
>> -        goto unbind_all;
>> -
>>       ret = vc4_kms_load(drm);
>>       if (ret < 0)
>>           goto unbind_all;
>>
> 

-- 
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Ivo Totev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20211213/a67d4b18/attachment.sig>


More information about the linux-arm-kernel mailing list