rpms/xorg-x11-drv-i810/devel intel-2.0.0-to-404fd475.patch, NONE, 1.1 i810.xinf, 1.12, 1.13 xorg-x11-drv-i810.spec, 1.57, 1.58 intel-2.0-vblank-power-savings.patch, 1.1, NONE

Adam Jackson (ajax) fedora-extras-commits at redhat.com
Wed Jun 6 18:26:00 UTC 2007


Author: ajax

Update of /cvs/pkgs/rpms/xorg-x11-drv-i810/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv2578

Modified Files:
	i810.xinf xorg-x11-drv-i810.spec 
Added Files:
	intel-2.0.0-to-404fd475.patch 
Removed Files:
	intel-2.0-vblank-power-savings.patch 
Log Message:
* Wed Jun 06 2007 Adam Jackson <ajax at redhat.com> 2.0.0-4
- Update to git master.  Many Xv and DVO fixes.  Adds support for 945GME,
  965GME, G33, Q33, and Q35 chips.


intel-2.0.0-to-404fd475.patch:

--- NEW FILE intel-2.0.0-to-404fd475.patch ---
diff --git a/README b/README
index f209baa..bcb0205 100644
--- a/README
+++ b/README
@@ -57,11 +57,6 @@ options.
 
 
 Known Limitations
-- Bug #8534: i830 laptop panels not supported.  The driver
-  will fail to recognize them, and only function through VGA output.  Two
-  partial DVO chip drivers (ivch and ch7017) are included which contain some of
-  the code necessary for i830 laptop panel support, but some I2C debugging will
-  be necessary to get those drivers to attach.
 - No support for "zaphod mode" dualhead.  This is the mode in which two
   Device sections are placed in the config file, and doesn't support DRI or
   many other features.  Instead, only "MergedFB-style" dualhead is supported.
diff --git a/man/intel.man b/man/intel.man
index 178ff0a..8991619 100644
--- a/man/intel.man
+++ b/man/intel.man
@@ -43,17 +43,10 @@ NetBSD, and Solaris have such kernel drivers available.
 By default, the i810 will use 8 megabytes
 of system memory for graphics.  For the 830M and later, the driver will
 automatically size its memory allocation according to the features it will
-support.  The amount of memory used may be limited by using the
+support.  The
 .B VideoRam
-entry in the config file
-.B "Device"
-section.  Limiting the amount of memory used may result in features being
-disabled, so if you choose to configure it, it is advisable to check the
-__xservername__
-log file to see if any features have been disabled because of insufficient
-video memory.  In particular, DRI support or tiling mode may be disabled
-with insufficient video memory.  Either of these being disabled will
-reduce performance for 3D applications.
+option, which in the past had been necessary to allow more than some small
+amount of memory to be allocated, is now ignored.
 .PP
 The following driver
 .B Options
@@ -175,11 +168,28 @@ Enable printing of additional debugging information about modesetting to
 the server log.
 
 .PP
-The 830M and newer driver supports RandR 1.2, exposing the VGA, LVDS
-(laptop panel), TMDS (DVI on SDVO/DVO cards), and TV (on 915GM/945GM)
-outputs.  Per-output configuration is done through the
-.B Monitor
-section of __xconfigfile__(__filemansuffix__).
+The 830M and newer driver supports the following outputs through RandR 1.2:
+.PP
+.TP
+.BI "VGA"
+Analog VGA output
+.TP
+.BI "LVDS"
+Laptop panel
+.TP
+.BI "TV"
+Integrated TV output
+.TP
+.BI "TMDS-1"
+First DVI SDVO output
+.TP
+.BI "TMDS-2"
+Second DVI SDVO output
+.PP
+SDVO and DVO TV outputs are not supported by the driver at this time.
+.PP
+See __xconfigfile__(__filemansuffix__) for information on associating Monitor
+sections with these outputs for configuration.
 
 .SH "SEE ALSO"
 __xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__)
diff --git a/src/bios_reader/bios_reader.c b/src/bios_reader/bios_reader.c
index a52bcc7..9ec73c1 100644
--- a/src/bios_reader/bios_reader.c
+++ b/src/bios_reader/bios_reader.c
@@ -30,16 +30,11 @@
 #include <string.h>
 #include <sys/types.h>
 
+#include "../i830_bios.h"
+
 #define _PARSE_EDID_
 #include "edid.h"
 
-/* Define some types so we can reuse i830_bios.h */
-typedef void *ScrnInfoPtr;
-typedef int Bool;
-#define TRUE 1
-#define FALSE 0
-#include "../i830_bios.h"
-
 
 /* Make a fake pI830 so we can easily pull i830_bios.c code in here. */
 struct _fake_i830 {
diff --git a/src/ch7017/ch7017.c b/src/ch7017/ch7017.c
index 7070c7d..8e3a6ef 100644
--- a/src/ch7017/ch7017.c
+++ b/src/ch7017/ch7017.c
@@ -144,7 +144,7 @@ ch7017_mode_valid(I2CDevPtr d, DisplayModePtr mode)
 }
 
 static void
-ch7017_mode_set(I2CDevPtr d, DisplayModePtr mode)
+ch7017_mode_set(I2CDevPtr d, DisplayModePtr mode, DisplayModePtr adjusted_mode)
 {
     struct ch7017_priv *priv = d->DriverPrivate.ptr;
     CARD8 lvds_pll_feedback_div, lvds_pll_vco_control;
diff --git a/src/ch7xxx/ch7xxx.c b/src/ch7xxx/ch7xxx.c
index 0a96555..09a9627 100644
--- a/src/ch7xxx/ch7xxx.c
+++ b/src/ch7xxx/ch7xxx.c
@@ -206,7 +206,7 @@ ch7xxx_mode_valid(I2CDevPtr d, DisplayModePtr mode)
 }
 
 static void
-ch7xxx_mode_set(I2CDevPtr d, DisplayModePtr mode)
+ch7xxx_mode_set(I2CDevPtr d, DisplayModePtr mode, DisplayModePtr adjusted_mode)
 {
     struct ch7xxx_priv *dev_priv = d->DriverPrivate.ptr;
     CARD8 tvco, tpcp, tpd, tlpf, idf;
diff --git a/src/common.h b/src/common.h
index f299e5d..cc07e49 100644
--- a/src/common.h
+++ b/src/common.h
@@ -233,6 +233,7 @@ union intfloat {
 #define INREG8(addr)        *(volatile CARD8  *)(RecPtr->MMIOBase + (addr))
 #define INREG16(addr)       *(volatile CARD16 *)(RecPtr->MMIOBase + (addr))
 #define INREG(addr)         *(volatile CARD32 *)(RecPtr->MMIOBase + (addr))
+#define INGTT(addr)         *(volatile CARD32 *)(RecPtr->GTTBase + (addr))
 #define POSTING_READ(addr)  (void)INREG(addr)
 
 #define OUTREG8(addr, val) do {						\
@@ -330,6 +331,7 @@ extern int I810_DEBUG;
 
 #ifndef PCI_CHIP_I945_GM
 #define PCI_CHIP_I945_GM        0x27A2
+#define PCI_CHIP_I945_GME	0x27AE
 #define PCI_CHIP_I945_GM_BRIDGE 0x27A0
 #endif
 
@@ -355,9 +357,25 @@ extern int I810_DEBUG;
 
 #ifndef PCI_CHIP_I965_GM
 #define PCI_CHIP_I965_GM        0x2A02
+#define PCI_CHIP_I965_GME	0x2A12
 #define PCI_CHIP_I965_GM_BRIDGE 0x2A00
 #endif
 
+#ifndef PCI_CHIP_G33_G
+#define PCI_CHIP_G33_G		0x29C2
+#define PCI_CHIP_G33_G_BRIDGE 	0x29C0
+#endif
+
+#ifndef PCI_CHIP_Q35_G
+#define PCI_CHIP_Q35_G		0x29B2
+#define PCI_CHIP_Q35_G_BRIDGE 	0x29B0
+#endif
+
+#ifndef PCI_CHIP_Q33_G
+#define PCI_CHIP_Q33_G		0x29D2
+#define PCI_CHIP_Q33_G_BRIDGE 	0x29D0
+#endif
+
 #define IS_I810(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I810 ||	\
 			pI810->PciInfo->chipType == PCI_CHIP_I810_DC100 || \
 			pI810->PciInfo->chipType == PCI_CHIP_I810_E)
@@ -372,12 +390,17 @@ extern int I810_DEBUG;
 #define IS_I915G(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I915_G || pI810->PciInfo->chipType == PCI_CHIP_E7221_G)
 #define IS_I915GM(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I915_GM)
 #define IS_I945G(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I945_G)
-#define IS_I945GM(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I945_GM)
-#define IS_I965GM(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I965_GM)
-#define IS_I965G(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I965_G || pI810->PciInfo->chipType == PCI_CHIP_I965_G_1 || pI810->PciInfo->chipType == PCI_CHIP_I965_Q || pI810->PciInfo->chipType == PCI_CHIP_I946_GZ || pI810->PciInfo->chipType == PCI_CHIP_I965_GM)
-#define IS_I9XX(pI810) (IS_I915G(pI810) || IS_I915GM(pI810) || IS_I945G(pI810) || IS_I945GM(pI810) || IS_I965G(pI810))
+#define IS_I945GM(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I945_GM || pI810->PciInfo->chipType == PCI_CHIP_I945_GME)
+#define IS_I965GM(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I965_GM || pI810->PciInfo->chipType == PCI_CHIP_I965_GME)
+#define IS_I965G(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I965_G || pI810->PciInfo->chipType == PCI_CHIP_I965_G_1 || pI810->PciInfo->chipType == PCI_CHIP_I965_Q || pI810->PciInfo->chipType == PCI_CHIP_I946_GZ || pI810->PciInfo->chipType == PCI_CHIP_I965_GM || pI810->PciInfo->chipType == PCI_CHIP_I965_GME)
+#define IS_G33CLASS(pI810) (pI810->PciInfo->chipType == PCI_CHIP_G33_G ||\
+ 			    pI810->PciInfo->chipType == PCI_CHIP_Q35_G ||\
+ 			    pI810->PciInfo->chipType == PCI_CHIP_Q33_G)
+#define IS_I9XX(pI810) (IS_I915G(pI810) || IS_I915GM(pI810) || IS_I945G(pI810) || IS_I945GM(pI810) || IS_I965G(pI810) || IS_G33CLASS(pI810))
 
 #define IS_MOBILE(pI810) (IS_I830(pI810) || IS_I85X(pI810) || IS_I915GM(pI810) || IS_I945GM(pI810) || IS_I965GM(pI810))
+/* mark chipsets for using gfx VM offset for overlay */
+#define OVERLAY_NOPHYSICAL(pI810) (IS_G33CLASS(pI810))
 
 #define GTT_PAGE_SIZE			KB(4)
 #define ROUND_TO(x, y)			(((x) + (y) - 1) / (y) * (y))
diff --git a/src/i2c_vid.h b/src/i2c_vid.h
index 3be394d..1a21fca 100644
--- a/src/i2c_vid.h
+++ b/src/i2c_vid.h
@@ -1,16 +1,142 @@
-/* this needs to go in the server */
+/*
[...8542 lines suppressed...]
+ */
+/** @} */
+
+/** @defgroup VR20 LCD Horizontal Display Size
+ * @{
+ */
+#define VR20	0x20
+/** @} */
+
+/** @defgroup VR21 LCD Vertical Display Size
+ * @{
+ */
+#define VR21	0x20
+/** @} */
+
+/** @defgroup VR22 Horizontal TRP to DE Start Delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR23 Horizontal TRP to DE End Delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR24 Horizontal TRP To LP Start Delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR25 Horizontal TRP To LP End Delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR26 Vertical TRP To FLM Start Delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR27 Vertical TRP To FLM End Delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR30 Panel power down status
  * @{
  */
 #define VR30		0x30
@@ -83,15 +158,134 @@
 # define VR30_PANEL_ON			(1 << 15)
 /** @} */
 
+/** @defgroup VR31 Tpon Panel power on sequencing delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR32 Tpon Panel power off sequencing delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR33 Tstay Panel power off stay down delay
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR34 Maximal FLM Pulse Interval
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR35 Maximal LP Pulse Interval
+ * @{
+ */
+/** @} */
+
 /** @defgroup VR40
  * @{
  */
 #define VR40		0x40
 # define VR40_STALL_ENABLE		(1 << 13)
-# define VR40_VERTICAL_INTERP_ENABLE	(1 << 11)
+# define VR40_VERTICAL_INTERP_ENABLE	(1 << 12)
+# define VR40_ENHANCED_PANEL_FITTING	(1 << 11)
 # define VR40_HORIZONTAL_INTERP_ENABLE	(1 << 10)
-# define VR40_RATIO_ENABLE		(1 << 9)
-# define VR40_PANEL_FIT_ENABLE		(1 << 8)
+# define VR40_AUTO_RATIO_ENABLE		(1 << 9)
+# define VR40_CLOCK_GATING_ENABLE	(1 << 8)
+/** @} */
+
+/** @defgroup VR41 Panel Fitting Vertical Ratio
+ * @{
+ *
+ * (((image_height - 1) << 16) / ((panel_height - 1))) >> 2
+ */
+/** @} */
+#define VR41		0x41
+
+/** @defgroup VR42 Panel Fitting Horizontal Ratio
+ * @{
+ * (((image_width - 1) << 16) / ((panel_width - 1))) >> 2
+ */
+/** @} */
+#define VR42		0x42
+
+/** @defgroup VR43 Horizontal Image Size
+ * @{
+ */
+/** @} */
+#define VR43		0x43
+
+/** @defgroup VR44 Panel Fitting Coefficient 0
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR45 Panel Fitting Coefficient 1
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR46 Panel Fitting Coefficient 2
+ * @{
+ */
 /** @} */
 
+/** @defgroup VR47 Panel Fitting Coefficient 3
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR48 Panel Fitting Coefficient 4
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR49 Panel Fitting Coefficient 5
+ * @{
+ */
+/** @} */
+
+/** @defgroup VR80 GPIO 0
+ * @{
+ */
+/** @} */
+
+#define VR80	    0x80
+#define VR81	    0x81
+#define VR82	    0x82
+#define VR83	    0x83
+#define VR84	    0x84
+#define VR85	    0x85
+#define VR86	    0x86
+#define VR87	    0x87
+    
+/** @defgroup VR88 GPIO 8
+ * @{
+ */
+/** @} */
+
+#define VR88	    0x88
+
+/** @defgroup VR8E Graphics BIOS scratch 0
+ * @{
+ */
+#define VR8E	    0x8E
+# define VR8E_PANEL_TYPE_MASK		(0xf << 0)
+# define VR8E_PANEL_INTERFACE_CMOS	(0 << 4)
+# define VR8E_PANEL_INTERFACE_LVDS	(1 << 4)
+# define VR8E_FORCE_DEFAULT_PANEL	(1 << 5)
+/** @} */
+
+/** @defgroup VR8F Graphics BIOS scratch 1
+ * @{
+ */
+#define VR8F	    0x8F
+# define VR8F_VCH_PRESENT		(1 << 0)
+# define VR8F_DISPLAY_CONN		(1 << 1)
+# define VR8F_POWER_MASK		(0x3c)
+# define VR8F_POWER_POS			(2)
+/** @} */
+
+
 #endif /* I82807AA_REG_H */
diff --git a/src/sil164/sil164.c b/src/sil164/sil164.c
index 80b1b6a..60a03e2 100644
--- a/src/sil164/sil164.c
+++ b/src/sil164/sil164.c
@@ -144,7 +144,7 @@ sil164_mode_valid(I2CDevPtr d, DisplayModePtr mode)
 }
 
 static void
-sil164_mode_set(I2CDevPtr d, DisplayModePtr mode)
+sil164_mode_set(I2CDevPtr d, DisplayModePtr mode, DisplayModePtr adjusted_mode)
 {
     /* As long as the basics are set up, since we don't have clock dependencies
      * in the mode setup, we can just leave the registers alone and everything


Index: i810.xinf
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-i810/devel/i810.xinf,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- i810.xinf	10 Apr 2007 17:27:27 -0000	1.12
+++ i810.xinf	6 Jun 2007 18:25:23 -0000	1.13
@@ -5,23 +5,26 @@
 # Therefore, we whitelist devices over to the modesetting driver by listing
 # subdevice matches _after_ the general match.
 
-alias pcivideo:v00008086d00001132sv*sd*bc*sc*i* i810	# i815
+alias pcivideo:v00008086d00001132sv*sd*bc*sc*i* intel	# i815
 alias pcivideo:v00008086d00002562sv*sd*bc*sc*i* i810	# 845G
 alias pcivideo:v00008086d00002572sv*sd*bc*sc*i* i810	# 865G
-alias pcivideo:v00008086d00002582sv*sd*bc*sc*i* i810	# 915G
-# ajax's desktop
-alias pcivideo:v00008086d00002582sv00008086sd00004556bc*sc*i* intel
-alias pcivideo:v00008086d0000258Asv*sd*bc*sc*i* i810	# E7221G
+alias pcivideo:v00008086d00002582sv*sd*bc*sc*i* intel	# 915G
+alias pcivideo:v00008086d0000258Asv*sd*bc*sc*i* intel	# E7221G ("915G")
 alias pcivideo:v00008086d00002592sv*sd*bc*sc*i* intel	# 915GM
-alias pcivideo:v00008086d00002772sv*sd*bc*sc*i* i810	# 945G
+alias pcivideo:v00008086d00002772sv*sd*bc*sc*i* intel	# 945G
 alias pcivideo:v00008086d000027A2sv*sd*bc*sc*i* intel	# 945GM
+alias pcivideo:v00008086d000027AEsv*sd*bc*sc*i* intel	# 945GME
 alias pcivideo:v00008086d00002972sv*sd*bc*sc*i* intel	# 946GZ, really a 965
 alias pcivideo:v00008086d00002982sv*sd*bc*sc*i* intel	# 965G1
 alias pcivideo:v00008086d00002992sv*sd*bc*sc*i* intel	# 965Q
 alias pcivideo:v00008086d000029A2sv*sd*bc*sc*i* intel	# 965G
+alias pcivideo:v00008086d000029B2sv*sd*bc*sc*i* intel	# Q35
+alias pcivideo:v00008086d000029C2sv*sd*bc*sc*i* intel	# G33
+alias pcivideo:v00008086d000029D2sv*sd*bc*sc*i* intel	# Q33
 alias pcivideo:v00008086d00002A02sv*sd*bc*sc*i* intel	# 965GM
+alias pcivideo:v00008086d00002A12sv*sd*bc*sc*i* intel	# 965GME
 alias pcivideo:v00008086d00003577sv*sd*bc*sc*i* i810	# i830
 alias pcivideo:v00008086d00003582sv*sd*bc*sc*i* i810	# 855GM
-alias pcivideo:v00008086d00007121sv*sd*bc*sc*i* i810	# i810
-alias pcivideo:v00008086d00007123sv*sd*bc*sc*i* i810	# i810 DC100
-alias pcivideo:v00008086d00007125sv*sd*bc*sc*i* i810	# i810E
+alias pcivideo:v00008086d00007121sv*sd*bc*sc*i* intel	# i810
+alias pcivideo:v00008086d00007123sv*sd*bc*sc*i* intel	# i810 DC100
+alias pcivideo:v00008086d00007125sv*sd*bc*sc*i* intel	# i810E


Index: xorg-x11-drv-i810.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-i810/devel/xorg-x11-drv-i810.spec,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -r1.57 -r1.58
--- xorg-x11-drv-i810.spec	14 May 2007 21:49:30 -0000	1.57
+++ xorg-x11-drv-i810.spec	6 Jun 2007 18:25:23 -0000	1.58
@@ -7,7 +7,7 @@
 Summary:   Xorg X11 i810 video driver(s)
 Name:      xorg-x11-drv-i810
 Version:   2.0.0
-Release:   3%{?dist}
+Release:   4%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X Hardware Support
@@ -18,7 +18,7 @@
 Source2:   i810.xinf
 
 # new school intel driver patches
-Patch0: intel-2.0-vblank-power-savings.patch
+Patch0: intel-2.0.0-to-404fd475.patch
 
 # legacy i810 driver patches
 Patch100: i810-1.6.5-to-git-20060911.patch
@@ -79,8 +79,8 @@
 
 find $RPM_BUILD_ROOT -regex ".*\.la$" | xargs rm -f --
 
-# Nuke until they're actually hooked up in the code
-rm -f $RPM_BUILD_ROOT/%{driverdir}/{ch7017,ivch}.so
+# Nuke until actually hooked up in the code
+rm -f $RPM_BUILD_ROOT/%{driverdir}/ch7017.so
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -92,7 +92,7 @@
 %{driverdir}/ch7xxx.so
 %{driverdir}/sil164.so
 #%{driverdir}/ch7017.so
-#%{driverdir}/ivch.so
+%{driverdir}/ivch.so
 %{_datadir}/hwdata/videoaliases/i810.xinf
 %{_libdir}/libI810XvMC.so.1
 %{_libdir}/libI810XvMC.so.1.0.0
@@ -103,6 +103,10 @@
 %{_libdir}/libI810XvMC.so
 
 %changelog
+* Wed Jun 06 2007 Adam Jackson <ajax at redhat.com> 2.0.0-4
+- Update to git master.  Many Xv and DVO fixes.  Adds support for 945GME,
+  965GME, G33, Q33, and Q35 chips.
+
 * Mon May 14 2007 Adam Jackson <ajax at redhat.com> 2.0.0-3
 - intel-2.0-vblank-power-savings.patch: Disable vblank interrupts when no
   DRI clients are active, for better battery life.


--- intel-2.0-vblank-power-savings.patch DELETED ---




More information about the fedora-extras-commits mailing list