xf86-video-intel: 2 commits - src/intel_driver.h src/intel_memory.c src/intel_module.c src/intel_video.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Jul 9 04:14:05 PDT 2010


 src/intel_driver.h |   10 +++++++++-
 src/intel_memory.c |    2 +-
 src/intel_module.c |    6 ++++++
 src/intel_video.c  |    3 +++
 4 files changed, 19 insertions(+), 2 deletions(-)

New commits:
commit 6fba8c449f61341a98a5ae8d97effa6fd0610fd4
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jul 9 12:12:13 2010 +0100

    Add support for I854.
    
    I spotted that the kernel knew of the I854, but the pci-id was never
    added to the ddx.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/intel_driver.h b/src/intel_driver.h
index 3e4a79d..c0b1c57 100644
--- a/src/intel_driver.h
+++ b/src/intel_driver.h
@@ -30,6 +30,11 @@
 #define PCI_CHIP_845_G_BRIDGE	   0x2560
 #endif
 
+#ifndef PCI_CHIP_I854
+#define PCI_CHIP_I854		   0x358E
+#define PCI_CHIP_I854_BRIDGE	   0x358C
+#endif
+
 #ifndef PCI_CHIP_I855_GM
 #define PCI_CHIP_I855_GM	   0x3582
 #define PCI_CHIP_I855_GM_BRIDGE	   0x3580
@@ -191,10 +196,13 @@
 #define IS_I815(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I815)
 #define IS_I830(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I830_M)
 #define IS_845G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_845_G)
-#define IS_I85X(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM)
+#define IS_I85X(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM || \
+			 DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I854)
 #define IS_I852(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM && (pI810->variant == I852_GM || pI810->variant == I852_GME))
+#define IS_I854(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I854)
 #define IS_I855(pI810)  (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I855_GM && (pI810->variant == I855_GM || pI810->variant == I855_GME))
 #define IS_I865G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I865_G)
+#define IS_I8XX(pI810)	(IS_I830(pI810) || IS_845G(pI810) || IS_I85X(pI810) || IS_I865G(pI810))
 
 #define IS_I915G(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I915_G || DEVICE_ID(pI810->PciInfo) == PCI_CHIP_E7221_G)
 #define IS_I915GM(pI810) (DEVICE_ID(pI810->PciInfo) == PCI_CHIP_I915_GM)
diff --git a/src/intel_memory.c b/src/intel_memory.c
index 8443c91..47444eb 100644
--- a/src/intel_memory.c
+++ b/src/intel_memory.c
@@ -144,7 +144,7 @@ intel_check_display_stride(ScrnInfoPtr scrn, int stride, Bool tiling)
 
 	/* 8xx spec has always 8K limit, but tests show larger limit in
 	   non-tiling mode, which makes large monitor work. */
-	if ((IS_845G(intel) || IS_I85X(intel)) && tiling)
+	if (IS_I8XX(intel) && tiling)
 		limit = KB(8);
 
 	if (IS_I915(intel) && tiling)
diff --git a/src/intel_module.c b/src/intel_module.c
index 42350d4..5e64989 100644
--- a/src/intel_module.c
+++ b/src/intel_module.c
@@ -44,6 +44,7 @@ static const SymTabRec _intel_chipsets[] = {
     {PCI_CHIP_I815,		"i815"},
     {PCI_CHIP_I830_M,		"i830M"},
     {PCI_CHIP_845_G,		"845G"},
+    {PCI_CHIP_I854,		"854"},
     {PCI_CHIP_I855_GM,		"852GM/855GM"},
     {PCI_CHIP_I865_G,		"865G"},
     {PCI_CHIP_I915_G,		"915G"},
@@ -85,6 +86,7 @@ static const struct pci_id_match intel_device_match[] = {
     INTEL_DEVICE_MATCH (PCI_CHIP_I815, 0 ),
     INTEL_DEVICE_MATCH (PCI_CHIP_I830_M, 0 ),
     INTEL_DEVICE_MATCH (PCI_CHIP_845_G, 0 ),
+    INTEL_DEVICE_MATCH (PCI_CHIP_I854, 0 ),
     INTEL_DEVICE_MATCH (PCI_CHIP_I855_GM, 0 ),
     INTEL_DEVICE_MATCH (PCI_CHIP_I865_G, 0 ),
     INTEL_DEVICE_MATCH (PCI_CHIP_I915_G, 0 ),
@@ -124,6 +126,7 @@ static PciChipsets intel_pci_chipsets[] = {
     {PCI_CHIP_I815,		PCI_CHIP_I815,		NULL},
     {PCI_CHIP_I830_M,		PCI_CHIP_I830_M,	NULL},
     {PCI_CHIP_845_G,		PCI_CHIP_845_G,		NULL},
+    {PCI_CHIP_I854,		PCI_CHIP_I854,		NULL},
     {PCI_CHIP_I855_GM,		PCI_CHIP_I855_GM,	NULL},
     {PCI_CHIP_I865_G,		PCI_CHIP_I865_G,	NULL},
     {PCI_CHIP_I915_G,		PCI_CHIP_I915_G,	NULL},
@@ -179,6 +182,9 @@ void intel_detect_chipset(ScrnInfoPtr scrn,
     case PCI_CHIP_845_G:
 	chipset->name = "845G";
 	break;
+    case PCI_CHIP_I854:
+	chipset->name = "854";
+	break;
     case PCI_CHIP_I855_GM:
 	/* Check capid register to find the chipset variant */
 	pci_device_cfg_read_u32(pci, &capid, I85X_CAPID);
commit 141e88c8730a099a6ca5eab1350c2e53a680cb0d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jul 9 12:11:07 2010 +0100

    video: forgotten amendment to previous commit.
    
    An extra sanity check to skip the wait if all clipped...
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/intel_video.c b/src/intel_video.c
index cf22562..8be9dfb 100644
--- a/src/intel_video.c
+++ b/src/intel_video.c
@@ -1289,6 +1289,7 @@ intel_wait_for_scanline(ScrnInfoPtr scrn, PixmapPtr pixmap,
 	if (crtc->transform_in_use)
 		pixman_f_transform_bounds(&crtc->f_framebuffer_to_crtc, &box);
 
+	/* We could presume the clip was correctly computed... */
 	intel_crtc_box(crtc, &crtc_box);
 	intel_box_intersect(&box, &crtc_box, &box);
 
@@ -1299,6 +1300,8 @@ intel_wait_for_scanline(ScrnInfoPtr scrn, PixmapPtr pixmap,
 	y1 = (crtc_box.y1 <= box.y1) ? box.y1 - crtc_box.y1 : 0;
 	y2 = (box.y2 <= crtc_box.y2) ?
 		box.y2 - crtc_box.y1 : crtc_box.y2 - crtc_box.y1;
+	if (y2 <= y1)
+		return;
 
 	full_height = FALSE;
 	if (y1 == 0 && y2 == (crtc_box.y2 - crtc_box.y1))


More information about the xorg-commit mailing list