All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/11] Omap fixes for 2.6.30-rc1
@ 2009-04-14 21:47 Tony Lindgren
  2009-04-14 21:49 ` [PATCH 01/11] ARM: OMAP: Fix for possible race condition in omap_free_dma() Tony Lindgren
                   ` (11 more replies)
  0 siblings, 12 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:47 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap

Hi all,

Here are some omap fixes for review.

Regards,

Tony

---

Huang Weiyi (1):
      ARM: OMAP3: remove duplicated #include

Jarkko Nikula (1):
      ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC

Kevin Hilman (1):
      ARM: OMAP2/3: GPIO: do not attempt to wake-enable

Ladislav Michl (3):
      ARM: OMAP1: Fix mmc_set_power GPIO usage
      ARM: OMAP1: Simplify board-h2 MMC setup
      ARM: OMAP: MMC: Remove unused power_pin

Roel Kluin (1):
      ARM: OMAP2: possible division by 0

Roger Quadros (2):
      ARM: OMAP3: Clean up spurious interrupt check logic
      ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts

Santosh Shilimkar (1):
      ARM: OMAP: Fix for possible race condition in omap_free_dma()

Tony Lindgren (1):
      ARM: OMAP: Remove old dead gpio expander code


 arch/arm/mach-omap1/board-h2-mmc.c             |   14 +--
 arch/arm/mach-omap1/board-h3-mmc.c             |    6 -
 arch/arm/mach-omap1/board-h3.c                 |  101 ------------------------
 arch/arm/mach-omap1/board-nokia770.c           |    6 -
 arch/arm/mach-omap2/board-h4.c                 |   95 -----------------------
 arch/arm/mach-omap2/board-rx51.c               |    1 
 arch/arm/mach-omap2/devices.c                  |   33 --------
 arch/arm/mach-omap2/irq.c                      |    4 -
 arch/arm/mach-omap2/usb-tusb6010.c             |    2 
 arch/arm/plat-omap/dma.c                       |   13 +--
 arch/arm/plat-omap/gpio.c                      |   20 ++---
 arch/arm/plat-omap/include/mach/eac.h          |  100 ------------------------
 arch/arm/plat-omap/include/mach/gpioexpander.h |   35 --------
 arch/arm/plat-omap/include/mach/irda.h         |    4 -
 arch/arm/plat-omap/include/mach/mmc.h          |    1 
 drivers/mmc/host/omap.c                        |    2 
 16 files changed, 24 insertions(+), 413 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/mach/eac.h
 delete mode 100644 arch/arm/plat-omap/include/mach/gpioexpander.h

-- 
Signature

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 01/11] ARM: OMAP: Fix for possible race condition in omap_free_dma()
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
@ 2009-04-14 21:49 ` Tony Lindgren
  2009-04-14 21:50 ` [PATCH 02/11] ARM: OMAP: Remove old dead gpio expander code Tony Lindgren
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:49 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Santosh Shilimkar

From: Santosh Shilimkar <santosh.shilimkar@ti.com>

Fix the possible race condition in omap_free_dma(). Function omap_free_dma()
sets the dev_id = -1 and then accesses the channel afterwards to clear it.
But setting the dev_id=-1 makes the channel available for allocation again.
So it is possible someone else can grab it and results are unpredictable.
To avod this DMA channle is cleared first and then the dev_id = -1 is set.

Thanks to McNeil, Sean <sean.mcneil@ti.com> for ointing out this issue.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/plat-omap/dma.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
index 21cc014..7fc8c04 100644
--- a/arch/arm/plat-omap/dma.c
+++ b/arch/arm/plat-omap/dma.c
@@ -760,19 +760,12 @@ void omap_free_dma(int lch)
 {
 	unsigned long flags;
 
-	spin_lock_irqsave(&dma_chan_lock, flags);
 	if (dma_chan[lch].dev_id == -1) {
 		pr_err("omap_dma: trying to free unallocated DMA channel %d\n",
 		       lch);
-		spin_unlock_irqrestore(&dma_chan_lock, flags);
 		return;
 	}
 
-	dma_chan[lch].dev_id = -1;
-	dma_chan[lch].next_lch = -1;
-	dma_chan[lch].callback = NULL;
-	spin_unlock_irqrestore(&dma_chan_lock, flags);
-
 	if (cpu_class_is_omap1()) {
 		/* Disable all DMA interrupts for the channel. */
 		dma_write(0, CICR(lch));
@@ -798,6 +791,12 @@ void omap_free_dma(int lch)
 		dma_write(0, CCR(lch));
 		omap_clear_dma(lch);
 	}
+
+	spin_lock_irqsave(&dma_chan_lock, flags);
+	dma_chan[lch].dev_id = -1;
+	dma_chan[lch].next_lch = -1;
+	dma_chan[lch].callback = NULL;
+	spin_unlock_irqrestore(&dma_chan_lock, flags);
 }
 EXPORT_SYMBOL(omap_free_dma);
 


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 02/11] ARM: OMAP: Remove old dead gpio expander code
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
  2009-04-14 21:49 ` [PATCH 01/11] ARM: OMAP: Fix for possible race condition in omap_free_dma() Tony Lindgren
@ 2009-04-14 21:50 ` Tony Lindgren
  2009-04-14 21:51 ` [PATCH 03/11] ARM: OMAP: MMC: Remove unused power_pin Tony Lindgren
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:50 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap

This should be done with GPIO calls. Patches against the
mainline tree welcome to add the necessary working functionality
back.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap1/board-h3.c                 |  101 ------------------------
 arch/arm/mach-omap2/board-h4.c                 |   95 -----------------------
 arch/arm/plat-omap/include/mach/gpioexpander.h |   35 --------
 arch/arm/plat-omap/include/mach/irda.h         |    4 -
 4 files changed, 0 insertions(+), 235 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/mach/gpioexpander.h

diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c
index 4695965..f597968 100644
--- a/arch/arm/mach-omap1/board-h3.c
+++ b/arch/arm/mach-omap1/board-h3.c
@@ -39,12 +39,10 @@
 #include <asm/mach/flash.h>
 #include <asm/mach/map.h>
 
-#include <mach/gpioexpander.h>
 #include <mach/irqs.h>
 #include <mach/mux.h>
 #include <mach/tc.h>
 #include <mach/nand.h>
-#include <mach/irda.h>
 #include <mach/usb.h>
 #include <mach/keypad.h>
 #include <mach/dma.h>
@@ -276,104 +274,6 @@ static struct platform_device h3_kp_device = {
 	.resource	= h3_kp_resources,
 };
 
-
-/* Select between the IrDA and aGPS module
- */
-static int h3_select_irda(struct device *dev, int state)
-{
-	unsigned char expa;
-	int err = 0;
-
-	if ((err = read_gpio_expa(&expa, 0x26))) {
-		printk(KERN_ERR "Error reading from I/O EXPANDER \n");
-		return err;
-	}
-
-	/* 'P6' enable/disable IRDA_TX and IRDA_RX */
-	if (state & IR_SEL) { /* IrDA */
-		if ((err = write_gpio_expa(expa | 0x40, 0x26))) {
-			printk(KERN_ERR "Error writing to I/O EXPANDER \n");
-			return err;
-		}
-	} else {
-		if ((err = write_gpio_expa(expa & ~0x40, 0x26))) {
-			printk(KERN_ERR "Error writing to I/O EXPANDER \n");
-			return err;
-		}
-	}
-	return err;
-}
-
-static void set_trans_mode(struct work_struct *work)
-{
-	struct omap_irda_config *irda_config =
-		container_of(work, struct omap_irda_config, gpio_expa.work);
-	int mode = irda_config->mode;
-	unsigned char expa;
-	int err = 0;
-
-	if ((err = read_gpio_expa(&expa, 0x27)) != 0) {
-		printk(KERN_ERR "Error reading from I/O expander\n");
-	}
-
-	expa &= ~0x03;
-
-	if (mode & IR_SIRMODE) {
-		expa |= 0x01;
-	} else { /* MIR/FIR */
-		expa |= 0x03;
-	}
-
-	if ((err = write_gpio_expa(expa, 0x27)) != 0) {
-		printk(KERN_ERR "Error writing to I/O expander\n");
-	}
-}
-
-static int h3_transceiver_mode(struct device *dev, int mode)
-{
-	struct omap_irda_config *irda_config = dev->platform_data;
-
-	irda_config->mode = mode;
-	cancel_delayed_work(&irda_config->gpio_expa);
-	PREPARE_DELAYED_WORK(&irda_config->gpio_expa, set_trans_mode);
-	schedule_delayed_work(&irda_config->gpio_expa, 0);
-
-	return 0;
-}
-
-static struct omap_irda_config h3_irda_data = {
-	.transceiver_cap	= IR_SIRMODE | IR_MIRMODE | IR_FIRMODE,
-	.transceiver_mode	= h3_transceiver_mode,
-	.select_irda	 	= h3_select_irda,
-	.rx_channel		= OMAP_DMA_UART3_RX,
-	.tx_channel		= OMAP_DMA_UART3_TX,
-	.dest_start		= UART3_THR,
-	.src_start		= UART3_RHR,
-	.tx_trigger		= 0,
-	.rx_trigger		= 0,
-};
-
-static struct resource h3_irda_resources[] = {
-	[0] = {
-		.start	= INT_UART3,
-		.end	= INT_UART3,
-		.flags	= IORESOURCE_IRQ,
-	},
-};
-
-static u64 irda_dmamask = 0xffffffff;
-
-static struct platform_device h3_irda_device = {
-	.name		= "omapirda",
-	.id		= 0,
-	.dev		= {
-		.platform_data	= &h3_irda_data,
-		.dma_mask	= &irda_dmamask,
-	},
-	.num_resources	= ARRAY_SIZE(h3_irda_resources),
-	.resource	= h3_irda_resources,
-};
-
 static struct platform_device h3_lcd_device = {
 	.name		= "lcd_h3",
 	.id		= -1,
@@ -395,7 +295,6 @@ static struct platform_device *devices[] __initdata = {
 	&nand_device,
         &smc91x_device,
 	&intlat_device,
-	&h3_irda_device,
 	&h3_kp_device,
 	&h3_lcd_device,
 };
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c
index a0267a9..e7d017c 100644
--- a/arch/arm/mach-omap2/board-h4.c
+++ b/arch/arm/mach-omap2/board-h4.c
@@ -33,10 +33,8 @@
 
 #include <mach/control.h>
 #include <mach/gpio.h>
-#include <mach/gpioexpander.h>
 #include <mach/mux.h>
 #include <mach/usb.h>
-#include <mach/irda.h>
 #include <mach/board.h>
 #include <mach/common.h>
 #include <mach/keypad.h>
@@ -138,98 +136,6 @@ static struct platform_device h4_flash_device = {
 	.resource	= &h4_flash_resource,
 };
 
-/* Select between the IrDA and aGPS module
- */
-static int h4_select_irda(struct device *dev, int state)
-{
-	unsigned char expa;
-	int err = 0;
-
-	if ((err = read_gpio_expa(&expa, 0x21))) {
-		printk(KERN_ERR "Error reading from I/O expander\n");
-		return err;
-	}
-
-	/* 'P6' enable/disable IRDA_TX and IRDA_RX */
-	if (state & IR_SEL) {	/* IrDa */
-		if ((err = write_gpio_expa(expa | 0x01, 0x21))) {
-			printk(KERN_ERR "Error writing to I/O expander\n");
-			return err;
-		}
-	} else {
-		if ((err = write_gpio_expa(expa & ~0x01, 0x21))) {
-			printk(KERN_ERR "Error writing to I/O expander\n");
-			return err;
-		}
-	}
-	return err;
-}
-
-static void set_trans_mode(struct work_struct *work)
-{
-	struct omap_irda_config *irda_config =
-		container_of(work, struct omap_irda_config, gpio_expa.work);
-	int mode = irda_config->mode;
-	unsigned char expa;
-	int err = 0;
-
-	if ((err = read_gpio_expa(&expa, 0x20)) != 0) {
-		printk(KERN_ERR "Error reading from I/O expander\n");
-	}
-
-	expa &= ~0x01;
-
-	if (!(mode & IR_SIRMODE)) { /* MIR/FIR */
-		expa |= 0x01;
-	}
-
-	if ((err = write_gpio_expa(expa, 0x20)) != 0) {
-		printk(KERN_ERR "Error writing to I/O expander\n");
-	}
-}
-
-static int h4_transceiver_mode(struct device *dev, int mode)
-{
-	struct omap_irda_config *irda_config = dev->platform_data;
-
-	irda_config->mode = mode;
-	cancel_delayed_work(&irda_config->gpio_expa);
-	PREPARE_DELAYED_WORK(&irda_config->gpio_expa, set_trans_mode);
-	schedule_delayed_work(&irda_config->gpio_expa, 0);
-
-	return 0;
-}
-
-static struct omap_irda_config h4_irda_data = {
-	.transceiver_cap	= IR_SIRMODE | IR_MIRMODE | IR_FIRMODE,
-	.transceiver_mode	= h4_transceiver_mode,
-	.select_irda	 	= h4_select_irda,
-	.rx_channel		= OMAP24XX_DMA_UART3_RX,
-	.tx_channel		= OMAP24XX_DMA_UART3_TX,
-	.dest_start		= OMAP_UART3_BASE,
-	.src_start		= OMAP_UART3_BASE,
-	.tx_trigger		= OMAP24XX_DMA_UART3_TX,
-	.rx_trigger		= OMAP24XX_DMA_UART3_RX,
-};
-
-static struct resource h4_irda_resources[] = {
-	[0] = {
-		.start	= INT_24XX_UART3_IRQ,
-		.end	= INT_24XX_UART3_IRQ,
-		.flags	= IORESOURCE_IRQ,
-	},
-};
-
-static struct platform_device h4_irda_device = {
-	.name		= "omapirda",
-	.id		= -1,
-	.dev		= {
-		.platform_data	= &h4_irda_data,
-	},
-	.num_resources	= 1,
-	.resource	= h4_irda_resources,
-};
-
 static struct omap_kp_platform_data h4_kp_data = {
 	.rows		= 6,
 	.cols		= 7,
@@ -255,7 +161,6 @@ static struct platform_device h4_lcd_device = {
 
 static struct platform_device *h4_devices[] __initdata = {
 	&h4_flash_device,
-	&h4_irda_device,
 	&h4_kp_device,
 	&h4_lcd_device,
 };
diff --git a/arch/arm/plat-omap/include/mach/gpioexpander.h b/arch/arm/plat-omap/include/mach/gpioexpander.h
deleted file mode 100644
index 90444a0..0000000
--- a/arch/arm/plat-omap/include/mach/gpioexpander.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * arch/arm/plat-omap/include/mach/gpioexpander.h
- *
- *
- * Copyright (C) 2004 Texas Instruments, Inc.
- *
- * This package is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef __ASM_ARCH_OMAP_GPIOEXPANDER_H
-#define __ASM_ARCH_OMAP_GPIOEXPANDER_H
-
-/* Function Prototypes for GPIO Expander functions */
-
-#ifdef CONFIG_GPIOEXPANDER_OMAP
-int read_gpio_expa(u8 *, int);
-int write_gpio_expa(u8 , int);
-#else
-static inline int read_gpio_expa(u8 *val, int addr)
-{
-	return 0;
-}
-static inline int write_gpio_expa(u8 val, int addr)
-{
-	return 0;
-}
-#endif
-
-#endif /* __ASM_ARCH_OMAP_GPIOEXPANDER_H */
diff --git a/arch/arm/plat-omap/include/mach/irda.h b/arch/arm/plat-omap/include/mach/irda.h
index 8372a00..40f6033 100644
--- a/arch/arm/plat-omap/include/mach/irda.h
+++ b/arch/arm/plat-omap/include/mach/irda.h
@@ -21,10 +21,6 @@ struct omap_irda_config {
 	int transceiver_cap;
 	int (*transceiver_mode)(struct device *dev, int mode);
 	int (*select_irda)(struct device *dev, int state);
-	/* Very specific to the needs of some platforms (h3,h4)
-	 * having calls which can sleep in irda_set_speed.
-	 */
-	struct delayed_work gpio_expa;
 	int rx_channel;
 	int tx_channel;
 	unsigned long dest_start;


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 03/11] ARM: OMAP: MMC: Remove unused power_pin
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
  2009-04-14 21:49 ` [PATCH 01/11] ARM: OMAP: Fix for possible race condition in omap_free_dma() Tony Lindgren
  2009-04-14 21:50 ` [PATCH 02/11] ARM: OMAP: Remove old dead gpio expander code Tony Lindgren
@ 2009-04-14 21:51 ` Tony Lindgren
  2009-04-14 21:53 ` [PATCH 04/11] ARM: OMAP1: Simplify board-h2 MMC setup Tony Lindgren
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:51 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Ladislav Michl

From: Ladislav Michl <ladis@linux-mips.org>

Remove unused power_pin

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/plat-omap/include/mach/mmc.h |    1 -
 drivers/mmc/host/omap.c               |    2 --
 2 files changed, 0 insertions(+), 3 deletions(-)

diff --git a/arch/arm/plat-omap/include/mach/mmc.h b/arch/arm/plat-omap/include/mach/mmc.h
index 4435bd4..81d5b36 100644
--- a/arch/arm/plat-omap/include/mach/mmc.h
+++ b/arch/arm/plat-omap/include/mach/mmc.h
@@ -79,7 +79,6 @@ struct omap_mmc_platform_data {
 
 		/* use the internal clock */
 		unsigned internal_clock:1;
-		s16 power_pin;
 
 		int switch_pin;			/* gpio (card detect) */
 		int gpio_wp;			/* gpio (write protect) */
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
index 5570849..bfa25c0 100644
--- a/drivers/mmc/host/omap.c
+++ b/drivers/mmc/host/omap.c
@@ -157,8 +157,6 @@ struct mmc_omap_host {
 	struct timer_list	dma_timer;
 	unsigned		dma_len;
 
-	short			power_pin;
-
 	struct mmc_omap_slot    *slots[OMAP_MMC_MAX_SLOTS];
 	struct mmc_omap_slot    *current_slot;
 	spinlock_t              slot_lock;


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 04/11] ARM: OMAP1: Simplify board-h2 MMC setup
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (2 preceding siblings ...)
  2009-04-14 21:51 ` [PATCH 03/11] ARM: OMAP: MMC: Remove unused power_pin Tony Lindgren
@ 2009-04-14 21:53 ` Tony Lindgren
  2009-04-14 21:54 ` [PATCH 05/11] ARM: OMAP1: Fix mmc_set_power GPIO usage Tony Lindgren
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:53 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Ladislav Michl

From: Ladislav Michl <ladis@linux-mips.org>

Simplify board-h2 MMC setup

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap1/board-h2-mmc.c |   14 ++++----------
 1 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap1/board-h2-mmc.c b/arch/arm/mach-omap1/board-h2-mmc.c
index 44d4a96..46098f5 100644
--- a/arch/arm/mach-omap1/board-h2-mmc.c
+++ b/arch/arm/mach-omap1/board-h2-mmc.c
@@ -26,19 +26,13 @@
 static int mmc_set_power(struct device *dev, int slot, int power_on,
 				int vdd)
 {
-	if (power_on)
-		gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 1);
-	else
-		gpio_direction_output(H2_TPS_GPIO_MMC_PWR_EN, 0);
-
+	gpio_set_value(H2_TPS_GPIO_MMC_PWR_EN, power_on);
 	return 0;
 }
 
 static int mmc_late_init(struct device *dev)
 {
-	int ret;
-
-	ret = gpio_request(H2_TPS_GPIO_MMC_PWR_EN, "MMC power");
+	int ret = gpio_request(H2_TPS_GPIO_MMC_PWR_EN, "MMC power");
 	if (ret < 0)
 		return ret;
 
@@ -47,7 +41,7 @@ static int mmc_late_init(struct device *dev)
 	return ret;
 }
 
-static void mmc_shutdown(struct device *dev)
+static void mmc_cleanup(struct device *dev)
 {
 	gpio_free(H2_TPS_GPIO_MMC_PWR_EN);
 }
@@ -60,7 +54,7 @@ static void mmc_shutdown(struct device *dev)
 static struct omap_mmc_platform_data mmc1_data = {
 	.nr_slots                       = 1,
 	.init				= mmc_late_init,
-	.shutdown			= mmc_shutdown,
+	.cleanup			= mmc_cleanup,
 	.dma_mask			= 0xffffffff,
 	.slots[0]       = {
 		.set_power              = mmc_set_power,


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 05/11] ARM: OMAP1: Fix mmc_set_power GPIO usage
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (3 preceding siblings ...)
  2009-04-14 21:53 ` [PATCH 04/11] ARM: OMAP1: Simplify board-h2 MMC setup Tony Lindgren
@ 2009-04-14 21:54 ` Tony Lindgren
  2009-04-14 21:55 ` [PATCH 06/11] ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC Tony Lindgren
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:54 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Ladislav Michl

From: Ladislav Michl <ladis@linux-mips.org>

Simple simplification...

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap1/board-h3-mmc.c   |    6 +-----
 arch/arm/mach-omap1/board-nokia770.c |    6 +-----
 2 files changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap1/board-h3-mmc.c b/arch/arm/mach-omap1/board-h3-mmc.c
index 0d8a3c1..5e8877c 100644
--- a/arch/arm/mach-omap1/board-h3-mmc.c
+++ b/arch/arm/mach-omap1/board-h3-mmc.c
@@ -26,11 +26,7 @@
 static int mmc_set_power(struct device *dev, int slot, int power_on,
 				int vdd)
 {
-	if (power_on)
-		gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 1);
-	else
-		gpio_direction_output(H3_TPS_GPIO_MMC_PWR_EN, 0);
-
+	gpio_set_value(H3_TPS_GPIO_MMC_PWR_EN, power_on);
 	return 0;
 }
 
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c
index 7bc7a3c..d1ed136 100644
--- a/arch/arm/mach-omap1/board-nokia770.c
+++ b/arch/arm/mach-omap1/board-nokia770.c
@@ -181,11 +181,7 @@ static struct omap_usb_config nokia770_usb_config __initdata = {
 static int nokia770_mmc_set_power(struct device *dev, int slot, int power_on,
 				int vdd)
 {
-	if (power_on)
-		gpio_set_value(NOKIA770_GPIO_MMC_POWER, 1);
-	else
-		gpio_set_value(NOKIA770_GPIO_MMC_POWER, 0);
-
+	gpio_set_value(NOKIA770_GPIO_MMC_POWER, power_on);
 	return 0;
 }
 


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 06/11] ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (4 preceding siblings ...)
  2009-04-14 21:54 ` [PATCH 05/11] ARM: OMAP1: Fix mmc_set_power GPIO usage Tony Lindgren
@ 2009-04-14 21:55 ` Tony Lindgren
  2009-04-14 21:57 ` [PATCH 07/11] ARM: OMAP2: possible division by 0 Tony Lindgren
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:55 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Jarkko Nikula

From: Jarkko Nikula <jarkko.nikula@nokia.com>

There is no anymore legacy driver for OMAP24XX Enhanced Audio Controller
in linux-omap and it was newer in mainline so cleanup these unneeded
defines and initialization code.

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/devices.c         |   33 -----------
 arch/arm/plat-omap/include/mach/eac.h |  100 ---------------------------------
 2 files changed, 0 insertions(+), 133 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/mach/eac.h

diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index d6b4b2f..496983a 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -25,7 +25,6 @@
 #include <mach/board.h>
 #include <mach/mux.h>
 #include <mach/gpio.h>
-#include <mach/eac.h>
 #include <mach/mmc.h>
 
 #if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
@@ -366,38 +365,6 @@ static void omap_init_mcspi(void)
 static inline void omap_init_mcspi(void) {}
 #endif
 
-#ifdef CONFIG_SND_OMAP24XX_EAC
-
-#define OMAP2_EAC_BASE			0x48090000
-
-static struct resource omap2_eac_resources[] = {
-	{
-		.start		= OMAP2_EAC_BASE,
-		.end		= OMAP2_EAC_BASE + 0x109,
-		.flags		= IORESOURCE_MEM,
-	},
-};
-
-static struct platform_device omap2_eac_device = {
-	.name		= "omap24xx-eac",
-	.id		= -1,
-	.num_resources	= ARRAY_SIZE(omap2_eac_resources),
-	.resource	= omap2_eac_resources,
-	.dev = {
-		.platform_data = NULL,
-	},
-};
-
-void omap_init_eac(struct eac_platform_data *pdata)
-{
-	omap2_eac_device.dev.platform_data = pdata;
-	platform_device_register(&omap2_eac_device);
-}
-
-#else
-void omap_init_eac(struct eac_platform_data *pdata) {}
-#endif
-
 #ifdef CONFIG_OMAP_SHA1_MD5
 static struct resource sha1_md5_resources[] = {
 	{
diff --git a/arch/arm/plat-omap/include/mach/eac.h b/arch/arm/plat-omap/include/mach/eac.h
deleted file mode 100644
index 9e62cf0..0000000
--- a/arch/arm/plat-omap/include/mach/eac.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * arch/arm/plat-omap/include/mach2/eac.h
- *
- * Defines for Enhanced Audio Controller
- *
- * Contact: Jarkko Nikula <jarkko.nikula@nokia.com>
- *
- * Copyright (C) 2006 Nokia Corporation
- * Copyright (C) 2004 Texas Instruments, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-#ifndef __ASM_ARM_ARCH_OMAP2_EAC_H
-#define __ASM_ARM_ARCH_OMAP2_EAC_H
-
-#include <mach/io.h>
-#include <mach/hardware.h>
-#include <asm/irq.h>
-
-#include <sound/core.h>
-
-/* master codec clock source */
-#define EAC_MCLK_EXT_MASK	0x100
-enum eac_mclk_src {
-	EAC_MCLK_INT_11290000, /* internal 96 MHz / 8.5 = 11.29 Mhz */
-	EAC_MCLK_EXT_11289600 = EAC_MCLK_EXT_MASK,
-	EAC_MCLK_EXT_12288000,
-	EAC_MCLK_EXT_2x11289600,
-	EAC_MCLK_EXT_2x12288000,
-};
-
-/* codec port interface mode */
-enum eac_codec_mode {
-	EAC_CODEC_PCM,
-	EAC_CODEC_AC97,
-	EAC_CODEC_I2S_MASTER, /* codec port, I.e. EAC is the master */
-	EAC_CODEC_I2S_SLAVE,
-};
-
-/* configuration structure for I2S mode */
-struct eac_i2s_conf {
-	/* if enabled, then first data slot (left channel) is signaled as
-	 * positive level of frame sync EAC.AC_FS */
-	unsigned	polarity_changed_mode:1;
-	/* if enabled, then serial data starts one clock cycle after the
-	 * of EAC.AC_FS for first audio slot */
-	unsigned	sync_delay_enable:1;
-};
-
-/* configuration structure for EAC codec port */
-struct eac_codec {
-	enum eac_mclk_src	mclk_src;
-
-	enum eac_codec_mode	codec_mode;
-	union {
-		struct eac_i2s_conf	i2s;
-	} codec_conf;
-
-	int		default_rate; /* audio sampling rate */
-
-	int		(* set_power)(void *private_data, int dac, int adc);
-	int		(* register_controls)(void *private_data,
-					      struct snd_card *card);
-	const char 	*short_name;
-
-	void		*private_data;
-};
-
-/* structure for passing platform dependent data to the EAC driver */
-struct eac_platform_data {
-        int	(* init)(struct device *eac_dev);
-	void	(* cleanup)(struct device *eac_dev);
-	/* these callbacks are used to configure & control external MCLK
-	 * source. NULL if not used */
-	int	(* enable_ext_clocks)(struct device *eac_dev);
-	void	(* disable_ext_clocks)(struct device *eac_dev);
-};
-
-extern void omap_init_eac(struct eac_platform_data *pdata);
-
-extern int eac_register_codec(struct device *eac_dev, struct eac_codec *codec);
-extern void eac_unregister_codec(struct device *eac_dev);
-
-extern int eac_set_mode(struct device *eac_dev, int play, int rec);
-
-#endif /* __ASM_ARM_ARCH_OMAP2_EAC_H */


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 07/11] ARM: OMAP2: possible division by 0
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (5 preceding siblings ...)
  2009-04-14 21:55 ` [PATCH 06/11] ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC Tony Lindgren
@ 2009-04-14 21:57 ` Tony Lindgren
  2009-04-14 21:58 ` [PATCH 08/11] ARM: OMAP2/3: GPIO: do not attempt to wake-enable Tony Lindgren
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:57 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Roel Kluin

From: Roel Kluin <roel.kluin@gmail.com>

In linus' git tree the functions can be found at:
vi arch/arm/mach-omap2/usb-tusb6010.c +200	- tusb6010_platform_retime()
vi arch/arm/mach-omap2/gpmc.c +94		- gpmc_get_fclk_period()
vi arch/arm/mach-omap2/usb-tusb6010.c +53	- tusb_set_async_mode()
vi arch/arm/mach-omap2/usb-tusb6010.c +111	- tusb_set_sync_mode()

is -ENODEV appropriate when sysclk_ps == 0?

This was found by code analysis, please review.
------------------------------>8-------------8<---------------------------------
gpmc_get_fclk_period() may return 0 when gpmc_l3_clk is not enabled. This is
not checked in tusb6010_platform_retime() nor in tusb_set_async_mode() it
seems. In tusb_set_sync_mode() this may result in a division by zero.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/usb-tusb6010.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/usb-tusb6010.c b/arch/arm/mach-omap2/usb-tusb6010.c
index 15e5090..8df55f4 100644
--- a/arch/arm/mach-omap2/usb-tusb6010.c
+++ b/arch/arm/mach-omap2/usb-tusb6010.c
@@ -187,7 +187,7 @@ int tusb6010_platform_retime(unsigned is_refclk)
 	unsigned	sysclk_ps;
 	int		status;
 
-	if (!refclk_psec)
+	if (!refclk_psec || sysclk_ps == 0)
 		return -ENODEV;
 
 	sysclk_ps = is_refclk ? refclk_psec : TUSB6010_OSCCLK_60;


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 08/11] ARM: OMAP2/3: GPIO: do not attempt to wake-enable
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (6 preceding siblings ...)
  2009-04-14 21:57 ` [PATCH 07/11] ARM: OMAP2: possible division by 0 Tony Lindgren
@ 2009-04-14 21:58 ` Tony Lindgren
  2009-05-18 19:50   ` Hunter, Jon
  2009-04-14 21:59 ` [PATCH 09/11] ARM: OMAP3: remove duplicated #include Tony Lindgren
                   ` (3 subsequent siblings)
  11 siblings, 1 reply; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:58 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Kevin Hilman, linux-omap

From: Kevin Hilman <khilman@deeprootsystems.com>

The GPIO IRQ enable/disable path attempts to also enable IRQ wake
support for the parent GPIO bank IRQ as well.  However, since there is
no 'set_wake' hook for the bank IRQs, these calls will always fail.
Also, since the enable will fail on the suspend path, the disable on
the resume path will trigger unbalanced enable/disable warnings.

This was discovered in the suspend/resume path on OMAP3/Beagle using
the gpio-keys driver which disables/re-enables GPIO IRQ wakeups in the
suspend/resume path.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/plat-omap/gpio.c |   14 ++++----------
 1 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index d3fa41e..210a1c0 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -921,13 +921,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
 	case METHOD_MPUIO:
 	case METHOD_GPIO_1610:
 		spin_lock_irqsave(&bank->lock, flags);
-		if (enable) {
+		if (enable)
 			bank->suspend_wakeup |= (1 << gpio);
-			enable_irq_wake(bank->irq);
-		} else {
-			disable_irq_wake(bank->irq);
+		else
 			bank->suspend_wakeup &= ~(1 << gpio);
-		}
 		spin_unlock_irqrestore(&bank->lock, flags);
 		return 0;
 #endif
@@ -940,13 +937,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
 			return -EINVAL;
 		}
 		spin_lock_irqsave(&bank->lock, flags);
-		if (enable) {
+		if (enable)
 			bank->suspend_wakeup |= (1 << gpio);
-			enable_irq_wake(bank->irq);
-		} else {
-			disable_irq_wake(bank->irq);
+		else
 			bank->suspend_wakeup &= ~(1 << gpio);
-		}
 		spin_unlock_irqrestore(&bank->lock, flags);
 		return 0;
 #endif


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 09/11] ARM: OMAP3: remove duplicated #include
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (7 preceding siblings ...)
  2009-04-14 21:58 ` [PATCH 08/11] ARM: OMAP2/3: GPIO: do not attempt to wake-enable Tony Lindgren
@ 2009-04-14 21:59 ` Tony Lindgren
  2009-04-14 22:01 ` [PATCH 10/11] ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts Tony Lindgren
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 21:59 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Huang Weiyi

From: Huang Weiyi <weiyi.huang@gmail.com>

Removed duplicated #include in arch/arm/mach-omap2/board-rx51.c.

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/board-rx51.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index 3a0daac..374ff63 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -15,7 +15,6 @@
 #include <linux/err.h>
 #include <linux/clk.h>
 #include <linux/io.h>
-#include <linux/delay.h>
 #include <linux/gpio.h>
 
 #include <mach/hardware.h>


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 10/11] ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (8 preceding siblings ...)
  2009-04-14 21:59 ` [PATCH 09/11] ARM: OMAP3: remove duplicated #include Tony Lindgren
@ 2009-04-14 22:01 ` Tony Lindgren
  2009-04-14 22:02 ` [PATCH 11/11] ARM: OMAP3: Clean up spurious interrupt check logic Tony Lindgren
  2009-04-17  1:23 ` git pull request for omap fixes (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1) Tony Lindgren
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 22:01 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Roger Quadros

From: Roger Quadros <ext-roger.quadros@nokia.com>

Flush posted write to IRQSTATUS register in GPIO IRQ handler.
This eliminates the below error for all peripherals that use GPIO interrupts.

<4>Spurious irq 95: 0xffffffdf, please flush posted write for irq 31

Signed-off-by: Roger Quadros <ext-roger.quadros@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/plat-omap/gpio.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 210a1c0..17d7afe 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -758,8 +758,12 @@ static void _clear_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)
 
 	/* Workaround for clearing DSP GPIO interrupts to allow retention */
 #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
+	reg = bank->base + OMAP24XX_GPIO_IRQSTATUS2;
 	if (cpu_is_omap24xx() || cpu_is_omap34xx())
-		__raw_writel(gpio_mask, bank->base + OMAP24XX_GPIO_IRQSTATUS2);
+		__raw_writel(gpio_mask, reg);
+
+	/* Flush posted write for the irq status to avoid spurious interrupts */
+	__raw_readl(reg);
 #endif
 }
 


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 11/11] ARM: OMAP3: Clean up spurious interrupt check logic
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (9 preceding siblings ...)
  2009-04-14 22:01 ` [PATCH 10/11] ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts Tony Lindgren
@ 2009-04-14 22:02 ` Tony Lindgren
  2009-04-17  1:23 ` git pull request for omap fixes (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1) Tony Lindgren
  11 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-14 22:02 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: linux-omap, Roger Quadros

From: Roger Quadros <ext-roger.quadros@nokia.com>

SPURIOUSIRQ is contained in bits 31:7 of INTC_SIR, so
INTC_SIR must be right shifted by 7, not 6.

No change in logic, only changes for better readability.
Refer to register definition of INTCPS_SIR_IRQ in OMAP3 Manual.

Signed-off-by: Roger Quadros <ext-roger.quadros@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 arch/arm/mach-omap2/irq.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 9ba20d9..998c5c4 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -73,9 +73,9 @@ static int omap_check_spurious(unsigned int irq)
 	u32 sir, spurious;
 
 	sir = intc_bank_read_reg(&irq_banks[0], INTC_SIR);
-	spurious = sir >> 6;
+	spurious = sir >> 7;
 
-	if (spurious > 1) {
+	if (spurious) {
 		printk(KERN_WARNING "Spurious irq %i: 0x%08x, please flush "
 					"posted write for irq %i\n",
 					irq, sir, previous_irq);


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* git pull request for omap fixes (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1)
  2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
                   ` (10 preceding siblings ...)
  2009-04-14 22:02 ` [PATCH 11/11] ARM: OMAP3: Clean up spurious interrupt check logic Tony Lindgren
@ 2009-04-17  1:23 ` Tony Lindgren
  2009-04-21  4:57   ` git pull request for omap fixes, v2 " Tony Lindgren
  11 siblings, 1 reply; 21+ messages in thread
From: Tony Lindgren @ 2009-04-17  1:23 UTC (permalink / raw)
  To: Russell King; +Cc: linux-arm-kernel, linux-omap

[-- Attachment #1: Type: text/plain, Size: 218 bytes --]

* Tony Lindgren <tony@atomide.com> [090414 14:48]:
> Hi all,
> 
> Here are some omap fixes for review.

Also merged in Paul's clock fixes posted here earlier.

Russell, here's the pull request for you.

Regards,

Tony

[-- Attachment #2: pull.txt --]
[-- Type: text/plain, Size: 3329 bytes --]

The following changes since commit 0882e8dd3aad33eca41696d463bb896e6c8817eb:
  Linus Torvalds (1):
        Linux 2.6.30-rc2

are available in the git repository at:

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

Arun KS (1):
      OMAP1: clock: Typo fix for clock in omap1

Huang Weiyi (1):
      ARM: OMAP3: remove duplicated #include

Jarkko Nikula (1):
      ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC

Kevin Hilman (2):
      OMAP: dmtimer: enable all timers to be wakeup events
      ARM: OMAP2/3: GPIO: do not attempt to wake-enable

Ladislav Michl (3):
      ARM: OMAP: MMC: Remove unused power_pin
      ARM: OMAP1: Simplify board-h2 MMC setup
      ARM: OMAP1: Fix mmc_set_power GPIO usage

Paul Walmsley (4):
      OMAP2xxx clock: init osc_ck, sys_ck internal lists early
      OMAP2xxx clock: fix broken cpu_mask code
      OMAP3 GPTIMER: fix GPTIMER12 IRQ
      OMAP2/3 GPTIMER: allow system tick GPTIMER to be changed in board-*.c files

Roel Kluin (1):
      ARM: OMAP2: possible division by 0

Roger Quadros (2):
      ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts
      ARM: OMAP3: Clean up spurious interrupt check logic

Santosh Shilimkar (1):
      ARM: OMAP: Fix for possible race condition in omap_free_dma()

Sergio Aguirre (1):
      OMAP3: clock: Camera module doesn't have IDLEST bit

Tony Lindgren (2):
      ARM: OMAP: Remove old dead gpio expander code
      Merge branch 'omap-clock-fixes' of git://git.pwsan.com/linux-2.6 into omap-fixes

 arch/arm/mach-omap1/board-h2-mmc.c             |   14 +---
 arch/arm/mach-omap1/board-h3-mmc.c             |    6 +-
 arch/arm/mach-omap1/board-h3.c                 |  101 ------------------------
 arch/arm/mach-omap1/board-nokia770.c           |    6 +-
 arch/arm/mach-omap1/mcbsp.c                    |    4 +-
 arch/arm/mach-omap2/board-h4.c                 |   95 ----------------------
 arch/arm/mach-omap2/board-omap3beagle.c        |    4 +
 arch/arm/mach-omap2/board-rx51.c               |    1 -
 arch/arm/mach-omap2/clock24xx.c                |   15 ++--
 arch/arm/mach-omap2/clock24xx.h                |   10 ++-
 arch/arm/mach-omap2/clock34xx.h                |    7 +-
 arch/arm/mach-omap2/devices.c                  |   33 --------
 arch/arm/mach-omap2/irq.c                      |    4 +-
 arch/arm/mach-omap2/timer-gp.c                 |   48 +++++++++++-
 arch/arm/mach-omap2/usb-tusb6010.c             |    2 +-
 arch/arm/plat-omap/dma.c                       |   13 ++--
 arch/arm/plat-omap/dmtimer.c                   |   28 ++++---
 arch/arm/plat-omap/gpio.c                      |   20 ++---
 arch/arm/plat-omap/include/mach/dmtimer.h      |    2 +-
 arch/arm/plat-omap/include/mach/eac.h          |  100 -----------------------
 arch/arm/plat-omap/include/mach/gpioexpander.h |   35 --------
 arch/arm/plat-omap/include/mach/irda.h         |    4 -
 arch/arm/plat-omap/include/mach/mmc.h          |    1 -
 arch/arm/plat-omap/include/mach/timer-gp.h     |   17 ++++
 drivers/mmc/host/omap.c                        |    2 -
 25 files changed, 128 insertions(+), 444 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/mach/eac.h
 delete mode 100644 arch/arm/plat-omap/include/mach/gpioexpander.h
 create mode 100644 arch/arm/plat-omap/include/mach/timer-gp.h

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: git pull request for omap fixes, v2 (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1)
  2009-04-17  1:23 ` git pull request for omap fixes (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1) Tony Lindgren
@ 2009-04-21  4:57   ` Tony Lindgren
  2009-04-21 15:55     ` Tony Lindgren
  0 siblings, 1 reply; 21+ messages in thread
From: Tony Lindgren @ 2009-04-21  4:57 UTC (permalink / raw)
  To: Russell King; +Cc: linux-arm-kernel, linux-omap

[-- Attachment #1: Type: text/plain, Size: 469 bytes --]

* Tony Lindgren <tony@atomide.com> [090416 18:23]:
> * Tony Lindgren <tony@atomide.com> [090414 14:48]:
> > Hi all,
> > 
> > Here are some omap fixes for review.
> 
> Also merged in Paul's clock fixes posted here earlier.
> 
> Russell, here's the pull request for you.

I merged in Paul's updated patch "OMAP2/3 GPTIMER: allow system tick
GPTIMER to be changed in board-*.c files".

The diff to earlier series and the updated pull request are attached.

Cheers,

Tony


[-- Attachment #2: compile-fix.patch --]
[-- Type: text/x-diff, Size: 589 bytes --]

Index: linux-omap-2.6/arch/arm/mach-omap2/clock24xx.h
===================================================================
--- linux-omap-2.6.orig/arch/arm/mach-omap2/clock24xx.h	2009-04-20 10:42:21.000000000 -0700
+++ linux-omap-2.6/arch/arm/mach-omap2/clock24xx.h	2009-04-20 10:46:09.000000000 -0700
@@ -625,8 +625,8 @@ static struct clk func_32k_ck = {
 	.clkdm_name	= "wkup_clkdm",
 };
 
-static struct clk secure_32k_fck = {
-	.name		= "secure_32k_fck",
+static struct clk secure_32k_ck = {
+	.name		= "secure_32k_ck",
 	.ops		= &clkops_null,
 	.rate		= 32768,
 	.flags		= RATE_FIXED,

[-- Attachment #3: pull.txt --]
[-- Type: text/plain, Size: 3294 bytes --]

The following changes since commit 0882e8dd3aad33eca41696d463bb896e6c8817eb:
  Linus Torvalds (1):
        Linux 2.6.30-rc2

are available in the git repository at:

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

Arun KS (1):
      OMAP1: clock: Typo fix for clock in omap1

Huang Weiyi (1):
      ARM: OMAP3: remove duplicated #include

Jarkko Nikula (1):
      ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC

Kevin Hilman (2):
      ARM: OMAP2/3: GPIO: do not attempt to wake-enable
      OMAP: dmtimer: enable all timers to be wakeup events

Ladislav Michl (3):
      ARM: OMAP: MMC: Remove unused power_pin
      ARM: OMAP1: Simplify board-h2 MMC setup
      ARM: OMAP1: Fix mmc_set_power GPIO usage

Paul Walmsley (4):
      OMAP2xxx clock: init osc_ck, sys_ck internal lists early
      OMAP2xxx clock: fix broken cpu_mask code
      OMAP3 GPTIMER: fix GPTIMER12 IRQ
      OMAP2/3 GPTIMER: allow system tick GPTIMER to be changed in board-*.c files

Roel Kluin (1):
      ARM: OMAP2: possible division by 0

Roger Quadros (2):
      ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts
      ARM: OMAP3: Clean up spurious interrupt check logic

Santosh Shilimkar (1):
      ARM: OMAP: Fix for possible race condition in omap_free_dma()

Sergio Aguirre (1):
      OMAP3: clock: Camera module doesn't have IDLEST bit

Tony Lindgren (2):
      ARM: OMAP: Remove old dead gpio expander code
      Merge branch 'omap-clock-fixes' into omap-fixes

 arch/arm/mach-omap1/board-h2-mmc.c             |   14 +---
 arch/arm/mach-omap1/board-h3-mmc.c             |    6 +-
 arch/arm/mach-omap1/board-h3.c                 |  101 ------------------------
 arch/arm/mach-omap1/board-nokia770.c           |    6 +-
 arch/arm/mach-omap1/mcbsp.c                    |    4 +-
 arch/arm/mach-omap2/board-h4.c                 |   95 ----------------------
 arch/arm/mach-omap2/board-omap3beagle.c        |    4 +
 arch/arm/mach-omap2/board-rx51.c               |    1 -
 arch/arm/mach-omap2/clock24xx.c                |   15 ++--
 arch/arm/mach-omap2/clock24xx.h                |   10 ++-
 arch/arm/mach-omap2/clock34xx.h                |    7 +-
 arch/arm/mach-omap2/devices.c                  |   33 --------
 arch/arm/mach-omap2/irq.c                      |    4 +-
 arch/arm/mach-omap2/timer-gp.c                 |   48 +++++++++++-
 arch/arm/mach-omap2/usb-tusb6010.c             |    2 +-
 arch/arm/plat-omap/dma.c                       |   13 ++--
 arch/arm/plat-omap/dmtimer.c                   |   28 ++++---
 arch/arm/plat-omap/gpio.c                      |   20 ++---
 arch/arm/plat-omap/include/mach/dmtimer.h      |    2 +-
 arch/arm/plat-omap/include/mach/eac.h          |  100 -----------------------
 arch/arm/plat-omap/include/mach/gpioexpander.h |   35 --------
 arch/arm/plat-omap/include/mach/irda.h         |    4 -
 arch/arm/plat-omap/include/mach/mmc.h          |    1 -
 arch/arm/plat-omap/include/mach/timer-gp.h     |   17 ++++
 drivers/mmc/host/omap.c                        |    2 -
 25 files changed, 128 insertions(+), 444 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/mach/eac.h
 delete mode 100644 arch/arm/plat-omap/include/mach/gpioexpander.h
 create mode 100644 arch/arm/plat-omap/include/mach/timer-gp.h

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: git pull request for omap fixes, v2 (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1)
  2009-04-21  4:57   ` git pull request for omap fixes, v2 " Tony Lindgren
@ 2009-04-21 15:55     ` Tony Lindgren
  2009-04-23 18:20       ` git pull request for omap fixes, v3 " Tony Lindgren
  0 siblings, 1 reply; 21+ messages in thread
From: Tony Lindgren @ 2009-04-21 15:55 UTC (permalink / raw)
  To: Russell King; +Cc: linux-arm-kernel, linux-omap

* Tony Lindgren <tony@atomide.com> [090420 21:58]:
> * Tony Lindgren <tony@atomide.com> [090416 18:23]:
> > * Tony Lindgren <tony@atomide.com> [090414 14:48]:
> > > Hi all,
> > > 
> > > Here are some omap fixes for review.
> > 
> > Also merged in Paul's clock fixes posted here earlier.
> > 
> > Russell, here's the pull request for you.
> 
> I merged in Paul's updated patch "OMAP2/3 GPTIMER: allow system tick
> GPTIMER to be changed in board-*.c files".
> 
> The diff to earlier series and the updated pull request are attached.

FYI, there's also a compile fix for omap3 boards coming via the USB list:

http://marc.info/?l=linux-usb&m=124024994725512&w=2




> 
> Cheers,
> 
> Tony
> 

> Index: linux-omap-2.6/arch/arm/mach-omap2/clock24xx.h
> ===================================================================
> --- linux-omap-2.6.orig/arch/arm/mach-omap2/clock24xx.h	2009-04-20 10:42:21.000000000 -0700
> +++ linux-omap-2.6/arch/arm/mach-omap2/clock24xx.h	2009-04-20 10:46:09.000000000 -0700
> @@ -625,8 +625,8 @@ static struct clk func_32k_ck = {
>  	.clkdm_name	= "wkup_clkdm",
>  };
>  
> -static struct clk secure_32k_fck = {
> -	.name		= "secure_32k_fck",
> +static struct clk secure_32k_ck = {
> +	.name		= "secure_32k_ck",
>  	.ops		= &clkops_null,
>  	.rate		= 32768,
>  	.flags		= RATE_FIXED,

> The following changes since commit 0882e8dd3aad33eca41696d463bb896e6c8817eb:
>   Linus Torvalds (1):
>         Linux 2.6.30-rc2
> 
> are available in the git repository at:
> 
>   master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git omap-fixes
> 
> Arun KS (1):
>       OMAP1: clock: Typo fix for clock in omap1
> 
> Huang Weiyi (1):
>       ARM: OMAP3: remove duplicated #include
> 
> Jarkko Nikula (1):
>       ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC
> 
> Kevin Hilman (2):
>       ARM: OMAP2/3: GPIO: do not attempt to wake-enable
>       OMAP: dmtimer: enable all timers to be wakeup events
> 
> Ladislav Michl (3):
>       ARM: OMAP: MMC: Remove unused power_pin
>       ARM: OMAP1: Simplify board-h2 MMC setup
>       ARM: OMAP1: Fix mmc_set_power GPIO usage
> 
> Paul Walmsley (4):
>       OMAP2xxx clock: init osc_ck, sys_ck internal lists early
>       OMAP2xxx clock: fix broken cpu_mask code
>       OMAP3 GPTIMER: fix GPTIMER12 IRQ
>       OMAP2/3 GPTIMER: allow system tick GPTIMER to be changed in board-*.c files
> 
> Roel Kluin (1):
>       ARM: OMAP2: possible division by 0
> 
> Roger Quadros (2):
>       ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts
>       ARM: OMAP3: Clean up spurious interrupt check logic
> 
> Santosh Shilimkar (1):
>       ARM: OMAP: Fix for possible race condition in omap_free_dma()
> 
> Sergio Aguirre (1):
>       OMAP3: clock: Camera module doesn't have IDLEST bit
> 
> Tony Lindgren (2):
>       ARM: OMAP: Remove old dead gpio expander code
>       Merge branch 'omap-clock-fixes' into omap-fixes
> 
>  arch/arm/mach-omap1/board-h2-mmc.c             |   14 +---
>  arch/arm/mach-omap1/board-h3-mmc.c             |    6 +-
>  arch/arm/mach-omap1/board-h3.c                 |  101 ------------------------
>  arch/arm/mach-omap1/board-nokia770.c           |    6 +-
>  arch/arm/mach-omap1/mcbsp.c                    |    4 +-
>  arch/arm/mach-omap2/board-h4.c                 |   95 ----------------------
>  arch/arm/mach-omap2/board-omap3beagle.c        |    4 +
>  arch/arm/mach-omap2/board-rx51.c               |    1 -
>  arch/arm/mach-omap2/clock24xx.c                |   15 ++--
>  arch/arm/mach-omap2/clock24xx.h                |   10 ++-
>  arch/arm/mach-omap2/clock34xx.h                |    7 +-
>  arch/arm/mach-omap2/devices.c                  |   33 --------
>  arch/arm/mach-omap2/irq.c                      |    4 +-
>  arch/arm/mach-omap2/timer-gp.c                 |   48 +++++++++++-
>  arch/arm/mach-omap2/usb-tusb6010.c             |    2 +-
>  arch/arm/plat-omap/dma.c                       |   13 ++--
>  arch/arm/plat-omap/dmtimer.c                   |   28 ++++---
>  arch/arm/plat-omap/gpio.c                      |   20 ++---
>  arch/arm/plat-omap/include/mach/dmtimer.h      |    2 +-
>  arch/arm/plat-omap/include/mach/eac.h          |  100 -----------------------
>  arch/arm/plat-omap/include/mach/gpioexpander.h |   35 --------
>  arch/arm/plat-omap/include/mach/irda.h         |    4 -
>  arch/arm/plat-omap/include/mach/mmc.h          |    1 -
>  arch/arm/plat-omap/include/mach/timer-gp.h     |   17 ++++
>  drivers/mmc/host/omap.c                        |    2 -
>  25 files changed, 128 insertions(+), 444 deletions(-)
>  delete mode 100644 arch/arm/plat-omap/include/mach/eac.h
>  delete mode 100644 arch/arm/plat-omap/include/mach/gpioexpander.h
>  create mode 100644 arch/arm/plat-omap/include/mach/timer-gp.h


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: git pull request for omap fixes, v3 (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1)
  2009-04-21 15:55     ` Tony Lindgren
@ 2009-04-23 18:20       ` Tony Lindgren
  2009-04-24 17:53         ` git pull request for omap fixes, v4 " Tony Lindgren
  0 siblings, 1 reply; 21+ messages in thread
From: Tony Lindgren @ 2009-04-23 18:20 UTC (permalink / raw)
  To: Russell King; +Cc: linux-arm-kernel, linux-omap

[-- Attachment #1: Type: text/plain, Size: 936 bytes --]

* Tony Lindgren <tony@atomide.com> [090421 08:55]:
> * Tony Lindgren <tony@atomide.com> [090420 21:58]:
> > * Tony Lindgren <tony@atomide.com> [090416 18:23]:
> > > * Tony Lindgren <tony@atomide.com> [090414 14:48]:
> > > > Hi all,
> > > > 
> > > > Here are some omap fixes for review.
> > > 
> > > Also merged in Paul's clock fixes posted here earlier.
> > > 
> > > Russell, here's the pull request for you.
> > 
> > I merged in Paul's updated patch "OMAP2/3 GPTIMER: allow system tick
> > GPTIMER to be changed in board-*.c files".
> > 
> > The diff to earlier series and the updated pull request are attached.

I've updated the omap-fixes branch again with Paul's change to
"OMAP2xxx clock: pre-initialize struct clks early" patch as posted
on this mailing list.

Updated pull request below.

Tony
 
> FYI, there's also a compile fix for omap3 boards coming via the USB list:
> 
> http://marc.info/?l=linux-usb&m=124024994725512&w=2

[-- Attachment #2: pull.txt --]
[-- Type: text/plain, Size: 3522 bytes --]

The following changes since commit 091069740304c979f957ceacec39c461d0192158:
  Linus Torvalds (1):
        Linux 2.6.30-rc3

are available in the git repository at:

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

Arun KS (1):
      OMAP1: clock: Typo fix for clock in omap1

Huang Weiyi (1):
      ARM: OMAP3: remove duplicated #include

Jarkko Nikula (1):
      ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC

Kevin Hilman (2):
      OMAP: dmtimer: enable all timers to be wakeup events
      ARM: OMAP2/3: GPIO: do not attempt to wake-enable

Ladislav Michl (3):
      ARM: OMAP: MMC: Remove unused power_pin
      ARM: OMAP1: Simplify board-h2 MMC setup
      ARM: OMAP1: Fix mmc_set_power GPIO usage

Paul Walmsley (4):
      OMAP2xxx clock: pre-initialize struct clks early
      OMAP2xxx clock: fix broken cpu_mask code
      OMAP3 GPTIMER: fix GPTIMER12 IRQ
      OMAP2/3 GPTIMER: allow system tick GPTIMER to be changed in board-*.c files

Roel Kluin (1):
      ARM: OMAP2: possible division by 0

Roger Quadros (2):
      ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts
      ARM: OMAP3: Clean up spurious interrupt check logic

Santosh Shilimkar (1):
      ARM: OMAP: Fix for possible race condition in omap_free_dma()

Sergio Aguirre (1):
      OMAP3: clock: Camera module doesn't have IDLEST bit

Tony Lindgren (2):
      ARM: OMAP: Remove old dead gpio expander code
      Merge branch 'omap-clock-fixes' into omap-fixes

 arch/arm/mach-omap1/board-h2-mmc.c             |   14 +---
 arch/arm/mach-omap1/board-h3-mmc.c             |    6 +-
 arch/arm/mach-omap1/board-h3.c                 |  101 ------------------------
 arch/arm/mach-omap1/board-nokia770.c           |    6 +-
 arch/arm/mach-omap1/clock.c                    |    2 +-
 arch/arm/mach-omap1/mcbsp.c                    |    4 +-
 arch/arm/mach-omap2/board-h4.c                 |   95 ----------------------
 arch/arm/mach-omap2/board-omap3beagle.c        |    4 +
 arch/arm/mach-omap2/board-rx51.c               |    1 -
 arch/arm/mach-omap2/clock24xx.c                |   19 ++---
 arch/arm/mach-omap2/clock24xx.h                |   10 ++-
 arch/arm/mach-omap2/clock34xx.c                |    2 +-
 arch/arm/mach-omap2/clock34xx.h                |    7 +-
 arch/arm/mach-omap2/devices.c                  |   33 --------
 arch/arm/mach-omap2/irq.c                      |    4 +-
 arch/arm/mach-omap2/timer-gp.c                 |   48 +++++++++++-
 arch/arm/mach-omap2/usb-tusb6010.c             |    2 +-
 arch/arm/plat-omap/clock.c                     |    9 ++-
 arch/arm/plat-omap/dma.c                       |   13 ++--
 arch/arm/plat-omap/dmtimer.c                   |   28 ++++---
 arch/arm/plat-omap/gpio.c                      |   20 ++---
 arch/arm/plat-omap/include/mach/clock.h        |    2 +-
 arch/arm/plat-omap/include/mach/dmtimer.h      |    2 +-
 arch/arm/plat-omap/include/mach/eac.h          |  100 -----------------------
 arch/arm/plat-omap/include/mach/gpioexpander.h |   35 --------
 arch/arm/plat-omap/include/mach/irda.h         |    4 -
 arch/arm/plat-omap/include/mach/mmc.h          |    1 -
 arch/arm/plat-omap/include/mach/timer-gp.h     |   17 ++++
 drivers/mmc/host/omap.c                        |    2 -
 29 files changed, 140 insertions(+), 451 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/mach/eac.h
 delete mode 100644 arch/arm/plat-omap/include/mach/gpioexpander.h
 create mode 100644 arch/arm/plat-omap/include/mach/timer-gp.h

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: git pull request for omap fixes, v4 (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1)
  2009-04-23 18:20       ` git pull request for omap fixes, v3 " Tony Lindgren
@ 2009-04-24 17:53         ` Tony Lindgren
  2009-04-24 21:16           ` Russell King - ARM Linux
  0 siblings, 1 reply; 21+ messages in thread
From: Tony Lindgren @ 2009-04-24 17:53 UTC (permalink / raw)
  To: Russell King; +Cc: linux-arm-kernel, linux-omap

[-- Attachment #1: Type: text/plain, Size: 955 bytes --]

* Tony Lindgren <tony@atomide.com> [090423 11:21]:
> * Tony Lindgren <tony@atomide.com> [090421 08:55]:
> > * Tony Lindgren <tony@atomide.com> [090420 21:58]:
> > > * Tony Lindgren <tony@atomide.com> [090416 18:23]:
> > > > * Tony Lindgren <tony@atomide.com> [090414 14:48]:
> > > > > Hi all,
> > > > > 
> > > > > Here are some omap fixes for review.
> > > > 
> > > > Also merged in Paul's clock fixes posted here earlier.
> > > > 
> > > > Russell, here's the pull request for you.
> > > 
> > > I merged in Paul's updated patch "OMAP2/3 GPTIMER: allow system tick
> > > GPTIMER to be changed in board-*.c files".
> > > 
> > > The diff to earlier series and the updated pull request are attached.
> 
> I've updated the omap-fixes branch again with Paul's change to
> "OMAP2xxx clock: pre-initialize struct clks early" patch as posted
> on this mailing list.
> 
> Updated pull request below.

Updated the same patch again. Updated pull request below.

Tony

[-- Attachment #2: pull.txt --]
[-- Type: text/plain, Size: 3347 bytes --]

The following changes since commit 091069740304c979f957ceacec39c461d0192158:
  Linus Torvalds (1):
        Linux 2.6.30-rc3

are available in the git repository at:

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

Arun KS (1):
      OMAP1: clock: Typo fix for clock in omap1

Huang Weiyi (1):
      ARM: OMAP3: remove duplicated #include

Jarkko Nikula (1):
      ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC

Kevin Hilman (2):
      ARM: OMAP2/3: GPIO: do not attempt to wake-enable
      OMAP: dmtimer: enable all timers to be wakeup events

Ladislav Michl (3):
      ARM: OMAP: MMC: Remove unused power_pin
      ARM: OMAP1: Simplify board-h2 MMC setup
      ARM: OMAP1: Fix mmc_set_power GPIO usage

Paul Walmsley (4):
      OMAP2xxx clock: pre-initialize struct clks early
      OMAP2xxx clock: fix broken cpu_mask code
      OMAP3 GPTIMER: fix GPTIMER12 IRQ
      OMAP2/3 GPTIMER: allow system tick GPTIMER to be changed in board-*.c files

Roel Kluin (1):
      ARM: OMAP2: possible division by 0

Roger Quadros (2):
      ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts
      ARM: OMAP3: Clean up spurious interrupt check logic

Santosh Shilimkar (1):
      ARM: OMAP: Fix for possible race condition in omap_free_dma()

Sergio Aguirre (1):
      OMAP3: clock: Camera module doesn't have IDLEST bit

Tony Lindgren (2):
      ARM: OMAP: Remove old dead gpio expander code
      Merge branch 'omap-clock-fixes' into omap-fixes

 arch/arm/mach-omap1/board-h2-mmc.c             |   14 +---
 arch/arm/mach-omap1/board-h3-mmc.c             |    6 +-
 arch/arm/mach-omap1/board-h3.c                 |  101 ------------------------
 arch/arm/mach-omap1/board-nokia770.c           |    6 +-
 arch/arm/mach-omap1/mcbsp.c                    |    4 +-
 arch/arm/mach-omap2/board-h4.c                 |   95 ----------------------
 arch/arm/mach-omap2/board-omap3beagle.c        |    4 +
 arch/arm/mach-omap2/board-rx51.c               |    1 -
 arch/arm/mach-omap2/clock24xx.c                |   19 ++---
 arch/arm/mach-omap2/clock24xx.h                |   10 ++-
 arch/arm/mach-omap2/clock34xx.h                |    7 +-
 arch/arm/mach-omap2/devices.c                  |   33 --------
 arch/arm/mach-omap2/irq.c                      |    4 +-
 arch/arm/mach-omap2/timer-gp.c                 |   48 +++++++++++-
 arch/arm/mach-omap2/usb-tusb6010.c             |    2 +-
 arch/arm/plat-omap/clock.c                     |    7 ++
 arch/arm/plat-omap/dma.c                       |   13 ++--
 arch/arm/plat-omap/dmtimer.c                   |   28 ++++---
 arch/arm/plat-omap/gpio.c                      |   20 ++---
 arch/arm/plat-omap/include/mach/dmtimer.h      |    2 +-
 arch/arm/plat-omap/include/mach/eac.h          |  100 -----------------------
 arch/arm/plat-omap/include/mach/gpioexpander.h |   35 --------
 arch/arm/plat-omap/include/mach/irda.h         |    4 -
 arch/arm/plat-omap/include/mach/mmc.h          |    1 -
 arch/arm/plat-omap/include/mach/timer-gp.h     |   17 ++++
 drivers/mmc/host/omap.c                        |    2 -
 26 files changed, 136 insertions(+), 447 deletions(-)
 delete mode 100644 arch/arm/plat-omap/include/mach/eac.h
 delete mode 100644 arch/arm/plat-omap/include/mach/gpioexpander.h
 create mode 100644 arch/arm/plat-omap/include/mach/timer-gp.h

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: git pull request for omap fixes, v4 (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1)
  2009-04-24 17:53         ` git pull request for omap fixes, v4 " Tony Lindgren
@ 2009-04-24 21:16           ` Russell King - ARM Linux
  2009-04-24 21:33             ` Tony Lindgren
  0 siblings, 1 reply; 21+ messages in thread
From: Russell King - ARM Linux @ 2009-04-24 21:16 UTC (permalink / raw)
  To: Tony Lindgren; +Cc: linux-arm-kernel, linux-omap

On Fri, Apr 24, 2009 at 10:53:08AM -0700, Tony Lindgren wrote:
> Updated the same patch again. Updated pull request below.

Pulled.  Will probably go upstream in about 6 days time.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: git pull request for omap fixes, v4 (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1)
  2009-04-24 21:16           ` Russell King - ARM Linux
@ 2009-04-24 21:33             ` Tony Lindgren
  0 siblings, 0 replies; 21+ messages in thread
From: Tony Lindgren @ 2009-04-24 21:33 UTC (permalink / raw)
  To: Russell King - ARM Linux; +Cc: linux-arm-kernel, linux-omap

* Russell King - ARM Linux <linux@arm.linux.org.uk> [090424 14:16]:
> On Fri, Apr 24, 2009 at 10:53:08AM -0700, Tony Lindgren wrote:
> > Updated the same patch again. Updated pull request below.
> 
> Pulled.  Will probably go upstream in about 6 days time.

OK & thanks.

Tony

^ permalink raw reply	[flat|nested] 21+ messages in thread

* RE: [PATCH 08/11] ARM: OMAP2/3: GPIO: do not attempt to wake-enable
  2009-04-14 21:58 ` [PATCH 08/11] ARM: OMAP2/3: GPIO: do not attempt to wake-enable Tony Lindgren
@ 2009-05-18 19:50   ` Hunter, Jon
  2009-05-21 15:53     ` Kevin Hilman
  0 siblings, 1 reply; 21+ messages in thread
From: Hunter, Jon @ 2009-05-18 19:50 UTC (permalink / raw)
  To: Kevin Hilman; +Cc: linux-omap, Tony Lindgren

Hi Kevin,

> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
> Signed-off-by: Tony Lindgren <tony@atomide.com>
> ---
>  arch/arm/plat-omap/gpio.c |   14 ++++----------
>  1 files changed, 4 insertions(+), 10 deletions(-)
> 
> diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
> index d3fa41e..210a1c0 100644
> --- a/arch/arm/plat-omap/gpio.c
> +++ b/arch/arm/plat-omap/gpio.c
> @@ -921,13 +921,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank,
> int gpio, int enable)
>  	case METHOD_MPUIO:
>  	case METHOD_GPIO_1610:
>  		spin_lock_irqsave(&bank->lock, flags);
> -		if (enable) {
> +		if (enable)
>  			bank->suspend_wakeup |= (1 << gpio);
> -			enable_irq_wake(bank->irq);
> -		} else {
> -			disable_irq_wake(bank->irq);
> +		else
>  			bank->suspend_wakeup &= ~(1 << gpio);
> -		}
>  		spin_unlock_irqrestore(&bank->lock, flags);
>  		return 0;
>  #endif
> @@ -940,13 +937,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank,
> int gpio, int enable)
>  			return -EINVAL;
>  		}
>  		spin_lock_irqsave(&bank->lock, flags);
> -		if (enable) {
> +		if (enable)
>  			bank->suspend_wakeup |= (1 << gpio);
> -			enable_irq_wake(bank->irq);
> -		} else {
> -			disable_irq_wake(bank->irq);
> +		else
>  			bank->suspend_wakeup &= ~(1 << gpio);
> -		}
>  		spin_unlock_irqrestore(&bank->lock, flags);
>  		return 0;
>  #endif


I have been looking into an issue that appears to be related to this. I have the following questions with regard to this patch. 

1). Although, I agree with the above change was there any reason why we did not add some code to set/clear the appropriate bit in the WKUENA register in this function? If this function is called via a call to set_irq_wake it will not modify the WKUENA register. Therefore, we were thinking of something along the lines of:

diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 17d7afe..895c548 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -941,10 +941,13 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
                        return -EINVAL;
                }
                spin_lock_irqsave(&bank->lock, flags);
-               if (enable)
+               if (enable) {
                        bank->suspend_wakeup |= (1 << gpio);
-               else
+                       __raw_writel(1 << gpio, bank->base + OMAP24XX_GPIO_SETWKUENA);
+               } else {
+                       __raw_writel(1 << gpio, bank->base + OMAP24XX_GPIO_CLEARWKUENA);
                        bank->suspend_wakeup &= ~(1 << gpio);
+               }
                spin_unlock_irqrestore(&bank->lock, flags);
                return 0;
 #endif


2). We have found that a call to request_irq results in a call to the function "set_24xx_gpio_triggering()" (for OMAP3430). In addition to configuring the triggering for a given GPIO, this function is also programming the WKUENA register. Hence, the wake-up enable is enabled for GPIO without calling set_irq_wake(). 

I am not sure if this is the intended behaviour or if drivers should explicitly be calling set_irq_wake to enable/disable the wake-up. 

The other problem with this is that once request_irq is called for a gpio, then even if we call disable_irq the wake-up event is not cleared. So this means that a gpio event will still wake-up the device without the gpio being enabled and because the gpio is disabled the event will never be cleared and hence will prevent retention. 

So should the wake-up event only be enabled/disabled by a call to set_irq_wake() or should we make sure that calling disable_irq in turn calls gpio_mask_irq and make sure this clears the wake-up event? 

Cheers
Jon

^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH 08/11] ARM: OMAP2/3: GPIO: do not attempt to wake-enable
  2009-05-18 19:50   ` Hunter, Jon
@ 2009-05-21 15:53     ` Kevin Hilman
  0 siblings, 0 replies; 21+ messages in thread
From: Kevin Hilman @ 2009-05-21 15:53 UTC (permalink / raw)
  To: Hunter, Jon; +Cc: linux-omap, Tony Lindgren

"Hunter, Jon" <jon-hunter@ti.com> writes:

> Hi Kevin,
>
>> Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
>> Signed-off-by: Tony Lindgren <tony@atomide.com>
>> ---
>>  arch/arm/plat-omap/gpio.c |   14 ++++----------
>>  1 files changed, 4 insertions(+), 10 deletions(-)
>> 
>> diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
>> index d3fa41e..210a1c0 100644
>> --- a/arch/arm/plat-omap/gpio.c
>> +++ b/arch/arm/plat-omap/gpio.c
>> @@ -921,13 +921,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank,
>> int gpio, int enable)
>>  	case METHOD_MPUIO:
>>  	case METHOD_GPIO_1610:
>>  		spin_lock_irqsave(&bank->lock, flags);
>> -		if (enable) {
>> +		if (enable)
>>  			bank->suspend_wakeup |= (1 << gpio);
>> -			enable_irq_wake(bank->irq);
>> -		} else {
>> -			disable_irq_wake(bank->irq);
>> +		else
>>  			bank->suspend_wakeup &= ~(1 << gpio);
>> -		}
>>  		spin_unlock_irqrestore(&bank->lock, flags);
>>  		return 0;
>>  #endif
>> @@ -940,13 +937,10 @@ static int _set_gpio_wakeup(struct gpio_bank *bank,
>> int gpio, int enable)
>>  			return -EINVAL;
>>  		}
>>  		spin_lock_irqsave(&bank->lock, flags);
>> -		if (enable) {
>> +		if (enable)
>>  			bank->suspend_wakeup |= (1 << gpio);
>> -			enable_irq_wake(bank->irq);
>> -		} else {
>> -			disable_irq_wake(bank->irq);
>> +		else
>>  			bank->suspend_wakeup &= ~(1 << gpio);
>> -		}
>>  		spin_unlock_irqrestore(&bank->lock, flags);
>>  		return 0;
>>  #endif
>
>
> I have been looking into an issue that appears to be related to this. I have the following questions with regard to this patch. 
>
> 1). Although, I agree with the above change was there any reason why we did not add some code to set/clear the appropriate bit in the WKUENA register in this function? If this function is called via a call to set_irq_wake it will not modify the WKUENA register. Therefore, we were thinking of something along the lines of:
>
> diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
> index 17d7afe..895c548 100644
> --- a/arch/arm/plat-omap/gpio.c
> +++ b/arch/arm/plat-omap/gpio.c
> @@ -941,10 +941,13 @@ static int _set_gpio_wakeup(struct gpio_bank *bank, int gpio, int enable)
>                         return -EINVAL;
>                 }
>                 spin_lock_irqsave(&bank->lock, flags);
> -               if (enable)
> +               if (enable) {
>                         bank->suspend_wakeup |= (1 << gpio);
> -               else
> +                       __raw_writel(1 << gpio, bank->base + OMAP24XX_GPIO_SETWKUENA);
> +               } else {
> +                       __raw_writel(1 << gpio, bank->base + OMAP24XX_GPIO_CLEARWKUENA);
>                         bank->suspend_wakeup &= ~(1 << gpio);
> +               }
>                 spin_unlock_irqrestore(&bank->lock, flags);
>                 return 0;
>  #endif

You're right, ti doesn't enable the wakeup here, but it does
eventually get enabled in the suspend hook.  See the handling of the
bank->suspend_wakeup mask in the suspend hook.

This brings up an interesting point though that GPIO IRQs that are
configured as wakeups will cannot bring the system out of idle, but
can only bring the system out of suspend.

>
> 2). We have found that a call to request_irq results in a call to the function "set_24xx_gpio_triggering()" (for OMAP3430). In addition to configuring the triggering for a given GPIO, this function is also programming the WKUENA register. Hence, the wake-up enable is enabled for GPIO without calling set_irq_wake(). 
>
> I am not sure if this is the intended behaviour or if drivers should explicitly be calling set_irq_wake to enable/disable the wake-up. 

If a driver calls request_irq with one of the IRQF_TRIGGER* flags
(other than _NONE, see <linux/interrupt.h>), then the triggering code
should be called as internally, request_irq handles this.

If no IRQF_TRIGGER* flag is handed to request_irq() and the triggering
is still being enbabled, this is a bug.

> The other problem with this is that once request_irq is called for a
> gpio, then even if we call disable_irq the wake-up event is not
> cleared. So this means that a gpio event will still wake-up the
> device without the gpio being enabled and because the gpio is
> disabled the event will never be cleared and hence will prevent
> retention.
>
> So should the wake-up event only be enabled/disabled by a call to
> set_irq_wake() or should we make sure that calling disable_irq in
> turn calls gpio_mask_irq and make sure this clears the wake-up
> event?

IMHO, it should only be enabled/disabled by a call to *_irq_wake(), or
a request_irq with (flags & IRQF_TRIGGER_MASK) != 0

Kevin

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2009-05-21 15:53 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-04-14 21:47 [PATCH 00/11] Omap fixes for 2.6.30-rc1 Tony Lindgren
2009-04-14 21:49 ` [PATCH 01/11] ARM: OMAP: Fix for possible race condition in omap_free_dma() Tony Lindgren
2009-04-14 21:50 ` [PATCH 02/11] ARM: OMAP: Remove old dead gpio expander code Tony Lindgren
2009-04-14 21:51 ` [PATCH 03/11] ARM: OMAP: MMC: Remove unused power_pin Tony Lindgren
2009-04-14 21:53 ` [PATCH 04/11] ARM: OMAP1: Simplify board-h2 MMC setup Tony Lindgren
2009-04-14 21:54 ` [PATCH 05/11] ARM: OMAP1: Fix mmc_set_power GPIO usage Tony Lindgren
2009-04-14 21:55 ` [PATCH 06/11] ARM: OMAP2: Remove defines and resource init for OMAP24XX EAC Tony Lindgren
2009-04-14 21:57 ` [PATCH 07/11] ARM: OMAP2: possible division by 0 Tony Lindgren
2009-04-14 21:58 ` [PATCH 08/11] ARM: OMAP2/3: GPIO: do not attempt to wake-enable Tony Lindgren
2009-05-18 19:50   ` Hunter, Jon
2009-05-21 15:53     ` Kevin Hilman
2009-04-14 21:59 ` [PATCH 09/11] ARM: OMAP3: remove duplicated #include Tony Lindgren
2009-04-14 22:01 ` [PATCH 10/11] ARM: OMAP3: Fixed spurious IRQ issue for GPIO interrupts Tony Lindgren
2009-04-14 22:02 ` [PATCH 11/11] ARM: OMAP3: Clean up spurious interrupt check logic Tony Lindgren
2009-04-17  1:23 ` git pull request for omap fixes (Re: [PATCH 00/11] Omap fixes for 2.6.30-rc1) Tony Lindgren
2009-04-21  4:57   ` git pull request for omap fixes, v2 " Tony Lindgren
2009-04-21 15:55     ` Tony Lindgren
2009-04-23 18:20       ` git pull request for omap fixes, v3 " Tony Lindgren
2009-04-24 17:53         ` git pull request for omap fixes, v4 " Tony Lindgren
2009-04-24 21:16           ` Russell King - ARM Linux
2009-04-24 21:33             ` Tony Lindgren

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.