diff options
Diffstat (limited to 'drivers/platform/x86/amd')
| -rw-r--r-- | drivers/platform/x86/amd/pmc/pmc.c | 2 | ||||
| -rw-r--r-- | drivers/platform/x86/amd/pmc/pmc.h | 1 | ||||
| -rw-r--r-- | drivers/platform/x86/amd/pmf/core.c | 3 | ||||
| -rw-r--r-- | drivers/platform/x86/amd/pmf/pmf-quirks.c | 9 | ||||
| -rw-r--r-- | drivers/platform/x86/amd/pmf/spc.c | 32 | 
5 files changed, 25 insertions, 22 deletions
| diff --git a/drivers/platform/x86/amd/pmc/pmc.c b/drivers/platform/x86/amd/pmc/pmc.c index a3d881f6e5d9..c3e51f0a5c33 100644 --- a/drivers/platform/x86/amd/pmc/pmc.c +++ b/drivers/platform/x86/amd/pmc/pmc.c @@ -764,6 +764,7 @@ static int amd_pmc_get_os_hint(struct amd_pmc_dev *dev)  	case AMD_CPU_ID_CB:  	case AMD_CPU_ID_PS:  	case PCI_DEVICE_ID_AMD_1AH_M20H_ROOT: +	case PCI_DEVICE_ID_AMD_1AH_M60H_ROOT:  		return MSG_OS_HINT_RN;  	}  	return -EINVAL; @@ -967,6 +968,7 @@ static const struct pci_device_id pmc_pci_ids[] = {  	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_RV) },  	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_SP) },  	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M20H_ROOT) }, +	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M60H_ROOT) },  	{ }  }; diff --git a/drivers/platform/x86/amd/pmc/pmc.h b/drivers/platform/x86/amd/pmc/pmc.h index 9e32d3128c3a..f1166d15c856 100644 --- a/drivers/platform/x86/amd/pmc/pmc.h +++ b/drivers/platform/x86/amd/pmc/pmc.h @@ -67,6 +67,7 @@ void amd_mp2_stb_deinit(struct amd_pmc_dev *dev);  #define AMD_CPU_ID_PS			0x14E8  #define AMD_CPU_ID_SP			0x14A4  #define PCI_DEVICE_ID_AMD_1AH_M20H_ROOT 0x1507 +#define PCI_DEVICE_ID_AMD_1AH_M60H_ROOT 0x1122  #define PCI_DEVICE_ID_AMD_MP2_STB	0x172c  #endif /* PMC_H */ diff --git a/drivers/platform/x86/amd/pmf/core.c b/drivers/platform/x86/amd/pmf/core.c index 2d6e2558863c..8f1f719befa3 100644 --- a/drivers/platform/x86/amd/pmf/core.c +++ b/drivers/platform/x86/amd/pmf/core.c @@ -41,6 +41,7 @@  #define AMD_CPU_ID_RMB			0x14b5  #define AMD_CPU_ID_PS			0x14e8  #define PCI_DEVICE_ID_AMD_1AH_M20H_ROOT	0x1507 +#define PCI_DEVICE_ID_AMD_1AH_M60H_ROOT	0x1122  #define PMF_MSG_DELAY_MIN_US		50  #define RESPONSE_REGISTER_LOOP_MAX	20000 @@ -249,6 +250,7 @@ static const struct pci_device_id pmf_pci_ids[] = {  	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_RMB) },  	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_PS) },  	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M20H_ROOT) }, +	{ PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M60H_ROOT) },  	{ }  }; @@ -382,6 +384,7 @@ static const struct acpi_device_id amd_pmf_acpi_ids[] = {  	{"AMDI0102", 0},  	{"AMDI0103", 0},  	{"AMDI0105", 0}, +	{"AMDI0107", 0},  	{ }  };  MODULE_DEVICE_TABLE(acpi, amd_pmf_acpi_ids); diff --git a/drivers/platform/x86/amd/pmf/pmf-quirks.c b/drivers/platform/x86/amd/pmf/pmf-quirks.c index 0b2eb0ae85fe..460444cda1b2 100644 --- a/drivers/platform/x86/amd/pmf/pmf-quirks.c +++ b/drivers/platform/x86/amd/pmf/pmf-quirks.c @@ -29,6 +29,14 @@ static const struct dmi_system_id fwbug_list[] = {  		},  		.driver_data = &quirk_no_sps_bug,  	}, +	{ +		.ident = "ROG Ally X", +		.matches = { +			DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), +			DMI_MATCH(DMI_PRODUCT_NAME, "RC72LA"), +		}, +		.driver_data = &quirk_no_sps_bug, +	},  	{}  }; @@ -48,4 +56,3 @@ void amd_pmf_quirks_init(struct amd_pmf_dev *dev)  			dmi_id->ident);  	}  } - diff --git a/drivers/platform/x86/amd/pmf/spc.c b/drivers/platform/x86/amd/pmf/spc.c index a3dec14c3004..3c153fb1425e 100644 --- a/drivers/platform/x86/amd/pmf/spc.c +++ b/drivers/platform/x86/amd/pmf/spc.c @@ -150,36 +150,26 @@ static int amd_pmf_get_slider_info(struct amd_pmf_dev *dev, struct ta_pmf_enact_  	return 0;  } -static int amd_pmf_get_sensor_info(struct amd_pmf_dev *dev, struct ta_pmf_enact_table *in) +static void amd_pmf_get_sensor_info(struct amd_pmf_dev *dev, struct ta_pmf_enact_table *in)  {  	struct amd_sfh_info sfh_info; -	int ret; + +	/* Get the latest information from SFH */ +	in->ev_info.user_present = false;  	/* Get ALS data */ -	ret = amd_get_sfh_info(&sfh_info, MT_ALS); -	if (!ret) +	if (!amd_get_sfh_info(&sfh_info, MT_ALS))  		in->ev_info.ambient_light = sfh_info.ambient_light;  	else -		return ret; +		dev_dbg(dev->dev, "ALS is not enabled/detected\n");  	/* get HPD data */ -	ret = amd_get_sfh_info(&sfh_info, MT_HPD); -	if (ret) -		return ret; - -	switch (sfh_info.user_present) { -	case SFH_NOT_DETECTED: -		in->ev_info.user_present = 0xff; /* assume no sensors connected */ -		break; -	case SFH_USER_PRESENT: -		in->ev_info.user_present = 1; -		break; -	case SFH_USER_AWAY: -		in->ev_info.user_present = 0; -		break; +	if (!amd_get_sfh_info(&sfh_info, MT_HPD)) { +		if (sfh_info.user_present == SFH_USER_PRESENT) +			in->ev_info.user_present = true; +	} else { +		dev_dbg(dev->dev, "HPD is not enabled/detected\n");  	} - -	return 0;  }  void amd_pmf_populate_ta_inputs(struct amd_pmf_dev *dev, struct ta_pmf_enact_table *in) |