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
This commit is contained in:
commit
031fc8f313
|
@ -55,10 +55,10 @@ CONFIG_BLK_DEV_INITRD=y
|
||||||
CONFIG_INITRAMFS_SOURCE=""
|
CONFIG_INITRAMFS_SOURCE=""
|
||||||
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
|
||||||
CONFIG_SYSCTL=y
|
CONFIG_SYSCTL=y
|
||||||
# CONFIG_EMBEDDED is not set
|
CONFIG_EMBEDDED=y
|
||||||
CONFIG_UID16=y
|
CONFIG_UID16=y
|
||||||
CONFIG_SYSCTL_SYSCALL=y
|
CONFIG_SYSCTL_SYSCALL=y
|
||||||
CONFIG_KALLSYMS=y
|
# CONFIG_KALLSYMS is not set
|
||||||
# CONFIG_KALLSYMS_ALL is not set
|
# CONFIG_KALLSYMS_ALL is not set
|
||||||
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
# CONFIG_KALLSYMS_EXTRA_PASS is not set
|
||||||
CONFIG_HOTPLUG=y
|
CONFIG_HOTPLUG=y
|
||||||
|
@ -224,7 +224,7 @@ CONFIG_CPU_CP15_MMU=y
|
||||||
#
|
#
|
||||||
# Processor Features
|
# Processor Features
|
||||||
#
|
#
|
||||||
# CONFIG_ARM_THUMB is not set
|
CONFIG_ARM_THUMB=y
|
||||||
# CONFIG_CPU_ICACHE_DISABLE is not set
|
# CONFIG_CPU_ICACHE_DISABLE is not set
|
||||||
# CONFIG_CPU_DCACHE_DISABLE is not set
|
# CONFIG_CPU_DCACHE_DISABLE is not set
|
||||||
CONFIG_CPU_DCACHE_WRITETHROUGH=y
|
CONFIG_CPU_DCACHE_WRITETHROUGH=y
|
||||||
|
@ -248,7 +248,7 @@ CONFIG_CPU_DCACHE_WRITETHROUGH=y
|
||||||
# CONFIG_HIGH_RES_TIMERS is not set
|
# CONFIG_HIGH_RES_TIMERS is not set
|
||||||
CONFIG_PREEMPT=y
|
CONFIG_PREEMPT=y
|
||||||
CONFIG_HZ=100
|
CONFIG_HZ=100
|
||||||
# CONFIG_AEABI is not set
|
CONFIG_AEABI=y
|
||||||
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
|
||||||
CONFIG_SELECT_MEMORY_MODEL=y
|
CONFIG_SELECT_MEMORY_MODEL=y
|
||||||
CONFIG_FLATMEM_MANUAL=y
|
CONFIG_FLATMEM_MANUAL=y
|
||||||
|
@ -299,7 +299,9 @@ CONFIG_BINFMT_ELF=y
|
||||||
#
|
#
|
||||||
# Power management options
|
# Power management options
|
||||||
#
|
#
|
||||||
# CONFIG_PM is not set
|
CONFIG_PM=y
|
||||||
|
# CONFIG_SUSPEND is not set
|
||||||
|
CONFIG_PM_RUNTIME=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking
|
# Networking
|
||||||
|
@ -670,7 +672,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
|
||||||
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
|
||||||
# CONFIG_INPUT_JOYDEV is not set
|
# CONFIG_INPUT_JOYDEV is not set
|
||||||
# CONFIG_INPUT_TSDEV 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
|
# CONFIG_INPUT_EVBUG is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -784,6 +786,7 @@ CONFIG_I2C_OMAP=y
|
||||||
#
|
#
|
||||||
# CONFIG_SPI is not set
|
# CONFIG_SPI is not set
|
||||||
# CONFIG_SPI_MASTER is not set
|
# CONFIG_SPI_MASTER is not set
|
||||||
|
CONFIG_GPIO_SYSFS=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Dallas's 1-wire bus
|
# Dallas's 1-wire bus
|
||||||
|
@ -820,6 +823,7 @@ CONFIG_LEDS_AMS_DELTA=y
|
||||||
CONFIG_LEDS_TRIGGERS=y
|
CONFIG_LEDS_TRIGGERS=y
|
||||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||||
|
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# Multimedia devices
|
# Multimedia devices
|
||||||
|
@ -896,7 +900,13 @@ CONFIG_LOGO_LINUX_CLUT224=y
|
||||||
#
|
#
|
||||||
# Sound
|
# 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
|
# HID Devices
|
||||||
|
|
|
@ -611,7 +611,7 @@ CONFIG_INPUT_KEYBOARD=y
|
||||||
# CONFIG_KEYBOARD_XTKBD is not set
|
# CONFIG_KEYBOARD_XTKBD is not set
|
||||||
# CONFIG_KEYBOARD_NEWTON is not set
|
# CONFIG_KEYBOARD_NEWTON is not set
|
||||||
# CONFIG_KEYBOARD_STOWAWAY is not set
|
# CONFIG_KEYBOARD_STOWAWAY is not set
|
||||||
# CONFIG_KEYBOARD_GPIO is not set
|
CONFIG_KEYBOARD_GPIO=y
|
||||||
CONFIG_INPUT_MOUSE=y
|
CONFIG_INPUT_MOUSE=y
|
||||||
# CONFIG_MOUSE_PS2 is not set
|
# CONFIG_MOUSE_PS2 is not set
|
||||||
# CONFIG_MOUSE_SERIAL 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_TOUCHWIN is not set
|
||||||
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
|
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
|
||||||
# CONFIG_TOUCHSCREEN_TOUCHIT213 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
|
# Hardware I/O ports
|
||||||
|
@ -834,7 +835,29 @@ CONFIG_DAB=y
|
||||||
#
|
#
|
||||||
# CONFIG_VGA_CONSOLE is not set
|
# CONFIG_VGA_CONSOLE is not set
|
||||||
CONFIG_DUMMY_CONSOLE=y
|
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_SUPPORT=y
|
||||||
CONFIG_HID=y
|
CONFIG_HID=y
|
||||||
# CONFIG_HID_DEBUG is not set
|
# CONFIG_HID_DEBUG is not set
|
||||||
|
@ -1020,7 +1043,13 @@ CONFIG_MMC_BLOCK_BOUNCE=y
|
||||||
# CONFIG_MMC_SPI is not set
|
# CONFIG_MMC_SPI is not set
|
||||||
# CONFIG_MEMSTICK is not set
|
# CONFIG_MEMSTICK is not set
|
||||||
# CONFIG_ACCESSIBILITY 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_LIB=y
|
||||||
CONFIG_RTC_CLASS=y
|
CONFIG_RTC_CLASS=y
|
||||||
CONFIG_RTC_HCTOSYS=y
|
CONFIG_RTC_HCTOSYS=y
|
||||||
|
@ -1084,9 +1113,12 @@ CONFIG_RTC_DRV_TWL4030=y
|
||||||
# on-CPU RTC drivers
|
# on-CPU RTC drivers
|
||||||
#
|
#
|
||||||
# CONFIG_DMADEVICES is not set
|
# CONFIG_DMADEVICES is not set
|
||||||
# CONFIG_REGULATOR is not set
|
|
||||||
# CONFIG_UIO is not set
|
# CONFIG_UIO is not set
|
||||||
|
|
||||||
|
CONFIG_REGULATOR=y
|
||||||
|
CONFIG_REGULATOR_FIXED_VOLTAGE=y
|
||||||
|
CONFIG_REGULATOR_TWL4030=y
|
||||||
|
|
||||||
#
|
#
|
||||||
# File systems
|
# File systems
|
||||||
#
|
#
|
||||||
|
@ -1407,3 +1439,10 @@ CONFIG_PLIST=y
|
||||||
CONFIG_HAS_IOMEM=y
|
CONFIG_HAS_IOMEM=y
|
||||||
CONFIG_HAS_IOPORT=y
|
CONFIG_HAS_IOPORT=y
|
||||||
CONFIG_HAS_DMA=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
|
||||||
|
|
||||||
|
|
|
@ -1703,7 +1703,14 @@ CONFIG_RTC_DRV_TWL4030=y
|
||||||
# on-CPU RTC drivers
|
# on-CPU RTC drivers
|
||||||
#
|
#
|
||||||
# CONFIG_DMADEVICES is not set
|
# 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_UIO is not set
|
||||||
# CONFIG_STAGING is not set
|
# CONFIG_STAGING is not set
|
||||||
|
|
||||||
|
|
|
@ -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) */
|
/* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
|
||||||
gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");
|
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) */
|
/* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
|
||||||
gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
|
gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
|
||||||
|
|
|
@ -134,50 +134,50 @@ static void __init pandora_keys_gpio_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int board_keymap[] = {
|
static int board_keymap[] = {
|
||||||
/* col, row, code */
|
/* row, col, code */
|
||||||
KEY(0, 0, KEY_9),
|
KEY(0, 0, KEY_9),
|
||||||
KEY(0, 1, KEY_0),
|
KEY(0, 1, KEY_8),
|
||||||
KEY(0, 2, KEY_BACKSPACE),
|
KEY(0, 2, KEY_I),
|
||||||
KEY(0, 3, KEY_O),
|
KEY(0, 3, KEY_J),
|
||||||
KEY(0, 4, KEY_P),
|
KEY(0, 4, KEY_N),
|
||||||
KEY(0, 5, KEY_K),
|
KEY(0, 5, KEY_M),
|
||||||
KEY(0, 6, KEY_L),
|
KEY(1, 0, KEY_0),
|
||||||
KEY(0, 7, KEY_ENTER),
|
|
||||||
KEY(1, 0, KEY_8),
|
|
||||||
KEY(1, 1, KEY_7),
|
KEY(1, 1, KEY_7),
|
||||||
KEY(1, 2, KEY_6),
|
KEY(1, 2, KEY_U),
|
||||||
KEY(1, 3, KEY_5),
|
KEY(1, 3, KEY_H),
|
||||||
KEY(1, 4, KEY_4),
|
KEY(1, 4, KEY_B),
|
||||||
KEY(1, 5, KEY_3),
|
KEY(1, 5, KEY_SPACE),
|
||||||
KEY(1, 6, KEY_2),
|
KEY(2, 0, KEY_BACKSPACE),
|
||||||
KEY(1, 7, KEY_1),
|
KEY(2, 1, KEY_6),
|
||||||
KEY(2, 0, KEY_I),
|
|
||||||
KEY(2, 1, KEY_U),
|
|
||||||
KEY(2, 2, KEY_Y),
|
KEY(2, 2, KEY_Y),
|
||||||
KEY(2, 3, KEY_T),
|
KEY(2, 3, KEY_G),
|
||||||
KEY(2, 4, KEY_R),
|
KEY(2, 4, KEY_V),
|
||||||
KEY(2, 5, KEY_E),
|
KEY(2, 5, KEY_FN),
|
||||||
KEY(2, 6, KEY_W),
|
KEY(3, 0, KEY_O),
|
||||||
KEY(2, 7, KEY_Q),
|
KEY(3, 1, KEY_5),
|
||||||
KEY(3, 0, KEY_J),
|
KEY(3, 2, KEY_T),
|
||||||
KEY(3, 1, KEY_H),
|
|
||||||
KEY(3, 2, KEY_G),
|
|
||||||
KEY(3, 3, KEY_F),
|
KEY(3, 3, KEY_F),
|
||||||
KEY(3, 4, KEY_D),
|
KEY(3, 4, KEY_C),
|
||||||
KEY(3, 5, KEY_S),
|
KEY(4, 0, KEY_P),
|
||||||
KEY(3, 6, KEY_A),
|
KEY(4, 1, KEY_4),
|
||||||
KEY(3, 7, KEY_LEFTSHIFT),
|
KEY(4, 2, KEY_R),
|
||||||
KEY(4, 0, KEY_N),
|
KEY(4, 3, KEY_D),
|
||||||
KEY(4, 1, KEY_B),
|
|
||||||
KEY(4, 2, KEY_V),
|
|
||||||
KEY(4, 3, KEY_C),
|
|
||||||
KEY(4, 4, KEY_X),
|
KEY(4, 4, KEY_X),
|
||||||
KEY(4, 5, KEY_Z),
|
KEY(5, 0, KEY_K),
|
||||||
KEY(4, 6, KEY_DOT),
|
KEY(5, 1, KEY_3),
|
||||||
KEY(4, 7, KEY_COMMA),
|
KEY(5, 2, KEY_E),
|
||||||
KEY(5, 0, KEY_M),
|
KEY(5, 3, KEY_S),
|
||||||
KEY(5, 1, KEY_SPACE),
|
KEY(5, 4, KEY_Z),
|
||||||
KEY(5, 2, KEY_FN),
|
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 = {
|
static struct matrix_keymap_data board_map_data = {
|
||||||
|
|
|
@ -366,7 +366,7 @@ int gpmc_cs_request(int cs, unsigned long size, unsigned long *base)
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
goto out;
|
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;
|
*base = res->start;
|
||||||
gpmc_cs_set_reserved(cs, 1);
|
gpmc_cs_set_reserved(cs, 1);
|
||||||
out:
|
out:
|
||||||
|
|
|
@ -300,7 +300,7 @@ static int __devinit omap2_mbox_probe(struct platform_device *pdev)
|
||||||
dev_err(&pdev->dev, "invalid mem resource\n");
|
dev_err(&pdev->dev, "invalid mem resource\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
mbox_base = ioremap(res->start, res->end - res->start);
|
mbox_base = ioremap(res->start, resource_size(res));
|
||||||
if (!mbox_base)
|
if (!mbox_base)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
|
|
@ -127,7 +127,7 @@ static int __init omap_cpu_init(struct cpufreq_policy *policy)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME: what's the actual transition time? */
|
/* FIXME: what's the actual transition time? */
|
||||||
policy->cpuinfo.transition_latency = 10 * 1000 * 1000;
|
policy->cpuinfo.transition_latency = 300 * 1000;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -691,13 +691,16 @@ static inline void disable_lnk(int lch)
|
||||||
static inline void omap2_enable_irq_lch(int lch)
|
static inline void omap2_enable_irq_lch(int lch)
|
||||||
{
|
{
|
||||||
u32 val;
|
u32 val;
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
if (!cpu_class_is_omap2())
|
if (!cpu_class_is_omap2())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
spin_lock_irqsave(&dma_chan_lock, flags);
|
||||||
val = dma_read(IRQENABLE_L0);
|
val = dma_read(IRQENABLE_L0);
|
||||||
val |= 1 << lch;
|
val |= 1 << lch;
|
||||||
dma_write(val, IRQENABLE_L0);
|
dma_write(val, IRQENABLE_L0);
|
||||||
|
spin_unlock_irqrestore(&dma_chan_lock, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
int omap_request_dma(int dev_id, const char *dev_name,
|
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()) {
|
if (cpu_class_is_omap2()) {
|
||||||
u32 val;
|
u32 val;
|
||||||
|
|
||||||
|
spin_lock_irqsave(&dma_chan_lock, flags);
|
||||||
/* Disable interrupts */
|
/* Disable interrupts */
|
||||||
val = dma_read(IRQENABLE_L0);
|
val = dma_read(IRQENABLE_L0);
|
||||||
val &= ~(1 << lch);
|
val &= ~(1 << lch);
|
||||||
dma_write(val, IRQENABLE_L0);
|
dma_write(val, IRQENABLE_L0);
|
||||||
|
spin_unlock_irqrestore(&dma_chan_lock, flags);
|
||||||
|
|
||||||
/* Clear the CSR register and IRQ status register */
|
/* Clear the CSR register and IRQ status register */
|
||||||
dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR(lch));
|
dma_write(OMAP2_DMA_CSR_CLEAR_MASK, CSR(lch));
|
||||||
|
@ -1108,6 +1114,14 @@ int omap_dma_running(void)
|
||||||
{
|
{
|
||||||
int lch;
|
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 */
|
/* Check if LCD DMA is running */
|
||||||
if (cpu_is_omap16xx())
|
if (cpu_is_omap16xx())
|
||||||
if (omap_readw(OMAP1610_DMA_LCD_CCR) & OMAP_DMA_CCR_EN)
|
if (omap_readw(OMAP1610_DMA_LCD_CCR) & OMAP_DMA_CCR_EN)
|
||||||
|
|
Loading…
Reference in a new issue