diff options
| -rw-r--r-- | Documentation/arm/empeg/README | 13 | ||||
| -rw-r--r-- | Documentation/arm/empeg/ir.txt | 49 | ||||
| -rw-r--r-- | Documentation/arm/empeg/mkdevs | 11 | ||||
| -rw-r--r-- | MAINTAINERS | 5 | ||||
| -rw-r--r-- | arch/arm/common/sharpsl_pm.c | 19 | ||||
| -rw-r--r-- | arch/arm/mach-at91/include/mach/gpio.h | 2 | ||||
| -rw-r--r-- | arch/arm/mach-ep93xx/core.c | 6 | ||||
| -rw-r--r-- | arch/arm/mach-imx/include/mach/gpio.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-ixp4xx/include/mach/gpio.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-ks8695/include/mach/gpio.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-ns9xxx/gpio.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-orion5x/gpio.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/corgi_pm.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/include/mach/sharpsl.h | 1 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/spitz.c | 12 | ||||
| -rw-r--r-- | arch/arm/mach-pxa/spitz_pm.c | 4 | ||||
| -rw-r--r-- | arch/arm/mm/proc-xsc3.S | 2 | ||||
| -rw-r--r-- | drivers/leds/leds-da903x.c | 2 | ||||
| -rw-r--r-- | drivers/mmc/host/mmci.c | 5 | ||||
| -rw-r--r-- | drivers/video/backlight/corgi_lcd.c | 4 |
20 files changed, 64 insertions, 88 deletions
diff --git a/Documentation/arm/empeg/README b/Documentation/arm/empeg/README deleted file mode 100644 index 09cc8d03ae58..000000000000 --- a/Documentation/arm/empeg/README +++ /dev/null | |||
| @@ -1,13 +0,0 @@ | |||
| 1 | Empeg, Ltd's Empeg MP3 Car Audio Player | ||
| 2 | |||
| 3 | The initial design is to go in your car, but you can use it at home, on a | ||
| 4 | boat... almost anywhere. The principle is to store CD-quality music using | ||
| 5 | MPEG technology onto a hard disk in the unit, and use the power of the | ||
| 6 | embedded computer to serve up the music you want. | ||
| 7 | |||
| 8 | For more details, see: | ||
| 9 | |||
| 10 | http://www.empeg.com | ||
| 11 | |||
| 12 | |||
| 13 | |||
diff --git a/Documentation/arm/empeg/ir.txt b/Documentation/arm/empeg/ir.txt deleted file mode 100644 index 10a297450164..000000000000 --- a/Documentation/arm/empeg/ir.txt +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | Infra-red driver documentation. | ||
| 2 | |||
| 3 | Mike Crowe <mac@empeg.com> | ||
| 4 | (C) Empeg Ltd 1999 | ||
| 5 | |||
| 6 | Not a lot here yet :-) | ||
| 7 | |||
| 8 | The Kenwood KCA-R6A remote control generates a sequence like the following: | ||
| 9 | |||
| 10 | Go low for approx 16T (Around 9000us) | ||
| 11 | Go high for approx 8T (Around 4000us) | ||
| 12 | Go low for less than 2T (Around 750us) | ||
| 13 | |||
| 14 | For each of the 32 bits | ||
| 15 | Go high for more than 2T (Around 1500us) == 1 | ||
| 16 | Go high for less than T (Around 400us) == 0 | ||
| 17 | Go low for less than 2T (Around 750us) | ||
| 18 | |||
| 19 | Rather than repeat a signal when the button is held down certain buttons | ||
| 20 | generate the following code to indicate repetition. | ||
| 21 | |||
| 22 | Go low for approx 16T | ||
| 23 | Go high for approx 4T | ||
| 24 | Go low for less than 2T | ||
| 25 | |||
| 26 | (By removing the <2T from the start of the sequence and placing at the end | ||
| 27 | it can be considered a stop bit but I found it easier to deal with it at | ||
| 28 | the start). | ||
| 29 | |||
| 30 | The 32 bits are encoded as XxYy where x and y are the actual data values | ||
| 31 | while X and Y are the logical inverses of the associated data values. Using | ||
| 32 | LSB first yields sensible codes for the numbers. | ||
| 33 | |||
| 34 | All codes are of the form b9xx | ||
| 35 | |||
| 36 | The numeric keys generate the code 0x where x is the number pressed. | ||
| 37 | |||
| 38 | Tuner 1c | ||
| 39 | Tape 1d | ||
| 40 | CD 1e | ||
| 41 | CD-MD-CH 1f | ||
| 42 | Track- 0a | ||
| 43 | Track+ 0b | ||
| 44 | Rewind 0c | ||
| 45 | FF 0d | ||
| 46 | DNPP 5e | ||
| 47 | Play/Pause 0e | ||
| 48 | Vol+ 14 | ||
| 49 | Vol- 15 | ||
diff --git a/Documentation/arm/empeg/mkdevs b/Documentation/arm/empeg/mkdevs deleted file mode 100644 index 7a85e28d14f3..000000000000 --- a/Documentation/arm/empeg/mkdevs +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | mknod /dev/display c 244 0 | ||
| 3 | mknod /dev/ir c 242 0 | ||
| 4 | mknod /dev/usb0 c 243 0 | ||
| 5 | mknod /dev/audio c 245 4 | ||
| 6 | mknod /dev/dsp c 245 3 | ||
| 7 | mknod /dev/mixer c 245 0 | ||
| 8 | mknod /dev/empeg_state c 246 0 | ||
| 9 | mknod /dev/radio0 c 81 64 | ||
| 10 | ln -sf radio0 radio | ||
| 11 | ln -sf usb0 usb | ||
diff --git a/MAINTAINERS b/MAINTAINERS index 16202c8ac68f..bfce9bb22f18 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -610,6 +610,11 @@ P: Philipp Zabel | |||
| 610 | M: philipp.zabel@gmail.com | 610 | M: philipp.zabel@gmail.com |
| 611 | S: Maintained | 611 | S: Maintained |
| 612 | 612 | ||
| 613 | ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT | ||
| 614 | P: Michael Petchkovsky | ||
| 615 | M: mkpetch@internode.on.net | ||
| 616 | S: Maintained | ||
| 617 | |||
| 613 | ARM/TOSA MACHINE SUPPORT | 618 | ARM/TOSA MACHINE SUPPORT |
| 614 | P: Dmitry Baryshkov | 619 | P: Dmitry Baryshkov |
| 615 | M: dbaryshkov@gmail.com | 620 | M: dbaryshkov@gmail.com |
diff --git a/arch/arm/common/sharpsl_pm.c b/arch/arm/common/sharpsl_pm.c index db8309161408..780bbf7cb26f 100644 --- a/arch/arm/common/sharpsl_pm.c +++ b/arch/arm/common/sharpsl_pm.c | |||
| @@ -54,11 +54,13 @@ | |||
| 54 | /* | 54 | /* |
| 55 | * Prototypes | 55 | * Prototypes |
| 56 | */ | 56 | */ |
| 57 | #ifdef CONFIG_PM | ||
| 57 | static int sharpsl_off_charge_battery(void); | 58 | static int sharpsl_off_charge_battery(void); |
| 58 | static int sharpsl_check_battery_temp(void); | ||
| 59 | static int sharpsl_check_battery_voltage(void); | 59 | static int sharpsl_check_battery_voltage(void); |
| 60 | static int sharpsl_ac_check(void); | ||
| 61 | static int sharpsl_fatal_check(void); | 60 | static int sharpsl_fatal_check(void); |
| 61 | #endif | ||
| 62 | static int sharpsl_check_battery_temp(void); | ||
| 63 | static int sharpsl_ac_check(void); | ||
| 62 | static int sharpsl_average_value(int ad); | 64 | static int sharpsl_average_value(int ad); |
| 63 | static void sharpsl_average_clear(void); | 65 | static void sharpsl_average_clear(void); |
| 64 | static void sharpsl_charge_toggle(struct work_struct *private_); | 66 | static void sharpsl_charge_toggle(struct work_struct *private_); |
| @@ -424,6 +426,7 @@ static int sharpsl_check_battery_temp(void) | |||
| 424 | return 0; | 426 | return 0; |
| 425 | } | 427 | } |
| 426 | 428 | ||
| 429 | #ifdef CONFIG_PM | ||
| 427 | static int sharpsl_check_battery_voltage(void) | 430 | static int sharpsl_check_battery_voltage(void) |
| 428 | { | 431 | { |
| 429 | int val, i, buff[5]; | 432 | int val, i, buff[5]; |
| @@ -455,6 +458,7 @@ static int sharpsl_check_battery_voltage(void) | |||
| 455 | 458 | ||
| 456 | return 0; | 459 | return 0; |
| 457 | } | 460 | } |
| 461 | #endif | ||
| 458 | 462 | ||
| 459 | static int sharpsl_ac_check(void) | 463 | static int sharpsl_ac_check(void) |
| 460 | { | 464 | { |
| @@ -586,8 +590,6 @@ static int corgi_pxa_pm_enter(suspend_state_t state) | |||
| 586 | 590 | ||
| 587 | return 0; | 591 | return 0; |
| 588 | } | 592 | } |
| 589 | #endif | ||
| 590 | |||
| 591 | 593 | ||
| 592 | /* | 594 | /* |
| 593 | * Check for fatal battery errors | 595 | * Check for fatal battery errors |
| @@ -738,7 +740,10 @@ static int sharpsl_off_charge_battery(void) | |||
| 738 | } | 740 | } |
| 739 | } | 741 | } |
| 740 | } | 742 | } |
| 741 | 743 | #else | |
| 744 | #define sharpsl_pm_suspend NULL | ||
| 745 | #define sharpsl_pm_resume NULL | ||
| 746 | #endif | ||
| 742 | 747 | ||
| 743 | static ssize_t battery_percentage_show(struct device *dev, struct device_attribute *attr, char *buf) | 748 | static ssize_t battery_percentage_show(struct device *dev, struct device_attribute *attr, char *buf) |
| 744 | { | 749 | { |
| @@ -768,10 +773,12 @@ static void sharpsl_apm_get_power_status(struct apm_power_info *info) | |||
| 768 | info->battery_life = sharpsl_pm.battstat.mainbat_percent; | 773 | info->battery_life = sharpsl_pm.battstat.mainbat_percent; |
| 769 | } | 774 | } |
| 770 | 775 | ||
| 776 | #ifdef CONFIG_PM | ||
| 771 | static struct platform_suspend_ops sharpsl_pm_ops = { | 777 | static struct platform_suspend_ops sharpsl_pm_ops = { |
| 772 | .enter = corgi_pxa_pm_enter, | 778 | .enter = corgi_pxa_pm_enter, |
| 773 | .valid = suspend_valid_only_mem, | 779 | .valid = suspend_valid_only_mem, |
| 774 | }; | 780 | }; |
| 781 | #endif | ||
| 775 | 782 | ||
| 776 | static int __init sharpsl_pm_probe(struct platform_device *pdev) | 783 | static int __init sharpsl_pm_probe(struct platform_device *pdev) |
| 777 | { | 784 | { |
| @@ -802,7 +809,9 @@ static int __init sharpsl_pm_probe(struct platform_device *pdev) | |||
| 802 | 809 | ||
| 803 | apm_get_power_status = sharpsl_apm_get_power_status; | 810 | apm_get_power_status = sharpsl_apm_get_power_status; |
| 804 | 811 | ||
| 812 | #ifdef CONFIG_PM | ||
| 805 | suspend_set_ops(&sharpsl_pm_ops); | 813 | suspend_set_ops(&sharpsl_pm_ops); |
| 814 | #endif | ||
| 806 | 815 | ||
| 807 | mod_timer(&sharpsl_pm.ac_timer, jiffies + msecs_to_jiffies(250)); | 816 | mod_timer(&sharpsl_pm.ac_timer, jiffies + msecs_to_jiffies(250)); |
| 808 | 817 | ||
diff --git a/arch/arm/mach-at91/include/mach/gpio.h b/arch/arm/mach-at91/include/mach/gpio.h index 76d76e2fa69e..bffa6741a751 100644 --- a/arch/arm/mach-at91/include/mach/gpio.h +++ b/arch/arm/mach-at91/include/mach/gpio.h | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #ifndef __ASM_ARCH_AT91RM9200_GPIO_H | 13 | #ifndef __ASM_ARCH_AT91RM9200_GPIO_H |
| 14 | #define __ASM_ARCH_AT91RM9200_GPIO_H | 14 | #define __ASM_ARCH_AT91RM9200_GPIO_H |
| 15 | 15 | ||
| 16 | #include <linux/kernel.h> | ||
| 16 | #include <asm/irq.h> | 17 | #include <asm/irq.h> |
| 17 | 18 | ||
| 18 | #define PIN_BASE NR_AIC_IRQS | 19 | #define PIN_BASE NR_AIC_IRQS |
| @@ -220,6 +221,7 @@ static inline int gpio_request(unsigned gpio, const char *label) | |||
| 220 | 221 | ||
| 221 | static inline void gpio_free(unsigned gpio) | 222 | static inline void gpio_free(unsigned gpio) |
| 222 | { | 223 | { |
| 224 | might_sleep(); | ||
| 223 | } | 225 | } |
| 224 | 226 | ||
| 225 | extern int gpio_direction_input(unsigned gpio); | 227 | extern int gpio_direction_input(unsigned gpio); |
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c index de53f0be71b9..48345fb34613 100644 --- a/arch/arm/mach-ep93xx/core.c +++ b/arch/arm/mach-ep93xx/core.c | |||
| @@ -26,6 +26,7 @@ | |||
| 26 | #include <linux/serial_core.h> | 26 | #include <linux/serial_core.h> |
| 27 | #include <linux/device.h> | 27 | #include <linux/device.h> |
| 28 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
| 29 | #include <linux/dma-mapping.h> | ||
| 29 | #include <linux/time.h> | 30 | #include <linux/time.h> |
| 30 | #include <linux/timex.h> | 31 | #include <linux/timex.h> |
| 31 | #include <linux/delay.h> | 32 | #include <linux/delay.h> |
| @@ -449,12 +450,13 @@ static struct resource ep93xx_ohci_resources[] = { | |||
| 449 | }, | 450 | }, |
| 450 | }; | 451 | }; |
| 451 | 452 | ||
| 453 | |||
| 452 | static struct platform_device ep93xx_ohci_device = { | 454 | static struct platform_device ep93xx_ohci_device = { |
| 453 | .name = "ep93xx-ohci", | 455 | .name = "ep93xx-ohci", |
| 454 | .id = -1, | 456 | .id = -1, |
| 455 | .dev = { | 457 | .dev = { |
| 456 | .dma_mask = (void *)0xffffffff, | 458 | .dma_mask = &ep93xx_ohci_device.dev.coherent_dma_mask, |
| 457 | .coherent_dma_mask = 0xffffffff, | 459 | .coherent_dma_mask = DMA_BIT_MASK(32), |
| 458 | }, | 460 | }, |
| 459 | .num_resources = ARRAY_SIZE(ep93xx_ohci_resources), | 461 | .num_resources = ARRAY_SIZE(ep93xx_ohci_resources), |
| 460 | .resource = ep93xx_ohci_resources, | 462 | .resource = ep93xx_ohci_resources, |
diff --git a/arch/arm/mach-imx/include/mach/gpio.h b/arch/arm/mach-imx/include/mach/gpio.h index 6e3d795f2264..502d5aa2c093 100644 --- a/arch/arm/mach-imx/include/mach/gpio.h +++ b/arch/arm/mach-imx/include/mach/gpio.h | |||
| @@ -1,5 +1,6 @@ | |||
| 1 | #ifndef _IMX_GPIO_H | 1 | #ifndef _IMX_GPIO_H |
| 2 | 2 | ||
| 3 | #include <linux/kernel.h> | ||
| 3 | #include <mach/imx-regs.h> | 4 | #include <mach/imx-regs.h> |
| 4 | 5 | ||
| 5 | #define IMX_GPIO_ALLOC_MODE_NORMAL 0 | 6 | #define IMX_GPIO_ALLOC_MODE_NORMAL 0 |
| @@ -63,6 +64,8 @@ static inline int gpio_request(unsigned gpio, const char *label) | |||
| 63 | 64 | ||
| 64 | static inline void gpio_free(unsigned gpio) | 65 | static inline void gpio_free(unsigned gpio) |
| 65 | { | 66 | { |
| 67 | might_sleep(); | ||
| 68 | |||
| 66 | imx_gpio_free(gpio); | 69 | imx_gpio_free(gpio); |
| 67 | } | 70 | } |
| 68 | 71 | ||
diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h index 9fbde177920f..cd5aec26c072 100644 --- a/arch/arm/mach-ixp4xx/include/mach/gpio.h +++ b/arch/arm/mach-ixp4xx/include/mach/gpio.h | |||
| @@ -25,6 +25,7 @@ | |||
| 25 | #ifndef __ASM_ARCH_IXP4XX_GPIO_H | 25 | #ifndef __ASM_ARCH_IXP4XX_GPIO_H |
| 26 | #define __ASM_ARCH_IXP4XX_GPIO_H | 26 | #define __ASM_ARCH_IXP4XX_GPIO_H |
| 27 | 27 | ||
| 28 | #include <linux/kernel.h> | ||
| 28 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
| 29 | 30 | ||
| 30 | static inline int gpio_request(unsigned gpio, const char *label) | 31 | static inline int gpio_request(unsigned gpio, const char *label) |
| @@ -34,6 +35,8 @@ static inline int gpio_request(unsigned gpio, const char *label) | |||
| 34 | 35 | ||
| 35 | static inline void gpio_free(unsigned gpio) | 36 | static inline void gpio_free(unsigned gpio) |
| 36 | { | 37 | { |
| 38 | might_sleep(); | ||
| 39 | |||
| 37 | return; | 40 | return; |
| 38 | } | 41 | } |
| 39 | 42 | ||
diff --git a/arch/arm/mach-ks8695/include/mach/gpio.h b/arch/arm/mach-ks8695/include/mach/gpio.h index 73c84168761c..d4af5c335f16 100644 --- a/arch/arm/mach-ks8695/include/mach/gpio.h +++ b/arch/arm/mach-ks8695/include/mach/gpio.h | |||
| @@ -11,6 +11,8 @@ | |||
| 11 | #ifndef __ASM_ARCH_GPIO_H_ | 11 | #ifndef __ASM_ARCH_GPIO_H_ |
| 12 | #define __ASM_ARCH_GPIO_H_ | 12 | #define __ASM_ARCH_GPIO_H_ |
| 13 | 13 | ||
| 14 | #include <linux/kernel.h> | ||
| 15 | |||
| 14 | #define KS8695_GPIO_0 0 | 16 | #define KS8695_GPIO_0 0 |
| 15 | #define KS8695_GPIO_1 1 | 17 | #define KS8695_GPIO_1 1 |
| 16 | #define KS8695_GPIO_2 2 | 18 | #define KS8695_GPIO_2 2 |
| @@ -74,6 +76,7 @@ static inline int gpio_request(unsigned int pin, const char *label) | |||
| 74 | 76 | ||
| 75 | static inline void gpio_free(unsigned int pin) | 77 | static inline void gpio_free(unsigned int pin) |
| 76 | { | 78 | { |
| 79 | might_sleep(); | ||
| 77 | } | 80 | } |
| 78 | 81 | ||
| 79 | #endif | 82 | #endif |
diff --git a/arch/arm/mach-ns9xxx/gpio.c b/arch/arm/mach-ns9xxx/gpio.c index 5241e6a286cc..5503ca09c4ae 100644 --- a/arch/arm/mach-ns9xxx/gpio.c +++ b/arch/arm/mach-ns9xxx/gpio.c | |||
| @@ -8,6 +8,7 @@ | |||
| 8 | * under the terms of the GNU General Public License version 2 as published by | 8 | * under the terms of the GNU General Public License version 2 as published by |
| 9 | * the Free Software Foundation. | 9 | * the Free Software Foundation. |
| 10 | */ | 10 | */ |
| 11 | #include <linux/kernel.h> | ||
| 11 | #include <linux/compiler.h> | 12 | #include <linux/compiler.h> |
| 12 | #include <linux/init.h> | 13 | #include <linux/init.h> |
| 13 | #include <linux/spinlock.h> | 14 | #include <linux/spinlock.h> |
| @@ -63,6 +64,7 @@ EXPORT_SYMBOL(gpio_request); | |||
| 63 | 64 | ||
| 64 | void gpio_free(unsigned gpio) | 65 | void gpio_free(unsigned gpio) |
| 65 | { | 66 | { |
| 67 | might_sleep(); | ||
| 66 | clear_bit(gpio, gpiores); | 68 | clear_bit(gpio, gpiores); |
| 67 | return; | 69 | return; |
| 68 | } | 70 | } |
diff --git a/arch/arm/mach-orion5x/gpio.c b/arch/arm/mach-orion5x/gpio.c index fc419868e39f..f99d08811e5a 100644 --- a/arch/arm/mach-orion5x/gpio.c +++ b/arch/arm/mach-orion5x/gpio.c | |||
| @@ -165,6 +165,8 @@ EXPORT_SYMBOL(gpio_request); | |||
| 165 | 165 | ||
| 166 | void gpio_free(unsigned pin) | 166 | void gpio_free(unsigned pin) |
| 167 | { | 167 | { |
| 168 | might_sleep(); | ||
| 169 | |||
| 168 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { | 170 | if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) { |
| 169 | pr_debug("%s: invalid GPIO %d\n", __func__, pin); | 171 | pr_debug("%s: invalid GPIO %d\n", __func__, pin); |
| 170 | return; | 172 | return; |
diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c index eb7d6c94aa42..e35259032813 100644 --- a/arch/arm/mach-pxa/corgi_pm.c +++ b/arch/arm/mach-pxa/corgi_pm.c | |||
| @@ -204,7 +204,9 @@ static struct sharpsl_charger_machinfo corgi_pm_machinfo = { | |||
| 204 | .read_devdata = corgipm_read_devdata, | 204 | .read_devdata = corgipm_read_devdata, |
| 205 | .charger_wakeup = corgi_charger_wakeup, | 205 | .charger_wakeup = corgi_charger_wakeup, |
| 206 | .should_wakeup = corgi_should_wakeup, | 206 | .should_wakeup = corgi_should_wakeup, |
| 207 | #ifdef CONFIG_BACKLIGHT_CORGI | 207 | #if defined(CONFIG_LCD_CORGI) |
| 208 | .backlight_limit = corgi_lcd_limit_intensity, | ||
| 209 | #elif defined(CONFIG_BACKLIGHT_CORGI) | ||
| 208 | .backlight_limit = corgibl_limit_intensity, | 210 | .backlight_limit = corgibl_limit_intensity, |
| 209 | #endif | 211 | #endif |
| 210 | .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, | 212 | .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, |
diff --git a/arch/arm/mach-pxa/include/mach/sharpsl.h b/arch/arm/mach-pxa/include/mach/sharpsl.h index 3b1d4a72d4d1..8242e14a44fa 100644 --- a/arch/arm/mach-pxa/include/mach/sharpsl.h +++ b/arch/arm/mach-pxa/include/mach/sharpsl.h | |||
| @@ -26,6 +26,7 @@ struct corgits_machinfo { | |||
| 26 | * SharpSL Backlight | 26 | * SharpSL Backlight |
| 27 | */ | 27 | */ |
| 28 | extern void corgibl_limit_intensity(int limit); | 28 | extern void corgibl_limit_intensity(int limit); |
| 29 | extern void corgi_lcd_limit_intensity(int limit); | ||
| 29 | 30 | ||
| 30 | 31 | ||
| 31 | /* | 32 | /* |
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 524f656dc56d..f0a5bbae0b45 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c | |||
| @@ -385,6 +385,16 @@ static void __init spitz_init_spi(void) | |||
| 385 | if (err) | 385 | if (err) |
| 386 | goto err_free_2; | 386 | goto err_free_2; |
| 387 | 387 | ||
| 388 | err = gpio_direction_output(SPITZ_GPIO_ADS7846_CS, 1); | ||
| 389 | if (err) | ||
| 390 | goto err_free_3; | ||
| 391 | err = gpio_direction_output(SPITZ_GPIO_LCDCON_CS, 1); | ||
| 392 | if (err) | ||
| 393 | goto err_free_3; | ||
| 394 | err = gpio_direction_output(SPITZ_GPIO_MAX1111_CS, 1); | ||
| 395 | if (err) | ||
| 396 | goto err_free_3; | ||
| 397 | |||
| 388 | if (machine_is_akita()) { | 398 | if (machine_is_akita()) { |
| 389 | spitz_lcdcon_info.gpio_backlight_cont = AKITA_GPIO_BACKLIGHT_CONT; | 399 | spitz_lcdcon_info.gpio_backlight_cont = AKITA_GPIO_BACKLIGHT_CONT; |
| 390 | spitz_lcdcon_info.gpio_backlight_on = AKITA_GPIO_BACKLIGHT_ON; | 400 | spitz_lcdcon_info.gpio_backlight_on = AKITA_GPIO_BACKLIGHT_ON; |
| @@ -394,6 +404,8 @@ static void __init spitz_init_spi(void) | |||
| 394 | spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices)); | 404 | spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices)); |
| 395 | return; | 405 | return; |
| 396 | 406 | ||
| 407 | err_free_3: | ||
| 408 | gpio_free(SPITZ_GPIO_MAX1111_CS); | ||
| 397 | err_free_2: | 409 | err_free_2: |
| 398 | gpio_free(SPITZ_GPIO_LCDCON_CS); | 410 | gpio_free(SPITZ_GPIO_LCDCON_CS); |
| 399 | err_free_1: | 411 | err_free_1: |
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c index 53018db106ac..072e77cfe5a3 100644 --- a/arch/arm/mach-pxa/spitz_pm.c +++ b/arch/arm/mach-pxa/spitz_pm.c | |||
| @@ -198,7 +198,9 @@ struct sharpsl_charger_machinfo spitz_pm_machinfo = { | |||
| 198 | .read_devdata = spitzpm_read_devdata, | 198 | .read_devdata = spitzpm_read_devdata, |
| 199 | .charger_wakeup = spitz_charger_wakeup, | 199 | .charger_wakeup = spitz_charger_wakeup, |
| 200 | .should_wakeup = spitz_should_wakeup, | 200 | .should_wakeup = spitz_should_wakeup, |
| 201 | #ifdef CONFIG_BACKLIGHT_CORGI | 201 | #if defined(CONFIG_LCD_CORGI) |
| 202 | .backlight_limit = corgi_lcd_limit_intensity, | ||
| 203 | #elif defined(CONFIG_BACKLIGHT_CORGI) | ||
| 202 | .backlight_limit = corgibl_limit_intensity, | 204 | .backlight_limit = corgibl_limit_intensity, |
| 203 | #endif | 205 | #endif |
| 204 | .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, | 206 | .charge_on_volt = SHARPSL_CHARGE_ON_VOLT, |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 04dc8b65401b..8f6cf56c11c0 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
| @@ -349,7 +349,7 @@ ENTRY(cpu_xsc3_switch_mm) | |||
| 349 | cpu_xsc3_mt_table: | 349 | cpu_xsc3_mt_table: |
| 350 | .long 0x00 @ L_PTE_MT_UNCACHED | 350 | .long 0x00 @ L_PTE_MT_UNCACHED |
| 351 | .long PTE_EXT_TEX(1) @ L_PTE_MT_BUFFERABLE | 351 | .long PTE_EXT_TEX(1) @ L_PTE_MT_BUFFERABLE |
| 352 | .long PTE_CACHEABLE @ L_PTE_MT_WRITETHROUGH | 352 | .long PTE_EXT_TEX(5) | PTE_CACHEABLE @ L_PTE_MT_WRITETHROUGH |
| 353 | .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEBACK | 353 | .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEBACK |
| 354 | .long PTE_EXT_TEX(1) | PTE_BUFFERABLE @ L_PTE_MT_DEV_SHARED | 354 | .long PTE_EXT_TEX(1) | PTE_BUFFERABLE @ L_PTE_MT_DEV_SHARED |
| 355 | .long 0x00 @ unused | 355 | .long 0x00 @ unused |
diff --git a/drivers/leds/leds-da903x.c b/drivers/leds/leds-da903x.c index 2768c69257f6..1f3cc512eff8 100644 --- a/drivers/leds/leds-da903x.c +++ b/drivers/leds/leds-da903x.c | |||
| @@ -58,7 +58,7 @@ static void da903x_led_work(struct work_struct *work) | |||
| 58 | offset = DA9030_LED_OFFSET(led->id); | 58 | offset = DA9030_LED_OFFSET(led->id); |
| 59 | val = led->flags & ~0x87; | 59 | val = led->flags & ~0x87; |
| 60 | val |= (led->new_brightness) ? 0x80 : 0; /* EN bit */ | 60 | val |= (led->new_brightness) ? 0x80 : 0; /* EN bit */ |
| 61 | val |= (led->new_brightness >> 5) & 0x7; /* PWM<2:0> */ | 61 | val |= (0x7 - (led->new_brightness >> 5)) & 0x7; /* PWM<2:0> */ |
| 62 | da903x_write(led->master, DA9030_LED1_CONTROL + offset, val); | 62 | da903x_write(led->master, DA9030_LED1_CONTROL + offset, val); |
| 63 | break; | 63 | break; |
| 64 | case DA9030_ID_VIBRA: | 64 | case DA9030_ID_VIBRA: |
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index 696cf3647ceb..2fadf323c696 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c | |||
| @@ -391,6 +391,7 @@ static irqreturn_t mmci_irq(int irq, void *dev_id) | |||
| 391 | static void mmci_request(struct mmc_host *mmc, struct mmc_request *mrq) | 391 | static void mmci_request(struct mmc_host *mmc, struct mmc_request *mrq) |
| 392 | { | 392 | { |
| 393 | struct mmci_host *host = mmc_priv(mmc); | 393 | struct mmci_host *host = mmc_priv(mmc); |
| 394 | unsigned long flags; | ||
| 394 | 395 | ||
| 395 | WARN_ON(host->mrq != NULL); | 396 | WARN_ON(host->mrq != NULL); |
| 396 | 397 | ||
| @@ -402,7 +403,7 @@ static void mmci_request(struct mmc_host *mmc, struct mmc_request *mrq) | |||
| 402 | return; | 403 | return; |
| 403 | } | 404 | } |
| 404 | 405 | ||
| 405 | spin_lock_irq(&host->lock); | 406 | spin_lock_irqsave(&host->lock, flags); |
| 406 | 407 | ||
| 407 | host->mrq = mrq; | 408 | host->mrq = mrq; |
| 408 | 409 | ||
| @@ -411,7 +412,7 @@ static void mmci_request(struct mmc_host *mmc, struct mmc_request *mrq) | |||
| 411 | 412 | ||
| 412 | mmci_start_command(host, mrq->cmd, 0); | 413 | mmci_start_command(host, mrq->cmd, 0); |
| 413 | 414 | ||
| 414 | spin_unlock_irq(&host->lock); | 415 | spin_unlock_irqrestore(&host->lock, flags); |
| 415 | } | 416 | } |
| 416 | 417 | ||
| 417 | static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) | 418 | static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) |
diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c index 2afd47eefe74..f8a4bb20f41a 100644 --- a/drivers/video/backlight/corgi_lcd.c +++ b/drivers/video/backlight/corgi_lcd.c | |||
| @@ -439,7 +439,7 @@ static int corgi_bl_update_status(struct backlight_device *bd) | |||
| 439 | return corgi_bl_set_intensity(lcd, intensity); | 439 | return corgi_bl_set_intensity(lcd, intensity); |
| 440 | } | 440 | } |
| 441 | 441 | ||
| 442 | void corgibl_limit_intensity(int limit) | 442 | void corgi_lcd_limit_intensity(int limit) |
| 443 | { | 443 | { |
| 444 | if (limit) | 444 | if (limit) |
| 445 | corgibl_flags |= CORGIBL_BATTLOW; | 445 | corgibl_flags |= CORGIBL_BATTLOW; |
| @@ -448,7 +448,7 @@ void corgibl_limit_intensity(int limit) | |||
| 448 | 448 | ||
| 449 | backlight_update_status(the_corgi_lcd->bl_dev); | 449 | backlight_update_status(the_corgi_lcd->bl_dev); |
| 450 | } | 450 | } |
| 451 | EXPORT_SYMBOL(corgibl_limit_intensity); | 451 | EXPORT_SYMBOL(corgi_lcd_limit_intensity); |
| 452 | 452 | ||
| 453 | static struct backlight_ops corgi_bl_ops = { | 453 | static struct backlight_ops corgi_bl_ops = { |
| 454 | .get_brightness = corgi_bl_get_intensity, | 454 | .get_brightness = corgi_bl_get_intensity, |
