summaryrefslogtreecommitdiff
path: root/sysutils/i810switch/patches
diff options
context:
space:
mode:
authorchristos <christos@pkgsrc.org>2006-12-04 04:42:03 +0000
committerchristos <christos@pkgsrc.org>2006-12-04 04:42:03 +0000
commitf009429503ec5714fe7d40f1eba504b980586ede (patch)
tree0f3f0ab406a096605e7a2709a3f3d2e135a20087 /sysutils/i810switch/patches
parente2fd7e31f86e6516a982147b20f17410878e99e3 (diff)
downloadpkgsrc-f009429503ec5714fe7d40f1eba504b980586ede.tar.gz
Utility to switch on and off the lcd and external crt for intel 8xx graphics
chips.
Diffstat (limited to 'sysutils/i810switch/patches')
-rw-r--r--sysutils/i810switch/patches/patch-aa40
-rw-r--r--sysutils/i810switch/patches/patch-ab24
-rw-r--r--sysutils/i810switch/patches/patch-ac207
3 files changed, 271 insertions, 0 deletions
diff --git a/sysutils/i810switch/patches/patch-aa b/sysutils/i810switch/patches/patch-aa
new file mode 100644
index 00000000000..6850b0c4eff
--- /dev/null
+++ b/sysutils/i810switch/patches/patch-aa
@@ -0,0 +1,40 @@
+$NetBSD: patch-aa,v 1.1 2006/12/04 04:42:03 christos Exp $
+--- Makefile.orig 2003-12-31 09:51:40.000000000 -0500
++++ Makefile 2006-12-03 23:40:16.000000000 -0500
+@@ -1,7 +1,4 @@
+-OBJECTS = i810switch.o
+-
+-%.o: %.c
+- $(CC) $(CFLAGS) -c -o $@ $<
++OBJECTS = i810switch.o getline.o
+
+ all: i810switch
+
+@@ -9,16 +6,19 @@
+ $(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 $(PREFIX)/bin
++ install -d $(PREFIX)/man/man1
++ install i810switch $(PREFIX)/sbin
++ ln $(PREFIX)/sbin/i810switch $(PREFIX)/sbin/i810rotate
++ install i810switch.1.gz i810rotate.1.gz $(PREFIX)/man/man1
++ gunzip $(PREFIX)/man/man1/i810switch.1.gz
++ gunzip $(PREFIX)/man/man1/i810rotate.1.gz
+
+ uninstall:
+- rm -f $(DESTDIR)/usr/bin/i810switch
+- rm -f $(DESTDIR)/usr/bin/i810rotate
+- rm -f $(DESTDIR)/usr/share/man/man1/i810switch.1.gz
+- rm -f $(DESTDIR)/usr/share/man/man1/i810rotate.1.gz
++ rm -f $(PREFIX)/usr/bin/i810switch
++ rm -f $(PREFIX)/usr/bin/i810rotate
++ rm -f $(PREFIX)/usr/share/man/man1/i810switch.1.gz
++ rm -f $(PREFIX)/usr/share/man/man1/i810rotate.1.gz
+
+ clean:
+ @rm -f $(OBJECTS) i810switch
diff --git a/sysutils/i810switch/patches/patch-ab b/sysutils/i810switch/patches/patch-ab
new file mode 100644
index 00000000000..83a5d07b634
--- /dev/null
+++ b/sysutils/i810switch/patches/patch-ab
@@ -0,0 +1,24 @@
+$NetBSD: patch-ab,v 1.1 2006/12/04 04:42:03 christos Exp $
+--- getline.c 1969-12-31 19:00:00.000000000 -0500
++++ getline.c 2006-12-03 23:16:23.000000000 -0500
+@@ -0,0 +1,20 @@
++#include <stdio.h>
++#ifdef __NetBSD__
++int
++getline(char **buf, size_t *len, FILE *fp)
++{
++ static char *b;
++ if (b)
++ free(b);
++ for (;;) {
++ if ((*buf = fparseln(fp, len, NULL, NULL, 0)) == NULL)
++ return 0;
++ if (*len == 0) {
++ free(*buf);
++ continue;
++ }
++ b = *buf;
++ return *len;
++ }
++}
++#endif
diff --git a/sysutils/i810switch/patches/patch-ac b/sysutils/i810switch/patches/patch-ac
new file mode 100644
index 00000000000..53937f5fed2
--- /dev/null
+++ b/sysutils/i810switch/patches/patch-ac
@@ -0,0 +1,207 @@
+$NetBSD: patch-ac,v 1.1 2006/12/04 04:42:03 christos Exp $
+--- i810switch.c 2005-06-12 00:36:36.000000000 -0400
++++ i810switch.c 2006-12-03 23:12:44.000000000 -0500
+@@ -1,3 +1,4 @@
++#include <assert.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
+ #include <fcntl.h>
+@@ -9,7 +10,11 @@
+ #include <errno.h>
+
+ #define VERSION "0.6.5beta"
++#ifdef __NetBSD__
++#define CMD_LSPCI "pcictl /dev/pci0"
++#else
+ #define CMD_LSPCI "lspci"
++#endif
+
+ static const char *Opt_lcd = NULL;
+ static const char *Opt_crt = NULL;
+@@ -49,19 +54,31 @@
+
+
+ /* 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"
++static const struct {
++ char *id;
++ int type;
++} i8xx[] = {
++/* I810STR */ { "7121", I810 },
++/* I810ESTR */ { "7123", I810 },
++/* I810_DC100STR_1 */ { "7125", I810 },
++/* I810_DC100STR_2 */ { "1102", I810 },
++/* I810_IGSTR */ { "1112", I810 },
++/* I810_CFCSTR */ { "1132", I810 },
++/* I830STR */ { "3577", I830 },
++/* I845STR */ { "2562", I855 },
++/* I855STR */ { "3582", I855 },
++/* I865STR { "2572", I865 }, */
++/* I915STR */ { "2592", I915 },
++ { NULL, 0 },
++};
++
++#ifdef __NetBSD__
++#define NONPRSTR "32-bit nonprefetchable memory"
++#define MEMSTR "base:"
++#else
+ #define NONPRSTR "32-bit, non-prefetchable"
++#define MEMSTR "Memory at"
++#endif
+
+ /* I810 registers */
+ #define I810_HVSYNC 0x05000
+@@ -247,43 +264,25 @@
+ {
+ int i;
+ char *p;
++ char buf[10];
+
+ 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;
++ for (i = 0; i8xx[i].id != NULL; i++) {
++#ifdef __NetBSD__
++ snprintf(buf, sizeof(buf), "%s8086", i8xx[i].id);
++#else
++ snprintf(buf, sizeof(buf), "8086:%s", i8xx[i].id);
++#endif
++ if ((p = strstr(*buff_ptr, buf)) != NULL)
++ break;
++ }
++ if (i8xx[i].id) {
++ *chiptype = i8xx[i].type;
++#ifdef __NetBSD__
++ return *buff_ptr;
++#else
+ return p;
++#endif
+ }
+ }
+ return NULL;
+@@ -293,12 +292,16 @@
+ {
+ char *p;
+
+- while (getline(buff_ptr, len_ptr, pci_f) > 0)
++ while (getline(buff_ptr, len_ptr, pci_f) > 0) {
+ if (strstr(*buff_ptr, NONPRSTR) != NULL) {
++#ifdef __NetBSD__
++ assert(getline(buff_ptr, len_ptr, pci_f) > 0);
++#endif
+ p = strstr(*buff_ptr, MEMSTR);
+ if (p != NULL)
+ return strtoul(p+sizeof(MEMSTR), NULL, 16);
+ }
++ }
+ return 0;
+ }
+
+@@ -319,7 +322,11 @@
+ int i, crt = -1, lcd = -1, probe = 0, err = 0, count = 0, chiptype, len = 0;
+ FILE *pci_f;
+ char *buff = NULL;
++#ifdef __NetBSD__
++ char lspcistr[] = CMD_LSPCI " dump -d %d -f %d";
++#else
+ char lspcistr[] = CMD_LSPCI " -v -d xxxx:xxxx";
++#endif
+ char *chip;
+
+ putenv("PATH=/sbin:/usr/sbin:/bin:/usr/bin");
+@@ -357,7 +364,11 @@
+ }
+ }
+
+- pci_f = popen(CMD_LSPCI " -n", "r");
++ pci_f = popen(CMD_LSPCI
++#ifdef __NetBSD__
++ " list"
++#endif
++ " -n", "r");
+ if (!pci_f) {
+ fprintf(stderr, "Something is wrong with lspci.\n");
+ exit(1);
+@@ -369,6 +380,19 @@
+ }
+ pclose(pci_f);
+
++#ifdef __NetBSD__
++ {
++ char cmd[100];
++ int dev = -1, fun = -1;
++ sscanf(chip, "000:%d:%d:", &dev, &fun);
++ if (dev == -1 || fun == -1) {
++ fprintf(stderr, "CMD_LSPCI is wrong.\n");
++ exit(1);
++ }
++ snprintf(cmd, sizeof(cmd), lspcistr, dev, fun);
++ pci_f = popen(cmd, "r");
++ }
++#else
+ {
+ char *p = strstr(lspcistr, "xxxx:xxxx");
+ if (p == 0) {
+@@ -376,16 +400,17 @@
+ exit(1);
+ }
+ memcpy(p, chip, 9);
++ pci_f = popen(lspcistr, "r");
+ }
++#endif
+
+- 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");
++ fprintf(stderr, "Something is wrong with lspci.\n");
+ exit(1);
+ }
+ pclose(pci_f);