diff mbox

[4/4] HID: lenovo-tpkbd: Remove unnecessary casts of void pointers

Message ID 1347516728.3319.6.camel@phoenix (mailing list archive)
State New, archived
Delegated to: Jiri Kosina
Headers show

Commit Message

axel lin Sept. 13, 2012, 6:12 a.m. UTC
container_of() never returns NULL, thus also remove the NULL checking for it.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
 drivers/hid/hid-lenovo-tpkbd.c |  147 +++++++++-------------------------------
 1 file changed, 33 insertions(+), 114 deletions(-)

Comments

Jiri Kosina Sept. 17, 2012, 11:10 a.m. UTC | #1
On Thu, 13 Sep 2012, Axel Lin wrote:

> container_of() never returns NULL, thus also remove the NULL checking for it.
> 
> Signed-off-by: Axel Lin <axel.lin@gmail.com>

Makes sense, applied, thanks.

> ---
>  drivers/hid/hid-lenovo-tpkbd.c |  147 +++++++++-------------------------------
>  1 file changed, 33 insertions(+), 114 deletions(-)
> 
> diff --git a/drivers/hid/hid-lenovo-tpkbd.c b/drivers/hid/hid-lenovo-tpkbd.c
> index 60c4e1e..cea016e 100644
> --- a/drivers/hid/hid-lenovo-tpkbd.c
> +++ b/drivers/hid/hid-lenovo-tpkbd.c
> @@ -56,9 +56,8 @@ static int tpkbd_input_mapping(struct hid_device *hdev,
>  static int tpkbd_features_set(struct hid_device *hdev)
>  {
>  	struct hid_report *report;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
>  	report = hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[4];
>  
>  	report->field[0]->value[0]  = data_pointer->press_to_select   ? 0x01 : 0x02;
> @@ -77,14 +76,8 @@ static ssize_t pointer_press_to_select_show(struct device *dev,
>  		struct device_attribute *attr,
>  		char *buf)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> -
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  
>  	return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->press_to_select);
>  }
> @@ -94,16 +87,10 @@ static ssize_t pointer_press_to_select_store(struct device *dev,
>  		const char *buf,
>  		size_t count)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  	int value;
>  
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	if (kstrtoint(buf, 10, &value))
>  		return -EINVAL;
>  	if (value < 0 || value > 1)
> @@ -119,14 +106,8 @@ static ssize_t pointer_dragging_show(struct device *dev,
>  		struct device_attribute *attr,
>  		char *buf)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> -
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  
>  	return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->dragging);
>  }
> @@ -136,16 +117,10 @@ static ssize_t pointer_dragging_store(struct device *dev,
>  		const char *buf,
>  		size_t count)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  	int value;
>  
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	if (kstrtoint(buf, 10, &value))
>  		return -EINVAL;
>  	if (value < 0 || value > 1)
> @@ -161,14 +136,8 @@ static ssize_t pointer_release_to_select_show(struct device *dev,
>  		struct device_attribute *attr,
>  		char *buf)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> -
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  
>  	return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->release_to_select);
>  }
> @@ -178,16 +147,10 @@ static ssize_t pointer_release_to_select_store(struct device *dev,
>  		const char *buf,
>  		size_t count)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  	int value;
>  
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	if (kstrtoint(buf, 10, &value))
>  		return -EINVAL;
>  	if (value < 0 || value > 1)
> @@ -203,14 +166,8 @@ static ssize_t pointer_select_right_show(struct device *dev,
>  		struct device_attribute *attr,
>  		char *buf)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> -
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  
>  	return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->select_right);
>  }
> @@ -220,16 +177,10 @@ static ssize_t pointer_select_right_store(struct device *dev,
>  		const char *buf,
>  		size_t count)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  	int value;
>  
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	if (kstrtoint(buf, 10, &value))
>  		return -EINVAL;
>  	if (value < 0 || value > 1)
> @@ -245,14 +196,8 @@ static ssize_t pointer_sensitivity_show(struct device *dev,
>  		struct device_attribute *attr,
>  		char *buf)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> -
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  
>  	return snprintf(buf, PAGE_SIZE, "%u\n",
>  		data_pointer->sensitivity);
> @@ -263,16 +208,10 @@ static ssize_t pointer_sensitivity_store(struct device *dev,
>  		const char *buf,
>  		size_t count)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  	int value;
>  
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	if (kstrtoint(buf, 10, &value) || value < 1 || value > 255)
>  		return -EINVAL;
>  
> @@ -286,14 +225,10 @@ static ssize_t pointer_press_speed_show(struct device *dev,
>  		struct device_attribute *attr,
>  		char *buf)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> +	data_pointer = hid_get_drvdata(hdev);
>  
>  	return snprintf(buf, PAGE_SIZE, "%u\n",
>  		data_pointer->press_speed);
> @@ -304,16 +239,10 @@ static ssize_t pointer_press_speed_store(struct device *dev,
>  		const char *buf,
>  		size_t count)
>  {
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  	int value;
>  
> -	hdev = container_of(dev, struct hid_device, dev);
> -	if (hdev == NULL)
> -		return -ENODEV;
> -
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	if (kstrtoint(buf, 10, &value) || value < 1 || value > 255)
>  		return -EINVAL;
>  
> @@ -370,15 +299,11 @@ static const struct attribute_group tpkbd_attr_group_pointer = {
>  static enum led_brightness tpkbd_led_brightness_get(
>  			struct led_classdev *led_cdev)
>  {
> -	struct device *dev;
> -	struct hid_device *hdev;
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct device *dev = led_cdev->dev->parent;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  	int led_nr = 0;
>  
> -	dev = led_cdev->dev->parent;
> -	hdev = container_of(dev, struct hid_device, dev);
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	if (led_cdev == &data_pointer->led_micmute)
>  		led_nr = 1;
>  
> @@ -390,16 +315,12 @@ static enum led_brightness tpkbd_led_brightness_get(
>  static void tpkbd_led_brightness_set(struct led_classdev *led_cdev,
>  			enum led_brightness value)
>  {
> -	struct device *dev;
> -	struct hid_device *hdev;
> +	struct device *dev = led_cdev->dev->parent;
> +	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  	struct hid_report *report;
> -	struct tpkbd_data_pointer *data_pointer;
>  	int led_nr = 0;
>  
> -	dev = led_cdev->dev->parent;
> -	hdev = container_of(dev, struct hid_device, dev);
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	if (led_cdev == &data_pointer->led_micmute)
>  		led_nr = 1;
>  
> @@ -508,13 +429,11 @@ err_free:
>  
>  static void tpkbd_remove_tp(struct hid_device *hdev)
>  {
> -	struct tpkbd_data_pointer *data_pointer;
> +	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
>  
>  	sysfs_remove_group(&hdev->dev.kobj,
>  			&tpkbd_attr_group_pointer);
>  
> -	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
> -
>  	led_classdev_unregister(&data_pointer->led_micmute);
>  	led_classdev_unregister(&data_pointer->led_mute);
>  
> -- 
> 1.7.9.5
> 
> 
>
diff mbox

Patch

diff --git a/drivers/hid/hid-lenovo-tpkbd.c b/drivers/hid/hid-lenovo-tpkbd.c
index 60c4e1e..cea016e 100644
--- a/drivers/hid/hid-lenovo-tpkbd.c
+++ b/drivers/hid/hid-lenovo-tpkbd.c
@@ -56,9 +56,8 @@  static int tpkbd_input_mapping(struct hid_device *hdev,
 static int tpkbd_features_set(struct hid_device *hdev)
 {
 	struct hid_report *report;
-	struct tpkbd_data_pointer *data_pointer;
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
 	report = hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[4];
 
 	report->field[0]->value[0]  = data_pointer->press_to_select   ? 0x01 : 0x02;
@@ -77,14 +76,8 @@  static ssize_t pointer_press_to_select_show(struct device *dev,
 		struct device_attribute *attr,
 		char *buf)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
-
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 
 	return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->press_to_select);
 }
@@ -94,16 +87,10 @@  static ssize_t pointer_press_to_select_store(struct device *dev,
 		const char *buf,
 		size_t count)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 	int value;
 
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	if (kstrtoint(buf, 10, &value))
 		return -EINVAL;
 	if (value < 0 || value > 1)
@@ -119,14 +106,8 @@  static ssize_t pointer_dragging_show(struct device *dev,
 		struct device_attribute *attr,
 		char *buf)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
-
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 
 	return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->dragging);
 }
@@ -136,16 +117,10 @@  static ssize_t pointer_dragging_store(struct device *dev,
 		const char *buf,
 		size_t count)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 	int value;
 
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	if (kstrtoint(buf, 10, &value))
 		return -EINVAL;
 	if (value < 0 || value > 1)
@@ -161,14 +136,8 @@  static ssize_t pointer_release_to_select_show(struct device *dev,
 		struct device_attribute *attr,
 		char *buf)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
-
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 
 	return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->release_to_select);
 }
@@ -178,16 +147,10 @@  static ssize_t pointer_release_to_select_store(struct device *dev,
 		const char *buf,
 		size_t count)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 	int value;
 
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	if (kstrtoint(buf, 10, &value))
 		return -EINVAL;
 	if (value < 0 || value > 1)
@@ -203,14 +166,8 @@  static ssize_t pointer_select_right_show(struct device *dev,
 		struct device_attribute *attr,
 		char *buf)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
-
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 
 	return snprintf(buf, PAGE_SIZE, "%u\n", data_pointer->select_right);
 }
@@ -220,16 +177,10 @@  static ssize_t pointer_select_right_store(struct device *dev,
 		const char *buf,
 		size_t count)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 	int value;
 
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	if (kstrtoint(buf, 10, &value))
 		return -EINVAL;
 	if (value < 0 || value > 1)
@@ -245,14 +196,8 @@  static ssize_t pointer_sensitivity_show(struct device *dev,
 		struct device_attribute *attr,
 		char *buf)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
-
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 
 	return snprintf(buf, PAGE_SIZE, "%u\n",
 		data_pointer->sensitivity);
@@ -263,16 +208,10 @@  static ssize_t pointer_sensitivity_store(struct device *dev,
 		const char *buf,
 		size_t count)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 	int value;
 
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	if (kstrtoint(buf, 10, &value) || value < 1 || value > 255)
 		return -EINVAL;
 
@@ -286,14 +225,10 @@  static ssize_t pointer_press_speed_show(struct device *dev,
 		struct device_attribute *attr,
 		char *buf)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
+	data_pointer = hid_get_drvdata(hdev);
 
 	return snprintf(buf, PAGE_SIZE, "%u\n",
 		data_pointer->press_speed);
@@ -304,16 +239,10 @@  static ssize_t pointer_press_speed_store(struct device *dev,
 		const char *buf,
 		size_t count)
 {
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 	int value;
 
-	hdev = container_of(dev, struct hid_device, dev);
-	if (hdev == NULL)
-		return -ENODEV;
-
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	if (kstrtoint(buf, 10, &value) || value < 1 || value > 255)
 		return -EINVAL;
 
@@ -370,15 +299,11 @@  static const struct attribute_group tpkbd_attr_group_pointer = {
 static enum led_brightness tpkbd_led_brightness_get(
 			struct led_classdev *led_cdev)
 {
-	struct device *dev;
-	struct hid_device *hdev;
-	struct tpkbd_data_pointer *data_pointer;
+	struct device *dev = led_cdev->dev->parent;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 	int led_nr = 0;
 
-	dev = led_cdev->dev->parent;
-	hdev = container_of(dev, struct hid_device, dev);
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	if (led_cdev == &data_pointer->led_micmute)
 		led_nr = 1;
 
@@ -390,16 +315,12 @@  static enum led_brightness tpkbd_led_brightness_get(
 static void tpkbd_led_brightness_set(struct led_classdev *led_cdev,
 			enum led_brightness value)
 {
-	struct device *dev;
-	struct hid_device *hdev;
+	struct device *dev = led_cdev->dev->parent;
+	struct hid_device *hdev = container_of(dev, struct hid_device, dev);
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 	struct hid_report *report;
-	struct tpkbd_data_pointer *data_pointer;
 	int led_nr = 0;
 
-	dev = led_cdev->dev->parent;
-	hdev = container_of(dev, struct hid_device, dev);
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	if (led_cdev == &data_pointer->led_micmute)
 		led_nr = 1;
 
@@ -508,13 +429,11 @@  err_free:
 
 static void tpkbd_remove_tp(struct hid_device *hdev)
 {
-	struct tpkbd_data_pointer *data_pointer;
+	struct tpkbd_data_pointer *data_pointer = hid_get_drvdata(hdev);
 
 	sysfs_remove_group(&hdev->dev.kobj,
 			&tpkbd_attr_group_pointer);
 
-	data_pointer = (struct tpkbd_data_pointer *) hid_get_drvdata(hdev);
-
 	led_classdev_unregister(&data_pointer->led_micmute);
 	led_classdev_unregister(&data_pointer->led_mute);