diff options
| -rw-r--r-- | drivers/char/pc8736x_gpio.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/char/pc8736x_gpio.c b/drivers/char/pc8736x_gpio.c index b930de50407a..3f7da8cf3a80 100644 --- a/drivers/char/pc8736x_gpio.c +++ b/drivers/char/pc8736x_gpio.c | |||
| @@ -41,7 +41,8 @@ static u8 pc8736x_gpio_shadow[4]; | |||
| 41 | #define SIO_BASE2 0x4E /* alt command-reg to check */ | 41 | #define SIO_BASE2 0x4E /* alt command-reg to check */ |
| 42 | 42 | ||
| 43 | #define SIO_SID 0x20 /* SuperI/O ID Register */ | 43 | #define SIO_SID 0x20 /* SuperI/O ID Register */ |
| 44 | #define SIO_SID_VALUE 0xe9 /* Expected value in SuperI/O ID Register */ | 44 | #define SIO_SID_PC87365 0xe5 /* Expected value in ID Register for PC87365 */ |
| 45 | #define SIO_SID_PC87366 0xe9 /* Expected value in ID Register for PC87366 */ | ||
| 45 | 46 | ||
| 46 | #define SIO_CF1 0x21 /* chip config, bit0 is chip enable */ | 47 | #define SIO_CF1 0x21 /* chip config, bit0 is chip enable */ |
| 47 | 48 | ||
| @@ -91,13 +92,17 @@ static inline int superio_inb(int addr) | |||
| 91 | 92 | ||
| 92 | static int pc8736x_superio_present(void) | 93 | static int pc8736x_superio_present(void) |
| 93 | { | 94 | { |
| 95 | int id; | ||
| 96 | |||
| 94 | /* try the 2 possible values, read a hardware reg to verify */ | 97 | /* try the 2 possible values, read a hardware reg to verify */ |
| 95 | superio_cmd = SIO_BASE1; | 98 | superio_cmd = SIO_BASE1; |
| 96 | if (superio_inb(SIO_SID) == SIO_SID_VALUE) | 99 | id = superio_inb(SIO_SID); |
| 100 | if (id == SIO_SID_PC87365 || id == SIO_SID_PC87366) | ||
| 97 | return superio_cmd; | 101 | return superio_cmd; |
| 98 | 102 | ||
| 99 | superio_cmd = SIO_BASE2; | 103 | superio_cmd = SIO_BASE2; |
| 100 | if (superio_inb(SIO_SID) == SIO_SID_VALUE) | 104 | id = superio_inb(SIO_SID); |
| 105 | if (id == SIO_SID_PC87365 || id == SIO_SID_PC87366) | ||
| 101 | return superio_cmd; | 106 | return superio_cmd; |
| 102 | 107 | ||
| 103 | return 0; | 108 | return 0; |
