Skip to content

Commit e295709

Browse files
basuamdJiri Kosina
authored andcommitted
HID: amd_sfh: Remove duplicate cleanup
A number of duplicate cleanups are performed that are not necessary. As a result, remove duplicate cleanups and use common cleanup. Signed-off-by: Basavaraj Natikar <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
1 parent 6d24274 commit e295709

File tree

1 file changed

+4
-23
lines changed

1 file changed

+4
-23
lines changed

drivers/hid/amd-sfh-hid/amd_sfh_client.c

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -292,18 +292,8 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
292292
cl_data->is_any_sensor_enabled = true;
293293
cl_data->sensor_sts[i] = SENSOR_ENABLED;
294294
rc = amdtp_hid_probe(cl_data->cur_hid_dev, cl_data);
295-
if (rc) {
296-
mp2_ops->stop(privdata, cl_data->sensor_idx[i]);
297-
status = amd_sfh_wait_for_response
298-
(privdata, cl_data->sensor_idx[i], SENSOR_DISABLED);
299-
if (status != SENSOR_ENABLED)
300-
cl_data->sensor_sts[i] = SENSOR_DISABLED;
301-
dev_dbg(dev, "sid 0x%x (%s) status 0x%x\n",
302-
cl_data->sensor_idx[i],
303-
get_sensor_name(cl_data->sensor_idx[i]),
304-
cl_data->sensor_sts[i]);
295+
if (rc)
305296
goto cleanup;
306-
}
307297
} else {
308298
cl_data->sensor_sts[i] = SENSOR_DISABLED;
309299
}
@@ -313,25 +303,16 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
313303
}
314304
if (!cl_data->is_any_sensor_enabled ||
315305
(mp2_ops->discovery_status && mp2_ops->discovery_status(privdata) == 0)) {
316-
amd_sfh_hid_client_deinit(privdata);
317-
for (i = 0; i < cl_data->num_hid_devices; i++) {
318-
devm_kfree(dev, cl_data->feature_report[i]);
319-
devm_kfree(dev, in_data->input_report[i]);
320-
devm_kfree(dev, cl_data->report_descr[i]);
321-
}
322306
dev_warn(dev, "Failed to discover, sensors not enabled is %d\n", cl_data->is_any_sensor_enabled);
323-
return -EOPNOTSUPP;
307+
rc = -EOPNOTSUPP;
308+
goto cleanup;
324309
}
325310
schedule_delayed_work(&cl_data->work_buffer, msecs_to_jiffies(AMD_SFH_IDLE_LOOP));
326311
return 0;
327312

328313
cleanup:
314+
amd_sfh_hid_client_deinit(privdata);
329315
for (i = 0; i < cl_data->num_hid_devices; i++) {
330-
if (in_data->sensor_virt_addr[i]) {
331-
dma_free_coherent(&privdata->pdev->dev, 8 * sizeof(int),
332-
in_data->sensor_virt_addr[i],
333-
cl_data->sensor_dma_addr[i]);
334-
}
335316
devm_kfree(dev, cl_data->feature_report[i]);
336317
devm_kfree(dev, in_data->input_report[i]);
337318
devm_kfree(dev, cl_data->report_descr[i]);

0 commit comments

Comments
 (0)