@@ -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
328313cleanup :
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