forked from mirrors/linux
		
	ACPI: Switch to use generic guid_t in acpi_evaluate_dsm()
acpi_evaluate_dsm() and friends take a pointer to a raw buffer of 16 bytes. Instead we convert them to use guid_t type. At the same time we convert current users. acpi_str_to_uuid() becomes useless after the conversion and it's safe to get rid of it. Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Cc: Borislav Petkov <bp@suse.de> Acked-by: Dan Williams <dan.j.williams@intel.com> Cc: Amir Goldstein <amir73il@gmail.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Reviewed-by: Jani Nikula <jani.nikula@intel.com> Acked-by: Jani Nikula <jani.nikula@intel.com> Cc: Ben Skeggs <bskeggs@redhat.com> Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: Joerg Roedel <jroedel@suse.de> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Cc: Yisen Zhuang <yisen.zhuang@huawei.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com> Acked-by: Mathias Nyman <mathias.nyman@linux.intel.com> Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Acked-by: Mark Brown <broonie@kernel.org> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
		
							parent
							
								
									b7fe92999a
								
							
						
					
					
						commit
						94116f8126
					
				
					 26 changed files with 106 additions and 144 deletions
				
			
		|  | @ -190,9 +190,9 @@ static bool __init extlog_get_l1addr(void) | ||||||
| 		return false; | 		return false; | ||||||
| 	if (ACPI_FAILURE(acpi_get_handle(NULL, "\\_SB", &handle))) | 	if (ACPI_FAILURE(acpi_get_handle(NULL, "\\_SB", &handle))) | ||||||
| 		return false; | 		return false; | ||||||
| 	if (!acpi_check_dsm(handle, guid.b, EXTLOG_DSM_REV, 1 << EXTLOG_FN_ADDR)) | 	if (!acpi_check_dsm(handle, &guid, EXTLOG_DSM_REV, 1 << EXTLOG_FN_ADDR)) | ||||||
| 		return false; | 		return false; | ||||||
| 	obj = acpi_evaluate_dsm_typed(handle, guid.b, EXTLOG_DSM_REV, | 	obj = acpi_evaluate_dsm_typed(handle, &guid, EXTLOG_DSM_REV, | ||||||
| 				      EXTLOG_FN_ADDR, NULL, ACPI_TYPE_INTEGER); | 				      EXTLOG_FN_ADDR, NULL, ACPI_TYPE_INTEGER); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		return false; | 		return false; | ||||||
|  |  | ||||||
|  | @ -196,29 +196,6 @@ static void acpi_print_osc_error(acpi_handle handle, | ||||||
| 	pr_debug("\n"); | 	pr_debug("\n"); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| acpi_status acpi_str_to_uuid(char *str, u8 *uuid) |  | ||||||
| { |  | ||||||
| 	int i; |  | ||||||
| 	static int opc_map_to_uuid[16] = {6, 4, 2, 0, 11, 9, 16, 14, 19, 21, |  | ||||||
| 		24, 26, 28, 30, 32, 34}; |  | ||||||
| 
 |  | ||||||
| 	if (strlen(str) != 36) |  | ||||||
| 		return AE_BAD_PARAMETER; |  | ||||||
| 	for (i = 0; i < 36; i++) { |  | ||||||
| 		if (i == 8 || i == 13 || i == 18 || i == 23) { |  | ||||||
| 			if (str[i] != '-') |  | ||||||
| 				return AE_BAD_PARAMETER; |  | ||||||
| 		} else if (!isxdigit(str[i])) |  | ||||||
| 			return AE_BAD_PARAMETER; |  | ||||||
| 	} |  | ||||||
| 	for (i = 0; i < 16; i++) { |  | ||||||
| 		uuid[i] = hex_to_bin(str[opc_map_to_uuid[i]]) << 4; |  | ||||||
| 		uuid[i] |= hex_to_bin(str[opc_map_to_uuid[i] + 1]); |  | ||||||
| 	} |  | ||||||
| 	return AE_OK; |  | ||||||
| } |  | ||||||
| EXPORT_SYMBOL_GPL(acpi_str_to_uuid); |  | ||||||
| 
 |  | ||||||
| acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context) | acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context) | ||||||
| { | { | ||||||
| 	acpi_status status; | 	acpi_status status; | ||||||
|  |  | ||||||
|  | @ -289,7 +289,7 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm, | ||||||
| 			in_buf.buffer.pointer, | 			in_buf.buffer.pointer, | ||||||
| 			min_t(u32, 256, in_buf.buffer.length), true); | 			min_t(u32, 256, in_buf.buffer.length), true); | ||||||
| 
 | 
 | ||||||
| 	out_obj = acpi_evaluate_dsm(handle, guid.b, 1, func, &in_obj); | 	out_obj = acpi_evaluate_dsm(handle, guid, 1, func, &in_obj); | ||||||
| 	if (!out_obj) { | 	if (!out_obj) { | ||||||
| 		dev_dbg(dev, "%s:%s _DSM failed cmd: %s\n", __func__, dimm_name, | 		dev_dbg(dev, "%s:%s _DSM failed cmd: %s\n", __func__, dimm_name, | ||||||
| 				cmd_name); | 				cmd_name); | ||||||
|  | @ -1476,7 +1476,7 @@ static int acpi_nfit_add_dimm(struct acpi_nfit_desc *acpi_desc, | ||||||
| 
 | 
 | ||||||
| 	guid = to_nfit_uuid(nfit_mem->family); | 	guid = to_nfit_uuid(nfit_mem->family); | ||||||
| 	for_each_set_bit(i, &dsm_mask, BITS_PER_LONG) | 	for_each_set_bit(i, &dsm_mask, BITS_PER_LONG) | ||||||
| 		if (acpi_check_dsm(adev_dimm->handle, guid.b, 1, 1ULL << i)) | 		if (acpi_check_dsm(adev_dimm->handle, guid, 1, 1ULL << i)) | ||||||
| 			set_bit(i, &nfit_mem->dsm_mask); | 			set_bit(i, &nfit_mem->dsm_mask); | ||||||
| 
 | 
 | ||||||
| 	return 0; | 	return 0; | ||||||
|  | @ -1621,7 +1621,7 @@ static void acpi_nfit_init_dsms(struct acpi_nfit_desc *acpi_desc) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	for (i = ND_CMD_ARS_CAP; i <= ND_CMD_CLEAR_ERROR; i++) | 	for (i = ND_CMD_ARS_CAP; i <= ND_CMD_CLEAR_ERROR; i++) | ||||||
| 		if (acpi_check_dsm(adev->handle, guid.b, 1, 1ULL << i)) | 		if (acpi_check_dsm(adev->handle, guid, 1, 1ULL << i)) | ||||||
| 			set_bit(i, &nd_desc->cmd_mask); | 			set_bit(i, &nd_desc->cmd_mask); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -613,19 +613,19 @@ acpi_status acpi_evaluate_lck(acpi_handle handle, int lock) | ||||||
| /**
 | /**
 | ||||||
|  * acpi_evaluate_dsm - evaluate device's _DSM method |  * acpi_evaluate_dsm - evaluate device's _DSM method | ||||||
|  * @handle: ACPI device handle |  * @handle: ACPI device handle | ||||||
|  * @uuid: UUID of requested functions, should be 16 bytes |  * @guid: GUID of requested functions, should be 16 bytes | ||||||
|  * @rev: revision number of requested function |  * @rev: revision number of requested function | ||||||
|  * @func: requested function number |  * @func: requested function number | ||||||
|  * @argv4: the function specific parameter |  * @argv4: the function specific parameter | ||||||
|  * |  * | ||||||
|  * Evaluate device's _DSM method with specified UUID, revision id and |  * Evaluate device's _DSM method with specified GUID, revision id and | ||||||
|  * function number. Caller needs to free the returned object. |  * function number. Caller needs to free the returned object. | ||||||
|  * |  * | ||||||
|  * Though ACPI defines the fourth parameter for _DSM should be a package, |  * Though ACPI defines the fourth parameter for _DSM should be a package, | ||||||
|  * some old BIOSes do expect a buffer or an integer etc. |  * some old BIOSes do expect a buffer or an integer etc. | ||||||
|  */ |  */ | ||||||
| union acpi_object * | union acpi_object * | ||||||
| acpi_evaluate_dsm(acpi_handle handle, const u8 *uuid, u64 rev, u64 func, | acpi_evaluate_dsm(acpi_handle handle, const guid_t *guid, u64 rev, u64 func, | ||||||
| 		  union acpi_object *argv4) | 		  union acpi_object *argv4) | ||||||
| { | { | ||||||
| 	acpi_status ret; | 	acpi_status ret; | ||||||
|  | @ -638,7 +638,7 @@ acpi_evaluate_dsm(acpi_handle handle, const u8 *uuid, u64 rev, u64 func, | ||||||
| 
 | 
 | ||||||
| 	params[0].type = ACPI_TYPE_BUFFER; | 	params[0].type = ACPI_TYPE_BUFFER; | ||||||
| 	params[0].buffer.length = 16; | 	params[0].buffer.length = 16; | ||||||
| 	params[0].buffer.pointer = (char *)uuid; | 	params[0].buffer.pointer = (u8 *)guid; | ||||||
| 	params[1].type = ACPI_TYPE_INTEGER; | 	params[1].type = ACPI_TYPE_INTEGER; | ||||||
| 	params[1].integer.value = rev; | 	params[1].integer.value = rev; | ||||||
| 	params[2].type = ACPI_TYPE_INTEGER; | 	params[2].type = ACPI_TYPE_INTEGER; | ||||||
|  | @ -666,7 +666,7 @@ EXPORT_SYMBOL(acpi_evaluate_dsm); | ||||||
| /**
 | /**
 | ||||||
|  * acpi_check_dsm - check if _DSM method supports requested functions. |  * acpi_check_dsm - check if _DSM method supports requested functions. | ||||||
|  * @handle: ACPI device handle |  * @handle: ACPI device handle | ||||||
|  * @uuid: UUID of requested functions, should be 16 bytes at least |  * @guid: GUID of requested functions, should be 16 bytes at least | ||||||
|  * @rev: revision number of requested functions |  * @rev: revision number of requested functions | ||||||
|  * @funcs: bitmap of requested functions |  * @funcs: bitmap of requested functions | ||||||
|  * |  * | ||||||
|  | @ -674,7 +674,7 @@ EXPORT_SYMBOL(acpi_evaluate_dsm); | ||||||
|  * functions. Currently only support 64 functions at maximum, should be |  * functions. Currently only support 64 functions at maximum, should be | ||||||
|  * enough for now. |  * enough for now. | ||||||
|  */ |  */ | ||||||
| bool acpi_check_dsm(acpi_handle handle, const u8 *uuid, u64 rev, u64 funcs) | bool acpi_check_dsm(acpi_handle handle, const guid_t *guid, u64 rev, u64 funcs) | ||||||
| { | { | ||||||
| 	int i; | 	int i; | ||||||
| 	u64 mask = 0; | 	u64 mask = 0; | ||||||
|  | @ -683,7 +683,7 @@ bool acpi_check_dsm(acpi_handle handle, const u8 *uuid, u64 rev, u64 funcs) | ||||||
| 	if (funcs == 0) | 	if (funcs == 0) | ||||||
| 		return false; | 		return false; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(handle, uuid, rev, 0, NULL); | 	obj = acpi_evaluate_dsm(handle, guid, rev, 0, NULL); | ||||||
| 	if (!obj) | 	if (!obj) | ||||||
| 		return false; | 		return false; | ||||||
| 
 | 
 | ||||||
|  | @ -697,7 +697,7 @@ bool acpi_check_dsm(acpi_handle handle, const u8 *uuid, u64 rev, u64 funcs) | ||||||
| 
 | 
 | ||||||
| 	/*
 | 	/*
 | ||||||
| 	 * Bit 0 indicates whether there's support for any functions other than | 	 * Bit 0 indicates whether there's support for any functions other than | ||||||
| 	 * function 0 for the specified UUID and revision. | 	 * function 0 for the specified GUID and revision. | ||||||
| 	 */ | 	 */ | ||||||
| 	if ((mask & 0x1) && (mask & funcs) == funcs) | 	if ((mask & 0x1) && (mask & funcs) == funcs) | ||||||
| 		return true; | 		return true; | ||||||
|  |  | ||||||
|  | @ -27,10 +27,9 @@ | ||||||
| 
 | 
 | ||||||
| #define ACPI_SIG_TPM2 "TPM2" | #define ACPI_SIG_TPM2 "TPM2" | ||||||
| 
 | 
 | ||||||
| static const u8 CRB_ACPI_START_UUID[] = { | static const guid_t crb_acpi_start_guid = | ||||||
| 	/* 0000 */ 0xAB, 0x6C, 0xBF, 0x6B, 0x63, 0x54, 0x14, 0x47, | 	GUID_INIT(0x6BBF6CAB, 0x5463, 0x4714, | ||||||
| 	/* 0008 */ 0xB7, 0xCD, 0xF0, 0x20, 0x3C, 0x03, 0x68, 0xD4 | 		  0xB7, 0xCD, 0xF0, 0x20, 0x3C, 0x03, 0x68, 0xD4); | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| enum crb_defaults { | enum crb_defaults { | ||||||
| 	CRB_ACPI_START_REVISION_ID = 1, | 	CRB_ACPI_START_REVISION_ID = 1, | ||||||
|  | @ -266,7 +265,7 @@ static int crb_do_acpi_start(struct tpm_chip *chip) | ||||||
| 	int rc; | 	int rc; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(chip->acpi_dev_handle, | 	obj = acpi_evaluate_dsm(chip->acpi_dev_handle, | ||||||
| 				CRB_ACPI_START_UUID, | 				&crb_acpi_start_guid, | ||||||
| 				CRB_ACPI_START_REVISION_ID, | 				CRB_ACPI_START_REVISION_ID, | ||||||
| 				CRB_ACPI_START_INDEX, | 				CRB_ACPI_START_INDEX, | ||||||
| 				NULL); | 				NULL); | ||||||
|  |  | ||||||
|  | @ -32,20 +32,16 @@ | ||||||
| #define PPI_VS_REQ_START	128 | #define PPI_VS_REQ_START	128 | ||||||
| #define PPI_VS_REQ_END		255 | #define PPI_VS_REQ_END		255 | ||||||
| 
 | 
 | ||||||
| static const u8 tpm_ppi_uuid[] = { | static const guid_t tpm_ppi_guid = | ||||||
| 	0xA6, 0xFA, 0xDD, 0x3D, | 	GUID_INIT(0x3DDDFAA6, 0x361B, 0x4EB4, | ||||||
| 	0x1B, 0x36, | 		  0xA4, 0x24, 0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53); | ||||||
| 	0xB4, 0x4E, |  | ||||||
| 	0xA4, 0x24, |  | ||||||
| 	0x8D, 0x10, 0x08, 0x9D, 0x16, 0x53 |  | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| static inline union acpi_object * | static inline union acpi_object * | ||||||
| tpm_eval_dsm(acpi_handle ppi_handle, int func, acpi_object_type type, | tpm_eval_dsm(acpi_handle ppi_handle, int func, acpi_object_type type, | ||||||
| 	     union acpi_object *argv4) | 	     union acpi_object *argv4) | ||||||
| { | { | ||||||
| 	BUG_ON(!ppi_handle); | 	BUG_ON(!ppi_handle); | ||||||
| 	return acpi_evaluate_dsm_typed(ppi_handle, tpm_ppi_uuid, | 	return acpi_evaluate_dsm_typed(ppi_handle, &tpm_ppi_guid, | ||||||
| 				       TPM_PPI_REVISION_ID, | 				       TPM_PPI_REVISION_ID, | ||||||
| 				       func, argv4, type); | 				       func, argv4, type); | ||||||
| } | } | ||||||
|  | @ -107,7 +103,7 @@ static ssize_t tpm_store_ppi_request(struct device *dev, | ||||||
| 	 * is updated with function index from SUBREQ to SUBREQ2 since PPI | 	 * is updated with function index from SUBREQ to SUBREQ2 since PPI | ||||||
| 	 * version 1.1 | 	 * version 1.1 | ||||||
| 	 */ | 	 */ | ||||||
| 	if (acpi_check_dsm(chip->acpi_dev_handle, tpm_ppi_uuid, | 	if (acpi_check_dsm(chip->acpi_dev_handle, &tpm_ppi_guid, | ||||||
| 			   TPM_PPI_REVISION_ID, 1 << TPM_PPI_FN_SUBREQ2)) | 			   TPM_PPI_REVISION_ID, 1 << TPM_PPI_FN_SUBREQ2)) | ||||||
| 		func = TPM_PPI_FN_SUBREQ2; | 		func = TPM_PPI_FN_SUBREQ2; | ||||||
| 
 | 
 | ||||||
|  | @ -268,7 +264,7 @@ static ssize_t show_ppi_operations(acpi_handle dev_handle, char *buf, u32 start, | ||||||
| 		"User not required", | 		"User not required", | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	if (!acpi_check_dsm(dev_handle, tpm_ppi_uuid, TPM_PPI_REVISION_ID, | 	if (!acpi_check_dsm(dev_handle, &tpm_ppi_guid, TPM_PPI_REVISION_ID, | ||||||
| 			    1 << TPM_PPI_FN_GETOPR)) | 			    1 << TPM_PPI_FN_GETOPR)) | ||||||
| 		return -EPERM; | 		return -EPERM; | ||||||
| 
 | 
 | ||||||
|  | @ -341,12 +337,12 @@ void tpm_add_ppi(struct tpm_chip *chip) | ||||||
| 	if (!chip->acpi_dev_handle) | 	if (!chip->acpi_dev_handle) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	if (!acpi_check_dsm(chip->acpi_dev_handle, tpm_ppi_uuid, | 	if (!acpi_check_dsm(chip->acpi_dev_handle, &tpm_ppi_guid, | ||||||
| 			    TPM_PPI_REVISION_ID, 1 << TPM_PPI_FN_VERSION)) | 			    TPM_PPI_REVISION_ID, 1 << TPM_PPI_FN_VERSION)) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	/* Cache PPI version string. */ | 	/* Cache PPI version string. */ | ||||||
| 	obj = acpi_evaluate_dsm_typed(chip->acpi_dev_handle, tpm_ppi_uuid, | 	obj = acpi_evaluate_dsm_typed(chip->acpi_dev_handle, &tpm_ppi_guid, | ||||||
| 				      TPM_PPI_REVISION_ID, TPM_PPI_FN_VERSION, | 				      TPM_PPI_REVISION_ID, TPM_PPI_FN_VERSION, | ||||||
| 				      NULL, ACPI_TYPE_STRING); | 				      NULL, ACPI_TYPE_STRING); | ||||||
| 	if (obj) { | 	if (obj) { | ||||||
|  |  | ||||||
|  | @ -15,13 +15,9 @@ static struct intel_dsm_priv { | ||||||
| 	acpi_handle dhandle; | 	acpi_handle dhandle; | ||||||
| } intel_dsm_priv; | } intel_dsm_priv; | ||||||
| 
 | 
 | ||||||
| static const u8 intel_dsm_guid[] = { | static const guid_t intel_dsm_guid = | ||||||
| 	0xd3, 0x73, 0xd8, 0x7e, | 	GUID_INIT(0x7ed873d3, 0xc2d0, 0x4e4f, | ||||||
| 	0xd0, 0xc2, | 		  0xa8, 0x54, 0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c); | ||||||
| 	0x4f, 0x4e, |  | ||||||
| 	0xa8, 0x54, |  | ||||||
| 	0x0f, 0x13, 0x17, 0xb0, 0x1c, 0x2c |  | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| static char *intel_dsm_port_name(u8 id) | static char *intel_dsm_port_name(u8 id) | ||||||
| { | { | ||||||
|  | @ -80,7 +76,7 @@ static void intel_dsm_platform_mux_info(void) | ||||||
| 	int i; | 	int i; | ||||||
| 	union acpi_object *pkg, *connector_count; | 	union acpi_object *pkg, *connector_count; | ||||||
| 
 | 
 | ||||||
| 	pkg = acpi_evaluate_dsm_typed(intel_dsm_priv.dhandle, intel_dsm_guid, | 	pkg = acpi_evaluate_dsm_typed(intel_dsm_priv.dhandle, &intel_dsm_guid, | ||||||
| 			INTEL_DSM_REVISION_ID, INTEL_DSM_FN_PLATFORM_MUX_INFO, | 			INTEL_DSM_REVISION_ID, INTEL_DSM_FN_PLATFORM_MUX_INFO, | ||||||
| 			NULL, ACPI_TYPE_PACKAGE); | 			NULL, ACPI_TYPE_PACKAGE); | ||||||
| 	if (!pkg) { | 	if (!pkg) { | ||||||
|  | @ -118,7 +114,7 @@ static bool intel_dsm_pci_probe(struct pci_dev *pdev) | ||||||
| 	if (!dhandle) | 	if (!dhandle) | ||||||
| 		return false; | 		return false; | ||||||
| 
 | 
 | ||||||
| 	if (!acpi_check_dsm(dhandle, intel_dsm_guid, INTEL_DSM_REVISION_ID, | 	if (!acpi_check_dsm(dhandle, &intel_dsm_guid, INTEL_DSM_REVISION_ID, | ||||||
| 			    1 << INTEL_DSM_FN_PLATFORM_MUX_INFO)) { | 			    1 << INTEL_DSM_FN_PLATFORM_MUX_INFO)) { | ||||||
| 		DRM_DEBUG_KMS("no _DSM method for intel device\n"); | 		DRM_DEBUG_KMS("no _DSM method for intel device\n"); | ||||||
| 		return false; | 		return false; | ||||||
|  |  | ||||||
|  | @ -60,15 +60,13 @@ bool nouveau_is_v1_dsm(void) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #ifdef CONFIG_VGA_SWITCHEROO | #ifdef CONFIG_VGA_SWITCHEROO | ||||||
| static const char nouveau_dsm_muid[] = { | static const guid_t nouveau_dsm_muid = | ||||||
| 	0xA0, 0xA0, 0x95, 0x9D, 0x60, 0x00, 0x48, 0x4D, | 	GUID_INIT(0x9D95A0A0, 0x0060, 0x4D48, | ||||||
| 	0xB3, 0x4D, 0x7E, 0x5F, 0xEA, 0x12, 0x9F, 0xD4, | 		  0xB3, 0x4D, 0x7E, 0x5F, 0xEA, 0x12, 0x9F, 0xD4); | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| static const char nouveau_op_dsm_muid[] = { | static const guid_t nouveau_op_dsm_muid = | ||||||
| 	0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47, | 	GUID_INIT(0xA486D8F8, 0x0BDA, 0x471B, | ||||||
| 	0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0, | 		  0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0); | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| static int nouveau_optimus_dsm(acpi_handle handle, int func, int arg, uint32_t *result) | static int nouveau_optimus_dsm(acpi_handle handle, int func, int arg, uint32_t *result) | ||||||
| { | { | ||||||
|  | @ -86,7 +84,7 @@ static int nouveau_optimus_dsm(acpi_handle handle, int func, int arg, uint32_t * | ||||||
| 		args_buff[i] = (arg >> i * 8) & 0xFF; | 		args_buff[i] = (arg >> i * 8) & 0xFF; | ||||||
| 
 | 
 | ||||||
| 	*result = 0; | 	*result = 0; | ||||||
| 	obj = acpi_evaluate_dsm_typed(handle, nouveau_op_dsm_muid, 0x00000100, | 	obj = acpi_evaluate_dsm_typed(handle, &nouveau_op_dsm_muid, 0x00000100, | ||||||
| 				      func, &argv4, ACPI_TYPE_BUFFER); | 				      func, &argv4, ACPI_TYPE_BUFFER); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		acpi_handle_info(handle, "failed to evaluate _DSM\n"); | 		acpi_handle_info(handle, "failed to evaluate _DSM\n"); | ||||||
|  | @ -138,7 +136,7 @@ static int nouveau_dsm(acpi_handle handle, int func, int arg) | ||||||
| 		.integer.value = arg, | 		.integer.value = arg, | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm_typed(handle, nouveau_dsm_muid, 0x00000102, | 	obj = acpi_evaluate_dsm_typed(handle, &nouveau_dsm_muid, 0x00000102, | ||||||
| 				      func, &argv4, ACPI_TYPE_INTEGER); | 				      func, &argv4, ACPI_TYPE_INTEGER); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		acpi_handle_info(handle, "failed to evaluate _DSM\n"); | 		acpi_handle_info(handle, "failed to evaluate _DSM\n"); | ||||||
|  | @ -259,7 +257,7 @@ static void nouveau_dsm_pci_probe(struct pci_dev *pdev, acpi_handle *dhandle_out | ||||||
| 	if (!acpi_has_method(dhandle, "_DSM")) | 	if (!acpi_has_method(dhandle, "_DSM")) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	supports_mux = acpi_check_dsm(dhandle, nouveau_dsm_muid, 0x00000102, | 	supports_mux = acpi_check_dsm(dhandle, &nouveau_dsm_muid, 0x00000102, | ||||||
| 				      1 << NOUVEAU_DSM_POWER); | 				      1 << NOUVEAU_DSM_POWER); | ||||||
| 	optimus_funcs = nouveau_dsm_get_optimus_functions(dhandle); | 	optimus_funcs = nouveau_dsm_get_optimus_functions(dhandle); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -81,10 +81,9 @@ mxm_shadow_dsm(struct nvkm_mxm *mxm, u8 version) | ||||||
| { | { | ||||||
| 	struct nvkm_subdev *subdev = &mxm->subdev; | 	struct nvkm_subdev *subdev = &mxm->subdev; | ||||||
| 	struct nvkm_device *device = subdev->device; | 	struct nvkm_device *device = subdev->device; | ||||||
| 	static char muid[] = { | 	static guid_t muid = | ||||||
| 		0x00, 0xA4, 0x04, 0x40, 0x7D, 0x91, 0xF2, 0x4C, | 		GUID_INIT(0x4004A400, 0x917D, 0x4CF2, | ||||||
| 		0xB8, 0x9C, 0x79, 0xB6, 0x2F, 0xD5, 0x56, 0x65 | 			  0xB8, 0x9C, 0x79, 0xB6, 0x2F, 0xD5, 0x56, 0x65); | ||||||
| 	}; |  | ||||||
| 	u32 mxms_args[] = { 0x00000000 }; | 	u32 mxms_args[] = { 0x00000000 }; | ||||||
| 	union acpi_object argv4 = { | 	union acpi_object argv4 = { | ||||||
| 		.buffer.type = ACPI_TYPE_BUFFER, | 		.buffer.type = ACPI_TYPE_BUFFER, | ||||||
|  | @ -105,7 +104,7 @@ mxm_shadow_dsm(struct nvkm_mxm *mxm, u8 version) | ||||||
| 	 * unless you pass in exactly the version it supports.. | 	 * unless you pass in exactly the version it supports.. | ||||||
| 	 */ | 	 */ | ||||||
| 	rev = (version & 0xf0) << 4 | (version & 0x0f); | 	rev = (version & 0xf0) << 4 | (version & 0x0f); | ||||||
| 	obj = acpi_evaluate_dsm(handle, muid, rev, 0x00000010, &argv4); | 	obj = acpi_evaluate_dsm(handle, &muid, rev, 0x00000010, &argv4); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		nvkm_debug(subdev, "DSM MXMS failed\n"); | 		nvkm_debug(subdev, "DSM MXMS failed\n"); | ||||||
| 		return false; | 		return false; | ||||||
|  |  | ||||||
|  | @ -872,10 +872,9 @@ static int i2c_hid_fetch_hid_descriptor(struct i2c_hid *ihid) | ||||||
| static int i2c_hid_acpi_pdata(struct i2c_client *client, | static int i2c_hid_acpi_pdata(struct i2c_client *client, | ||||||
| 		struct i2c_hid_platform_data *pdata) | 		struct i2c_hid_platform_data *pdata) | ||||||
| { | { | ||||||
| 	static u8 i2c_hid_guid[] = { | 	static guid_t i2c_hid_guid = | ||||||
| 		0xF7, 0xF6, 0xDF, 0x3C, 0x67, 0x42, 0x55, 0x45, | 		GUID_INIT(0x3CDFF6F7, 0x4267, 0x4555, | ||||||
| 		0xAD, 0x05, 0xB3, 0x0A, 0x3D, 0x89, 0x38, 0xDE, | 			  0xAD, 0x05, 0xB3, 0x0A, 0x3D, 0x89, 0x38, 0xDE); | ||||||
| 	}; |  | ||||||
| 	union acpi_object *obj; | 	union acpi_object *obj; | ||||||
| 	struct acpi_device *adev; | 	struct acpi_device *adev; | ||||||
| 	acpi_handle handle; | 	acpi_handle handle; | ||||||
|  | @ -884,7 +883,7 @@ static int i2c_hid_acpi_pdata(struct i2c_client *client, | ||||||
| 	if (!handle || acpi_bus_get_device(handle, &adev)) | 	if (!handle || acpi_bus_get_device(handle, &adev)) | ||||||
| 		return -ENODEV; | 		return -ENODEV; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm_typed(handle, i2c_hid_guid, 1, 1, NULL, | 	obj = acpi_evaluate_dsm_typed(handle, &i2c_hid_guid, 1, 1, NULL, | ||||||
| 				      ACPI_TYPE_INTEGER); | 				      ACPI_TYPE_INTEGER); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		dev_err(&client->dev, "device _DSM execution failed\n"); | 		dev_err(&client->dev, "device _DSM execution failed\n"); | ||||||
|  |  | ||||||
|  | @ -1808,10 +1808,9 @@ IOMMU_INIT_POST(detect_intel_iommu); | ||||||
|  * for Directed-IO Architecture Specifiction, Rev 2.2, Section 8.8 |  * for Directed-IO Architecture Specifiction, Rev 2.2, Section 8.8 | ||||||
|  * "Remapping Hardware Unit Hot Plug". |  * "Remapping Hardware Unit Hot Plug". | ||||||
|  */ |  */ | ||||||
| static u8 dmar_hp_uuid[] = { | static guid_t dmar_hp_guid = | ||||||
| 	/* 0000 */    0xA6, 0xA3, 0xC1, 0xD8, 0x9B, 0xBE, 0x9B, 0x4C, | 	GUID_INIT(0xD8C1A3A6, 0xBE9B, 0x4C9B, | ||||||
| 	/* 0008 */    0x91, 0xBF, 0xC3, 0xCB, 0x81, 0xFC, 0x5D, 0xAF | 		  0x91, 0xBF, 0xC3, 0xCB, 0x81, 0xFC, 0x5D, 0xAF); | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Currently there's only one revision and BIOS will not check the revision id, |  * Currently there's only one revision and BIOS will not check the revision id, | ||||||
|  | @ -1824,7 +1823,7 @@ static u8 dmar_hp_uuid[] = { | ||||||
| 
 | 
 | ||||||
| static inline bool dmar_detect_dsm(acpi_handle handle, int func) | static inline bool dmar_detect_dsm(acpi_handle handle, int func) | ||||||
| { | { | ||||||
| 	return acpi_check_dsm(handle, dmar_hp_uuid, DMAR_DSM_REV_ID, 1 << func); | 	return acpi_check_dsm(handle, &dmar_hp_guid, DMAR_DSM_REV_ID, 1 << func); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static int dmar_walk_dsm_resource(acpi_handle handle, int func, | static int dmar_walk_dsm_resource(acpi_handle handle, int func, | ||||||
|  | @ -1843,7 +1842,7 @@ static int dmar_walk_dsm_resource(acpi_handle handle, int func, | ||||||
| 	if (!dmar_detect_dsm(handle, func)) | 	if (!dmar_detect_dsm(handle, func)) | ||||||
| 		return 0; | 		return 0; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm_typed(handle, dmar_hp_uuid, DMAR_DSM_REV_ID, | 	obj = acpi_evaluate_dsm_typed(handle, &dmar_hp_guid, DMAR_DSM_REV_ID, | ||||||
| 				      func, NULL, ACPI_TYPE_BUFFER); | 				      func, NULL, ACPI_TYPE_BUFFER); | ||||||
| 	if (!obj) | 	if (!obj) | ||||||
| 		return -ENODEV; | 		return -ENODEV; | ||||||
|  |  | ||||||
|  | @ -404,10 +404,9 @@ struct intel_host { | ||||||
| 	bool	d3_retune; | 	bool	d3_retune; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const u8 intel_dsm_uuid[] = { | const guid_t intel_dsm_guid = | ||||||
| 	0xA5, 0x3E, 0xC1, 0xF6, 0xCD, 0x65, 0x1F, 0x46, | 	GUID_INIT(0xF6C13EA5, 0x65CD, 0x461F, | ||||||
| 	0xAB, 0x7A, 0x29, 0xF7, 0xE8, 0xD5, 0xBD, 0x61, | 		  0xAB, 0x7A, 0x29, 0xF7, 0xE8, 0xD5, 0xBD, 0x61); | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| static int __intel_dsm(struct intel_host *intel_host, struct device *dev, | static int __intel_dsm(struct intel_host *intel_host, struct device *dev, | ||||||
| 		       unsigned int fn, u32 *result) | 		       unsigned int fn, u32 *result) | ||||||
|  | @ -416,7 +415,7 @@ static int __intel_dsm(struct intel_host *intel_host, struct device *dev, | ||||||
| 	int err = 0; | 	int err = 0; | ||||||
| 	size_t len; | 	size_t len; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(dev), intel_dsm_uuid, 0, fn, NULL); | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(dev), &intel_dsm_guid, 0, fn, NULL); | ||||||
| 	if (!obj) | 	if (!obj) | ||||||
| 		return -EOPNOTSUPP; | 		return -EOPNOTSUPP; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -29,10 +29,9 @@ enum _dsm_rst_type { | ||||||
| 	HNS_ROCE_RESET_FUNC     = 0x7, | 	HNS_ROCE_RESET_FUNC     = 0x7, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| const u8 hns_dsaf_acpi_dsm_uuid[] = { | const guid_t hns_dsaf_acpi_dsm_guid = | ||||||
| 	0x1A, 0xAA, 0x85, 0x1A, 0x93, 0xE2, 0x5E, 0x41, | 	GUID_INIT(0x1A85AA1A, 0xE293, 0x415E, | ||||||
| 	0x8E, 0x28, 0x8D, 0x69, 0x0A, 0x0F, 0x82, 0x0A | 		  0x8E, 0x28, 0x8D, 0x69, 0x0A, 0x0F, 0x82, 0x0A); | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| static void dsaf_write_sub(struct dsaf_device *dsaf_dev, u32 reg, u32 val) | static void dsaf_write_sub(struct dsaf_device *dsaf_dev, u32 reg, u32 val) | ||||||
| { | { | ||||||
|  | @ -151,7 +150,7 @@ static void hns_dsaf_acpi_srst_by_port(struct dsaf_device *dsaf_dev, u8 op_type, | ||||||
| 	argv4.package.elements = obj_args; | 	argv4.package.elements = obj_args; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(dsaf_dev->dev), | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(dsaf_dev->dev), | ||||||
| 				hns_dsaf_acpi_dsm_uuid, 0, op_type, &argv4); | 				&hns_dsaf_acpi_dsm_guid, 0, op_type, &argv4); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		dev_warn(dsaf_dev->dev, "reset port_type%d port%d fail!", | 		dev_warn(dsaf_dev->dev, "reset port_type%d port%d fail!", | ||||||
| 			 port_type, port); | 			 port_type, port); | ||||||
|  | @ -434,7 +433,7 @@ static phy_interface_t hns_mac_get_phy_if_acpi(struct hns_mac_cb *mac_cb) | ||||||
| 	argv4.package.elements = &obj_args, | 	argv4.package.elements = &obj_args, | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(mac_cb->dev), | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(mac_cb->dev), | ||||||
| 				hns_dsaf_acpi_dsm_uuid, 0, | 				&hns_dsaf_acpi_dsm_guid, 0, | ||||||
| 				HNS_OP_GET_PORT_TYPE_FUNC, &argv4); | 				HNS_OP_GET_PORT_TYPE_FUNC, &argv4); | ||||||
| 
 | 
 | ||||||
| 	if (!obj || obj->type != ACPI_TYPE_INTEGER) | 	if (!obj || obj->type != ACPI_TYPE_INTEGER) | ||||||
|  | @ -474,7 +473,7 @@ int hns_mac_get_sfp_prsnt_acpi(struct hns_mac_cb *mac_cb, int *sfp_prsnt) | ||||||
| 	argv4.package.elements = &obj_args, | 	argv4.package.elements = &obj_args, | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(mac_cb->dev), | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(mac_cb->dev), | ||||||
| 				hns_dsaf_acpi_dsm_uuid, 0, | 				&hns_dsaf_acpi_dsm_guid, 0, | ||||||
| 				HNS_OP_GET_SFP_STAT_FUNC, &argv4); | 				HNS_OP_GET_SFP_STAT_FUNC, &argv4); | ||||||
| 
 | 
 | ||||||
| 	if (!obj || obj->type != ACPI_TYPE_INTEGER) | 	if (!obj || obj->type != ACPI_TYPE_INTEGER) | ||||||
|  | @ -565,7 +564,7 @@ hns_mac_config_sds_loopback_acpi(struct hns_mac_cb *mac_cb, bool en) | ||||||
| 	argv4.package.elements = obj_args; | 	argv4.package.elements = obj_args; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(mac_cb->dsaf_dev->dev), | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(mac_cb->dsaf_dev->dev), | ||||||
| 				hns_dsaf_acpi_dsm_uuid, 0, | 				&hns_dsaf_acpi_dsm_guid, 0, | ||||||
| 				HNS_OP_SERDES_LP_FUNC, &argv4); | 				HNS_OP_SERDES_LP_FUNC, &argv4); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		dev_warn(mac_cb->dsaf_dev->dev, "set port%d serdes lp fail!", | 		dev_warn(mac_cb->dsaf_dev->dev, "set port%d serdes lp fail!", | ||||||
|  |  | ||||||
|  | @ -21,13 +21,12 @@ | ||||||
| #include "pci.h" | #include "pci.h" | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * The UUID is defined in the PCI Firmware Specification available here: |  * The GUID is defined in the PCI Firmware Specification available here: | ||||||
|  * https://www.pcisig.com/members/downloads/pcifw_r3_1_13Dec10.pdf
 |  * https://www.pcisig.com/members/downloads/pcifw_r3_1_13Dec10.pdf
 | ||||||
|  */ |  */ | ||||||
| const u8 pci_acpi_dsm_uuid[] = { | const guid_t pci_acpi_dsm_guid = | ||||||
| 	0xd0, 0x37, 0xc9, 0xe5, 0x53, 0x35, 0x7a, 0x4d, | 	GUID_INIT(0xe5c937d0, 0x3553, 0x4d7a, | ||||||
| 	0x91, 0x17, 0xea, 0x4d, 0x19, 0xc3, 0x43, 0x4d | 		  0x91, 0x17, 0xea, 0x4d, 0x19, 0xc3, 0x43, 0x4d); | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| #if defined(CONFIG_PCI_QUIRKS) && defined(CONFIG_ARM64) | #if defined(CONFIG_PCI_QUIRKS) && defined(CONFIG_ARM64) | ||||||
| static int acpi_get_rc_addr(struct acpi_device *adev, struct resource *res) | static int acpi_get_rc_addr(struct acpi_device *adev, struct resource *res) | ||||||
|  | @ -680,7 +679,7 @@ void acpi_pci_add_bus(struct pci_bus *bus) | ||||||
| 	if (!pci_is_root_bus(bus)) | 	if (!pci_is_root_bus(bus)) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(bus->bridge), pci_acpi_dsm_uuid, 3, | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(bus->bridge), &pci_acpi_dsm_guid, 3, | ||||||
| 				RESET_DELAY_DSM, NULL); | 				RESET_DELAY_DSM, NULL); | ||||||
| 	if (!obj) | 	if (!obj) | ||||||
| 		return; | 		return; | ||||||
|  | @ -745,7 +744,7 @@ static void pci_acpi_optimize_delay(struct pci_dev *pdev, | ||||||
| 	if (bridge->ignore_reset_delay) | 	if (bridge->ignore_reset_delay) | ||||||
| 		pdev->d3cold_delay = 0; | 		pdev->d3cold_delay = 0; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(handle, pci_acpi_dsm_uuid, 3, | 	obj = acpi_evaluate_dsm(handle, &pci_acpi_dsm_guid, 3, | ||||||
| 				FUNCTION_DELAY_DSM, NULL); | 				FUNCTION_DELAY_DSM, NULL); | ||||||
| 	if (!obj) | 	if (!obj) | ||||||
| 		return; | 		return; | ||||||
|  |  | ||||||
|  | @ -172,7 +172,7 @@ static int dsm_get_label(struct device *dev, char *buf, | ||||||
| 	if (!handle) | 	if (!handle) | ||||||
| 		return -1; | 		return -1; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(handle, pci_acpi_dsm_uuid, 0x2, | 	obj = acpi_evaluate_dsm(handle, &pci_acpi_dsm_guid, 0x2, | ||||||
| 				DEVICE_LABEL_DSM, NULL); | 				DEVICE_LABEL_DSM, NULL); | ||||||
| 	if (!obj) | 	if (!obj) | ||||||
| 		return -1; | 		return -1; | ||||||
|  | @ -212,7 +212,7 @@ static bool device_has_dsm(struct device *dev) | ||||||
| 	if (!handle) | 	if (!handle) | ||||||
| 		return false; | 		return false; | ||||||
| 
 | 
 | ||||||
| 	return !!acpi_check_dsm(handle, pci_acpi_dsm_uuid, 0x2, | 	return !!acpi_check_dsm(handle, &pci_acpi_dsm_guid, 0x2, | ||||||
| 				1 << DEVICE_LABEL_DSM); | 				1 << DEVICE_LABEL_DSM); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ | ||||||
| #define PCI_DEVICE_ID_INTEL_CNPLP		0x9dee | #define PCI_DEVICE_ID_INTEL_CNPLP		0x9dee | ||||||
| #define PCI_DEVICE_ID_INTEL_CNPH		0xa36e | #define PCI_DEVICE_ID_INTEL_CNPH		0xa36e | ||||||
| 
 | 
 | ||||||
| #define PCI_INTEL_BXT_DSM_UUID		"732b85d5-b7a7-4a1b-9ba0-4bbd00ffd511" | #define PCI_INTEL_BXT_DSM_GUID		"732b85d5-b7a7-4a1b-9ba0-4bbd00ffd511" | ||||||
| #define PCI_INTEL_BXT_FUNC_PMU_PWR	4 | #define PCI_INTEL_BXT_FUNC_PMU_PWR	4 | ||||||
| #define PCI_INTEL_BXT_STATE_D0		0 | #define PCI_INTEL_BXT_STATE_D0		0 | ||||||
| #define PCI_INTEL_BXT_STATE_D3		3 | #define PCI_INTEL_BXT_STATE_D3		3 | ||||||
|  | @ -51,14 +51,14 @@ | ||||||
|  * struct dwc3_pci - Driver private structure |  * struct dwc3_pci - Driver private structure | ||||||
|  * @dwc3: child dwc3 platform_device |  * @dwc3: child dwc3 platform_device | ||||||
|  * @pci: our link to PCI bus |  * @pci: our link to PCI bus | ||||||
|  * @uuid: _DSM UUID |  * @guid: _DSM GUID | ||||||
|  * @has_dsm_for_pm: true for devices which need to run _DSM on runtime PM |  * @has_dsm_for_pm: true for devices which need to run _DSM on runtime PM | ||||||
|  */ |  */ | ||||||
| struct dwc3_pci { | struct dwc3_pci { | ||||||
| 	struct platform_device *dwc3; | 	struct platform_device *dwc3; | ||||||
| 	struct pci_dev *pci; | 	struct pci_dev *pci; | ||||||
| 
 | 
 | ||||||
| 	u8 uuid[16]; | 	guid_t guid; | ||||||
| 
 | 
 | ||||||
| 	unsigned int has_dsm_for_pm:1; | 	unsigned int has_dsm_for_pm:1; | ||||||
| }; | }; | ||||||
|  | @ -120,7 +120,7 @@ static int dwc3_pci_quirks(struct dwc3_pci *dwc) | ||||||
| 
 | 
 | ||||||
| 		if (pdev->device == PCI_DEVICE_ID_INTEL_BXT || | 		if (pdev->device == PCI_DEVICE_ID_INTEL_BXT || | ||||||
| 				pdev->device == PCI_DEVICE_ID_INTEL_BXT_M) { | 				pdev->device == PCI_DEVICE_ID_INTEL_BXT_M) { | ||||||
| 			acpi_str_to_uuid(PCI_INTEL_BXT_DSM_UUID, dwc->uuid); | 			guid_parse(PCI_INTEL_BXT_DSM_GUID, &dwc->guid); | ||||||
| 			dwc->has_dsm_for_pm = true; | 			dwc->has_dsm_for_pm = true; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  | @ -292,7 +292,7 @@ static int dwc3_pci_dsm(struct dwc3_pci *dwc, int param) | ||||||
| 	tmp.type = ACPI_TYPE_INTEGER; | 	tmp.type = ACPI_TYPE_INTEGER; | ||||||
| 	tmp.integer.value = param; | 	tmp.integer.value = param; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(&dwc->pci->dev), dwc->uuid, | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(&dwc->pci->dev), &dwc->guid, | ||||||
| 			1, PCI_INTEL_BXT_FUNC_PMU_PWR, &argv4); | 			1, PCI_INTEL_BXT_FUNC_PMU_PWR, &argv4); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		dev_err(&dwc->pci->dev, "failed to evaluate _DSM\n"); | 		dev_err(&dwc->pci->dev, "failed to evaluate _DSM\n"); | ||||||
|  |  | ||||||
|  | @ -213,13 +213,12 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) | ||||||
| #ifdef CONFIG_ACPI | #ifdef CONFIG_ACPI | ||||||
| static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) | static void xhci_pme_acpi_rtd3_enable(struct pci_dev *dev) | ||||||
| { | { | ||||||
| 	static const u8 intel_dsm_uuid[] = { | 	static const guid_t intel_dsm_guid = | ||||||
| 		0xb7, 0x0c, 0x34, 0xac,	0x01, 0xe9, 0xbf, 0x45, | 		GUID_INIT(0xac340cb7, 0xe901, 0x45bf, | ||||||
| 		0xb7, 0xe6, 0x2b, 0x34, 0xec, 0x93, 0x1e, 0x23, | 			  0xb7, 0xe6, 0x2b, 0x34, 0xec, 0x93, 0x1e, 0x23); | ||||||
| 	}; |  | ||||||
| 	union acpi_object *obj; | 	union acpi_object *obj; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(&dev->dev), intel_dsm_uuid, 3, 1, | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(&dev->dev), &intel_dsm_guid, 3, 1, | ||||||
| 				NULL); | 				NULL); | ||||||
| 	ACPI_FREE(obj); | 	ACPI_FREE(obj); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -55,13 +55,13 @@ struct ucsi { | ||||||
| 
 | 
 | ||||||
| static int ucsi_acpi_cmd(struct ucsi *ucsi, struct ucsi_control *ctrl) | static int ucsi_acpi_cmd(struct ucsi *ucsi, struct ucsi_control *ctrl) | ||||||
| { | { | ||||||
| 	uuid_le uuid = UUID_LE(0x6f8398c2, 0x7ca4, 0x11e4, | 	guid_t guid = GUID_INIT(0x6f8398c2, 0x7ca4, 0x11e4, | ||||||
| 			       0xad, 0x36, 0x63, 0x10, 0x42, 0xb5, 0x00, 0x8f); | 				0xad, 0x36, 0x63, 0x10, 0x42, 0xb5, 0x00, 0x8f); | ||||||
| 	union acpi_object *obj; | 	union acpi_object *obj; | ||||||
| 
 | 
 | ||||||
| 	ucsi->data->ctrl.raw_cmd = ctrl->raw_cmd; | 	ucsi->data->ctrl.raw_cmd = ctrl->raw_cmd; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(ucsi->dev), uuid.b, 1, 1, NULL); | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(ucsi->dev), &guid, 1, 1, NULL); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		dev_err(ucsi->dev, "%s: failed to evaluate _DSM\n", __func__); | 		dev_err(ucsi->dev, "%s: failed to evaluate _DSM\n", __func__); | ||||||
| 		return -EIO; | 		return -EIO; | ||||||
|  |  | ||||||
|  | @ -105,8 +105,8 @@ enum wcove_typec_role { | ||||||
| 	WCOVE_ROLE_DEVICE, | 	WCOVE_ROLE_DEVICE, | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| static uuid_le uuid = UUID_LE(0x482383f0, 0x2876, 0x4e49, | static guid_t guid = GUID_INIT(0x482383f0, 0x2876, 0x4e49, | ||||||
| 			      0x86, 0x85, 0xdb, 0x66, 0x21, 0x1a, 0xf0, 0x37); | 			       0x86, 0x85, 0xdb, 0x66, 0x21, 0x1a, 0xf0, 0x37); | ||||||
| 
 | 
 | ||||||
| static int wcove_typec_func(struct wcove_typec *wcove, | static int wcove_typec_func(struct wcove_typec *wcove, | ||||||
| 			    enum wcove_typec_func func, int param) | 			    enum wcove_typec_func func, int param) | ||||||
|  | @ -118,7 +118,7 @@ static int wcove_typec_func(struct wcove_typec *wcove, | ||||||
| 	tmp.type = ACPI_TYPE_INTEGER; | 	tmp.type = ACPI_TYPE_INTEGER; | ||||||
| 	tmp.integer.value = param; | 	tmp.integer.value = param; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(ACPI_HANDLE(wcove->dev), uuid.b, 1, func, | 	obj = acpi_evaluate_dsm(ACPI_HANDLE(wcove->dev), &guid, 1, func, | ||||||
| 				&argv4); | 				&argv4); | ||||||
| 	if (!obj) { | 	if (!obj) { | ||||||
| 		dev_err(wcove->dev, "%s: failed to evaluate _DSM\n", __func__); | 		dev_err(wcove->dev, "%s: failed to evaluate _DSM\n", __func__); | ||||||
|  | @ -314,7 +314,7 @@ static int wcove_typec_probe(struct platform_device *pdev) | ||||||
| 	if (ret) | 	if (ret) | ||||||
| 		return ret; | 		return ret; | ||||||
| 
 | 
 | ||||||
| 	if (!acpi_check_dsm(ACPI_HANDLE(&pdev->dev), uuid.b, 0, 0x1f)) { | 	if (!acpi_check_dsm(ACPI_HANDLE(&pdev->dev), &guid, 0, 0x1f)) { | ||||||
| 		dev_err(&pdev->dev, "Missing _DSM functions\n"); | 		dev_err(&pdev->dev, "Missing _DSM functions\n"); | ||||||
| 		return -ENODEV; | 		return -ENODEV; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -61,17 +61,18 @@ bool acpi_ata_match(acpi_handle handle); | ||||||
| bool acpi_bay_match(acpi_handle handle); | bool acpi_bay_match(acpi_handle handle); | ||||||
| bool acpi_dock_match(acpi_handle handle); | bool acpi_dock_match(acpi_handle handle); | ||||||
| 
 | 
 | ||||||
| bool acpi_check_dsm(acpi_handle handle, const u8 *uuid, u64 rev, u64 funcs); | bool acpi_check_dsm(acpi_handle handle, const guid_t *guid, u64 rev, u64 funcs); | ||||||
| union acpi_object *acpi_evaluate_dsm(acpi_handle handle, const u8 *uuid, | union acpi_object *acpi_evaluate_dsm(acpi_handle handle, const guid_t *guid, | ||||||
| 			u64 rev, u64 func, union acpi_object *argv4); | 			u64 rev, u64 func, union acpi_object *argv4); | ||||||
| 
 | 
 | ||||||
| static inline union acpi_object * | static inline union acpi_object * | ||||||
| acpi_evaluate_dsm_typed(acpi_handle handle, const u8 *uuid, u64 rev, u64 func, | acpi_evaluate_dsm_typed(acpi_handle handle, const guid_t *guid, u64 rev, | ||||||
| 			union acpi_object *argv4, acpi_object_type type) | 			u64 func, union acpi_object *argv4, | ||||||
|  | 			acpi_object_type type) | ||||||
| { | { | ||||||
| 	union acpi_object *obj; | 	union acpi_object *obj; | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(handle, uuid, rev, func, argv4); | 	obj = acpi_evaluate_dsm(handle, guid, rev, func, argv4); | ||||||
| 	if (obj && obj->type != type) { | 	if (obj && obj->type != type) { | ||||||
| 		ACPI_FREE(obj); | 		ACPI_FREE(obj); | ||||||
| 		obj = NULL; | 		obj = NULL; | ||||||
|  |  | ||||||
|  | @ -458,7 +458,6 @@ struct acpi_osc_context { | ||||||
| 	struct acpi_buffer ret;		/* free by caller if success */ | 	struct acpi_buffer ret;		/* free by caller if success */ | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| acpi_status acpi_str_to_uuid(char *str, u8 *uuid); |  | ||||||
| acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context); | acpi_status acpi_run_osc(acpi_handle handle, struct acpi_osc_context *context); | ||||||
| 
 | 
 | ||||||
| /* Indexes into _OSC Capabilities Buffer (DWORDs 2 & 3 are device-specific) */ | /* Indexes into _OSC Capabilities Buffer (DWORDs 2 & 3 are device-specific) */ | ||||||
|  | @ -742,7 +741,7 @@ static inline bool acpi_driver_match_device(struct device *dev, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static inline union acpi_object *acpi_evaluate_dsm(acpi_handle handle, | static inline union acpi_object *acpi_evaluate_dsm(acpi_handle handle, | ||||||
| 						   const u8 *uuid, | 						   const guid_t *guid, | ||||||
| 						   int rev, int func, | 						   int rev, int func, | ||||||
| 						   union acpi_object *argv4) | 						   union acpi_object *argv4) | ||||||
| { | { | ||||||
|  |  | ||||||
|  | @ -105,7 +105,7 @@ static inline void acpiphp_remove_slots(struct pci_bus *bus) { } | ||||||
| static inline void acpiphp_check_host_bridge(struct acpi_device *adev) { } | static inline void acpiphp_check_host_bridge(struct acpi_device *adev) { } | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| extern const u8 pci_acpi_dsm_uuid[]; | extern const guid_t pci_acpi_dsm_guid; | ||||||
| #define DEVICE_LABEL_DSM	0x07 | #define DEVICE_LABEL_DSM	0x07 | ||||||
| #define RESET_DELAY_DSM		0x08 | #define RESET_DELAY_DSM		0x08 | ||||||
| #define FUNCTION_DELAY_DSM	0x09 | #define FUNCTION_DELAY_DSM	0x09 | ||||||
|  |  | ||||||
|  | @ -21,8 +21,9 @@ | ||||||
| #include "skl.h" | #include "skl.h" | ||||||
| 
 | 
 | ||||||
| /* Unique identification for getting NHLT blobs */ | /* Unique identification for getting NHLT blobs */ | ||||||
| static u8 OSC_UUID[16] = {0x6E, 0x88, 0x9F, 0xA6, 0xEB, 0x6C, 0x94, 0x45, | static guid_t osc_guid = | ||||||
| 				0xA4, 0x1F, 0x7B, 0x5D, 0xCE, 0x24, 0xC5, 0x53}; | 	GUID_INIT(0xA69F886E, 0x6CEB, 0x4594, | ||||||
|  | 		  0xA4, 0x1F, 0x7B, 0x5D, 0xCE, 0x24, 0xC5, 0x53); | ||||||
| 
 | 
 | ||||||
| struct nhlt_acpi_table *skl_nhlt_init(struct device *dev) | struct nhlt_acpi_table *skl_nhlt_init(struct device *dev) | ||||||
| { | { | ||||||
|  | @ -37,7 +38,7 @@ struct nhlt_acpi_table *skl_nhlt_init(struct device *dev) | ||||||
| 		return NULL; | 		return NULL; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	obj = acpi_evaluate_dsm(handle, OSC_UUID, 1, 1, NULL); | 	obj = acpi_evaluate_dsm(handle, &osc_guid, 1, 1, NULL); | ||||||
| 	if (obj && obj->type == ACPI_TYPE_BUFFER) { | 	if (obj && obj->type == ACPI_TYPE_BUFFER) { | ||||||
| 		nhlt_ptr = (struct nhlt_resource_desc  *)obj->buffer.pointer; | 		nhlt_ptr = (struct nhlt_resource_desc  *)obj->buffer.pointer; | ||||||
| 		nhlt_table = (struct nhlt_acpi_table *) | 		nhlt_table = (struct nhlt_acpi_table *) | ||||||
|  |  | ||||||
|  | @ -370,7 +370,7 @@ acpi_status __wrap_acpi_evaluate_object(acpi_handle handle, acpi_string path, | ||||||
| } | } | ||||||
| EXPORT_SYMBOL(__wrap_acpi_evaluate_object); | EXPORT_SYMBOL(__wrap_acpi_evaluate_object); | ||||||
| 
 | 
 | ||||||
| union acpi_object * __wrap_acpi_evaluate_dsm(acpi_handle handle, const u8 *uuid, | union acpi_object * __wrap_acpi_evaluate_dsm(acpi_handle handle, const guid_t *guid, | ||||||
| 		u64 rev, u64 func, union acpi_object *argv4) | 		u64 rev, u64 func, union acpi_object *argv4) | ||||||
| { | { | ||||||
| 	union acpi_object *obj = ERR_PTR(-ENXIO); | 	union acpi_object *obj = ERR_PTR(-ENXIO); | ||||||
|  | @ -379,11 +379,11 @@ union acpi_object * __wrap_acpi_evaluate_dsm(acpi_handle handle, const u8 *uuid, | ||||||
| 	rcu_read_lock(); | 	rcu_read_lock(); | ||||||
| 	ops = list_first_or_null_rcu(&iomap_head, typeof(*ops), list); | 	ops = list_first_or_null_rcu(&iomap_head, typeof(*ops), list); | ||||||
| 	if (ops) | 	if (ops) | ||||||
| 		obj = ops->evaluate_dsm(handle, uuid, rev, func, argv4); | 		obj = ops->evaluate_dsm(handle, guid, rev, func, argv4); | ||||||
| 	rcu_read_unlock(); | 	rcu_read_unlock(); | ||||||
| 
 | 
 | ||||||
| 	if (IS_ERR(obj)) | 	if (IS_ERR(obj)) | ||||||
| 		return acpi_evaluate_dsm(handle, uuid, rev, func, argv4); | 		return acpi_evaluate_dsm(handle, guid, rev, func, argv4); | ||||||
| 	return obj; | 	return obj; | ||||||
| } | } | ||||||
| EXPORT_SYMBOL(__wrap_acpi_evaluate_dsm); | EXPORT_SYMBOL(__wrap_acpi_evaluate_dsm); | ||||||
|  |  | ||||||
|  | @ -1559,7 +1559,7 @@ static unsigned long nfit_ctl_handle; | ||||||
| union acpi_object *result; | union acpi_object *result; | ||||||
| 
 | 
 | ||||||
| static union acpi_object *nfit_test_evaluate_dsm(acpi_handle handle, | static union acpi_object *nfit_test_evaluate_dsm(acpi_handle handle, | ||||||
| 		const u8 *uuid, u64 rev, u64 func, union acpi_object *argv4) | 		const guid_t *guid, u64 rev, u64 func, union acpi_object *argv4) | ||||||
| { | { | ||||||
| 	if (handle != &nfit_ctl_handle) | 	if (handle != &nfit_ctl_handle) | ||||||
| 		return ERR_PTR(-ENXIO); | 		return ERR_PTR(-ENXIO); | ||||||
|  |  | ||||||
|  | @ -13,6 +13,7 @@ | ||||||
| #ifndef __NFIT_TEST_H__ | #ifndef __NFIT_TEST_H__ | ||||||
| #define __NFIT_TEST_H__ | #define __NFIT_TEST_H__ | ||||||
| #include <linux/list.h> | #include <linux/list.h> | ||||||
|  | #include <linux/uuid.h> | ||||||
| #include <linux/ioport.h> | #include <linux/ioport.h> | ||||||
| #include <linux/spinlock_types.h> | #include <linux/spinlock_types.h> | ||||||
| 
 | 
 | ||||||
|  | @ -36,7 +37,8 @@ typedef void *acpi_handle; | ||||||
| 
 | 
 | ||||||
| typedef struct nfit_test_resource *(*nfit_test_lookup_fn)(resource_size_t); | typedef struct nfit_test_resource *(*nfit_test_lookup_fn)(resource_size_t); | ||||||
| typedef union acpi_object *(*nfit_test_evaluate_dsm_fn)(acpi_handle handle, | typedef union acpi_object *(*nfit_test_evaluate_dsm_fn)(acpi_handle handle, | ||||||
| 		const u8 *uuid, u64 rev, u64 func, union acpi_object *argv4); | 		 const guid_t *guid, u64 rev, u64 func, | ||||||
|  | 		 union acpi_object *argv4); | ||||||
| void __iomem *__wrap_ioremap_nocache(resource_size_t offset, | void __iomem *__wrap_ioremap_nocache(resource_size_t offset, | ||||||
| 		unsigned long size); | 		unsigned long size); | ||||||
| void __wrap_iounmap(volatile void __iomem *addr); | void __wrap_iounmap(volatile void __iomem *addr); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Andy Shevchenko
						Andy Shevchenko