projects
/
linux-2.6-block.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
hwmon: (s3c) Use dev_get_drvdata()
[linux-2.6-block.git]
/
drivers
/
hwmon
/
smsc47b397.c
diff --git
a/drivers/hwmon/smsc47b397.c
b/drivers/hwmon/smsc47b397.c
index c0775084dde00d1555f98f7abb8f9356d9e09e09..60e193f2e970792ee07a021f54e923a744b7780e 100644
(file)
--- a/
drivers/hwmon/smsc47b397.c
+++ b/
drivers/hwmon/smsc47b397.c
@@
-72,14
+72,19
@@
static inline void superio_select(int ld)
superio_outb(0x07, ld);
}
superio_outb(0x07, ld);
}
-static inline
void
superio_enter(void)
+static inline
int
superio_enter(void)
{
{
+ if (!request_muxed_region(REG, 2, DRVNAME))
+ return -EBUSY;
+
outb(0x55, REG);
outb(0x55, REG);
+ return 0;
}
static inline void superio_exit(void)
{
outb(0xAA, REG);
}
static inline void superio_exit(void)
{
outb(0xAA, REG);
+ release_region(REG, 2);
}
#define SUPERIO_REG_DEVID 0x20
}
#define SUPERIO_REG_DEVID 0x20
@@
-300,8
+305,12
@@
static int __init smsc47b397_find(void)
u8 id, rev;
char *name;
unsigned short addr;
u8 id, rev;
char *name;
unsigned short addr;
+ int err;
+
+ err = superio_enter();
+ if (err)
+ return err;
- superio_enter();
id = force_id ? force_id : superio_inb(SUPERIO_REG_DEVID);
switch (id) {
id = force_id ? force_id : superio_inb(SUPERIO_REG_DEVID);
switch (id) {