From: Daniel Vetter <daniel@ffwll.ch>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Jani Nikula <jani.nikula@intel.com>,
intel-gfx@lists.freedesktop.org, Ben Widawsky <ben@bwidawsk.net>
Subject: Re: [RFC PATCH 1/2] drm/i915: shuffle panel code
Date: Tue, 20 May 2014 21:08:12 +0200 [thread overview]
Message-ID: <20140520190812.GC24095@phenom.ffwll.local> (raw)
In-Reply-To: <20140520120027.0bbd698c@jbarnes-desktop>
On Tue, May 20, 2014 at 12:00:27PM -0700, Jesse Barnes wrote:
> On Tue, 29 Apr 2014 23:30:48 +0300
> Jani Nikula <jani.nikula@intel.com> wrote:
>
> > Somehow a few functions have been dropped in the middle of backlight
> > code. Move them around. No functional changes.
> >
> > Signed-off-by: Jani Nikula <jani.nikula@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_panel.c | 150 ++++++++++++++++++-------------------
> > 1 file changed, 75 insertions(+), 75 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> > index 44ad415e3706..776249bab488 100644
> > --- a/drivers/gpu/drm/i915/intel_panel.c
> > +++ b/drivers/gpu/drm/i915/intel_panel.c
> > @@ -42,6 +42,59 @@ intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode,
> > drm_mode_set_crtcinfo(adjusted_mode, 0);
> > }
> >
> > +/**
> > + * intel_find_panel_downclock - find the reduced downclock for LVDS in EDID
> > + * @dev: drm device
> > + * @fixed_mode : panel native mode
> > + * @connector: LVDS/eDP connector
> > + *
> > + * Return downclock_avail
> > + * Find the reduced downclock for LVDS/eDP in EDID.
> > + */
> > +struct drm_display_mode *
> > +intel_find_panel_downclock(struct drm_device *dev,
> > + struct drm_display_mode *fixed_mode,
> > + struct drm_connector *connector)
> > +{
> > + struct drm_display_mode *scan, *tmp_mode;
> > + int temp_downclock;
> > +
> > + temp_downclock = fixed_mode->clock;
> > + tmp_mode = NULL;
> > +
> > + list_for_each_entry(scan, &connector->probed_modes, head) {
> > + /*
> > + * If one mode has the same resolution with the fixed_panel
> > + * mode while they have the different refresh rate, it means
> > + * that the reduced downclock is found. In such
> > + * case we can set the different FPx0/1 to dynamically select
> > + * between low and high frequency.
> > + */
> > + if (scan->hdisplay == fixed_mode->hdisplay &&
> > + scan->hsync_start == fixed_mode->hsync_start &&
> > + scan->hsync_end == fixed_mode->hsync_end &&
> > + scan->htotal == fixed_mode->htotal &&
> > + scan->vdisplay == fixed_mode->vdisplay &&
> > + scan->vsync_start == fixed_mode->vsync_start &&
> > + scan->vsync_end == fixed_mode->vsync_end &&
> > + scan->vtotal == fixed_mode->vtotal) {
> > + if (scan->clock < temp_downclock) {
> > + /*
> > + * The downclock is already found. But we
> > + * expect to find the lower downclock.
> > + */
> > + temp_downclock = scan->clock;
> > + tmp_mode = scan;
> > + }
> > + }
> > + }
> > +
> > + if (temp_downclock < fixed_mode->clock)
> > + return drm_mode_duplicate(dev, tmp_mode);
> > + else
> > + return NULL;
> > +}
> > +
> > /* adjusted_mode has been preset to be the panel's fixed mode */
> > void
> > intel_pch_panel_fitting(struct intel_crtc *intel_crtc,
> > @@ -323,6 +376,28 @@ out:
> > pipe_config->gmch_pfit.lvds_border_bits = border;
> > }
> >
> > +enum drm_connector_status
> > +intel_panel_detect(struct drm_device *dev)
> > +{
> > + struct drm_i915_private *dev_priv = dev->dev_private;
> > +
> > + /* Assume that the BIOS does not lie through the OpRegion... */
> > + if (!i915.panel_ignore_lid && dev_priv->opregion.lid_state) {
> > + return ioread32(dev_priv->opregion.lid_state) & 0x1 ?
> > + connector_status_connected :
> > + connector_status_disconnected;
> > + }
> > +
> > + switch (i915.panel_ignore_lid) {
> > + case -2:
> > + return connector_status_connected;
> > + case -1:
> > + return connector_status_disconnected;
> > + default:
> > + return connector_status_unknown;
> > + }
> > +}
> > +
> > static u32 intel_panel_compute_brightness(struct intel_connector *connector,
> > u32 val)
> > {
> > @@ -795,28 +870,6 @@ void intel_panel_enable_backlight(struct intel_connector *connector)
> > spin_unlock_irqrestore(&dev_priv->backlight_lock, flags);
> > }
> >
> > -enum drm_connector_status
> > -intel_panel_detect(struct drm_device *dev)
> > -{
> > - struct drm_i915_private *dev_priv = dev->dev_private;
> > -
> > - /* Assume that the BIOS does not lie through the OpRegion... */
> > - if (!i915.panel_ignore_lid && dev_priv->opregion.lid_state) {
> > - return ioread32(dev_priv->opregion.lid_state) & 0x1 ?
> > - connector_status_connected :
> > - connector_status_disconnected;
> > - }
> > -
> > - switch (i915.panel_ignore_lid) {
> > - case -2:
> > - return connector_status_connected;
> > - case -1:
> > - return connector_status_disconnected;
> > - default:
> > - return connector_status_unknown;
> > - }
> > -}
> > -
> > #if IS_ENABLED(CONFIG_BACKLIGHT_CLASS_DEVICE)
> > static int intel_backlight_device_update_status(struct backlight_device *bd)
> > {
> > @@ -1103,59 +1156,6 @@ void intel_panel_destroy_backlight(struct drm_connector *connector)
> > intel_backlight_device_unregister(intel_connector);
> > }
> >
> > -/**
> > - * intel_find_panel_downclock - find the reduced downclock for LVDS in EDID
> > - * @dev: drm device
> > - * @fixed_mode : panel native mode
> > - * @connector: LVDS/eDP connector
> > - *
> > - * Return downclock_avail
> > - * Find the reduced downclock for LVDS/eDP in EDID.
> > - */
> > -struct drm_display_mode *
> > -intel_find_panel_downclock(struct drm_device *dev,
> > - struct drm_display_mode *fixed_mode,
> > - struct drm_connector *connector)
> > -{
> > - struct drm_display_mode *scan, *tmp_mode;
> > - int temp_downclock;
> > -
> > - temp_downclock = fixed_mode->clock;
> > - tmp_mode = NULL;
> > -
> > - list_for_each_entry(scan, &connector->probed_modes, head) {
> > - /*
> > - * If one mode has the same resolution with the fixed_panel
> > - * mode while they have the different refresh rate, it means
> > - * that the reduced downclock is found. In such
> > - * case we can set the different FPx0/1 to dynamically select
> > - * between low and high frequency.
> > - */
> > - if (scan->hdisplay == fixed_mode->hdisplay &&
> > - scan->hsync_start == fixed_mode->hsync_start &&
> > - scan->hsync_end == fixed_mode->hsync_end &&
> > - scan->htotal == fixed_mode->htotal &&
> > - scan->vdisplay == fixed_mode->vdisplay &&
> > - scan->vsync_start == fixed_mode->vsync_start &&
> > - scan->vsync_end == fixed_mode->vsync_end &&
> > - scan->vtotal == fixed_mode->vtotal) {
> > - if (scan->clock < temp_downclock) {
> > - /*
> > - * The downclock is already found. But we
> > - * expect to find the lower downclock.
> > - */
> > - temp_downclock = scan->clock;
> > - tmp_mode = scan;
> > - }
> > - }
> > - }
> > -
> > - if (temp_downclock < fixed_mode->clock)
> > - return drm_mode_duplicate(dev, tmp_mode);
> > - else
> > - return NULL;
> > -}
> > -
> > /* Set up chip specific backlight functions */
> > void intel_panel_init_backlight_funcs(struct drm_device *dev)
> > {
>
> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Queued for -next, thanks for the patch.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
prev parent reply other threads:[~2014-05-20 19:08 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-29 20:30 [RFC PATCH 1/2] drm/i915: shuffle panel code Jani Nikula
2014-04-29 20:30 ` [RFC PATCH 2/2] drm/i915: respect the VBT minimum backlight brightness Jani Nikula
2014-04-29 20:37 ` Jani Nikula
2014-05-20 19:08 ` Jesse Barnes
2014-06-06 13:40 ` Jani Nikula
2014-06-03 16:40 ` Stéphane Marchesin
2014-06-03 20:26 ` Daniel Vetter
2014-06-04 8:25 ` Stéphane Marchesin
2014-06-04 9:11 ` Jani Nikula
2014-06-04 15:04 ` Stéphane Marchesin
2014-06-05 16:30 ` Jesse Barnes
2014-06-05 16:34 ` Matthew Garrett
2014-05-20 19:00 ` [RFC PATCH 1/2] drm/i915: shuffle panel code Jesse Barnes
2014-05-20 19:08 ` Daniel Vetter [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140520190812.GC24095@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=ben@bwidawsk.net \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=jbarnes@virtuousgeek.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.