diff mbox

drm/i915: Restore the preliminary HW check.

Message ID 1377298807-24994-1-git-send-email-benjamin.widawsky@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ben Widawsky Aug. 23, 2013, 11 p.m. UTC
We still maintain code internally that cares about preliminary support.
Leaving the check here doesn't hurt anyone, and should keep things more
in line.

This time around, stick the info in the intel_info structure, and also
change the error from DRM_ERROR->DRM_INFO.

This is a partial revert of:
commit 590e4df8c82e6c2707ae12ba6672ab6fb9cd4b89
Author: Jesse Barnes <jbarnes@virtuousgeek.org>
Date:   Wed May 8 10:45:15 2013 -0700

    drm/i915: VLV support is no longer preliminary

Daniel, I'll provide the fix ups for internal too if/when you merge
this (if you want).

Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_drv.c | 6 ++++++
 drivers/gpu/drm/i915/i915_drv.h | 2 ++
 2 files changed, 8 insertions(+)

Comments

Jesse Barnes Aug. 23, 2013, 11:33 p.m. UTC | #1
On Fri, 23 Aug 2013 16:00:07 -0700
Ben Widawsky <benjamin.widawsky@intel.com> wrote:

> We still maintain code internally that cares about preliminary support.
> Leaving the check here doesn't hurt anyone, and should keep things more
> in line.
> 
> This time around, stick the info in the intel_info structure, and also
> change the error from DRM_ERROR->DRM_INFO.

I hate this param.

But this looks like a better way to do it than the ID list we had in
pci_probe before.

Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Ben Widawsky Aug. 29, 2013, 4:35 p.m. UTC | #2
On Fri, Aug 23, 2013 at 04:33:58PM -0700, Jesse Barnes wrote:
> On Fri, 23 Aug 2013 16:00:07 -0700
> Ben Widawsky <benjamin.widawsky@intel.com> wrote:
> 
> > We still maintain code internally that cares about preliminary support.
> > Leaving the check here doesn't hurt anyone, and should keep things more
> > in line.
> > 
> > This time around, stick the info in the intel_info structure, and also
> > change the error from DRM_ERROR->DRM_INFO.
> 
> I hate this param.
> 
> But this looks like a better way to do it than the ID list we had in
> pci_probe before.
> 
> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> 

Daniel, ping. One of my goals is to allow people to easily look at
source and determine which HW is preliminary, and which isn't.
Daniel Vetter Aug. 29, 2013, 7:13 p.m. UTC | #3
On Thu, Aug 29, 2013 at 09:35:14AM -0700, Ben Widawsky wrote:
> On Fri, Aug 23, 2013 at 04:33:58PM -0700, Jesse Barnes wrote:
> > On Fri, 23 Aug 2013 16:00:07 -0700
> > Ben Widawsky <benjamin.widawsky@intel.com> wrote:
> > 
> > > We still maintain code internally that cares about preliminary support.
> > > Leaving the check here doesn't hurt anyone, and should keep things more
> > > in line.
> > > 
> > > This time around, stick the info in the intel_info structure, and also
> > > change the error from DRM_ERROR->DRM_INFO.
> > 
> > I hate this param.
> > 
> > But this looks like a better way to do it than the ID list we had in
> > pci_probe before.

We've never had a table of pci ids, but a simple check for IS_HASWELL ...

> > 
> > Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> > 
> 
> Daniel, ping. One of my goals is to allow people to easily look at
> source and determine which HW is preliminary, and which isn't.

Queued for -next, thanks for the patch.
-Daniel
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 735dd56..ef7425c 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -895,6 +895,12 @@  static int 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 (IS_PRELIMINARY_HW(intel_info) && !i915_preliminary_hw_support) {
+		DRM_INFO("This hardware requires preliminary hardware support.\n"
+			 "See CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT, and/or modparam preliminary_hw_support\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 8ee15b4..78cd6f9 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -419,6 +419,7 @@  struct intel_uncore {
 	func(is_ivybridge) sep \
 	func(is_valleyview) sep \
 	func(is_haswell) sep \
+	func(is_preliminary) sep \
 	func(has_force_wake) sep \
 	func(has_fbc) sep \
 	func(has_pipe_cxsr) sep \
@@ -1592,6 +1593,7 @@  struct drm_i915_file_private {
 				 ((dev)->pci_device & 0xFF00) == 0x0C00)
 #define IS_ULT(dev)		(IS_HASWELL(dev) && \
 				 ((dev)->pci_device & 0xFF00) == 0x0A00)
+#define IS_PRELIMINARY_HW(intel_info) ((intel_info)->is_preliminary)
 
 /*
  * The genX designation typically refers to the render engine, so render