* gpio-keys-polled improvements @ 2019-04-16 19:57 Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table Enrico Weigelt, metux IT consult ` (3 more replies) 0 siblings, 4 replies; 12+ messages in thread From: Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 UTC (permalink / raw) To: linux-kernel; +Cc: dmitry.torokhov, linux-input Hello folks, here're some improvements for the gpio-keys-polled driver. The first patch isn't in the driver itself, but adds a little module helper for conditionally declaring oftree module table if oftree is enabled (only needed for the last patch) have fun. --mtx ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table 2019-04-16 19:57 gpio-keys-polled improvements Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 ` Enrico Weigelt, metux IT consult 2019-04-19 7:40 ` Dmitry Torokhov 2019-04-16 19:57 ` [PATCH 2/4] input: keyboard: gpio-keys-polled: use input name from pdata if available Enrico Weigelt, metux IT consult ` (2 subsequent siblings) 3 siblings, 1 reply; 12+ messages in thread From: Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 UTC (permalink / raw) To: linux-kernel; +Cc: dmitry.torokhov, linux-input Little helper macro that declares an oftree module device table, if CONFIG_OF is enabled. Otherwise it's just noop. This is also helpful if some drivers can be built w/ or w/o oftree support. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> --- include/linux/mod_devicetable.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 448621c..853e301 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h @@ -245,6 +245,15 @@ struct of_device_id { const void *data; }; +/* + * macro for adding the of module device table only if CONFIG_OF enabled + */ +#ifdef CONFIG_OF +#define MODULE_DEVICE_TABLE_OF(name) MODULE_DEVICE_TABLE(of,name) +#else +#define MODULE_DEVICE_TABLE_OF(name) +#endif /* CONFIG_OF */ + /* VIO */ struct vio_device_id { char type[32]; -- 1.9.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table 2019-04-16 19:57 ` [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table Enrico Weigelt, metux IT consult @ 2019-04-19 7:40 ` Dmitry Torokhov 2019-04-24 10:48 ` Enrico Weigelt, metux IT consult 0 siblings, 1 reply; 12+ messages in thread From: Dmitry Torokhov @ 2019-04-19 7:40 UTC (permalink / raw) To: Enrico Weigelt, metux IT consult; +Cc: linux-kernel, linux-input Hi Enrico, On Tue, Apr 16, 2019 at 09:57:22PM +0200, Enrico Weigelt, metux IT consult wrote: > Little helper macro that declares an oftree module device table, > if CONFIG_OF is enabled. Otherwise it's just noop. > > This is also helpful if some drivers can be built w/ or w/o > oftree support. This should go to OF folks, please. > > Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> > --- > include/linux/mod_devicetable.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h > index 448621c..853e301 100644 > --- a/include/linux/mod_devicetable.h > +++ b/include/linux/mod_devicetable.h > @@ -245,6 +245,15 @@ struct of_device_id { > const void *data; > }; > > +/* > + * macro for adding the of module device table only if CONFIG_OF enabled > + */ > +#ifdef CONFIG_OF > +#define MODULE_DEVICE_TABLE_OF(name) MODULE_DEVICE_TABLE(of,name) > +#else > +#define MODULE_DEVICE_TABLE_OF(name) > +#endif /* CONFIG_OF */ > + > /* VIO */ > struct vio_device_id { > char type[32]; > -- > 1.9.1 > -- Dmitry ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table 2019-04-19 7:40 ` Dmitry Torokhov @ 2019-04-24 10:48 ` Enrico Weigelt, metux IT consult 2019-04-29 19:48 ` Frank Rowand 0 siblings, 1 reply; 12+ messages in thread From: Enrico Weigelt, metux IT consult @ 2019-04-24 10:48 UTC (permalink / raw) To: Dmitry Torokhov, Enrico Weigelt, metux IT consult Cc: linux-kernel, linux-input On 19.04.19 09:40, Dmitry Torokhov wrote: > Hi Enrico, > > On Tue, Apr 16, 2019 at 09:57:22PM +0200, Enrico Weigelt, metux IT consult wrote: >> Little helper macro that declares an oftree module device table, >> if CONFIG_OF is enabled. Otherwise it's just noop. >> >> This is also helpful if some drivers can be built w/ or w/o >> oftree support. > > This should go to OF folks, please. hmm, they should be CCed, if my script works right. This one is only needed for the 4th patch (skip oftree...). --mtx -- Enrico Weigelt, metux IT consult Free software and Linux embedded engineering info@metux.net -- +49-151-27565287 ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table 2019-04-24 10:48 ` Enrico Weigelt, metux IT consult @ 2019-04-29 19:48 ` Frank Rowand 0 siblings, 0 replies; 12+ messages in thread From: Frank Rowand @ 2019-04-29 19:48 UTC (permalink / raw) To: Enrico Weigelt, metux IT consult, Dmitry Torokhov, Enrico Weigelt, metux IT consult Cc: linux-kernel, linux-input On 4/24/19 3:48 AM, Enrico Weigelt, metux IT consult wrote: > On 19.04.19 09:40, Dmitry Torokhov wrote: >> Hi Enrico, >> >> On Tue, Apr 16, 2019 at 09:57:22PM +0200, Enrico Weigelt, metux IT consult wrote: >>> Little helper macro that declares an oftree module device table, >>> if CONFIG_OF is enabled. Otherwise it's just noop. >>> >>> This is also helpful if some drivers can be built w/ or w/o >>> oftree support. >> >> This should go to OF folks, please. > > hmm, they should be CCed, if my script works right. > This one is only needed for the 4th patch (skip oftree...). Your script did not work (BTDT). I just happened to notice this on lkml. -Frank > > > --mtx > ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 2/4] input: keyboard: gpio-keys-polled: use input name from pdata if available 2019-04-16 19:57 gpio-keys-polled improvements Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 ` Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 3/4] input: keyboard: gpio_keys_polled: use gpio lookup table Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 4/4] input: keyboard: gpio-keys-polled: skip oftree code when CONFIG_OF disabled Enrico Weigelt, metux IT consult 3 siblings, 0 replies; 12+ messages in thread From: Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 UTC (permalink / raw) To: linux-kernel; +Cc: dmitry.torokhov, linux-input Instead of hardcoding the input name to the driver name ('gpio-keys-polled'), allow the passing a name via platform data ('name' field was already present), but default to old behaviour in case of NULL. Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: linux-input@vger.kernel.org Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> --- drivers/input/keyboard/gpio_keys_polled.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyboard/gpio_keys_polled.c index edc7262..3312186 100644 --- a/drivers/input/keyboard/gpio_keys_polled.c +++ b/drivers/input/keyboard/gpio_keys_polled.c @@ -272,7 +272,7 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) input = poll_dev->input; - input->name = pdev->name; + input->name = (pdata->name ? pdata->name : pdev->name); input->phys = DRV_NAME"/input0"; input->id.bustype = BUS_HOST; -- 1.9.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/4] input: keyboard: gpio_keys_polled: use gpio lookup table 2019-04-16 19:57 gpio-keys-polled improvements Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 2/4] input: keyboard: gpio-keys-polled: use input name from pdata if available Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 ` Enrico Weigelt, metux IT consult 2019-04-19 7:48 ` Dmitry Torokhov 2019-04-16 19:57 ` [PATCH 4/4] input: keyboard: gpio-keys-polled: skip oftree code when CONFIG_OF disabled Enrico Weigelt, metux IT consult 3 siblings, 1 reply; 12+ messages in thread From: Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 UTC (permalink / raw) To: linux-kernel; +Cc: dmitry.torokhov, linux-input Support the recently introduced gpio lookup tables for attaching to gpio lines. So, harcoded gpio numbers aren't needed anymore. Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: linux-input@vger.kernel.org Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> --- drivers/input/keyboard/gpio_keys_polled.c | 167 +++++++++++++++++++++--------- 1 file changed, 119 insertions(+), 48 deletions(-) diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyboard/gpio_keys_polled.c index 3312186..3f773b2 100644 --- a/drivers/input/keyboard/gpio_keys_polled.c +++ b/drivers/input/keyboard/gpio_keys_polled.c @@ -24,6 +24,7 @@ #include <linux/platform_device.h> #include <linux/gpio.h> #include <linux/gpio/consumer.h> +#include <linux/gpio/machine.h> #include <linux/gpio_keys.h> #include <linux/property.h> @@ -227,6 +228,119 @@ static void gpio_keys_polled_set_abs_params(struct input_dev *input, }; MODULE_DEVICE_TABLE(of, gpio_keys_polled_of_match); +static struct gpio_desc *gpio_keys_polled_get_gpiod_fwnode( + struct device *dev, + int idx, + const char *desc) +{ + struct gpio_desc *gpiod; + struct fwnode_handle *child; + int x; + + /* get the idx'th child node */ + child = device_get_next_child_node(dev, NULL); + while (child && x) { + child = device_get_next_child_node(dev, child); + x--; + } + + if (!child) { + dev_err(dev, "missing oftree child node #%d\n", idx); + return ERR_PTR(-EINVAL); + } + + gpiod = devm_fwnode_get_gpiod_from_child(dev, + NULL, + child, + GPIOD_IN, + desc); + if (IS_ERR(gpiod)) { + if (PTR_ERR(gpiod) != -EPROBE_DEFER) + dev_err(dev, + "failed to get gpio: %ld\n", + PTR_ERR(gpiod)); + fwnode_handle_put(child); + return gpiod; + } + + return gpiod; +} + +static struct gpio_desc *gpio_keys_polled_get_gpiod_legacy( + struct device *dev, + int idx, + const struct gpio_keys_button *button) +{ + /* + * Legacy GPIO number so request the GPIO here and + * convert it to descriptor. + */ + unsigned int flags = GPIOF_IN; + struct gpio_desc *gpiod; + int error; + + dev_info(dev, "hardcoded gpio IDs are deprecated.\n"); + + if (button->active_low) + flags |= GPIOF_ACTIVE_LOW; + + error = devm_gpio_request_one(dev, button->gpio, + flags, button->desc ? : DRV_NAME); + if (error) { + dev_err(dev, + "unable to claim gpio %u, err=%d\n", + button->gpio, error); + return ERR_PTR(error); + } + + gpiod = gpio_to_desc(button->gpio); + if (!gpiod) { + dev_err(dev, + "unable to convert gpio %u to descriptor\n", + button->gpio); + return ERR_PTR(-EINVAL); + } + + return gpiod; +} + +static struct gpio_desc *gpio_keys_polled_get_gpiod( + struct device *dev, + int idx, + const struct gpio_keys_button *button) +{ + struct gpio_desc *gpiod = NULL; + int error; + + /* No legacy static platform data - use oftree */ + if (!dev_get_platdata(dev)) { + return gpio_keys_polled_get_gpiod_fwnode( + dev, idx, button->desc); + } + + gpiod = devm_gpiod_get_index(dev, NULL, idx, GPIOF_IN); + + if (!IS_ERR(gpiod)) { + dev_info(dev, "picked gpiod idx %d from gpio table\n", idx); + gpiod_set_consumer_name(gpiod, button->desc ? : DRV_NAME); + return gpiod; + } + + if (PTR_ERR(gpiod) != -ENOENT) { + dev_err(dev, "failed fetching gpiod #%d: %d\n", + idx, PTR_ERR(gpiod)); + return gpiod; + } + + /* Use legacy gpio id, if defined */ + if (gpio_is_valid(button->gpio)) { + return gpio_keys_polled_get_gpiod_legacy( + dev, idx, button); + } + + return ERR_PTR(-ENOENT); +} + static int gpio_keys_polled_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -291,57 +405,14 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) if (button->wakeup) { dev_err(dev, DRV_NAME " does not support wakeup\n"); - fwnode_handle_put(child); return -EINVAL; } - if (!dev_get_platdata(dev)) { - /* No legacy static platform data */ - child = device_get_next_child_node(dev, child); - if (!child) { - dev_err(dev, "missing child device node\n"); - return -EINVAL; - } - - bdata->gpiod = devm_fwnode_get_gpiod_from_child(dev, - NULL, child, - GPIOD_IN, - button->desc); - if (IS_ERR(bdata->gpiod)) { - error = PTR_ERR(bdata->gpiod); - if (error != -EPROBE_DEFER) - dev_err(dev, - "failed to get gpio: %d\n", - error); - fwnode_handle_put(child); - return error; - } - } else if (gpio_is_valid(button->gpio)) { - /* - * Legacy GPIO number so request the GPIO here and - * convert it to descriptor. - */ - unsigned flags = GPIOF_IN; - - if (button->active_low) - flags |= GPIOF_ACTIVE_LOW; - - error = devm_gpio_request_one(dev, button->gpio, - flags, button->desc ? : DRV_NAME); - if (error) { - dev_err(dev, - "unable to claim gpio %u, err=%d\n", - button->gpio, error); - return error; - } - - bdata->gpiod = gpio_to_desc(button->gpio); - if (!bdata->gpiod) { - dev_err(dev, - "unable to convert gpio %u to descriptor\n", - button->gpio); - return -EINVAL; - } + bdata->gpiod = gpio_keys_polled_get_gpiod(dev, i, button); + + if (IS_ERR(bdata->gpiod)) { + dev_err(dev, "failed to fetch gpiod #%d\n", i); + return PTR_ERR(bdata->gpiod); } bdata->last_state = -1; -- 1.9.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/4] input: keyboard: gpio_keys_polled: use gpio lookup table 2019-04-16 19:57 ` [PATCH 3/4] input: keyboard: gpio_keys_polled: use gpio lookup table Enrico Weigelt, metux IT consult @ 2019-04-19 7:48 ` Dmitry Torokhov 2019-04-24 10:59 ` Enrico Weigelt, metux IT consult 0 siblings, 1 reply; 12+ messages in thread From: Dmitry Torokhov @ 2019-04-19 7:48 UTC (permalink / raw) To: Enrico Weigelt, metux IT consult; +Cc: linux-kernel, linux-input Hi Enrico, On Tue, Apr 16, 2019 at 09:57:24PM +0200, Enrico Weigelt, metux IT consult wrote: > Support the recently introduced gpio lookup tables for > attaching to gpio lines. So, harcoded gpio numbers aren't > needed anymore. I would prefer if gpiod API could parse static board data/gpio lookup tables for child nodes, instead of adding this to gpio-keys. Now that Heikki Krogerus work on software nodes has landed I need to resurrect my patch to gpiolib. Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 3/4] input: keyboard: gpio_keys_polled: use gpio lookup table 2019-04-19 7:48 ` Dmitry Torokhov @ 2019-04-24 10:59 ` Enrico Weigelt, metux IT consult 0 siblings, 0 replies; 12+ messages in thread From: Enrico Weigelt, metux IT consult @ 2019-04-24 10:59 UTC (permalink / raw) To: Dmitry Torokhov, Enrico Weigelt, metux IT consult Cc: linux-kernel, linux-input On 19.04.19 09:48, Dmitry Torokhov wrote: > I would prefer if gpiod API could parse static board data/gpio lookup > tables for child nodes, instead of adding this to gpio-keys. Now that > Heikki Krogerus work on software nodes has landed I need to resurrect > my patch to gpiolib. Of course, a more generic approach would be better. I did it that way I wasn't that aware that a more generic approach is in the pipeline, and I needed something usable now. The patch is already used in the field and seems to work quite well, but if I'm alway open for better solutions. I figure that the generic solution will still take some time, so can we take this one for the next merge window and rework it in the next one ? --mtx -- Enrico Weigelt, metux IT consult Free software and Linux embedded engineering info@metux.net -- +49-151-27565287 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 4/4] input: keyboard: gpio-keys-polled: skip oftree code when CONFIG_OF disabled 2019-04-16 19:57 gpio-keys-polled improvements Enrico Weigelt, metux IT consult ` (2 preceding siblings ...) 2019-04-16 19:57 ` [PATCH 3/4] input: keyboard: gpio_keys_polled: use gpio lookup table Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 ` Enrico Weigelt, metux IT consult 2019-04-29 19:44 ` Frank Rowand 3 siblings, 1 reply; 12+ messages in thread From: Enrico Weigelt, metux IT consult @ 2019-04-16 19:57 UTC (permalink / raw) To: linux-kernel; +Cc: dmitry.torokhov, linux-input we don't need to build in oftree probing stuff when oftree isn't enabled at all. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> --- drivers/input/keyboard/gpio_keys_polled.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyboard/gpio_keys_polled.c index 3f773b2..fbccb89 100644 --- a/drivers/input/keyboard/gpio_keys_polled.c +++ b/drivers/input/keyboard/gpio_keys_polled.c @@ -147,6 +147,7 @@ static void gpio_keys_polled_close(struct input_polled_dev *dev) static struct gpio_keys_platform_data * gpio_keys_polled_get_devtree_pdata(struct device *dev) { +#ifdef CONFIG_OF struct gpio_keys_platform_data *pdata; struct gpio_keys_button *button; struct fwnode_handle *child; @@ -200,6 +201,9 @@ static void gpio_keys_polled_close(struct input_polled_dev *dev) } return pdata; +#else /* CONFIG_OF */ + return ERR_PTR(-ENOENT); +#endif /* CONFIG_OF */ } static void gpio_keys_polled_set_abs_params(struct input_dev *input, @@ -226,7 +230,7 @@ static void gpio_keys_polled_set_abs_params(struct input_dev *input, { .compatible = "gpio-keys-polled", }, { }, }; -MODULE_DEVICE_TABLE(of, gpio_keys_polled_of_match); +MODULE_DEVICE_TABLE_OF(gpio_keys_polled_of_match); static struct gpio_desc *gpio_keys_polled_get_gpiod_fwnode( struct device *dev, @@ -452,7 +456,9 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) .probe = gpio_keys_polled_probe, .driver = { .name = DRV_NAME, +#ifdef CONFIG_OF .of_match_table = gpio_keys_polled_of_match, +#endif /* CONFIG_OF */ }, }; module_platform_driver(gpio_keys_polled_driver); -- 1.9.1 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 4/4] input: keyboard: gpio-keys-polled: skip oftree code when CONFIG_OF disabled 2019-04-16 19:57 ` [PATCH 4/4] input: keyboard: gpio-keys-polled: skip oftree code when CONFIG_OF disabled Enrico Weigelt, metux IT consult @ 2019-04-29 19:44 ` Frank Rowand 2019-04-29 21:40 ` Enrico Weigelt, metux IT consult 0 siblings, 1 reply; 12+ messages in thread From: Frank Rowand @ 2019-04-29 19:44 UTC (permalink / raw) To: Enrico Weigelt, metux IT consult, linux-kernel Cc: dmitry.torokhov, linux-input On 4/16/19 12:57 PM, Enrico Weigelt, metux IT consult wrote: > we don't need to build in oftree probing stuff when oftree isn't > enabled at all. > > Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> > --- > drivers/input/keyboard/gpio_keys_polled.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyboard/gpio_keys_polled.c > index 3f773b2..fbccb89 100644 > --- a/drivers/input/keyboard/gpio_keys_polled.c > +++ b/drivers/input/keyboard/gpio_keys_polled.c > @@ -147,6 +147,7 @@ static void gpio_keys_polled_close(struct input_polled_dev *dev) > static struct gpio_keys_platform_data * > gpio_keys_polled_get_devtree_pdata(struct device *dev) > { > +#ifdef CONFIG_OF > struct gpio_keys_platform_data *pdata; > struct gpio_keys_button *button; > struct fwnode_handle *child; > @@ -200,6 +201,9 @@ static void gpio_keys_polled_close(struct input_polled_dev *dev) > } > > return pdata; > +#else /* CONFIG_OF */ > + return ERR_PTR(-ENOENT); > +#endif /* CONFIG_OF */ > } > > static void gpio_keys_polled_set_abs_params(struct input_dev *input, > @@ -226,7 +230,7 @@ static void gpio_keys_polled_set_abs_params(struct input_dev *input, > { .compatible = "gpio-keys-polled", }, > { }, > }; > -MODULE_DEVICE_TABLE(of, gpio_keys_polled_of_match); > +MODULE_DEVICE_TABLE_OF(gpio_keys_polled_of_match); Not needed, when you use of_match_ptr() -- see below. > > static struct gpio_desc *gpio_keys_polled_get_gpiod_fwnode( > struct device *dev, > @@ -452,7 +456,9 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) > .probe = gpio_keys_polled_probe, > .driver = { > .name = DRV_NAME, > +#ifdef CONFIG_OF > .of_match_table = gpio_keys_polled_of_match, > +#endif /* CONFIG_OF */ No need for the #ifdef, use of_match_ptr(): .of_match_table = of_match_ptr(gpio_keys_polled_of_match), > }, > }; > module_platform_driver(gpio_keys_polled_driver); > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 4/4] input: keyboard: gpio-keys-polled: skip oftree code when CONFIG_OF disabled 2019-04-29 19:44 ` Frank Rowand @ 2019-04-29 21:40 ` Enrico Weigelt, metux IT consult 0 siblings, 0 replies; 12+ messages in thread From: Enrico Weigelt, metux IT consult @ 2019-04-29 21:40 UTC (permalink / raw) To: Frank Rowand, Enrico Weigelt, metux IT consult, linux-kernel Cc: dmitry.torokhov, linux-input On 29.04.19 21:44, Frank Rowand wrote: > On 4/16/19 12:57 PM, Enrico Weigelt, metux IT consult wrote: >> we don't need to build in oftree probing stuff when oftree isn't >> enabled at all. >> >> Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> >> --- >> drivers/input/keyboard/gpio_keys_polled.c | 8 +++++++- >> 1 file changed, 7 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/input/keyboard/gpio_keys_polled.c b/drivers/input/keyboard/gpio_keys_polled.c >> index 3f773b2..fbccb89 100644 >> --- a/drivers/input/keyboard/gpio_keys_polled.c >> +++ b/drivers/input/keyboard/gpio_keys_polled.c >> @@ -147,6 +147,7 @@ static void gpio_keys_polled_close(struct input_polled_dev *dev) >> static struct gpio_keys_platform_data * >> gpio_keys_polled_get_devtree_pdata(struct device *dev) >> { >> +#ifdef CONFIG_OF >> struct gpio_keys_platform_data *pdata; >> struct gpio_keys_button *button; >> struct fwnode_handle *child; >> @@ -200,6 +201,9 @@ static void gpio_keys_polled_close(struct input_polled_dev *dev) >> } >> >> return pdata; >> +#else /* CONFIG_OF */ >> + return ERR_PTR(-ENOENT); >> +#endif /* CONFIG_OF */ >> } >> >> static void gpio_keys_polled_set_abs_params(struct input_dev *input, >> @@ -226,7 +230,7 @@ static void gpio_keys_polled_set_abs_params(struct input_dev *input, >> { .compatible = "gpio-keys-polled", }, >> { }, >> }; > > >> -MODULE_DEVICE_TABLE(of, gpio_keys_polled_of_match); >> +MODULE_DEVICE_TABLE_OF(gpio_keys_polled_of_match); > > Not needed, when you use of_match_ptr() -- see below. Shall I remove the MODULE_DEVICE_TABLE... line completely ? I'd like to have nothing of-related compiled in, when oftree isn't enabled. >> static struct gpio_desc *gpio_keys_polled_get_gpiod_fwnode( >> struct device *dev, >> @@ -452,7 +456,9 @@ static int gpio_keys_polled_probe(struct platform_device *pdev) >> .probe = gpio_keys_polled_probe, >> .driver = { >> .name = DRV_NAME, > >> +#ifdef CONFIG_OF >> .of_match_table = gpio_keys_polled_of_match, >> +#endif /* CONFIG_OF */ > > No need for the #ifdef, use of_match_ptr(): > > .of_match_table = of_match_ptr(gpio_keys_polled_of_match), Ok, thanks. --mtx -- Enrico Weigelt, metux IT consult Free software and Linux embedded engineering info@metux.net -- +49-151-27565287 ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2019-04-29 21:40 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-04-16 19:57 gpio-keys-polled improvements Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 1/4] mod_devicetable: helper macro for declaring oftree module device table Enrico Weigelt, metux IT consult 2019-04-19 7:40 ` Dmitry Torokhov 2019-04-24 10:48 ` Enrico Weigelt, metux IT consult 2019-04-29 19:48 ` Frank Rowand 2019-04-16 19:57 ` [PATCH 2/4] input: keyboard: gpio-keys-polled: use input name from pdata if available Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 3/4] input: keyboard: gpio_keys_polled: use gpio lookup table Enrico Weigelt, metux IT consult 2019-04-19 7:48 ` Dmitry Torokhov 2019-04-24 10:59 ` Enrico Weigelt, metux IT consult 2019-04-16 19:57 ` [PATCH 4/4] input: keyboard: gpio-keys-polled: skip oftree code when CONFIG_OF disabled Enrico Weigelt, metux IT consult 2019-04-29 19:44 ` Frank Rowand 2019-04-29 21:40 ` Enrico Weigelt, metux IT consult
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).