All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] HID: hid-sensor-hub: Remove hdev->claimed setting
@ 2012-09-19 15:30 Srinivas Pandruvada
  2012-09-19 15:30 ` [PATCH 2/2] HID: hid-sensor-hub: Fix sensor_hub_probe error handling Srinivas Pandruvada
  2012-09-22  9:35 ` [PATCH 1/2] HID: hid-sensor-hub: Remove hdev->claimed setting Jonathan Cameron
  0 siblings, 2 replies; 4+ messages in thread
From: Srinivas Pandruvada @ 2012-09-19 15:30 UTC (permalink / raw)
  To: jic23; +Cc: jkosina, linux-input, axel.lin

From: Axel Lin <[mailto:axel.lin@gmail.com]>

Current implementation of hid_hw_start() allows connect_mask to be 0.
Setting hdev->claimed = HID_CLAIMED_INPUT before calling hid_hw_start()
is not necessary. Remove it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
 drivers/hid/hid-sensor-hub.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index 80033dc..ffa91cf 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -530,7 +530,6 @@ static int sensor_hub_probe(struct hid_device *hdev,
 	}
 	INIT_LIST_HEAD(&hdev->inputs);
 
-	hdev->claimed = HID_CLAIMED_INPUT;
 	ret = hid_hw_start(hdev, 0);
 	if (ret) {
 		hid_err(hdev, "hw start failed\n");
@@ -618,7 +617,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
 	int i;
 
 	hid_dbg(hdev, " hardware removed\n");
-	hdev->claimed &= ~HID_CLAIMED_INPUT;
 	hid_hw_stop(hdev);
 	hid_hw_close(hdev);
 	spin_lock_irqsave(&data->lock, flags);
-- 
1.7.11.4


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

* [PATCH 2/2] HID: hid-sensor-hub: Fix sensor_hub_probe error handling
  2012-09-19 15:30 [PATCH 1/2] HID: hid-sensor-hub: Remove hdev->claimed setting Srinivas Pandruvada
@ 2012-09-19 15:30 ` Srinivas Pandruvada
  2012-09-22  9:35   ` Jonathan Cameron
  2012-09-22  9:35 ` [PATCH 1/2] HID: hid-sensor-hub: Remove hdev->claimed setting Jonathan Cameron
  1 sibling, 1 reply; 4+ messages in thread
From: Srinivas Pandruvada @ 2012-09-19 15:30 UTC (permalink / raw)
  To: jic23; +Cc: jkosina, linux-input, axel.lin

From: Axel Lin <[mailto:axel.lin@gmail.com]>

Fix below issues:
1. In the case of goto err_close, hid_hw_stop(hdev) is called twice. Fix it.
2. If fails to allocate MFD device name, we also need to free all
   successfully allocated names in previous iterations.
3. In sensor_hub_remove(), Call hid_hw_close() before hid_hw_stop().
4. Adjust unnecessary change lines for hid_err.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
---
 drivers/hid/hid-sensor-hub.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index ffa91cf..1314380 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -555,8 +555,7 @@ static int sensor_hub_probe(struct hid_device *hdev,
 						sizeof(struct mfd_cell),
 						GFP_KERNEL);
 	if (sd->hid_sensor_hub_client_devs == NULL) {
-		hid_err(hdev,
-			"Failed to allocate memory for mfd cells\n");
+		hid_err(hdev, "Failed to allocate memory for mfd cells\n");
 			ret = -ENOMEM;
 			goto err_close;
 	}
@@ -568,10 +567,9 @@ static int sensor_hub_probe(struct hid_device *hdev,
 			name = kasprintf(GFP_KERNEL, "HID-SENSOR-%x",
 						field->physical);
 			if (name  == NULL) {
-				hid_err(hdev,
-					"Failed MFD device name\n");
+				hid_err(hdev, "Failed MFD device name\n");
 					ret = -ENOMEM;
-					goto err_free_cells;
+					goto err_free_names;
 			}
 			sd->hid_sensor_hub_client_devs[
 				sd->hid_sensor_client_cnt].name = name;
@@ -595,10 +593,8 @@ static int sensor_hub_probe(struct hid_device *hdev,
 err_free_names:
 	for (i = 0; i < sd->hid_sensor_client_cnt ; ++i)
 		kfree(sd->hid_sensor_hub_client_devs[i].name);
-err_free_cells:
 	kfree(sd->hid_sensor_hub_client_devs);
 err_close:
-	hid_hw_stop(hdev);
 	hid_hw_close(hdev);
 err_stop_hw:
 	hid_hw_stop(hdev);
@@ -617,8 +613,8 @@ static void sensor_hub_remove(struct hid_device *hdev)
 	int i;
 
 	hid_dbg(hdev, " hardware removed\n");
-	hid_hw_stop(hdev);
 	hid_hw_close(hdev);
+	hid_hw_stop(hdev);
 	spin_lock_irqsave(&data->lock, flags);
 	if (data->pending.status)
 		complete(&data->pending.ready);
-- 
1.7.11.4


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

* Re: [PATCH 1/2] HID: hid-sensor-hub: Remove hdev->claimed setting
  2012-09-19 15:30 [PATCH 1/2] HID: hid-sensor-hub: Remove hdev->claimed setting Srinivas Pandruvada
  2012-09-19 15:30 ` [PATCH 2/2] HID: hid-sensor-hub: Fix sensor_hub_probe error handling Srinivas Pandruvada
@ 2012-09-22  9:35 ` Jonathan Cameron
  1 sibling, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2012-09-22  9:35 UTC (permalink / raw)
  To: Srinivas Pandruvada; +Cc: jkosina, linux-input, Axel Lin

On 09/19/2012 04:30 PM, Srinivas Pandruvada wrote:
> From: Axel Lin <[mailto:axel.lin@gmail.com]>
> 
> Current implementation of hid_hw_start() allows connect_mask to be 0.
> Setting hdev->claimed = HID_CLAIMED_INPUT before calling hid_hw_start()
> is not necessary. Remove it.
> 
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
> Acked-by: Jiri Kosina <jkosina@suse.cz>
> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
added to togreg branch of

git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git

> ---
>  drivers/hid/hid-sensor-hub.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index 80033dc..ffa91cf 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -530,7 +530,6 @@ static int sensor_hub_probe(struct hid_device *hdev,
>  	}
>  	INIT_LIST_HEAD(&hdev->inputs);
>  
> -	hdev->claimed = HID_CLAIMED_INPUT;
>  	ret = hid_hw_start(hdev, 0);
>  	if (ret) {
>  		hid_err(hdev, "hw start failed\n");
> @@ -618,7 +617,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
>  	int i;
>  
>  	hid_dbg(hdev, " hardware removed\n");
> -	hdev->claimed &= ~HID_CLAIMED_INPUT;
>  	hid_hw_stop(hdev);
>  	hid_hw_close(hdev);
>  	spin_lock_irqsave(&data->lock, flags);
> 

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

* Re: [PATCH 2/2] HID: hid-sensor-hub: Fix sensor_hub_probe error handling
  2012-09-19 15:30 ` [PATCH 2/2] HID: hid-sensor-hub: Fix sensor_hub_probe error handling Srinivas Pandruvada
@ 2012-09-22  9:35   ` Jonathan Cameron
  0 siblings, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2012-09-22  9:35 UTC (permalink / raw)
  To: Srinivas Pandruvada; +Cc: jkosina, linux-input, Axel Lin

On 09/19/2012 04:30 PM, Srinivas Pandruvada wrote:
> From: Axel Lin <[mailto:axel.lin@gmail.com]>
> 
> Fix below issues:
> 1. In the case of goto err_close, hid_hw_stop(hdev) is called twice. Fix it.
> 2. If fails to allocate MFD device name, we also need to free all
>    successfully allocated names in previous iterations.
> 3. In sensor_hub_remove(), Call hid_hw_close() before hid_hw_stop().
> 4. Adjust unnecessary change lines for hid_err.
> 
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
> Acked-by: Jiri Kosina <jkosina@suse.cz>
> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
added to togreg branch of

git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git

> ---
>  drivers/hid/hid-sensor-hub.c | 12 ++++--------
>  1 file changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index ffa91cf..1314380 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -555,8 +555,7 @@ static int sensor_hub_probe(struct hid_device *hdev,
>  						sizeof(struct mfd_cell),
>  						GFP_KERNEL);
>  	if (sd->hid_sensor_hub_client_devs == NULL) {
> -		hid_err(hdev,
> -			"Failed to allocate memory for mfd cells\n");
> +		hid_err(hdev, "Failed to allocate memory for mfd cells\n");
>  			ret = -ENOMEM;
>  			goto err_close;
>  	}
> @@ -568,10 +567,9 @@ static int sensor_hub_probe(struct hid_device *hdev,
>  			name = kasprintf(GFP_KERNEL, "HID-SENSOR-%x",
>  						field->physical);
>  			if (name  == NULL) {
> -				hid_err(hdev,
> -					"Failed MFD device name\n");
> +				hid_err(hdev, "Failed MFD device name\n");
>  					ret = -ENOMEM;
> -					goto err_free_cells;
> +					goto err_free_names;
>  			}
>  			sd->hid_sensor_hub_client_devs[
>  				sd->hid_sensor_client_cnt].name = name;
> @@ -595,10 +593,8 @@ static int sensor_hub_probe(struct hid_device *hdev,
>  err_free_names:
>  	for (i = 0; i < sd->hid_sensor_client_cnt ; ++i)
>  		kfree(sd->hid_sensor_hub_client_devs[i].name);
> -err_free_cells:
>  	kfree(sd->hid_sensor_hub_client_devs);
>  err_close:
> -	hid_hw_stop(hdev);
>  	hid_hw_close(hdev);
>  err_stop_hw:
>  	hid_hw_stop(hdev);
> @@ -617,8 +613,8 @@ static void sensor_hub_remove(struct hid_device *hdev)
>  	int i;
>  
>  	hid_dbg(hdev, " hardware removed\n");
> -	hid_hw_stop(hdev);
>  	hid_hw_close(hdev);
> +	hid_hw_stop(hdev);
>  	spin_lock_irqsave(&data->lock, flags);
>  	if (data->pending.status)
>  		complete(&data->pending.ready);
> 

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

end of thread, other threads:[~2012-09-22  9:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-19 15:30 [PATCH 1/2] HID: hid-sensor-hub: Remove hdev->claimed setting Srinivas Pandruvada
2012-09-19 15:30 ` [PATCH 2/2] HID: hid-sensor-hub: Fix sensor_hub_probe error handling Srinivas Pandruvada
2012-09-22  9:35   ` Jonathan Cameron
2012-09-22  9:35 ` [PATCH 1/2] HID: hid-sensor-hub: Remove hdev->claimed setting Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.