aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/acpi_apd.c10
-rw-r--r--drivers/acpi/acpi_lpss.c10
-rw-r--r--drivers/acpi/acpi_platform.c5
-rw-r--r--drivers/acpi/dptf/int340x_thermal.c4
-rw-r--r--drivers/acpi/scan.c2
-rw-r--r--drivers/platform/x86/intel-hid.c2
-rw-r--r--drivers/platform/x86/intel-vbtn.c2
-rw-r--r--include/linux/acpi.h3
8 files changed, 15 insertions, 23 deletions
diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c
index 5f112d811e42..5959ed996a75 100644
--- a/drivers/acpi/acpi_apd.c
+++ b/drivers/acpi/acpi_apd.c
@@ -117,7 +117,7 @@ static int acpi_apd_create_device(struct acpi_device *adev,
117 int ret; 117 int ret;
118 118
119 if (!dev_desc) { 119 if (!dev_desc) {
120 pdev = acpi_create_platform_device(adev); 120 pdev = acpi_create_platform_device(adev, NULL);
121 return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1; 121 return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1;
122 } 122 }
123 123
@@ -134,14 +134,8 @@ static int acpi_apd_create_device(struct acpi_device *adev,
134 goto err_out; 134 goto err_out;
135 } 135 }
136 136
137 if (dev_desc->properties) {
138 ret = device_add_properties(&adev->dev, dev_desc->properties);
139 if (ret)
140 goto err_out;
141 }
142
143 adev->driver_data = pdata; 137 adev->driver_data = pdata;
144 pdev = acpi_create_platform_device(adev); 138 pdev = acpi_create_platform_device(adev, dev_desc->properties);
145 if (!IS_ERR_OR_NULL(pdev)) 139 if (!IS_ERR_OR_NULL(pdev))
146 return 1; 140 return 1;
147 141
diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index 552010288135..373657f7e35a 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -395,7 +395,7 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
395 395
396 dev_desc = (const struct lpss_device_desc *)id->driver_data; 396 dev_desc = (const struct lpss_device_desc *)id->driver_data;
397 if (!dev_desc) { 397 if (!dev_desc) {
398 pdev = acpi_create_platform_device(adev); 398 pdev = acpi_create_platform_device(adev, NULL);
399 return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1; 399 return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1;
400 } 400 }
401 pdata = kzalloc(sizeof(*pdata), GFP_KERNEL); 401 pdata = kzalloc(sizeof(*pdata), GFP_KERNEL);
@@ -451,14 +451,8 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
451 goto err_out; 451 goto err_out;
452 } 452 }
453 453
454 if (dev_desc->properties) {
455 ret = device_add_properties(&adev->dev, dev_desc->properties);
456 if (ret)
457 goto err_out;
458 }
459
460 adev->driver_data = pdata; 454 adev->driver_data = pdata;
461 pdev = acpi_create_platform_device(adev); 455 pdev = acpi_create_platform_device(adev, dev_desc->properties);
462 if (!IS_ERR_OR_NULL(pdev)) { 456 if (!IS_ERR_OR_NULL(pdev)) {
463 return 1; 457 return 1;
464 } 458 }
diff --git a/drivers/acpi/acpi_platform.c b/drivers/acpi/acpi_platform.c
index 159f7f19abce..56e70da83c6c 100644
--- a/drivers/acpi/acpi_platform.c
+++ b/drivers/acpi/acpi_platform.c
@@ -33,6 +33,7 @@ static const struct acpi_device_id forbidden_id_list[] = {
33/** 33/**
34 * acpi_create_platform_device - Create platform device for ACPI device node 34 * acpi_create_platform_device - Create platform device for ACPI device node
35 * @adev: ACPI device node to create a platform device for. 35 * @adev: ACPI device node to create a platform device for.
36 * @properties: Optional collection of build-in properties.
36 * 37 *
37 * Check if the given @adev can be represented as a platform device and, if 38 * Check if the given @adev can be represented as a platform device and, if
38 * that's the case, create and register a platform device, populate its common 39 * that's the case, create and register a platform device, populate its common
@@ -40,7 +41,8 @@ static const struct acpi_device_id forbidden_id_list[] = {
40 * 41 *
41 * Name of the platform device will be the same as @adev's. 42 * Name of the platform device will be the same as @adev's.
42 */ 43 */
43struct platform_device *acpi_create_platform_device(struct acpi_device *adev) 44struct platform_device *acpi_create_platform_device(struct acpi_device *adev,
45 struct property_entry *properties)
44{ 46{
45 struct platform_device *pdev = NULL; 47 struct platform_device *pdev = NULL;
46 struct platform_device_info pdevinfo; 48 struct platform_device_info pdevinfo;
@@ -88,6 +90,7 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev)
88 pdevinfo.res = resources; 90 pdevinfo.res = resources;
89 pdevinfo.num_res = count; 91 pdevinfo.num_res = count;
90 pdevinfo.fwnode = acpi_fwnode_handle(adev); 92 pdevinfo.fwnode = acpi_fwnode_handle(adev);
93 pdevinfo.properties = properties;
91 94
92 if (acpi_dma_supported(adev)) 95 if (acpi_dma_supported(adev))
93 pdevinfo.dma_mask = DMA_BIT_MASK(32); 96 pdevinfo.dma_mask = DMA_BIT_MASK(32);
diff --git a/drivers/acpi/dptf/int340x_thermal.c b/drivers/acpi/dptf/int340x_thermal.c
index 33505c651f62..86364097e236 100644
--- a/drivers/acpi/dptf/int340x_thermal.c
+++ b/drivers/acpi/dptf/int340x_thermal.c
@@ -34,11 +34,11 @@ static int int340x_thermal_handler_attach(struct acpi_device *adev,
34 const struct acpi_device_id *id) 34 const struct acpi_device_id *id)
35{ 35{
36 if (IS_ENABLED(CONFIG_INT340X_THERMAL)) 36 if (IS_ENABLED(CONFIG_INT340X_THERMAL))
37 acpi_create_platform_device(adev); 37 acpi_create_platform_device(adev, NULL);
38 /* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */ 38 /* Intel SoC DTS thermal driver needs INT3401 to set IRQ descriptor */
39 else if (IS_ENABLED(CONFIG_INTEL_SOC_DTS_THERMAL) && 39 else if (IS_ENABLED(CONFIG_INTEL_SOC_DTS_THERMAL) &&
40 id->driver_data == INT3401_DEVICE) 40 id->driver_data == INT3401_DEVICE)
41 acpi_create_platform_device(adev); 41 acpi_create_platform_device(adev, NULL);
42 return 1; 42 return 1;
43} 43}
44 44
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index ad9fc84a8601..3d31ae3a482d 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -1734,7 +1734,7 @@ static void acpi_default_enumeration(struct acpi_device *device)
1734 &is_spi_i2c_slave); 1734 &is_spi_i2c_slave);
1735 acpi_dev_free_resource_list(&resource_list); 1735 acpi_dev_free_resource_list(&resource_list);
1736 if (!is_spi_i2c_slave) { 1736 if (!is_spi_i2c_slave) {
1737 acpi_create_platform_device(device); 1737 acpi_create_platform_device(device, NULL);
1738 acpi_device_set_enumerated(device); 1738 acpi_device_set_enumerated(device);
1739 } else { 1739 } else {
1740 blocking_notifier_call_chain(&acpi_reconfig_chain, 1740 blocking_notifier_call_chain(&acpi_reconfig_chain,
diff --git a/drivers/platform/x86/intel-hid.c b/drivers/platform/x86/intel-hid.c
index ed5874217ee7..12dbb5063376 100644
--- a/drivers/platform/x86/intel-hid.c
+++ b/drivers/platform/x86/intel-hid.c
@@ -264,7 +264,7 @@ check_acpi_dev(acpi_handle handle, u32 lvl, void *context, void **rv)
264 return AE_OK; 264 return AE_OK;
265 265
266 if (acpi_match_device_ids(dev, ids) == 0) 266 if (acpi_match_device_ids(dev, ids) == 0)
267 if (acpi_create_platform_device(dev)) 267 if (acpi_create_platform_device(dev, NULL))
268 dev_info(&dev->dev, 268 dev_info(&dev->dev,
269 "intel-hid: created platform device\n"); 269 "intel-hid: created platform device\n");
270 270
diff --git a/drivers/platform/x86/intel-vbtn.c b/drivers/platform/x86/intel-vbtn.c
index 146d02f8c9bc..78080763df51 100644
--- a/drivers/platform/x86/intel-vbtn.c
+++ b/drivers/platform/x86/intel-vbtn.c
@@ -164,7 +164,7 @@ check_acpi_dev(acpi_handle handle, u32 lvl, void *context, void **rv)
164 return AE_OK; 164 return AE_OK;
165 165
166 if (acpi_match_device_ids(dev, ids) == 0) 166 if (acpi_match_device_ids(dev, ids) == 0)
167 if (acpi_create_platform_device(dev)) 167 if (acpi_create_platform_device(dev, NULL))
168 dev_info(&dev->dev, 168 dev_info(&dev->dev,
169 "intel-vbtn: created platform device\n"); 169 "intel-vbtn: created platform device\n");
170 170
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 632ec16a855e..c09936f55166 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -546,7 +546,8 @@ int acpi_device_uevent_modalias(struct device *, struct kobj_uevent_env *);
546int acpi_device_modalias(struct device *, char *, int); 546int acpi_device_modalias(struct device *, char *, int);
547void acpi_walk_dep_device_list(acpi_handle handle); 547void acpi_walk_dep_device_list(acpi_handle handle);
548 548
549struct platform_device *acpi_create_platform_device(struct acpi_device *); 549struct platform_device *acpi_create_platform_device(struct acpi_device *,
550 struct property_entry *);
550#define ACPI_PTR(_ptr) (_ptr) 551#define ACPI_PTR(_ptr) (_ptr)
551 552
552static inline void acpi_device_set_enumerated(struct acpi_device *adev) 553static inline void acpi_device_set_enumerated(struct acpi_device *adev)