]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
Merge branch 'for-rmk-rc' of git://pasiphae.extern.pengutronix.de/git/imx/linux-2.6
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Thu, 30 Oct 2008 15:04:22 +0000 (15:04 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 30 Oct 2008 15:04:22 +0000 (15:04 +0000)
20 files changed:
Documentation/arm/empeg/README [deleted file]
Documentation/arm/empeg/ir.txt [deleted file]
Documentation/arm/empeg/mkdevs [deleted file]
MAINTAINERS
arch/arm/common/sharpsl_pm.c
arch/arm/mach-at91/include/mach/gpio.h
arch/arm/mach-ep93xx/core.c
arch/arm/mach-imx/include/mach/gpio.h
arch/arm/mach-ixp4xx/include/mach/gpio.h
arch/arm/mach-ks8695/include/mach/gpio.h
arch/arm/mach-ns9xxx/gpio.c
arch/arm/mach-orion5x/gpio.c
arch/arm/mach-pxa/corgi_pm.c
arch/arm/mach-pxa/include/mach/sharpsl.h
arch/arm/mach-pxa/spitz.c
arch/arm/mach-pxa/spitz_pm.c
arch/arm/mm/proc-xsc3.S
drivers/leds/leds-da903x.c
drivers/mmc/host/mmci.c
drivers/video/backlight/corgi_lcd.c

diff --git a/Documentation/arm/empeg/README b/Documentation/arm/empeg/README
deleted file mode 100644 (file)
index 09cc8d0..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-Empeg, Ltd's Empeg MP3 Car Audio Player
-
-The initial design is to go in your car, but you can use it at home, on a
-boat... almost anywhere. The principle is to store CD-quality music using
-MPEG technology onto a hard disk in the unit, and use the power of the
-embedded computer to serve up the music you want.
-
-For more details, see:
-
-       http://www.empeg.com
-
-
-
diff --git a/Documentation/arm/empeg/ir.txt b/Documentation/arm/empeg/ir.txt
deleted file mode 100644 (file)
index 10a2974..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-Infra-red driver documentation.
-
-Mike Crowe <mac@empeg.com>
-(C) Empeg Ltd 1999
-
-Not a lot here yet :-)
-
-The Kenwood KCA-R6A remote control generates a sequence like the following:
-
-Go low for approx 16T (Around 9000us)
-Go high for approx 8T (Around 4000us)
-Go low for less than 2T (Around 750us)
-
-For each of the 32 bits
-  Go high for more than 2T (Around 1500us) == 1
-  Go high for less than T (Around 400us) == 0
-  Go low for less than 2T (Around 750us)
-
-Rather than repeat a signal when the button is held down certain buttons
-generate the following code to indicate repetition.
-
-Go low for approx 16T
-Go high for approx 4T
-Go low for less than 2T
-
-(By removing the <2T from the start of the sequence and placing at the end
- it can be considered a stop bit but I found it easier to deal with it at
- the start).
-
-The 32 bits are encoded as XxYy where x and y are the actual data values
-while X and Y are the logical inverses of the associated data values. Using 
-LSB first yields sensible codes for the numbers.
-
-All codes are of the form b9xx
-
-The numeric keys generate the code 0x where x is the number pressed.
-
-Tuner          1c
-Tape           1d
-CD             1e
-CD-MD-CH       1f
-Track-         0a
-Track+         0b
-Rewind         0c
-FF             0d
-DNPP           5e
-Play/Pause     0e
-Vol+           14
-Vol-           15
diff --git a/Documentation/arm/empeg/mkdevs b/Documentation/arm/empeg/mkdevs
deleted file mode 100644 (file)
index 7a85e28..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-mknod /dev/display c 244 0
-mknod /dev/ir c 242 0
-mknod /dev/usb0 c 243 0
-mknod /dev/audio c 245 4
-mknod /dev/dsp c 245 3
-mknod /dev/mixer c 245 0
-mknod /dev/empeg_state c 246 0
-mknod /dev/radio0 c 81 64
-ln -sf radio0 radio
-ln -sf usb0 usb
index 16202c8ac68f06bf2dfcb387aa2ee91c5e9bc4f6..bfce9bb22f1879be98b8dbcefe6ee514de39fbb3 100644 (file)
@@ -610,6 +610,11 @@ P: Philipp Zabel
 M:     philipp.zabel@gmail.com
 S:     Maintained
 
+ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT
+P:     Michael Petchkovsky
+M:     mkpetch@internode.on.net
+S:     Maintained
+
 ARM/TOSA MACHINE SUPPORT
 P:     Dmitry Baryshkov
 M:     dbaryshkov@gmail.com
index db83091614082efb5aac4a6dc6630d5d2e99353f..780bbf7cb26f28266f3141250b763b82f2590e69 100644 (file)
 /*
  * Prototypes
  */
+#ifdef CONFIG_PM
 static int sharpsl_off_charge_battery(void);
-static int sharpsl_check_battery_temp(void);
 static int sharpsl_check_battery_voltage(void);
-static int sharpsl_ac_check(void);
 static int sharpsl_fatal_check(void);
+#endif
+static int sharpsl_check_battery_temp(void);
+static int sharpsl_ac_check(void);
 static int sharpsl_average_value(int ad);
 static void sharpsl_average_clear(void);
 static void sharpsl_charge_toggle(struct work_struct *private_);
@@ -424,6 +426,7 @@ static int sharpsl_check_battery_temp(void)
        return 0;
 }
 
+#ifdef CONFIG_PM
 static int sharpsl_check_battery_voltage(void)
 {
        int val, i, buff[5];
@@ -455,6 +458,7 @@ static int sharpsl_check_battery_voltage(void)
 
        return 0;
 }
+#endif
 
 static int sharpsl_ac_check(void)
 {
@@ -586,8 +590,6 @@ static int corgi_pxa_pm_enter(suspend_state_t state)
 
        return 0;
 }
-#endif
-
 
 /*
  * Check for fatal battery errors
@@ -738,7 +740,10 @@ static int sharpsl_off_charge_battery(void)
                }
        }
 }
-
+#else
+#define sharpsl_pm_suspend     NULL
+#define sharpsl_pm_resume      NULL
+#endif
 
 static ssize_t battery_percentage_show(struct device *dev, struct device_attribute *attr, char *buf)
 {
@@ -768,10 +773,12 @@ static void sharpsl_apm_get_power_status(struct apm_power_info *info)
        info->battery_life = sharpsl_pm.battstat.mainbat_percent;
 }
 
+#ifdef CONFIG_PM
 static struct platform_suspend_ops sharpsl_pm_ops = {
        .enter          = corgi_pxa_pm_enter,
        .valid          = suspend_valid_only_mem,
 };
+#endif
 
 static int __init sharpsl_pm_probe(struct platform_device *pdev)
 {
@@ -802,7 +809,9 @@ static int __init sharpsl_pm_probe(struct platform_device *pdev)
 
        apm_get_power_status = sharpsl_apm_get_power_status;
 
+#ifdef CONFIG_PM
        suspend_set_ops(&sharpsl_pm_ops);
+#endif
 
        mod_timer(&sharpsl_pm.ac_timer, jiffies + msecs_to_jiffies(250));
 
index 76d76e2fa69ef108021b521291f728cc79152182..bffa6741a7515d890179b7a4f1db286287539fcf 100644 (file)
@@ -13,6 +13,7 @@
 #ifndef __ASM_ARCH_AT91RM9200_GPIO_H
 #define __ASM_ARCH_AT91RM9200_GPIO_H
 
+#include <linux/kernel.h>
 #include <asm/irq.h>
 
 #define PIN_BASE               NR_AIC_IRQS
@@ -220,6 +221,7 @@ static inline int gpio_request(unsigned gpio, const char *label)
 
 static inline void gpio_free(unsigned gpio)
 {
+       might_sleep();
 }
 
 extern int gpio_direction_input(unsigned gpio);
index de53f0be71b9bce70b34941eb51ba263f4cbc3ff..48345fb34613434d2fa6c0e3b7bbd7dcb0a529c4 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/serial_core.h>
 #include <linux/device.h>
 #include <linux/mm.h>
+#include <linux/dma-mapping.h>
 #include <linux/time.h>
 #include <linux/timex.h>
 #include <linux/delay.h>
@@ -449,12 +450,13 @@ static struct resource ep93xx_ohci_resources[] = {
        },
 };
 
+
 static struct platform_device ep93xx_ohci_device = {
        .name           = "ep93xx-ohci",
        .id             = -1,
        .dev            = {
-               .dma_mask               = (void *)0xffffffff,
-               .coherent_dma_mask      = 0xffffffff,
+               .dma_mask               = &ep93xx_ohci_device.dev.coherent_dma_mask,
+               .coherent_dma_mask      = DMA_BIT_MASK(32),
        },
        .num_resources  = ARRAY_SIZE(ep93xx_ohci_resources),
        .resource       = ep93xx_ohci_resources,
index 6e3d795f22642c3d4301dba5f185ce6d968589bd..502d5aa2c093dad2b00acd22e5564bbfad7a21a6 100644 (file)
@@ -1,5 +1,6 @@
 #ifndef _IMX_GPIO_H
 
+#include <linux/kernel.h>
 #include <mach/imx-regs.h>
 
 #define IMX_GPIO_ALLOC_MODE_NORMAL     0
@@ -63,6 +64,8 @@ static inline int gpio_request(unsigned gpio, const char *label)
 
 static inline void gpio_free(unsigned gpio)
 {
+       might_sleep();
+
        imx_gpio_free(gpio);
 }
 
index 9fbde177920f74bf8f741ca2924a4f9cdf339030..cd5aec26c072d3d218cd171ad8cb02635529ba84 100644 (file)
@@ -25,6 +25,7 @@
 #ifndef __ASM_ARCH_IXP4XX_GPIO_H
 #define __ASM_ARCH_IXP4XX_GPIO_H
 
+#include <linux/kernel.h>
 #include <mach/hardware.h>
 
 static inline int gpio_request(unsigned gpio, const char *label)
@@ -34,6 +35,8 @@ static inline int gpio_request(unsigned gpio, const char *label)
 
 static inline void gpio_free(unsigned gpio)
 {
+       might_sleep();
+
        return;
 }
 
index 73c84168761ce4bf34decb42a536da6b16653d4b..d4af5c335f1616aace85c43a4fa6b57f25c21006 100644 (file)
@@ -11,6 +11,8 @@
 #ifndef __ASM_ARCH_GPIO_H_
 #define __ASM_ARCH_GPIO_H_
 
+#include <linux/kernel.h>
+
 #define KS8695_GPIO_0          0
 #define KS8695_GPIO_1          1
 #define KS8695_GPIO_2          2
@@ -74,6 +76,7 @@ static inline int gpio_request(unsigned int pin, const char *label)
 
 static inline void gpio_free(unsigned int pin)
 {
+       might_sleep();
 }
 
 #endif
index 5241e6a286cc83fc70a7281c82712137ac9e747c..5503ca09c4aee4a1d2dc8e5a249ddb6e9c31814a 100644 (file)
@@ -8,6 +8,7 @@
  * under the terms of the GNU General Public License version 2 as published by
  * the Free Software Foundation.
  */
+#include <linux/kernel.h>
 #include <linux/compiler.h>
 #include <linux/init.h>
 #include <linux/spinlock.h>
@@ -63,6 +64,7 @@ EXPORT_SYMBOL(gpio_request);
 
 void gpio_free(unsigned gpio)
 {
+       might_sleep();
        clear_bit(gpio, gpiores);
        return;
 }
index fc419868e39fae9670401c652e5d86b4191ae5e0..f99d08811e5af6487bb31120f2b8f8433ba17c23 100644 (file)
@@ -165,6 +165,8 @@ EXPORT_SYMBOL(gpio_request);
 
 void gpio_free(unsigned pin)
 {
+       might_sleep();
+
        if (pin >= GPIO_MAX || !test_bit(pin, gpio_valid)) {
                pr_debug("%s: invalid GPIO %d\n", __func__, pin);
                return;
index eb7d6c94aa425bf23778efd92293dfa1737fd6df..e35259032813ae82543a75bd24b8a3a69f3f2fd8 100644 (file)
@@ -204,7 +204,9 @@ static struct sharpsl_charger_machinfo corgi_pm_machinfo = {
        .read_devdata    = corgipm_read_devdata,
        .charger_wakeup  = corgi_charger_wakeup,
        .should_wakeup   = corgi_should_wakeup,
-#ifdef CONFIG_BACKLIGHT_CORGI
+#if defined(CONFIG_LCD_CORGI)
+       .backlight_limit = corgi_lcd_limit_intensity,
+#elif defined(CONFIG_BACKLIGHT_CORGI)
        .backlight_limit = corgibl_limit_intensity,
 #endif
        .charge_on_volt   = SHARPSL_CHARGE_ON_VOLT,
index 3b1d4a72d4d1f08f43058e2a428939ba4b484cdd..8242e14a44fa10c8dc70d14a2255a2ab97aa16a3 100644 (file)
@@ -26,6 +26,7 @@ struct corgits_machinfo {
  * SharpSL Backlight
  */
 extern void corgibl_limit_intensity(int limit);
+extern void corgi_lcd_limit_intensity(int limit);
 
 
 /*
index 524f656dc56de561d11d4c467220d569380a2718..f0a5bbae0b45d32966d3f61f00c77ccf738bde16 100644 (file)
@@ -385,6 +385,16 @@ static void __init spitz_init_spi(void)
        if (err)
                goto err_free_2;
 
+       err = gpio_direction_output(SPITZ_GPIO_ADS7846_CS, 1);
+       if (err)
+               goto err_free_3;
+       err = gpio_direction_output(SPITZ_GPIO_LCDCON_CS, 1);
+       if (err)
+               goto err_free_3;
+       err = gpio_direction_output(SPITZ_GPIO_MAX1111_CS, 1);
+       if (err)
+               goto err_free_3;
+
        if (machine_is_akita()) {
                spitz_lcdcon_info.gpio_backlight_cont = AKITA_GPIO_BACKLIGHT_CONT;
                spitz_lcdcon_info.gpio_backlight_on = AKITA_GPIO_BACKLIGHT_ON;
@@ -394,6 +404,8 @@ static void __init spitz_init_spi(void)
        spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices));
        return;
 
+err_free_3:
+       gpio_free(SPITZ_GPIO_MAX1111_CS);
 err_free_2:
        gpio_free(SPITZ_GPIO_LCDCON_CS);
 err_free_1:
index 53018db106ac278cc5a1d3f7c08ad8a4862967e6..072e77cfe5a36ee4002c0b861115e2c0d7c5f8e7 100644 (file)
@@ -198,7 +198,9 @@ struct sharpsl_charger_machinfo spitz_pm_machinfo = {
        .read_devdata     = spitzpm_read_devdata,
        .charger_wakeup   = spitz_charger_wakeup,
        .should_wakeup    = spitz_should_wakeup,
-#ifdef CONFIG_BACKLIGHT_CORGI
+#if defined(CONFIG_LCD_CORGI)
+       .backlight_limit = corgi_lcd_limit_intensity,
+#elif defined(CONFIG_BACKLIGHT_CORGI)
         .backlight_limit  = corgibl_limit_intensity,
 #endif
        .charge_on_volt   = SHARPSL_CHARGE_ON_VOLT,
index 04dc8b65401b4890b6ebc67eaac43f2c11d09169..8f6cf56c11c080fe9027777683bf1f8e39c2d882 100644 (file)
@@ -349,7 +349,7 @@ ENTRY(cpu_xsc3_switch_mm)
 cpu_xsc3_mt_table:
        .long   0x00                                            @ L_PTE_MT_UNCACHED
        .long   PTE_EXT_TEX(1)                                  @ L_PTE_MT_BUFFERABLE
-       .long   PTE_CACHEABLE                                   @ L_PTE_MT_WRITETHROUGH
+       .long   PTE_EXT_TEX(5) | PTE_CACHEABLE                  @ L_PTE_MT_WRITETHROUGH
        .long   PTE_CACHEABLE | PTE_BUFFERABLE                  @ L_PTE_MT_WRITEBACK
        .long   PTE_EXT_TEX(1) | PTE_BUFFERABLE                 @ L_PTE_MT_DEV_SHARED
        .long   0x00                                            @ unused
index 2768c69257f645750adc49af10ac8f4f5c4f2b66..1f3cc512eff898af0bc3b74c878d8b862c3cbad0 100644 (file)
@@ -58,7 +58,7 @@ static void da903x_led_work(struct work_struct *work)
                offset = DA9030_LED_OFFSET(led->id);
                val = led->flags & ~0x87;
                val |= (led->new_brightness) ? 0x80 : 0; /* EN bit */
-               val |= (led->new_brightness >> 5) & 0x7; /* PWM<2:0> */
+               val |= (0x7 - (led->new_brightness >> 5)) & 0x7; /* PWM<2:0> */
                da903x_write(led->master, DA9030_LED1_CONTROL + offset, val);
                break;
        case DA9030_ID_VIBRA:
index 696cf3647ceb3e61c6a9f41bf5ffae889c11ffef..2fadf323c696d381f1fe23fb062e108c1e97a59f 100644 (file)
@@ -391,6 +391,7 @@ static irqreturn_t mmci_irq(int irq, void *dev_id)
 static void mmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
 {
        struct mmci_host *host = mmc_priv(mmc);
+       unsigned long flags;
 
        WARN_ON(host->mrq != NULL);
 
@@ -402,7 +403,7 @@ static void mmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
                return;
        }
 
-       spin_lock_irq(&host->lock);
+       spin_lock_irqsave(&host->lock, flags);
 
        host->mrq = mrq;
 
@@ -411,7 +412,7 @@ static void mmci_request(struct mmc_host *mmc, struct mmc_request *mrq)
 
        mmci_start_command(host, mrq->cmd, 0);
 
-       spin_unlock_irq(&host->lock);
+       spin_unlock_irqrestore(&host->lock, flags);
 }
 
 static void mmci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios)
index 2afd47eefe74d4f33b3981de401df1f7465f73c2..f8a4bb20f41af0f008cf4c260cc212984ce467d1 100644 (file)
@@ -439,7 +439,7 @@ static int corgi_bl_update_status(struct backlight_device *bd)
        return corgi_bl_set_intensity(lcd, intensity);
 }
 
-void corgibl_limit_intensity(int limit)
+void corgi_lcd_limit_intensity(int limit)
 {
        if (limit)
                corgibl_flags |= CORGIBL_BATTLOW;
@@ -448,7 +448,7 @@ void corgibl_limit_intensity(int limit)
 
        backlight_update_status(the_corgi_lcd->bl_dev);
 }
-EXPORT_SYMBOL(corgibl_limit_intensity);
+EXPORT_SYMBOL(corgi_lcd_limit_intensity);
 
 static struct backlight_ops corgi_bl_ops = {
        .get_brightness = corgi_bl_get_intensity,