Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6
* 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6: hwmon: (it87) request only Environment Controller ports
This commit is contained in:
commit
4ad2b226e1
1 changed files with 23 additions and 9 deletions
|
@ -2,6 +2,14 @@
|
|||
it87.c - Part of lm_sensors, Linux kernel modules for hardware
|
||||
monitoring.
|
||||
|
||||
The IT8705F is an LPC-based Super I/O part that contains UARTs, a
|
||||
parallel port, an IR port, a MIDI port, a floppy controller, etc., in
|
||||
addition to an Environment Controller (Enhanced Hardware Monitor and
|
||||
Fan Controller)
|
||||
|
||||
This driver supports only the Environment Controller in the IT8705F and
|
||||
similar parts. The other devices are supported by different drivers.
|
||||
|
||||
Supports: IT8705F Super I/O chip w/LPC interface
|
||||
IT8712F Super I/O chip w/LPC interface
|
||||
IT8716F Super I/O chip w/LPC interface
|
||||
|
@ -118,9 +126,15 @@ static int fix_pwm_polarity;
|
|||
/* Length of ISA address segment */
|
||||
#define IT87_EXTENT 8
|
||||
|
||||
/* Where are the ISA address/data registers relative to the base address */
|
||||
#define IT87_ADDR_REG_OFFSET 5
|
||||
#define IT87_DATA_REG_OFFSET 6
|
||||
/* Length of ISA address segment for Environmental Controller */
|
||||
#define IT87_EC_EXTENT 2
|
||||
|
||||
/* Offset of EC registers from ISA base address */
|
||||
#define IT87_EC_OFFSET 5
|
||||
|
||||
/* Where are the ISA address/data registers relative to the EC base address */
|
||||
#define IT87_ADDR_REG_OFFSET 0
|
||||
#define IT87_DATA_REG_OFFSET 1
|
||||
|
||||
/*----- The IT87 registers -----*/
|
||||
|
||||
|
@ -968,10 +982,10 @@ static int __devinit it87_probe(struct platform_device *pdev)
|
|||
};
|
||||
|
||||
res = platform_get_resource(pdev, IORESOURCE_IO, 0);
|
||||
if (!request_region(res->start, IT87_EXTENT, DRVNAME)) {
|
||||
if (!request_region(res->start, IT87_EC_EXTENT, DRVNAME)) {
|
||||
dev_err(dev, "Failed to request region 0x%lx-0x%lx\n",
|
||||
(unsigned long)res->start,
|
||||
(unsigned long)(res->start + IT87_EXTENT - 1));
|
||||
(unsigned long)(res->start + IT87_EC_EXTENT - 1));
|
||||
err = -EBUSY;
|
||||
goto ERROR0;
|
||||
}
|
||||
|
@ -1124,7 +1138,7 @@ static int __devinit it87_probe(struct platform_device *pdev)
|
|||
platform_set_drvdata(pdev, NULL);
|
||||
kfree(data);
|
||||
ERROR1:
|
||||
release_region(res->start, IT87_EXTENT);
|
||||
release_region(res->start, IT87_EC_EXTENT);
|
||||
ERROR0:
|
||||
return err;
|
||||
}
|
||||
|
@ -1137,7 +1151,7 @@ static int __devexit it87_remove(struct platform_device *pdev)
|
|||
sysfs_remove_group(&pdev->dev.kobj, &it87_group);
|
||||
sysfs_remove_group(&pdev->dev.kobj, &it87_group_opt);
|
||||
|
||||
release_region(data->addr, IT87_EXTENT);
|
||||
release_region(data->addr, IT87_EC_EXTENT);
|
||||
platform_set_drvdata(pdev, NULL);
|
||||
kfree(data);
|
||||
|
||||
|
@ -1402,8 +1416,8 @@ static int __init it87_device_add(unsigned short address,
|
|||
const struct it87_sio_data *sio_data)
|
||||
{
|
||||
struct resource res = {
|
||||
.start = address ,
|
||||
.end = address + IT87_EXTENT - 1,
|
||||
.start = address + IT87_EC_OFFSET,
|
||||
.end = address + IT87_EC_OFFSET + IT87_EC_EXTENT - 1,
|
||||
.name = DRVNAME,
|
||||
.flags = IORESOURCE_IO,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue