Message ID | 20220808035750.3111046-1-arun.r.murthy@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [PATCHv3] drm/i915/display: add support for dual panel backlight | expand |
Gentle Reminder! Thanks and Regard, Arun R Murthy -------------------- > -----Original Message----- > From: Murthy, Arun R <arun.r.murthy@intel.com> > Sent: Monday, August 8, 2022 9:28 AM > To: intel-gfx@lists.freedesktop.org > Cc: Nikula, Jani <jani.nikula@intel.com>; Murthy, Arun R > <arun.r.murthy@intel.com> > Subject: [PATCHv3] drm/i915/display: add support for dual panel backlight > > The patch with commit 20f85ef89d94 ("drm/i915/backlight: use unique > backlight device names") already adds support for dual panel backlight but > with error prints. Since the patch tried to create the backlight device with the > same name and upon failure will try with a different name it leads to failure > logs in dmesg inturn getting caught by CI. > > This patch alternately will check if the backlight class of same name exists, > will use a different name. > > v2: reworked on top of the patch commit 20f85ef89d94 > ("drm/i915/backlight: use unique backlight device names") > v3: fixed the ref count leak(Jani N) > > Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com> > --- > .../gpu/drm/i915/display/intel_backlight.c | 26 +++++++++---------- > 1 file changed, 12 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c > b/drivers/gpu/drm/i915/display/intel_backlight.c > index 110fc98ec280..931446413372 100644 > --- a/drivers/gpu/drm/i915/display/intel_backlight.c > +++ b/drivers/gpu/drm/i915/display/intel_backlight.c > @@ -971,26 +971,24 @@ int intel_backlight_device_register(struct > intel_connector *connector) > if (!name) > return -ENOMEM; > > - bd = backlight_device_register(name, connector->base.kdev, > connector, > - &intel_backlight_device_ops, &props); > - > - /* > - * Using the same name independent of the drm device or connector > - * prevents registration of multiple backlight devices in the > - * driver. However, we need to use the default name for backward > - * compatibility. Use unique names for subsequent backlight devices > as a > - * fallback when the default name already exists. > - */ > - if (IS_ERR(bd) && PTR_ERR(bd) == -EEXIST) { > + bd = backlight_device_get_by_name(name); > + if (bd) { > + put_device(&bd->dev); > + /* > + * Using the same name independent of the drm device or > connector > + * prevents registration of multiple backlight devices in the > + * driver. However, we need to use the default name for > backward > + * compatibility. Use unique names for subsequent backlight > devices as a > + * fallback when the default name already exists. > + */ > kfree(name); > name = kasprintf(GFP_KERNEL, "card%d-%s-backlight", > i915->drm.primary->index, connector- > >base.name); > if (!name) > return -ENOMEM; > - > - bd = backlight_device_register(name, connector->base.kdev, > connector, > - &intel_backlight_device_ops, > &props); > } > + bd = backlight_device_register(name, connector->base.kdev, > connector, > + &intel_backlight_device_ops, &props); > > if (IS_ERR(bd)) { > drm_err(&i915->drm, > -- > 2.25.1
On Mon, 08 Aug 2022, Arun R Murthy <arun.r.murthy@intel.com> wrote: > The patch with commit 20f85ef89d94 ("drm/i915/backlight: use unique > backlight device names") already adds support for dual panel backlight > but with error prints. Since the patch tried to create the backlight > device with the same name and upon failure will try with a different > name it leads to failure logs in dmesg inturn getting caught by CI. > > This patch alternately will check if the backlight class of same name > exists, will use a different name. Thanks for the patch, pushed to drm-intel-next. I took the liberty of rewriting the commit message a bit while pushing. BR, Jani. > > v2: reworked on top of the patch commit 20f85ef89d94 > ("drm/i915/backlight: use unique backlight device names") > v3: fixed the ref count leak(Jani N) > > Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com> > --- > .../gpu/drm/i915/display/intel_backlight.c | 26 +++++++++---------- > 1 file changed, 12 insertions(+), 14 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c > index 110fc98ec280..931446413372 100644 > --- a/drivers/gpu/drm/i915/display/intel_backlight.c > +++ b/drivers/gpu/drm/i915/display/intel_backlight.c > @@ -971,26 +971,24 @@ int intel_backlight_device_register(struct intel_connector *connector) > if (!name) > return -ENOMEM; > > - bd = backlight_device_register(name, connector->base.kdev, connector, > - &intel_backlight_device_ops, &props); > - > - /* > - * Using the same name independent of the drm device or connector > - * prevents registration of multiple backlight devices in the > - * driver. However, we need to use the default name for backward > - * compatibility. Use unique names for subsequent backlight devices as a > - * fallback when the default name already exists. > - */ > - if (IS_ERR(bd) && PTR_ERR(bd) == -EEXIST) { > + bd = backlight_device_get_by_name(name); > + if (bd) { > + put_device(&bd->dev); > + /* > + * Using the same name independent of the drm device or connector > + * prevents registration of multiple backlight devices in the > + * driver. However, we need to use the default name for backward > + * compatibility. Use unique names for subsequent backlight devices as a > + * fallback when the default name already exists. > + */ > kfree(name); > name = kasprintf(GFP_KERNEL, "card%d-%s-backlight", > i915->drm.primary->index, connector->base.name); > if (!name) > return -ENOMEM; > - > - bd = backlight_device_register(name, connector->base.kdev, connector, > - &intel_backlight_device_ops, &props); > } > + bd = backlight_device_register(name, connector->base.kdev, connector, > + &intel_backlight_device_ops, &props); > > if (IS_ERR(bd)) { > drm_err(&i915->drm,
diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c b/drivers/gpu/drm/i915/display/intel_backlight.c index 110fc98ec280..931446413372 100644 --- a/drivers/gpu/drm/i915/display/intel_backlight.c +++ b/drivers/gpu/drm/i915/display/intel_backlight.c @@ -971,26 +971,24 @@ int intel_backlight_device_register(struct intel_connector *connector) if (!name) return -ENOMEM; - bd = backlight_device_register(name, connector->base.kdev, connector, - &intel_backlight_device_ops, &props); - - /* - * Using the same name independent of the drm device or connector - * prevents registration of multiple backlight devices in the - * driver. However, we need to use the default name for backward - * compatibility. Use unique names for subsequent backlight devices as a - * fallback when the default name already exists. - */ - if (IS_ERR(bd) && PTR_ERR(bd) == -EEXIST) { + bd = backlight_device_get_by_name(name); + if (bd) { + put_device(&bd->dev); + /* + * Using the same name independent of the drm device or connector + * prevents registration of multiple backlight devices in the + * driver. However, we need to use the default name for backward + * compatibility. Use unique names for subsequent backlight devices as a + * fallback when the default name already exists. + */ kfree(name); name = kasprintf(GFP_KERNEL, "card%d-%s-backlight", i915->drm.primary->index, connector->base.name); if (!name) return -ENOMEM; - - bd = backlight_device_register(name, connector->base.kdev, connector, - &intel_backlight_device_ops, &props); } + bd = backlight_device_register(name, connector->base.kdev, connector, + &intel_backlight_device_ops, &props); if (IS_ERR(bd)) { drm_err(&i915->drm,
The patch with commit 20f85ef89d94 ("drm/i915/backlight: use unique backlight device names") already adds support for dual panel backlight but with error prints. Since the patch tried to create the backlight device with the same name and upon failure will try with a different name it leads to failure logs in dmesg inturn getting caught by CI. This patch alternately will check if the backlight class of same name exists, will use a different name. v2: reworked on top of the patch commit 20f85ef89d94 ("drm/i915/backlight: use unique backlight device names") v3: fixed the ref count leak(Jani N) Signed-off-by: Arun R Murthy <arun.r.murthy@intel.com> --- .../gpu/drm/i915/display/intel_backlight.c | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-)