intel-gfx.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
From: Paulo Zanoni <przanoni@gmail.com>
To: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915: simplify possible_clones computation
Date: Thu, 12 Jul 2012 16:48:13 -0300	[thread overview]
Message-ID: <CA+gsUGQZNWNAhi0kTWZaiKyVSO6tPQz-phG-m5jq0yTGSAAJFw@mail.gmail.com> (raw)
In-Reply-To: <1342116498-12955-1-git-send-email-daniel.vetter@ffwll.ch>

2012/7/12 Daniel Vetter <daniel.vetter@ffwll.ch>:
> Intel hw only has one MUX for encoders, so outputs are either not
> cloneable or all in the same group of cloneable outputs. This neatly
> simplifies the code and allows us to ditch some ugly if cascades in
> the dp and hdmi init code (well, we need these if cascades for other
> stuff still, but that can be taken care of in follow-up patches).
>
> Note that this changes two things:
> - dvo can now be cloned with sdvo, but dvo is gen2 whereas sdvo is
>   gen3+, so no problem. Note that the old code had a bug and didn't
>   allow cloning crt with dvo (but only the other way round).
> - sdvo-lvds can now be cloned with sdvo-non-tv. Spec says this won't
>   work, but the only reason I've found is that you can't use the
>   panel-fitter (used for lvds upscaling) with anything else. But we
>   don't use the panel fitter for sdvo-lvds. Imo this part of Bspec is
>   a) rather confusing b) mostly as a guideline to implementors (i.e.
>   explicitly stating what is already implicit from the spec, without
>   always going into the details of why). So I think we can ignore this
>   - worst case we'll get a bug report from a user with with sdvo-lvds
>   and sdvo-tmds and have to add that special case back in.
>
> Because sdvo lvds is a bit special explain in comments why sdvo LVDS
> outputs can be cloned, but native LVDS and eDP can't be cloned - we
> use the panel fitter for the later, but not for sdvo.
>
> Note that this also uncoditionally initializes the panel_vdd work used
> by eDP. Trying to be clever doesn't buy us anything (but strange bugs)
> and this way we can kill the is_edp check.
>
> v2: Incorporate review from Paulo
> - Add in a missing space.
> - Pimp comment message to address his concerns.
>
> Signed-Off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>

If you try to commit this to dinq you'll get a conflict on
intel_drv.h. This is easy to fix, so you can keep the R-B after that
:)

> ---
>  drivers/gpu/drm/i915/intel_crt.c     |    4 +---
>  drivers/gpu/drm/i915/intel_display.c |   18 +++++++++++++-----
>  drivers/gpu/drm/i915/intel_dp.c      |   14 +++-----------
>  drivers/gpu/drm/i915/intel_drv.h     |   25 +++++--------------------
>  drivers/gpu/drm/i915/intel_dvo.c     |    7 ++-----
>  drivers/gpu/drm/i915/intel_hdmi.c    |   10 ++--------
>  drivers/gpu/drm/i915/intel_lvds.c    |    2 +-
>  drivers/gpu/drm/i915/intel_sdvo.c    |   14 +++++++-------
>  drivers/gpu/drm/i915/intel_tv.c      |    2 +-
>  9 files changed, 35 insertions(+), 61 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
> index 9525822..c3f6680 100644
> --- a/drivers/gpu/drm/i915/intel_crt.c
> +++ b/drivers/gpu/drm/i915/intel_crt.c
> @@ -690,9 +690,7 @@ void intel_crt_init(struct drm_device *dev)
>         intel_connector_attach_encoder(intel_connector, &crt->base);
>
>         crt->base.type = INTEL_OUTPUT_ANALOG;
> -       crt->base.clone_mask = (1 << INTEL_SDVO_NON_TV_CLONE_BIT |
> -                               1 << INTEL_ANALOG_CLONE_BIT |
> -                               1 << INTEL_SDVO_LVDS_CLONE_BIT);
> +       crt->base.cloneable = true;
>         if (IS_HASWELL(dev))
>                 crt->base.crtc_mask = (1 << 0);
>         else
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 1a201b2..38891ff 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -6716,15 +6716,23 @@ int intel_get_pipe_from_crtc_id(struct drm_device *dev, void *data,
>         return 0;
>  }
>
> -static int intel_encoder_clones(struct drm_device *dev, int type_mask)
> +static int intel_encoder_clones(struct intel_encoder *encoder)
>  {
> -       struct intel_encoder *encoder;
> +       struct drm_device *dev = encoder->base.dev;
> +       struct intel_encoder *source_encoder;
>         int index_mask = 0;
>         int entry = 0;
>
> -       list_for_each_entry(encoder, &dev->mode_config.encoder_list, base.head) {
> -               if (type_mask & encoder->clone_mask)
> +       list_for_each_entry(source_encoder,
> +                           &dev->mode_config.encoder_list, base.head) {
> +
> +               if (encoder == source_encoder)
>                         index_mask |= (1 << entry);
> +
> +               /* Intel hw has only one MUX where enocoders could be cloned. */
> +               if (encoder->cloneable && source_encoder->cloneable)
> +                       index_mask |= (1 << entry);
> +
>                 entry++;
>         }
>
> @@ -6883,7 +6891,7 @@ static void intel_setup_outputs(struct drm_device *dev)
>         list_for_each_entry(encoder, &dev->mode_config.encoder_list, base.head) {
>                 encoder->base.possible_crtcs = encoder->crtc_mask;
>                 encoder->base.possible_clones =
> -                       intel_encoder_clones(dev, encoder->clone_mask);
> +                       intel_encoder_clones(encoder);
>         }
>
>         /* disable all the possible outputs/crtcs before entering KMS mode */
> diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
> index 3190e9d..95b1022 100644
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -2481,18 +2481,10 @@ intel_dp_init(struct drm_device *dev, int output_reg)
>
>         connector->polled = DRM_CONNECTOR_POLL_HPD;
>
> -       if (output_reg == DP_B || output_reg == PCH_DP_B)
> -               intel_encoder->clone_mask = (1 << INTEL_DP_B_CLONE_BIT);
> -       else if (output_reg == DP_C || output_reg == PCH_DP_C)
> -               intel_encoder->clone_mask = (1 << INTEL_DP_C_CLONE_BIT);
> -       else if (output_reg == DP_D || output_reg == PCH_DP_D)
> -               intel_encoder->clone_mask = (1 << INTEL_DP_D_CLONE_BIT);
> +       intel_encoder->cloneable = false;
>
> -       if (is_edp(intel_dp)) {
> -               intel_encoder->clone_mask = (1 << INTEL_EDP_CLONE_BIT);
> -               INIT_DELAYED_WORK(&intel_dp->panel_vdd_work,
> -                                 ironlake_panel_vdd_work);
> -       }
> +       INIT_DELAYED_WORK(&intel_dp->panel_vdd_work,
> +                         ironlake_panel_vdd_work);
>
>         intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
>
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index 16680e5..f8c1f04 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -89,25 +89,6 @@
>  #define INTEL_OUTPUT_DISPLAYPORT 7
>  #define INTEL_OUTPUT_EDP 8
>
> -/* Intel Pipe Clone Bit */
> -#define INTEL_HDMIB_CLONE_BIT 1
> -#define INTEL_HDMIC_CLONE_BIT 2
> -#define INTEL_HDMID_CLONE_BIT 3
> -#define INTEL_HDMIE_CLONE_BIT 4
> -#define INTEL_HDMIF_CLONE_BIT 5
> -#define INTEL_SDVO_NON_TV_CLONE_BIT 6
> -#define INTEL_SDVO_TV_CLONE_BIT 7
> -#define INTEL_SDVO_LVDS_CLONE_BIT 8
> -#define INTEL_ANALOG_CLONE_BIT 9
> -#define INTEL_TV_CLONE_BIT 10
> -#define INTEL_DP_B_CLONE_BIT 11
> -#define INTEL_DP_C_CLONE_BIT 12
> -#define INTEL_DP_D_CLONE_BIT 13
> -#define INTEL_LVDS_CLONE_BIT 14
> -#define INTEL_DVO_TMDS_CLONE_BIT 15
> -#define INTEL_DVO_LVDS_CLONE_BIT 16
> -#define INTEL_EDP_CLONE_BIT 17
> -
>  #define INTEL_DVO_CHIP_NONE 0
>  #define INTEL_DVO_CHIP_LVDS 1
>  #define INTEL_DVO_CHIP_TMDS 2
> @@ -153,11 +134,15 @@ struct intel_encoder {
>         int type;
>         bool needs_tv_clock;
>         bool connectors_active;
> +       /*
> +        * Intel hw has only one MUX where encoders could be clone, hence a
> +        * simple flag is enough to compute the possible_clones mask.
> +        */
> +       bool cloneable;
>         void (*hot_plug)(struct intel_encoder *);
>         void (*enable)(struct intel_encoder *);
>         void (*disable)(struct intel_encoder *);
>         int crtc_mask;
> -       int clone_mask;
>  };
>
>  struct intel_connector {
> diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
> index 756e977..86a3d2b 100644
> --- a/drivers/gpu/drm/i915/intel_dvo.c
> +++ b/drivers/gpu/drm/i915/intel_dvo.c
> @@ -424,17 +424,14 @@ void intel_dvo_init(struct drm_device *dev)
>                 intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
>                 switch (dvo->type) {
>                 case INTEL_DVO_CHIP_TMDS:
> -                       intel_encoder->clone_mask =
> -                               (1 << INTEL_DVO_TMDS_CLONE_BIT) |
> -                               (1 << INTEL_ANALOG_CLONE_BIT);
> +                       intel_encoder->cloneable = true;
>                         drm_connector_init(dev, connector,
>                                            &intel_dvo_connector_funcs,
>                                            DRM_MODE_CONNECTOR_DVII);
>                         encoder_type = DRM_MODE_ENCODER_TMDS;
>                         break;
>                 case INTEL_DVO_CHIP_LVDS:
> -                       intel_encoder->clone_mask =
> -                               (1 << INTEL_DVO_LVDS_CLONE_BIT);
> +                       intel_encoder->cloneable = false;
>                         drm_connector_init(dev, connector,
>                                            &intel_dvo_connector_funcs,
>                                            DRM_MODE_CONNECTOR_LVDS);
> diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
> index 188399f..b01900d 100644
> --- a/drivers/gpu/drm/i915/intel_hdmi.c
> +++ b/drivers/gpu/drm/i915/intel_hdmi.c
> @@ -959,42 +959,36 @@ void intel_hdmi_init(struct drm_device *dev, int sdvox_reg)
>         connector->doublescan_allowed = 0;
>         intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
>
> +       intel_encoder->cloneable = false;
> +
>         /* Set up the DDC bus. */
>         if (sdvox_reg == SDVOB) {
> -               intel_encoder->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT);
>                 intel_hdmi->ddc_bus = GMBUS_PORT_DPB;
>                 dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS;
>         } else if (sdvox_reg == SDVOC) {
> -               intel_encoder->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT);
>                 intel_hdmi->ddc_bus = GMBUS_PORT_DPC;
>                 dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS;
>         } else if (sdvox_reg == HDMIB) {
> -               intel_encoder->clone_mask = (1 << INTEL_HDMID_CLONE_BIT);
>                 intel_hdmi->ddc_bus = GMBUS_PORT_DPB;
>                 dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS;
>         } else if (sdvox_reg == HDMIC) {
> -               intel_encoder->clone_mask = (1 << INTEL_HDMIE_CLONE_BIT);
>                 intel_hdmi->ddc_bus = GMBUS_PORT_DPC;
>                 dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS;
>         } else if (sdvox_reg == HDMID) {
> -               intel_encoder->clone_mask = (1 << INTEL_HDMIF_CLONE_BIT);
>                 intel_hdmi->ddc_bus = GMBUS_PORT_DPD;
>                 dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS;
>         } else if (sdvox_reg == DDI_BUF_CTL(PORT_B)) {
>                 DRM_DEBUG_DRIVER("LPT: detected output on DDI B\n");
> -               intel_encoder->clone_mask = (1 << INTEL_HDMIB_CLONE_BIT);
>                 intel_hdmi->ddc_bus = GMBUS_PORT_DPB;
>                 intel_hdmi->ddi_port = PORT_B;
>                 dev_priv->hotplug_supported_mask |= HDMIB_HOTPLUG_INT_STATUS;
>         } else if (sdvox_reg == DDI_BUF_CTL(PORT_C)) {
>                 DRM_DEBUG_DRIVER("LPT: detected output on DDI C\n");
> -               intel_encoder->clone_mask = (1 << INTEL_HDMIC_CLONE_BIT);
>                 intel_hdmi->ddc_bus = GMBUS_PORT_DPC;
>                 intel_hdmi->ddi_port = PORT_C;
>                 dev_priv->hotplug_supported_mask |= HDMIC_HOTPLUG_INT_STATUS;
>         } else if (sdvox_reg == DDI_BUF_CTL(PORT_D)) {
>                 DRM_DEBUG_DRIVER("LPT: detected output on DDI D\n");
> -               intel_encoder->clone_mask = (1 << INTEL_HDMID_CLONE_BIT);
>                 intel_hdmi->ddc_bus = GMBUS_PORT_DPD;
>                 intel_hdmi->ddi_port = PORT_D;
>                 dev_priv->hotplug_supported_mask |= HDMID_HOTPLUG_INT_STATUS;
> diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
> index f1d0a05..1e879bf 100644
> --- a/drivers/gpu/drm/i915/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/intel_lvds.c
> @@ -943,7 +943,7 @@ bool intel_lvds_init(struct drm_device *dev)
>         intel_connector_attach_encoder(intel_connector, intel_encoder);
>         intel_encoder->type = INTEL_OUTPUT_LVDS;
>
> -       intel_encoder->clone_mask = (1 << INTEL_LVDS_CLONE_BIT);
> +       intel_encoder->cloneable = false;
>         if (HAS_PCH_SPLIT(dev))
>                 intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
>         else if (IS_GEN4(dev))
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index d630db8..467d92a 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -2129,8 +2129,7 @@ intel_sdvo_dvi_init(struct intel_sdvo *intel_sdvo, int device)
>                 connector->connector_type = DRM_MODE_CONNECTOR_HDMIA;
>                 intel_sdvo->is_hdmi = true;
>         }
> -       intel_sdvo->base.clone_mask = ((1 << INTEL_SDVO_NON_TV_CLONE_BIT) |
> -                                      (1 << INTEL_ANALOG_CLONE_BIT));
> +       intel_sdvo->base.cloneable = true;
>
>         intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo);
>         if (intel_sdvo->is_hdmi)
> @@ -2161,7 +2160,7 @@ intel_sdvo_tv_init(struct intel_sdvo *intel_sdvo, int type)
>
>         intel_sdvo->is_tv = true;
>         intel_sdvo->base.needs_tv_clock = true;
> -       intel_sdvo->base.clone_mask = 1 << INTEL_SDVO_TV_CLONE_BIT;
> +       intel_sdvo->base.cloneable = false;
>
>         intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo);
>
> @@ -2204,8 +2203,7 @@ intel_sdvo_analog_init(struct intel_sdvo *intel_sdvo, int device)
>                 intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB1;
>         }
>
> -       intel_sdvo->base.clone_mask = ((1 << INTEL_SDVO_NON_TV_CLONE_BIT) |
> -                                      (1 << INTEL_ANALOG_CLONE_BIT));
> +       intel_sdvo->base.cloneable = true;
>
>         intel_sdvo_connector_init(intel_sdvo_connector,
>                                   intel_sdvo);
> @@ -2237,8 +2235,10 @@ intel_sdvo_lvds_init(struct intel_sdvo *intel_sdvo, int device)
>                 intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS1;
>         }
>
> -       intel_sdvo->base.clone_mask = ((1 << INTEL_ANALOG_CLONE_BIT) |
> -                                      (1 << INTEL_SDVO_LVDS_CLONE_BIT));
> +       /* SDVO LVDS is cloneable because the SDVO encoder does the upscaling,
> +        * as opposed to native LVDS, where we upscale with the panel-fitter
> +        * (and hence only the native LVDS resolution could be cloned). */
> +       intel_sdvo->base.cloneable = true;
>
>         intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo);
>         if (!intel_sdvo_create_enhance_property(intel_sdvo, intel_sdvo_connector))
> diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
> index a0ec1eb..ef9e7a5 100644
> --- a/drivers/gpu/drm/i915/intel_tv.c
> +++ b/drivers/gpu/drm/i915/intel_tv.c
> @@ -1624,7 +1624,7 @@ intel_tv_init(struct drm_device *dev)
>         intel_connector_attach_encoder(intel_connector, intel_encoder);
>         intel_encoder->type = INTEL_OUTPUT_TVOUT;
>         intel_encoder->crtc_mask = (1 << 0) | (1 << 1);
> -       intel_encoder->clone_mask = (1 << INTEL_TV_CLONE_BIT);
> +       intel_encoder->cloneable = false;
>         intel_encoder->base.possible_crtcs = ((1 << 0) | (1 << 1));
>         intel_encoder->base.possible_clones = (1 << INTEL_OUTPUT_TVOUT);
>         intel_tv->type = DRM_MODE_CONNECTOR_Unknown;
> --
> 1.7.7.6
>



-- 
Paulo Zanoni

  reply	other threads:[~2012-07-12 19:48 UTC|newest]

Thread overview: 107+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-11 14:27 [PATCH 00/81] modeset rework Daniel Vetter
2012-07-11 14:27 ` [PATCH 01/81] drm/i915: add crtc->enable/disable vfuncs insted of dpms Daniel Vetter
2012-07-11 14:27 ` [PATCH 02/81] drm/i915: rip out crtc prepare/commit indirection Daniel Vetter
2012-07-12 14:44   ` Daniel Vetter
2012-07-11 14:27 ` [PATCH 03/81] drm/i915: add direct encoder disable/enable infrastructure Daniel Vetter
2012-07-11 14:27 ` [PATCH 04/81] drm/i915: add missing gen2 pipe A quirk entries Daniel Vetter
2012-07-11 14:27 ` [PATCH 05/81] drm/i915: rip out the overlay pipe A workaround Daniel Vetter
2012-07-11 14:27 ` [PATCH 06/81] drm/i915: prepare load-detect pipe code for dpms changes Daniel Vetter
2012-07-11 14:27 ` [PATCH 07/81] drm/i915/hdmi: convert to encoder->disable/enable Daniel Vetter
2012-07-11 14:27 ` [PATCH 08/81] drm/i915/tv: convert to encoder enable/disable Daniel Vetter
2012-07-11 14:27 ` [PATCH 09/81] drm/i915/lvds: ditch ->prepare special case Daniel Vetter
2012-07-22 14:52   ` Daniel Vetter
2012-07-22 16:32     ` Takashi Iwai
2012-07-22 19:20       ` Daniel Vetter
2012-07-11 14:27 ` [PATCH 10/81] drm/i915/lvds: convert to encoder disable/enable Daniel Vetter
2012-07-11 14:27 ` [PATCH 11/81] drm/i915/dp: " Daniel Vetter
2012-07-11 14:27 ` [PATCH 12/81] drm/i915: create VLV_DSIPLAY_BASE #define Daniel Vetter
2012-07-20 12:07   ` Daniel Vetter
2012-07-11 14:27 ` [PATCH 13/81] drm/i915: group ADPA #defines together Daniel Vetter
2012-07-12 13:06   ` Paulo Zanoni
2012-07-11 14:27 ` [PATCH 14/81] drm/i915: add inte_crt->adpa_reg Daniel Vetter
2012-07-20 11:56   ` Chris Wilson
2012-07-20 12:09   ` Daniel Vetter
2012-07-11 14:27 ` [PATCH 15/81] drm/i915/crt: convert to encoder disable/enable Daniel Vetter
2012-07-11 14:27 ` [PATCH 16/81] drm/i915/sdvo: " Daniel Vetter
2012-07-11 14:28 ` [PATCH 17/81] drm/i915: simplify dvo dpms interface Daniel Vetter
2012-07-11 14:28 ` [PATCH 18/81] drm/i915/dvo: convert to encoder disable/enable Daniel Vetter
2012-07-11 14:28 ` [PATCH 19/81] drm/i915: simplify possible_clones computation Daniel Vetter
2012-07-12 18:10   ` Paulo Zanoni
2012-07-12 18:47     ` Daniel Vetter
2012-07-12 18:08       ` [PATCH] " Daniel Vetter
2012-07-12 19:48         ` Paulo Zanoni [this message]
2012-07-11 14:28 ` [PATCH 20/81] drm/i915: add port parameter to intel_hdmi_init Daniel Vetter
2012-07-12 18:19   ` [PATCH] " Daniel Vetter
2012-07-12 19:49     ` Paulo Zanoni
2012-07-17  8:43       ` Daniel Vetter
2012-07-11 14:28 ` [PATCH 21/81] drm/i915: convert dpms functions of dvo/sdvo/crt Daniel Vetter
2012-07-11 14:28 ` [PATCH 22/81] drm/i915: rip out encoder->disable/enable checks Daniel Vetter
2012-07-11 14:28 ` [PATCH 23/81] drm/i915: clean up encoder_prepare/commit Daniel Vetter
2012-07-11 14:28 ` [PATCH 24/81] drm/fb helper: don't call drm_crtc_helper_set_config Daniel Vetter
2012-07-18 15:49   ` Daniel Vetter
2012-07-18 15:50     ` Daniel Vetter
2012-07-20  1:17       ` Dave Airlie
2012-07-11 14:28 ` [PATCH 25/81] drm: remove the list_head from drm_mode_set Daniel Vetter
2012-07-20  1:23   ` Dave Airlie
2012-07-11 14:28 ` [PATCH 26/81] drm/i915: copy&paste drm_crtc_helper_set_config Daniel Vetter
2012-07-11 14:28 ` [PATCH 27/81] drm/i915: call set_base directly Daniel Vetter
2012-07-11 14:28 ` [PATCH 28/81] drm/i915: inline intel_best_encoder Daniel Vetter
2012-07-11 14:28 ` [PATCH 29/81] drm/i915: copy&paste drm_crtc_helper_set_mode Daniel Vetter
2012-07-11 14:28 ` [PATCH 30/81] drm/i915: simplify intel_crtc_prepare_encoders Daniel Vetter
2012-07-11 14:28 ` [PATCH 31/81] drm/i915: rip out encoder->prepare/commit Daniel Vetter
2012-07-11 14:28 ` [PATCH 32/81] drm/i915: call crtc functions directly Daniel Vetter
2012-07-11 14:28 ` [PATCH 33/81] drm/i915: WARN when trying to enabled an unused crtc Daniel Vetter
2012-07-11 14:28 ` [PATCH 34/81] drm/i915: Add interfaces to read out encoder/connector hw state Daniel Vetter
2012-07-11 14:28 ` [PATCH 35/81] drm/i915/dp: implement get_hw_state Daniel Vetter
2012-07-11 14:28 ` [PATCH 36/81] drm/i915/hdmi: " Daniel Vetter
2012-07-11 14:28 ` [PATCH 37/81] drm/i915/tv: " Daniel Vetter
2012-07-11 14:28 ` [PATCH 38/81] drm/i915/lvds: " Daniel Vetter
2012-07-11 14:28 ` [PATCH 39/81] drm/i915/crt: " Daniel Vetter
2012-07-11 14:28 ` [PATCH 40/81] drm/i915/sdvo: " Daniel Vetter
2012-07-11 14:28 ` [PATCH 41/81] drm/i915/dvo: " Daniel Vetter
2012-07-11 14:28 ` [PATCH 42/81] drm/i915: read out the modeset hw state at load and resume time Daniel Vetter
2012-07-11 14:28 ` [PATCH 43/81] drm/i915: check connector hw/sw state Daniel Vetter
2012-07-11 14:28 ` [PATCH 44/81] drm/i915: rip out intel_crtc->dpms_mode Daniel Vetter
2012-07-11 14:28 ` [PATCH 45/81] drm/i915: rip out intel_dp->dpms_mode Daniel Vetter
2012-07-26 18:06   ` Paulo Zanoni
2012-07-11 14:28 ` [PATCH 46/81] drm/i915: ensure the force pipe A quirk is actually followed Daniel Vetter
2012-07-11 14:28 ` [PATCH 47/81] drm/i915: introduce struct intel_set_config Daniel Vetter
2012-07-11 14:28 ` [PATCH 48/81] drm/i915: extract modeset config save/restore code Daniel Vetter
2012-07-11 14:28 ` [PATCH 49/81] drm/i915: extract intel_set_config_compute_mode_changes Daniel Vetter
2012-07-11 14:28 ` [PATCH 50/81] drm/i915: extract intel_set_config_update_output_state Daniel Vetter
2012-07-11 14:28 ` [PATCH 51/81] drm/i915: implement crtc helper semantics relied upon by the fb helper Daniel Vetter
2012-07-11 14:28 ` [PATCH 52/81] drm/i915: don't update the fb base if there is no fb Daniel Vetter
2012-07-11 14:28 ` [PATCH 53/81] drm/i915: convert pointless error checks in set_config to BUGs Daniel Vetter
2012-07-11 14:28 ` [PATCH 54/81] drm/i915: don't save all the encoder/crtc state in set_config Daniel Vetter
2012-07-11 14:28 ` [PATCH 55/81] drm/i915: stage modeset output changes Daniel Vetter
2012-07-11 14:28 ` [PATCH 56/81] drm/i915: push crtc->fb update into pipe_set_base Daniel Vetter
2012-07-11 14:28 ` [PATCH 57/81] drm/i915: remove crtc disabling special case Daniel Vetter
2012-07-11 14:28 ` [PATCH 58/81] drm/i915: move output commit and crtc disabling into set_mode Daniel Vetter
2012-07-11 14:28 ` [PATCH 59/81] drm/i915: extract adjusted mode computation Daniel Vetter
2012-07-11 14:28 ` [PATCH 60/81] drm/i915: use staged outuput config in tv->mode_fixup Daniel Vetter
2012-07-11 14:28 ` [PATCH 61/81] drm/i915: use staged outuput config in lvds->mode_fixup Daniel Vetter
2012-07-11 14:28 ` [PATCH 62/81] drm/i915: compute masks of crtcs affected in set_mode Daniel Vetter
2012-07-11 14:28 ` [PATCH 63/81] drm/i915: implement new set_mode code flow Daniel Vetter
2012-07-11 14:28 ` [PATCH 64/81] drm/i915: push commit_output_state past crtc disabling Daniel Vetter
2012-07-11 14:28 ` [PATCH 65/81] drm/i915: s/intel_encoder_disable/intel_encoder_noop Daniel Vetter
2012-07-11 14:28 ` [PATCH 66/81] drm/i915: kill a few unused things in dev_priv Daniel Vetter
2012-07-11 14:28 ` [PATCH 67/81] drm/i915: WARN if the pipe won't turn off Daniel Vetter
2012-07-11 14:28 ` [PATCH 68/81] drm/i915: switch the load detect code to the staged modeset config Daniel Vetter
2012-07-11 14:28 ` [PATCH 69/81] drm/i915: push commit_output_state past the crtc/encoder preparing Daniel Vetter
2012-07-11 16:02   ` [PATCH] " Daniel Vetter
2012-07-11 14:28 ` [PATCH 70/81] drm/i915: disable all crtcs at suspend time Daniel Vetter
2012-07-11 14:28 ` [PATCH 71/81] drm/i915: add tons of modeset state checks Daniel Vetter
2012-07-11 17:46   ` [PATCH] " Daniel Vetter
2012-07-11 14:28 ` [PATCH 72/81] drm/i915: extract ironlake_fdi_pll_disable Daniel Vetter
2012-07-11 14:28 ` [PATCH 73/81] drm/i915: rip out intel_disable_pch_ports Daniel Vetter
2012-07-11 14:28 ` [PATCH 74/81] drm/i915: don't disable fdi links harder in ilk_crtc_enable Daniel Vetter
2012-07-11 14:28 ` [PATCH 75/81] drm/i915: don't call dpms funcs after set_mode Daniel Vetter
2012-07-11 14:28 ` [PATCH 76/81] drm/i915: update dpms property in set_mode Daniel Vetter
2012-07-11 14:29 ` [PATCH 77/81] drm/i915: add encoder->pre_enable/post_disable Daniel Vetter
2012-07-11 14:29 ` [PATCH 78/81] drm/i915: clean up the cpu edp pll special case Daniel Vetter
2012-07-11 14:29 ` [PATCH 79/81] drm/i915: robustify edp_pll_on/off Daniel Vetter
2012-07-11 17:47   ` [PATCH] " Daniel Vetter
2012-07-11 14:29 ` [PATCH 80/81] drm/i915: rip out dp port enabling cludges^Wchecks Daniel Vetter
2012-07-11 14:38 ` [PATCH 81/81] drm/i915: disable the cpu edp port after the cpu pipe Daniel Vetter
2012-07-15 13:13 ` [PATCH 00/81] modeset rework Chris Wilson
2012-07-15 14:57   ` Daniel Vetter

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=CA+gsUGQZNWNAhi0kTWZaiKyVSO6tPQz-phG-m5jq0yTGSAAJFw@mail.gmail.com \
    --to=przanoni@gmail.com \
    --cc=daniel.vetter@ffwll.ch \
    --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).