|
@@ -353,11 +353,7 @@ static int wacom_probe(struct hid_device *hdev,
|
|
|
if (ret) {
|
|
|
hid_warn(hdev, "can't create sysfs battery attribute, err: %d\n",
|
|
|
ret);
|
|
|
- /*
|
|
|
- * battery attribute is not critical for the tablet, but if it
|
|
|
- * failed then there is no need to create ac attribute
|
|
|
- */
|
|
|
- goto move_on;
|
|
|
+ goto err_battery;
|
|
|
}
|
|
|
|
|
|
wdata->ac.properties = wacom_ac_props;
|
|
@@ -371,14 +367,8 @@ static int wacom_probe(struct hid_device *hdev,
|
|
|
if (ret) {
|
|
|
hid_warn(hdev,
|
|
|
"can't create ac battery attribute, err: %d\n", ret);
|
|
|
- /*
|
|
|
- * ac attribute is not critical for the tablet, but if it
|
|
|
- * failed then we don't want to battery attribute to exist
|
|
|
- */
|
|
|
- power_supply_unregister(&wdata->battery);
|
|
|
+ goto err_ac;
|
|
|
}
|
|
|
-
|
|
|
-move_on:
|
|
|
#endif
|
|
|
hidinput = list_entry(hdev->inputs.next, struct hid_input, list);
|
|
|
input = hidinput->input;
|
|
@@ -416,6 +406,13 @@ move_on:
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
+#ifdef CONFIG_HID_WACOM_POWER_SUPPLY
|
|
|
+err_ac:
|
|
|
+ power_supply_unregister(&wdata->battery);
|
|
|
+err_battery:
|
|
|
+ device_remove_file(&hdev->dev, &dev_attr_speed);
|
|
|
+ hid_hw_stop(hdev);
|
|
|
+#endif
|
|
|
err_free:
|
|
|
kfree(wdata);
|
|
|
return ret;
|