Package: i810switch
Severity: wishlist
Tags: patch

Hi,

The dpatch patch management system has been deprecated for some time. The
Lintian currently flags use of dpatch packages as an error. The new 3.0
packaging format is an improved version which, among other things, contains
patch management built-in. For more information, see:

    http://wiki.debian.org/Projects/DebSrc3.0

I had some free time; see attached patch to migrate to new package
format. Note that all files in debian/patches/* are canocalized to
*.patch.

Let me know if there is anything that needs adjusting or if it is ok
to upload this version in a NMU in case you are working on other
issues needing attention.

Thanks,
Jari

>From 2a0f86e59c7e2f3f5d8c7fe3cabd30d7e1f62143 Mon Sep 17 00:00:00 2001
From: Jari Aalto <jari.aa...@cante.net>
Date: Wed, 25 Apr 2012 09:05:48 +0300
Subject: [PATCH] format-3.0
Organization: Private
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Jari Aalto <jari.aa...@cante.net>
---
 Makefile                                           |   10 +-
 Makefile.debdiff                                   |   14 -
 debian/changelog                                   |   16 +-
 debian/compat                                      |    2 +-
 debian/control                                     |    7 +-
 debian/copyright                                   |    9 +-
 debian/menu                                        |    3 +-
 debian/patches/00list                              |    1 -
 debian/patches/10-i810switch.c.patch               |   16 +
 debian/patches/20-makefile.patch                   |   33 ++
 ...ook.dpatch => 50-support-945-940-macbook.patch} |    4 +
 debian/patches/series                              |    3 +
 debian/rules                                       |   32 +-
 debian/source/format                               |    1 +
 i810switch                                         |  Bin 22317 -> 0 bytes
 i810switch.c                                       |    2 +-
 i810switch.c.new                                   |  555 --------------------
 i810switch.o                                       |  Bin 10376 -> 0 bytes
 18 files changed, 100 insertions(+), 608 deletions(-)
 delete mode 100644 Makefile.debdiff
 delete mode 100644 debian/patches/00list
 create mode 100644 debian/patches/10-i810switch.c.patch
 create mode 100644 debian/patches/20-makefile.patch
 rename debian/patches/{01_support_945_940_macbook.dpatch => 50-support-945-940-macbook.patch} (80%)
 create mode 100644 debian/patches/series
 create mode 100644 debian/source/format
 delete mode 100755 i810switch
 delete mode 100644 i810switch.c.new
 delete mode 100644 i810switch.o

diff --git a/Makefile b/Makefile
index 4fdfee1..5359d39 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,4 @@
 OBJECTS	= i810switch.o
-INSTALL=/usr/bin/install
-CC=gcc
-
 
 %.o: %.c
 	$(CC) $(CFLAGS) -c -o $@ $<
@@ -12,8 +9,10 @@ i810switch: $(OBJECTS)
 	$(CC) $(CFLAGS) -o $@ $(OBJECTS)
 
 install: i810switch
-	${INSTALL} -D -m 4754 --group=video i810switch ${DESTDIR}/usr/bin/i810switch
-	${INSTALL} -D -m 0754 --group=video i810rotate ${DESTDIR}/usr/bin/i810rotate
+	install -d $(DESTDIR)/usr/bin
+	install -d $(DESTDIR)/usr/share/man/man1
+	install i810switch i810rotate $(DESTDIR)/usr/bin
+	install i810switch.1.gz i810rotate.1.gz $(DESTDIR)/usr/share/man/man1
 
 uninstall:
 	rm -f $(DESTDIR)/usr/bin/i810switch
@@ -23,3 +22,4 @@ uninstall:
 
 clean:
 	@rm -f $(OBJECTS) i810switch
+
diff --git a/Makefile.debdiff b/Makefile.debdiff
deleted file mode 100644
index a9bef18..0000000
--- a/Makefile.debdiff
+++ /dev/null
@@ -1,14 +0,0 @@
-DESTDIR=
-CC=gcc
-BIN=i810switch
-SOURCE=i810switch.c
-INSTALL=/usr/bin/install
-all:
-	${CC} -o ${BIN} ${SOURCE}
-
-clean: 
-	rm ${BIN}
-
-install: all
-	${INSTALL} -D -m 4750 --group=video ${BIN} ${DESTDIR}/usr/bin/${BIN}
-	${INSTALL} -D -m 0750 --group=video i810rotate ${DESTDIR}/usr/bin/i810rotate
diff --git a/debian/changelog b/debian/changelog
index 2d24f6c..e279dd6 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,18 @@
+i810switch (0.6.5-7.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Remove deprecated dpatch and upgrade to packaging format "3.0 quilt".
+  * Update to Standards-Version to 3.9.3 and debhelper to 9.
+  * Add build-arch and build-indep targets; use dh_prep in rules file.
+  * Update homepage URL to current location.
+  * Patches 10 and 20 are new; in-line changes to original sources.
+  * Fix copyright-refers-to-symlink-license (Lintian).
+  * Fix debian-rules-ignores-make-clean-error (Lintian).
+  * Fix menu-item-uses-apps-section (Lintian).
+  * Fix no-homepage-field (Lintian).
+
+ -- Jari Aalto <jari.aa...@cante.net>  Wed, 25 Apr 2012 08:57:20 +0300
+
 i810switch (0.6.5-7) unstable; urgency=low
 
   * Added kfreebsd-amd64 as an architecture for the package. Closes: #494980.
@@ -105,4 +120,3 @@ i810switch (0.3-1) unstable; urgency=low
   * Initial Release. Closes: #197406
 
  -- James Bromberger <j...@debian.org>  Wed,  3 Jul 2003 23:49:44 +0100
-
diff --git a/debian/compat b/debian/compat
index b8626c4..ec63514 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-4
+9
diff --git a/debian/control b/debian/control
index c847f52..7ec5ba9 100644
--- a/debian/control
+++ b/debian/control
@@ -2,12 +2,13 @@ Source: i810switch
 Section: utils
 Priority: optional
 Maintainer: James Bromberger <j...@debian.org>
-Build-Depends: debhelper (>> 4.0.0), dpatch
-Standards-Version: 3.8.0
+Build-Depends: debhelper (>= 9)
+Standards-Version: 3.9.3
+Homepage: http://www.pm.waw.pl/~jslupski/vaio
 
 Package: i810switch
 Architecture: i386 kfreebsd-i386 amd64 hurd-i386 kfreebsd-amd64
-Depends: ${shlibs:Depends}, pciutils (>= 1:2.1.11-6)
+Depends: ${misc:Depends}, ${shlibs:Depends}, pciutils (>= 1:2.1.11-6)
 Description: Enables/disables video output to CRT/LCD on i810 video hardware
  i810switch enables/disables the output to the CRT display and LCD,
  depending on the i810 graphics controller hardware. Such hardware is found
diff --git a/debian/copyright b/debian/copyright
index 2753169..c0b21b6 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -1,9 +1,12 @@
 This package was debianized by James Bromberger <j...@debian.org> on
 Sat, 14 Jun 2003 17:55:52 +0100.
 
-It was downloaded from http://www.pm.waw.pl/~jslupski/vaio/
+It was downloaded from http://juljas.net/vaio
 
-Copyright: Antonino Daplas <adap...@pol.net>, mano <m...@ac3.mopera.ne.jp>, 
+Copyright:
+
+  Antonino Daplas (original author) <adap...@pol.net>
+  mano <m...@ac3.mopera.ne.jp>
   Jeff Ames <j...@po.cwru.edu>
 
   You should have received a copy of the GNU General Public License along 
@@ -11,4 +14,4 @@ Copyright: Antonino Daplas <adap...@pol.net>, mano <m...@ac3.mopera.ne.jp>,
   Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 On Debian GNU/Linux systems, the complete text of the GNU General
-Public License can be found in `/usr/share/common-licenses/GPL'.
+Public License can be found in `/usr/share/common-licenses/GPL-2'.
diff --git a/debian/menu b/debian/menu
index 5c16a3d..35be12d 100644
--- a/debian/menu
+++ b/debian/menu
@@ -1,3 +1,4 @@
 ?package(i810switch): needs="text" title="i810rotate" \
-  section="Apps/System" longtitle="Rotate video output on i810 chipset" \
+  section="Applications/System/Hardware" \
+  longtitle="Rotate video output on i810 chipset" \
   command="/usr/bin/i810rotate"
diff --git a/debian/patches/00list b/debian/patches/00list
deleted file mode 100644
index 3cbd2b5..0000000
--- a/debian/patches/00list
+++ /dev/null
@@ -1 +0,0 @@
-01_support_945_940_macbook
diff --git a/debian/patches/10-i810switch.c.patch b/debian/patches/10-i810switch.c.patch
new file mode 100644
index 0000000..69d77f7
--- /dev/null
+++ b/debian/patches/10-i810switch.c.patch
@@ -0,0 +1,16 @@
+From: Unknown
+Subject: Use absolute path to call lspci(1)
+
+diff --git a/i810switch.c b/i810switch.c
+index 8831daa..4979b59 100644
+--- a/i810switch.c
++++ b/i810switch.c
+@@ -9,7 +9,7 @@
+ #include <errno.h>
+ 
+ #define VERSION "0.6.5beta"
+-#define CMD_LSPCI "lspci"
++#define CMD_LSPCI "/usr/bin/lspci"
+ 
+ static const char *Opt_lcd = NULL;
+ static const char *Opt_crt = NULL;
diff --git a/debian/patches/20-makefile.patch b/debian/patches/20-makefile.patch
new file mode 100644
index 0000000..00a102d
--- /dev/null
+++ b/debian/patches/20-makefile.patch
@@ -0,0 +1,33 @@
+From: Unknown
+Subject: Adjust install target in Makefile
+
+diff --git a/Makefile b/Makefile
+index 5359d39..4fdfee1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,4 +1,7 @@
+ OBJECTS	= i810switch.o
++INSTALL=/usr/bin/install
++CC=gcc
++
+ 
+ %.o: %.c
+ 	$(CC) $(CFLAGS) -c -o $@ $<
+@@ -9,10 +12,8 @@ i810switch: $(OBJECTS)
+ 	$(CC) $(CFLAGS) -o $@ $(OBJECTS)
+ 
+ install: i810switch
+-	install -d $(DESTDIR)/usr/bin
+-	install -d $(DESTDIR)/usr/share/man/man1
+-	install i810switch i810rotate $(DESTDIR)/usr/bin
+-	install i810switch.1.gz i810rotate.1.gz $(DESTDIR)/usr/share/man/man1
++	${INSTALL} -D -m 4754 --group=video i810switch ${DESTDIR}/usr/bin/i810switch
++	${INSTALL} -D -m 0754 --group=video i810rotate ${DESTDIR}/usr/bin/i810rotate
+ 
+ uninstall:
+ 	rm -f $(DESTDIR)/usr/bin/i810switch
+@@ -22,4 +23,3 @@ uninstall:
+ 
+ clean:
+ 	@rm -f $(OBJECTS) i810switch
+-
diff --git a/debian/patches/01_support_945_940_macbook.dpatch b/debian/patches/50-support-945-940-macbook.patch
similarity index 80%
rename from debian/patches/01_support_945_940_macbook.dpatch
rename to debian/patches/50-support-945-940-macbook.patch
index 6045946..0587008 100644
--- a/debian/patches/01_support_945_940_macbook.dpatch
+++ b/debian/patches/50-support-945-940-macbook.patch
@@ -1,3 +1,7 @@
+From: Thomas Perl <t...@perli.net>
+Subject: support for the Intel Corporation Mobile 945GM/GMS/940GML
+ Express Integrated Graphics found in MacBooks
+
 --- i810switch-0.6.5/i810switch.c	2006-12-24 22:30:48.000000000 +0100
 +++ i810switch-0.6.5-thp/i810switch.c	2006-12-24 22:27:47.000000000 +0100
 @@ -60,6 +60,7 @@
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..bdb90e1
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,3 @@
+10-i810switch.c.patch
+20-makefile.patch
+50-support-945-940-macbook.patch
diff --git a/debian/rules b/debian/rules
index 9eb7c13..ef9b3fa 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,9 +5,6 @@
 # Uncomment this to turn on verbose mode.
 export DH_VERBOSE=1
 
-
-
-
 CFLAGS = -Wall -g
 
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
@@ -19,28 +16,15 @@ ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
 	INSTALL_PROGRAM += -s
 endif
 
-configure: patch configure-stamp
+configure: configure-stamp
 configure-stamp:
 	dh_testdir
 	# Add here commands to configure the package.
 
 	touch configure-stamp
 
-clean-patched:
-	$(testdir)
-	$(testroot)
-	${MAKE} clean
-	rm -rf debian/i810switch debian/files debian/substvars
-
-patch: patch-stamp
-patch-stamp:
-	dpatch apply-all
-	dpatch cat-all >patch-stamp
-
-unpatch:
-	dpatch deapply-all
-	rm -rf patch-stamp debian/patched
-
+build-arch: build
+build-indep: build
 
 build: build-stamp
 
@@ -53,20 +37,22 @@ build-stamp: configure-stamp
 
 	touch build-stamp
 
-clean: clean-patched unpatch
+clean:
 	dh_testdir
 	dh_testroot
-	rm -f build-stamp configure-stamp
+	rm -f build-stamp configure-stamp \
+		i810switch *.o
 
 	# Add here commands to clean up after the build process.
-	-$(MAKE) clean
+	[ ! -f Makefile ] || $(MAKE) clean
 
+	rm -rf debian/i810switch debian/files debian/substvars
 	dh_clean
 
 install: build
 	dh_testdir
 	dh_testroot
-	dh_clean -k
+	dh_prep
 	dh_installdirs
 
 	# Add here commands to install the package into debian/i810switch.
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/i810switch b/i810switch
deleted file mode 100755
index 84ae1cec2572e6c7e400d7eb825ed692c632b4ef..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 22317
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

diff --git a/i810switch.c b/i810switch.c
index 4979b59..8831daa 100644
--- a/i810switch.c
+++ b/i810switch.c
@@ -9,7 +9,7 @@
 #include <errno.h>
 
 #define VERSION "0.6.5beta"
-#define CMD_LSPCI "/usr/bin/lspci"
+#define CMD_LSPCI "lspci"
 
 static const char *Opt_lcd = NULL;
 static const char *Opt_crt = NULL;
diff --git a/i810switch.c.new b/i810switch.c.new
deleted file mode 100644
index 4979b59..0000000
--- a/i810switch.c.new
+++ /dev/null
@@ -1,555 +0,0 @@
-#include <stdarg.h>
-#include <stdlib.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <string.h>
-#include <errno.h>
-
-#define VERSION "0.6.5beta"
-#define CMD_LSPCI "/usr/bin/lspci"
-
-static const char *Opt_lcd = NULL;
-static const char *Opt_crt = NULL;
-
-struct i810_par {
-	unsigned char *mmio;
-	int mem;
-	int flag;
-};
-
-#define i810_readb(mmio_base, where)                     \
-        *((volatile char *) (mmio_base + where))
-
-#define i810_readw(mmio_base, where)                     \
-        *((volatile short *) (mmio_base + where))
-
-#define i810_readl(mmio_base, where)                     \
-        *((volatile int *) (mmio_base + where))
-
-#define i810_writeb(mmio_base, where, val)                              \
-	*((volatile char *) (mmio_base + where)) = (volatile char) val
-
-#define i810_writew(mmio_base, where, val)                              \
-	*((volatile short *) (mmio_base + where)) = (volatile short) val
-
-#define i810_writel(mmio_base, where, val)                              \
-	*((volatile int *) (mmio_base + where)) = (volatile int) val
-
-#define I810_MEMOPEN		1
-#define I810_MMIO		2
-
-/* chip types */
-#define I810			1
-#define I830			2
-#define I855                    3
-#define I915                    4
-
-
-/* PCI IDs */
-#define I810STR			"8086:7121"
-#define I810ESTR		"8086:7123"
-#define I810_DC100STR_1		"8086:7125"
-#define I810_DC100STR_2		"8086:1102"
-#define I810_IGSTR		"8086:1112"
-#define I810_CFCSTR		"8086:1132"
-#define I830STR			"8086:3577"
-#define I845STR			"8086:2562"
-#define I855STR			"8086:3582"
-//#define I865STR			"8086:2572"
-#define I915STR			"8086:2592"
-#define MEMSTR			"Memory at"
-#define NONPRSTR		"32-bit, non-prefetchable"
-
-/* I810 registers */
-#define I810_HVSYNC		0x05000 
-
-#define I810_DCLK_0D		0x06000
-#define I810_DCLK_1D		0x06004
-#define I810_DCLK_0DS		0x06010
-#define I810_PWR_CLKC		0x06014
-
-#define I810_HTOTAL		0x60000
-#define I810_HBLANK		0x60004
-#define I810_HSYNC		0x60008
-#define I810_VTOTAL		0x6000c
-#define I810_VBLANK		0x60010
-#define I810_VSYNC		0x60014
-#define I810_LCDTV_C		0x60018
-#define I810_OVRACT		0x6001c
-#define I810_BCLRPAT		0x60020
-
-#define I810_PIXCONF		0x70008
-
-/* I830 registers */
-#define I830_HTOTAL_A		0x60000
-#define I830_HBLANK_A		0x60004
-#define I830_HSYNC_A		0x60008
-#define I830_VTOTAL_A		0x6000c
-#define I830_VBLANK_A		0x60010
-#define I830_VSYNC_A		0x60014
-#define I830_PIPEASRC		0x6001c
-#define I830_BCLRPAT_A		0x60020
-
-#define I830_HTOTAL_B		0x61000
-#define I830_HBLANK_B		0x61004
-#define I830_HSYNC_B		0x61008
-#define I830_VTOTAL_B		0x6100c
-#define I830_VBLANK_B		0x61010
-#define I830_VSYNC_B		0x61014
-#define I830_PIPEBSRC		0x6101c
-#define I830_BCLRPAT_B		0x61020
-
-#define I830_DPLL_A		0x06014
-#define I830_DPLL_B		0x06018
-
-#define I830_FPA0		0x06040
-#define I830_FPA1		0x06044
-#define I830_FPA2		0x06048
-#define I830_FPA3		0x0604c
-
-#define I830_ADPA		0x61100
-#define I830_DVOA		0x61120
-#define I830_DVOB		0x61140
-#define I830_DVOC		0x61160
-#define I830_LVDS		0x61180
-
-#define I830_ADPA_SRCDIM	0x61104
-#define I830_DVOA_SRCDIM	0x61124
-#define I830_DVOB_SRCDIM	0x61144
-#define I830_DVOC_SRCDIM	0x61164
-#define I830_LVDS_SRCDIM	0x61184
-
-#define I830_PIPEACONF		0x70008
-#define I830_PIPEBCONF		0x71008
-
-#define I830_DSPACTRL		0x70180
-#define I830_DSPBCTRL		0x71180
-
-#define I830_DSPABASE		0x70184
-#define I830_DSPASTRIDE		0x70188
-#define I830_DSPBBASE		0x71184
-#define I830_DSPBSTRIDE		0x71188
-
-#define I830_DCLK_0D		0x06000
-#define I830_DCLK_1D		0x06004
-#define I830_DCLK_0DS		0x06010
-
-#define I830_SWF0		0x71410
-#define I830_SWF1		0x71414
-#define I830_SWF2		0x71418
-#define I830_SWF3		0x7141c
-#define I830_SWF4		0x71420
-#define I830_SWF5		0x71424
-#define I830_SWF6		0x71428
-
-#define I830_LCDTV_C            0x06014
-#define I855_LCDTV_C            0x61204
-
-static void release_resource(struct i810_par *par)
-{
-	if (par->flag & I810_MEMOPEN)
-		close(par->mem);
-	if (par->flag & I810_MMIO)
-		munmap(par->mmio, 512 * 1024);
-}
-
-void probe_card_I810(struct i810_par *par)
-{
-	printf("  DCLK 0D=%08lX 1D=%08lX 0DS=%08lX\n",
-		i810_readl(par->mmio, I810_DCLK_0D), i810_readl(par->mmio, I810_DCLK_1D),
-	        i810_readl(par->mmio, I810_DCLK_0DS));
-	printf("  PWR_CLKC=%08lX HVSYNC=%08lX\n",
-		i810_readl(par->mmio, I810_PWR_CLKC),
-	        i810_readl(par->mmio, I810_HVSYNC));
-	printf("  020cc=%08lX 020d8=%08lX 020dc=%08lX\n",
-		i810_readl(par->mmio, 0x20cc), i810_readl(par->mmio, 0x20d8),
-		i810_readl(par->mmio, 0x20dc));
-	printf("  HTOTAL=%08lX HBLANK=%08lX HSYNC=%08lX\n",
-		i810_readl(par->mmio, I810_HTOTAL),
-		i810_readl(par->mmio, I810_HBLANK),
-		i810_readl(par->mmio, I810_HSYNC));
-	printf("  VTOTAL=%08lX VBLANK=%08lX VSYNC=%08lX\n",
-		i810_readl(par->mmio, I810_VTOTAL),
-		i810_readl(par->mmio, I810_VBLANK),
-		i810_readl(par->mmio, I810_VSYNC));
-	printf("  OVRACT=%08lX PIXCONF=%08lX 70080=%08lX\n",
-		i810_readl(par->mmio, I810_OVRACT),
-		i810_readl(par->mmio, I810_PIXCONF),
-		i810_readl(par->mmio, 0x70080));
-}
-
-void probe_card_I830(struct i810_par *par)
-{
-	printf("  DCLK 0D=%08lX 1D=%08lX 0DS=%08lX DPLL A=%08lX B=%08lX\n",
-		i810_readl(par->mmio, I830_DCLK_0D), i810_readl(par->mmio, I830_DCLK_1D),
-		i810_readl(par->mmio, I830_DCLK_0DS),
-		i810_readl(par->mmio, I830_DPLL_A), i810_readl(par->mmio, I830_DPLL_B));
-	printf("  ADPA=%08lX  DVO A=%08lX B=%08lX C=%08lX  LVDS=%08lX\n",
-		i810_readl(par->mmio, I830_ADPA), i810_readl(par->mmio, I830_DVOA),
-		i810_readl(par->mmio, I830_DVOB), i810_readl(par->mmio, I830_DVOC),
-		i810_readl(par->mmio, I830_LVDS));
-	printf("  DIM =%08lX  DIM A=%08lX B=%08lX C=%08lX       %08lX\n",
-		i810_readl(par->mmio, I830_ADPA_SRCDIM), i810_readl(par->mmio, I830_DVOA_SRCDIM),
-		i810_readl(par->mmio, I830_DVOB_SRCDIM), i810_readl(par->mmio, I830_DVOC_SRCDIM),
-		i810_readl(par->mmio, I830_LVDS_SRCDIM));
-	printf("  FPA %08lX %08lX %08lX %08lX\n",
-		i810_readl(par->mmio, I830_FPA0), i810_readl(par->mmio, I830_FPA1),
-		i810_readl(par->mmio, I830_FPA2), i810_readl(par->mmio, I830_FPA3));
-	printf("  020cc=%08lX 020d8=%08lX 020dc=%08lX\n",
-		i810_readl(par->mmio, 0x20cc), i810_readl(par->mmio, 0x20d8),
-		i810_readl(par->mmio, 0x20dc));
-	printf("  71280=%08lX 71400=%08lX\n",
-		i810_readl(par->mmio, 0x71280), i810_readl(par->mmio, 0x71400));
-	printf("  Pipe A\n");
-	printf("    HTOTAL=%08lX HBLANK=%08lX HSYNC=%08lX\n",
-		i810_readl(par->mmio, I830_HTOTAL_A),
-		i810_readl(par->mmio, I830_HBLANK_A),
-		i810_readl(par->mmio, I830_HSYNC_A));
-	printf("    VTOTAL=%08lX VBLANK=%08lX VSYNC=%08lX\n",
-		i810_readl(par->mmio, I830_VTOTAL_A),
-		i810_readl(par->mmio, I830_VBLANK_A),
-		i810_readl(par->mmio, I830_VSYNC_A));
-	printf("    SOURCE=%08lX CONFIG=%08lX 70030=%08lX 70080=%08lX\n",
-		i810_readl(par->mmio, I830_PIPEASRC),
-		i810_readl(par->mmio, I830_PIPEACONF),
-		i810_readl(par->mmio, 0x70030),
-		i810_readl(par->mmio, 0x70080));
-	printf("  Pipe B\n");
-	printf("    HTOTAL=%08lX HBLANK=%08lX HSYNC=%08lX\n",
-		i810_readl(par->mmio, I830_HTOTAL_B),
-		i810_readl(par->mmio, I830_HBLANK_B),
-		i810_readl(par->mmio, I830_HSYNC_B));
-	printf("    VTOTAL=%08lX VBLANK=%08lX VSYNC=%08lX\n",
-		i810_readl(par->mmio, I830_VTOTAL_B),
-		i810_readl(par->mmio, I830_VBLANK_B),
-		i810_readl(par->mmio, I830_VSYNC_B));
-	printf("    SOURCE=%08lX CONFIG=%08lX 71030=%08lX 71080=%08lX\n",
-		i810_readl(par->mmio, I830_PIPEBSRC),
-		i810_readl(par->mmio, I830_PIPEBCONF),
-		i810_readl(par->mmio, 0x71030),
-		i810_readl(par->mmio, 0x71080));
-	printf("  Display plane A\n");
-	printf("    CTRL=%08lX BASE=%08lX STRIDE=%08lX\n",
-		i810_readl(par->mmio, I830_DSPACTRL),
-		i810_readl(par->mmio, I830_DSPABASE),
-		i810_readl(par->mmio, I830_DSPASTRIDE));
-	printf("  Display plane B\n");
-	printf("    CTRL=%08lX BASE=%08lX STRIDE=%08lX\n",
-		i810_readl(par->mmio, I830_DSPBCTRL),
-		i810_readl(par->mmio, I830_DSPBBASE),
-		i810_readl(par->mmio, I830_DSPBSTRIDE));
-}
-
-char *i810_chip(char **buff_ptr, int *len_ptr, FILE *pci_f, int* chiptype)
-{
-	int i;
-	char *p;
-
-	while (getline(buff_ptr, len_ptr, pci_f) > 0) {
-		i = (p = strstr(*buff_ptr, I810STR)) != NULL ||
-			(p = strstr(*buff_ptr, I810ESTR)) != NULL ||
-			(p = strstr(*buff_ptr, I810_DC100STR_1)) != NULL ||
-			(p = strstr(*buff_ptr, I810_DC100STR_2)) != NULL ||
-			(p = strstr(*buff_ptr, I810_IGSTR)) != NULL ||
-			(p = strstr(*buff_ptr, I810_CFCSTR)) != NULL;
-		if (i)
-		{
-			*chiptype = I810;
-			return p;
-		}
-
-		i = (p = strstr(*buff_ptr, I830STR)) != NULL ||
-#if defined (I865STR)
-			(p = strstr(*buff_ptr, I865STR)) != NULL ||
-#endif /*defined (I865STR)*/
-			(p = strstr(*buff_ptr, I845STR)) != NULL;
-		if (i)
-		{
-			*chiptype = I830;
-			return p;
-		}
-
-		i = (p = strstr(*buff_ptr, I855STR)) != NULL;
-		if (i)
-		{
-			*chiptype = I855;
-			return p;
-		}
-
-		i = (p = strstr(*buff_ptr, I915STR)) != NULL;
-		if (i)
-		{
-			*chiptype = I915;
-			return p;
-		}
-	}
-	return NULL;
-}
-
-unsigned long i810_addr(char **buff_ptr, int *len_ptr, FILE *pci_f)
-{
-	char *p;
-
-	while (getline(buff_ptr, len_ptr, pci_f) > 0)
-		if (strstr(*buff_ptr, NONPRSTR) != NULL) {
-			p = strstr(*buff_ptr, MEMSTR);
-			if (p != NULL)
-				return strtoul(p+sizeof(MEMSTR), NULL, 16);
-		}
-	return 0;
-}
-
-int i810_usage ()
-{
-	fprintf(stderr, "usage: i810switch [crt on/off] [lcd on/off] [probe]\n");
-	fprintf(stderr, "  crt: enables/disables the output to the CRT display\n");
-	fprintf(stderr, "  lcd: enables/disables the output to the LCD\n");
-	fprintf(stderr, "  probe: dumps the video chipset registers\n");
-	fprintf(stderr, "  no options: displays the current output status\n");
-	return 1;
-}
-
-int main (int argc, char *argv[])
-{
-	struct i810_par par;
-	unsigned long addr;
-	int i, crt = -1, lcd = -1, probe = 0, err = 0, count = 0, chiptype, len = 0;
-	FILE *pci_f;
-	char *buff = NULL;
-	char lspcistr[] = CMD_LSPCI " -v -d xxxx:xxxx";
-	char *chip;
-
-	putenv("PATH=/sbin:/usr/sbin:/bin:/usr/bin");
-
-	while (--argc > 0) {
-		argv++;
-		if (!strcmp(argv[0], "crt")) {
-			if (--argc > 0) {
-				argv++;
-				if (!strcmp(argv[0], "on"))
-					crt = 1;
-				else if (!strcmp(argv[0], "off"))
-					crt = 0;
-				else
-					exit(i810_usage());
-			} else {
-				exit(i810_usage());
-			}
-		} else if (!strcmp(argv[0], "lcd")) {
-			argv++;
-			if (--argc > 0) {
-				if (!strcmp(argv[0], "on"))
-					lcd = 1;
-				else if (!strcmp(argv[0], "off"))
-					lcd = 0;
-				else
-					exit(i810_usage());
-			} else {
-				exit(i810_usage());
-			}
-		} else if (!strcmp(argv[0], "probe")) {
-			probe = 1;
-		} else {
-			exit(i810_usage());
-		}
-	}
-
-	pci_f = popen(CMD_LSPCI " -n", "r");
-	if (!pci_f) {
-		fprintf(stderr, "Something is wrong with lspci.\n");
-		exit(1);
-	}
-	chip = i810_chip(&buff, &len, pci_f, &chiptype);
-	if (chip == NULL) {
-		fprintf(stderr, "PCI id of i810 is not recognized.\n");
-		exit(1);
-	}
-	pclose(pci_f);
-
-	{
-		char *p = strstr(lspcistr, "xxxx:xxxx");
-		if (p == 0) {
-			fprintf(stderr, "CMD_LSPCI is wrong.\n");
-			exit(1);
-		}
-		memcpy(p, chip, 9);
-	}
-
-	pci_f = popen(lspcistr, "r");
-	if (!pci_f) {
-		fprintf(stderr, "Something is wrong with lspci.\n");
-		exit(1);
-	}
-	addr = i810_addr(&buff, &len, pci_f);
-	if (addr == 0) {
-		fprintf(stderr, "Something is wrong with lspci.\n");
-		exit(1);
-	}
-	pclose(pci_f);
-
-	memset(&par, 0, sizeof(struct i810_par));
-	par.mem = open("/dev/mem", (crt+lcd == -2) ? O_RDONLY : O_RDWR);
-	if (par.mem == -1) {
-    	  	i = errno;
-		perror("/dev/mem");
-		if (i == EACCES && geteuid() != 0)
-			fprintf(stderr, "Must have access to `/dev/mem'.\n");
-		release_resource(&par);
-		exit(1);
-	}
-	par.flag |= I810_MEMOPEN;
-
-	par.mmio = mmap(NULL, 512 * 1024, (crt+lcd == -2) ? PROT_READ : PROT_WRITE | PROT_READ,
-			MAP_SHARED, par.mem, addr);
-	if (!par.mmio) {
-		release_resource(&par);
-		exit(1);
-	}
-
-	par.flag |= I810_MMIO;
-
-	if (probe)
-	{
-		char *chipname = (chiptype == I810) ? "i810" : "i830";
-		printf("i810switch %s probe\n", VERSION);
-		printf("%s (%s) io=0x%8lX\n", chipname, lspcistr + 12, addr);
-		if (chiptype == I810)
-		{
-			probe_card_I810(&par);
-		} else {
-			probe_card_I830(&par);
-		}
-		release_resource(&par);
-		exit(0);
-	}
-
-	if (crt+lcd == -2) {
-		if (chiptype == I810) {
-			printf("CRT: ");
-			if (i810_readl(par.mmio, I810_PWR_CLKC) & 1)
-				printf("on\n");
-			else
-				printf("off\n");
-
-			printf("LCD: ");
-			if (i810_readl(par.mmio, I810_LCDTV_C) & 0xc00)
-				printf("off\n");
-			else
-				printf("on\n");
-		}
-		else if (chiptype == I830 || chiptype == I915) {
-			printf("CRT: ");
-			if (i810_readl(par.mmio, I830_ADPA) & 0x80000000)
-				printf("on\n");
-			else
-				printf("off\n");
-			printf("LCD: ");
-			if (i810_readl(par.mmio, I830_LCDTV_C) & 0x40000000)
-				printf("on\n");
-			else
-				printf("off\n");
-		}
-		else if (chiptype == I855) {
-			printf("CRT: ");
-			if (i810_readl(par.mmio, I830_ADPA) & 0x80000000)
-				printf("on\n");
-			else
-				printf("off\n");
-			printf("LCD: ");
-			if (i810_readl(par.mmio, I855_LCDTV_C) & 1)
-				printf("on\n");
-			else
-				printf("off\n");
-		}
-	}
-
-	if (crt != -1) {
-		if (chiptype == I810) {
-			int pwr_clkc = i810_readl(par.mmio, I810_PWR_CLKC);
-			int hvsync = i810_readl(par.mmio, I810_HVSYNC);
-
-			if (crt == 0) {
-				printf("Disabling CRT display...\n");
-				pwr_clkc &= ~1;
-				hvsync = 0xa0000;
-			} else {
-				printf("Enabling CRT display...\n");
-				pwr_clkc |= 1;
-				hvsync = 0;
-			}
-			i810_writel(par.mmio, I810_PWR_CLKC, pwr_clkc);
-			i810_writel(par.mmio, I810_HVSYNC, hvsync);
-		}
-		else if (chiptype == I830 || chiptype == I855 || chiptype == I915)
-		{
-			int i830_adpa = i810_readl(par.mmio, I830_ADPA);
-			int dspactrl = i810_readl(par.mmio, I830_DSPACTRL);
-			int dspbctrl = i810_readl(par.mmio, I830_DSPBCTRL);
-			int pipe = 0;
-
-			/* Find active display plane, and use the same pipe it's using */
-			if (dspactrl & (1<<31))
-				pipe = (dspactrl & (1<<24)) >> 24;
-			else if (dspbctrl & (1<<31))
-				pipe = (dspbctrl & (1<<24)) >> 24;
-			else
-				fprintf(stderr, "Warning: No active display plane detected.  Trying pipe A.\n");
-			if (crt == 0) {
-				printf("Disabling CRT display...\n");
-				i830_adpa = (i830_adpa & ~0x80000000 & ~(pipe<<30)) | 0xc00;
-			} else {
-				printf("Enabling CRT display...\n");
-				i830_adpa = (i830_adpa | 0x80000000 | (pipe<<30)) & ~0xc00;
-			}
-			i810_writel(par.mmio, I830_ADPA, i830_adpa);
-		}
-	}
-
-	if (lcd != -1) {
-		if (chiptype == I810) {
-			int lcdtv_c = i810_readl(par.mmio, I810_LCDTV_C);
-			if (lcd == 0) {
-				printf("Disabling LCD...\n");
-				lcdtv_c |= 0xc00;
-			} else {
-				printf("Enabling LCD...\n");
-				lcdtv_c &= ~(0xc00); 
-			}
-			i810_writel(par.mmio, I810_LCDTV_C, lcdtv_c);
-		}
-		else if (chiptype == I830 || chiptype == I915) {
-			int lcdtv_c;
-			if (lcd == 0) {
-				printf("Disabling LCD...\n");
-				lcdtv_c = i810_readl(par.mmio, I830_LCDTV_C);
-				lcdtv_c &= ~(0x40000000);
-				i810_writel(par.mmio, I830_LCDTV_C, lcdtv_c);
-			} else {
-				printf("Enabling LCD...\n");
-				lcdtv_c = i810_readl(par.mmio, I830_LCDTV_C);
-				lcdtv_c |= 0x40000000;
-				i810_writel(par.mmio, I830_LCDTV_C, lcdtv_c);
-			}
-		}
-		else if (chiptype == I855) {
-			int lcdtv_c;
-			if (lcd == 0) {
-				printf("Disabling LCD...\n");
-				lcdtv_c = i810_readl(par.mmio, I855_LCDTV_C);
-				lcdtv_c &= ~(1);
-				i810_writel(par.mmio, I855_LCDTV_C, lcdtv_c);
-			} else {
-				printf("Enabling LCD...\n");
-				lcdtv_c |= 1;
-				i810_writel(par.mmio, I855_LCDTV_C, lcdtv_c);
-			}
-		}
-		else fprintf(stderr, "No LCD support for this chipset.\n");
-	}
-
-	release_resource(&par);
-	exit(0);
-}
diff --git a/i810switch.o b/i810switch.o
deleted file mode 100644
index 0b0ef89e3e8f1b3b22b9717b6f7e1dbbbe6ea5fb..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 10376
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
QBCa2j9&!B>Nv!+-0{y;-ZU6uP

-- 
1.7.10

Reply via email to