aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drv_RouterBoard.c43
1 files changed, 24 insertions, 19 deletions
diff --git a/drv_RouterBoard.c b/drv_RouterBoard.c
index 49af2a3..a543a76 100644
--- a/drv_RouterBoard.c
+++ b/drv_RouterBoard.c
@@ -1,4 +1,4 @@
-/* $Id: drv_RouterBoard.c,v 1.2 2004/08/29 20:07:55 reinelt Exp $
+/* $Id: drv_RouterBoard.c,v 1.3 2004/08/30 12:48:52 rjoco77 Exp $
*
* driver for the "Router Board LCD port"
* see port details at http://www.routerboard.com
@@ -25,6 +25,9 @@
*
*
* $Log: drv_RouterBoard.c,v $
+ * Revision 1.3 2004/08/30 12:48:52 rjoco77
+ * * Added backlight update immediatelly
+ *
* Revision 1.2 2004/08/29 20:07:55 reinelt
*
* Patch from Joco: Make RouterBoard Backlight configurable
@@ -248,6 +251,23 @@ static void drv_RB_poll_data ( void __attribute__((unused)) *notused)
#endif
+/* IOCS0 port number can read from PCI Configuration Space Function 0 (F0) */
+/* at index 74h as 16 bit value (see [GEODE] 5.3.1 pg.151 and pg.176 Table 5-29 */
+
+static unsigned getIocs0Port (void)
+{
+ static unsigned ret = 0;
+
+ /*get IO permission, here you can't use ioperm command */
+ iopl(3);
+
+ if (!ret) {
+ outl(0x80009074, CAR);
+ ret = inw(CDR);
+ }
+ return ret;
+}
+
static int drv_RB_backlight ( int backlight)
{
@@ -262,29 +282,13 @@ static int drv_RB_backlight ( int backlight)
RB_BackLight = backlight ? LCD_BACKLIGHT : 0;
- /* The status will be updated on next lcd operation! */
- /* Fixme: should be updated immediately! */
+ /* Set backlight output */
+ outw( RB_Leds | RB_BackLight , getIocs0Port());
return backlight;
}
-/* IOCS0 port number can read from PCI Configuration Space Function 0 (F0) */
-/* at index 74h as 16 bit value (see [GEODE] 5.3.1 pg.151 and pg.176 Table 5-29 */
-
-static unsigned getIocs0Port (void)
-{
- static unsigned ret = 0;
-
- /*get IO permission, here you can't use ioperm command */
- iopl(3);
-
- if (!ret) {
- outl(0x80009074, CAR);
- ret = inw(CDR);
- }
- return ret;
-}
static void drv_RB_command ( const unsigned char cmd, const int delay)
@@ -490,6 +494,7 @@ static void plugin_backlight (RESULT *result , const int argc, RESULT *argv[])
case 1:
backlight = drv_RB_backlight(R2N(argv[0]));
SetResult(&result, R_NUMBER, &backlight);
+ break;
default:
error ("%s::backlight(): wrong number of parameters", Name);
SetResult(&result, R_STRING, "");