From: Robert Beckett <robert.beckett@intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: Detect virtual south bridge
Date: Mon, 7 Sep 2015 11:38:02 +0100 [thread overview]
Message-ID: <55ED690A.6040407@intel.com> (raw)
In-Reply-To: <20150902101159.GT1367@phenom.ffwll.local>
On 02/09/2015 11:11, Daniel Vetter wrote:
> On Fri, Aug 28, 2015 at 01:10:22PM +0100, robert.beckett@intel.com wrote:
>> From: Robert Beckett <robert.beckett@intel.com>
>>
>> Virtualized systems often use a virtual P2X4 south bridge.
>> Detect this in intel_detect_pch and make a best guess as to which PCH
>> we should be using.
>>
>> This was seen on vmware esxi hypervisor. When passing the graphics device
>> through to a guest, it can not pass through the PCH. Instead it simulates
>> a P2X4 southbridge.
>>
>> Signed-off-by: Robert Beckett <robert.beckett@intel.com>
>
> What changed here compared to your earlier submission a day before?
> -Daniel
Nothing functional, just corrected the "[PATCH]" tag in the subject. My
email client was doing weird things...
>
>> ---
>> drivers/gpu/drm/i915/i915_drv.c | 30 ++++++++++++++++++++++++++++++
>> drivers/gpu/drm/i915/i915_drv.h | 1 +
>> 2 files changed, 31 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
>> index ce3bd0c..8e158b3 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.c
>> +++ b/drivers/gpu/drm/i915/i915_drv.c
>> @@ -443,6 +443,34 @@ static const struct pci_device_id pciidlist[] = { /* aka */
>>
>> MODULE_DEVICE_TABLE(pci, pciidlist);
>>
>> +static enum intel_pch intel_virt_detect_pch(struct drm_device *dev)
>> +{
>> + enum intel_pch ret = PCH_NOP;
>> +
>> + /*
>> + * In a virtualized passthrough environment we can be in a
>> + * setup where the ISA bridge is not able to be passed through.
>> + * In this case, a south bridge can be emulated and we have to
>> + * make an educated guess as to which PCH is really there.
>> + */
>> +
>> + if (IS_GEN5(dev)) {
>> + ret = PCH_IBX;
>> + DRM_DEBUG_KMS("Assuming Ibex Peak PCH\n");
>> + } else if (IS_GEN6(dev) || IS_IVYBRIDGE(dev)) {
>> + ret = PCH_CPT;
>> + DRM_DEBUG_KMS("Assuming CouarPoint PCH\n");
>> + } else if (IS_HASWELL(dev) || IS_BROADWELL(dev)) {
>> + ret = PCH_LPT;
>> + DRM_DEBUG_KMS("Assuming LynxPoint PCH\n");
>> + } else if (IS_SKYLAKE(dev)) {
>> + ret = PCH_SPT;
>> + DRM_DEBUG_KMS("Assuming SunrisePoint PCH\n");
>> + }
>> +
>> + return ret;
>> +}
>> +
>> void intel_detect_pch(struct drm_device *dev)
>> {
>> struct drm_i915_private *dev_priv = dev->dev_private;
>> @@ -503,6 +531,8 @@ void intel_detect_pch(struct drm_device *dev)
>> dev_priv->pch_type = PCH_SPT;
>> DRM_DEBUG_KMS("Found SunrisePoint LP PCH\n");
>> WARN_ON(!IS_SKYLAKE(dev));
>> + } else if (id == INTEL_PCH_P2X_DEVICE_ID_TYPE) {
>> + dev_priv->pch_type = intel_virt_detect_pch(dev);
>> } else
>> continue;
>>
>> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
>> index 8c93845..6eb0230 100644
>> --- a/drivers/gpu/drm/i915/i915_drv.h
>> +++ b/drivers/gpu/drm/i915/i915_drv.h
>> @@ -2584,6 +2584,7 @@ struct drm_i915_cmd_table {
>> #define INTEL_PCH_LPT_LP_DEVICE_ID_TYPE 0x9c00
>> #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_TYPE(dev) (__I915__(dev)->pch_type)
>> #define HAS_PCH_SPT(dev) (INTEL_PCH_TYPE(dev) == PCH_SPT)
>> --
>> 1.7.9.5
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-09-07 10:38 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-28 12:10 [PATCH] drm/i915: Detect virtual south bridge robert.beckett
2015-09-02 10:11 ` Daniel Vetter
2015-09-07 10:38 ` Robert Beckett [this message]
2015-09-24 16:40 ` Jesse Barnes
2015-09-25 3:41 ` Tian, Kevin
2015-09-25 15:31 ` Jesse Barnes
2015-09-25 16:52 ` Jesse Barnes
2015-09-28 6:46 ` Daniel Vetter
-- strict thread matches above, loose matches on Subject: below --
2015-08-27 18:04 [[PATCH]] " robert.beckett
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55ED690A.6040407@intel.com \
--to=robert.beckett@intel.com \
--cc=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.