[PATCH] drm/edid/firmware: stop using throwaway platform device
Jani Nikula
jani.nikula at intel.com
Tue Oct 11 07:20:18 UTC 2022
On Tue, 11 Oct 2022, Matthieu CHARETTE <matthieu.charette at gmail.com> wrote:
> It should fix the issue. Meanwhile, the system will still crash if a
> new monitor is plugged while the machine is suspended. We might need to
> precache the EDID to prevent that.
Please elaborate.
BR,
Jani.
>
> Matthieu
>
> On Fri, Oct 7 2022 at 01:21:46 AM +0300, Jani Nikula
> <jani.nikula at intel.com> wrote:
>> We've used a temporary platform device for firmware EDID loading since
>> it was introduced in commit da0df92b5731 ("drm: allow loading an EDID
>> as
>> firmware to override broken monitor"), but there's no explanation why.
>>
>> Do we need to?
>>
>> Maybe this fixes the suspend/resume issue?
>>
>> (Yes, I'll rewrite the commit message if this is the way to go ;)
>>
>> References:
>> https://lore.kernel.org/r/20220727074152.43059-1-matthieu.charette@gmail.com
>> Cc: Matthieu CHARETTE <matthieu.charette at gmail.com>
>> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
>> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
>> ---
>> drivers/gpu/drm/drm_edid_load.c | 11 +----------
>> 1 file changed, 1 insertion(+), 10 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/drm_edid_load.c
>> b/drivers/gpu/drm/drm_edid_load.c
>> index 37d8ba3ddb46..fbae12130234 100644
>> --- a/drivers/gpu/drm/drm_edid_load.c
>> +++ b/drivers/gpu/drm/drm_edid_load.c
>> @@ -182,18 +182,9 @@ static void *edid_load(struct drm_connector
>> *connector, const char *name,
>> fwdata = generic_edid[builtin];
>> fwsize = sizeof(generic_edid[builtin]);
>> } else {
>> - struct platform_device *pdev;
>> int err;
>>
>> - pdev = platform_device_register_simple(connector_name, -1, NULL,
>> 0);
>> - if (IS_ERR(pdev)) {
>> - DRM_ERROR("Failed to register EDID firmware platform device "
>> - "for connector \"%s\"\n", connector_name);
>> - return ERR_CAST(pdev);
>> - }
>> -
>> - err = request_firmware(&fw, name, &pdev->dev);
>> - platform_device_unregister(pdev);
>> + err = request_firmware(&fw, name, connector->dev->dev);
>> if (err) {
>> DRM_ERROR("Requesting EDID firmware \"%s\" failed (err=%d)\n",
>> name, err);
>> --
>> 2.34.1
>>
>
>
--
Jani Nikula, Intel Open Source Graphics Center
More information about the dri-devel
mailing list