diff mbox

[02/11] drm/i915: add config option to enable/disable DP MST

Message ID 1410244096-9854-3-git-send-email-airlied@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dave Airlie Sept. 9, 2014, 6:28 a.m. UTC
From: Dave Airlie <airlied@redhat.com>

Since DP MST has new userspace requirements and any effort at trying
to shoehorn things into the something the current userspace can handle are
doomed, lets just put this behind a config option.

This also adds a command line arg to switch it on as well.

Distros should probably turn it on when they have a new enough Xorg intel driver.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/i915/Kconfig        | 10 ++++++++++
 drivers/gpu/drm/i915/i915_drv.h     |  1 +
 drivers/gpu/drm/i915/i915_params.c  |  5 +++++
 drivers/gpu/drm/i915/intel_dp_mst.c |  3 +++
 4 files changed, 19 insertions(+)

Comments

Jani Nikula Sept. 9, 2014, 7:51 a.m. UTC | #1
On Tue, 09 Sep 2014, Dave Airlie <airlied@gmail.com> wrote:
> From: Dave Airlie <airlied@redhat.com>
>
> Since DP MST has new userspace requirements and any effort at trying
> to shoehorn things into the something the current userspace can handle are
> doomed, lets just put this behind a config option.
>
> This also adds a command line arg to switch it on as well.
>
> Distros should probably turn it on when they have a new enough Xorg intel driver.
>
> Signed-off-by: Dave Airlie <airlied@redhat.com>
> ---
>  drivers/gpu/drm/i915/Kconfig        | 10 ++++++++++
>  drivers/gpu/drm/i915/i915_drv.h     |  1 +
>  drivers/gpu/drm/i915/i915_params.c  |  5 +++++
>  drivers/gpu/drm/i915/intel_dp_mst.c |  3 +++
>  4 files changed, 19 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
> index 4e39ab3..94a9094 100644
> --- a/drivers/gpu/drm/i915/Kconfig
> +++ b/drivers/gpu/drm/i915/Kconfig
> @@ -69,3 +69,13 @@ config DRM_I915_PRELIMINARY_HW_SUPPORT
>  	  option changes the default for that module option.
>  
>  	  If in doubt, say "N".
> +
> +config DRM_I915_DP_MST
> +	bool "Enable DisplayPort 1.2 MST support by default"
> +	depends on DRM_I915
> +	default n
> +	help
> +	  Choose this option if you want to support DP 1.2 MST and have a new
> +          enough userspace to use it. DP 1.2 MST is required for multi-head
> +          support on many laptop docks when combined with Haswell or later
> +          chipsets.
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 7a830ea..86759ea 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2149,6 +2149,7 @@ struct i915_params {
>  	bool disable_vtd_wa;
>  	int use_mmio_flip;
>  	bool mmio_debug;
> +	bool dp_mst;
>  };
>  extern struct i915_params i915 __read_mostly;
>  
> diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
> index 7f84dd26..973c773 100644
> --- a/drivers/gpu/drm/i915/i915_params.c
> +++ b/drivers/gpu/drm/i915/i915_params.c
> @@ -50,6 +50,7 @@ struct i915_params i915 __read_mostly = {
>  	.disable_vtd_wa = 0,
>  	.use_mmio_flip = 0,
>  	.mmio_debug = 0,
> +	.dp_mst = IS_ENABLED(CONFIG_DRM_I915_DP_MST),
>  };
>  
>  module_param_named(modeset, i915.modeset, int, 0400);
> @@ -167,3 +168,7 @@ module_param_named(mmio_debug, i915.mmio_debug, bool, 0600);
>  MODULE_PARM_DESC(mmio_debug,
>  	"Enable the MMIO debug code (default: false). This may negatively "
>  	"affect performance.");
> +
> +module_param_named(dp_mst, i915.dp_mst, bool, 0600);

The permissions should be 0400.

Jani.

> +MODULE_PARM_DESC(dp_mst,
> +	"Enable DP MST support (1=enabled, 0=disabled, default depends on CONFIG_DRM_I915_DP_MST.");
> diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
> index d9a7a78..116b656 100644
> --- a/drivers/gpu/drm/i915/intel_dp_mst.c
> +++ b/drivers/gpu/drm/i915/intel_dp_mst.c
> @@ -522,6 +522,9 @@ intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_ba
>  	struct drm_device *dev = intel_dig_port->base.base.dev;
>  	int ret;
>  
> +	if (i915.dp_mst == false)
> +		return 0;
> +
>  	intel_dp->can_mst = true;
>  	intel_dp->mst_mgr.cbs = &mst_cbs;
>  
> -- 
> 1.9.3
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
index 4e39ab3..94a9094 100644
--- a/drivers/gpu/drm/i915/Kconfig
+++ b/drivers/gpu/drm/i915/Kconfig
@@ -69,3 +69,13 @@  config DRM_I915_PRELIMINARY_HW_SUPPORT
 	  option changes the default for that module option.
 
 	  If in doubt, say "N".
+
+config DRM_I915_DP_MST
+	bool "Enable DisplayPort 1.2 MST support by default"
+	depends on DRM_I915
+	default n
+	help
+	  Choose this option if you want to support DP 1.2 MST and have a new
+          enough userspace to use it. DP 1.2 MST is required for multi-head
+          support on many laptop docks when combined with Haswell or later
+          chipsets.
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 7a830ea..86759ea 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2149,6 +2149,7 @@  struct i915_params {
 	bool disable_vtd_wa;
 	int use_mmio_flip;
 	bool mmio_debug;
+	bool dp_mst;
 };
 extern struct i915_params i915 __read_mostly;
 
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
index 7f84dd26..973c773 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -50,6 +50,7 @@  struct i915_params i915 __read_mostly = {
 	.disable_vtd_wa = 0,
 	.use_mmio_flip = 0,
 	.mmio_debug = 0,
+	.dp_mst = IS_ENABLED(CONFIG_DRM_I915_DP_MST),
 };
 
 module_param_named(modeset, i915.modeset, int, 0400);
@@ -167,3 +168,7 @@  module_param_named(mmio_debug, i915.mmio_debug, bool, 0600);
 MODULE_PARM_DESC(mmio_debug,
 	"Enable the MMIO debug code (default: false). This may negatively "
 	"affect performance.");
+
+module_param_named(dp_mst, i915.dp_mst, bool, 0600);
+MODULE_PARM_DESC(dp_mst,
+	"Enable DP MST support (1=enabled, 0=disabled, default depends on CONFIG_DRM_I915_DP_MST.");
diff --git a/drivers/gpu/drm/i915/intel_dp_mst.c b/drivers/gpu/drm/i915/intel_dp_mst.c
index d9a7a78..116b656 100644
--- a/drivers/gpu/drm/i915/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/intel_dp_mst.c
@@ -522,6 +522,9 @@  intel_dp_mst_encoder_init(struct intel_digital_port *intel_dig_port, int conn_ba
 	struct drm_device *dev = intel_dig_port->base.base.dev;
 	int ret;
 
+	if (i915.dp_mst == false)
+		return 0;
+
 	intel_dp->can_mst = true;
 	intel_dp->mst_mgr.cbs = &mst_cbs;