Loading drivers/hwmon/dme1737.c +73 −48 Original line number Diff line number Diff line Loading @@ -2031,37 +2031,45 @@ static int dme1737_create_files(struct device *dev) int err, ix; /* Create a name attribute for ISA devices */ if (!data->client && (err = sysfs_create_file(&dev->kobj, &dev_attr_name.attr))) { if (!data->client) { err = sysfs_create_file(&dev->kobj, &dev_attr_name.attr); if (err) { goto exit; } } /* Create standard sysfs attributes */ if ((err = sysfs_create_group(&dev->kobj, &dme1737_group))) { err = sysfs_create_group(&dev->kobj, &dme1737_group); if (err) { goto exit_remove; } /* Create chip-dependent sysfs attributes */ if ((data->has_features & HAS_TEMP_OFFSET) && (err = sysfs_create_group(&dev->kobj, &dme1737_temp_offset_group))) { if (data->has_features & HAS_TEMP_OFFSET) { err = sysfs_create_group(&dev->kobj, &dme1737_temp_offset_group); if (err) { goto exit_remove; } if ((data->has_features & HAS_VID) && (err = sysfs_create_group(&dev->kobj, &dme1737_vid_group))) { } if (data->has_features & HAS_VID) { err = sysfs_create_group(&dev->kobj, &dme1737_vid_group); if (err) { goto exit_remove; } if ((data->has_features & HAS_ZONE3) && (err = sysfs_create_group(&dev->kobj, &dme1737_zone3_group))) { } if (data->has_features & HAS_ZONE3) { err = sysfs_create_group(&dev->kobj, &dme1737_zone3_group); if (err) { goto exit_remove; } if ((data->has_features & HAS_ZONE_HYST) && (err = sysfs_create_group(&dev->kobj, &dme1737_zone_hyst_group))) { } if (data->has_features & HAS_ZONE_HYST) { err = sysfs_create_group(&dev->kobj, &dme1737_zone_hyst_group); if (err) { goto exit_remove; } } if (data->has_features & HAS_IN7) { err = sysfs_create_group(&dev->kobj, &dme1737_in7_group); if (err) { Loading @@ -2072,8 +2080,9 @@ static int dme1737_create_files(struct device *dev) /* Create fan sysfs attributes */ for (ix = 0; ix < ARRAY_SIZE(dme1737_fan_group); ix++) { if (data->has_features & HAS_FAN(ix)) { if ((err = sysfs_create_group(&dev->kobj, &dme1737_fan_group[ix]))) { err = sysfs_create_group(&dev->kobj, &dme1737_fan_group[ix]); if (err) { goto exit_remove; } } Loading @@ -2082,17 +2091,20 @@ static int dme1737_create_files(struct device *dev) /* Create PWM sysfs attributes */ for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_group); ix++) { if (data->has_features & HAS_PWM(ix)) { if ((err = sysfs_create_group(&dev->kobj, &dme1737_pwm_group[ix]))) { err = sysfs_create_group(&dev->kobj, &dme1737_pwm_group[ix]); if (err) { goto exit_remove; } if ((data->has_features & HAS_PWM_MIN) && ix < 3 && (err = sysfs_create_file(&dev->kobj, dme1737_auto_pwm_min_attr[ix]))) { if ((data->has_features & HAS_PWM_MIN) && (ix < 3)) { err = sysfs_create_file(&dev->kobj, dme1737_auto_pwm_min_attr[ix]); if (err) { goto exit_remove; } } } } /* Inform if the device is locked. Otherwise change the permissions of * selected attributes from read-only to read-writeable. */ Loading Loading @@ -2319,8 +2331,9 @@ static int dme1737_i2c_get_features(int sio_cip, struct dme1737_data *data) dme1737_sio_outb(sio_cip, 0x07, 0x0a); /* Get the base address of the runtime registers */ if (!(addr = (dme1737_sio_inb(sio_cip, 0x60) << 8) | dme1737_sio_inb(sio_cip, 0x61))) { addr = (dme1737_sio_inb(sio_cip, 0x60) << 8) | dme1737_sio_inb(sio_cip, 0x61); if (!addr) { err = -ENODEV; goto exit; } Loading Loading @@ -2401,13 +2414,15 @@ static int dme1737_i2c_probe(struct i2c_client *client, mutex_init(&data->update_lock); /* Initialize the DME1737 chip */ if ((err = dme1737_init_device(dev))) { err = dme1737_init_device(dev); if (err) { dev_err(dev, "Failed to initialize device.\n"); goto exit_kfree; } /* Create sysfs files */ if ((err = dme1737_create_files(dev))) { err = dme1737_create_files(dev); if (err) { dev_err(dev, "Failed to create sysfs files.\n"); goto exit_kfree; } Loading Loading @@ -2484,8 +2499,9 @@ static int __init dme1737_isa_detect(int sio_cip, unsigned short *addr) dme1737_sio_outb(sio_cip, 0x07, 0x0a); /* Get the base address of the runtime registers */ if (!(base_addr = (dme1737_sio_inb(sio_cip, 0x60) << 8) | dme1737_sio_inb(sio_cip, 0x61))) { base_addr = (dme1737_sio_inb(sio_cip, 0x60) << 8) | dme1737_sio_inb(sio_cip, 0x61); if (!base_addr) { pr_err("Base address not set\n"); err = -ENODEV; goto exit; Loading Loading @@ -2514,18 +2530,21 @@ static int __init dme1737_isa_device_add(unsigned short addr) if (err) goto exit; if (!(pdev = platform_device_alloc("dme1737", addr))) { pdev = platform_device_alloc("dme1737", addr); if (!pdev) { pr_err("Failed to allocate device\n"); err = -ENOMEM; goto exit; } if ((err = platform_device_add_resources(pdev, &res, 1))) { err = platform_device_add_resources(pdev, &res, 1); if (err) { pr_err("Failed to add device resource (err = %d)\n", err); goto exit_device_put; } if ((err = platform_device_add(pdev))) { err = platform_device_add(pdev); if (err) { pr_err("Failed to add device (err = %d)\n", err); goto exit_device_put; } Loading Loading @@ -2556,7 +2575,8 @@ static int __devinit dme1737_isa_probe(struct platform_device *pdev) goto exit; } if (!(data = kzalloc(sizeof(struct dme1737_data), GFP_KERNEL))) { data = kzalloc(sizeof(struct dme1737_data), GFP_KERNEL); if (!data) { err = -ENOMEM; goto exit_release_region; } Loading Loading @@ -2603,13 +2623,15 @@ static int __devinit dme1737_isa_probe(struct platform_device *pdev) data->type == sch5127 ? "SCH5127" : "SCH311x", data->addr); /* Initialize the chip */ if ((err = dme1737_init_device(dev))) { err = dme1737_init_device(dev); if (err) { dev_err(dev, "Failed to initialize device.\n"); goto exit_kfree; } /* Create sysfs files */ if ((err = dme1737_create_files(dev))) { err = dme1737_create_files(dev); if (err) { dev_err(dev, "Failed to create sysfs files.\n"); goto exit_kfree; } Loading Loading @@ -2666,7 +2688,8 @@ static int __init dme1737_init(void) int err; unsigned short addr; if ((err = i2c_add_driver(&dme1737_i2c_driver))) { err = i2c_add_driver(&dme1737_i2c_driver); if (err) { goto exit; } Loading @@ -2679,12 +2702,14 @@ static int __init dme1737_init(void) return 0; } if ((err = platform_driver_register(&dme1737_isa_driver))) { err = platform_driver_register(&dme1737_isa_driver); if (err) { goto exit_del_i2c_driver; } /* Sets global pdev as a side effect */ if ((err = dme1737_isa_device_add(addr))) { err = dme1737_isa_device_add(addr); if (err) { goto exit_del_isa_driver; } Loading Loading
drivers/hwmon/dme1737.c +73 −48 Original line number Diff line number Diff line Loading @@ -2031,37 +2031,45 @@ static int dme1737_create_files(struct device *dev) int err, ix; /* Create a name attribute for ISA devices */ if (!data->client && (err = sysfs_create_file(&dev->kobj, &dev_attr_name.attr))) { if (!data->client) { err = sysfs_create_file(&dev->kobj, &dev_attr_name.attr); if (err) { goto exit; } } /* Create standard sysfs attributes */ if ((err = sysfs_create_group(&dev->kobj, &dme1737_group))) { err = sysfs_create_group(&dev->kobj, &dme1737_group); if (err) { goto exit_remove; } /* Create chip-dependent sysfs attributes */ if ((data->has_features & HAS_TEMP_OFFSET) && (err = sysfs_create_group(&dev->kobj, &dme1737_temp_offset_group))) { if (data->has_features & HAS_TEMP_OFFSET) { err = sysfs_create_group(&dev->kobj, &dme1737_temp_offset_group); if (err) { goto exit_remove; } if ((data->has_features & HAS_VID) && (err = sysfs_create_group(&dev->kobj, &dme1737_vid_group))) { } if (data->has_features & HAS_VID) { err = sysfs_create_group(&dev->kobj, &dme1737_vid_group); if (err) { goto exit_remove; } if ((data->has_features & HAS_ZONE3) && (err = sysfs_create_group(&dev->kobj, &dme1737_zone3_group))) { } if (data->has_features & HAS_ZONE3) { err = sysfs_create_group(&dev->kobj, &dme1737_zone3_group); if (err) { goto exit_remove; } if ((data->has_features & HAS_ZONE_HYST) && (err = sysfs_create_group(&dev->kobj, &dme1737_zone_hyst_group))) { } if (data->has_features & HAS_ZONE_HYST) { err = sysfs_create_group(&dev->kobj, &dme1737_zone_hyst_group); if (err) { goto exit_remove; } } if (data->has_features & HAS_IN7) { err = sysfs_create_group(&dev->kobj, &dme1737_in7_group); if (err) { Loading @@ -2072,8 +2080,9 @@ static int dme1737_create_files(struct device *dev) /* Create fan sysfs attributes */ for (ix = 0; ix < ARRAY_SIZE(dme1737_fan_group); ix++) { if (data->has_features & HAS_FAN(ix)) { if ((err = sysfs_create_group(&dev->kobj, &dme1737_fan_group[ix]))) { err = sysfs_create_group(&dev->kobj, &dme1737_fan_group[ix]); if (err) { goto exit_remove; } } Loading @@ -2082,17 +2091,20 @@ static int dme1737_create_files(struct device *dev) /* Create PWM sysfs attributes */ for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_group); ix++) { if (data->has_features & HAS_PWM(ix)) { if ((err = sysfs_create_group(&dev->kobj, &dme1737_pwm_group[ix]))) { err = sysfs_create_group(&dev->kobj, &dme1737_pwm_group[ix]); if (err) { goto exit_remove; } if ((data->has_features & HAS_PWM_MIN) && ix < 3 && (err = sysfs_create_file(&dev->kobj, dme1737_auto_pwm_min_attr[ix]))) { if ((data->has_features & HAS_PWM_MIN) && (ix < 3)) { err = sysfs_create_file(&dev->kobj, dme1737_auto_pwm_min_attr[ix]); if (err) { goto exit_remove; } } } } /* Inform if the device is locked. Otherwise change the permissions of * selected attributes from read-only to read-writeable. */ Loading Loading @@ -2319,8 +2331,9 @@ static int dme1737_i2c_get_features(int sio_cip, struct dme1737_data *data) dme1737_sio_outb(sio_cip, 0x07, 0x0a); /* Get the base address of the runtime registers */ if (!(addr = (dme1737_sio_inb(sio_cip, 0x60) << 8) | dme1737_sio_inb(sio_cip, 0x61))) { addr = (dme1737_sio_inb(sio_cip, 0x60) << 8) | dme1737_sio_inb(sio_cip, 0x61); if (!addr) { err = -ENODEV; goto exit; } Loading Loading @@ -2401,13 +2414,15 @@ static int dme1737_i2c_probe(struct i2c_client *client, mutex_init(&data->update_lock); /* Initialize the DME1737 chip */ if ((err = dme1737_init_device(dev))) { err = dme1737_init_device(dev); if (err) { dev_err(dev, "Failed to initialize device.\n"); goto exit_kfree; } /* Create sysfs files */ if ((err = dme1737_create_files(dev))) { err = dme1737_create_files(dev); if (err) { dev_err(dev, "Failed to create sysfs files.\n"); goto exit_kfree; } Loading Loading @@ -2484,8 +2499,9 @@ static int __init dme1737_isa_detect(int sio_cip, unsigned short *addr) dme1737_sio_outb(sio_cip, 0x07, 0x0a); /* Get the base address of the runtime registers */ if (!(base_addr = (dme1737_sio_inb(sio_cip, 0x60) << 8) | dme1737_sio_inb(sio_cip, 0x61))) { base_addr = (dme1737_sio_inb(sio_cip, 0x60) << 8) | dme1737_sio_inb(sio_cip, 0x61); if (!base_addr) { pr_err("Base address not set\n"); err = -ENODEV; goto exit; Loading Loading @@ -2514,18 +2530,21 @@ static int __init dme1737_isa_device_add(unsigned short addr) if (err) goto exit; if (!(pdev = platform_device_alloc("dme1737", addr))) { pdev = platform_device_alloc("dme1737", addr); if (!pdev) { pr_err("Failed to allocate device\n"); err = -ENOMEM; goto exit; } if ((err = platform_device_add_resources(pdev, &res, 1))) { err = platform_device_add_resources(pdev, &res, 1); if (err) { pr_err("Failed to add device resource (err = %d)\n", err); goto exit_device_put; } if ((err = platform_device_add(pdev))) { err = platform_device_add(pdev); if (err) { pr_err("Failed to add device (err = %d)\n", err); goto exit_device_put; } Loading Loading @@ -2556,7 +2575,8 @@ static int __devinit dme1737_isa_probe(struct platform_device *pdev) goto exit; } if (!(data = kzalloc(sizeof(struct dme1737_data), GFP_KERNEL))) { data = kzalloc(sizeof(struct dme1737_data), GFP_KERNEL); if (!data) { err = -ENOMEM; goto exit_release_region; } Loading Loading @@ -2603,13 +2623,15 @@ static int __devinit dme1737_isa_probe(struct platform_device *pdev) data->type == sch5127 ? "SCH5127" : "SCH311x", data->addr); /* Initialize the chip */ if ((err = dme1737_init_device(dev))) { err = dme1737_init_device(dev); if (err) { dev_err(dev, "Failed to initialize device.\n"); goto exit_kfree; } /* Create sysfs files */ if ((err = dme1737_create_files(dev))) { err = dme1737_create_files(dev); if (err) { dev_err(dev, "Failed to create sysfs files.\n"); goto exit_kfree; } Loading Loading @@ -2666,7 +2688,8 @@ static int __init dme1737_init(void) int err; unsigned short addr; if ((err = i2c_add_driver(&dme1737_i2c_driver))) { err = i2c_add_driver(&dme1737_i2c_driver); if (err) { goto exit; } Loading @@ -2679,12 +2702,14 @@ static int __init dme1737_init(void) return 0; } if ((err = platform_driver_register(&dme1737_isa_driver))) { err = platform_driver_register(&dme1737_isa_driver); if (err) { goto exit_del_i2c_driver; } /* Sets global pdev as a side effect */ if ((err = dme1737_isa_device_add(addr))) { err = dme1737_isa_device_add(addr); if (err) { goto exit_del_isa_driver; } Loading