diff mbox

drm/i915: add another virtual PCH bridge for passthrough support

Message ID 1458160290-16710-1-git-send-email-jbarnes@virtuousgeek.org (mailing list archive)
State New, archived
Headers show

Commit Message

Jesse Barnes March 16, 2016, 8:31 p.m. UTC
Some configs use the P2X type but some use a P3X type PCH, so add that
to the detect_pch function so things work correctly.

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
---
 drivers/gpu/drm/i915/i915_drv.c | 1 +
 drivers/gpu/drm/i915/i915_drv.h | 1 +
 2 files changed, 2 insertions(+)

Comments

Kay, Allen M March 16, 2016, 9:17 p.m. UTC | #1
This patch is require for running i915 in a VM in universal passthrough (UPT) mode on some systems.  UPT mode allows IGD to be passed through to a VM without hypervisor quirks.

Reviewed-by: Allen Kay <allen.m.kay@intel.com>

> -----Original Message-----
> From: Jesse Barnes [mailto:jbarnes@virtuousgeek.org]
> Sent: Wednesday, March 16, 2016 1:32 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Kay, Allen M <allen.m.kay@intel.com>
> Subject: [PATCH] drm/i915: add another virtual PCH bridge for passthrough
> support
> 
> Some configs use the P2X type but some use a P3X type PCH, so add that to
> the detect_pch function so things work correctly.
> 
> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
>  drivers/gpu/drm/i915/i915_drv.c | 1 +
>  drivers/gpu/drm/i915/i915_drv.h | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c
> b/drivers/gpu/drm/i915/i915_drv.c index 20e8200..6ad4390 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -504,6 +504,7 @@ void intel_detect_pch(struct drm_device *dev)
>  				WARN_ON(!IS_SKYLAKE(dev) &&
>  					!IS_KABYLAKE(dev));
>  			} else if ((id == INTEL_PCH_P2X_DEVICE_ID_TYPE) ||
> +				   (id == INTEL_PCH_P3X_DEVICE_ID_TYPE) ||
>  				   ((id ==
> INTEL_PCH_QEMU_DEVICE_ID_TYPE) &&
>  				    pch->subsystem_vendor == 0x1af4 &&
>  				    pch->subsystem_device == 0x1100)) { diff -
> -git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 9e76bfc..e53cd42 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -2695,6 +2695,7 @@ struct drm_i915_cmd_table {
>  #define INTEL_PCH_SPT_DEVICE_ID_TYPE		0xA100
>  #define INTEL_PCH_SPT_LP_DEVICE_ID_TYPE		0x9D00
>  #define INTEL_PCH_P2X_DEVICE_ID_TYPE		0x7100
> +#define INTEL_PCH_P3X_DEVICE_ID_TYPE		0x7000
>  #define INTEL_PCH_QEMU_DEVICE_ID_TYPE		0x2900 /* qemu q35
> has 2918 */
> 
>  #define INTEL_PCH_TYPE(dev) (__I915__(dev)->pch_type)
> --
> 1.9.1
Jesse Barnes March 17, 2016, 1:57 p.m. UTC | #2
On 03/17/2016 05:31 AM, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: add another virtual PCH bridge for passthrough support
> URL   : https://patchwork.freedesktop.org/series/4539/
> State : warning
> 
> == Summary ==
> 
> Series 4539v1 drm/i915: add another virtual PCH bridge for passthrough support
> http://patchwork.freedesktop.org/api/1.0/series/4539/revisions/1/mbox/
> 
> Test drv_module_reload_basic:
>                 dmesg-warn -> PASS       (hsw-gt2)
> Test gem_ringfill:
>         Subgroup basic-default-s3:
>                 dmesg-warn -> PASS       (bsw-nuc-2)
> Test kms_flip:
>         Subgroup basic-flip-vs-dpms:
>                 dmesg-warn -> PASS       (bdw-ultra)
>         Subgroup basic-flip-vs-wf_vblank:
>                 fail       -> PASS       (snb-x220t)
>         Subgroup basic-plain-flip:
>                 pass       -> DMESG-WARN (hsw-gt2)
>                 dmesg-warn -> PASS       (hsw-brixbox)
> Test kms_pipe_crc_basic:
>         Subgroup read-crc-pipe-b-frame-sequence:
>                 dmesg-warn -> PASS       (snb-x220t)
>         Subgroup read-crc-pipe-c-frame-sequence:
>                 dmesg-warn -> PASS       (hsw-gt2)
> Test pm_rpm:
>         Subgroup basic-pci-d3-state:
>                 fail       -> DMESG-FAIL (snb-x220t)
>                 pass       -> DMESG-WARN (hsw-brixbox)
>         Subgroup basic-rte:
>                 dmesg-warn -> PASS       (hsw-brixbox)
> 
> bdw-nuci7        total:194  pass:182  dwarn:0   dfail:0   fail:0   skip:12 
> bdw-ultra        total:194  pass:173  dwarn:0   dfail:0   fail:0   skip:21 
> bsw-nuc-2        total:194  pass:157  dwarn:0   dfail:0   fail:0   skip:37 
> byt-nuc          total:194  pass:155  dwarn:4   dfail:0   fail:0   skip:35 
> hsw-brixbox      total:194  pass:171  dwarn:1   dfail:0   fail:0   skip:22 
> hsw-gt2          total:194  pass:176  dwarn:1   dfail:0   fail:0   skip:17 
> ivb-t430s        total:194  pass:169  dwarn:0   dfail:0   fail:0   skip:25 
> skl-i5k-2        total:194  pass:171  dwarn:0   dfail:0   fail:0   skip:23 
> skl-i7k-2        total:194  pass:171  dwarn:0   dfail:0   fail:0   skip:23 
> skl-nuci5        total:194  pass:183  dwarn:0   dfail:0   fail:0   skip:11 
> snb-x220t        total:194  pass:160  dwarn:0   dfail:1   fail:0   skip:33 

Well some how this trivial patch only affecting passthrough environments
fixed a bunch of issues but broke D3. :)

I think all of these are still intermittent issues, so this patch is
still ok for merge.

Jesse
Daniel Vetter March 21, 2016, 9:14 a.m. UTC | #3
On Wed, Mar 16, 2016 at 09:17:57PM +0000, Kay, Allen M wrote:
> 
> This patch is require for running i915 in a VM in universal passthrough (UPT) mode on some systems.  UPT mode allows IGD to be passed through to a VM without hypervisor quirks.
> 
> Reviewed-by: Allen Kay <allen.m.kay@intel.com>

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

> 
> > -----Original Message-----
> > From: Jesse Barnes [mailto:jbarnes@virtuousgeek.org]
> > Sent: Wednesday, March 16, 2016 1:32 PM
> > To: intel-gfx@lists.freedesktop.org
> > Cc: Kay, Allen M <allen.m.kay@intel.com>
> > Subject: [PATCH] drm/i915: add another virtual PCH bridge for passthrough
> > support
> > 
> > Some configs use the P2X type but some use a P3X type PCH, so add that to
> > the detect_pch function so things work correctly.
> > 
> > Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> > ---
> >  drivers/gpu/drm/i915/i915_drv.c | 1 +
> >  drivers/gpu/drm/i915/i915_drv.h | 1 +
> >  2 files changed, 2 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_drv.c
> > b/drivers/gpu/drm/i915/i915_drv.c index 20e8200..6ad4390 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.c
> > +++ b/drivers/gpu/drm/i915/i915_drv.c
> > @@ -504,6 +504,7 @@ void intel_detect_pch(struct drm_device *dev)
> >  				WARN_ON(!IS_SKYLAKE(dev) &&
> >  					!IS_KABYLAKE(dev));
> >  			} else if ((id == INTEL_PCH_P2X_DEVICE_ID_TYPE) ||
> > +				   (id == INTEL_PCH_P3X_DEVICE_ID_TYPE) ||
> >  				   ((id ==
> > INTEL_PCH_QEMU_DEVICE_ID_TYPE) &&
> >  				    pch->subsystem_vendor == 0x1af4 &&
> >  				    pch->subsystem_device == 0x1100)) { diff -
> > -git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> > index 9e76bfc..e53cd42 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -2695,6 +2695,7 @@ struct drm_i915_cmd_table {
> >  #define INTEL_PCH_SPT_DEVICE_ID_TYPE		0xA100
> >  #define INTEL_PCH_SPT_LP_DEVICE_ID_TYPE		0x9D00
> >  #define INTEL_PCH_P2X_DEVICE_ID_TYPE		0x7100
> > +#define INTEL_PCH_P3X_DEVICE_ID_TYPE		0x7000
> >  #define INTEL_PCH_QEMU_DEVICE_ID_TYPE		0x2900 /* qemu q35
> > has 2918 */
> > 
> >  #define INTEL_PCH_TYPE(dev) (__I915__(dev)->pch_type)
> > --
> > 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 20e8200..6ad4390 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -504,6 +504,7 @@  void intel_detect_pch(struct drm_device *dev)
 				WARN_ON(!IS_SKYLAKE(dev) &&
 					!IS_KABYLAKE(dev));
 			} else if ((id == INTEL_PCH_P2X_DEVICE_ID_TYPE) ||
+				   (id == INTEL_PCH_P3X_DEVICE_ID_TYPE) ||
 				   ((id == INTEL_PCH_QEMU_DEVICE_ID_TYPE) &&
 				    pch->subsystem_vendor == 0x1af4 &&
 				    pch->subsystem_device == 0x1100)) {
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 9e76bfc..e53cd42 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -2695,6 +2695,7 @@  struct drm_i915_cmd_table {
 #define INTEL_PCH_SPT_DEVICE_ID_TYPE		0xA100
 #define INTEL_PCH_SPT_LP_DEVICE_ID_TYPE		0x9D00
 #define INTEL_PCH_P2X_DEVICE_ID_TYPE		0x7100
+#define INTEL_PCH_P3X_DEVICE_ID_TYPE		0x7000
 #define INTEL_PCH_QEMU_DEVICE_ID_TYPE		0x2900 /* qemu q35 has 2918 */
 
 #define INTEL_PCH_TYPE(dev) (__I915__(dev)->pch_type)