Re: [PATCH 1/2] drm/i915: make backlight functions take a connector

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 30 Sep 2013 15:15:12 +0300
Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote:

> On Mon, Sep 30, 2013 at 11:18:28AM +0300, Jani Nikula wrote:
> > On Sat, 28 Sep 2013, Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote:
> > > On VLV/BYT, backlight controls a per-pipe, so when adjusting the
> > > backlight we need to pass the correct info.  So make the externally
> > > visible backlight functions take a connector argument, which can be used
> > > internally to figure out the pipe backlight to adjust.
> > >
> > > Signed-off-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx>
> > > ---
> > >  drivers/gpu/drm/i915/intel_display.c  |  8 +++++
> > >  drivers/gpu/drm/i915/intel_dp.c       |  5 ++-
> > >  drivers/gpu/drm/i915/intel_drv.h      |  8 +++--
> > >  drivers/gpu/drm/i915/intel_lvds.c     |  9 +++--
> > >  drivers/gpu/drm/i915/intel_opregion.c | 28 ++++++++++++++-
> > >  drivers/gpu/drm/i915/intel_panel.c    | 66 +++++++++++++++++++++--------------
> > >  6 files changed, 88 insertions(+), 36 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> > > index 9a7136c..d6a1868 100644
> > > --- a/drivers/gpu/drm/i915/intel_display.c
> > > +++ b/drivers/gpu/drm/i915/intel_display.c
> > > @@ -9716,6 +9716,14 @@ static void intel_crtc_init(struct drm_device *dev, int pipe)
> > >  	drm_crtc_helper_add(&intel_crtc->base, &intel_helper_funcs);
> > >  }
> > >  
> > > +enum pipe intel_get_pipe_from_connector(struct intel_connector *connector)
> > > +{
> > > +	struct intel_encoder *encoder = connector->encoder;
> > > +	struct intel_crtc *crtc = to_intel_crtc(encoder->base.crtc);
> > > +
> > > +	return crtc->pipe;
> > 
> > What if crtc == NULL?
> > 
> > I guess this shouldn't happen on the backlight enable/disable call paths
> > through encoder callbacks, but what about backlight sysfs and opregion?
> 
> I was discussing things a bit with Jani, and I'll repeat my thoughts
> here for others to see. Feel free to kick me if I get things totally 
> wrong as I don't know the backlight code, nor do I really want to.
> 
> We may need to handle backlight configuration requests when there's no
> pipe attached to the port, and we also want to be able to change the
> pipe<->port mapping, so my idea would be to shadow the backlight
> registers in the connector, and when we assign a pipe to the port,
> we write all the regs from the shadow copies to the real pipe blc
> registers. Otherwise I'm worried about all the rmw stuff we do to the
> registers, and leaving bits around in the registers from when the pipe
> was still used with some other port.

Yeah it's definitely a gap with this hw design.  Tracking those bits in
the connector makes more sense than having the backlight level change
if the panel gets moved between pipes.

Jesse
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux