cl_data->num_hid_devices = amd_sfh_get_sensor_num(privdata, &cl_data->sensor_idx[0]);
        if (cl_data->num_hid_devices == 0)
                return -ENODEV;
+       cl_data->is_any_sensor_enabled = false;
 
        INIT_DELAYED_WORK(&cl_data->work, amd_sfh_work);
        INIT_DELAYED_WORK(&cl_data->work_buffer, amd_sfh_work_buffer);
                status = (status == 0) ? SENSOR_ENABLED : SENSOR_DISABLED;
 
                if (status == SENSOR_ENABLED) {
+                       cl_data->is_any_sensor_enabled = true;
                        cl_data->sensor_sts[i] = SENSOR_ENABLED;
                        rc = amdtp_hid_probe(i, cl_data);
                        if (rc) {
                                        cl_data->sensor_sts[i]);
                                goto cleanup;
                        }
+               } else {
+                       cl_data->sensor_sts[i] = SENSOR_DISABLED;
                }
                dev_dbg(dev, "sid 0x%x (%s) status 0x%x\n",
                        cl_data->sensor_idx[i], get_sensor_name(cl_data->sensor_idx[i]),
                        cl_data->sensor_sts[i]);
        }
 
+       if (!cl_data->is_any_sensor_enabled) {
+               dev_warn(dev, "Failed to discover, sensors not enabled is %d\n",
+                        cl_data->is_any_sensor_enabled);
+               rc = -EOPNOTSUPP;
+               goto cleanup;
+       }
+
        schedule_delayed_work(&cl_data->work_buffer, msecs_to_jiffies(AMD_SFH_IDLE_LOOP));
        return 0;