-/* $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
*
*
* $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
#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)
{
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)
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, "");