From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v3 09/33] drm/i915: Move panel's pipe from backlight setup to init
Date: Fri, 3 Jun 2016 18:04:36 +0300 [thread overview]
Message-ID: <20160603150436.GA4329@intel.com> (raw)
In-Reply-To: <1464964636-3877-10-git-send-email-chris@chris-wilson.co.uk>
On Fri, Jun 03, 2016 at 03:36:52PM +0100, Chris Wilson wrote:
> In the very near future, we will perform the backlight setup
> consistently during connector registration - moving the setup further
> away from the intel_panel_init call and to where we no longer know the
> associated pipe. To pass that information along we need to store it
> during init.
This looks like the wrong approach. The setup hook should be called
at connector init time. In fact the code looks correcto to me already,
as in we have two phases already: setup and register.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jani Nikula <jani.nikula@linux.intel.com>
> ---
> drivers/gpu/drm/i915/intel_dp.c | 6 ++++--
> drivers/gpu/drm/i915/intel_drv.h | 6 ++++--
> drivers/gpu/drm/i915/intel_dsi.c | 6 ++++--
> drivers/gpu/drm/i915/intel_dvo.c | 3 ++-
> drivers/gpu/drm/i915/intel_lvds.c | 6 ++++--
> drivers/gpu/drm/i915/intel_panel.c | 11 +++++++----
> 6 files changed, 25 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index f97cd5305e4c..809680bc5d04 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -5402,9 +5402,11 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
> pipe_name(pipe));
> }
>
> - intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
> + intel_panel_init(&intel_connector->panel,
> + fixed_mode, downclock_mode,
> + pipe);
> intel_connector->panel.backlight.power = intel_edp_backlight_power;
> - intel_panel_setup_backlight(connector, pipe);
> + intel_panel_setup_backlight(connector);
>
> return true;
> }
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index b3fffd805225..250b7c5d992e 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -202,6 +202,7 @@ struct intel_panel {
> struct drm_display_mode *downclock_mode;
> int fitting_mode;
> bool is_panel;
> + enum pipe pipe;
>
> /* backlight */
> struct {
> @@ -1476,7 +1477,8 @@ void intel_overlay_reset(struct drm_i915_private *dev_priv);
> /* intel_panel.c */
> int intel_panel_init(struct intel_panel *panel,
> struct drm_display_mode *fixed_mode,
> - struct drm_display_mode *downclock_mode);
> + struct drm_display_mode *downclock_mode,
> + enum pipe pipe);
> void intel_panel_fini(struct intel_panel *panel);
> void intel_fixed_panel_mode(const struct drm_display_mode *fixed_mode,
> struct drm_display_mode *adjusted_mode);
> @@ -1488,7 +1490,7 @@ void intel_gmch_panel_fitting(struct intel_crtc *crtc,
> int fitting_mode);
> void intel_panel_set_backlight_acpi(struct intel_connector *connector,
> u32 level, u32 max);
> -int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe);
> +int intel_panel_setup_backlight(struct drm_connector *connector);
> void intel_panel_enable_backlight(struct intel_connector *connector);
> void intel_panel_disable_backlight(struct intel_connector *connector);
> void intel_panel_destroy_backlight(struct drm_connector *connector);
> diff --git a/drivers/gpu/drm/i915/intel_dsi.c b/drivers/gpu/drm/i915/intel_dsi.c
> index c70132aa91d5..64d6e397639f 100644
> --- a/drivers/gpu/drm/i915/intel_dsi.c
> +++ b/drivers/gpu/drm/i915/intel_dsi.c
> @@ -1581,13 +1581,15 @@ void intel_dsi_init(struct drm_device *dev)
> connector->display_info.width_mm = fixed_mode->width_mm;
> connector->display_info.height_mm = fixed_mode->height_mm;
>
> - intel_panel_init(&intel_connector->panel, fixed_mode, NULL);
> + intel_panel_init(&intel_connector->panel,
> + fixed_mode, NULL,
> + INVALID_PIPE);
>
> intel_dsi_add_properties(intel_connector);
>
> drm_connector_register(connector);
>
> - intel_panel_setup_backlight(connector, INVALID_PIPE);
> + intel_panel_setup_backlight(connector);
>
> return;
>
> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
> index a456f2eb68b6..c1c8a1cf4420 100644
> --- a/drivers/gpu/drm/i915/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/intel_dvo.c
> @@ -547,7 +547,8 @@ void intel_dvo_init(struct drm_device *dev)
> */
> intel_panel_init(&intel_connector->panel,
> intel_dvo_get_current_mode(connector),
> - NULL);
> + NULL,
> + INVALID_PIPE);
> intel_dvo->panel_wants_dither = true;
> }
>
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index 62eaa895fe5b..1ceaf8db1545 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -1118,7 +1118,9 @@ void intel_lvds_init(struct drm_device *dev)
> out:
> mutex_unlock(&dev->mode_config.mutex);
>
> - intel_panel_init(&intel_connector->panel, fixed_mode, downclock_mode);
> + intel_panel_init(&intel_connector->panel,
> + fixed_mode, downclock_mode,
> + INVALID_PIPE);
>
> lvds_encoder->is_dual_link = compute_is_dual_link_lvds(lvds_encoder);
> DRM_DEBUG_KMS("detected %s-link lvds configuration\n",
> @@ -1133,7 +1135,7 @@ out:
> }
> drm_connector_register(connector);
>
> - intel_panel_setup_backlight(connector, INVALID_PIPE);
> + intel_panel_setup_backlight(connector);
>
> return;
>
> diff --git a/drivers/gpu/drm/i915/intel_panel.c b/drivers/gpu/drm/i915/intel_panel.c
> index 8bd076b11af1..dfd388567fa7 100644
> --- a/drivers/gpu/drm/i915/intel_panel.c
> +++ b/drivers/gpu/drm/i915/intel_panel.c
> @@ -1663,7 +1663,7 @@ static int pwm_setup_backlight(struct intel_connector *connector,
> return 0;
> }
>
> -int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe)
> +int intel_panel_setup_backlight(struct drm_connector *connector)
> {
> struct drm_i915_private *dev_priv = to_i915(connector->dev);
> struct intel_connector *intel_connector = to_intel_connector(connector);
> @@ -1688,7 +1688,7 @@ int intel_panel_setup_backlight(struct drm_connector *connector, enum pipe pipe)
>
> /* set level and max in panel struct */
> mutex_lock(&dev_priv->backlight_lock);
> - ret = panel->backlight.setup(intel_connector, pipe);
> + ret = panel->backlight.setup(intel_connector, panel->pipe);
> mutex_unlock(&dev_priv->backlight_lock);
>
> if (ret) {
> @@ -1796,13 +1796,16 @@ intel_panel_init_backlight_funcs(struct intel_panel *panel)
>
> int intel_panel_init(struct intel_panel *panel,
> struct drm_display_mode *fixed_mode,
> - struct drm_display_mode *downclock_mode)
> + struct drm_display_mode *downclock_mode,
> + enum pipe pipe)
> {
> intel_panel_init_backlight_funcs(panel);
>
> + panel->is_panel = true;
> + panel->pipe = pipe;
> +
> panel->fixed_mode = fixed_mode;
> panel->downclock_mode = downclock_mode;
> - panel->is_panel = true;
>
> return 0;
> }
> --
> 2.8.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-06-03 15:04 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-03 14:36 BAT regression bug 95634, take 3 Chris Wilson
2016-06-03 14:36 ` [PATCH v3 01/33] drm: Export drm_dev_init() for subclassing Chris Wilson
2016-06-03 14:36 ` [PATCH v3 02/33] drm: Add a callback from connector registering Chris Wilson
2016-06-03 14:36 ` [PATCH v3 03/33] drm: Make drm_connector_register() safe against multiple calls Chris Wilson
2016-06-03 14:36 ` [PATCH v3 04/33] drm: Automatically unregister the connector during cleanup Chris Wilson
2016-06-03 14:36 ` [PATCH v3 05/33] drm: Pass the drm_dp_aux->hw_mutex to i2c for its locking Chris Wilson
2016-06-03 15:11 ` Ville Syrjälä
2016-06-03 14:36 ` [PATCH v3 06/33] drm: Minimally initialise drm_dp_aux Chris Wilson
2016-06-03 14:59 ` Ville Syrjälä
2016-06-09 20:57 ` Chris Wilson
2016-06-10 10:26 ` Ville Syrjälä
2016-06-10 10:50 ` Chris Wilson
2016-06-03 14:36 ` [PATCH v3 07/33] drm/i915: Perform async fbdev initialisation much later Chris Wilson
2016-06-03 14:36 ` [PATCH v3 08/33] drm/i915: Make panel/backlight safe to setup/cleanup multiple times Chris Wilson
2016-06-03 14:36 ` [PATCH v3 09/33] drm/i915: Move panel's pipe from backlight setup to init Chris Wilson
2016-06-03 15:04 ` Ville Syrjälä [this message]
2016-06-03 15:22 ` Chris Wilson
2016-06-03 14:36 ` [PATCH v3 10/33] drm/i915: Move intel_connector->unregister to connector->early_unregister Chris Wilson
2016-06-03 14:36 ` [PATCH v3 11/33] drm/i915: Move backlight unregistration to connector unregistration Chris Wilson
2016-06-03 14:36 ` [PATCH v3 12/33] drm/i915: Move registration actions to connector->late_register Chris Wilson
2016-06-03 14:36 ` [PATCH v3 13/33] drm/i915/dp: Free the drm_dp_aux along with the encoder Chris Wilson
2016-06-03 14:36 ` [PATCH v3 14/33] drm/i915: Move backlight setup to connector registration Chris Wilson
2016-06-03 14:36 ` [PATCH v3 15/33] drm/i915: Move backlight registration " Chris Wilson
2016-06-03 14:36 ` [PATCH v3 16/33] drm/i915: Move connector registration to driver registration Chris Wilson
2016-06-03 14:37 ` [PATCH v3 17/33] drm/i915: Register debugfs interface last Chris Wilson
2016-06-03 14:37 ` [PATCH v3 18/33] drm/i915: Demidlayer driver loading Chris Wilson
2016-06-03 14:37 ` [PATCH v3 19/33] drm/i915: Demidlayer driver unloading Chris Wilson
2016-06-03 14:37 ` [PATCH v3 20/33] drm/i915: Start exploiting drm_device subclassing Chris Wilson
2016-06-03 14:37 ` [PATCH v3 21/33] drm/i915: Merge i915_dma.c into i915_drv.c Chris Wilson
2016-06-03 14:37 ` [PATCH v3 22/33] drm/i915: Split out the PCI driver interface to i915_pci.c Chris Wilson
2016-06-03 14:37 ` [PATCH v3 23/33] drm/i915: Move module init/exit " Chris Wilson
2016-06-08 8:57 ` Joonas Lahtinen
2016-06-03 14:37 ` [PATCH v3 24/33] drm/i915: Skip idling an idle engine Chris Wilson
2016-06-03 14:37 ` [PATCH v3 25/33] drm/i915: Move legacy kernel context pinning to intel_ringbuffer.c Chris Wilson
2016-06-03 14:37 ` [PATCH v3 26/33] drm/i915: Treat kernel context as initialised Chris Wilson
2016-06-07 9:23 ` Joonas Lahtinen
2016-06-03 14:37 ` [PATCH v3 27/33] drm/i915: Mark all default contexts as uninitialised after context loss Chris Wilson
2016-06-03 14:37 ` [PATCH v3 28/33] drm/i915: No need to wait for idle on L3 remap Chris Wilson
2016-06-03 14:37 ` [PATCH v3 29/33] drm/i915: Split idling from forcing context switch Chris Wilson
2016-06-08 9:02 ` Joonas Lahtinen
2016-06-08 10:56 ` Chris Wilson
2016-06-03 14:37 ` [PATCH v3 30/33] drm/i915: Only switch to default context when evicting from GGTT Chris Wilson
2016-06-03 14:37 ` [PATCH v3 31/33] drm/i915: Preserve current RPS frequency Chris Wilson
2016-06-03 14:37 ` [PATCH v3 32/33] drm/i915: Remove superfluous powersave work flushing Chris Wilson
2016-06-03 14:37 ` [PATCH v3 33/33] drm/i915: Defer enabling rc6 til after we submit the first batch/context Chris Wilson
2016-06-03 15:17 ` ✗ Ro.CI.BAT: warning for series starting with [v3,01/33] drm: Export drm_dev_init() for subclassing Patchwork
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=20160603150436.GA4329@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).