Message ID | 20230703185222.50554-7-andriy.shevchenko@linux.intel.com |
---|---|
State | Accepted |
Commit | ff3b9e4926b2e7eafbfdccf01e0f811898758b54 |
Headers | show |
Series | HID: cp2112: Cleanups and refactorings | expand |
Le 03/07/2023 à 20:52, Andy Shevchenko a écrit : > Remove cp2112_allocate_irq() and counterparts that seems to be > a dead code from day 1. In case somebody needs it, it can be > retrieved from Git index. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Hi, for the records, just in case it still makesense to keep this code: https://lore.kernel.org/all/CAO-hwJJfncQ3jgtS=HO0atbzrTNOT_rzU66oG2yRTWTSY-L8KA@mail.gmail.com/ CJ > --- > drivers/hid/hid-cp2112.c | 54 ---------------------------------------- > 1 file changed, 54 deletions(-) > > diff --git a/drivers/hid/hid-cp2112.c b/drivers/hid/hid-cp2112.c > index 15b626359281..45cd0d2fd3fd 100644 > --- a/drivers/hid/hid-cp2112.c > +++ b/drivers/hid/hid-cp2112.c > @@ -17,8 +17,6 @@ > */ > > #include <linux/bitops.h> > -#include <linux/gpio/consumer.h> > -#include <linux/gpio/machine.h> > #include <linux/gpio/driver.h> > #include <linux/hid.h> > #include <linux/hidraw.h> > @@ -168,7 +166,6 @@ struct cp2112_device { > u8 *in_out_buffer; > struct mutex lock; > > - struct gpio_desc *desc[8]; > bool gpio_poll; > struct delayed_work gpio_poll_worker; > unsigned long irq_mask; > @@ -1181,51 +1178,6 @@ static int cp2112_gpio_irq_type(struct irq_data *d, unsigned int type) > return 0; > } > > -static int __maybe_unused cp2112_allocate_irq(struct cp2112_device *dev, > - int pin) > -{ > - int ret; > - > - if (dev->desc[pin]) > - return -EINVAL; > - > - dev->desc[pin] = gpiochip_request_own_desc(&dev->gc, pin, > - "HID/I2C:Event", > - GPIO_ACTIVE_HIGH, > - GPIOD_IN); > - if (IS_ERR(dev->desc[pin])) { > - dev_err(dev->gc.parent, "Failed to request GPIO\n"); > - return PTR_ERR(dev->desc[pin]); > - } > - > - ret = cp2112_gpio_direction_input(&dev->gc, pin); > - if (ret < 0) { > - dev_err(dev->gc.parent, "Failed to set GPIO to input dir\n"); > - goto err_desc; > - } > - > - ret = gpiochip_lock_as_irq(&dev->gc, pin); > - if (ret) { > - dev_err(dev->gc.parent, "Failed to lock GPIO as interrupt\n"); > - goto err_desc; > - } > - > - ret = gpiod_to_irq(dev->desc[pin]); > - if (ret < 0) { > - dev_err(dev->gc.parent, "Failed to translate GPIO to IRQ\n"); > - goto err_lock; > - } > - > - return ret; > - > -err_lock: > - gpiochip_unlock_as_irq(&dev->gc, pin); > -err_desc: > - gpiochip_free_own_desc(dev->desc[pin]); > - dev->desc[pin] = NULL; > - return ret; > -} > - > static const struct irq_chip cp2112_gpio_irqchip = { > .name = "cp2112-gpio", > .irq_startup = cp2112_gpio_irq_startup, > @@ -1390,7 +1342,6 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id) > static void cp2112_remove(struct hid_device *hdev) > { > struct cp2112_device *dev = hid_get_drvdata(hdev); > - int i; > > sysfs_remove_group(&hdev->dev.kobj, &cp2112_attr_group); > i2c_del_adapter(&dev->adap); > @@ -1400,11 +1351,6 @@ static void cp2112_remove(struct hid_device *hdev) > cancel_delayed_work_sync(&dev->gpio_poll_worker); > } > > - for (i = 0; i < ARRAY_SIZE(dev->desc); i++) { > - gpiochip_unlock_as_irq(&dev->gc, i); > - gpiochip_free_own_desc(dev->desc[i]); > - } > - > gpiochip_remove(&dev->gc); > /* i2c_del_adapter has finished removing all i2c devices from our > * adapter. Well behaved devices should no longer call our cp2112_xfer
On Sat, Aug 26, 2023 at 9:30 PM Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote: > > Le 03/07/2023 à 20:52, Andy Shevchenko a écrit : > > Remove cp2112_allocate_irq() and counterparts that seems to be > > a dead code from day 1. In case somebody needs it, it can be > > retrieved from Git index. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > Hi, > > for the records, just in case it still makesense to keep this code: > > https://lore.kernel.org/all/CAO-hwJJfncQ3jgtS=HO0atbzrTNOT_rzU66oG2yRTWTSY-L8KA@mail.gmail.com/ It's in the Git index, so we can return it, but the rule of thumb is that we do not add dead code to the kernel.
diff --git a/drivers/hid/hid-cp2112.c b/drivers/hid/hid-cp2112.c index 15b626359281..45cd0d2fd3fd 100644 --- a/drivers/hid/hid-cp2112.c +++ b/drivers/hid/hid-cp2112.c @@ -17,8 +17,6 @@ */ #include <linux/bitops.h> -#include <linux/gpio/consumer.h> -#include <linux/gpio/machine.h> #include <linux/gpio/driver.h> #include <linux/hid.h> #include <linux/hidraw.h> @@ -168,7 +166,6 @@ struct cp2112_device { u8 *in_out_buffer; struct mutex lock; - struct gpio_desc *desc[8]; bool gpio_poll; struct delayed_work gpio_poll_worker; unsigned long irq_mask; @@ -1181,51 +1178,6 @@ static int cp2112_gpio_irq_type(struct irq_data *d, unsigned int type) return 0; } -static int __maybe_unused cp2112_allocate_irq(struct cp2112_device *dev, - int pin) -{ - int ret; - - if (dev->desc[pin]) - return -EINVAL; - - dev->desc[pin] = gpiochip_request_own_desc(&dev->gc, pin, - "HID/I2C:Event", - GPIO_ACTIVE_HIGH, - GPIOD_IN); - if (IS_ERR(dev->desc[pin])) { - dev_err(dev->gc.parent, "Failed to request GPIO\n"); - return PTR_ERR(dev->desc[pin]); - } - - ret = cp2112_gpio_direction_input(&dev->gc, pin); - if (ret < 0) { - dev_err(dev->gc.parent, "Failed to set GPIO to input dir\n"); - goto err_desc; - } - - ret = gpiochip_lock_as_irq(&dev->gc, pin); - if (ret) { - dev_err(dev->gc.parent, "Failed to lock GPIO as interrupt\n"); - goto err_desc; - } - - ret = gpiod_to_irq(dev->desc[pin]); - if (ret < 0) { - dev_err(dev->gc.parent, "Failed to translate GPIO to IRQ\n"); - goto err_lock; - } - - return ret; - -err_lock: - gpiochip_unlock_as_irq(&dev->gc, pin); -err_desc: - gpiochip_free_own_desc(dev->desc[pin]); - dev->desc[pin] = NULL; - return ret; -} - static const struct irq_chip cp2112_gpio_irqchip = { .name = "cp2112-gpio", .irq_startup = cp2112_gpio_irq_startup, @@ -1390,7 +1342,6 @@ static int cp2112_probe(struct hid_device *hdev, const struct hid_device_id *id) static void cp2112_remove(struct hid_device *hdev) { struct cp2112_device *dev = hid_get_drvdata(hdev); - int i; sysfs_remove_group(&hdev->dev.kobj, &cp2112_attr_group); i2c_del_adapter(&dev->adap); @@ -1400,11 +1351,6 @@ static void cp2112_remove(struct hid_device *hdev) cancel_delayed_work_sync(&dev->gpio_poll_worker); } - for (i = 0; i < ARRAY_SIZE(dev->desc); i++) { - gpiochip_unlock_as_irq(&dev->gc, i); - gpiochip_free_own_desc(dev->desc[i]); - } - gpiochip_remove(&dev->gc); /* i2c_del_adapter has finished removing all i2c devices from our * adapter. Well behaved devices should no longer call our cp2112_xfer
Remove cp2112_allocate_irq() and counterparts that seems to be a dead code from day 1. In case somebody needs it, it can be retrieved from Git index. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/hid/hid-cp2112.c | 54 ---------------------------------------- 1 file changed, 54 deletions(-)