diff options
author | Kay Sievers <kay.sievers@vrfy.org> | 2007-08-17 22:40:39 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-10-12 17:50:59 -0400 |
commit | 43cc71eed1250755986da4c0f9898f9a635cb3bf (patch) | |
tree | 5ffed3b363ee1d5e66e87b9979451f1f9f4bafb0 /drivers/base/platform.c | |
parent | 782e3b3b3804c38d5130c7f21d7ec7bf6709023f (diff) |
platform: prefix MODALIAS with "platform:"
Prefix platform modalias strings with "platform:", which
modprobe config to blacklist alias resolving if userspace
configures it.
Send uevents for all platform devices.
Add MODULE_ALIAS's to: pxa2xx_pcmcia, ds1742 and pcspkr to trigger
module autoloading by userspace.
$ modinfo pcspkr
alias: platform:pcspkr
license: GPL
description: PC Speaker beeper driver
...
$ modprobe -n -v platform:pcspkr
insmod /lib/modules/2.6.23-rc3-g28e8351a-dirty/kernel/drivers/input/misc/pcspkr.ko
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Cc: David Brownell <david-b@pacbell.net>
Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r-- | drivers/base/platform.c | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c index 869ff8c00146..9bfc434d1327 100644 --- a/drivers/base/platform.c +++ b/drivers/base/platform.c | |||
@@ -160,11 +160,6 @@ static void platform_device_release(struct device *dev) | |||
160 | * | 160 | * |
161 | * Create a platform device object which can have other objects attached | 161 | * Create a platform device object which can have other objects attached |
162 | * to it, and which will have attached objects freed when it is released. | 162 | * to it, and which will have attached objects freed when it is released. |
163 | * | ||
164 | * This device will be marked as not supporting hotpluggable drivers; no | ||
165 | * device add/remove uevents will be generated. In the unusual case that | ||
166 | * the device isn't being dynamically allocated as a legacy "probe the | ||
167 | * hardware" driver, infrastructure code should reverse this marking. | ||
168 | */ | 163 | */ |
169 | struct platform_device *platform_device_alloc(const char *name, unsigned int id) | 164 | struct platform_device *platform_device_alloc(const char *name, unsigned int id) |
170 | { | 165 | { |
@@ -177,12 +172,6 @@ struct platform_device *platform_device_alloc(const char *name, unsigned int id) | |||
177 | pa->pdev.id = id; | 172 | pa->pdev.id = id; |
178 | device_initialize(&pa->pdev.dev); | 173 | device_initialize(&pa->pdev.dev); |
179 | pa->pdev.dev.release = platform_device_release; | 174 | pa->pdev.dev.release = platform_device_release; |
180 | |||
181 | /* prevent hotplug "modprobe $(MODALIAS)" from causing trouble in | ||
182 | * legacy probe-the-hardware drivers, which don't properly split | ||
183 | * out device enumeration logic from drivers. | ||
184 | */ | ||
185 | pa->pdev.dev.uevent_suppress = 1; | ||
186 | } | 175 | } |
187 | 176 | ||
188 | return pa ? &pa->pdev : NULL; | 177 | return pa ? &pa->pdev : NULL; |
@@ -530,7 +519,7 @@ static ssize_t | |||
530 | modalias_show(struct device *dev, struct device_attribute *a, char *buf) | 519 | modalias_show(struct device *dev, struct device_attribute *a, char *buf) |
531 | { | 520 | { |
532 | struct platform_device *pdev = to_platform_device(dev); | 521 | struct platform_device *pdev = to_platform_device(dev); |
533 | int len = snprintf(buf, PAGE_SIZE, "%s\n", pdev->name); | 522 | int len = snprintf(buf, PAGE_SIZE, "platform:%s\n", pdev->name); |
534 | 523 | ||
535 | return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len; | 524 | return (len >= PAGE_SIZE) ? (PAGE_SIZE - 1) : len; |
536 | } | 525 | } |
@@ -546,7 +535,7 @@ static int platform_uevent(struct device *dev, char **envp, int num_envp, | |||
546 | struct platform_device *pdev = to_platform_device(dev); | 535 | struct platform_device *pdev = to_platform_device(dev); |
547 | 536 | ||
548 | envp[0] = buffer; | 537 | envp[0] = buffer; |
549 | snprintf(buffer, buffer_size, "MODALIAS=%s", pdev->name); | 538 | snprintf(buffer, buffer_size, "MODALIAS=platform:%s", pdev->name); |
550 | return 0; | 539 | return 0; |
551 | } | 540 | } |
552 | 541 | ||