backlight - chicken and egg challenge

Liviu Dudau liviu at dudau.co.uk
Tue Sep 11 12:48:11 UTC 2018


On Mon, Sep 10, 2018 at 09:27:24AM +0200, Boris Brezillon wrote:
> Hi Sam,
> 
> On Sat, 8 Sep 2018 22:17:55 +0200
> Sam Ravnborg <sam at ravnborg.org> wrote:
> 
> > Hi all.
> > 
> > When working on the DRM driver for Atmel LCDC the first approach
> > was to use a MFD driver, that had two sub-drivers:
> > - PWM dirver
> > - DRM driver
> > 
> > Feedback was that the PWM feature was too small to warrant a MFD driver.
> > (There was no consencus on this, but I anyway went ahead).
> > 
> > So the new approch is much simpler (from a code point of view):
> > DRM Driver that has one sub-driver
> > - PWM driver
> >   The PWM driver uses registers in the same memory
> >   range as the DRM driver, so the two drivers uses
> >   the same regmap.
> > 
> >   The PWM driver is located in pwm/
> >   The DRM driver is located in gpu/drm/atmel
> >     The DRM driver uses platform_device_register_data() to
> >     register the sub-device/driver.
> >     I have yet to see it work, but I think this is the right way
> >     to do it.
> > 
> > This all looked fine until reality kicked in.
> > 
> > 
> > There is the following dependency chain (=> depends on):
> > DRM Driver => Panel => Backlight => PWM => DRM Driver
> > 
> > The DRM Driver rely indirectly on the DRM driver, which it not OK.
> > 
> > So the open question is how to fix this dependency challenge?
> > 
> > 1) Drop the generic backlight driver and implement all pwm/backlight
> >    handling in the driver.
> > 2) Re-introduce the MFD driver.
> > 3) ?
> > 
> > Any good ideas?
> 
> I keep thinking #2 is the cleanest option. The fact is, the LCDC IP is
> actually providing 2 functionalities: a PWM (most of the time driving a
> backlight) and a display controller. Really, I don't see why
> representing this IP as an MFD is not appropriate, especially since the
> HLCDC MFD driver is already in place and can easily be re-used.

But can you enable the PWM functionality without the DRM mode? If yes, then
I do agree that a PWM driver should be re-introduced (MFD is a bit of a stretch,
to me that means "the driver there can do several things on its own", rather than
"this is the remaining functionality out of a different driver").

Best regards,
Liviu


> 
> What should be adjusted though, is the need for 2 sub-nodes: I think you
> can just use a single node and declare #pwm-cells at the top level.
> 
> Regards,
> 
> Boris
> 
> Regards,
> 
> Boris
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel


More information about the dri-devel mailing list