xf86-video-intel: 3 commits - src/intel_driver.c src/intel_driver.h src/intel_module.c src/legacy/i810 src/sna/gen7_render.c src/sna/sna_driver.c
Chris Wilson
ickle at kemper.freedesktop.org
Fri Aug 3 13:44:24 PDT 2012
src/intel_driver.c | 9 +++++----
src/intel_driver.h | 7 +++----
src/intel_module.c | 13 +++++--------
src/legacy/i810/i810_driver.c | 2 +-
src/sna/gen7_render.c | 2 +-
src/sna/sna_driver.c | 7 ++++---
6 files changed, 19 insertions(+), 21 deletions(-)
New commits:
commit 036b90f099af21e60fb4c3684616daf1927f705e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Aug 3 21:41:59 2012 +0100
sna/gen7: Correct number of texture coordinates used for video
Fixes regresion from
commit 33c028f8be829caa4fdb9416ff177dc71f24b68e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Wed Aug 1 01:17:50 2012 +0100
sna/gen6+: Reduce floats-per-vertex for spans
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index b4a9223..9ef5e17 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2086,7 +2086,7 @@ gen7_render_video(struct sna *sna,
is_planar_fourcc(frame->id) ?
GEN7_WM_KERNEL_VIDEO_PLANAR :
GEN7_WM_KERNEL_VIDEO_PACKED,
- 1);
+ 2);
tmp.priv = frame;
kgem_set_mode(&sna->kgem, KGEM_RENDER);
commit 05dcc5f1699ba90fc14c50882e8d4be89bc4a4f9
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Aug 3 15:08:45 2012 +0100
Pass the chipset info through driverPrivate rather than a global pointer
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/intel_driver.c b/src/intel_driver.c
index 0e27c48..1ef06fb 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -186,7 +186,7 @@ static void PreInitCleanup(ScrnInfoPtr scrn)
static void intel_check_chipset_option(ScrnInfoPtr scrn)
{
intel_screen_private *intel = intel_get_screen_private(scrn);
- intel->info = intel_detect_chipset(scrn, intel->pEnt, intel->PciInfo);
+ intel_detect_chipset(scrn, intel->pEnt, intel->PciInfo);
}
static Bool I830GetEarlyOptions(ScrnInfoPtr scrn)
@@ -458,14 +458,15 @@ static Bool I830PreInit(ScrnInfoPtr scrn, int flags)
if (flags & PROBE_DETECT)
return TRUE;
- intel = intel_get_screen_private(scrn);
- if (intel == NULL) {
- intel = xnfcalloc(sizeof(intel_screen_private), 1);
+ if (((uintptr_t)scrn->driverPrivate) & 1) {
+ intel = xnfcalloc(sizeof(*intel), 1);
if (intel == NULL)
return FALSE;
+ intel->info = (void *)((uintptr_t)scrn->driverPrivate & ~1);
scrn->driverPrivate = intel;
}
+ intel = intel_get_screen_private(scrn);
intel->scrn = scrn;
intel->pEnt = pEnt;
diff --git a/src/intel_driver.h b/src/intel_driver.h
index d760cb4..882d889 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -238,9 +238,9 @@ struct intel_device_info {
int gen;
};
-const struct intel_device_info *
-intel_detect_chipset(ScrnInfoPtr scrn,
- EntityInfoPtr ent, struct pci_device *pci);
+void intel_detect_chipset(ScrnInfoPtr scrn,
+ EntityInfoPtr ent,
+ struct pci_device *pci);
#endif /* INTEL_DRIVER_H */
diff --git a/src/intel_module.c b/src/intel_module.c
index f1d9fc0..ae19f75 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -44,8 +44,6 @@
#include "legacy/legacy.h"
#include "sna/sna_module.h"
-static struct intel_device_info *chipset_info;
-
static const struct intel_device_info intel_generic_info = {
.gen = -1,
};
@@ -227,9 +225,10 @@ static const struct pci_id_match intel_device_match[] = {
{ 0, 0, 0 },
};
-const struct intel_device_info *
+void
intel_detect_chipset(ScrnInfoPtr scrn,
- EntityInfoPtr ent, struct pci_device *pci)
+ EntityInfoPtr ent,
+ struct pci_device *pci)
{
MessageType from = X_PROBED;
const char *name = NULL;
@@ -258,7 +257,6 @@ intel_detect_chipset(ScrnInfoPtr scrn,
}
scrn->chipset = name;
- return chipset_info;
}
/*
@@ -368,8 +366,6 @@ static Bool intel_pci_probe(DriverPtr driver,
PciChipsets intel_pci_chipsets[NUM_CHIPSETS];
unsigned i;
- chipset_info = (void *)match_data;
-
if (!has_kernel_mode_setting(device)) {
#if KMS_ONLY
return FALSE;
@@ -404,6 +400,7 @@ static Bool intel_pci_probe(DriverPtr driver,
scrn->driverVersion = INTEL_VERSION;
scrn->driverName = INTEL_DRIVER_NAME;
scrn->name = INTEL_NAME;
+ scrn->driverPrivate = (void *)(match_data | 1);
scrn->Probe = NULL;
#if !KMS_ONLY
diff --git a/src/legacy/i810/i810_driver.c b/src/legacy/i810/i810_driver.c
index 949fd27..fc6369e 100644
--- a/src/legacy/i810/i810_driver.c
+++ b/src/legacy/i810/i810_driver.c
@@ -152,7 +152,7 @@ static int i810_pitches[] = {
static Bool
I810GetRec(ScrnInfoPtr scrn)
{
- if (scrn->driverPrivate)
+ if (((uintptr_t)scrn->driverPrivate & 1) == 0)
return TRUE;
scrn->driverPrivate = xnfcalloc(sizeof(I810Rec), 1);
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index bd31996..2ccad59 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -383,14 +383,15 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
sna_selftest();
- sna = to_sna(scrn);
- if (sna == NULL) {
+ if (((uintptr_t)scrn->driverPrivate) & 1) {
sna = xnfcalloc(sizeof(struct sna), 1);
if (sna == NULL)
return FALSE;
+ sna->info = (void *)((uintptr_t)scrn->driverPrivate & ~1);
scrn->driverPrivate = sna;
}
+ sna = to_sna(scrn);
sna->scrn = scrn;
sna->pEnt = pEnt;
@@ -438,7 +439,7 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
if (sna->Options == NULL)
return FALSE;
- sna->info = intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo);
+ intel_detect_chipset(scrn, sna->pEnt, sna->PciInfo);
kgem_init(&sna->kgem, fd, sna->PciInfo, sna->info->gen);
if (xf86ReturnOptValBool(sna->Options, OPTION_ACCEL_DISABLE, FALSE)) {
commit 2b3f4ca33a00440a7005fef69099f8dbaddbbad1
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Fri Aug 3 14:27:51 2012 +0100
Unexport intel_chipsets
Only used by the core module code, so make it static.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/intel_driver.h b/src/intel_driver.h
index d88f225..d760cb4 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -234,7 +234,6 @@
#define SUPPORTS_YTILING(pI810) (INTEL_INFO(intel)->gen >= 40)
#define HAS_BLT(pI810) (INTEL_INFO(intel)->gen >= 60)
-extern SymTabRec *intel_chipsets;
struct intel_device_info {
int gen;
};
diff --git a/src/intel_module.c b/src/intel_module.c
index 7640916..f1d9fc0 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -155,7 +155,7 @@ static const SymTabRec _intel_chipsets[] = {
};
#define NUM_CHIPSETS (sizeof(_intel_chipsets) / sizeof(_intel_chipsets[0]))
-SymTabRec *intel_chipsets = (SymTabRec *) _intel_chipsets;
+static SymTabRec *intel_chipsets = (SymTabRec *) _intel_chipsets;
#define INTEL_DEVICE_MATCH(d,i) \
{ 0x8086, (d), PCI_MATCH_ANY, PCI_MATCH_ANY, 0x3 << 16, 0xff << 16, (intptr_t)(i) }
More information about the xorg-commit
mailing list