diff mbox

[9/9] drm/i915: Add a pipeless ivybridge configuration

Message ID 1363198868-21787-10-git-send-email-ben@bwidawsk.net (mailing list archive)
State New, archived
Headers show

Commit Message

Ben Widawsky March 13, 2013, 6:21 p.m. UTC
FIXME: This is based on some HW being used for a demo. We should
probably wait until we have confirmation on the IDs before upstreaming
this patch.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
---
 drivers/gpu/drm/i915/i915_drv.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

Comments

Chris Wilson March 13, 2013, 6:52 p.m. UTC | #1
On Wed, Mar 13, 2013 at 11:21:08AM -0700, Ben Widawsky wrote:
> FIXME: This is based on some HW being used for a demo. We should
> probably wait until we have confirmation on the IDs before upstreaming
> this patch.
> 
> Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 22 +++++++++++++++++++++-
>  1 file changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index 0fa55cb..9b3bb1e 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -135,6 +135,16 @@ extern int intel_agp_enabled;
>  	.subdevice = PCI_ANY_ID,		\
>  	.driver_data = (unsigned long) info }
>  
> +#define INTEL_QUANTA_VGA_DEVICE(info) {		\
> +	.class = PCI_BASE_CLASS_DISPLAY << 16,	\
> +	.class_mask = 0xff0000,			\
> +	.vendor = 0x8086,			\
> +	.device = 0x16a,			\
> +	.subvendor = 0x152d,			\
> +	.subdevice = 0x8990,			\
> +	.driver_data = (unsigned long) info }
> +
> +
>  static const struct intel_device_info intel_i830_info = {
>  	.gen = 2, .is_mobile = 1, .cursor_needs_physical = 1, .num_pipes = 1,
>  	.has_overlay = 1, .overlay_needs_physical = 1,
> @@ -248,6 +258,15 @@ static const struct intel_device_info intel_sandybridge_m_info = {
>  	.has_force_wake = 1,
>  };
>  
> +static const struct intel_device_info intel_ivybridge_q_info = {
> +	.is_ivybridge = 1, .gen = 7, .num_pipes = 0,
> +	.need_gfx_hws = 1,
> +	.has_bsd_ring = 1,
> +	.has_blt_ring = 1,
> +	.has_llc = 1,
> +	.has_force_wake = 1,

What we could start to introduce is
#define IVB_FEATURES \
  .is_ivybridge = 1, \
  .gen = 7, \
  .num_pipes = 3, \
  .need_gfx_hws = 1,\
  etc

then

 static const struct intel_device_info intel_ivybridge_d_info = {
	IVB_FEATURES,
 };
 static const struct intel_device_info intel_ivybridge_m_info = {
	IVB_FEATURES,
	.is_mobile = 1,
 };
 static const struct intel_device_info intel_ivybridge_q_info = {
	IVB_FEATURES,
	.num_pipes = 0, /* legal, last one wins */
 };
-Chris
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 0fa55cb..9b3bb1e 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -135,6 +135,16 @@  extern int intel_agp_enabled;
 	.subdevice = PCI_ANY_ID,		\
 	.driver_data = (unsigned long) info }
 
+#define INTEL_QUANTA_VGA_DEVICE(info) {		\
+	.class = PCI_BASE_CLASS_DISPLAY << 16,	\
+	.class_mask = 0xff0000,			\
+	.vendor = 0x8086,			\
+	.device = 0x16a,			\
+	.subvendor = 0x152d,			\
+	.subdevice = 0x8990,			\
+	.driver_data = (unsigned long) info }
+
+
 static const struct intel_device_info intel_i830_info = {
 	.gen = 2, .is_mobile = 1, .cursor_needs_physical = 1, .num_pipes = 1,
 	.has_overlay = 1, .overlay_needs_physical = 1,
@@ -248,6 +258,15 @@  static const struct intel_device_info intel_sandybridge_m_info = {
 	.has_force_wake = 1,
 };
 
+static const struct intel_device_info intel_ivybridge_q_info = {
+	.is_ivybridge = 1, .gen = 7, .num_pipes = 0,
+	.need_gfx_hws = 1,
+	.has_bsd_ring = 1,
+	.has_blt_ring = 1,
+	.has_llc = 1,
+	.has_force_wake = 1,
+};
+
 static const struct intel_device_info intel_ivybridge_d_info = {
 	.is_ivybridge = 1, .gen = 7, .num_pipes = 3,
 	.need_gfx_hws = 1, .has_hotplug = 1,
@@ -351,6 +370,7 @@  static const struct pci_device_id pciidlist[] = {		/* aka */
 	INTEL_VGA_DEVICE(0x0152, &intel_ivybridge_d_info), /* GT1 desktop */
 	INTEL_VGA_DEVICE(0x0162, &intel_ivybridge_d_info), /* GT2 desktop */
 	INTEL_VGA_DEVICE(0x015a, &intel_ivybridge_d_info), /* GT1 server */
+	INTEL_QUANTA_VGA_DEVICE(&intel_ivybridge_q_info), /* Quanta transcode */
 	INTEL_VGA_DEVICE(0x016a, &intel_ivybridge_d_info), /* GT2 server */
 	INTEL_VGA_DEVICE(0x0402, &intel_haswell_d_info), /* GT1 desktop */
 	INTEL_VGA_DEVICE(0x0412, &intel_haswell_d_info), /* GT2 desktop */
@@ -400,7 +420,7 @@  MODULE_DEVICE_TABLE(pci, pciidlist);
 
 static bool intel_pch_displayless(struct drm_device *dev)
 {
-	return false;
+	return INTEL_INFO(dev) == &intel_ivybridge_q_info;
 }
 
 void intel_detect_pch(struct drm_device *dev)