diff mbox

[v3,2/2] Input - soc_button_array: bail out earlier if gpiod_count is null

Message ID 1480091802-14482-3-git-send-email-benjamin.tissoires@redhat.com (mailing list archive)
State Accepted
Headers show

Commit Message

Benjamin Tissoires Nov. 25, 2016, 4:36 p.m. UTC
The PNP0C40 device of the Surface 3 doesn't have any GPIO attached to it.
Instead of trying to access the GPIO, request the count beforehand and
bail out if it is null or if an error is returned.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
---

no changes in v3

changes in v2:
- hunk moved down for better integration with later patches
---
 drivers/input/misc/soc_button_array.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Dmitry Torokhov Nov. 25, 2016, 7:38 p.m. UTC | #1
On Fri, Nov 25, 2016 at 05:36:42PM +0100, Benjamin Tissoires wrote:
> The PNP0C40 device of the Surface 3 doesn't have any GPIO attached to it.
> Instead of trying to access the GPIO, request the count beforehand and
> bail out if it is null or if an error is returned.
> 
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> ---
> 
> no changes in v3
> 
> changes in v2:
> - hunk moved down for better integration with later patches
> ---
>  drivers/input/misc/soc_button_array.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
> index bbd433c..5467d04 100644
> --- a/drivers/input/misc/soc_button_array.c
> +++ b/drivers/input/misc/soc_button_array.c
> @@ -167,6 +167,11 @@ static int soc_button_probe(struct platform_device *pdev)
>  
>  	button_info = (struct soc_button_info *)id->driver_data;
>  
> +	if (gpiod_count(&pdev->dev, KBUILD_MODNAME) <= 0) {
> +		dev_info(&pdev->dev, "no GPIO attached, ignoring...\n");

Changed this to dev_dbg() and applied, thank you.

> +		return -ENODEV;
> +	}
> +
>  	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
>  	if (!priv)
>  		return -ENOMEM;
> -- 
> 2.7.4
>
diff mbox

Patch

diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c
index bbd433c..5467d04 100644
--- a/drivers/input/misc/soc_button_array.c
+++ b/drivers/input/misc/soc_button_array.c
@@ -167,6 +167,11 @@  static int soc_button_probe(struct platform_device *pdev)
 
 	button_info = (struct soc_button_info *)id->driver_data;
 
+	if (gpiod_count(&pdev->dev, KBUILD_MODNAME) <= 0) {
+		dev_info(&pdev->dev, "no GPIO attached, ignoring...\n");
+		return -ENODEV;
+	}
+
 	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
 	if (!priv)
 		return -ENOMEM;