mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	Merge branch 'device-properties'
* device-properties: ACPI / platform: Add support for build-in properties
This commit is contained in:
		
						commit
						66f5854c68
					
				
					 8 changed files with 15 additions and 23 deletions
				
			
		| 
						 | 
					@ -122,7 +122,7 @@ static int acpi_apd_create_device(struct acpi_device *adev,
 | 
				
			||||||
	int ret;
 | 
						int ret;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!dev_desc) {
 | 
						if (!dev_desc) {
 | 
				
			||||||
		pdev = acpi_create_platform_device(adev);
 | 
							pdev = acpi_create_platform_device(adev, NULL);
 | 
				
			||||||
		return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1;
 | 
							return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -139,14 +139,8 @@ static int acpi_apd_create_device(struct acpi_device *adev,
 | 
				
			||||||
			goto err_out;
 | 
								goto err_out;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (dev_desc->properties) {
 | 
					 | 
				
			||||||
		ret = device_add_properties(&adev->dev, dev_desc->properties);
 | 
					 | 
				
			||||||
		if (ret)
 | 
					 | 
				
			||||||
			goto err_out;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	adev->driver_data = pdata;
 | 
						adev->driver_data = pdata;
 | 
				
			||||||
	pdev = acpi_create_platform_device(adev);
 | 
						pdev = acpi_create_platform_device(adev, dev_desc->properties);
 | 
				
			||||||
	if (!IS_ERR_OR_NULL(pdev))
 | 
						if (!IS_ERR_OR_NULL(pdev))
 | 
				
			||||||
		return 1;
 | 
							return 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -395,7 +395,7 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	dev_desc = (const struct lpss_device_desc *)id->driver_data;
 | 
						dev_desc = (const struct lpss_device_desc *)id->driver_data;
 | 
				
			||||||
	if (!dev_desc) {
 | 
						if (!dev_desc) {
 | 
				
			||||||
		pdev = acpi_create_platform_device(adev);
 | 
							pdev = acpi_create_platform_device(adev, NULL);
 | 
				
			||||||
		return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1;
 | 
							return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
 | 
						pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
 | 
				
			||||||
| 
						 | 
					@ -451,14 +451,8 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
 | 
				
			||||||
		goto err_out;
 | 
							goto err_out;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (dev_desc->properties) {
 | 
					 | 
				
			||||||
		ret = device_add_properties(&adev->dev, dev_desc->properties);
 | 
					 | 
				
			||||||
		if (ret)
 | 
					 | 
				
			||||||
			goto err_out;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	adev->driver_data = pdata;
 | 
						adev->driver_data = pdata;
 | 
				
			||||||
	pdev = acpi_create_platform_device(adev);
 | 
						pdev = acpi_create_platform_device(adev, dev_desc->properties);
 | 
				
			||||||
	if (!IS_ERR_OR_NULL(pdev)) {
 | 
						if (!IS_ERR_OR_NULL(pdev)) {
 | 
				
			||||||
		return 1;
 | 
							return 1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,6 +50,7 @@ static void acpi_platform_fill_resource(struct acpi_device *adev,
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * acpi_create_platform_device - Create platform device for ACPI device node
 | 
					 * acpi_create_platform_device - Create platform device for ACPI device node
 | 
				
			||||||
 * @adev: ACPI device node to create a platform device for.
 | 
					 * @adev: ACPI device node to create a platform device for.
 | 
				
			||||||
 | 
					 * @properties: Optional collection of build-in properties.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Check if the given @adev can be represented as a platform device and, if
 | 
					 * Check if the given @adev can be represented as a platform device and, if
 | 
				
			||||||
 * that's the case, create and register a platform device, populate its common
 | 
					 * that's the case, create and register a platform device, populate its common
 | 
				
			||||||
| 
						 | 
					@ -57,7 +58,8 @@ static void acpi_platform_fill_resource(struct acpi_device *adev,
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Name of the platform device will be the same as @adev's.
 | 
					 * Name of the platform device will be the same as @adev's.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
struct platform_device *acpi_create_platform_device(struct acpi_device *adev)
 | 
					struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
 | 
				
			||||||
 | 
										struct property_entry *properties)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	struct platform_device *pdev = NULL;
 | 
						struct platform_device *pdev = NULL;
 | 
				
			||||||
	struct platform_device_info pdevinfo;
 | 
						struct platform_device_info pdevinfo;
 | 
				
			||||||
| 
						 | 
					@ -106,6 +108,7 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev)
 | 
				
			||||||
	pdevinfo.res = resources;
 | 
						pdevinfo.res = resources;
 | 
				
			||||||
	pdevinfo.num_res = count;
 | 
						pdevinfo.num_res = count;
 | 
				
			||||||
	pdevinfo.fwnode = acpi_fwnode_handle(adev);
 | 
						pdevinfo.fwnode = acpi_fwnode_handle(adev);
 | 
				
			||||||
 | 
						pdevinfo.properties = properties;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (acpi_dma_supported(adev))
 | 
						if (acpi_dma_supported(adev))
 | 
				
			||||||
		pdevinfo.dma_mask = DMA_BIT_MASK(32);
 | 
							pdevinfo.dma_mask = DMA_BIT_MASK(32);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,11 +34,11 @@ static int int340x_thermal_handler_attach(struct acpi_device *adev,
 | 
				
			||||||
					const struct acpi_device_id *id)
 | 
										const struct acpi_device_id *id)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (IS_ENABLED(CONFIG_INT340X_THERMAL))
 | 
						if (IS_ENABLED(CONFIG_INT340X_THERMAL))
 | 
				
			||||||
		acpi_create_platform_device(adev);
 | 
							acpi_create_platform_device(adev, NULL);
 | 
				
			||||||
	/* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */
 | 
						/* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */
 | 
				
			||||||
	else if (IS_ENABLED(CONFIG_INTEL_SOC_DTS_THERMAL) &&
 | 
						else if (IS_ENABLED(CONFIG_INTEL_SOC_DTS_THERMAL) &&
 | 
				
			||||||
		 id->driver_data == INT3401_DEVICE)
 | 
							 id->driver_data == INT3401_DEVICE)
 | 
				
			||||||
		acpi_create_platform_device(adev);
 | 
							acpi_create_platform_device(adev, NULL);
 | 
				
			||||||
	return 1;
 | 
						return 1;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1734,7 +1734,7 @@ static void acpi_default_enumeration(struct acpi_device *device)
 | 
				
			||||||
			       &is_spi_i2c_slave);
 | 
								       &is_spi_i2c_slave);
 | 
				
			||||||
	acpi_dev_free_resource_list(&resource_list);
 | 
						acpi_dev_free_resource_list(&resource_list);
 | 
				
			||||||
	if (!is_spi_i2c_slave) {
 | 
						if (!is_spi_i2c_slave) {
 | 
				
			||||||
		acpi_create_platform_device(device);
 | 
							acpi_create_platform_device(device, NULL);
 | 
				
			||||||
		acpi_device_set_enumerated(device);
 | 
							acpi_device_set_enumerated(device);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		blocking_notifier_call_chain(&acpi_reconfig_chain,
 | 
							blocking_notifier_call_chain(&acpi_reconfig_chain,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -264,7 +264,7 @@ check_acpi_dev(acpi_handle handle, u32 lvl, void *context, void **rv)
 | 
				
			||||||
		return AE_OK;
 | 
							return AE_OK;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (acpi_match_device_ids(dev, ids) == 0)
 | 
						if (acpi_match_device_ids(dev, ids) == 0)
 | 
				
			||||||
		if (acpi_create_platform_device(dev))
 | 
							if (acpi_create_platform_device(dev, NULL))
 | 
				
			||||||
			dev_info(&dev->dev,
 | 
								dev_info(&dev->dev,
 | 
				
			||||||
				 "intel-hid: created platform device\n");
 | 
									 "intel-hid: created platform device\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -164,7 +164,7 @@ check_acpi_dev(acpi_handle handle, u32 lvl, void *context, void **rv)
 | 
				
			||||||
		return AE_OK;
 | 
							return AE_OK;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (acpi_match_device_ids(dev, ids) == 0)
 | 
						if (acpi_match_device_ids(dev, ids) == 0)
 | 
				
			||||||
		if (acpi_create_platform_device(dev))
 | 
							if (acpi_create_platform_device(dev, NULL))
 | 
				
			||||||
			dev_info(&dev->dev,
 | 
								dev_info(&dev->dev,
 | 
				
			||||||
				 "intel-vbtn: created platform device\n");
 | 
									 "intel-vbtn: created platform device\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -555,7 +555,8 @@ int acpi_device_uevent_modalias(struct device *, struct kobj_uevent_env *);
 | 
				
			||||||
int acpi_device_modalias(struct device *, char *, int);
 | 
					int acpi_device_modalias(struct device *, char *, int);
 | 
				
			||||||
void acpi_walk_dep_device_list(acpi_handle handle);
 | 
					void acpi_walk_dep_device_list(acpi_handle handle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct platform_device *acpi_create_platform_device(struct acpi_device *);
 | 
					struct platform_device *acpi_create_platform_device(struct acpi_device *,
 | 
				
			||||||
 | 
											    struct property_entry *);
 | 
				
			||||||
#define ACPI_PTR(_ptr)	(_ptr)
 | 
					#define ACPI_PTR(_ptr)	(_ptr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static inline void acpi_device_set_enumerated(struct acpi_device *adev)
 | 
					static inline void acpi_device_set_enumerated(struct acpi_device *adev)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue