linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1] Revert "Input: synaptics_rmi4 - use devm_device_add_group() for attributes in F01"
@ 2018-01-24 21:26 Nick Dyer
  2018-01-24 21:47 ` Dmitry Torokhov
  0 siblings, 1 reply; 2+ messages in thread
From: Nick Dyer @ 2018-01-24 21:26 UTC (permalink / raw)
  To: Dmitry Torokhov
  Cc: Benjamin Tissoires, Andrew Duggan, Christopher Heiny, linux-input,
	Chris Healy, Lucas Stach, Nick Dyer

Since the sysfs attribute hangs off the RMI bus, which doesn't go away during
firmware flash, it needs to be explictly removed, otherwise we would try and
register the same attribute twice.

This reverts commit 36a44af5c176d619552d99697433261141dd1296.

Signed-off-by: Nick Dyer <nick@shmanahar.org>
---
 drivers/input/rmi4/rmi_f01.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/input/rmi4/rmi_f01.c b/drivers/input/rmi4/rmi_f01.c
index ae966e3..8a07ae1 100644
--- a/drivers/input/rmi4/rmi_f01.c
+++ b/drivers/input/rmi4/rmi_f01.c
@@ -570,14 +570,19 @@ static int rmi_f01_probe(struct rmi_function *fn)
 
 	dev_set_drvdata(&fn->dev, f01);
 
-	error = devm_device_add_group(&fn->rmi_dev->dev, &rmi_f01_attr_group);
+	error = sysfs_create_group(&fn->rmi_dev->dev.kobj, &rmi_f01_attr_group);
 	if (error)
-		dev_warn(&fn->dev,
-			 "Failed to create attribute group: %d\n", error);
+		dev_warn(&fn->dev, "Failed to create sysfs group: %d\n", error);
 
 	return 0;
 }
 
+static void rmi_f01_remove(struct rmi_function *fn)
+{
+	/* Note that the bus device is used, not the F01 device */
+	sysfs_remove_group(&fn->rmi_dev->dev.kobj, &rmi_f01_attr_group);
+}
+
 static int rmi_f01_config(struct rmi_function *fn)
 {
 	struct f01_data *f01 = dev_get_drvdata(&fn->dev);
@@ -717,6 +722,7 @@ struct rmi_function_handler rmi_f01_handler = {
 	},
 	.func		= 0x01,
 	.probe		= rmi_f01_probe,
+	.remove		= rmi_f01_remove,
 	.config		= rmi_f01_config,
 	.attention	= rmi_f01_attention,
 	.suspend	= rmi_f01_suspend,
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v1] Revert "Input: synaptics_rmi4 - use devm_device_add_group() for attributes in F01"
  2018-01-24 21:26 [PATCH v1] Revert "Input: synaptics_rmi4 - use devm_device_add_group() for attributes in F01" Nick Dyer
@ 2018-01-24 21:47 ` Dmitry Torokhov
  0 siblings, 0 replies; 2+ messages in thread
From: Dmitry Torokhov @ 2018-01-24 21:47 UTC (permalink / raw)
  To: Nick Dyer
  Cc: Benjamin Tissoires, Andrew Duggan, Christopher Heiny, linux-input,
	Chris Healy, Lucas Stach

On Wed, Jan 24, 2018 at 09:26:03PM +0000, Nick Dyer wrote:
> Since the sysfs attribute hangs off the RMI bus, which doesn't go away during
> firmware flash, it needs to be explictly removed, otherwise we would try and
> register the same attribute twice.
> 
> This reverts commit 36a44af5c176d619552d99697433261141dd1296.
> 
> Signed-off-by: Nick Dyer <nick@shmanahar.org>

Applied, thank you.

> ---
>  drivers/input/rmi4/rmi_f01.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/input/rmi4/rmi_f01.c b/drivers/input/rmi4/rmi_f01.c
> index ae966e3..8a07ae1 100644
> --- a/drivers/input/rmi4/rmi_f01.c
> +++ b/drivers/input/rmi4/rmi_f01.c
> @@ -570,14 +570,19 @@ static int rmi_f01_probe(struct rmi_function *fn)
>  
>  	dev_set_drvdata(&fn->dev, f01);
>  
> -	error = devm_device_add_group(&fn->rmi_dev->dev, &rmi_f01_attr_group);
> +	error = sysfs_create_group(&fn->rmi_dev->dev.kobj, &rmi_f01_attr_group);
>  	if (error)
> -		dev_warn(&fn->dev,
> -			 "Failed to create attribute group: %d\n", error);
> +		dev_warn(&fn->dev, "Failed to create sysfs group: %d\n", error);
>  
>  	return 0;
>  }
>  
> +static void rmi_f01_remove(struct rmi_function *fn)
> +{
> +	/* Note that the bus device is used, not the F01 device */
> +	sysfs_remove_group(&fn->rmi_dev->dev.kobj, &rmi_f01_attr_group);
> +}
> +
>  static int rmi_f01_config(struct rmi_function *fn)
>  {
>  	struct f01_data *f01 = dev_get_drvdata(&fn->dev);
> @@ -717,6 +722,7 @@ struct rmi_function_handler rmi_f01_handler = {
>  	},
>  	.func		= 0x01,
>  	.probe		= rmi_f01_probe,
> +	.remove		= rmi_f01_remove,
>  	.config		= rmi_f01_config,
>  	.attention	= rmi_f01_attention,
>  	.suspend	= rmi_f01_suspend,
> -- 
> 2.7.4
> 

-- 
Dmitry

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-01-24 21:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-24 21:26 [PATCH v1] Revert "Input: synaptics_rmi4 - use devm_device_add_group() for attributes in F01" Nick Dyer
2018-01-24 21:47 ` Dmitry Torokhov

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).