aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2008-04-17 19:38:45 -0400
committerSteve French <sfrench@us.ibm.com>2008-04-17 19:38:45 -0400
commit20e673810c69d18bee2ed74d19af3806ec2504f5 (patch)
tree7c22dc5246295a82f2688a23ae1c7f3a4f424302 /drivers
parent8d142137b4fe87188f211042b16a5993964226f9 (diff)
parent4b119e21d0c66c22e8ca03df05d9de623d0eb50f (diff)
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers')
-rw-r--r--drivers/acpi/bus.c7
-rw-r--r--drivers/ide/mips/au1xxx-ide.c18
-rw-r--r--drivers/ide/pci/it821x.c2
-rw-r--r--drivers/leds/leds-ams-delta.c2
-rw-r--r--drivers/leds/leds-atmel-pwm.c3
-rw-r--r--drivers/leds/leds-clevo-mail.c1
-rw-r--r--drivers/leds/leds-cm-x270.c2
-rw-r--r--drivers/leds/leds-cobalt-qube.c3
-rw-r--r--drivers/leds/leds-corgi.c2
-rw-r--r--drivers/leds/leds-gpio.c1
-rw-r--r--drivers/leds/leds-h1940.c2
-rw-r--r--drivers/leds/leds-hp6xx.c4
-rw-r--r--drivers/leds/leds-s3c24xx.c1
-rw-r--r--drivers/leds/leds-spitz.c2
-rw-r--r--drivers/leds/leds-tosa.c2
-rw-r--r--drivers/misc/atmel-ssc.c2
-rw-r--r--drivers/misc/atmel_pwm.c1
-rw-r--r--drivers/misc/hdpuftrs/hdpu_cpustate.c2
-rw-r--r--drivers/misc/hdpuftrs/hdpu_nexus.c2
-rw-r--r--drivers/mmc/host/at91_mci.c1
-rw-r--r--drivers/mmc/host/au1xmmc.c2
-rw-r--r--drivers/mmc/host/imxmmc.c2
-rw-r--r--drivers/mmc/host/omap.c3
-rw-r--r--drivers/mmc/host/pxamci.c2
-rw-r--r--drivers/mmc/host/wbsd.c1
-rw-r--r--drivers/net/b44.c52
-rw-r--r--drivers/net/netconsole.c5
-rw-r--r--drivers/net/ps3_gelic_wireless.c11
-rw-r--r--drivers/net/wireless/b43/dma.c27
-rw-r--r--drivers/net/wireless/b43legacy/dma.c55
-rw-r--r--drivers/net/wireless/b43legacy/main.c2
-rw-r--r--drivers/net/wireless/rtl8187_dev.c3
-rw-r--r--drivers/pcmcia/at91_cf.c1
-rw-r--r--drivers/pcmcia/omap_cf.c2
-rw-r--r--drivers/pcmcia/pxa2xx_base.c2
-rw-r--r--drivers/rtc/rtc-cmos.c5
-rw-r--r--drivers/serial/atmel_serial.c1
-rw-r--r--drivers/serial/bfin_5xx.c2
-rw-r--r--drivers/serial/imx.c2
-rw-r--r--drivers/serial/mcf.c1
-rw-r--r--drivers/serial/mpc52xx_uart.c2
-rw-r--r--drivers/serial/mpsc.c2
-rw-r--r--drivers/serial/netx-serial.c2
-rw-r--r--drivers/serial/pnx8xxx_uart.c1
-rw-r--r--drivers/serial/pxa.c3
-rw-r--r--drivers/serial/s3c2410.c4
-rw-r--r--drivers/serial/sa1100.c2
-rw-r--r--drivers/serial/sc26xx.c2
-rw-r--r--drivers/serial/sh-sci.c1
-rw-r--r--drivers/serial/uartlite.c3
-rw-r--r--drivers/serial/vr41xx_siu.c3
-rw-r--r--drivers/spi/spi_s3c24xx.c20
-rw-r--r--drivers/ssb/main.c14
-rw-r--r--drivers/thermal/thermal.c4
-rw-r--r--drivers/usb/serial/option.c56
-rw-r--r--drivers/usb/serial/usb-serial.c2
-rw-r--r--drivers/usb/storage/unusual_devs.h96
-rw-r--r--drivers/video/fbmem.c1
58 files changed, 354 insertions, 105 deletions
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 5b6760e0f957..2d1955c11833 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -373,10 +373,11 @@ int acpi_bus_receive_event(struct acpi_bus_event *event)
373 } 373 }
374 374
375 spin_lock_irqsave(&acpi_bus_event_lock, flags); 375 spin_lock_irqsave(&acpi_bus_event_lock, flags);
376 entry = 376 if (!list_empty(&acpi_bus_event_list)) {
377 list_entry(acpi_bus_event_list.next, struct acpi_bus_event, node); 377 entry = list_entry(acpi_bus_event_list.next,
378 if (entry) 378 struct acpi_bus_event, node);
379 list_del(&entry->node); 379 list_del(&entry->node);
380 }
380 spin_unlock_irqrestore(&acpi_bus_event_lock, flags); 381 spin_unlock_irqrestore(&acpi_bus_event_lock, flags);
381 382
382 if (!entry) 383 if (!entry)
diff --git a/drivers/ide/mips/au1xxx-ide.c b/drivers/ide/mips/au1xxx-ide.c
index 0f4bf5d72835..85c016bdfd38 100644
--- a/drivers/ide/mips/au1xxx-ide.c
+++ b/drivers/ide/mips/au1xxx-ide.c
@@ -32,19 +32,12 @@
32#include <linux/kernel.h> 32#include <linux/kernel.h>
33#include <linux/delay.h> 33#include <linux/delay.h>
34#include <linux/platform_device.h> 34#include <linux/platform_device.h>
35
36#include <linux/init.h> 35#include <linux/init.h>
37#include <linux/ide.h> 36#include <linux/ide.h>
38#include <linux/sysdev.h> 37#include <linux/scatterlist.h>
39
40#include <linux/dma-mapping.h>
41
42#include "ide-timing.h"
43 38
44#include <asm/io.h>
45#include <asm/mach-au1x00/au1xxx.h> 39#include <asm/mach-au1x00/au1xxx.h>
46#include <asm/mach-au1x00/au1xxx_dbdma.h> 40#include <asm/mach-au1x00/au1xxx_dbdma.h>
47
48#include <asm/mach-au1x00/au1xxx_ide.h> 41#include <asm/mach-au1x00/au1xxx_ide.h>
49 42
50#define DRV_NAME "au1200-ide" 43#define DRV_NAME "au1200-ide"
@@ -56,6 +49,8 @@
56static _auide_hwif auide_hwif; 49static _auide_hwif auide_hwif;
57static int dbdma_init_done; 50static int dbdma_init_done;
58 51
52static int auide_ddma_init(_auide_hwif *auide);
53
59#if defined(CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA) 54#if defined(CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA)
60 55
61void auide_insw(unsigned long port, void *addr, u32 count) 56void auide_insw(unsigned long port, void *addr, u32 count)
@@ -591,13 +586,14 @@ static int au_ide_probe(struct device *dev)
591 goto out; 586 goto out;
592 } 587 }
593 588
594 if (!request_mem_region (res->start, res->end-res->start, pdev->name)) { 589 if (!request_mem_region(res->start, res->end - res->start + 1,
590 pdev->name)) {
595 pr_debug("%s: request_mem_region failed\n", DRV_NAME); 591 pr_debug("%s: request_mem_region failed\n", DRV_NAME);
596 ret = -EBUSY; 592 ret = -EBUSY;
597 goto out; 593 goto out;
598 } 594 }
599 595
600 ahwif->regbase = (u32)ioremap(res->start, res->end-res->start); 596 ahwif->regbase = (u32)ioremap(res->start, res->end - res->start + 1);
601 if (ahwif->regbase == 0) { 597 if (ahwif->regbase == 0) {
602 ret = -ENOMEM; 598 ret = -ENOMEM;
603 goto out; 599 goto out;
@@ -682,7 +678,7 @@ static int au_ide_remove(struct device *dev)
682 iounmap((void *)ahwif->regbase); 678 iounmap((void *)ahwif->regbase);
683 679
684 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 680 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
685 release_mem_region(res->start, res->end - res->start); 681 release_mem_region(res->start, res->end - res->start + 1);
686 682
687 return 0; 683 return 0;
688} 684}
diff --git a/drivers/ide/pci/it821x.c b/drivers/ide/pci/it821x.c
index 1597f0cc1bf1..d8a167451fd6 100644
--- a/drivers/ide/pci/it821x.c
+++ b/drivers/ide/pci/it821x.c
@@ -667,7 +667,7 @@ static int __init it821x_ide_init(void)
667module_init(it821x_ide_init); 667module_init(it821x_ide_init);
668 668
669module_param_named(noraid, it8212_noraid, int, S_IRUGO); 669module_param_named(noraid, it8212_noraid, int, S_IRUGO);
670MODULE_PARM_DESC(it8212_noraid, "Force card into bypass mode"); 670MODULE_PARM_DESC(noraid, "Force card into bypass mode");
671 671
672MODULE_AUTHOR("Alan Cox"); 672MODULE_AUTHOR("Alan Cox");
673MODULE_DESCRIPTION("PCI driver module for the ITE 821x"); 673MODULE_DESCRIPTION("PCI driver module for the ITE 821x");
diff --git a/drivers/leds/leds-ams-delta.c b/drivers/leds/leds-ams-delta.c
index 9e3077463d84..c37bb0d5a0c5 100644
--- a/drivers/leds/leds-ams-delta.c
+++ b/drivers/leds/leds-ams-delta.c
@@ -140,6 +140,7 @@ static struct platform_driver ams_delta_led_driver = {
140 .resume = ams_delta_led_resume, 140 .resume = ams_delta_led_resume,
141 .driver = { 141 .driver = {
142 .name = "ams-delta-led", 142 .name = "ams-delta-led",
143 .owner = THIS_MODULE,
143 }, 144 },
144}; 145};
145 146
@@ -159,3 +160,4 @@ module_exit(ams_delta_led_exit);
159MODULE_AUTHOR("Jonathan McDowell <noodles@earth.li>"); 160MODULE_AUTHOR("Jonathan McDowell <noodles@earth.li>");
160MODULE_DESCRIPTION("Amstrad Delta LED driver"); 161MODULE_DESCRIPTION("Amstrad Delta LED driver");
161MODULE_LICENSE("GPL"); 162MODULE_LICENSE("GPL");
163MODULE_ALIAS("platform:ams-delta-led");
diff --git a/drivers/leds/leds-atmel-pwm.c b/drivers/leds/leds-atmel-pwm.c
index af61f55571fe..28db6c1444ed 100644
--- a/drivers/leds/leds-atmel-pwm.c
+++ b/drivers/leds/leds-atmel-pwm.c
@@ -132,6 +132,9 @@ static int __exit pwmled_remove(struct platform_device *pdev)
132 return 0; 132 return 0;
133} 133}
134 134
135/* work with hotplug and coldplug */
136MODULE_ALIAS("platform:leds-atmel-pwm");
137
135static struct platform_driver pwmled_driver = { 138static struct platform_driver pwmled_driver = {
136 .driver = { 139 .driver = {
137 .name = "leds-atmel-pwm", 140 .name = "leds-atmel-pwm",
diff --git a/drivers/leds/leds-clevo-mail.c b/drivers/leds/leds-clevo-mail.c
index 6c3d33b8e383..5750b08b601f 100644
--- a/drivers/leds/leds-clevo-mail.c
+++ b/drivers/leds/leds-clevo-mail.c
@@ -170,6 +170,7 @@ static struct platform_driver clevo_mail_led_driver = {
170 .resume = clevo_mail_led_resume, 170 .resume = clevo_mail_led_resume,
171 .driver = { 171 .driver = {
172 .name = KBUILD_MODNAME, 172 .name = KBUILD_MODNAME,
173 .owner = THIS_MODULE,
173 }, 174 },
174}; 175};
175 176
diff --git a/drivers/leds/leds-cm-x270.c b/drivers/leds/leds-cm-x270.c
index 9aebef02a974..accc7eddb788 100644
--- a/drivers/leds/leds-cm-x270.c
+++ b/drivers/leds/leds-cm-x270.c
@@ -101,6 +101,7 @@ static struct platform_driver cmx270led_driver = {
101#endif 101#endif
102 .driver = { 102 .driver = {
103 .name = "cm-x270-led", 103 .name = "cm-x270-led",
104 .owner = THIS_MODULE,
104 }, 105 },
105}; 106};
106 107
@@ -120,3 +121,4 @@ module_exit(cmx270led_exit);
120MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>"); 121MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>");
121MODULE_DESCRIPTION("CM-x270 LED driver"); 122MODULE_DESCRIPTION("CM-x270 LED driver");
122MODULE_LICENSE("GPL"); 123MODULE_LICENSE("GPL");
124MODULE_ALIAS("platform:cm-x270-led");
diff --git a/drivers/leds/leds-cobalt-qube.c b/drivers/leds/leds-cobalt-qube.c
index d2b54b53d80a..096881a11b1a 100644
--- a/drivers/leds/leds-cobalt-qube.c
+++ b/drivers/leds/leds-cobalt-qube.c
@@ -75,6 +75,9 @@ static int __devexit cobalt_qube_led_remove(struct platform_device *pdev)
75 return 0; 75 return 0;
76} 76}
77 77
78/* work with hotplug and coldplug */
79MODULE_ALIAS("platform:cobalt-qube-leds");
80
78static struct platform_driver cobalt_qube_led_driver = { 81static struct platform_driver cobalt_qube_led_driver = {
79 .probe = cobalt_qube_led_probe, 82 .probe = cobalt_qube_led_probe,
80 .remove = __devexit_p(cobalt_qube_led_remove), 83 .remove = __devexit_p(cobalt_qube_led_remove),
diff --git a/drivers/leds/leds-corgi.c b/drivers/leds/leds-corgi.c
index e45f6c4b59ba..29e931f89f9c 100644
--- a/drivers/leds/leds-corgi.c
+++ b/drivers/leds/leds-corgi.c
@@ -99,6 +99,7 @@ static struct platform_driver corgiled_driver = {
99#endif 99#endif
100 .driver = { 100 .driver = {
101 .name = "corgi-led", 101 .name = "corgi-led",
102 .owner = THIS_MODULE,
102 }, 103 },
103}; 104};
104 105
@@ -118,3 +119,4 @@ module_exit(corgiled_exit);
118MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>"); 119MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
119MODULE_DESCRIPTION("Corgi LED driver"); 120MODULE_DESCRIPTION("Corgi LED driver");
120MODULE_LICENSE("GPL"); 121MODULE_LICENSE("GPL");
122MODULE_ALIAS("platform:corgi-led");
diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
index 4c0b05852cb6..1aae8b332134 100644
--- a/drivers/leds/leds-gpio.c
+++ b/drivers/leds/leds-gpio.c
@@ -199,3 +199,4 @@ module_exit(gpio_led_exit);
199MODULE_AUTHOR("Raphael Assenat <raph@8d.com>"); 199MODULE_AUTHOR("Raphael Assenat <raph@8d.com>");
200MODULE_DESCRIPTION("GPIO LED driver"); 200MODULE_DESCRIPTION("GPIO LED driver");
201MODULE_LICENSE("GPL"); 201MODULE_LICENSE("GPL");
202MODULE_ALIAS("platform:leds-gpio");
diff --git a/drivers/leds/leds-h1940.c b/drivers/leds/leds-h1940.c
index 677c99325be5..6e51c9b61027 100644
--- a/drivers/leds/leds-h1940.c
+++ b/drivers/leds/leds-h1940.c
@@ -139,6 +139,7 @@ static int h1940leds_remove(struct platform_device *pdev)
139static struct platform_driver h1940leds_driver = { 139static struct platform_driver h1940leds_driver = {
140 .driver = { 140 .driver = {
141 .name = "h1940-leds", 141 .name = "h1940-leds",
142 .owner = THIS_MODULE,
142 }, 143 },
143 .probe = h1940leds_probe, 144 .probe = h1940leds_probe,
144 .remove = h1940leds_remove, 145 .remove = h1940leds_remove,
@@ -161,3 +162,4 @@ module_exit(h1940leds_exit);
161MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>"); 162MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");
162MODULE_DESCRIPTION("LED driver for the iPAQ H1940"); 163MODULE_DESCRIPTION("LED driver for the iPAQ H1940");
163MODULE_LICENSE("GPL"); 164MODULE_LICENSE("GPL");
165MODULE_ALIAS("platform:h1940-leds");
diff --git a/drivers/leds/leds-hp6xx.c b/drivers/leds/leds-hp6xx.c
index 82d4ec384797..870f5a3789e8 100644
--- a/drivers/leds/leds-hp6xx.c
+++ b/drivers/leds/leds-hp6xx.c
@@ -90,6 +90,9 @@ static int hp6xxled_remove(struct platform_device *pdev)
90 return 0; 90 return 0;
91} 91}
92 92
93/* work with hotplug and coldplug */
94MODULE_ALIAS("platform:hp6xx-led");
95
93static struct platform_driver hp6xxled_driver = { 96static struct platform_driver hp6xxled_driver = {
94 .probe = hp6xxled_probe, 97 .probe = hp6xxled_probe,
95 .remove = hp6xxled_remove, 98 .remove = hp6xxled_remove,
@@ -99,6 +102,7 @@ static struct platform_driver hp6xxled_driver = {
99#endif 102#endif
100 .driver = { 103 .driver = {
101 .name = "hp6xx-led", 104 .name = "hp6xx-led",
105 .owner = THIS_MODULE,
102 }, 106 },
103}; 107};
104 108
diff --git a/drivers/leds/leds-s3c24xx.c b/drivers/leds/leds-s3c24xx.c
index 0fd640751294..0d10e119d8f5 100644
--- a/drivers/leds/leds-s3c24xx.c
+++ b/drivers/leds/leds-s3c24xx.c
@@ -160,3 +160,4 @@ module_exit(s3c24xx_led_exit);
160MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); 160MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
161MODULE_DESCRIPTION("S3C24XX LED driver"); 161MODULE_DESCRIPTION("S3C24XX LED driver");
162MODULE_LICENSE("GPL"); 162MODULE_LICENSE("GPL");
163MODULE_ALIAS("platform:s3c24xx_led");
diff --git a/drivers/leds/leds-spitz.c b/drivers/leds/leds-spitz.c
index 93e1012b17e6..87007cc362c1 100644
--- a/drivers/leds/leds-spitz.c
+++ b/drivers/leds/leds-spitz.c
@@ -105,6 +105,7 @@ static struct platform_driver spitzled_driver = {
105#endif 105#endif
106 .driver = { 106 .driver = {
107 .name = "spitz-led", 107 .name = "spitz-led",
108 .owner = THIS_MODULE,
108 }, 109 },
109}; 110};
110 111
@@ -124,3 +125,4 @@ module_exit(spitzled_exit);
124MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>"); 125MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
125MODULE_DESCRIPTION("Spitz LED driver"); 126MODULE_DESCRIPTION("Spitz LED driver");
126MODULE_LICENSE("GPL"); 127MODULE_LICENSE("GPL");
128MODULE_ALIAS("platform:spitz-led");
diff --git a/drivers/leds/leds-tosa.c b/drivers/leds/leds-tosa.c
index 9e0a188fbb0a..7ebecc41a9be 100644
--- a/drivers/leds/leds-tosa.c
+++ b/drivers/leds/leds-tosa.c
@@ -109,6 +109,7 @@ static struct platform_driver tosaled_driver = {
109 .resume = tosaled_resume, 109 .resume = tosaled_resume,
110 .driver = { 110 .driver = {
111 .name = "tosa-led", 111 .name = "tosa-led",
112 .owner = THIS_MODULE,
112 }, 113 },
113}; 114};
114 115
@@ -128,3 +129,4 @@ module_exit(tosaled_exit);
128MODULE_AUTHOR("Dirk Opfer <Dirk@Opfer-Online.de>"); 129MODULE_AUTHOR("Dirk Opfer <Dirk@Opfer-Online.de>");
129MODULE_DESCRIPTION("Tosa LED driver"); 130MODULE_DESCRIPTION("Tosa LED driver");
130MODULE_LICENSE("GPL"); 131MODULE_LICENSE("GPL");
132MODULE_ALIAS("platform:tosa-led");
diff --git a/drivers/misc/atmel-ssc.c b/drivers/misc/atmel-ssc.c
index 058ccac700d0..e171650766ce 100644
--- a/drivers/misc/atmel-ssc.c
+++ b/drivers/misc/atmel-ssc.c
@@ -154,6 +154,7 @@ static struct platform_driver ssc_driver = {
154 .remove = __devexit_p(ssc_remove), 154 .remove = __devexit_p(ssc_remove),
155 .driver = { 155 .driver = {
156 .name = "ssc", 156 .name = "ssc",
157 .owner = THIS_MODULE,
157 }, 158 },
158}; 159};
159 160
@@ -172,3 +173,4 @@ module_exit(ssc_exit);
172MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>"); 173MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>");
173MODULE_DESCRIPTION("SSC driver for Atmel AVR32 and AT91"); 174MODULE_DESCRIPTION("SSC driver for Atmel AVR32 and AT91");
174MODULE_LICENSE("GPL"); 175MODULE_LICENSE("GPL");
176MODULE_ALIAS("platform:ssc");
diff --git a/drivers/misc/atmel_pwm.c b/drivers/misc/atmel_pwm.c
index f8d3b9a76cbd..0d5ce03cdff2 100644
--- a/drivers/misc/atmel_pwm.c
+++ b/drivers/misc/atmel_pwm.c
@@ -407,3 +407,4 @@ module_exit(pwm_exit);
407 407
408MODULE_DESCRIPTION("Driver for AT32/AT91 PWM module"); 408MODULE_DESCRIPTION("Driver for AT32/AT91 PWM module");
409MODULE_LICENSE("GPL"); 409MODULE_LICENSE("GPL");
410MODULE_ALIAS("platform:atmel_pwm");
diff --git a/drivers/misc/hdpuftrs/hdpu_cpustate.c b/drivers/misc/hdpuftrs/hdpu_cpustate.c
index aa8ce7abe922..302e92418bbe 100644
--- a/drivers/misc/hdpuftrs/hdpu_cpustate.c
+++ b/drivers/misc/hdpuftrs/hdpu_cpustate.c
@@ -164,6 +164,7 @@ static struct platform_driver hdpu_cpustate_driver = {
164 .remove = hdpu_cpustate_remove, 164 .remove = hdpu_cpustate_remove,
165 .driver = { 165 .driver = {
166 .name = HDPU_CPUSTATE_NAME, 166 .name = HDPU_CPUSTATE_NAME,
167 .owner = THIS_MODULE,
167 }, 168 },
168}; 169};
169 170
@@ -248,3 +249,4 @@ module_exit(cpustate_exit);
248 249
249MODULE_AUTHOR("Brian Waite"); 250MODULE_AUTHOR("Brian Waite");
250MODULE_LICENSE("GPL"); 251MODULE_LICENSE("GPL");
252MODULE_ALIAS("platform:" HDPU_CPUSTATE_NAME);
diff --git a/drivers/misc/hdpuftrs/hdpu_nexus.c b/drivers/misc/hdpuftrs/hdpu_nexus.c
index 2887b2147980..2fa36f7a6eb3 100644
--- a/drivers/misc/hdpuftrs/hdpu_nexus.c
+++ b/drivers/misc/hdpuftrs/hdpu_nexus.c
@@ -55,6 +55,7 @@ static struct platform_driver hdpu_nexus_driver = {
55 .remove = hdpu_nexus_remove, 55 .remove = hdpu_nexus_remove,
56 .driver = { 56 .driver = {
57 .name = HDPU_NEXUS_NAME, 57 .name = HDPU_NEXUS_NAME,
58 .owner = THIS_MODULE,
58 }, 59 },
59}; 60};
60 61
@@ -151,3 +152,4 @@ module_exit(nexus_exit);
151 152
152MODULE_AUTHOR("Brian Waite"); 153MODULE_AUTHOR("Brian Waite");
153MODULE_LICENSE("GPL"); 154MODULE_LICENSE("GPL");
155MODULE_ALIAS("platform:" HDPU_NEXUS_NAME);
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index 21acecc9fe3a..a28fc2f68ce2 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -1075,3 +1075,4 @@ module_exit(at91_mci_exit);
1075MODULE_DESCRIPTION("AT91 Multimedia Card Interface driver"); 1075MODULE_DESCRIPTION("AT91 Multimedia Card Interface driver");
1076MODULE_AUTHOR("Nick Randell"); 1076MODULE_AUTHOR("Nick Randell");
1077MODULE_LICENSE("GPL"); 1077MODULE_LICENSE("GPL");
1078MODULE_ALIAS("platform:at91_mci");
diff --git a/drivers/mmc/host/au1xmmc.c b/drivers/mmc/host/au1xmmc.c
index c3926eb3bf43..cc5f7bc546af 100644
--- a/drivers/mmc/host/au1xmmc.c
+++ b/drivers/mmc/host/au1xmmc.c
@@ -998,6 +998,7 @@ static struct platform_driver au1xmmc_driver = {
998 .resume = NULL, 998 .resume = NULL,
999 .driver = { 999 .driver = {
1000 .name = DRIVER_NAME, 1000 .name = DRIVER_NAME,
1001 .owner = THIS_MODULE,
1001 }, 1002 },
1002}; 1003};
1003 1004
@@ -1018,5 +1019,6 @@ module_exit(au1xmmc_exit);
1018MODULE_AUTHOR("Advanced Micro Devices, Inc"); 1019MODULE_AUTHOR("Advanced Micro Devices, Inc");
1019MODULE_DESCRIPTION("MMC/SD driver for the Alchemy Au1XXX"); 1020MODULE_DESCRIPTION("MMC/SD driver for the Alchemy Au1XXX");
1020MODULE_LICENSE("GPL"); 1021MODULE_LICENSE("GPL");
1022MODULE_ALIAS("platform:au1xxx-mmc");
1021#endif 1023#endif
1022 1024
diff --git a/drivers/mmc/host/imxmmc.c b/drivers/mmc/host/imxmmc.c
index f2070a19cfa7..95f33e87a99c 100644
--- a/drivers/mmc/host/imxmmc.c
+++ b/drivers/mmc/host/imxmmc.c
@@ -1128,6 +1128,7 @@ static struct platform_driver imxmci_driver = {
1128 .resume = imxmci_resume, 1128 .resume = imxmci_resume,
1129 .driver = { 1129 .driver = {
1130 .name = DRIVER_NAME, 1130 .name = DRIVER_NAME,
1131 .owner = THIS_MODULE,
1131 } 1132 }
1132}; 1133};
1133 1134
@@ -1147,3 +1148,4 @@ module_exit(imxmci_exit);
1147MODULE_DESCRIPTION("i.MX Multimedia Card Interface Driver"); 1148MODULE_DESCRIPTION("i.MX Multimedia Card Interface Driver");
1148MODULE_AUTHOR("Sascha Hauer, Pengutronix"); 1149MODULE_AUTHOR("Sascha Hauer, Pengutronix");
1149MODULE_LICENSE("GPL"); 1150MODULE_LICENSE("GPL");
1151MODULE_ALIAS("platform:imx-mmc");
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
index c9dfeb15b487..90c358b57d1c 100644
--- a/drivers/mmc/host/omap.c
+++ b/drivers/mmc/host/omap.c
@@ -1255,6 +1255,7 @@ static struct platform_driver mmc_omap_driver = {
1255 .resume = mmc_omap_resume, 1255 .resume = mmc_omap_resume,
1256 .driver = { 1256 .driver = {
1257 .name = DRIVER_NAME, 1257 .name = DRIVER_NAME,
1258 .owner = THIS_MODULE,
1258 }, 1259 },
1259}; 1260};
1260 1261
@@ -1273,5 +1274,5 @@ module_exit(mmc_omap_exit);
1273 1274
1274MODULE_DESCRIPTION("OMAP Multimedia Card driver"); 1275MODULE_DESCRIPTION("OMAP Multimedia Card driver");
1275MODULE_LICENSE("GPL"); 1276MODULE_LICENSE("GPL");
1276MODULE_ALIAS(DRIVER_NAME); 1277MODULE_ALIAS("platform:" DRIVER_NAME);
1277MODULE_AUTHOR("Juha Yrjölä"); 1278MODULE_AUTHOR("Juha Yrjölä");
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index 1ea8482037bb..65210fca37ed 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -693,6 +693,7 @@ static struct platform_driver pxamci_driver = {
693 .resume = pxamci_resume, 693 .resume = pxamci_resume,
694 .driver = { 694 .driver = {
695 .name = DRIVER_NAME, 695 .name = DRIVER_NAME,
696 .owner = THIS_MODULE,
696 }, 697 },
697}; 698};
698 699
@@ -711,3 +712,4 @@ module_exit(pxamci_exit);
711 712
712MODULE_DESCRIPTION("PXA Multimedia Card Interface Driver"); 713MODULE_DESCRIPTION("PXA Multimedia Card Interface Driver");
713MODULE_LICENSE("GPL"); 714MODULE_LICENSE("GPL");
715MODULE_ALIAS("platform:pxa2xx-mci");
diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c
index 4d5f37421874..be624a049c67 100644
--- a/drivers/mmc/host/wbsd.c
+++ b/drivers/mmc/host/wbsd.c
@@ -1948,6 +1948,7 @@ static struct platform_driver wbsd_driver = {
1948 .resume = wbsd_platform_resume, 1948 .resume = wbsd_platform_resume,
1949 .driver = { 1949 .driver = {
1950 .name = DRIVER_NAME, 1950 .name = DRIVER_NAME,
1951 .owner = THIS_MODULE,
1951 }, 1952 },
1952}; 1953};
1953 1954
diff --git a/drivers/net/b44.c b/drivers/net/b44.c
index 25f1337cd02c..59dce6aa0865 100644
--- a/drivers/net/b44.c
+++ b/drivers/net/b44.c
@@ -148,7 +148,7 @@ static inline void b44_sync_dma_desc_for_device(struct ssb_device *sdev,
148 unsigned long offset, 148 unsigned long offset,
149 enum dma_data_direction dir) 149 enum dma_data_direction dir)
150{ 150{
151 dma_sync_single_range_for_device(sdev->dev, dma_base, 151 dma_sync_single_range_for_device(sdev->dma_dev, dma_base,
152 offset & dma_desc_align_mask, 152 offset & dma_desc_align_mask,
153 dma_desc_sync_size, dir); 153 dma_desc_sync_size, dir);
154} 154}
@@ -158,7 +158,7 @@ static inline void b44_sync_dma_desc_for_cpu(struct ssb_device *sdev,
158 unsigned long offset, 158 unsigned long offset,
159 enum dma_data_direction dir) 159 enum dma_data_direction dir)
160{ 160{
161 dma_sync_single_range_for_cpu(sdev->dev, dma_base, 161 dma_sync_single_range_for_cpu(sdev->dma_dev, dma_base,
162 offset & dma_desc_align_mask, 162 offset & dma_desc_align_mask,
163 dma_desc_sync_size, dir); 163 dma_desc_sync_size, dir);
164} 164}
@@ -613,7 +613,7 @@ static void b44_tx(struct b44 *bp)
613 613
614 BUG_ON(skb == NULL); 614 BUG_ON(skb == NULL);
615 615
616 dma_unmap_single(bp->sdev->dev, 616 dma_unmap_single(bp->sdev->dma_dev,
617 rp->mapping, 617 rp->mapping,
618 skb->len, 618 skb->len,
619 DMA_TO_DEVICE); 619 DMA_TO_DEVICE);
@@ -653,7 +653,7 @@ static int b44_alloc_rx_skb(struct b44 *bp, int src_idx, u32 dest_idx_unmasked)
653 if (skb == NULL) 653 if (skb == NULL)
654 return -ENOMEM; 654 return -ENOMEM;
655 655
656 mapping = dma_map_single(bp->sdev->dev, skb->data, 656 mapping = dma_map_single(bp->sdev->dma_dev, skb->data,
657 RX_PKT_BUF_SZ, 657 RX_PKT_BUF_SZ,
658 DMA_FROM_DEVICE); 658 DMA_FROM_DEVICE);
659 659
@@ -663,19 +663,19 @@ static int b44_alloc_rx_skb(struct b44 *bp, int src_idx, u32 dest_idx_unmasked)
663 mapping + RX_PKT_BUF_SZ > DMA_30BIT_MASK) { 663 mapping + RX_PKT_BUF_SZ > DMA_30BIT_MASK) {
664 /* Sigh... */ 664 /* Sigh... */
665 if (!dma_mapping_error(mapping)) 665 if (!dma_mapping_error(mapping))
666 dma_unmap_single(bp->sdev->dev, mapping, 666 dma_unmap_single(bp->sdev->dma_dev, mapping,
667 RX_PKT_BUF_SZ, DMA_FROM_DEVICE); 667 RX_PKT_BUF_SZ, DMA_FROM_DEVICE);
668 dev_kfree_skb_any(skb); 668 dev_kfree_skb_any(skb);
669 skb = __netdev_alloc_skb(bp->dev, RX_PKT_BUF_SZ, GFP_ATOMIC|GFP_DMA); 669 skb = __netdev_alloc_skb(bp->dev, RX_PKT_BUF_SZ, GFP_ATOMIC|GFP_DMA);
670 if (skb == NULL) 670 if (skb == NULL)
671 return -ENOMEM; 671 return -ENOMEM;
672 mapping = dma_map_single(bp->sdev->dev, skb->data, 672 mapping = dma_map_single(bp->sdev->dma_dev, skb->data,
673 RX_PKT_BUF_SZ, 673 RX_PKT_BUF_SZ,
674 DMA_FROM_DEVICE); 674 DMA_FROM_DEVICE);
675 if (dma_mapping_error(mapping) || 675 if (dma_mapping_error(mapping) ||
676 mapping + RX_PKT_BUF_SZ > DMA_30BIT_MASK) { 676 mapping + RX_PKT_BUF_SZ > DMA_30BIT_MASK) {
677 if (!dma_mapping_error(mapping)) 677 if (!dma_mapping_error(mapping))
678 dma_unmap_single(bp->sdev->dev, mapping, RX_PKT_BUF_SZ,DMA_FROM_DEVICE); 678 dma_unmap_single(bp->sdev->dma_dev, mapping, RX_PKT_BUF_SZ,DMA_FROM_DEVICE);
679 dev_kfree_skb_any(skb); 679 dev_kfree_skb_any(skb);
680 return -ENOMEM; 680 return -ENOMEM;
681 } 681 }
@@ -750,7 +750,7 @@ static void b44_recycle_rx(struct b44 *bp, int src_idx, u32 dest_idx_unmasked)
750 dest_idx * sizeof(dest_desc), 750 dest_idx * sizeof(dest_desc),
751 DMA_BIDIRECTIONAL); 751 DMA_BIDIRECTIONAL);
752 752
753 dma_sync_single_for_device(bp->sdev->dev, le32_to_cpu(src_desc->addr), 753 dma_sync_single_for_device(bp->sdev->dma_dev, le32_to_cpu(src_desc->addr),
754 RX_PKT_BUF_SZ, 754 RX_PKT_BUF_SZ,
755 DMA_FROM_DEVICE); 755 DMA_FROM_DEVICE);
756} 756}
@@ -772,7 +772,7 @@ static int b44_rx(struct b44 *bp, int budget)
772 struct rx_header *rh; 772 struct rx_header *rh;
773 u16 len; 773 u16 len;
774 774
775 dma_sync_single_for_cpu(bp->sdev->dev, map, 775 dma_sync_single_for_cpu(bp->sdev->dma_dev, map,
776 RX_PKT_BUF_SZ, 776 RX_PKT_BUF_SZ,
777 DMA_FROM_DEVICE); 777 DMA_FROM_DEVICE);
778 rh = (struct rx_header *) skb->data; 778 rh = (struct rx_header *) skb->data;
@@ -806,7 +806,7 @@ static int b44_rx(struct b44 *bp, int budget)
806 skb_size = b44_alloc_rx_skb(bp, cons, bp->rx_prod); 806 skb_size = b44_alloc_rx_skb(bp, cons, bp->rx_prod);
807 if (skb_size < 0) 807 if (skb_size < 0)
808 goto drop_it; 808 goto drop_it;
809 dma_unmap_single(bp->sdev->dev, map, 809 dma_unmap_single(bp->sdev->dma_dev, map,
810 skb_size, DMA_FROM_DEVICE); 810 skb_size, DMA_FROM_DEVICE);
811 /* Leave out rx_header */ 811 /* Leave out rx_header */
812 skb_put(skb, len + RX_PKT_OFFSET); 812 skb_put(skb, len + RX_PKT_OFFSET);
@@ -966,24 +966,24 @@ static int b44_start_xmit(struct sk_buff *skb, struct net_device *dev)
966 goto err_out; 966 goto err_out;
967 } 967 }
968 968
969 mapping = dma_map_single(bp->sdev->dev, skb->data, len, DMA_TO_DEVICE); 969 mapping = dma_map_single(bp->sdev->dma_dev, skb->data, len, DMA_TO_DEVICE);
970 if (dma_mapping_error(mapping) || mapping + len > DMA_30BIT_MASK) { 970 if (dma_mapping_error(mapping) || mapping + len > DMA_30BIT_MASK) {
971 struct sk_buff *bounce_skb; 971 struct sk_buff *bounce_skb;
972 972
973 /* Chip can't handle DMA to/from >1GB, use bounce buffer */ 973 /* Chip can't handle DMA to/from >1GB, use bounce buffer */
974 if (!dma_mapping_error(mapping)) 974 if (!dma_mapping_error(mapping))
975 dma_unmap_single(bp->sdev->dev, mapping, len, 975 dma_unmap_single(bp->sdev->dma_dev, mapping, len,
976 DMA_TO_DEVICE); 976 DMA_TO_DEVICE);
977 977
978 bounce_skb = __dev_alloc_skb(len, GFP_ATOMIC | GFP_DMA); 978 bounce_skb = __dev_alloc_skb(len, GFP_ATOMIC | GFP_DMA);
979 if (!bounce_skb) 979 if (!bounce_skb)
980 goto err_out; 980 goto err_out;
981 981
982 mapping = dma_map_single(bp->sdev->dev, bounce_skb->data, 982 mapping = dma_map_single(bp->sdev->dma_dev, bounce_skb->data,
983 len, DMA_TO_DEVICE); 983 len, DMA_TO_DEVICE);
984 if (dma_mapping_error(mapping) || mapping + len > DMA_30BIT_MASK) { 984 if (dma_mapping_error(mapping) || mapping + len > DMA_30BIT_MASK) {
985 if (!dma_mapping_error(mapping)) 985 if (!dma_mapping_error(mapping))
986 dma_unmap_single(bp->sdev->dev, mapping, 986 dma_unmap_single(bp->sdev->dma_dev, mapping,
987 len, DMA_TO_DEVICE); 987 len, DMA_TO_DEVICE);
988 dev_kfree_skb_any(bounce_skb); 988 dev_kfree_skb_any(bounce_skb);
989 goto err_out; 989 goto err_out;
@@ -1082,7 +1082,7 @@ static void b44_free_rings(struct b44 *bp)
1082 1082
1083 if (rp->skb == NULL) 1083 if (rp->skb == NULL)
1084 continue; 1084 continue;
1085 dma_unmap_single(bp->sdev->dev, rp->mapping, RX_PKT_BUF_SZ, 1085 dma_unmap_single(bp->sdev->dma_dev, rp->mapping, RX_PKT_BUF_SZ,
1086 DMA_FROM_DEVICE); 1086 DMA_FROM_DEVICE);
1087 dev_kfree_skb_any(rp->skb); 1087 dev_kfree_skb_any(rp->skb);
1088 rp->skb = NULL; 1088 rp->skb = NULL;
@@ -1094,7 +1094,7 @@ static void b44_free_rings(struct b44 *bp)
1094 1094
1095 if (rp->skb == NULL) 1095 if (rp->skb == NULL)
1096 continue; 1096 continue;
1097 dma_unmap_single(bp->sdev->dev, rp->mapping, rp->skb->len, 1097 dma_unmap_single(bp->sdev->dma_dev, rp->mapping, rp->skb->len,
1098 DMA_TO_DEVICE); 1098 DMA_TO_DEVICE);
1099 dev_kfree_skb_any(rp->skb); 1099 dev_kfree_skb_any(rp->skb);
1100 rp->skb = NULL; 1100 rp->skb = NULL;
@@ -1117,12 +1117,12 @@ static void b44_init_rings(struct b44 *bp)
1117 memset(bp->tx_ring, 0, B44_TX_RING_BYTES); 1117 memset(bp->tx_ring, 0, B44_TX_RING_BYTES);
1118 1118
1119 if (bp->flags & B44_FLAG_RX_RING_HACK) 1119 if (bp->flags & B44_FLAG_RX_RING_HACK)
1120 dma_sync_single_for_device(bp->sdev->dev, bp->rx_ring_dma, 1120 dma_sync_single_for_device(bp->sdev->dma_dev, bp->rx_ring_dma,
1121 DMA_TABLE_BYTES, 1121 DMA_TABLE_BYTES,
1122 DMA_BIDIRECTIONAL); 1122 DMA_BIDIRECTIONAL);
1123 1123
1124 if (bp->flags & B44_FLAG_TX_RING_HACK) 1124 if (bp->flags & B44_FLAG_TX_RING_HACK)
1125 dma_sync_single_for_device(bp->sdev->dev, bp->tx_ring_dma, 1125 dma_sync_single_for_device(bp->sdev->dma_dev, bp->tx_ring_dma,
1126 DMA_TABLE_BYTES, 1126 DMA_TABLE_BYTES,
1127 DMA_TO_DEVICE); 1127 DMA_TO_DEVICE);
1128 1128
@@ -1144,24 +1144,24 @@ static void b44_free_consistent(struct b44 *bp)
1144 bp->tx_buffers = NULL; 1144 bp->tx_buffers = NULL;
1145 if (bp->rx_ring) { 1145 if (bp->rx_ring) {
1146 if (bp->flags & B44_FLAG_RX_RING_HACK) { 1146 if (bp->flags & B44_FLAG_RX_RING_HACK) {
1147 dma_unmap_single(bp->sdev->dev, bp->rx_ring_dma, 1147 dma_unmap_single(bp->sdev->dma_dev, bp->rx_ring_dma,
1148 DMA_TABLE_BYTES, 1148 DMA_TABLE_BYTES,
1149 DMA_BIDIRECTIONAL); 1149 DMA_BIDIRECTIONAL);
1150 kfree(bp->rx_ring); 1150 kfree(bp->rx_ring);
1151 } else 1151 } else
1152 dma_free_coherent(bp->sdev->dev, DMA_TABLE_BYTES, 1152 dma_free_coherent(bp->sdev->dma_dev, DMA_TABLE_BYTES,
1153 bp->rx_ring, bp->rx_ring_dma); 1153 bp->rx_ring, bp->rx_ring_dma);
1154 bp->rx_ring = NULL; 1154 bp->rx_ring = NULL;
1155 bp->flags &= ~B44_FLAG_RX_RING_HACK; 1155 bp->flags &= ~B44_FLAG_RX_RING_HACK;
1156 } 1156 }
1157 if (bp->tx_ring) { 1157 if (bp->tx_ring) {
1158 if (bp->flags & B44_FLAG_TX_RING_HACK) { 1158 if (bp->flags & B44_FLAG_TX_RING_HACK) {
1159 dma_unmap_single(bp->sdev->dev, bp->tx_ring_dma, 1159 dma_unmap_single(bp->sdev->dma_dev, bp->tx_ring_dma,
1160 DMA_TABLE_BYTES, 1160 DMA_TABLE_BYTES,
1161 DMA_TO_DEVICE); 1161 DMA_TO_DEVICE);
1162 kfree(bp->tx_ring); 1162 kfree(bp->tx_ring);
1163 } else 1163 } else
1164 dma_free_coherent(bp->sdev->dev, DMA_TABLE_BYTES, 1164 dma_free_coherent(bp->sdev->dma_dev, DMA_TABLE_BYTES,
1165 bp->tx_ring, bp->tx_ring_dma); 1165 bp->tx_ring, bp->tx_ring_dma);
1166 bp->tx_ring = NULL; 1166 bp->tx_ring = NULL;
1167 bp->flags &= ~B44_FLAG_TX_RING_HACK; 1167 bp->flags &= ~B44_FLAG_TX_RING_HACK;
@@ -1187,7 +1187,7 @@ static int b44_alloc_consistent(struct b44 *bp, gfp_t gfp)
1187 goto out_err; 1187 goto out_err;
1188 1188
1189 size = DMA_TABLE_BYTES; 1189 size = DMA_TABLE_BYTES;
1190 bp->rx_ring = dma_alloc_coherent(bp->sdev->dev, size, &bp->rx_ring_dma, gfp); 1190 bp->rx_ring = dma_alloc_coherent(bp->sdev->dma_dev, size, &bp->rx_ring_dma, gfp);
1191 if (!bp->rx_ring) { 1191 if (!bp->rx_ring) {
1192 /* Allocation may have failed due to pci_alloc_consistent 1192 /* Allocation may have failed due to pci_alloc_consistent
1193 insisting on use of GFP_DMA, which is more restrictive 1193 insisting on use of GFP_DMA, which is more restrictive
@@ -1199,7 +1199,7 @@ static int b44_alloc_consistent(struct b44 *bp, gfp_t gfp)
1199 if (!rx_ring) 1199 if (!rx_ring)
1200 goto out_err; 1200 goto out_err;
1201 1201
1202 rx_ring_dma = dma_map_single(bp->sdev->dev, rx_ring, 1202 rx_ring_dma = dma_map_single(bp->sdev->dma_dev, rx_ring,
1203 DMA_TABLE_BYTES, 1203 DMA_TABLE_BYTES,
1204 DMA_BIDIRECTIONAL); 1204 DMA_BIDIRECTIONAL);
1205 1205
@@ -1214,7 +1214,7 @@ static int b44_alloc_consistent(struct b44 *bp, gfp_t gfp)
1214 bp->flags |= B44_FLAG_RX_RING_HACK; 1214 bp->flags |= B44_FLAG_RX_RING_HACK;
1215 } 1215 }
1216 1216
1217 bp->tx_ring = dma_alloc_coherent(bp->sdev->dev, size, &bp->tx_ring_dma, gfp); 1217 bp->tx_ring = dma_alloc_coherent(bp->sdev->dma_dev, size, &bp->tx_ring_dma, gfp);
1218 if (!bp->tx_ring) { 1218 if (!bp->tx_ring) {
1219 /* Allocation may have failed due to dma_alloc_coherent 1219 /* Allocation may have failed due to dma_alloc_coherent
1220 insisting on use of GFP_DMA, which is more restrictive 1220 insisting on use of GFP_DMA, which is more restrictive
@@ -1226,7 +1226,7 @@ static int b44_alloc_consistent(struct b44 *bp, gfp_t gfp)
1226 if (!tx_ring) 1226 if (!tx_ring)
1227 goto out_err; 1227 goto out_err;
1228 1228
1229 tx_ring_dma = dma_map_single(bp->sdev->dev, tx_ring, 1229 tx_ring_dma = dma_map_single(bp->sdev->dma_dev, tx_ring,
1230 DMA_TABLE_BYTES, 1230 DMA_TABLE_BYTES,
1231 DMA_TO_DEVICE); 1231 DMA_TO_DEVICE);
1232 1232
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 501e451be911..665341e43055 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -730,7 +730,7 @@ static void write_msg(struct console *con, const char *msg, unsigned int len)
730 730
731static struct console netconsole = { 731static struct console netconsole = {
732 .name = "netcon", 732 .name = "netcon",
733 .flags = CON_ENABLED | CON_PRINTBUFFER, 733 .flags = CON_ENABLED,
734 .write = write_msg, 734 .write = write_msg,
735}; 735};
736 736
@@ -749,6 +749,9 @@ static int __init init_netconsole(void)
749 err = PTR_ERR(nt); 749 err = PTR_ERR(nt);
750 goto fail; 750 goto fail;
751 } 751 }
752 /* Dump existing printks when we register */
753 netconsole.flags |= CON_PRINTBUFFER;
754
752 spin_lock_irqsave(&target_list_lock, flags); 755 spin_lock_irqsave(&target_list_lock, flags);
753 list_add(&nt->list, &target_list); 756 list_add(&nt->list, &target_list);
754 spin_unlock_irqrestore(&target_list_lock, flags); 757 spin_unlock_irqrestore(&target_list_lock, flags);
diff --git a/drivers/net/ps3_gelic_wireless.c b/drivers/net/ps3_gelic_wireless.c
index ddbc6e475e28..c16de5129a71 100644
--- a/drivers/net/ps3_gelic_wireless.c
+++ b/drivers/net/ps3_gelic_wireless.c
@@ -512,13 +512,18 @@ static void gelic_wl_parse_ie(u8 *data, size_t len,
512 data, len); 512 data, len);
513 memset(ie_info, 0, sizeof(struct ie_info)); 513 memset(ie_info, 0, sizeof(struct ie_info));
514 514
515 while (0 < data_left) { 515 while (2 <= data_left) {
516 item_id = *pos++; 516 item_id = *pos++;
517 item_len = *pos++; 517 item_len = *pos++;
518 data_left -= 2;
519
520 if (data_left < item_len)
521 break;
518 522
519 switch (item_id) { 523 switch (item_id) {
520 case MFIE_TYPE_GENERIC: 524 case MFIE_TYPE_GENERIC:
521 if (!memcmp(pos, wpa_oui, OUI_LEN) && 525 if ((OUI_LEN + 1 <= item_len) &&
526 !memcmp(pos, wpa_oui, OUI_LEN) &&
522 pos[OUI_LEN] == 0x01) { 527 pos[OUI_LEN] == 0x01) {
523 ie_info->wpa.data = pos - 2; 528 ie_info->wpa.data = pos - 2;
524 ie_info->wpa.len = item_len + 2; 529 ie_info->wpa.len = item_len + 2;
@@ -535,7 +540,7 @@ static void gelic_wl_parse_ie(u8 *data, size_t len,
535 break; 540 break;
536 } 541 }
537 pos += item_len; 542 pos += item_len;
538 data_left -= item_len + 2; 543 data_left -= item_len;
539 } 544 }
540 pr_debug("%s: wpa=%p,%d wpa2=%p,%d\n", __func__, 545 pr_debug("%s: wpa=%p,%d wpa2=%p,%d\n", __func__,
541 ie_info->wpa.data, ie_info->wpa.len, 546 ie_info->wpa.data, ie_info->wpa.len,
diff --git a/drivers/net/wireless/b43/dma.c b/drivers/net/wireless/b43/dma.c
index 948eb1fe916b..48e912487b16 100644
--- a/drivers/net/wireless/b43/dma.c
+++ b/drivers/net/wireless/b43/dma.c
@@ -373,10 +373,10 @@ static inline
373 dma_addr_t dmaaddr; 373 dma_addr_t dmaaddr;
374 374
375 if (tx) { 375 if (tx) {
376 dmaaddr = dma_map_single(ring->dev->dev->dev, 376 dmaaddr = dma_map_single(ring->dev->dev->dma_dev,
377 buf, len, DMA_TO_DEVICE); 377 buf, len, DMA_TO_DEVICE);
378 } else { 378 } else {
379 dmaaddr = dma_map_single(ring->dev->dev->dev, 379 dmaaddr = dma_map_single(ring->dev->dev->dma_dev,
380 buf, len, DMA_FROM_DEVICE); 380 buf, len, DMA_FROM_DEVICE);
381 } 381 }
382 382
@@ -388,9 +388,10 @@ static inline
388 dma_addr_t addr, size_t len, int tx) 388 dma_addr_t addr, size_t len, int tx)
389{ 389{
390 if (tx) { 390 if (tx) {
391 dma_unmap_single(ring->dev->dev->dev, addr, len, DMA_TO_DEVICE); 391 dma_unmap_single(ring->dev->dev->dma_dev,
392 addr, len, DMA_TO_DEVICE);
392 } else { 393 } else {
393 dma_unmap_single(ring->dev->dev->dev, 394 dma_unmap_single(ring->dev->dev->dma_dev,
394 addr, len, DMA_FROM_DEVICE); 395 addr, len, DMA_FROM_DEVICE);
395 } 396 }
396} 397}
@@ -400,7 +401,7 @@ static inline
400 dma_addr_t addr, size_t len) 401 dma_addr_t addr, size_t len)
401{ 402{
402 B43_WARN_ON(ring->tx); 403 B43_WARN_ON(ring->tx);
403 dma_sync_single_for_cpu(ring->dev->dev->dev, 404 dma_sync_single_for_cpu(ring->dev->dev->dma_dev,
404 addr, len, DMA_FROM_DEVICE); 405 addr, len, DMA_FROM_DEVICE);
405} 406}
406 407
@@ -409,7 +410,7 @@ static inline
409 dma_addr_t addr, size_t len) 410 dma_addr_t addr, size_t len)
410{ 411{
411 B43_WARN_ON(ring->tx); 412 B43_WARN_ON(ring->tx);
412 dma_sync_single_for_device(ring->dev->dev->dev, 413 dma_sync_single_for_device(ring->dev->dev->dma_dev,
413 addr, len, DMA_FROM_DEVICE); 414 addr, len, DMA_FROM_DEVICE);
414} 415}
415 416
@@ -425,7 +426,7 @@ static inline
425 426
426static int alloc_ringmemory(struct b43_dmaring *ring) 427static int alloc_ringmemory(struct b43_dmaring *ring)
427{ 428{
428 struct device *dev = ring->dev->dev->dev; 429 struct device *dma_dev = ring->dev->dev->dma_dev;
429 gfp_t flags = GFP_KERNEL; 430 gfp_t flags = GFP_KERNEL;
430 431
431 /* The specs call for 4K buffers for 30- and 32-bit DMA with 4K 432 /* The specs call for 4K buffers for 30- and 32-bit DMA with 4K
@@ -439,7 +440,7 @@ static int alloc_ringmemory(struct b43_dmaring *ring)
439 */ 440 */
440 if (ring->type == B43_DMA_64BIT) 441 if (ring->type == B43_DMA_64BIT)
441 flags |= GFP_DMA; 442 flags |= GFP_DMA;
442 ring->descbase = dma_alloc_coherent(dev, B43_DMA_RINGMEMSIZE, 443 ring->descbase = dma_alloc_coherent(dma_dev, B43_DMA_RINGMEMSIZE,
443 &(ring->dmabase), flags); 444 &(ring->dmabase), flags);
444 if (!ring->descbase) { 445 if (!ring->descbase) {
445 b43err(ring->dev->wl, "DMA ringmemory allocation failed\n"); 446 b43err(ring->dev->wl, "DMA ringmemory allocation failed\n");
@@ -452,9 +453,9 @@ static int alloc_ringmemory(struct b43_dmaring *ring)
452 453
453static void free_ringmemory(struct b43_dmaring *ring) 454static void free_ringmemory(struct b43_dmaring *ring)
454{ 455{
455 struct device *dev = ring->dev->dev->dev; 456 struct device *dma_dev = ring->dev->dev->dma_dev;
456 457
457 dma_free_coherent(dev, B43_DMA_RINGMEMSIZE, 458 dma_free_coherent(dma_dev, B43_DMA_RINGMEMSIZE,
458 ring->descbase, ring->dmabase); 459 ring->descbase, ring->dmabase);
459} 460}
460 461
@@ -854,7 +855,7 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
854 goto err_kfree_meta; 855 goto err_kfree_meta;
855 856
856 /* test for ability to dma to txhdr_cache */ 857 /* test for ability to dma to txhdr_cache */
857 dma_test = dma_map_single(dev->dev->dev, 858 dma_test = dma_map_single(dev->dev->dma_dev,
858 ring->txhdr_cache, 859 ring->txhdr_cache,
859 b43_txhdr_size(dev), 860 b43_txhdr_size(dev),
860 DMA_TO_DEVICE); 861 DMA_TO_DEVICE);
@@ -869,7 +870,7 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
869 if (!ring->txhdr_cache) 870 if (!ring->txhdr_cache)
870 goto err_kfree_meta; 871 goto err_kfree_meta;
871 872
872 dma_test = dma_map_single(dev->dev->dev, 873 dma_test = dma_map_single(dev->dev->dma_dev,
873 ring->txhdr_cache, 874 ring->txhdr_cache,
874 b43_txhdr_size(dev), 875 b43_txhdr_size(dev),
875 DMA_TO_DEVICE); 876 DMA_TO_DEVICE);
@@ -883,7 +884,7 @@ struct b43_dmaring *b43_setup_dmaring(struct b43_wldev *dev,
883 } 884 }
884 } 885 }
885 886
886 dma_unmap_single(dev->dev->dev, 887 dma_unmap_single(dev->dev->dma_dev,
887 dma_test, b43_txhdr_size(dev), 888 dma_test, b43_txhdr_size(dev),
888 DMA_TO_DEVICE); 889 DMA_TO_DEVICE);
889 } 890 }
diff --git a/drivers/net/wireless/b43legacy/dma.c b/drivers/net/wireless/b43legacy/dma.c
index e87b427d5e43..c990f87b107a 100644
--- a/drivers/net/wireless/b43legacy/dma.c
+++ b/drivers/net/wireless/b43legacy/dma.c
@@ -393,11 +393,11 @@ dma_addr_t map_descbuffer(struct b43legacy_dmaring *ring,
393 dma_addr_t dmaaddr; 393 dma_addr_t dmaaddr;
394 394
395 if (tx) 395 if (tx)
396 dmaaddr = dma_map_single(ring->dev->dev->dev, 396 dmaaddr = dma_map_single(ring->dev->dev->dma_dev,
397 buf, len, 397 buf, len,
398 DMA_TO_DEVICE); 398 DMA_TO_DEVICE);
399 else 399 else
400 dmaaddr = dma_map_single(ring->dev->dev->dev, 400 dmaaddr = dma_map_single(ring->dev->dev->dma_dev,
401 buf, len, 401 buf, len,
402 DMA_FROM_DEVICE); 402 DMA_FROM_DEVICE);
403 403
@@ -411,11 +411,11 @@ void unmap_descbuffer(struct b43legacy_dmaring *ring,
411 int tx) 411 int tx)
412{ 412{
413 if (tx) 413 if (tx)
414 dma_unmap_single(ring->dev->dev->dev, 414 dma_unmap_single(ring->dev->dev->dma_dev,
415 addr, len, 415 addr, len,
416 DMA_TO_DEVICE); 416 DMA_TO_DEVICE);
417 else 417 else
418 dma_unmap_single(ring->dev->dev->dev, 418 dma_unmap_single(ring->dev->dev->dma_dev,
419 addr, len, 419 addr, len,
420 DMA_FROM_DEVICE); 420 DMA_FROM_DEVICE);
421} 421}
@@ -427,7 +427,7 @@ void sync_descbuffer_for_cpu(struct b43legacy_dmaring *ring,
427{ 427{
428 B43legacy_WARN_ON(ring->tx); 428 B43legacy_WARN_ON(ring->tx);
429 429
430 dma_sync_single_for_cpu(ring->dev->dev->dev, 430 dma_sync_single_for_cpu(ring->dev->dev->dma_dev,
431 addr, len, DMA_FROM_DEVICE); 431 addr, len, DMA_FROM_DEVICE);
432} 432}
433 433
@@ -438,7 +438,7 @@ void sync_descbuffer_for_device(struct b43legacy_dmaring *ring,
438{ 438{
439 B43legacy_WARN_ON(ring->tx); 439 B43legacy_WARN_ON(ring->tx);
440 440
441 dma_sync_single_for_device(ring->dev->dev->dev, 441 dma_sync_single_for_device(ring->dev->dev->dma_dev,
442 addr, len, DMA_FROM_DEVICE); 442 addr, len, DMA_FROM_DEVICE);
443} 443}
444 444
@@ -458,9 +458,9 @@ void free_descriptor_buffer(struct b43legacy_dmaring *ring,
458 458
459static int alloc_ringmemory(struct b43legacy_dmaring *ring) 459static int alloc_ringmemory(struct b43legacy_dmaring *ring)
460{ 460{
461 struct device *dev = ring->dev->dev->dev; 461 struct device *dma_dev = ring->dev->dev->dma_dev;
462 462
463 ring->descbase = dma_alloc_coherent(dev, B43legacy_DMA_RINGMEMSIZE, 463 ring->descbase = dma_alloc_coherent(dma_dev, B43legacy_DMA_RINGMEMSIZE,
464 &(ring->dmabase), GFP_KERNEL); 464 &(ring->dmabase), GFP_KERNEL);
465 if (!ring->descbase) { 465 if (!ring->descbase) {
466 b43legacyerr(ring->dev->wl, "DMA ringmemory allocation" 466 b43legacyerr(ring->dev->wl, "DMA ringmemory allocation"
@@ -474,9 +474,9 @@ static int alloc_ringmemory(struct b43legacy_dmaring *ring)
474 474
475static void free_ringmemory(struct b43legacy_dmaring *ring) 475static void free_ringmemory(struct b43legacy_dmaring *ring)
476{ 476{
477 struct device *dev = ring->dev->dev->dev; 477 struct device *dma_dev = ring->dev->dev->dma_dev;
478 478
479 dma_free_coherent(dev, B43legacy_DMA_RINGMEMSIZE, 479 dma_free_coherent(dma_dev, B43legacy_DMA_RINGMEMSIZE,
480 ring->descbase, ring->dmabase); 480 ring->descbase, ring->dmabase);
481} 481}
482 482
@@ -585,8 +585,9 @@ static int b43legacy_dmacontroller_tx_reset(struct b43legacy_wldev *dev,
585 585
586/* Check if a DMA mapping address is invalid. */ 586/* Check if a DMA mapping address is invalid. */
587static bool b43legacy_dma_mapping_error(struct b43legacy_dmaring *ring, 587static bool b43legacy_dma_mapping_error(struct b43legacy_dmaring *ring,
588 dma_addr_t addr, 588 dma_addr_t addr,
589 size_t buffersize) 589 size_t buffersize,
590 bool dma_to_device)
590{ 591{
591 if (unlikely(dma_mapping_error(addr))) 592 if (unlikely(dma_mapping_error(addr)))
592 return 1; 593 return 1;
@@ -594,11 +595,11 @@ static bool b43legacy_dma_mapping_error(struct b43legacy_dmaring *ring,
594 switch (ring->type) { 595 switch (ring->type) {
595 case B43legacy_DMA_30BIT: 596 case B43legacy_DMA_30BIT:
596 if ((u64)addr + buffersize > (1ULL << 30)) 597 if ((u64)addr + buffersize > (1ULL << 30))
597 return 1; 598 goto address_error;
598 break; 599 break;
599 case B43legacy_DMA_32BIT: 600 case B43legacy_DMA_32BIT:
600 if ((u64)addr + buffersize > (1ULL << 32)) 601 if ((u64)addr + buffersize > (1ULL << 32))
601 return 1; 602 goto address_error;
602 break; 603 break;
603 case B43legacy_DMA_64BIT: 604 case B43legacy_DMA_64BIT:
604 /* Currently we can't have addresses beyond 64 bits in the kernel. */ 605 /* Currently we can't have addresses beyond 64 bits in the kernel. */
@@ -607,6 +608,12 @@ static bool b43legacy_dma_mapping_error(struct b43legacy_dmaring *ring,
607 608
608 /* The address is OK. */ 609 /* The address is OK. */
609 return 0; 610 return 0;
611
612address_error:
613 /* We can't support this address. Unmap it again. */
614 unmap_descbuffer(ring, addr, buffersize, dma_to_device);
615
616 return 1;
610} 617}
611 618
612static int setup_rx_descbuffer(struct b43legacy_dmaring *ring, 619static int setup_rx_descbuffer(struct b43legacy_dmaring *ring,
@@ -626,7 +633,7 @@ static int setup_rx_descbuffer(struct b43legacy_dmaring *ring,
626 return -ENOMEM; 633 return -ENOMEM;
627 dmaaddr = map_descbuffer(ring, skb->data, 634 dmaaddr = map_descbuffer(ring, skb->data,
628 ring->rx_buffersize, 0); 635 ring->rx_buffersize, 0);
629 if (b43legacy_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize)) { 636 if (b43legacy_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) {
630 /* ugh. try to realloc in zone_dma */ 637 /* ugh. try to realloc in zone_dma */
631 gfp_flags |= GFP_DMA; 638 gfp_flags |= GFP_DMA;
632 639
@@ -639,7 +646,7 @@ static int setup_rx_descbuffer(struct b43legacy_dmaring *ring,
639 ring->rx_buffersize, 0); 646 ring->rx_buffersize, 0);
640 } 647 }
641 648
642 if (b43legacy_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize)) { 649 if (b43legacy_dma_mapping_error(ring, dmaaddr, ring->rx_buffersize, 0)) {
643 dev_kfree_skb_any(skb); 650 dev_kfree_skb_any(skb);
644 return -EIO; 651 return -EIO;
645 } 652 }
@@ -886,12 +893,12 @@ struct b43legacy_dmaring *b43legacy_setup_dmaring(struct b43legacy_wldev *dev,
886 goto err_kfree_meta; 893 goto err_kfree_meta;
887 894
888 /* test for ability to dma to txhdr_cache */ 895 /* test for ability to dma to txhdr_cache */
889 dma_test = dma_map_single(dev->dev->dev, ring->txhdr_cache, 896 dma_test = dma_map_single(dev->dev->dma_dev, ring->txhdr_cache,
890 sizeof(struct b43legacy_txhdr_fw3), 897 sizeof(struct b43legacy_txhdr_fw3),
891 DMA_TO_DEVICE); 898 DMA_TO_DEVICE);
892 899
893 if (b43legacy_dma_mapping_error(ring, dma_test, 900 if (b43legacy_dma_mapping_error(ring, dma_test,
894 sizeof(struct b43legacy_txhdr_fw3))) { 901 sizeof(struct b43legacy_txhdr_fw3), 1)) {
895 /* ugh realloc */ 902 /* ugh realloc */
896 kfree(ring->txhdr_cache); 903 kfree(ring->txhdr_cache);
897 ring->txhdr_cache = kcalloc(nr_slots, 904 ring->txhdr_cache = kcalloc(nr_slots,
@@ -900,17 +907,17 @@ struct b43legacy_dmaring *b43legacy_setup_dmaring(struct b43legacy_wldev *dev,
900 if (!ring->txhdr_cache) 907 if (!ring->txhdr_cache)
901 goto err_kfree_meta; 908 goto err_kfree_meta;
902 909
903 dma_test = dma_map_single(dev->dev->dev, 910 dma_test = dma_map_single(dev->dev->dma_dev,
904 ring->txhdr_cache, 911 ring->txhdr_cache,
905 sizeof(struct b43legacy_txhdr_fw3), 912 sizeof(struct b43legacy_txhdr_fw3),
906 DMA_TO_DEVICE); 913 DMA_TO_DEVICE);
907 914
908 if (b43legacy_dma_mapping_error(ring, dma_test, 915 if (b43legacy_dma_mapping_error(ring, dma_test,
909 sizeof(struct b43legacy_txhdr_fw3))) 916 sizeof(struct b43legacy_txhdr_fw3), 1))
910 goto err_kfree_txhdr_cache; 917 goto err_kfree_txhdr_cache;
911 } 918 }
912 919
913 dma_unmap_single(dev->dev->dev, 920 dma_unmap_single(dev->dev->dma_dev,
914 dma_test, sizeof(struct b43legacy_txhdr_fw3), 921 dma_test, sizeof(struct b43legacy_txhdr_fw3),
915 DMA_TO_DEVICE); 922 DMA_TO_DEVICE);
916 } 923 }
@@ -1235,7 +1242,7 @@ static int dma_tx_fragment(struct b43legacy_dmaring *ring,
1235 meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header, 1242 meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header,
1236 sizeof(struct b43legacy_txhdr_fw3), 1); 1243 sizeof(struct b43legacy_txhdr_fw3), 1);
1237 if (b43legacy_dma_mapping_error(ring, meta_hdr->dmaaddr, 1244 if (b43legacy_dma_mapping_error(ring, meta_hdr->dmaaddr,
1238 sizeof(struct b43legacy_txhdr_fw3))) { 1245 sizeof(struct b43legacy_txhdr_fw3), 1)) {
1239 ring->current_slot = old_top_slot; 1246 ring->current_slot = old_top_slot;
1240 ring->used_slots = old_used_slots; 1247 ring->used_slots = old_used_slots;
1241 return -EIO; 1248 return -EIO;
@@ -1254,7 +1261,7 @@ static int dma_tx_fragment(struct b43legacy_dmaring *ring,
1254 1261
1255 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1); 1262 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);
1256 /* create a bounce buffer in zone_dma on mapping failure. */ 1263 /* create a bounce buffer in zone_dma on mapping failure. */
1257 if (b43legacy_dma_mapping_error(ring, meta->dmaaddr, skb->len)) { 1264 if (b43legacy_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) {
1258 bounce_skb = __dev_alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA); 1265 bounce_skb = __dev_alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA);
1259 if (!bounce_skb) { 1266 if (!bounce_skb) {
1260 ring->current_slot = old_top_slot; 1267 ring->current_slot = old_top_slot;
@@ -1268,7 +1275,7 @@ static int dma_tx_fragment(struct b43legacy_dmaring *ring,
1268 skb = bounce_skb; 1275 skb = bounce_skb;
1269 meta->skb = skb; 1276 meta->skb = skb;
1270 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1); 1277 meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);
1271 if (b43legacy_dma_mapping_error(ring, meta->dmaaddr, skb->len)) { 1278 if (b43legacy_dma_mapping_error(ring, meta->dmaaddr, skb->len, 1)) {
1272 ring->current_slot = old_top_slot; 1279 ring->current_slot = old_top_slot;
1273 ring->used_slots = old_used_slots; 1280 ring->used_slots = old_used_slots;
1274 err = -EIO; 1281 err = -EIO;
diff --git a/drivers/net/wireless/b43legacy/main.c b/drivers/net/wireless/b43legacy/main.c
index 5f3f34e1dbfd..0f7a6e7bd96a 100644
--- a/drivers/net/wireless/b43legacy/main.c
+++ b/drivers/net/wireless/b43legacy/main.c
@@ -1488,6 +1488,7 @@ static int b43legacy_request_firmware(struct b43legacy_wldev *dev)
1488 } 1488 }
1489 if (!fw->initvals) { 1489 if (!fw->initvals) {
1490 switch (dev->phy.type) { 1490 switch (dev->phy.type) {
1491 case B43legacy_PHYTYPE_B:
1491 case B43legacy_PHYTYPE_G: 1492 case B43legacy_PHYTYPE_G:
1492 if ((rev >= 5) && (rev <= 10)) 1493 if ((rev >= 5) && (rev <= 10))
1493 filename = "b0g0initvals5"; 1494 filename = "b0g0initvals5";
@@ -1505,6 +1506,7 @@ static int b43legacy_request_firmware(struct b43legacy_wldev *dev)
1505 } 1506 }
1506 if (!fw->initvals_band) { 1507 if (!fw->initvals_band) {
1507 switch (dev->phy.type) { 1508 switch (dev->phy.type) {
1509 case B43legacy_PHYTYPE_B:
1508 case B43legacy_PHYTYPE_G: 1510 case B43legacy_PHYTYPE_G:
1509 if ((rev >= 5) && (rev <= 10)) 1511 if ((rev >= 5) && (rev <= 10))
1510 filename = "b0g0bsinitvals5"; 1512 filename = "b0g0bsinitvals5";
diff --git a/drivers/net/wireless/rtl8187_dev.c b/drivers/net/wireless/rtl8187_dev.c
index f44505994a0e..133b3f39eeb6 100644
--- a/drivers/net/wireless/rtl8187_dev.c
+++ b/drivers/net/wireless/rtl8187_dev.c
@@ -509,6 +509,8 @@ static int rtl8187_add_interface(struct ieee80211_hw *dev,
509 return -EOPNOTSUPP; 509 return -EOPNOTSUPP;
510 } 510 }
511 511
512 priv->vif = conf->vif;
513
512 rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG); 514 rtl818x_iowrite8(priv, &priv->map->EEPROM_CMD, RTL818X_EEPROM_CMD_CONFIG);
513 for (i = 0; i < ETH_ALEN; i++) 515 for (i = 0; i < ETH_ALEN; i++)
514 rtl818x_iowrite8(priv, &priv->map->MAC[i], 516 rtl818x_iowrite8(priv, &priv->map->MAC[i],
@@ -523,6 +525,7 @@ static void rtl8187_remove_interface(struct ieee80211_hw *dev,
523{ 525{
524 struct rtl8187_priv *priv = dev->priv; 526 struct rtl8187_priv *priv = dev->priv;
525 priv->mode = IEEE80211_IF_TYPE_MNTR; 527 priv->mode = IEEE80211_IF_TYPE_MNTR;
528 priv->vif = NULL;
526} 529}
527 530
528static int rtl8187_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf) 531static int rtl8187_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf)
diff --git a/drivers/pcmcia/at91_cf.c b/drivers/pcmcia/at91_cf.c
index 385e145e1acc..684968558c19 100644
--- a/drivers/pcmcia/at91_cf.c
+++ b/drivers/pcmcia/at91_cf.c
@@ -419,3 +419,4 @@ module_exit(at91_cf_exit);
419MODULE_DESCRIPTION("AT91 Compact Flash Driver"); 419MODULE_DESCRIPTION("AT91 Compact Flash Driver");
420MODULE_AUTHOR("David Brownell"); 420MODULE_AUTHOR("David Brownell");
421MODULE_LICENSE("GPL"); 421MODULE_LICENSE("GPL");
422MODULE_ALIAS("platform:at91_cf");
diff --git a/drivers/pcmcia/omap_cf.c b/drivers/pcmcia/omap_cf.c
index 2df216b00817..bb6db3a582b2 100644
--- a/drivers/pcmcia/omap_cf.c
+++ b/drivers/pcmcia/omap_cf.c
@@ -344,6 +344,7 @@ static int omap_cf_resume(struct platform_device *pdev)
344static struct platform_driver omap_cf_driver = { 344static struct platform_driver omap_cf_driver = {
345 .driver = { 345 .driver = {
346 .name = (char *) driver_name, 346 .name = (char *) driver_name,
347 .owner = THIS_MODULE,
347 }, 348 },
348 .remove = __exit_p(omap_cf_remove), 349 .remove = __exit_p(omap_cf_remove),
349 .suspend = omap_cf_suspend, 350 .suspend = omap_cf_suspend,
@@ -368,3 +369,4 @@ module_exit(omap_cf_exit);
368 369
369MODULE_DESCRIPTION("OMAP CF Driver"); 370MODULE_DESCRIPTION("OMAP CF Driver");
370MODULE_LICENSE("GPL"); 371MODULE_LICENSE("GPL");
372MODULE_ALIAS("platform:omap_cf");
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index e439044d88f2..9414163c78e7 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -239,6 +239,7 @@ static struct platform_driver pxa2xx_pcmcia_driver = {
239 .resume = pxa2xx_drv_pcmcia_resume, 239 .resume = pxa2xx_drv_pcmcia_resume,
240 .driver = { 240 .driver = {
241 .name = "pxa2xx-pcmcia", 241 .name = "pxa2xx-pcmcia",
242 .owner = THIS_MODULE,
242 }, 243 },
243}; 244};
244 245
@@ -258,3 +259,4 @@ module_exit(pxa2xx_pcmcia_exit);
258MODULE_AUTHOR("Stefan Eletzhofer <stefan.eletzhofer@inquant.de> and Ian Molton <spyro@f2s.com>"); 259MODULE_AUTHOR("Stefan Eletzhofer <stefan.eletzhofer@inquant.de> and Ian Molton <spyro@f2s.com>");
259MODULE_DESCRIPTION("Linux PCMCIA Card Services: PXA2xx core socket driver"); 260MODULE_DESCRIPTION("Linux PCMCIA Card Services: PXA2xx core socket driver");
260MODULE_LICENSE("GPL"); 261MODULE_LICENSE("GPL");
262MODULE_ALIAS("platform:pxa2xx-pcmcia");
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index b48517021ee6..dcdc142a3441 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -198,9 +198,8 @@ static int cmos_set_alarm(struct device *dev, struct rtc_wkalrm *t)
198 198
199 /* Writing 0xff means "don't care" or "match all". */ 199 /* Writing 0xff means "don't care" or "match all". */
200 200
201 mon = t->time.tm_mon; 201 mon = t->time.tm_mon + 1;
202 mon = (mon < 12) ? BIN2BCD(mon) : 0xff; 202 mon = (mon <= 12) ? BIN2BCD(mon) : 0xff;
203 mon++;
204 203
205 mday = t->time.tm_mday; 204 mday = t->time.tm_mday;
206 mday = (mday >= 1 && mday <= 31) ? BIN2BCD(mday) : 0xff; 205 mday = (mday >= 1 && mday <= 31) ? BIN2BCD(mday) : 0xff;
diff --git a/drivers/serial/atmel_serial.c b/drivers/serial/atmel_serial.c
index 430997e33fc4..55492fa095a2 100644
--- a/drivers/serial/atmel_serial.c
+++ b/drivers/serial/atmel_serial.c
@@ -1577,3 +1577,4 @@ module_exit(atmel_serial_exit);
1577MODULE_AUTHOR("Rick Bronson"); 1577MODULE_AUTHOR("Rick Bronson");
1578MODULE_DESCRIPTION("Atmel AT91 / AT32 serial port driver"); 1578MODULE_DESCRIPTION("Atmel AT91 / AT32 serial port driver");
1579MODULE_LICENSE("GPL"); 1579MODULE_LICENSE("GPL");
1580MODULE_ALIAS("platform:atmel_usart");
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index 0aa345b9a38b..46bb47f37b9a 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -1243,6 +1243,7 @@ static struct platform_driver bfin_serial_driver = {
1243 .resume = bfin_serial_resume, 1243 .resume = bfin_serial_resume,
1244 .driver = { 1244 .driver = {
1245 .name = "bfin-uart", 1245 .name = "bfin-uart",
1246 .owner = THIS_MODULE,
1246 }, 1247 },
1247}; 1248};
1248 1249
@@ -1301,3 +1302,4 @@ MODULE_AUTHOR("Aubrey.Li <aubrey.li@analog.com>");
1301MODULE_DESCRIPTION("Blackfin generic serial port driver"); 1302MODULE_DESCRIPTION("Blackfin generic serial port driver");
1302MODULE_LICENSE("GPL"); 1303MODULE_LICENSE("GPL");
1303MODULE_ALIAS_CHARDEV_MAJOR(BFIN_SERIAL_MAJOR); 1304MODULE_ALIAS_CHARDEV_MAJOR(BFIN_SERIAL_MAJOR);
1305MODULE_ALIAS("platform:bfin-uart");
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index 56af1f566a4c..16ba9ac7a566 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -1090,6 +1090,7 @@ static struct platform_driver serial_imx_driver = {
1090 .resume = serial_imx_resume, 1090 .resume = serial_imx_resume,
1091 .driver = { 1091 .driver = {
1092 .name = "imx-uart", 1092 .name = "imx-uart",
1093 .owner = THIS_MODULE,
1093 }, 1094 },
1094}; 1095};
1095 1096
@@ -1124,3 +1125,4 @@ module_exit(imx_serial_exit);
1124MODULE_AUTHOR("Sascha Hauer"); 1125MODULE_AUTHOR("Sascha Hauer");
1125MODULE_DESCRIPTION("IMX generic serial port driver"); 1126MODULE_DESCRIPTION("IMX generic serial port driver");
1126MODULE_LICENSE("GPL"); 1127MODULE_LICENSE("GPL");
1128MODULE_ALIAS("platform:imx-uart");
diff --git a/drivers/serial/mcf.c b/drivers/serial/mcf.c
index e76fc72c9b36..7e164e0cd211 100644
--- a/drivers/serial/mcf.c
+++ b/drivers/serial/mcf.c
@@ -649,5 +649,6 @@ module_exit(mcf_exit);
649MODULE_AUTHOR("Greg Ungerer <gerg@snapgear.com>"); 649MODULE_AUTHOR("Greg Ungerer <gerg@snapgear.com>");
650MODULE_DESCRIPTION("Freescale ColdFire UART driver"); 650MODULE_DESCRIPTION("Freescale ColdFire UART driver");
651MODULE_LICENSE("GPL"); 651MODULE_LICENSE("GPL");
652MODULE_ALIAS("platform:mcfuart");
652 653
653/****************************************************************************/ 654/****************************************************************************/
diff --git a/drivers/serial/mpc52xx_uart.c b/drivers/serial/mpc52xx_uart.c
index a638f23c6c61..d93b3578c5e2 100644
--- a/drivers/serial/mpc52xx_uart.c
+++ b/drivers/serial/mpc52xx_uart.c
@@ -1188,6 +1188,8 @@ mpc52xx_uart_resume(struct platform_device *dev)
1188} 1188}
1189#endif 1189#endif
1190 1190
1191/* work with hotplug and coldplug */
1192MODULE_ALIAS("platform:mpc52xx-psc");
1191 1193
1192static struct platform_driver mpc52xx_uart_platform_driver = { 1194static struct platform_driver mpc52xx_uart_platform_driver = {
1193 .probe = mpc52xx_uart_probe, 1195 .probe = mpc52xx_uart_probe,
diff --git a/drivers/serial/mpsc.c b/drivers/serial/mpsc.c
index cb3a91967742..e8819c43f57d 100644
--- a/drivers/serial/mpsc.c
+++ b/drivers/serial/mpsc.c
@@ -1964,6 +1964,7 @@ static struct platform_driver mpsc_driver = {
1964 .remove = mpsc_drv_remove, 1964 .remove = mpsc_drv_remove,
1965 .driver = { 1965 .driver = {
1966 .name = MPSC_CTLR_NAME, 1966 .name = MPSC_CTLR_NAME,
1967 .owner = THIS_MODULE,
1967 }, 1968 },
1968}; 1969};
1969 1970
@@ -2007,3 +2008,4 @@ MODULE_DESCRIPTION("Generic Marvell MPSC serial/UART driver $Revision: 1.00 $");
2007MODULE_VERSION(MPSC_VERSION); 2008MODULE_VERSION(MPSC_VERSION);
2008MODULE_LICENSE("GPL"); 2009MODULE_LICENSE("GPL");
2009MODULE_ALIAS_CHARDEV_MAJOR(MPSC_MAJOR); 2010MODULE_ALIAS_CHARDEV_MAJOR(MPSC_MAJOR);
2011MODULE_ALIAS("platform:" MPSC_CTLR_NAME);
diff --git a/drivers/serial/netx-serial.c b/drivers/serial/netx-serial.c
index b56f7db45031..3123ffeac8ad 100644
--- a/drivers/serial/netx-serial.c
+++ b/drivers/serial/netx-serial.c
@@ -713,6 +713,7 @@ static struct platform_driver serial_netx_driver = {
713 713
714 .driver = { 714 .driver = {
715 .name = DRIVER_NAME, 715 .name = DRIVER_NAME,
716 .owner = THIS_MODULE,
716 }, 717 },
717}; 718};
718 719
@@ -745,3 +746,4 @@ module_exit(netx_serial_exit);
745MODULE_AUTHOR("Sascha Hauer"); 746MODULE_AUTHOR("Sascha Hauer");
746MODULE_DESCRIPTION("NetX serial port driver"); 747MODULE_DESCRIPTION("NetX serial port driver");
747MODULE_LICENSE("GPL"); 748MODULE_LICENSE("GPL");
749MODULE_ALIAS("platform:" DRIVER_NAME);
diff --git a/drivers/serial/pnx8xxx_uart.c b/drivers/serial/pnx8xxx_uart.c
index 8d01c59e8d04..d0e5a79ea635 100644
--- a/drivers/serial/pnx8xxx_uart.c
+++ b/drivers/serial/pnx8xxx_uart.c
@@ -850,3 +850,4 @@ MODULE_AUTHOR("Embedded Alley Solutions, Inc.");
850MODULE_DESCRIPTION("PNX8XXX SoCs serial port driver"); 850MODULE_DESCRIPTION("PNX8XXX SoCs serial port driver");
851MODULE_LICENSE("GPL"); 851MODULE_LICENSE("GPL");
852MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_PNX8XXX_MAJOR); 852MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_PNX8XXX_MAJOR);
853MODULE_ALIAS("platform:pnx8xxx-uart");
diff --git a/drivers/serial/pxa.c b/drivers/serial/pxa.c
index 352fcb8926a6..b4f7ffb7688d 100644
--- a/drivers/serial/pxa.c
+++ b/drivers/serial/pxa.c
@@ -833,6 +833,7 @@ static struct platform_driver serial_pxa_driver = {
833 .resume = serial_pxa_resume, 833 .resume = serial_pxa_resume,
834 .driver = { 834 .driver = {
835 .name = "pxa2xx-uart", 835 .name = "pxa2xx-uart",
836 .owner = THIS_MODULE,
836 }, 837 },
837}; 838};
838 839
@@ -861,4 +862,4 @@ module_init(serial_pxa_init);
861module_exit(serial_pxa_exit); 862module_exit(serial_pxa_exit);
862 863
863MODULE_LICENSE("GPL"); 864MODULE_LICENSE("GPL");
864 865MODULE_ALIAS("platform:pxa2xx-uart");
diff --git a/drivers/serial/s3c2410.c b/drivers/serial/s3c2410.c
index 45de19366030..4ffa2585429a 100644
--- a/drivers/serial/s3c2410.c
+++ b/drivers/serial/s3c2410.c
@@ -1935,3 +1935,7 @@ console_initcall(s3c24xx_serial_initconsole);
1935MODULE_LICENSE("GPL"); 1935MODULE_LICENSE("GPL");
1936MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); 1936MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>");
1937MODULE_DESCRIPTION("Samsung S3C2410/S3C2440/S3C2412 Serial port driver"); 1937MODULE_DESCRIPTION("Samsung S3C2410/S3C2440/S3C2412 Serial port driver");
1938MODULE_ALIAS("platform:s3c2400-uart");
1939MODULE_ALIAS("platform:s3c2410-uart");
1940MODULE_ALIAS("platform:s3c2412-uart");
1941MODULE_ALIAS("platform:s3c2440-uart");
diff --git a/drivers/serial/sa1100.c b/drivers/serial/sa1100.c
index 58a83c27e14b..67b2338913c2 100644
--- a/drivers/serial/sa1100.c
+++ b/drivers/serial/sa1100.c
@@ -884,6 +884,7 @@ static struct platform_driver sa11x0_serial_driver = {
884 .resume = sa1100_serial_resume, 884 .resume = sa1100_serial_resume,
885 .driver = { 885 .driver = {
886 .name = "sa11x0-uart", 886 .name = "sa11x0-uart",
887 .owner = THIS_MODULE,
887 }, 888 },
888}; 889};
889 890
@@ -917,3 +918,4 @@ MODULE_AUTHOR("Deep Blue Solutions Ltd");
917MODULE_DESCRIPTION("SA1100 generic serial port driver $Revision: 1.50 $"); 918MODULE_DESCRIPTION("SA1100 generic serial port driver $Revision: 1.50 $");
918MODULE_LICENSE("GPL"); 919MODULE_LICENSE("GPL");
919MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_SA1100_MAJOR); 920MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_SA1100_MAJOR);
921MODULE_ALIAS("platform:sa11x0-uart");
diff --git a/drivers/serial/sc26xx.c b/drivers/serial/sc26xx.c
index a350b6d2a181..ae2a9e2df777 100644
--- a/drivers/serial/sc26xx.c
+++ b/drivers/serial/sc26xx.c
@@ -732,6 +732,7 @@ static struct platform_driver sc26xx_driver = {
732 .remove = __devexit_p(sc26xx_driver_remove), 732 .remove = __devexit_p(sc26xx_driver_remove),
733 .driver = { 733 .driver = {
734 .name = "SC26xx", 734 .name = "SC26xx",
735 .owner = THIS_MODULE,
735 }, 736 },
736}; 737};
737 738
@@ -753,3 +754,4 @@ MODULE_AUTHOR("Thomas Bogendörfer");
753MODULE_DESCRIPTION("SC681/SC2692 serial driver"); 754MODULE_DESCRIPTION("SC681/SC2692 serial driver");
754MODULE_VERSION("1.0"); 755MODULE_VERSION("1.0");
755MODULE_LICENSE("GPL"); 756MODULE_LICENSE("GPL");
757MODULE_ALIAS("platform:SC26xx");
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c
index 9d244d1644e1..eff593080d4f 100644
--- a/drivers/serial/sh-sci.c
+++ b/drivers/serial/sh-sci.c
@@ -1552,3 +1552,4 @@ module_init(sci_init);
1552module_exit(sci_exit); 1552module_exit(sci_exit);
1553 1553
1554MODULE_LICENSE("GPL"); 1554MODULE_LICENSE("GPL");
1555MODULE_ALIAS("platform:sh-sci");
diff --git a/drivers/serial/uartlite.c b/drivers/serial/uartlite.c
index 4e06ab6bcb6e..b565d5a37499 100644
--- a/drivers/serial/uartlite.c
+++ b/drivers/serial/uartlite.c
@@ -561,6 +561,9 @@ static int __devexit ulite_remove(struct platform_device *pdev)
561 return ulite_release(&pdev->dev); 561 return ulite_release(&pdev->dev);
562} 562}
563 563
564/* work with hotplug and coldplug */
565MODULE_ALIAS("platform:uartlite");
566
564static struct platform_driver ulite_platform_driver = { 567static struct platform_driver ulite_platform_driver = {
565 .probe = ulite_probe, 568 .probe = ulite_probe,
566 .remove = __devexit_p(ulite_remove), 569 .remove = __devexit_p(ulite_remove),
diff --git a/drivers/serial/vr41xx_siu.c b/drivers/serial/vr41xx_siu.c
index 6fd51b0022ca..98ab649c1ff9 100644
--- a/drivers/serial/vr41xx_siu.c
+++ b/drivers/serial/vr41xx_siu.c
@@ -960,3 +960,6 @@ static void __exit vr41xx_siu_exit(void)
960 960
961module_init(vr41xx_siu_init); 961module_init(vr41xx_siu_init);
962module_exit(vr41xx_siu_exit); 962module_exit(vr41xx_siu_exit);
963
964MODULE_LICENSE("GPL");
965MODULE_ALIAS("platform:SIU");
diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c
index e75103aac790..b7476b888197 100644
--- a/drivers/spi/spi_s3c24xx.c
+++ b/drivers/spi/spi_s3c24xx.c
@@ -192,8 +192,11 @@ static int s3c24xx_spi_txrx(struct spi_device *spi, struct spi_transfer *t)
192 hw->len = t->len; 192 hw->len = t->len;
193 hw->count = 0; 193 hw->count = 0;
194 194
195 init_completion(&hw->done);
196
195 /* send the first byte */ 197 /* send the first byte */
196 writeb(hw_txbyte(hw, 0), hw->regs + S3C2410_SPTDAT); 198 writeb(hw_txbyte(hw, 0), hw->regs + S3C2410_SPTDAT);
199
197 wait_for_completion(&hw->done); 200 wait_for_completion(&hw->done);
198 201
199 return hw->count; 202 return hw->count;
@@ -235,6 +238,7 @@ static irqreturn_t s3c24xx_spi_irq(int irq, void *dev)
235 238
236static int __init s3c24xx_spi_probe(struct platform_device *pdev) 239static int __init s3c24xx_spi_probe(struct platform_device *pdev)
237{ 240{
241 struct s3c2410_spi_info *pdata;
238 struct s3c24xx_spi *hw; 242 struct s3c24xx_spi *hw;
239 struct spi_master *master; 243 struct spi_master *master;
240 struct resource *res; 244 struct resource *res;
@@ -251,10 +255,10 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
251 memset(hw, 0, sizeof(struct s3c24xx_spi)); 255 memset(hw, 0, sizeof(struct s3c24xx_spi));
252 256
253 hw->master = spi_master_get(master); 257 hw->master = spi_master_get(master);
254 hw->pdata = pdev->dev.platform_data; 258 hw->pdata = pdata = pdev->dev.platform_data;
255 hw->dev = &pdev->dev; 259 hw->dev = &pdev->dev;
256 260
257 if (hw->pdata == NULL) { 261 if (pdata == NULL) {
258 dev_err(&pdev->dev, "No platform data supplied\n"); 262 dev_err(&pdev->dev, "No platform data supplied\n");
259 err = -ENOENT; 263 err = -ENOENT;
260 goto err_no_pdata; 264 goto err_no_pdata;
@@ -263,6 +267,10 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
263 platform_set_drvdata(pdev, hw); 267 platform_set_drvdata(pdev, hw);
264 init_completion(&hw->done); 268 init_completion(&hw->done);
265 269
270 /* setup the master state. */
271
272 master->num_chipselect = hw->pdata->num_cs;
273
266 /* setup the state for the bitbang driver */ 274 /* setup the state for the bitbang driver */
267 275
268 hw->bitbang.master = hw->master; 276 hw->bitbang.master = hw->master;
@@ -330,13 +338,13 @@ static int __init s3c24xx_spi_probe(struct platform_device *pdev)
330 338
331 /* setup any gpio we can */ 339 /* setup any gpio we can */
332 340
333 if (!hw->pdata->set_cs) { 341 if (!pdata->set_cs) {
334 hw->set_cs = s3c24xx_spi_gpiocs; 342 hw->set_cs = s3c24xx_spi_gpiocs;
335 343
336 s3c2410_gpio_setpin(hw->pdata->pin_cs, 1); 344 s3c2410_gpio_setpin(pdata->pin_cs, 1);
337 s3c2410_gpio_cfgpin(hw->pdata->pin_cs, S3C2410_GPIO_OUTPUT); 345 s3c2410_gpio_cfgpin(pdata->pin_cs, S3C2410_GPIO_OUTPUT);
338 } else 346 } else
339 hw->set_cs = hw->pdata->set_cs; 347 hw->set_cs = pdata->set_cs;
340 348
341 /* register our spi controller */ 349 /* register our spi controller */
342 350
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c
index 72017bf2e577..8003a9e55ac4 100644
--- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c
@@ -436,15 +436,18 @@ static int ssb_devices_register(struct ssb_bus *bus)
436#ifdef CONFIG_SSB_PCIHOST 436#ifdef CONFIG_SSB_PCIHOST
437 sdev->irq = bus->host_pci->irq; 437 sdev->irq = bus->host_pci->irq;
438 dev->parent = &bus->host_pci->dev; 438 dev->parent = &bus->host_pci->dev;
439 sdev->dma_dev = &bus->host_pci->dev;
439#endif 440#endif
440 break; 441 break;
441 case SSB_BUSTYPE_PCMCIA: 442 case SSB_BUSTYPE_PCMCIA:
442#ifdef CONFIG_SSB_PCMCIAHOST 443#ifdef CONFIG_SSB_PCMCIAHOST
443 sdev->irq = bus->host_pcmcia->irq.AssignedIRQ; 444 sdev->irq = bus->host_pcmcia->irq.AssignedIRQ;
444 dev->parent = &bus->host_pcmcia->dev; 445 dev->parent = &bus->host_pcmcia->dev;
446 sdev->dma_dev = &bus->host_pcmcia->dev;
445#endif 447#endif
446 break; 448 break;
447 case SSB_BUSTYPE_SSB: 449 case SSB_BUSTYPE_SSB:
450 sdev->dma_dev = dev;
448 break; 451 break;
449 } 452 }
450 453
@@ -1018,15 +1021,14 @@ EXPORT_SYMBOL(ssb_dma_translation);
1018 1021
1019int ssb_dma_set_mask(struct ssb_device *ssb_dev, u64 mask) 1022int ssb_dma_set_mask(struct ssb_device *ssb_dev, u64 mask)
1020{ 1023{
1021 struct device *dev = ssb_dev->dev; 1024 struct device *dma_dev = ssb_dev->dma_dev;
1022 1025
1023#ifdef CONFIG_SSB_PCIHOST 1026#ifdef CONFIG_SSB_PCIHOST
1024 if (ssb_dev->bus->bustype == SSB_BUSTYPE_PCI && 1027 if (ssb_dev->bus->bustype == SSB_BUSTYPE_PCI)
1025 !dma_supported(dev, mask)) 1028 return dma_set_mask(dma_dev, mask);
1026 return -EIO;
1027#endif 1029#endif
1028 dev->coherent_dma_mask = mask; 1030 dma_dev->coherent_dma_mask = mask;
1029 dev->dma_mask = &dev->coherent_dma_mask; 1031 dma_dev->dma_mask = &dma_dev->coherent_dma_mask;
1030 1032
1031 return 0; 1033 return 0;
1032} 1034}
diff --git a/drivers/thermal/thermal.c b/drivers/thermal/thermal.c
index 8b86e53ccf7a..7f79bbf652d7 100644
--- a/drivers/thermal/thermal.c
+++ b/drivers/thermal/thermal.c
@@ -196,6 +196,10 @@ static struct device_attribute trip_point_attrs[] = {
196 __ATTR(trip_point_8_temp, 0444, trip_point_temp_show, NULL), 196 __ATTR(trip_point_8_temp, 0444, trip_point_temp_show, NULL),
197 __ATTR(trip_point_9_type, 0444, trip_point_type_show, NULL), 197 __ATTR(trip_point_9_type, 0444, trip_point_type_show, NULL),
198 __ATTR(trip_point_9_temp, 0444, trip_point_temp_show, NULL), 198 __ATTR(trip_point_9_temp, 0444, trip_point_temp_show, NULL),
199 __ATTR(trip_point_10_type, 0444, trip_point_type_show, NULL),
200 __ATTR(trip_point_10_temp, 0444, trip_point_temp_show, NULL),
201 __ATTR(trip_point_11_type, 0444, trip_point_type_show, NULL),
202 __ATTR(trip_point_11_temp, 0444, trip_point_temp_show, NULL),
199}; 203};
200 204
201#define TRIP_POINT_ATTR_ADD(_dev, _index, result) \ 205#define TRIP_POINT_ATTR_ADD(_dev, _index, result) \
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index a396fbbdc9c2..d101025a4c63 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -109,6 +109,22 @@ static int option_send_setup(struct usb_serial_port *port);
109#define HUAWEI_PRODUCT_E600 0x1001 109#define HUAWEI_PRODUCT_E600 0x1001
110#define HUAWEI_PRODUCT_E220 0x1003 110#define HUAWEI_PRODUCT_E220 0x1003
111#define HUAWEI_PRODUCT_E220BIS 0x1004 111#define HUAWEI_PRODUCT_E220BIS 0x1004
112#define HUAWEI_PRODUCT_E1401 0x1401
113#define HUAWEI_PRODUCT_E1403 0x1403
114#define HUAWEI_PRODUCT_E1405 0x1405
115#define HUAWEI_PRODUCT_E1406 0x1406
116#define HUAWEI_PRODUCT_E1408 0x1408
117#define HUAWEI_PRODUCT_E1409 0x1409
118#define HUAWEI_PRODUCT_E1410 0x1410
119#define HUAWEI_PRODUCT_E1411 0x1411
120#define HUAWEI_PRODUCT_E1412 0x1412
121#define HUAWEI_PRODUCT_E1413 0x1413
122#define HUAWEI_PRODUCT_E1414 0x1414
123#define HUAWEI_PRODUCT_E1415 0x1415
124#define HUAWEI_PRODUCT_E1416 0x1416
125#define HUAWEI_PRODUCT_E1417 0x1417
126#define HUAWEI_PRODUCT_E1418 0x1418
127#define HUAWEI_PRODUCT_E1419 0x1419
112 128
113#define NOVATELWIRELESS_VENDOR_ID 0x1410 129#define NOVATELWIRELESS_VENDOR_ID 0x1410
114 130
@@ -129,6 +145,7 @@ static int option_send_setup(struct usb_serial_port *port);
129#define NOVATELWIRELESS_PRODUCT_EV620 0x2100 145#define NOVATELWIRELESS_PRODUCT_EV620 0x2100
130#define NOVATELWIRELESS_PRODUCT_ES720 0x2110 146#define NOVATELWIRELESS_PRODUCT_ES720 0x2110
131#define NOVATELWIRELESS_PRODUCT_E725 0x2120 147#define NOVATELWIRELESS_PRODUCT_E725 0x2120
148#define NOVATELWIRELESS_PRODUCT_ES620 0x2130
132#define NOVATELWIRELESS_PRODUCT_EU730 0x2400 149#define NOVATELWIRELESS_PRODUCT_EU730 0x2400
133#define NOVATELWIRELESS_PRODUCT_EU740 0x2410 150#define NOVATELWIRELESS_PRODUCT_EU740 0x2410
134#define NOVATELWIRELESS_PRODUCT_EU870D 0x2420 151#define NOVATELWIRELESS_PRODUCT_EU870D 0x2420
@@ -137,6 +154,8 @@ static int option_send_setup(struct usb_serial_port *port);
137#define NOVATELWIRELESS_PRODUCT_MC727 0x4100 154#define NOVATELWIRELESS_PRODUCT_MC727 0x4100
138#define NOVATELWIRELESS_PRODUCT_MC950D 0x4400 155#define NOVATELWIRELESS_PRODUCT_MC950D 0x4400
139 156
157#define NOVATELWIRELESS_PRODUCT_U727 0x5010
158
140/* FUTURE NOVATEL PRODUCTS */ 159/* FUTURE NOVATEL PRODUCTS */
141#define NOVATELWIRELESS_PRODUCT_EVDO_1 0x6000 160#define NOVATELWIRELESS_PRODUCT_EVDO_1 0x6000
142#define NOVATELWIRELESS_PRODUCT_HSPA_1 0x7000 161#define NOVATELWIRELESS_PRODUCT_HSPA_1 0x7000
@@ -147,6 +166,12 @@ static int option_send_setup(struct usb_serial_port *port);
147#define NOVATELWIRELESS_PRODUCT_EMBEDDED_2 0x8001 166#define NOVATELWIRELESS_PRODUCT_EMBEDDED_2 0x8001
148#define NOVATELWIRELESS_PRODUCT_GLOBAL_2 0x9001 167#define NOVATELWIRELESS_PRODUCT_GLOBAL_2 0x9001
149 168
169/* AMOI PRODUCTS */
170#define AMOI_VENDOR_ID 0x1614
171#define AMOI_PRODUCT_H01 0x0800
172#define AMOI_PRODUCT_H01A 0x7002
173#define AMOI_PRODUCT_H02 0x0802
174
150#define DELL_VENDOR_ID 0x413C 175#define DELL_VENDOR_ID 0x413C
151 176
152#define KYOCERA_VENDOR_ID 0x0c88 177#define KYOCERA_VENDOR_ID 0x0c88
@@ -163,8 +188,13 @@ static int option_send_setup(struct usb_serial_port *port);
163#define BANDRICH_PRODUCT_C100_1 0x1002 188#define BANDRICH_PRODUCT_C100_1 0x1002
164#define BANDRICH_PRODUCT_C100_2 0x1003 189#define BANDRICH_PRODUCT_C100_2 0x1003
165 190
191#define AMOI_VENDOR_ID 0x1614
192#define AMOI_PRODUCT_9508 0x0800
193
166#define QUALCOMM_VENDOR_ID 0x05C6 194#define QUALCOMM_VENDOR_ID 0x05C6
167 195
196#define MAXON_VENDOR_ID 0x16d8
197
168static struct usb_device_id option_ids[] = { 198static struct usb_device_id option_ids[] = {
169 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) }, 199 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
170 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) }, 200 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
@@ -204,6 +234,23 @@ static struct usb_device_id option_ids[] = {
204 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, 234 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) },
205 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, 235 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) },
206 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, 236 { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) },
237 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1401) },
238 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1403) },
239 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1405) },
240 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1406) },
241 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1408) },
242 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1409) },
243 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1410) },
244 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1411) },
245 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1412) },
246 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1413) },
247 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1414) },
248 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1415) },
249 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1416) },
250 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1417) },
251 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1418) },
252 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1419) },
253 { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) },
207 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */ 254 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */
208 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */ 255 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V620) }, /* Novatel Merlin V620/S620 */
209 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V740) }, /* Novatel Merlin EX720/V740/X720 */ 256 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V740) }, /* Novatel Merlin EX720/V740/X720 */
@@ -216,13 +263,13 @@ static struct usb_device_id option_ids[] = {
216 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EV620) }, /* Novatel EV620/ES620 CDMA/EV-DO */ 263 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EV620) }, /* Novatel EV620/ES620 CDMA/EV-DO */
217 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES720) }, /* Novatel ES620/ES720/U720/USB720 */ 264 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES720) }, /* Novatel ES620/ES720/U720/USB720 */
218 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E725) }, /* Novatel E725/E726 */ 265 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_E725) }, /* Novatel E725/E726 */
219 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x2130) }, /* Novatel Merlin ES620 SM Bus */ 266 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_ES620) }, /* Novatel Merlin ES620 SM Bus */
220 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU730) }, /* Novatel EU730 and Vodafone EU740 */ 267 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU730) }, /* Novatel EU730 and Vodafone EU740 */
221 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU740) }, /* Novatel non-Vodafone EU740 */ 268 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU740) }, /* Novatel non-Vodafone EU740 */
222 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) }, /* Novatel EU850D/EU860D/EU870D */ 269 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) }, /* Novatel EU850D/EU860D/EU870D */
223 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) }, /* Novatel MC930D/MC950D */ 270 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) }, /* Novatel MC930D/MC950D */
224 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) }, /* Novatel MC727/U727/USB727 */ 271 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) }, /* Novatel MC727/U727/USB727 */
225 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, 0x5010) }, /* Novatel U727 */ 272 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U727) }, /* Novatel U727 */
226 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_1) }, /* Novatel EVDO product */ 273 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_1) }, /* Novatel EVDO product */
227 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_1) }, /* Novatel HSPA product */ 274 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_1) }, /* Novatel HSPA product */
228 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_1) }, /* Novatel Embedded product */ 275 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_1) }, /* Novatel Embedded product */
@@ -232,6 +279,10 @@ static struct usb_device_id option_ids[] = {
232 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_2) }, /* Novatel Embedded product */ 279 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EMBEDDED_2) }, /* Novatel Embedded product */
233 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL_2) }, /* Novatel Global product */ 280 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_GLOBAL_2) }, /* Novatel Global product */
234 281
282 { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) },
283 { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) },
284 { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H02) },
285
235 { USB_DEVICE(DELL_VENDOR_ID, 0x8114) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */ 286 { USB_DEVICE(DELL_VENDOR_ID, 0x8114) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite EV620 CDMA/EV-DO */
236 { USB_DEVICE(DELL_VENDOR_ID, 0x8115) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ 287 { USB_DEVICE(DELL_VENDOR_ID, 0x8115) }, /* Dell Wireless 5500 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
237 { USB_DEVICE(DELL_VENDOR_ID, 0x8116) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */ 288 { USB_DEVICE(DELL_VENDOR_ID, 0x8116) }, /* Dell Wireless 5505 Mobile Broadband HSDPA Mini-Card == Novatel Expedite EU740 HSDPA/3G */
@@ -249,6 +300,7 @@ static struct usb_device_id option_ids[] = {
249 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, 300 { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) },
250 { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) }, 301 { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) },
251 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ 302 { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
303 { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */
252 { } /* Terminating entry */ 304 { } /* Terminating entry */
253}; 305};
254MODULE_DEVICE_TABLE(usb, option_ids); 306MODULE_DEVICE_TABLE(usb, option_ids);
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index 3ce98e8d7bce..2138ba8aeb69 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -854,6 +854,7 @@ int usb_serial_probe(struct usb_interface *interface,
854 serial->num_interrupt_in = num_interrupt_in; 854 serial->num_interrupt_in = num_interrupt_in;
855 serial->num_interrupt_out = num_interrupt_out; 855 serial->num_interrupt_out = num_interrupt_out;
856 856
857#if 0
857 /* check that the device meets the driver's requirements */ 858 /* check that the device meets the driver's requirements */
858 if ((type->num_interrupt_in != NUM_DONT_CARE && 859 if ((type->num_interrupt_in != NUM_DONT_CARE &&
859 type->num_interrupt_in != num_interrupt_in) 860 type->num_interrupt_in != num_interrupt_in)
@@ -867,6 +868,7 @@ int usb_serial_probe(struct usb_interface *interface,
867 kfree(serial); 868 kfree(serial);
868 return -EIO; 869 return -EIO;
869 } 870 }
871#endif
870 872
871 /* found all that we need */ 873 /* found all that we need */
872 dev_info(&interface->dev, "%s converter detected\n", 874 dev_info(&interface->dev, "%s converter detected\n",
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index e5219a56947c..91252075e6e1 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1530,16 +1530,104 @@ UNUSUAL_DEV( 0x1210, 0x0003, 0x0100, 0x0100,
1530 US_SC_DEVICE, US_PR_DEVICE, NULL, 1530 US_SC_DEVICE, US_PR_DEVICE, NULL,
1531 US_FL_IGNORE_RESIDUE ), 1531 US_FL_IGNORE_RESIDUE ),
1532 1532
1533/* Reported by fangxiaozhi <fangxiaozhi60675@huawei.com> 1533/* Reported by fangxiaozhi <huananhu@huawei.com>
1534 * and by linlei <linlei83@huawei.com> 1534 * This brings the HUAWEI data card devices into multi-port mode
1535 * Patch reworked by Johann Wilhelm <johann.wilhelm@student.tugraz.at>
1536 * This brings the HUAWEI E220 devices into multi-port mode
1537 */ 1535 */
1536UNUSUAL_DEV( 0x12d1, 0x1001, 0x0000, 0x0000,
1537 "HUAWEI MOBILE",
1538 "Mass Storage",
1539 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1540 0),
1538UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000, 1541UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000,
1539 "HUAWEI MOBILE", 1542 "HUAWEI MOBILE",
1540 "Mass Storage", 1543 "Mass Storage",
1541 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init, 1544 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1542 0), 1545 0),
1546UNUSUAL_DEV( 0x12d1, 0x1004, 0x0000, 0x0000,
1547 "HUAWEI MOBILE",
1548 "Mass Storage",
1549 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1550 0),
1551UNUSUAL_DEV( 0x12d1, 0x1401, 0x0000, 0x0000,
1552 "HUAWEI MOBILE",
1553 "Mass Storage",
1554 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1555 0),
1556UNUSUAL_DEV( 0x12d1, 0x1403, 0x0000, 0x0000,
1557 "HUAWEI MOBILE",
1558 "Mass Storage",
1559 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1560 0),
1561UNUSUAL_DEV( 0x12d1, 0x1405, 0x0000, 0x0000,
1562 "HUAWEI MOBILE",
1563 "Mass Storage",
1564 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1565 0),
1566UNUSUAL_DEV( 0x12d1, 0x1406, 0x0000, 0x0000,
1567 "HUAWEI MOBILE",
1568 "Mass Storage",
1569 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1570 0),
1571UNUSUAL_DEV( 0x12d1, 0x1408, 0x0000, 0x0000,
1572 "HUAWEI MOBILE",
1573 "Mass Storage",
1574 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1575 0),
1576UNUSUAL_DEV( 0x12d1, 0x1409, 0x0000, 0x0000,
1577 "HUAWEI MOBILE",
1578 "Mass Storage",
1579 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1580 0),
1581UNUSUAL_DEV( 0x12d1, 0x1410, 0x0000, 0x0000,
1582 "HUAWEI MOBILE",
1583 "Mass Storage",
1584 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1585 0),
1586UNUSUAL_DEV( 0x12d1, 0x1411, 0x0000, 0x0000,
1587 "HUAWEI MOBILE",
1588 "Mass Storage",
1589 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1590 0),
1591UNUSUAL_DEV( 0x12d1, 0x1412, 0x0000, 0x0000,
1592 "HUAWEI MOBILE",
1593 "Mass Storage",
1594 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1595 0),
1596UNUSUAL_DEV( 0x12d1, 0x1413, 0x0000, 0x0000,
1597 "HUAWEI MOBILE",
1598 "Mass Storage",
1599 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1600 0),
1601UNUSUAL_DEV( 0x12d1, 0x1414, 0x0000, 0x0000,
1602 "HUAWEI MOBILE",
1603 "Mass Storage",
1604 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1605 0),
1606UNUSUAL_DEV( 0x12d1, 0x1415, 0x0000, 0x0000,
1607 "HUAWEI MOBILE",
1608 "Mass Storage",
1609 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1610 0),
1611UNUSUAL_DEV( 0x12d1, 0x1416, 0x0000, 0x0000,
1612 "HUAWEI MOBILE",
1613 "Mass Storage",
1614 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1615 0),
1616UNUSUAL_DEV( 0x12d1, 0x1417, 0x0000, 0x0000,
1617 "HUAWEI MOBILE",
1618 "Mass Storage",
1619 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1620 0),
1621UNUSUAL_DEV( 0x12d1, 0x1418, 0x0000, 0x0000,
1622 "HUAWEI MOBILE",
1623 "Mass Storage",
1624 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1625 0),
1626UNUSUAL_DEV( 0x12d1, 0x1419, 0x0000, 0x0000,
1627 "HUAWEI MOBILE",
1628 "Mass Storage",
1629 US_SC_DEVICE, US_PR_DEVICE, usb_stor_huawei_e220_init,
1630 0),
1543 1631
1544/* Reported by Vilius Bilinkevicius <vilisas AT xxx DOT lt) */ 1632/* Reported by Vilius Bilinkevicius <vilisas AT xxx DOT lt) */
1545UNUSUAL_DEV( 0x132b, 0x000b, 0x0001, 0x0001, 1633UNUSUAL_DEV( 0x132b, 0x000b, 0x0001, 0x0001,
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 1194f5e060ea..01072f4b3e8f 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -1521,6 +1521,7 @@ module_init(fbmem_init);
1521static void __exit 1521static void __exit
1522fbmem_exit(void) 1522fbmem_exit(void)
1523{ 1523{
1524 remove_proc_entry("fb", NULL);
1524 class_destroy(fb_class); 1525 class_destroy(fb_class);
1525 unregister_chrdev(FB_MAJOR, "fb"); 1526 unregister_chrdev(FB_MAJOR, "fb");
1526} 1527}