Re: [PATCH] drm/i915: Insert i915_preliminary_hw_support variable.

Dave Airlie
2012-10-15T23:39:32Z

On Tue, Oct 16, 2012 at 6:16 AM, Rodrigo Vivi <rodrigo.vivi@gmail.com> wrote:
> On the worst scenario, users with new hardwares and old kernel from enabling times can get black screens.
> So, now on, this i915_perliminary_hw_support variable shall be used by all upcoming platforms that are still under enabling.
>
> Although it is uncomfortable for developers use this extra variable it brings more stability for end users.
>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>

I like this idea, since I've got to ship known broken kernels on HSW by default.

The biggest issue is when we consider it working, I suppose if it can
successfully light up most of its output, since I know we'll always be
plagued with eDP randomly not working.

Reviewed-by: Dave Airlie <airlied@redhat.com>

> ---
> drivers/gpu/drm/i915/i915_drv.c | 13 +++++++++++++
> drivers/gpu/drm/i915/i915_drv.h | 1 +
> 2 files changed, 14 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index a7837e5..41bee22 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -119,6 +119,13 @@ module_param_named(i915_enable_ppgtt, i915_enable_ppgtt, int, 0600);
> MODULE_PARM_DESC(i915_enable_ppgtt,
> "Enable PPGTT (default: true)");
>
> +unsigned int i915_preliminary_hw_support __read_mostly = 0;
> +module_param_named(i915_preliminary_hw_support, i915_preliminary_hw_support, int, 0600);
> +MODULE_PARM_DESC(i915_preliminary_hw_support,
> + "Enable preliminary hardware support. "
> + "Enable Haswell and ValleyView Support. "
> + "(default: false)");
> +
> static struct drm_driver driver;
> extern int intel_agp_enabled;
>
> @@ -827,6 +834,12 @@ i915_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> struct intel_device_info *intel_info =
> (struct intel_device_info *) ent->driver_data;
>
> + if (intel_info->is_haswell || intel_info->is_valleyview)
> + if(!i915_preliminary_hw_support) {
> + DRM_ERROR("Preliminary hardware support disabled\n");
> + return -ENODEV;
> + }
> +
> /* Only bind to function 0 of the device. Early generations
> * used function 1 as a placeholder for multi-head. This causes
> * us confusion instead, especially on the systems where both
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 9e446b6..5617881 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1225,6 +1225,7 @@ extern int i915_enable_rc6 __read_mostly;
> extern int i915_enable_fbc __read_mostly;
> extern bool i915_enable_hangcheck __read_mostly;
> extern int i915_enable_ppgtt __read_mostly;
> +extern unsigned int i915_preliminary_hw_support __read_mostly;
>
> extern int i915_suspend(struct drm_device *dev, pm_message_t state);
> extern int i915_resume(struct drm_device *dev);
> --
> 1.7.11.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx