diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-13 01:57:15 +0300 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-11-13 01:57:15 +0300 | 
| commit | 031fc8f313f55595c677c50b1d6d5c410fadee60 (patch) | |
| tree | 28d5afe521f4e0f1295384951ccc405fd303073d | |
| parent | e04b5ef8b49db87d01a9b3a47fe41a918a0c0ff5 (diff) | |
| parent | b029839cf1f3aa095de73aa2acc241f1c65201ab (diff) | |
| download | linux-031fc8f313f55595c677c50b1d6d5c410fadee60.tar.xz | |
Merge branch 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6
* 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
  omap3: Decrease cpufreq transition latency
  omap3: update Pandora defconfig
  omap3: 3430sdp: Enable Linux Regulator framework
  omap3: beagle: Fix USB host port power control
  omap3: pandora: Fix keypad keymap
  omap1: Amstrad Delta defconfig fixes
  omap: Fix omapfb/lcdc on OMAP1510 broken when PM set
  omap: Use resource_size
  omap: Fix race condition in omap dma driver
| -rw-r--r-- | arch/arm/configs/ams_delta_defconfig | 24 | ||||
| -rw-r--r-- | arch/arm/configs/omap3_pandora_defconfig | 49 | ||||
| -rw-r--r-- | arch/arm/configs/omap_3430sdp_defconfig | 9 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-omap3beagle.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/board-omap3pandora.c | 78 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/gpmc.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/mailbox.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-omap/cpu-omap.c | 2 | ||||
| -rw-r--r-- | arch/arm/plat-omap/dma.c | 14 | 
9 files changed, 126 insertions, 56 deletions
diff --git a/arch/arm/configs/ams_delta_defconfig b/arch/arm/configs/ams_delta_defconfig index 764732529ea3..e8f7380b67d6 100644 --- a/arch/arm/configs/ams_delta_defconfig +++ b/arch/arm/configs/ams_delta_defconfig @@ -55,10 +55,10 @@ CONFIG_BLK_DEV_INITRD=y  CONFIG_INITRAMFS_SOURCE=""  CONFIG_CC_OPTIMIZE_FOR_SIZE=y  CONFIG_SYSCTL=y -# CONFIG_EMBEDDED is not set +CONFIG_EMBEDDED=y  CONFIG_UID16=y  CONFIG_SYSCTL_SYSCALL=y -CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS is not set  # CONFIG_KALLSYMS_ALL is not set  # CONFIG_KALLSYMS_EXTRA_PASS is not set  CONFIG_HOTPLUG=y @@ -224,7 +224,7 @@ CONFIG_CPU_CP15_MMU=y  #  # Processor Features  # -# CONFIG_ARM_THUMB is not set +CONFIG_ARM_THUMB=y  # CONFIG_CPU_ICACHE_DISABLE is not set  # CONFIG_CPU_DCACHE_DISABLE is not set  CONFIG_CPU_DCACHE_WRITETHROUGH=y @@ -248,7 +248,7 @@ CONFIG_CPU_DCACHE_WRITETHROUGH=y  # CONFIG_HIGH_RES_TIMERS is not set  CONFIG_PREEMPT=y  CONFIG_HZ=100 -# CONFIG_AEABI is not set +CONFIG_AEABI=y  # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set  CONFIG_SELECT_MEMORY_MODEL=y  CONFIG_FLATMEM_MANUAL=y @@ -299,7 +299,9 @@ CONFIG_BINFMT_ELF=y  #  # Power management options  # -# CONFIG_PM is not set +CONFIG_PM=y +# CONFIG_SUSPEND is not set +CONFIG_PM_RUNTIME=y  #  # Networking @@ -670,7 +672,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024  CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768  # CONFIG_INPUT_JOYDEV is not set  # CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y  # CONFIG_INPUT_EVBUG is not set  # @@ -784,6 +786,7 @@ CONFIG_I2C_OMAP=y  #  # CONFIG_SPI is not set  # CONFIG_SPI_MASTER is not set +CONFIG_GPIO_SYSFS=y  #  # Dallas's 1-wire bus @@ -820,6 +823,7 @@ CONFIG_LEDS_AMS_DELTA=y  CONFIG_LEDS_TRIGGERS=y  CONFIG_LEDS_TRIGGER_TIMER=y  CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y  #  # Multimedia devices @@ -896,7 +900,13 @@ CONFIG_LOGO_LINUX_CLUT224=y  #  # Sound  # -# CONFIG_SOUND is not set +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_SOC=y +CONFIG_SND_OMAP_SOC=y +CONFIG_SND_OMAP_SOC_AMS_DELTA=y  #  # HID Devices diff --git a/arch/arm/configs/omap3_pandora_defconfig b/arch/arm/configs/omap3_pandora_defconfig index b54ad2e2da36..150deafb0a6a 100644 --- a/arch/arm/configs/omap3_pandora_defconfig +++ b/arch/arm/configs/omap3_pandora_defconfig @@ -611,7 +611,7 @@ CONFIG_INPUT_KEYBOARD=y  # CONFIG_KEYBOARD_XTKBD is not set  # CONFIG_KEYBOARD_NEWTON is not set  # CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_GPIO is not set +CONFIG_KEYBOARD_GPIO=y  CONFIG_INPUT_MOUSE=y  # CONFIG_MOUSE_PS2 is not set  # CONFIG_MOUSE_SERIAL is not set @@ -634,7 +634,8 @@ CONFIG_TOUCHSCREEN_ADS7846=y  # CONFIG_TOUCHSCREEN_TOUCHWIN is not set  # CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set  # CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_TWL4030_PWRBUTTON=y  #  # Hardware I/O ports @@ -834,7 +835,29 @@ CONFIG_DAB=y  #  # CONFIG_VGA_CONSOLE is not set  CONFIG_DUMMY_CONSOLE=y -# CONFIG_SOUND is not set +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_JACK=y +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DRIVERS=y +CONFIG_SND_USB=y +CONFIG_SND_SOC=y +CONFIG_SND_OMAP_SOC=y +CONFIG_SND_OMAP_SOC_MCBSP=y +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y +CONFIG_SND_SOC_I2C_AND_SPI=y +CONFIG_SND_SOC_TWL4030=y +  CONFIG_HID_SUPPORT=y  CONFIG_HID=y  # CONFIG_HID_DEBUG is not set @@ -1020,7 +1043,13 @@ CONFIG_MMC_BLOCK_BOUNCE=y  # CONFIG_MMC_SPI is not set  # CONFIG_MEMSTICK is not set  # CONFIG_ACCESSIBILITY is not set -# CONFIG_NEW_LEDS is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_GPIO=y +CONFIG_LEDS_GPIO_PLATFORM=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y +  CONFIG_RTC_LIB=y  CONFIG_RTC_CLASS=y  CONFIG_RTC_HCTOSYS=y @@ -1084,9 +1113,12 @@ CONFIG_RTC_DRV_TWL4030=y  # on-CPU RTC drivers  #  # CONFIG_DMADEVICES is not set -# CONFIG_REGULATOR is not set  # CONFIG_UIO is not set +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_TWL4030=y +  #  # File systems  # @@ -1407,3 +1439,10 @@ CONFIG_PLIST=y  CONFIG_HAS_IOMEM=y  CONFIG_HAS_IOPORT=y  CONFIG_HAS_DMA=y + +# added by hand for now +CONFIG_KEYBOARD_TWL4030=y +CONFIG_USB_OTG_UTILS=y +CONFIG_TWL4030_USB=y +CONFIG_MMC_OMAP_HS=y + diff --git a/arch/arm/configs/omap_3430sdp_defconfig b/arch/arm/configs/omap_3430sdp_defconfig index 8a4a7e2ba87b..5a305f015307 100644 --- a/arch/arm/configs/omap_3430sdp_defconfig +++ b/arch/arm/configs/omap_3430sdp_defconfig @@ -1703,7 +1703,14 @@ CONFIG_RTC_DRV_TWL4030=y  # on-CPU RTC drivers  #  # CONFIG_DMADEVICES is not set -# CONFIG_REGULATOR is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_BQ24022 is not set +# CONFIG_REGULATOR_MAX1586 is not set +CONFIG_REGULATOR_TWL4030=y  # CONFIG_UIO is not set  # CONFIG_STAGING is not set diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 70df6b4dbcd4..08b0816afa61 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c @@ -162,7 +162,7 @@ static int beagle_twl_gpio_setup(struct device *dev,  	/* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */  	gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); -	gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); +	gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0);  	/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */  	gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 5326e0d61597..7519edb69155 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c @@ -134,50 +134,50 @@ static void __init pandora_keys_gpio_init(void)  }  static int board_keymap[] = { -	/* col, row, code */ +	/* row, col, code */  	KEY(0, 0, KEY_9), -	KEY(0, 1, KEY_0), -	KEY(0, 2, KEY_BACKSPACE), -	KEY(0, 3, KEY_O), -	KEY(0, 4, KEY_P), -	KEY(0, 5, KEY_K), -	KEY(0, 6, KEY_L), -	KEY(0, 7, KEY_ENTER), -	KEY(1, 0, KEY_8), +	KEY(0, 1, KEY_8), +	KEY(0, 2, KEY_I), +	KEY(0, 3, KEY_J), +	KEY(0, 4, KEY_N), +	KEY(0, 5, KEY_M), +	KEY(1, 0, KEY_0),  	KEY(1, 1, KEY_7), -	KEY(1, 2, KEY_6), -	KEY(1, 3, KEY_5), -	KEY(1, 4, KEY_4), -	KEY(1, 5, KEY_3), -	KEY(1, 6, KEY_2), -	KEY(1, 7, KEY_1), -	KEY(2, 0, KEY_I), -	KEY(2, 1, KEY_U), +	KEY(1, 2, KEY_U), +	KEY(1, 3, KEY_H), +	KEY(1, 4, KEY_B), +	KEY(1, 5, KEY_SPACE), +	KEY(2, 0, KEY_BACKSPACE), +	KEY(2, 1, KEY_6),  	KEY(2, 2, KEY_Y), -	KEY(2, 3, KEY_T), -	KEY(2, 4, KEY_R), -	KEY(2, 5, KEY_E), -	KEY(2, 6, KEY_W), -	KEY(2, 7, KEY_Q), -	KEY(3, 0, KEY_J), -	KEY(3, 1, KEY_H), -	KEY(3, 2, KEY_G), +	KEY(2, 3, KEY_G), +	KEY(2, 4, KEY_V), +	KEY(2, 5, KEY_FN), +	KEY(3, 0, KEY_O), +	KEY(3, 1, KEY_5), +	KEY(3, 2, KEY_T),  	KEY(3, 3, KEY_F), -	KEY(3, 4, KEY_D), -	KEY(3, 5, KEY_S), -	KEY(3, 6, KEY_A), -	KEY(3, 7, KEY_LEFTSHIFT), -	KEY(4, 0, KEY_N), -	KEY(4, 1, KEY_B), -	KEY(4, 2, KEY_V), -	KEY(4, 3, KEY_C), +	KEY(3, 4, KEY_C), +	KEY(4, 0, KEY_P), +	KEY(4, 1, KEY_4), +	KEY(4, 2, KEY_R), +	KEY(4, 3, KEY_D),  	KEY(4, 4, KEY_X), -	KEY(4, 5, KEY_Z), -	KEY(4, 6, KEY_DOT), -	KEY(4, 7, KEY_COMMA), -	KEY(5, 0, KEY_M), -	KEY(5, 1, KEY_SPACE), -	KEY(5, 2, KEY_FN), +	KEY(5, 0, KEY_K), +	KEY(5, 1, KEY_3), +	KEY(5, 2, KEY_E), +	KEY(5, 3, KEY_S), +	KEY(5, 4, KEY_Z), +	KEY(6, 0, KEY_L), +	KEY(6, 1, KEY_2), +	KEY(6, 2, KEY_W), +	KEY(6, 3, KEY_A), +	KEY(6, 4, KEY_DOT), +	KEY(7, 0, KEY_ENTER), +	KEY(7, 1, KEY_1), +	KEY(7, 2, KEY_Q), +	KEY(7, 3, KEY_LEFTSHIFT), +	KEY(7, 4, KEY_COMMA),  };  static struct matrix_keymap_data board_map_data = { diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index 15876828db23..f8657568b1ba 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c @@ -366,7 +366,7 @@ int gpmc_cs_request(int cs, unsigned long size, unsigned long *base)  	if (r < 0)  		goto out; -	gpmc_cs_enable_mem(cs, res->start, res->end - res->start + 1); +	gpmc_cs_enable_mem(cs, res->start, resource_size(res));  	*base = res->start;  	gpmc_cs_set_reserved(cs, 1);  out: diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index c035ad3426d0..ef57b38a56a4 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c @@ -300,7 +300,7 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev)  		dev_err(&pdev->dev, "invalid mem resource\n");  		return -ENODEV;  	} -	mbox_base = ioremap(res->start, res->end - res->start); +	mbox_base = ioremap(res->start, resource_size(res));  	if (!mbox_base)  		return -ENOMEM; diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c index 1868c0d8f9b5..341235c278ac 100644 --- a/arch/arm/plat-omap/cpu-omap.c +++ b/arch/arm/plat-omap/cpu-omap.c @@ -127,7 +127,7 @@ static int __init omap_cpu_init(struct cpufreq_policy *policy)  	}  	/* FIXME: what's the actual transition time? */ -	policy->cpuinfo.transition_latency = 10 * 1000 * 1000; +	policy->cpuinfo.transition_latency = 300 * 1000;  	return 0;  } diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index b53125f41293..68eaae324b6a 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c @@ -691,13 +691,16 @@ static inline void disable_lnk(int lch)  static inline void omap2_enable_irq_lch(int lch)  {  	u32 val; +	unsigned long flags;  	if (!cpu_class_is_omap2())  		return; +	spin_lock_irqsave(&dma_chan_lock, flags);  	val = dma_read(IRQENABLE_L0);  	val |= 1 << lch;  	dma_write(val, IRQENABLE_L0); +	spin_unlock_irqrestore(&dma_chan_lock, flags);  }  int omap_request_dma(int dev_id, const char *dev_name, @@ -799,10 +802,13 @@ void omap_free_dma(int lch)  	if (cpu_class_is_omap2()) {  		u32 val; + +		spin_lock_irqsave(&dma_chan_lock, flags);  		/* Disable interrupts */  		val = dma_read(IRQENABLE_L0);  		val &= ~(1 << lch);  		dma_write(val, IRQENABLE_L0); +		spin_unlock_irqrestore(&dma_chan_lock, flags);  		/* Clear the CSR register and IRQ status register */  		dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR(lch)); @@ -1108,6 +1114,14 @@ int omap_dma_running(void)  {  	int lch; +	/* +	 * On OMAP1510, internal LCD controller will start the transfer +	 * when it gets enabled, so assume DMA running if LCD enabled. +	 */ +	if (cpu_is_omap1510()) +		if (omap_readw(0xfffec000 + 0x00) & (1 << 0)) +			return 1; +  	/* Check if LCD DMA is running */  	if (cpu_is_omap16xx())  		if (omap_readw(OMAP1610_DMA_LCD_CCR) & OMAP_DMA_CCR_EN)  | 
