mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
Merge branch 'for-6.10/amd-sfh' into for-linus
- PM fix and assorted other code cleanups for amd-sfh (Basavaraj Natikar)
This commit is contained in:
commit
6d6d81ab28
@ -333,14 +333,11 @@ static const struct dmi_system_id dmi_nodevs[] = {
|
||||
static void sfh1_1_init_work(struct work_struct *work)
|
||||
{
|
||||
struct amd_mp2_dev *mp2 = container_of(work, struct amd_mp2_dev, work);
|
||||
struct pci_dev *pdev = mp2->pdev;
|
||||
int rc;
|
||||
|
||||
rc = mp2->sfh1_1_ops->init(mp2);
|
||||
if (rc) {
|
||||
dev_err(&pdev->dev, "sfh1_1_init failed err %d\n", rc);
|
||||
if (rc)
|
||||
return;
|
||||
}
|
||||
|
||||
amd_sfh_clear_intr(mp2);
|
||||
mp2->init_done = 1;
|
||||
|
@ -202,7 +202,7 @@ static int amd_sfh1_1_hid_client_init(struct amd_mp2_dev *privdata)
|
||||
}
|
||||
|
||||
if (!cl_data->is_any_sensor_enabled) {
|
||||
dev_warn(dev, "Failed to discover, sensors not enabled is %d\n",
|
||||
dev_warn(dev, "No sensor registered, sensors not enabled is %d\n",
|
||||
cl_data->is_any_sensor_enabled);
|
||||
rc = -EOPNOTSUPP;
|
||||
goto cleanup;
|
||||
@ -227,6 +227,11 @@ static void amd_sfh_resume(struct amd_mp2_dev *mp2)
|
||||
struct amd_mp2_sensor_info info;
|
||||
int i, status;
|
||||
|
||||
if (!cl_data->is_any_sensor_enabled) {
|
||||
amd_sfh_clear_intr(mp2);
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < cl_data->num_hid_devices; i++) {
|
||||
if (cl_data->sensor_sts[i] == SENSOR_DISABLED) {
|
||||
info.sensor_idx = cl_data->sensor_idx[i];
|
||||
@ -252,6 +257,11 @@ static void amd_sfh_suspend(struct amd_mp2_dev *mp2)
|
||||
struct amdtp_cl_data *cl_data = mp2->cl_data;
|
||||
int i, status;
|
||||
|
||||
if (!cl_data->is_any_sensor_enabled) {
|
||||
amd_sfh_clear_intr(mp2);
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i < cl_data->num_hid_devices; i++) {
|
||||
if (cl_data->sensor_idx[i] != HPD_IDX &&
|
||||
cl_data->sensor_sts[i] == SENSOR_ENABLED) {
|
||||
@ -320,7 +330,7 @@ int amd_sfh1_1_init(struct amd_mp2_dev *mp2)
|
||||
|
||||
memcpy_fromio(&binfo, mp2->vsbase, sizeof(struct sfh_base_info));
|
||||
if (binfo.sbase.fw_info.fw_ver == 0 || binfo.sbase.s_list.sl.sensors == 0) {
|
||||
dev_dbg(dev, "failed to get sensors\n");
|
||||
dev_dbg(dev, "No sensor registered\n");
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
dev_dbg(dev, "firmware version 0x%x\n", binfo.sbase.fw_info.fw_ver);
|
||||
@ -337,7 +347,8 @@ int amd_sfh1_1_init(struct amd_mp2_dev *mp2)
|
||||
rc = amd_sfh1_1_hid_client_init(mp2);
|
||||
if (rc) {
|
||||
sfh_deinit_emp2();
|
||||
dev_err(dev, "amd_sfh1_1_hid_client_init failed\n");
|
||||
if ((rc != -ENODEV) && (rc != -EOPNOTSUPP))
|
||||
dev_err(dev, "amd_sfh1_1_hid_client_init failed\n");
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -97,7 +97,7 @@ static int amd_sfh_hpd_info(u8 *user_present)
|
||||
if (!emp2 || !emp2->dev_en.is_hpd_present)
|
||||
return -ENODEV;
|
||||
|
||||
hpdstatus.val = readl(emp2->mmio + AMD_C2P_MSG(4));
|
||||
hpdstatus.val = readl(emp2->mmio + amd_get_c2p_val(emp2, 4));
|
||||
*user_present = hpdstatus.shpd.presence;
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user