Skip to contentSkip to conversation

HID: hid-sensor-hub: Remove setting hdev->claimed before calling hid_hw_start()

PATCH In review Axel Lin 3 participants 6 messages Sep 13, 2012 – Sep 17, 2012

Subsystems (2)
lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH 1/3 HID: hid-sensor-hub: Remove setting hdev->claimed before calling hid_hw_start()

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.

---
 drivers/hid/hid-sensor-hub.c |    2 --
 1 file changed, 2 deletions(-)
drivers/hid/hid-sensor-hub.c +0 -2
index 4ac759c..1faacf2 100644
@@ -539,7 +539,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");
@@ -627,7 +626,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);
Signature · 1 line
1.7.9.5
author
#1 lore raw

PATCH 2/3 HID: hid-sensor-hub: Fix sensor_hub_probe error handling

Fix below issues in sensor_hub_probe error handling:
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 sucessfully allocated names in previous iterations.

---
 drivers/hid/hid-sensor-hub.c |    4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
drivers/hid/hid-sensor-hub.c +1 -3
index 1faacf2..f9d6209 100644
@@ -580,7 +580,7 @@ static int sensor_hub_probe(struct hid_device *hdev,
 				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;
@@ -604,10 +604,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);
Signature · 1 line
1.7.9.5
author
#2 lore raw

PATCH 3/3 HID: hid-sensor-hub: Call hid_hw_close() before hid_hw_stop()

In reply to Axel Lin

Also adjust unnecessary change lines for hid_err.

---
 drivers/hid/hid-sensor-hub.c |    8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
drivers/hid/hid-sensor-hub.c +3 -5
index f9d6209..b9ce38e 100644
@@ -564,8 +564,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;
 	}
@@ -577,8 +576,7 @@ 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_names;
 			}
@@ -624,8 +622,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);
Signature · 1 line
1.7.9.5
#3 lore raw

RE: [PATCH 3/3] HID: hid-sensor-hub: Call hid_hw_close() before hid_hw_stop()

I think you can merge this patch with your patch 2/3 as both are addressing hid_hw_close and hid_hw_stop.

Thanks,
Srinivas
-----Original Message-----
From: Axel Lin [mailto:[email protected]]
Sent: Thursday, September 13, 2012 3:07 PM
To: Jiri Kosina
Cc: Pandruvada, Srinivas; Jonathan Cameron; [email protected]
Subject: [PATCH 3/3] HID: hid-sensor-hub: Call hid_hw_close() before hid_hw_stop()

Also adjust unnecessary change lines for hid_err.

---
 drivers/hid/hid-sensor-hub.c |    8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
drivers/hid/hid-sensor-hub.c +3 -5
@@ -564,8 +564,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;
 	}
@@ -577,8 +576,7 @@ 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_names;
 			}
@@ -624,8 +622,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.9.5

Acked-by
#4 lore raw

RE: [PATCH 3/3] HID: hid-sensor-hub: Call hid_hw_close() before hid_hw_stop()

Quoted 2 lines · Srinivas

I think you can merge this patch with your patch 2/3 as both are addressing hid_hw_close and hid_hw_stop.

Agreed. In addition to that, I am fine with the changes. As this whole lot is going through Jonathan to Greg, I just add my

and let Jonathan take it. Thanks,

Signature · 2 lines
Jiri Kosina
SUSE Labs
Acked-by Jiri Kosina
#5 lore raw

RE: [PATCH 3/3] HID: hid-sensor-hub: Call hid_hw_close() before hid_hw_stop()

Hi Alex,

Can you resubmit your patches merging 2/3 and 3/3?

Thanks,
Srinivas

-----Original Message-----
From: Jiri Kosina [mailto:[email protected]]
Sent: Monday, September 17, 2012 3:58 AM
To: Pandruvada, Srinivas
Cc: Axel Lin; Jonathan Cameron; [email protected]
Subject: RE: [PATCH 3/3] HID: hid-sensor-hub: Call hid_hw_close() before hid_hw_stop()

Quoted 2 lines · Srinivas

I think you can merge this patch with your patch 2/3 as both are addressing hid_hw_close and hid_hw_stop.

Agreed. In addition to that, I am fine with the changes. As this whole lot is going through Jonathan to Greg, I just add my

and let Jonathan take it. Thanks,

--
Jiri Kosina
SUSE Labs