]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/hwmon/smsc47b397.c
PCI: always export pci_scan_single_device
[linux-2.6-omap-h63xx.git] / drivers / hwmon / smsc47b397.c
index 3b65b0e61c49f51ed3709a5e67f5474a391065fb..0b57d2ea2cf714493dc9174e614190036b04ca09 100644 (file)
@@ -94,7 +94,7 @@ static u8 smsc47b397_reg_temp[] = {0x25, 0x26, 0x27, 0x80};
 struct smsc47b397_data {
        unsigned short addr;
        const char *name;
-       struct class_device *class_dev;
+       struct device *hwmon_dev;
        struct mutex lock;
 
        struct mutex update_lock;
@@ -174,6 +174,8 @@ static SENSOR_DEVICE_ATTR(temp4_input, S_IRUGO, show_temp, NULL, 3);
    REG: count of 90kHz pulses / revolution */
 static int fan_from_reg(u16 reg)
 {
+       if (reg == 0 || reg == 0xffff)
+               return 0;
        return 90000 * 60 / reg;
 }
 
@@ -220,7 +222,7 @@ static int __devexit smsc47b397_remove(struct platform_device *pdev)
        struct smsc47b397_data *data = platform_get_drvdata(pdev);
        struct resource *res;
 
-       hwmon_device_unregister(data->class_dev);
+       hwmon_device_unregister(data->hwmon_dev);
        sysfs_remove_group(&pdev->dev.kobj, &smsc47b397_group);
        res = platform_get_resource(pdev, IORESOURCE_IO, 0);
        release_region(res->start, SMSC_EXTENT);
@@ -270,9 +272,9 @@ static int __devinit smsc47b397_probe(struct platform_device *pdev)
        if ((err = sysfs_create_group(&dev->kobj, &smsc47b397_group)))
                goto error_free;
 
-       data->class_dev = hwmon_device_register(dev);
-       if (IS_ERR(data->class_dev)) {
-               err = PTR_ERR(data->class_dev);
+       data->hwmon_dev = hwmon_device_register(dev);
+       if (IS_ERR(data->hwmon_dev)) {
+               err = PTR_ERR(data->hwmon_dev);
                goto error_remove;
        }