Skip to contentSkip to conversation

Few more omap fixes for 2.6.31

PATCH In review Tony Lindgren 2 participants 15 messages Aug 5, 2009 – Aug 10, 2009

Subsystems (3)
lore
Share & tools
lore

Tony Lindgren

author maintainer
#0 lore raw

cover Few more omap fixes for 2.6.31

Hi all,

Here are few more fixes for omap for review.

Regards,

Tony

---

Janboe Ye (1):
OMAP3: Fix omap3 sram virtual addres overlap vmalloc space after increasing vmalloc size

Roger Quadros (2):
OMAP3: RX51: Define TWL4030 USB transceiver in board file
OMAP: GPIO: Fix incorrect gpio_get logic for output GPIOs

Sergio Aguirre (1):
OMAP3: Overo: Fix smsc911x platform device resource value

Vikram Pandita (1):
OMAP2/3: DMA errata correction

 arch/arm/mach-omap2/board-overo.c            |    2 -
 arch/arm/mach-omap2/board-rx51-peripherals.c |    5 ++
 arch/arm/plat-omap/dma.c                     |    4 +-
 arch/arm/plat-omap/gpio.c                    |   68 ++++++++++++++++++++++++--
 arch/arm/plat-omap/sram.c                    |    4 +-
 5 files changed, 75 insertions(+), 8 deletions(-)
Signature · 1 line
Signature
author maintainer
#1 lore raw

PATCH 1/5 OMAP: GPIO: Fix incorrect gpio_get logic for output GPIOs

From: Roger Quadros <[email protected]>

gpio_get() should return DATAIN register value when the GPIO is configured as input whereas it should return DATAOUT register value when the GPIO is configured as output.
Now /sys/kernel/debug/gpio shows proper values for output GPIOs

---
 arch/arm/plat-omap/gpio.c |   68 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 64 insertions(+), 4 deletions(-)
arch/arm/plat-omap/gpio.c +64 -4
index 26b387c..e702b88 100644
@@ -476,14 +476,12 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
 	__raw_writel(l, reg);
 }
 
-static int __omap_get_gpio_datain(int gpio)
+static int _get_gpio_datain(struct gpio_bank *bank, int gpio)
 {
-	struct gpio_bank *bank;
 	void __iomem *reg;
 
 	if (check_gpio(gpio) < 0)
 		return -EINVAL;
-	bank = get_gpio_bank(gpio);
 	reg = bank->base;
 	switch (bank->method) {
 #ifdef CONFIG_ARCH_OMAP1
@@ -524,6 +522,53 @@ static int __omap_get_gpio_datain(int gpio)
 			& (1 << get_gpio_index(gpio))) != 0;
 }
 
+static int _get_gpio_dataout(struct gpio_bank *bank, int gpio)
+{
+	void __iomem *reg;
+
+	if (check_gpio(gpio) < 0)
+		return -EINVAL;
+	reg = bank->base;
+
+	switch (bank->method) {
+#ifdef CONFIG_ARCH_OMAP1
+	case METHOD_MPUIO:
+		reg += OMAP_MPUIO_OUTPUT;
+		break;
+#endif
+#ifdef CONFIG_ARCH_OMAP15XX
+	case METHOD_GPIO_1510:
+		reg += OMAP1510_GPIO_DATA_OUTPUT;
+		break;
+#endif
+#ifdef CONFIG_ARCH_OMAP16XX
+	case METHOD_GPIO_1610:
+		reg += OMAP1610_GPIO_DATAOUT;
+		break;
+#endif
+#ifdef CONFIG_ARCH_OMAP730
+	case METHOD_GPIO_730:
+		reg += OMAP730_GPIO_DATA_OUTPUT;
+		break;
+#endif
+#ifdef CONFIG_ARCH_OMAP850
+	case METHOD_GPIO_850:
+		reg += OMAP850_GPIO_DATA_OUTPUT;
+		break;
+#endif
+#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) || \
+		defined(CONFIG_ARCH_OMAP4)
+	case METHOD_GPIO_24XX:
+		reg += OMAP24XX_GPIO_DATAOUT;
+		break;
+#endif
+	default:
+		return -EINVAL;
+	}
+
+	return (__raw_readl(reg) & (1 << get_gpio_index(gpio))) != 0;
+}
+
 #define MOD_REG_BIT(reg, bit_mask, set)	\
 do {	\
 	int l = __raw_readl(base + reg); \
@@ -1350,9 +1395,24 @@ static int gpio_input(struct gpio_chip *chip, unsigned offset)
 	return 0;
 }
 
+static int gpio_is_input(struct gpio_bank *bank, int mask);
+
 static int gpio_get(struct gpio_chip *chip, unsigned offset)
 {
-	return __omap_get_gpio_datain(chip->base + offset);
+	struct gpio_bank *bank;
+	void __iomem *reg;
+	int gpio;
+	u32 mask;
+
+	gpio = chip->base + offset;
+	bank = get_gpio_bank(gpio);
+	reg = bank->base;
+	mask = 1 << get_gpio_index(gpio);
+
+	if (gpio_is_input(bank, mask))
+		return _get_gpio_datain(bank, gpio);
+	else
+		return _get_gpio_dataout(bank, gpio);
 }
 
 static int gpio_output(struct gpio_chip *chip, unsigned offset, int value)
author maintainer
#3 lore raw

PATCH 2/5 OMAP2/3: DMA errata correction

In reply to Tony Lindgren

From: Vikram Pandita <[email protected]>

This errata is valid for:
OMAP2420 Errata 1.85 Impacts all 2420 ES rev
OMAP2430 Errata 1.10 Impacts only ES1.0
Description: DMA may hang when several channels are used in parallel
OMAP3430: Not impacted, so remove the errata fix for omap3

Fixed issue reported on cpu_is_omap24xx check reported by Nishant Kamat

---
 arch/arm/plat-omap/dma.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
arch/arm/plat-omap/dma.c +3 -1
index 7677a4a..e3ac94f 100644
@@ -946,7 +946,9 @@ void omap_start_dma(int lch)
 
 			cur_lch = next_lch;
 		} while (next_lch != -1);
-	} else if (cpu_class_is_omap2()) {
+	} else if (cpu_is_omap242x() ||
+		(cpu_is_omap243x() &&  omap_type() <= OMAP2430_REV_ES1_0)) {
+
 		/* Errata: Need to write lch even if not using chaining */
 		dma_write(lch, CLNK_CTRL(lch));
 	}
author maintainer
#5 lore raw

PATCH 3/5 OMAP3: Fix omap3 sram virtual addres overlap vmalloc space after increasing vmalloc size

In reply to Tony Lindgren

From: Janboe Ye <[email protected]>

commit e85c205ac1427f2405021a36f083280ff0d0a35e increase vmalloc size. vmalloc space will overlap with OMAP3 sram virtual address.

---
 arch/arm/plat-omap/sram.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
arch/arm/plat-omap/sram.c +2 -2
index 4ea7380..2890b11 100644
@@ -44,9 +44,9 @@
 #define OMAP2_SRAM_VA		0xe3000000
 #define OMAP2_SRAM_PUB_VA	(OMAP2_SRAM_VA + 0x800)
 #define OMAP3_SRAM_PA           0x40200000
-#define OMAP3_SRAM_VA           0xd7000000
+#define OMAP3_SRAM_VA           0xe3000000
 #define OMAP3_SRAM_PUB_PA       0x40208000
-#define OMAP3_SRAM_PUB_VA       0xd7008000
+#define OMAP3_SRAM_PUB_VA       (OMAP3_SRAM_VA + 0x8000)
 #define OMAP4_SRAM_PA		0x40200000		/*0x402f0000*/
 #define OMAP4_SRAM_VA		0xd7000000		/*0xd70f0000*/
 
author maintainer
#6 lore raw

PATCH 4/5 OMAP3: Overo: Fix smsc911x platform device resource value

In reply to Tony Lindgren

From: Sergio Aguirre <[email protected]>

Fixes a wrong setting of resource parameter list in SMSC911x platform driver data structure for Overo case.

This fixes folowing warning when compiling for Overo board:

warning: initialization from incompatible pointer type

Introduced since commit id:

	commit 172ef275444efa12d834fb9d1b1acdac92db47f7
	Author: Steve Sakoman <[email protected]>
	Date:   Mon Feb 2 06:27:49 2009 +0000

	    ARM: Add SMSC911X support to Overo platform (V2)
---
 arch/arm/mach-omap2/board-overo.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/board-overo.c +1 -1
index dff5528..fec1bb1 100644
@@ -146,7 +146,7 @@ static struct platform_device overo_smsc911x_device = {
 	.name		= "smsc911x",
 	.id		= -1,
 	.num_resources	= ARRAY_SIZE(overo_smsc911x_resources),
-	.resource	= &overo_smsc911x_resources,
+	.resource	= overo_smsc911x_resources,
 	.dev		= {
 		.platform_data = &overo_smsc911x_config,
 	},
author maintainer
#7 lore raw

PATCH 5/5 OMAP3: RX51: Define TWL4030 USB transceiver in board file

In reply to Tony Lindgren

From: Roger Quadros <[email protected]>

Add OTG transceiver to RX51 platform data to prevent kernel NULL pointer dereference during MUSB initialisation.

---
 arch/arm/mach-omap2/board-rx51-peripherals.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-rx51-peripherals.c +5 -0
index 9a0bf67..56d931a 100644
@@ -278,6 +278,10 @@ static struct twl4030_gpio_platform_data rx51_gpio_data = {
 	.setup			= rx51_twlgpio_setup,
 };
 
+static struct twl4030_usb_data rx51_usb_data = {
+	.usb_mode		= T2_USB_MODE_ULPI,
+};
+
 static struct twl4030_platform_data rx51_twldata = {
 	.irq_base		= TWL4030_IRQ_BASE,
 	.irq_end		= TWL4030_IRQ_END,
@@ -286,6 +290,7 @@ static struct twl4030_platform_data rx51_twldata = {
 	.gpio			= &rx51_gpio_data,
 	.keypad			= &rx51_kp_data,
 	.madc			= &rx51_madc_data,
+	.usb			= &rx51_usb_data,
 
 	.vaux1			= &rx51_vaux1,
 	.vaux2			= &rx51_vaux2,
author maintainer
#8 lore raw

PATCH 5/5 OMAP2/3: mmc-twl4030: Free up MMC regulators while cleaning up

In reply to Tony Lindgren

One more patch I missed below.

Tony

Quoted 1 line

From 8b28d125dcfa4a250a897baa2425d1f30dd56219 Mon Sep 17 00:00:00 2001

From: Roger Quadros <[email protected]>
Date: Thu, 6 Aug 2009 09:49:18 +0300
Subject: [PATCH] OMAP2/3: mmc-twl4030: Free up MMC regulators while cleaning up

twl_mmc_cleanup() must free up the regulators that were allocated by twl_mmc_late_init().
This eliminates the below error when 'omap_hsmmc' module is repeatedly loaded and unloaded.

"sysfs: cannot create duplicate filename '/devices/platform
/mmci-omap-hs.0/microamps_requested_vmmc'"

arch/arm/mach-omap2/mmc-twl4030.c +6 -0
index 1541fd4..3c04c2f 100644
@@ -119,6 +119,7 @@ static int twl_mmc_late_init(struct device *dev)
 				if (i != 0)
 					break;
 				ret = PTR_ERR(reg);
+				hsmmc[i].vcc = NULL;
 				goto err;
 			}
 			hsmmc[i].vcc = reg;
@@ -165,8 +166,13 @@ done:
 static void twl_mmc_cleanup(struct device *dev)
 {
 	struct omap_mmc_platform_data *mmc = dev->platform_data;
+	int i;
 
 	gpio_free(mmc->slots[0].switch_pin);
+	for(i = 0; i < ARRAY_SIZE(hsmmc); i++) {
+		regulator_put(hsmmc[i].vcc);
+		regulator_put(hsmmc[i].vcc_aux);
+	}
 }
 
 #ifdef CONFIG_PM
author maintainer
#9 lore raw

Re: [PATCH 6/5] OMAP2/3: mmc-twl4030: Free up MMC regulators while cleaning up

Quoted 1 line · Tony Lindgren

One more patch I missed below.

And it should be numbered 6/5, not 5/5.

Tony

author maintainer
#10 lore raw

[PATCH 7/5] OMAP3: RX51: Updated rx51_defconfig

In reply to Tony Lindgren

Just one more..

Tony

Quoted 1 line

From a46c20070f08759cfbd42c05fe7debb178d896cb Mon Sep 17 00:00:00 2001

From: Roger Quadros <[email protected]>
Date: Thu, 6 Aug 2009 11:07:46 +0300
Subject: [PATCH] OMAP3: RX51: Updated rx51_defconfig

Added REGULATOR, MMC and updated default CMDLINE so RX51 now boots.

Note that the regulator code should be moved from mmc-twl4030.c to omap_hsmmc.c so it can be a module.

arch/arm/configs/rx51_defconfig +4 -3
index eb2cb31..f238df6 100644
@@ -282,7 +282,7 @@ CONFIG_ALIGNMENT_TRAP=y
 #
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log console=tty0"
+CONFIG_CMDLINE="init=/sbin/preinit ubi.mtd=rootfs root=ubi0:rootfs rootfstype=ubifs rootflags=bulk_read,no_chk_data_crc rw console=ttyMTD,log console=tty0 console=ttyS2,115200n8"
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
 
@@ -1354,7 +1354,7 @@ CONFIG_USB_OTG_UTILS=y
 # CONFIG_USB_GPIO_VBUS is not set
 # CONFIG_ISP1301_OMAP is not set
 CONFIG_TWL4030_USB=y
-CONFIG_MMC=m
+CONFIG_MMC=y
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
 
@@ -1449,7 +1449,8 @@ CONFIG_RTC_DRV_TWL4030=m
 # on-CPU RTC drivers
 #
 # CONFIG_DMADEVICES is not set
-# CONFIG_REGULATOR is not set
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_TWL4030=y
 # CONFIG_UIO is not set
 # CONFIG_STAGING is not set
 
author maintainer
#11 lore raw

Git pull request for omap fixes for 2.6.31

In reply to Tony Lindgren

Hi Russell,

Here's the pull request for you.

Tony

The following changes since commit ed680c4ad478d0fee9740f7d029087f181346564:
Linus Torvalds (1):

        Linux 2.6.31-rc5

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git omap-fixes

Janboe Ye (1):
OMAP3: Fix omap3 sram virtual addres overlap vmalloc space after increasing vmalloc size

Roger Quadros (4):
OMAP: GPIO: Fix incorrect gpio_get logic for output GPIOs
OMAP3: RX51: Define TWL4030 USB transceiver in board file OMAP2/3: mmc-twl4030: Free up MMC regulators while cleaning up
OMAP3: RX51: Updated rx51_defconfig

Sergio Aguirre (1):
OMAP3: Overo: Fix smsc911x platform device resource value

Vikram Pandita (1):
OMAP2/3: DMA errata correction

 arch/arm/configs/rx51_defconfig              |    7 ++-
 arch/arm/mach-omap2/board-overo.c            |    2 +-
 arch/arm/mach-omap2/board-rx51-peripherals.c |    5 ++
 arch/arm/mach-omap2/mmc-twl4030.c            |    6 ++
 arch/arm/plat-omap/dma.c                     |    4 +-
 arch/arm/plat-omap/gpio.c                    |   68 ++++++++++++++++++++++++--
 arch/arm/plat-omap/sram.c                    |    4 +-
 7 files changed, 85 insertions(+), 11 deletions(-)
#12 lore raw

Re: Git pull request for omap fixes for 2.6.31

Quoted 1 line · Tony Lindgren

Here's the pull request for you.

I'll hold off merging this for a bit - I've sent Linus two pull requests over the last couple of weeks, both of which so far haven't produced a reaction. It would be unfair for me to merge more stuff onto that branch until Linus has pulled.

author maintainer
#13 lore raw

Re: Git pull request for omap fixes for 2.6.31

Quoted 7 lines · Russell King - ARM Linux
Quoted 1 line · Tony Lindgren

Here's the pull request for you.

I'll hold off merging this for a bit - I've sent Linus two pull requests over the last couple of weeks, both of which so far haven't produced a reaction. It would be unfair for me to merge more stuff onto that branch until Linus has pulled.

OK thanks.

Tony

author maintainer
#4 lore raw

PATCH 1/1 OMAP: Fix testing of cpu defines for mach-omap1

In reply to Tony Lindgren

Looks like this is needed before the 2/5 patch for DMA workaround patch to keep compile working on mach-omap1 machines.

Regards,

Tony

Quoted 1 line

From f60e4730feab2b3d0101d059534123e04fc26862 Mon Sep 17 00:00:00 2001

From: Tony Lindgren <[email protected]>
Date: Mon, 10 Aug 2009 14:04:15 +0300
Subject: [PATCH] OMAP: Fix testing of cpu defines for mach-omap1

There's no need to keep these defines limited in the ifdef block for mach-omap2. It will just cause problems testing for the CPU revision in the common code, like the next patch does for the DMA errata.

arch/arm/plat-omap/include/mach/cpu.h +0 -5
index 285eaa3..11e73d9 100644
@@ -378,9 +378,6 @@ IS_OMAP_TYPE(3430, 0x3430)
 #define cpu_class_is_omap2()	(cpu_is_omap24xx() || cpu_is_omap34xx() || \
 				cpu_is_omap44xx())
 
-#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \
-			defined(CONFIG_ARCH_OMAP4)
-
 /* Various silicon revisions for omap2 */
 #define OMAP242X_CLASS		0x24200024
 #define OMAP2420_REV_ES1_0	0x24200024
@@ -436,5 +433,3 @@ IS_OMAP_TYPE(3430, 0x3430)
 
 int omap_chip_is(struct omap_chip_id oci);
 void omap2_check_revision(void);
-
-#endif    /* defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) */
author maintainer
#2 lore raw

Re: [PATCH 1/5] OMAP: GPIO: Fix incorrect gpio_get logic for output GPIOs, v3

In reply to Tony Lindgren

Here's an update from Roger for this one that builds without CONFIG_DEBUG_FS.

Tony

Quoted 1 line

From b37c45b8c27c049dc44673e40fd63820fd9a9d91 Mon Sep 17 00:00:00 2001

From: Roger Quadros <[email protected]>
Date: Wed, 5 Aug 2009 16:53:24 +0300
Subject: [PATCH] OMAP: GPIO: Fix incorrect gpio_get logic for output GPIOs

gpio_get() should return DATAIN register value when the GPIO is configured as input whereas it should return DATAOUT register value when the GPIO is configured as output.
Now /sys/kernel/debug/gpio shows proper values for output GPIOs

arch/arm/plat-omap/gpio.c +89 -32
index 26b387c..9c16ca8 100644
@@ -476,14 +476,12 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
 	__raw_writel(l, reg);
 }
 
-static int __omap_get_gpio_datain(int gpio)
+static int _get_gpio_datain(struct gpio_bank *bank, int gpio)
 {
-	struct gpio_bank *bank;
 	void __iomem *reg;
 
 	if (check_gpio(gpio) < 0)
 		return -EINVAL;
-	bank = get_gpio_bank(gpio);
 	reg = bank->base;
 	switch (bank->method) {
 #ifdef CONFIG_ARCH_OMAP1
@@ -524,6 +522,53 @@ static int __omap_get_gpio_datain(int gpio)
 			& (1 << get_gpio_index(gpio))) != 0;
 }
 
+static int _get_gpio_dataout(struct gpio_bank *bank, int gpio)
+{
+	void __iomem *reg;
+
+	if (check_gpio(gpio) < 0)
+		return -EINVAL;
+	reg = bank->base;
+
+	switch (bank->method) {
+#ifdef CONFIG_ARCH_OMAP1
+	case METHOD_MPUIO:
+		reg += OMAP_MPUIO_OUTPUT;
+		break;
+#endif
+#ifdef CONFIG_ARCH_OMAP15XX
+	case METHOD_GPIO_1510:
+		reg += OMAP1510_GPIO_DATA_OUTPUT;
+		break;
+#endif
+#ifdef CONFIG_ARCH_OMAP16XX
+	case METHOD_GPIO_1610:
+		reg += OMAP1610_GPIO_DATAOUT;
+		break;
+#endif
+#ifdef CONFIG_ARCH_OMAP730
+	case METHOD_GPIO_730:
+		reg += OMAP730_GPIO_DATA_OUTPUT;
+		break;
+#endif
+#ifdef CONFIG_ARCH_OMAP850
+	case METHOD_GPIO_850:
+		reg += OMAP850_GPIO_DATA_OUTPUT;
+		break;
+#endif
+#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) || \
+		defined(CONFIG_ARCH_OMAP4)
+	case METHOD_GPIO_24XX:
+		reg += OMAP24XX_GPIO_DATAOUT;
+		break;
+#endif
+	default:
+		return -EINVAL;
+	}
+
+	return (__raw_readl(reg) & (1 << get_gpio_index(gpio))) != 0;
+}
+
 #define MOD_REG_BIT(reg, bit_mask, set)	\
 do {	\
 	int l = __raw_readl(base + reg); \
@@ -1350,9 +1395,49 @@ static int gpio_input(struct gpio_chip *chip, unsigned offset)
 	return 0;
 }
 
+static int gpio_is_input(struct gpio_bank *bank, int mask)
+{
+	void __iomem *reg = bank->base;
+
+	switch (bank->method) {
+	case METHOD_MPUIO:
+		reg += OMAP_MPUIO_IO_CNTL;
+		break;
+	case METHOD_GPIO_1510:
+		reg += OMAP1510_GPIO_DIR_CONTROL;
+		break;
+	case METHOD_GPIO_1610:
+		reg += OMAP1610_GPIO_DIRECTION;
+		break;
+	case METHOD_GPIO_730:
+		reg += OMAP730_GPIO_DIR_CONTROL;
+		break;
+	case METHOD_GPIO_850:
+		reg += OMAP850_GPIO_DIR_CONTROL;
+		break;
+	case METHOD_GPIO_24XX:
+		reg += OMAP24XX_GPIO_OE;
+		break;
+	}
+	return __raw_readl(reg) & mask;
+}
+
 static int gpio_get(struct gpio_chip *chip, unsigned offset)
 {
-	return __omap_get_gpio_datain(chip->base + offset);
+	struct gpio_bank *bank;
+	void __iomem *reg;
+	int gpio;
+	u32 mask;
+
+	gpio = chip->base + offset;
+	bank = get_gpio_bank(gpio);
+	reg = bank->base;
+	mask = 1 << get_gpio_index(gpio);
+
+	if (gpio_is_input(bank, mask))
+		return _get_gpio_datain(bank, gpio);
+	else
+		return _get_gpio_dataout(bank, gpio);
 }
 
 static int gpio_output(struct gpio_chip *chip, unsigned offset, int value)
@@ -1886,34 +1971,6 @@ arch_initcall(omap_gpio_sysinit);
 #include <linux/debugfs.h>
 #include <linux/seq_file.h>
 
-static int gpio_is_input(struct gpio_bank *bank, int mask)
-{
-	void __iomem *reg = bank->base;
-
-	switch (bank->method) {
-	case METHOD_MPUIO:
-		reg += OMAP_MPUIO_IO_CNTL;
-		break;
-	case METHOD_GPIO_1510:
-		reg += OMAP1510_GPIO_DIR_CONTROL;
-		break;
-	case METHOD_GPIO_1610:
-		reg += OMAP1610_GPIO_DIRECTION;
-		break;
-	case METHOD_GPIO_730:
-		reg += OMAP730_GPIO_DIR_CONTROL;
-		break;
-	case METHOD_GPIO_850:
-		reg += OMAP850_GPIO_DIR_CONTROL;
-		break;
-	case METHOD_GPIO_24XX:
-		reg += OMAP24XX_GPIO_OE;
-		break;
-	}
-	return __raw_readl(reg) & mask;
-}
-
-
 static int dbg_gpio_show(struct seq_file *s, void *unused)
 {
 	unsigned	i, j, gpio;
author maintainer
#14 lore raw

Git pull request for omap fixes for 2.6.31, v2

In reply to Tony Lindgren
Quoted 10 lines · Tony Lindgren
Quoted 7 lines · Russell King - ARM Linux
Quoted 1 line · Tony Lindgren

Here's the pull request for you.

I'll hold off merging this for a bit - I've sent Linus two pull requests over the last couple of weeks, both of which so far haven't produced a reaction. It would be unfair for me to merge more stuff onto that branch until Linus has pulled.

OK thanks.

Looks like I did not test this series enough.. I've updated it now for the two patches as posted here earlier today. Updated pull request below.

Regards,

Tony

The following changes since commit ed680c4ad478d0fee9740f7d029087f181346564:
Linus Torvalds (1):

        Linux 2.6.31-rc5

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git omap-fixes

Janboe Ye (1):
OMAP3: Fix omap3 sram virtual addres overlap vmalloc space after increasing vmalloc size

Roger Quadros (4):
OMAP: GPIO: Fix incorrect gpio_get logic for output GPIOs
OMAP3: RX51: Define TWL4030 USB transceiver in board file OMAP2/3: mmc-twl4030: Free up MMC regulators while cleaning up
OMAP3: RX51: Updated rx51_defconfig

Sergio Aguirre (1):
OMAP3: Overo: Fix smsc911x platform device resource value

Tony Lindgren (1):
OMAP: Fix testing of cpu defines for mach-omap1

Vikram Pandita (1):
OMAP2/3: DMA errata correction

 arch/arm/configs/rx51_defconfig              |    7 +-
 arch/arm/mach-omap2/board-overo.c            |    2 +-
 arch/arm/mach-omap2/board-rx51-peripherals.c |    5 +
 arch/arm/mach-omap2/mmc-twl4030.c            |    6 ++
 arch/arm/plat-omap/dma.c                     |    4 +-
 arch/arm/plat-omap/gpio.c                    |  121 +++++++++++++++++++-------
 arch/arm/plat-omap/include/mach/cpu.h        |    5 -
 arch/arm/plat-omap/sram.c                    |    4 +-
 8 files changed, 110 insertions(+), 44 deletions(-)