diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-11-11 17:23:02 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-11-11 17:23:02 -0500 |
commit | 66f5854c6894dc028fc13345838c6f82bfcfef0c (patch) | |
tree | 76ac271549bca0d1199df15e1087dcd0d3c6e911 | |
parent | bc33b0ca11e3df467777a4fa7639ba488c9d4911 (diff) | |
parent | 1571875beecd5de9657f73931449bda1b1329b6f (diff) |
Merge branch 'device-properties'
* device-properties:
ACPI / platform: Add support for build-in properties
-rw-r--r-- | drivers/acpi/acpi_apd.c | 10 | ||||
-rw-r--r-- | drivers/acpi/acpi_lpss.c | 10 | ||||
-rw-r--r-- | drivers/acpi/acpi_platform.c | 5 | ||||
-rw-r--r-- | drivers/acpi/dptf/int340x_thermal.c | 4 | ||||
-rw-r--r-- | drivers/acpi/scan.c | 2 | ||||
-rw-r--r-- | drivers/platform/x86/intel-hid.c | 2 | ||||
-rw-r--r-- | drivers/platform/x86/intel-vbtn.c | 2 | ||||
-rw-r--r-- | include/linux/acpi.h | 3 |
8 files changed, 15 insertions, 23 deletions
diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c index d58fbf7f04e6..7dd70927991e 100644 --- a/drivers/acpi/acpi_apd.c +++ b/drivers/acpi/acpi_apd.c | |||
@@ -122,7 +122,7 @@ static int acpi_apd_create_device(struct acpi_device *adev, | |||
122 | int ret; | 122 | int ret; |
123 | 123 | ||
124 | if (!dev_desc) { | 124 | if (!dev_desc) { |
125 | pdev = acpi_create_platform_device(adev); | 125 | pdev = acpi_create_platform_device(adev, NULL); |
126 | return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1; | 126 | return IS_ERR_OR_NULL(pdev) ? PTR_ERR(pdev) : 1; |
127 | } | 127 | } |
128 | 128 | ||
@@ -139,14 +139,8 @@ static int acpi_apd_create_device(struct acpi_device *adev, | |||
139 | goto err_out; | 139 | goto err_out; |
140 | } | 140 | } |
141 | 141 | ||
142 | if (dev_desc->properties) { | ||
143 | ret = device_add_properties(&adev->dev, dev_desc->properties); | ||
144 | if (ret) | ||
145 | goto err_out; | ||
146 | } | ||
147 | |||
148 | adev->driver_data = pdata; | 142 | adev->driver_data = pdata; |
149 | pdev = acpi_create_platform_device(adev); | 143 | pdev = acpi_create_platform_device(adev, dev_desc->properties); |
150 | if (!IS_ERR_OR_NULL(pdev)) | 144 | if (!IS_ERR_OR_NULL(pdev)) |
151 | return 1; | 145 | return 1; |
152 | 146 | ||
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 b200ae1f3c6f..b4c1a6a51da4 100644 --- a/drivers/acpi/acpi_platform.c +++ b/drivers/acpi/acpi_platform.c | |||
@@ -50,6 +50,7 @@ static void acpi_platform_fill_resource(struct acpi_device *adev, | |||
50 | /** | 50 | /** |
51 | * acpi_create_platform_device - Create platform device for ACPI device node | 51 | * acpi_create_platform_device - Create platform device for ACPI device node |
52 | * @adev: ACPI device node to create a platform device for. | 52 | * @adev: ACPI device node to create a platform device for. |
53 | * @properties: Optional collection of build-in properties. | ||
53 | * | 54 | * |
54 | * Check if the given @adev can be represented as a platform device and, if | 55 | * Check if the given @adev can be represented as a platform device and, if |
55 | * that's the case, create and register a platform device, populate its common | 56 | * 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, | |||
57 | * | 58 | * |
58 | * Name of the platform device will be the same as @adev's. | 59 | * Name of the platform device will be the same as @adev's. |
59 | */ | 60 | */ |
60 | struct platform_device *acpi_create_platform_device(struct acpi_device *adev) | 61 | struct platform_device *acpi_create_platform_device(struct acpi_device *adev, |
62 | struct property_entry *properties) | ||
61 | { | 63 | { |
62 | struct platform_device *pdev = NULL; | 64 | struct platform_device *pdev = NULL; |
63 | struct platform_device_info pdevinfo; | 65 | struct platform_device_info pdevinfo; |
@@ -106,6 +108,7 @@ struct platform_device *acpi_create_platform_device(struct acpi_device *adev) | |||
106 | pdevinfo.res = resources; | 108 | pdevinfo.res = resources; |
107 | pdevinfo.num_res = count; | 109 | pdevinfo.num_res = count; |
108 | pdevinfo.fwnode = acpi_fwnode_handle(adev); | 110 | pdevinfo.fwnode = acpi_fwnode_handle(adev); |
111 | pdevinfo.properties = properties; | ||
109 | 112 | ||
110 | if (acpi_dma_supported(adev)) | 113 | if (acpi_dma_supported(adev)) |
111 | pdevinfo.dma_mask = DMA_BIT_MASK(32); | 114 | 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 035ac646d8db..3d1856f1f4d0 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 689a8b9b9c8f..61a3d90f32b3 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -555,7 +555,8 @@ int acpi_device_uevent_modalias(struct device *, struct kobj_uevent_env *); | |||
555 | int acpi_device_modalias(struct device *, char *, int); | 555 | int acpi_device_modalias(struct device *, char *, int); |
556 | void acpi_walk_dep_device_list(acpi_handle handle); | 556 | void acpi_walk_dep_device_list(acpi_handle handle); |
557 | 557 | ||
558 | struct platform_device *acpi_create_platform_device(struct acpi_device *); | 558 | struct platform_device *acpi_create_platform_device(struct acpi_device *, |
559 | struct property_entry *); | ||
559 | #define ACPI_PTR(_ptr) (_ptr) | 560 | #define ACPI_PTR(_ptr) (_ptr) |
560 | 561 | ||
561 | static inline void acpi_device_set_enumerated(struct acpi_device *adev) | 562 | static inline void acpi_device_set_enumerated(struct acpi_device *adev) |