Do not attach to the unsupported chipsets, unless magic tunable is
frobbed. Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
ff5ba73987
commit
ae18989eb9
@ -208,6 +208,7 @@ static const struct intel_device_info intel_haswell_d_info = {
|
|||||||
.has_blt_ring = 1,
|
.has_blt_ring = 1,
|
||||||
.has_llc = 1,
|
.has_llc = 1,
|
||||||
.has_pch_split = 1,
|
.has_pch_split = 1,
|
||||||
|
.not_supported = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct intel_device_info intel_haswell_m_info = {
|
static const struct intel_device_info intel_haswell_m_info = {
|
||||||
@ -217,6 +218,7 @@ static const struct intel_device_info intel_haswell_m_info = {
|
|||||||
.has_blt_ring = 1,
|
.has_blt_ring = 1,
|
||||||
.has_llc = 1,
|
.has_llc = 1,
|
||||||
.has_pch_split = 1,
|
.has_pch_split = 1,
|
||||||
|
.not_supported = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define INTEL_VGA_DEVICE(id, info_) { \
|
#define INTEL_VGA_DEVICE(id, info_) { \
|
||||||
@ -282,6 +284,8 @@ static const struct intel_gfx_device_id {
|
|||||||
{0, 0}
|
{0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int i915_enable_unsupported;
|
||||||
|
|
||||||
static int i915_drm_freeze(struct drm_device *dev)
|
static int i915_drm_freeze(struct drm_device *dev)
|
||||||
{
|
{
|
||||||
struct drm_i915_private *dev_priv;
|
struct drm_i915_private *dev_priv;
|
||||||
@ -413,8 +417,16 @@ i915_resume(device_t kdev)
|
|||||||
static int
|
static int
|
||||||
i915_probe(device_t kdev)
|
i915_probe(device_t kdev)
|
||||||
{
|
{
|
||||||
|
const struct intel_device_info *info;
|
||||||
|
int error;
|
||||||
|
|
||||||
return drm_probe(kdev, i915_pciidlist);
|
error = drm_probe(kdev, i915_pciidlist);
|
||||||
|
if (error != 0)
|
||||||
|
return (error);
|
||||||
|
info = i915_get_device_id(pci_get_device(kdev));
|
||||||
|
if (info == NULL)
|
||||||
|
return (ENXIO);
|
||||||
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int i915_modeset;
|
int i915_modeset;
|
||||||
@ -458,6 +470,8 @@ i915_get_device_id(int device)
|
|||||||
for (did = &pciidlist[0]; did->device != 0; did++) {
|
for (did = &pciidlist[0]; did->device != 0; did++) {
|
||||||
if (did->device != device)
|
if (did->device != device)
|
||||||
continue;
|
continue;
|
||||||
|
if (did->info->not_supported && !i915_enable_unsupported)
|
||||||
|
return (NULL);
|
||||||
return (did->info);
|
return (did->info);
|
||||||
}
|
}
|
||||||
return (NULL);
|
return (NULL);
|
||||||
@ -527,6 +541,7 @@ int i915_enable_ppgtt = -1;
|
|||||||
TUNABLE_INT("drm.i915.enable_ppgtt", &i915_enable_ppgtt);
|
TUNABLE_INT("drm.i915.enable_ppgtt", &i915_enable_ppgtt);
|
||||||
int i915_enable_hangcheck = 1;
|
int i915_enable_hangcheck = 1;
|
||||||
TUNABLE_INT("drm.i915.enable_hangcheck", &i915_enable_hangcheck);
|
TUNABLE_INT("drm.i915.enable_hangcheck", &i915_enable_hangcheck);
|
||||||
|
TUNABLE_INT("drm.i915.enable_unsupported", &i915_enable_unsupported);
|
||||||
|
|
||||||
#define PCI_VENDOR_INTEL 0x8086
|
#define PCI_VENDOR_INTEL 0x8086
|
||||||
#define INTEL_PCH_DEVICE_ID_MASK 0xff00
|
#define INTEL_PCH_DEVICE_ID_MASK 0xff00
|
||||||
|
@ -166,6 +166,7 @@ struct drm_i915_display_funcs {
|
|||||||
|
|
||||||
struct intel_device_info {
|
struct intel_device_info {
|
||||||
u8 gen;
|
u8 gen;
|
||||||
|
u8 not_supported:1;
|
||||||
u8 is_mobile:1;
|
u8 is_mobile:1;
|
||||||
u8 is_i85x:1;
|
u8 is_i85x:1;
|
||||||
u8 is_i915g:1;
|
u8 is_i915g:1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user