@@ -292,18 +292,8 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
292
292
cl_data -> is_any_sensor_enabled = true;
293
293
cl_data -> sensor_sts [i ] = SENSOR_ENABLED ;
294
294
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 )
305
296
goto cleanup ;
306
- }
307
297
} else {
308
298
cl_data -> sensor_sts [i ] = SENSOR_DISABLED ;
309
299
}
@@ -313,25 +303,16 @@ int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
313
303
}
314
304
if (!cl_data -> is_any_sensor_enabled ||
315
305
(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
- }
322
306
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 ;
324
309
}
325
310
schedule_delayed_work (& cl_data -> work_buffer , msecs_to_jiffies (AMD_SFH_IDLE_LOOP ));
326
311
return 0 ;
327
312
328
313
cleanup :
314
+ amd_sfh_hid_client_deinit (privdata );
329
315
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
- }
335
316
devm_kfree (dev , cl_data -> feature_report [i ]);
336
317
devm_kfree (dev , in_data -> input_report [i ]);
337
318
devm_kfree (dev , cl_data -> report_descr [i ]);
0 commit comments