提交 ad501bce 编写于 作者: L Linus Torvalds

Merge master.kernel.org:/home/rmk/linux-2.6-arm

* master.kernel.org:/home/rmk/linux-2.6-arm:
  [ARM] 4569/1: ep93xx_gpio_irq_type(): fix spurious enumeration offset for FGPIO handling
  [ARM] 4568/1: fix l2x0 cache invalidate handling of unaligned addresses
...@@ -336,7 +336,7 @@ static int ep93xx_gpio_irq_type(unsigned int irq, unsigned int type) ...@@ -336,7 +336,7 @@ static int ep93xx_gpio_irq_type(unsigned int irq, unsigned int type)
if (line >= 0 && line < 16) { if (line >= 0 && line < 16) {
gpio_line_config(line, GPIO_IN); gpio_line_config(line, GPIO_IN);
} else { } else {
gpio_line_config(EP93XX_GPIO_LINE_F(line), GPIO_IN); gpio_line_config(EP93XX_GPIO_LINE_F(line-16), GPIO_IN);
} }
port = line >> 3; port = line >> 3;
......
...@@ -57,7 +57,17 @@ static void l2x0_inv_range(unsigned long start, unsigned long end) ...@@ -57,7 +57,17 @@ static void l2x0_inv_range(unsigned long start, unsigned long end)
{ {
unsigned long addr; unsigned long addr;
start &= ~(CACHE_LINE_SIZE - 1); if (start & (CACHE_LINE_SIZE - 1)) {
start &= ~(CACHE_LINE_SIZE - 1);
sync_writel(start, L2X0_CLEAN_INV_LINE_PA, 1);
start += CACHE_LINE_SIZE;
}
if (end & (CACHE_LINE_SIZE - 1)) {
end &= ~(CACHE_LINE_SIZE - 1);
sync_writel(end, L2X0_CLEAN_INV_LINE_PA, 1);
}
for (addr = start; addr < end; addr += CACHE_LINE_SIZE) for (addr = start; addr < end; addr += CACHE_LINE_SIZE)
sync_writel(addr, L2X0_INV_LINE_PA, 1); sync_writel(addr, L2X0_INV_LINE_PA, 1);
cache_sync(); cache_sync();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册