diff options
| author | Steve French <sfrench@us.ibm.com> | 2008-04-17 19:38:45 -0400 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2008-04-17 19:38:45 -0400 |
| commit | 20e673810c69d18bee2ed74d19af3806ec2504f5 (patch) | |
| tree | 7c22dc5246295a82f2688a23ae1c7f3a4f424302 /drivers | |
| parent | 8d142137b4fe87188f211042b16a5993964226f9 (diff) | |
| parent | 4b119e21d0c66c22e8ca03df05d9de623d0eb50f (diff) | |
Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'drivers')
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 @@ | |||
| 56 | static _auide_hwif auide_hwif; | 49 | static _auide_hwif auide_hwif; |
| 57 | static int dbdma_init_done; | 50 | static int dbdma_init_done; |
| 58 | 51 | ||
| 52 | static 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 | ||
| 61 | void auide_insw(unsigned long port, void *addr, u32 count) | 56 | void 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) | |||
| 667 | module_init(it821x_ide_init); | 667 | module_init(it821x_ide_init); |
| 668 | 668 | ||
| 669 | module_param_named(noraid, it8212_noraid, int, S_IRUGO); | 669 | module_param_named(noraid, it8212_noraid, int, S_IRUGO); |
| 670 | MODULE_PARM_DESC(it8212_noraid, "Force card into bypass mode"); | 670 | MODULE_PARM_DESC(noraid, "Force card into bypass mode"); |
| 671 | 671 | ||
| 672 | MODULE_AUTHOR("Alan Cox"); | 672 | MODULE_AUTHOR("Alan Cox"); |
| 673 | MODULE_DESCRIPTION("PCI driver module for the ITE 821x"); | 673 | MODULE_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); | |||
| 159 | MODULE_AUTHOR("Jonathan McDowell <noodles@earth.li>"); | 160 | MODULE_AUTHOR("Jonathan McDowell <noodles@earth.li>"); |
| 160 | MODULE_DESCRIPTION("Amstrad Delta LED driver"); | 161 | MODULE_DESCRIPTION("Amstrad Delta LED driver"); |
| 161 | MODULE_LICENSE("GPL"); | 162 | MODULE_LICENSE("GPL"); |
| 163 | MODULE_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 */ | ||
| 136 | MODULE_ALIAS("platform:leds-atmel-pwm"); | ||
| 137 | |||
| 135 | static struct platform_driver pwmled_driver = { | 138 | static 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); | |||
| 120 | MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>"); | 121 | MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>"); |
| 121 | MODULE_DESCRIPTION("CM-x270 LED driver"); | 122 | MODULE_DESCRIPTION("CM-x270 LED driver"); |
| 122 | MODULE_LICENSE("GPL"); | 123 | MODULE_LICENSE("GPL"); |
| 124 | MODULE_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 */ | ||
| 79 | MODULE_ALIAS("platform:cobalt-qube-leds"); | ||
| 80 | |||
| 78 | static struct platform_driver cobalt_qube_led_driver = { | 81 | static 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); | |||
| 118 | MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>"); | 119 | MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>"); |
| 119 | MODULE_DESCRIPTION("Corgi LED driver"); | 120 | MODULE_DESCRIPTION("Corgi LED driver"); |
| 120 | MODULE_LICENSE("GPL"); | 121 | MODULE_LICENSE("GPL"); |
| 122 | MODULE_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); | |||
| 199 | MODULE_AUTHOR("Raphael Assenat <raph@8d.com>"); | 199 | MODULE_AUTHOR("Raphael Assenat <raph@8d.com>"); |
| 200 | MODULE_DESCRIPTION("GPIO LED driver"); | 200 | MODULE_DESCRIPTION("GPIO LED driver"); |
| 201 | MODULE_LICENSE("GPL"); | 201 | MODULE_LICENSE("GPL"); |
| 202 | MODULE_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) | |||
| 139 | static struct platform_driver h1940leds_driver = { | 139 | static 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); | |||
| 161 | MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>"); | 162 | MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>"); |
| 162 | MODULE_DESCRIPTION("LED driver for the iPAQ H1940"); | 163 | MODULE_DESCRIPTION("LED driver for the iPAQ H1940"); |
| 163 | MODULE_LICENSE("GPL"); | 164 | MODULE_LICENSE("GPL"); |
| 165 | MODULE_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 */ | ||
| 94 | MODULE_ALIAS("platform:hp6xx-led"); | ||
| 95 | |||
| 93 | static struct platform_driver hp6xxled_driver = { | 96 | static 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); | |||
| 160 | MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); | 160 | MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); |
| 161 | MODULE_DESCRIPTION("S3C24XX LED driver"); | 161 | MODULE_DESCRIPTION("S3C24XX LED driver"); |
| 162 | MODULE_LICENSE("GPL"); | 162 | MODULE_LICENSE("GPL"); |
| 163 | MODULE_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); | |||
| 124 | MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>"); | 125 | MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>"); |
| 125 | MODULE_DESCRIPTION("Spitz LED driver"); | 126 | MODULE_DESCRIPTION("Spitz LED driver"); |
| 126 | MODULE_LICENSE("GPL"); | 127 | MODULE_LICENSE("GPL"); |
| 128 | MODULE_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); | |||
| 128 | MODULE_AUTHOR("Dirk Opfer <Dirk@Opfer-Online.de>"); | 129 | MODULE_AUTHOR("Dirk Opfer <Dirk@Opfer-Online.de>"); |
| 129 | MODULE_DESCRIPTION("Tosa LED driver"); | 130 | MODULE_DESCRIPTION("Tosa LED driver"); |
| 130 | MODULE_LICENSE("GPL"); | 131 | MODULE_LICENSE("GPL"); |
| 132 | MODULE_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); | |||
| 172 | MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>"); | 173 | MODULE_AUTHOR("Hans-Christian Egtvedt <hcegtvedt@atmel.com>"); |
| 173 | MODULE_DESCRIPTION("SSC driver for Atmel AVR32 and AT91"); | 174 | MODULE_DESCRIPTION("SSC driver for Atmel AVR32 and AT91"); |
| 174 | MODULE_LICENSE("GPL"); | 175 | MODULE_LICENSE("GPL"); |
| 176 | MODULE_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 | ||
| 408 | MODULE_DESCRIPTION("Driver for AT32/AT91 PWM module"); | 408 | MODULE_DESCRIPTION("Driver for AT32/AT91 PWM module"); |
| 409 | MODULE_LICENSE("GPL"); | 409 | MODULE_LICENSE("GPL"); |
| 410 | MODULE_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 | ||
| 249 | MODULE_AUTHOR("Brian Waite"); | 250 | MODULE_AUTHOR("Brian Waite"); |
| 250 | MODULE_LICENSE("GPL"); | 251 | MODULE_LICENSE("GPL"); |
| 252 | MODULE_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 | ||
| 152 | MODULE_AUTHOR("Brian Waite"); | 153 | MODULE_AUTHOR("Brian Waite"); |
| 153 | MODULE_LICENSE("GPL"); | 154 | MODULE_LICENSE("GPL"); |
| 155 | MODULE_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); | |||
| 1075 | MODULE_DESCRIPTION("AT91 Multimedia Card Interface driver"); | 1075 | MODULE_DESCRIPTION("AT91 Multimedia Card Interface driver"); |
| 1076 | MODULE_AUTHOR("Nick Randell"); | 1076 | MODULE_AUTHOR("Nick Randell"); |
| 1077 | MODULE_LICENSE("GPL"); | 1077 | MODULE_LICENSE("GPL"); |
| 1078 | MODULE_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); | |||
| 1018 | MODULE_AUTHOR("Advanced Micro Devices, Inc"); | 1019 | MODULE_AUTHOR("Advanced Micro Devices, Inc"); |
| 1019 | MODULE_DESCRIPTION("MMC/SD driver for the Alchemy Au1XXX"); | 1020 | MODULE_DESCRIPTION("MMC/SD driver for the Alchemy Au1XXX"); |
| 1020 | MODULE_LICENSE("GPL"); | 1021 | MODULE_LICENSE("GPL"); |
| 1022 | MODULE_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); | |||
| 1147 | MODULE_DESCRIPTION("i.MX Multimedia Card Interface Driver"); | 1148 | MODULE_DESCRIPTION("i.MX Multimedia Card Interface Driver"); |
| 1148 | MODULE_AUTHOR("Sascha Hauer, Pengutronix"); | 1149 | MODULE_AUTHOR("Sascha Hauer, Pengutronix"); |
| 1149 | MODULE_LICENSE("GPL"); | 1150 | MODULE_LICENSE("GPL"); |
| 1151 | MODULE_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 | ||
| 1274 | MODULE_DESCRIPTION("OMAP Multimedia Card driver"); | 1275 | MODULE_DESCRIPTION("OMAP Multimedia Card driver"); |
| 1275 | MODULE_LICENSE("GPL"); | 1276 | MODULE_LICENSE("GPL"); |
| 1276 | MODULE_ALIAS(DRIVER_NAME); | 1277 | MODULE_ALIAS("platform:" DRIVER_NAME); |
| 1277 | MODULE_AUTHOR("Juha Yrjölä"); | 1278 | MODULE_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 | ||
| 712 | MODULE_DESCRIPTION("PXA Multimedia Card Interface Driver"); | 713 | MODULE_DESCRIPTION("PXA Multimedia Card Interface Driver"); |
| 713 | MODULE_LICENSE("GPL"); | 714 | MODULE_LICENSE("GPL"); |
| 715 | MODULE_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 | ||
| 731 | static struct console netconsole = { | 731 | static 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 | ||
| 426 | static int alloc_ringmemory(struct b43_dmaring *ring) | 427 | static 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 | ||
| 453 | static void free_ringmemory(struct b43_dmaring *ring) | 454 | static 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 | ||
| 459 | static int alloc_ringmemory(struct b43legacy_dmaring *ring) | 459 | static 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 | ||
| 475 | static void free_ringmemory(struct b43legacy_dmaring *ring) | 475 | static 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. */ |
| 587 | static bool b43legacy_dma_mapping_error(struct b43legacy_dmaring *ring, | 587 | static 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 | |||
| 612 | address_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 | ||
| 612 | static int setup_rx_descbuffer(struct b43legacy_dmaring *ring, | 619 | static 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 | ||
| 528 | static int rtl8187_config(struct ieee80211_hw *dev, struct ieee80211_conf *conf) | 531 | static 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); | |||
| 419 | MODULE_DESCRIPTION("AT91 Compact Flash Driver"); | 419 | MODULE_DESCRIPTION("AT91 Compact Flash Driver"); |
| 420 | MODULE_AUTHOR("David Brownell"); | 420 | MODULE_AUTHOR("David Brownell"); |
| 421 | MODULE_LICENSE("GPL"); | 421 | MODULE_LICENSE("GPL"); |
| 422 | MODULE_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) | |||
| 344 | static struct platform_driver omap_cf_driver = { | 344 | static 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 | ||
| 369 | MODULE_DESCRIPTION("OMAP CF Driver"); | 370 | MODULE_DESCRIPTION("OMAP CF Driver"); |
| 370 | MODULE_LICENSE("GPL"); | 371 | MODULE_LICENSE("GPL"); |
| 372 | MODULE_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); | |||
| 258 | MODULE_AUTHOR("Stefan Eletzhofer <stefan.eletzhofer@inquant.de> and Ian Molton <spyro@f2s.com>"); | 259 | MODULE_AUTHOR("Stefan Eletzhofer <stefan.eletzhofer@inquant.de> and Ian Molton <spyro@f2s.com>"); |
| 259 | MODULE_DESCRIPTION("Linux PCMCIA Card Services: PXA2xx core socket driver"); | 260 | MODULE_DESCRIPTION("Linux PCMCIA Card Services: PXA2xx core socket driver"); |
| 260 | MODULE_LICENSE("GPL"); | 261 | MODULE_LICENSE("GPL"); |
| 262 | MODULE_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); | |||
| 1577 | MODULE_AUTHOR("Rick Bronson"); | 1577 | MODULE_AUTHOR("Rick Bronson"); |
| 1578 | MODULE_DESCRIPTION("Atmel AT91 / AT32 serial port driver"); | 1578 | MODULE_DESCRIPTION("Atmel AT91 / AT32 serial port driver"); |
| 1579 | MODULE_LICENSE("GPL"); | 1579 | MODULE_LICENSE("GPL"); |
| 1580 | MODULE_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>"); | |||
| 1301 | MODULE_DESCRIPTION("Blackfin generic serial port driver"); | 1302 | MODULE_DESCRIPTION("Blackfin generic serial port driver"); |
| 1302 | MODULE_LICENSE("GPL"); | 1303 | MODULE_LICENSE("GPL"); |
| 1303 | MODULE_ALIAS_CHARDEV_MAJOR(BFIN_SERIAL_MAJOR); | 1304 | MODULE_ALIAS_CHARDEV_MAJOR(BFIN_SERIAL_MAJOR); |
| 1305 | MODULE_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); | |||
| 1124 | MODULE_AUTHOR("Sascha Hauer"); | 1125 | MODULE_AUTHOR("Sascha Hauer"); |
| 1125 | MODULE_DESCRIPTION("IMX generic serial port driver"); | 1126 | MODULE_DESCRIPTION("IMX generic serial port driver"); |
| 1126 | MODULE_LICENSE("GPL"); | 1127 | MODULE_LICENSE("GPL"); |
| 1128 | MODULE_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); | |||
| 649 | MODULE_AUTHOR("Greg Ungerer <gerg@snapgear.com>"); | 649 | MODULE_AUTHOR("Greg Ungerer <gerg@snapgear.com>"); |
| 650 | MODULE_DESCRIPTION("Freescale ColdFire UART driver"); | 650 | MODULE_DESCRIPTION("Freescale ColdFire UART driver"); |
| 651 | MODULE_LICENSE("GPL"); | 651 | MODULE_LICENSE("GPL"); |
| 652 | MODULE_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 */ | ||
| 1192 | MODULE_ALIAS("platform:mpc52xx-psc"); | ||
| 1191 | 1193 | ||
| 1192 | static struct platform_driver mpc52xx_uart_platform_driver = { | 1194 | static 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 $"); | |||
| 2007 | MODULE_VERSION(MPSC_VERSION); | 2008 | MODULE_VERSION(MPSC_VERSION); |
| 2008 | MODULE_LICENSE("GPL"); | 2009 | MODULE_LICENSE("GPL"); |
| 2009 | MODULE_ALIAS_CHARDEV_MAJOR(MPSC_MAJOR); | 2010 | MODULE_ALIAS_CHARDEV_MAJOR(MPSC_MAJOR); |
| 2011 | MODULE_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); | |||
| 745 | MODULE_AUTHOR("Sascha Hauer"); | 746 | MODULE_AUTHOR("Sascha Hauer"); |
| 746 | MODULE_DESCRIPTION("NetX serial port driver"); | 747 | MODULE_DESCRIPTION("NetX serial port driver"); |
| 747 | MODULE_LICENSE("GPL"); | 748 | MODULE_LICENSE("GPL"); |
| 749 | MODULE_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."); | |||
| 850 | MODULE_DESCRIPTION("PNX8XXX SoCs serial port driver"); | 850 | MODULE_DESCRIPTION("PNX8XXX SoCs serial port driver"); |
| 851 | MODULE_LICENSE("GPL"); | 851 | MODULE_LICENSE("GPL"); |
| 852 | MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_PNX8XXX_MAJOR); | 852 | MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_PNX8XXX_MAJOR); |
| 853 | MODULE_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); | |||
| 861 | module_exit(serial_pxa_exit); | 862 | module_exit(serial_pxa_exit); |
| 862 | 863 | ||
| 863 | MODULE_LICENSE("GPL"); | 864 | MODULE_LICENSE("GPL"); |
| 864 | 865 | MODULE_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); | |||
| 1935 | MODULE_LICENSE("GPL"); | 1935 | MODULE_LICENSE("GPL"); |
| 1936 | MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); | 1936 | MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); |
| 1937 | MODULE_DESCRIPTION("Samsung S3C2410/S3C2440/S3C2412 Serial port driver"); | 1937 | MODULE_DESCRIPTION("Samsung S3C2410/S3C2440/S3C2412 Serial port driver"); |
| 1938 | MODULE_ALIAS("platform:s3c2400-uart"); | ||
| 1939 | MODULE_ALIAS("platform:s3c2410-uart"); | ||
| 1940 | MODULE_ALIAS("platform:s3c2412-uart"); | ||
| 1941 | MODULE_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"); | |||
| 917 | MODULE_DESCRIPTION("SA1100 generic serial port driver $Revision: 1.50 $"); | 918 | MODULE_DESCRIPTION("SA1100 generic serial port driver $Revision: 1.50 $"); |
| 918 | MODULE_LICENSE("GPL"); | 919 | MODULE_LICENSE("GPL"); |
| 919 | MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_SA1100_MAJOR); | 920 | MODULE_ALIAS_CHARDEV_MAJOR(SERIAL_SA1100_MAJOR); |
| 921 | MODULE_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"); | |||
| 753 | MODULE_DESCRIPTION("SC681/SC2692 serial driver"); | 754 | MODULE_DESCRIPTION("SC681/SC2692 serial driver"); |
| 754 | MODULE_VERSION("1.0"); | 755 | MODULE_VERSION("1.0"); |
| 755 | MODULE_LICENSE("GPL"); | 756 | MODULE_LICENSE("GPL"); |
| 757 | MODULE_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); | |||
| 1552 | module_exit(sci_exit); | 1552 | module_exit(sci_exit); |
| 1553 | 1553 | ||
| 1554 | MODULE_LICENSE("GPL"); | 1554 | MODULE_LICENSE("GPL"); |
| 1555 | MODULE_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 */ | ||
| 565 | MODULE_ALIAS("platform:uartlite"); | ||
| 566 | |||
| 564 | static struct platform_driver ulite_platform_driver = { | 567 | static 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 | ||
| 961 | module_init(vr41xx_siu_init); | 961 | module_init(vr41xx_siu_init); |
| 962 | module_exit(vr41xx_siu_exit); | 962 | module_exit(vr41xx_siu_exit); |
| 963 | |||
| 964 | MODULE_LICENSE("GPL"); | ||
| 965 | MODULE_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 | ||
| 236 | static int __init s3c24xx_spi_probe(struct platform_device *pdev) | 239 | static 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 | ||
| 1019 | int ssb_dma_set_mask(struct ssb_device *ssb_dev, u64 mask) | 1022 | int 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 | |||
| 168 | static struct usb_device_id option_ids[] = { | 198 | static 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 | }; |
| 254 | MODULE_DEVICE_TABLE(usb, option_ids); | 306 | MODULE_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 | */ |
| 1536 | UNUSUAL_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), | ||
| 1538 | UNUSUAL_DEV( 0x12d1, 0x1003, 0x0000, 0x0000, | 1541 | UNUSUAL_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), |
| 1546 | UNUSUAL_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), | ||
| 1551 | UNUSUAL_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), | ||
| 1556 | UNUSUAL_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), | ||
| 1561 | UNUSUAL_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), | ||
| 1566 | UNUSUAL_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), | ||
| 1571 | UNUSUAL_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), | ||
| 1576 | UNUSUAL_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), | ||
| 1581 | UNUSUAL_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), | ||
| 1586 | UNUSUAL_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), | ||
| 1591 | UNUSUAL_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), | ||
| 1596 | UNUSUAL_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), | ||
| 1601 | UNUSUAL_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), | ||
| 1606 | UNUSUAL_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), | ||
| 1611 | UNUSUAL_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), | ||
| 1616 | UNUSUAL_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), | ||
| 1621 | UNUSUAL_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), | ||
| 1626 | UNUSUAL_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) */ |
| 1545 | UNUSUAL_DEV( 0x132b, 0x000b, 0x0001, 0x0001, | 1633 | UNUSUAL_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); | |||
| 1521 | static void __exit | 1521 | static void __exit |
| 1522 | fbmem_exit(void) | 1522 | fbmem_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 | } |
