diff options
Diffstat (limited to 'drivers/sbus/char/envctrl.c')
| -rw-r--r-- | drivers/sbus/char/envctrl.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/drivers/sbus/char/envctrl.c b/drivers/sbus/char/envctrl.c index 56e962a01493..81918aa67109 100644 --- a/drivers/sbus/char/envctrl.c +++ b/drivers/sbus/char/envctrl.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-only /* envctrl.c: Temperature and Fan monitoring on Machines providing it. * * Copyright (C) 1998 Eddie C. Dost (ecd@skynet.be) @@ -27,7 +28,7 @@ #include <linux/reboot.h> #include <linux/slab.h> #include <linux/of.h> -#include <linux/of_device.h> +#include <linux/platform_device.h> #include <linux/uaccess.h> #include <asm/envctrl.h> @@ -36,8 +37,6 @@ #define DRIVER_NAME "envctrl" #define PFX DRIVER_NAME ": " -#define ENVCTRL_MINOR 162 - #define PCF8584_ADDRESS 0x55 #define CONTROL_PIN 0x80 @@ -364,8 +363,8 @@ static int envctrl_read_cpu_info(int cpu, struct i2c_child_t *pchild, char mon_type, unsigned char *bufdata) { unsigned char data; - int i; - char *tbl, j = -1; + int i, j = -1; + char *tbl; /* Find the right monitor type and channel. */ for (i = 0; i < PCF8584_MAX_CHANNELS; i++) { @@ -714,9 +713,7 @@ static const struct file_operations envctrl_fops = { .owner = THIS_MODULE, .read = envctrl_read, .unlocked_ioctl = envctrl_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = envctrl_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = envctrl_open, .release = envctrl_release, .llseek = noop_llseek, @@ -906,12 +903,14 @@ static void envctrl_init_i2c_child(struct device_node *dp, int len; root_node = of_find_node_by_path("/"); - if (!strcmp(root_node->name, "SUNW,UltraSPARC-IIi-cEngine")) { + if (of_node_name_eq(root_node, "SUNW,UltraSPARC-IIi-cEngine")) { for (len = 0; len < PCF8584_MAX_CHANNELS; ++len) { pchild->mon_type[len] = ENVCTRL_NOMON; } + of_node_put(root_node); return; } + of_node_put(root_node); } /* Get the monitor channels. */ @@ -1037,10 +1036,10 @@ static int envctrl_probe(struct platform_device *op) index = 0; dp = op->dev.of_node->child; while (dp) { - if (!strcmp(dp->name, "gpio")) { + if (of_node_name_eq(dp, "gpio")) { i2c_childlist[index].i2ctype = I2C_GPIO; envctrl_init_i2c_child(dp, &(i2c_childlist[index++])); - } else if (!strcmp(dp->name, "adc")) { + } else if (of_node_name_eq(dp, "adc")) { i2c_childlist[index].i2ctype = I2C_ADC; envctrl_init_i2c_child(dp, &(i2c_childlist[index++])); } @@ -1098,7 +1097,7 @@ out_iounmap: return err; } -static int envctrl_remove(struct platform_device *op) +static void envctrl_remove(struct platform_device *op) { int index; @@ -1109,8 +1108,6 @@ static int envctrl_remove(struct platform_device *op) for (index = 0; index < ENVCTRL_MAX_CPU * 2; index++) kfree(i2c_childlist[index].tables); - - return 0; } static const struct of_device_id envctrl_match[] = { @@ -1133,4 +1130,5 @@ static struct platform_driver envctrl_driver = { module_platform_driver(envctrl_driver); +MODULE_DESCRIPTION("SUN environment monitoring device driver"); MODULE_LICENSE("GPL"); |
