summaryrefslogtreecommitdiff
path: root/sysutils/915resolution/files
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/915resolution/files')
-rw-r--r--sysutils/915resolution/files/915resolution.sh.in44
-rw-r--r--sysutils/915resolution/files/patch-915resolution.c118
2 files changed, 103 insertions, 59 deletions
diff --git a/sysutils/915resolution/files/915resolution.sh.in b/sysutils/915resolution/files/915resolution.sh.in
new file mode 100644
index 000000000000..ebb24c78596e
--- /dev/null
+++ b/sysutils/915resolution/files/915resolution.sh.in
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: i915resolution
+# REQUIRE: mountcritremote
+# BEFORE: SERVERS
+# KEYWORD: nojail
+
+# Define these i915resolution_* variables in one of these files:
+# /etc/rc.conf
+# /etc/rc.conf.local
+# /etc/rc.conf.d/i915resolution
+#
+# DO NOT CHANGE THESE DEFAULT VALUES HERE
+#
+i915resolution_enable=${i915resolution_enable:-"NO"} # Enable hacking VBIOS resolution (YES/NO)
+i915resolution_modes=${i915resolution_modes:-"3c 4d 5c"}# Space separated list of modes to set
+i915resolution_width=${i915resolution_width:-"1920"} # the horisontal resolution in pixels
+i915resolution_height=${i915resolution_height:-"1080"} # the vertical resolution in pixels
+
+. %%RC_SUBR%%
+
+name="i915resolution"
+rcvar=`set_rcvar`
+command="%%PREFIX%%/sbin/915resolution"
+start_cmd="${name}_start"
+stop_cmd=":"
+status_cmd="${command} -l"
+extra_commands="status"
+
+i915resolution_start()
+{
+ local mode
+
+ ${status_cmd} | grep '^Chipset:'
+ for mode in ${i915resolution_modes}; do
+ ${command} ${mode} ${i915resolution_width} ${i915resolution_height} | tail -n 1
+ done
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/sysutils/915resolution/files/patch-915resolution.c b/sysutils/915resolution/files/patch-915resolution.c
index 2ba27437d5c7..35adaa38ba01 100644
--- a/sysutils/915resolution/files/patch-915resolution.c
+++ b/sysutils/915resolution/files/patch-915resolution.c
@@ -1,5 +1,5 @@
---- 915resolution.c.orig Fri Feb 3 01:28:34 2006
-+++ 915resolution.c Sun Oct 15 20:39:56 2006
+--- 915resolution.c.orig Sun Apr 15 06:46:56 2007
++++ 915resolution.c Sun Apr 15 06:46:56 2007
@@ -21,8 +21,10 @@
#define __USE_GNU
#include <string.h>
@@ -12,7 +12,7 @@
#include <unistd.h>
#include <assert.h>
-@@ -161,7 +163,8 @@
+@@ -165,7 +167,8 @@
void initialize_system(char * filename) {
if (!filename) {
@@ -22,7 +22,7 @@
perror("Unable to obtain the proper IO permissions");
exit(2);
}
-@@ -169,7 +172,7 @@
+@@ -173,7 +176,7 @@
}
cardinal get_chipset_id(void) {
@@ -31,60 +31,60 @@
return inl(0xcfc);
}
-@@ -476,11 +479,11 @@
- case CT_UNKWN:
- break;
- case CT_855GM:
-- outl(0x8000005a, 0xcf8);
-+ OUTL(0x8000005a, 0xcf8);
- map->b1 = inb(0xcfe);
-
-- outl(0x8000005a, 0xcf8);
-- outb(0x33, 0xcfe);
-+ OUTL(0x8000005a, 0xcf8);
-+ OUTB(0x33, 0xcfe);
- break;
- case CT_845G:
- case CT_865G:
-@@ -488,13 +491,13 @@
- case CT_915GM:
- case CT_945G:
- case CT_945GM:
-- outl(0x80000090, 0xcf8);
-+ OUTL(0x80000090, 0xcf8);
- map->b1 = inb(0xcfd);
- map->b2 = inb(0xcfe);
-
-- outl(0x80000090, 0xcf8);
-- outb(0x33, 0xcfd);
-- outb(0x33, 0xcfe);
-+ OUTL(0x80000090, 0xcf8);
-+ OUTB(0x33, 0xcfd);
-+ OUTB(0x33, 0xcfe);
- break;
- }
+@@ -496,11 +499,11 @@
+ break;
+ case CT_830:
+ case CT_855GM:
+- outl(0x8000005a, 0xcf8);
++ OUTL(0x8000005a, 0xcf8);
+ map->b1 = inb(0xcfe);
+
+- outl(0x8000005a, 0xcf8);
+- outb(0x33, 0xcfe);
++ OUTL(0x8000005a, 0xcf8);
++ OUTB(0x33, 0xcfe);
+ break;
+ case CT_845G:
+ case CT_865G:
+@@ -511,13 +514,13 @@
+ case CT_946GZ:
+ case CT_G965:
+ case CT_Q965:
+- outl(0x80000090, 0xcf8);
++ OUTL(0x80000090, 0xcf8);
+ map->b1 = inb(0xcfd);
+ map->b2 = inb(0xcfe);
+
+- outl(0x80000090, 0xcf8);
+- outb(0x33, 0xcfd);
+- outb(0x33, 0xcfe);
++ OUTL(0x80000090, 0xcf8);
++ OUTB(0x33, 0xcfd);
++ OUTB(0x33, 0xcfe);
+ break;
}
-@@ -526,8 +529,8 @@
- case CT_UNKWN:
- break;
- case CT_855GM:
-- outl(0x8000005a, 0xcf8);
-- outb(map->b1, 0xcfe);
-+ OUTL(0x8000005a, 0xcf8);
-+ OUTB(map->b1, 0xcfe);
- break;
- case CT_845G:
- case CT_865G:
-@@ -535,9 +538,9 @@
- case CT_915GM:
- case CT_945G:
- case CT_945GM:
-- outl(0x80000090, 0xcf8);
-- outb(map->b1, 0xcfd);
-- outb(map->b2, 0xcfe);
-+ OUTL(0x80000090, 0xcf8);
-+ OUTB(map->b1, 0xcfd);
-+ OUTB(map->b2, 0xcfe);
- break;
- }
+
+@@ -539,8 +542,8 @@
+ break;
+ case CT_830:
+ case CT_855GM:
+- outl(0x8000005a, 0xcf8);
+- outb(map->b1, 0xcfe);
++ OUTL(0x8000005a, 0xcf8);
++ OUTB(map->b1, 0xcfe);
+ break;
+ case CT_845G:
+ case CT_865G:
+@@ -551,9 +554,9 @@
+ case CT_946GZ:
+ case CT_G965:
+ case CT_Q965:
+- outl(0x80000090, 0xcf8);
+- outb(map->b1, 0xcfd);
+- outb(map->b2, 0xcfe);
++ OUTL(0x80000090, 0xcf8);
++ OUTB(map->b1, 0xcfd);
++ OUTB(map->b2, 0xcfe);
+ break;
}
+