Message ID | 20230112133942.58471-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v1,1/1] gpio: Remove unused and obsoleted irq_to_gpio() | expand |
CC greg On Thu, Jan 12, 2023 at 2:39 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > irq_to_gpio() is legacy and unused API, remove it for good. > > This leaves gpio_to_irq() as it's used yet in many places. > Nevertheless, removal of its counterpart is a good signal > to whoever even trying to consider using them that do not. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > Documentation/driver-api/gpio/legacy.rst | 8 -------- > .../translations/zh_CN/driver-api/gpio/legacy.rst | 7 ------- > Documentation/translations/zh_TW/gpio.txt | 7 ------- > arch/m68k/include/asm/gpio.h | 7 ------- > arch/sh/include/asm/gpio.h | 5 ----- > include/linux/gpio.h | 12 ------------ > 6 files changed, 46 deletions(-) [...] > --- a/arch/m68k/include/asm/gpio.h > +++ b/arch/m68k/include/asm/gpio.h > @@ -66,13 +66,6 @@ static inline int gpio_to_irq(unsigned gpio) > return __gpio_to_irq(gpio); > } > > -static inline int irq_to_gpio(unsigned irq) > -{ > - return (irq >= MCFGPIO_IRQ_VECBASE && > - irq < (MCFGPIO_IRQ_VECBASE + MCFGPIO_IRQ_MAX)) ? > - irq - MCFGPIO_IRQ_VECBASE : -ENXIO; > -} > - > static inline int gpio_cansleep(unsigned gpio) > { > return gpio < MCFGPIO_PIN_MAX ? 0 : __gpio_cansleep(gpio); Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On Thu, Jan 12, 2023 at 2:39 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > irq_to_gpio() is legacy and unused API, remove it for good. > > This leaves gpio_to_irq() as it's used yet in many places. > Nevertheless, removal of its counterpart is a good signal > to whoever even trying to consider using them that do not. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- Applied, thanks! Bart
On 13/1/23 01:14, Geert Uytterhoeven wrote: > CC greg > > On Thu, Jan 12, 2023 at 2:39 PM Andy Shevchenko > <andriy.shevchenko@linux.intel.com> wrote: >> irq_to_gpio() is legacy and unused API, remove it for good. >> >> This leaves gpio_to_irq() as it's used yet in many places. >> Nevertheless, removal of its counterpart is a good signal >> to whoever even trying to consider using them that do not. >> >> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> >> --- >> Documentation/driver-api/gpio/legacy.rst | 8 -------- >> .../translations/zh_CN/driver-api/gpio/legacy.rst | 7 ------- >> Documentation/translations/zh_TW/gpio.txt | 7 ------- >> arch/m68k/include/asm/gpio.h | 7 ------- >> arch/sh/include/asm/gpio.h | 5 ----- >> include/linux/gpio.h | 12 ------------ >> 6 files changed, 46 deletions(-) > > [...] > >> --- a/arch/m68k/include/asm/gpio.h >> +++ b/arch/m68k/include/asm/gpio.h >> @@ -66,13 +66,6 @@ static inline int gpio_to_irq(unsigned gpio) >> return __gpio_to_irq(gpio); >> } >> >> -static inline int irq_to_gpio(unsigned irq) >> -{ >> - return (irq >= MCFGPIO_IRQ_VECBASE && >> - irq < (MCFGPIO_IRQ_VECBASE + MCFGPIO_IRQ_MAX)) ? >> - irq - MCFGPIO_IRQ_VECBASE : -ENXIO; >> -} >> - >> static inline int gpio_cansleep(unsigned gpio) >> { >> return gpio < MCFGPIO_PIN_MAX ? 0 : __gpio_cansleep(gpio); > > Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Greg Ungerer <gerg@linux-m68k.org> > Gr{oetje,eeting}s, > > Geert > > -- > Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org > > In personal conversations with technical people, I call myself a hacker. But > when I'm talking to journalists I just say "programmer" or something like that. > -- Linus Torvalds
On Thu, Jan 12, 2023 at 2:39 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > irq_to_gpio() is legacy and unused API, remove it for good. > > This leaves gpio_to_irq() as it's used yet in many places. > Nevertheless, removal of its counterpart is a good signal > to whoever even trying to consider using them that do not. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Thanks for killing off this API. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
diff --git a/Documentation/driver-api/gpio/legacy.rst b/Documentation/driver-api/gpio/legacy.rst index e3e9d26a60ce..a0559d93efd1 100644 --- a/Documentation/driver-api/gpio/legacy.rst +++ b/Documentation/driver-api/gpio/legacy.rst @@ -387,9 +387,6 @@ map between them using calls like:: /* map GPIO numbers to IRQ numbers */ int gpio_to_irq(unsigned gpio); - /* map IRQ numbers to GPIO numbers (avoid using this) */ - int irq_to_gpio(unsigned irq); - Those return either the corresponding number in the other namespace, or else a negative errno code if the mapping can't be done. (For example, some GPIOs can't be used as IRQs.) It is an unchecked error to use a GPIO @@ -405,11 +402,6 @@ devices, by the board-specific initialization code. Note that IRQ trigger options are part of the IRQ interface, e.g. IRQF_TRIGGER_FALLING, as are system wakeup capabilities. -Non-error values returned from irq_to_gpio() would most commonly be used -with gpio_get_value(), for example to initialize or update driver state -when the IRQ is edge-triggered. Note that some platforms don't support -this reverse mapping, so you should avoid using it. - Emulating Open Drain Signals ---------------------------- diff --git a/Documentation/translations/zh_CN/driver-api/gpio/legacy.rst b/Documentation/translations/zh_CN/driver-api/gpio/legacy.rst index 8599e253fcc5..74fa473bb504 100644 --- a/Documentation/translations/zh_CN/driver-api/gpio/legacy.rst +++ b/Documentation/translations/zh_CN/driver-api/gpio/legacy.rst @@ -358,9 +358,6 @@ GPIO 编号是无符号整数;IRQ 编号也是。这些构成了两个逻辑上 /* 映射 GPIO 编号到 IRQ 编号 */ int gpio_to_irq(unsigned gpio); - /* 映射 IRQ 编号到 GPIO 编号 (尽量避免使用) */ - int irq_to_gpio(unsigned irq); - 它们的返回值为对应命名空间的相关编号,或是负的错误代码(如果无法映射)。 (例如,某些 GPIO 无法做为 IRQ 使用。)以下的编号错误是未经检测的:使用一个 未通过 gpio_direction_input()配置为输入的 GPIO 编号,或者使用一个 @@ -373,10 +370,6 @@ gpio_to_irq()返回的非错误值可以传递给 request_irq()或者 free_irq() 触发选项是 IRQ 接口的一部分,如 IRQF_TRIGGER_FALLING,系统唤醒能力 也是如此。 -irq_to_gpio()返回的非错误值大多数通常可以被 gpio_get_value()所使用, -比如在 IRQ 是沿触发时初始化或更新驱动状态。注意某些平台不支持反映射,所以 -你应该尽量避免使用它。 - 模拟开漏信号 ------------ diff --git a/Documentation/translations/zh_TW/gpio.txt b/Documentation/translations/zh_TW/gpio.txt index abd8e4c0973e..1b986bbb0909 100644 --- a/Documentation/translations/zh_TW/gpio.txt +++ b/Documentation/translations/zh_TW/gpio.txt @@ -363,9 +363,6 @@ GPIO 編號是無符號整數;IRQ 編號也是。這些構成了兩個邏輯上 /* 映射 GPIO 編號到 IRQ 編號 */ int gpio_to_irq(unsigned gpio); - /* 映射 IRQ 編號到 GPIO 編號 (儘量避免使用) */ - int irq_to_gpio(unsigned irq); - 它們的返回值爲對應命名空間的相關編號,或是負的錯誤代碼(如果無法映射)。 (例如,某些 GPIO 無法做爲 IRQ 使用。)以下的編號錯誤是未經檢測的:使用一個 未通過 gpio_direction_input()配置爲輸入的 GPIO 編號,或者使用一個 @@ -378,10 +375,6 @@ gpio_to_irq()返回的非錯誤值可以傳遞給 request_irq()或者 free_irq() 觸發選項是 IRQ 接口的一部分,如 IRQF_TRIGGER_FALLING,系統喚醒能力 也是如此。 -irq_to_gpio()返回的非錯誤值大多數通常可以被 gpio_get_value()所使用, -比如在 IRQ 是沿觸發時初始化或更新驅動狀態。注意某些平台不支持反映射,所以 -你應該儘量避免使用它。 - 模擬開漏信號 ---------------------------- diff --git a/arch/m68k/include/asm/gpio.h b/arch/m68k/include/asm/gpio.h index a50b27719a58..5cfc0996ba94 100644 --- a/arch/m68k/include/asm/gpio.h +++ b/arch/m68k/include/asm/gpio.h @@ -66,13 +66,6 @@ static inline int gpio_to_irq(unsigned gpio) return __gpio_to_irq(gpio); } -static inline int irq_to_gpio(unsigned irq) -{ - return (irq >= MCFGPIO_IRQ_VECBASE && - irq < (MCFGPIO_IRQ_VECBASE + MCFGPIO_IRQ_MAX)) ? - irq - MCFGPIO_IRQ_VECBASE : -ENXIO; -} - static inline int gpio_cansleep(unsigned gpio) { return gpio < MCFGPIO_PIN_MAX ? 0 : __gpio_cansleep(gpio); diff --git a/arch/sh/include/asm/gpio.h b/arch/sh/include/asm/gpio.h index d643250f0a0f..588c1380e4cb 100644 --- a/arch/sh/include/asm/gpio.h +++ b/arch/sh/include/asm/gpio.h @@ -40,11 +40,6 @@ static inline int gpio_to_irq(unsigned gpio) return __gpio_to_irq(gpio); } -static inline int irq_to_gpio(unsigned int irq) -{ - return -ENOSYS; -} - #endif /* CONFIG_GPIOLIB */ #endif /* __ASM_SH_GPIO_H */ diff --git a/include/linux/gpio.h b/include/linux/gpio.h index e94815b3ce1d..85beb236c925 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h @@ -81,11 +81,6 @@ static inline int gpio_to_irq(unsigned int gpio) return __gpio_to_irq(gpio); } -static inline int irq_to_gpio(unsigned int irq) -{ - return -EINVAL; -} - #endif /* ! CONFIG_ARCH_HAVE_CUSTOM_GPIO_H */ /* CONFIG_GPIOLIB: bindings for managed devices that want to request gpios */ @@ -210,13 +205,6 @@ static inline int gpio_to_irq(unsigned gpio) return -EINVAL; } -static inline int irq_to_gpio(unsigned irq) -{ - /* irq can never have been returned from gpio_to_irq() */ - WARN_ON(1); - return -EINVAL; -} - static inline int devm_gpio_request(struct device *dev, unsigned gpio, const char *label) {
irq_to_gpio() is legacy and unused API, remove it for good. This leaves gpio_to_irq() as it's used yet in many places. Nevertheless, removal of its counterpart is a good signal to whoever even trying to consider using them that do not. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- Documentation/driver-api/gpio/legacy.rst | 8 -------- .../translations/zh_CN/driver-api/gpio/legacy.rst | 7 ------- Documentation/translations/zh_TW/gpio.txt | 7 ------- arch/m68k/include/asm/gpio.h | 7 ------- arch/sh/include/asm/gpio.h | 5 ----- include/linux/gpio.h | 12 ------------ 6 files changed, 46 deletions(-)