diff options
| author | rjoco77 <> | 2004-08-30 12:48:52 +0000 | 
|---|---|---|
| committer | rjoco77 <> | 2004-08-30 12:48:52 +0000 | 
| commit | df482eaddc420b2b2254470866b38db18a8b54bd (patch) | |
| tree | 746275c6bc4c0c6f3ab54f9ddd757a46822303ab | |
| parent | b7c841bfc7ec071b0bcb696440b0ccf68f4a05c4 (diff) | |
| download | lcd4linux-df482eaddc420b2b2254470866b38db18a8b54bd.tar.gz | |
[lcd4linux @ 2004-08-30 12:48:52 by rjoco77]
* Added backlight update immediatelly
Diffstat (limited to '')
| -rw-r--r-- | drv_RouterBoard.c | 43 | 
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, ""); | 
