All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dirk Behme <dirk.behme@googlemail.com>
To: linux-omap-open-source@linux.omap.com
Subject: [PATCH] Convert drivers to new irq trigger modes
Date: Tue, 07 Feb 2006 18:32:58 +0100	[thread overview]
Message-ID: <43E8D9CA.8000204@gmail.com> (raw)

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


ARM: OMAP: Convert drivers to new irq trigger modes.

New way to handle irq trigger mode is to pass it as flag to
request_irq()  instead of using special ARM function
set_irq_mode().

Signed-off-by: Dirk Behme <dirk.behme_at_gmail.com>

[-- Attachment #2: new_irq_model.patch --]
[-- Type: text/x-patch, Size: 6000 bytes --]

--- ./drivers/i2c/chips/isp1301_omap.c_orig	2006-02-07 17:34:40.000000000 +0100
+++ ./drivers/i2c/chips/isp1301_omap.c	2006-02-07 18:03:24.000000000 +0100
@@ -60,6 +60,7 @@ struct isp1301 {
 	void			(*i2c_release)(struct device *dev);
 
 	int			irq;
+	int			irq_type;
 
 	u32			last_otg_ctrl;
 	unsigned		working:1;
@@ -1526,6 +1527,7 @@ static int isp1301_probe(struct i2c_adap
 	isp->timer.data = (unsigned long) isp;
 
 	isp->irq = -1;
+	isp->irq_type = SA_SAMPLE_RANDOM;
 	isp->client.addr = address;
 	i2c_set_clientdata(&isp->client, isp);
 	isp->client.adapter = bus;
@@ -1602,7 +1604,7 @@ fail1:
 		isp->irq = OMAP_GPIO_IRQ(2);
 		omap_request_gpio(2);
 		omap_set_gpio_direction(2, 1);
-		set_irq_type(isp->irq, IRQT_FALLING);
+		isp->irq_type = SA_TRIGGER_FALLING;
 	}
 
 	if (machine_is_omap_h3()) {
@@ -1611,11 +1613,11 @@ fail1:
 		isp->irq = OMAP_GPIO_IRQ(14);
 		omap_request_gpio(14);
 		omap_set_gpio_direction(14, 1);
-		set_irq_type(isp->irq, IRQT_FALLING);
+		isp->irq_type = SA_TRIGGER_FALLING;
 	}
 
 	status = request_irq(isp->irq, isp1301_irq,
-			SA_SAMPLE_RANDOM, DRIVER_NAME, isp);
+			isp->irq_type, DRIVER_NAME, isp);
 	if (status < 0) {
 		dev_dbg(&i2c->dev, "can't get IRQ %d, err %d\n",
 				isp->irq, status);
--- ./drivers/i2c/chips/tps65010.c_orig	2006-02-07 17:48:49.000000000 +0100
+++ ./drivers/i2c/chips/tps65010.c	2006-02-07 17:52:58.000000000 +0100
@@ -87,6 +87,7 @@ struct tps65010 {
 	struct i2c_client	client;
 	struct semaphore	lock;
 	int			irq;
+	int			irq_type;
 	struct work_struct	work;
 	struct dentry		*file;
 	unsigned		charging:1;
@@ -526,6 +527,8 @@ fail1:
 		return 0;
 	}
 
+	tps->irq_type = SA_SAMPLE_RANDOM;
+
 #ifdef	CONFIG_ARM
 	if (machine_is_omap_h2()) {
 		tps->model = TPS65010;
@@ -533,7 +536,7 @@ fail1:
 		tps->irq = OMAP_GPIO_IRQ(58);
 		omap_request_gpio(58);
 		omap_set_gpio_direction(58, 1);
-		set_irq_type(tps->irq, IRQT_FALLING);
+		tps->irq_type = SA_TRIGGER_FALLING;
 	}
 	if (machine_is_omap_osk()) {
 		tps->model = TPS65010;
@@ -541,21 +544,18 @@ fail1:
 		tps->irq = OMAP_GPIO_IRQ(OMAP_MPUIO(1));
 		omap_request_gpio(OMAP_MPUIO(1));
 		omap_set_gpio_direction(OMAP_MPUIO(1), 1);
-		set_irq_type(tps->irq, IRQT_FALLING);
+		tps->irq_type = SA_TRIGGER_FALLING;
 	}
 	if (machine_is_omap_h3()) {
 		tps->model = TPS65013;
 
 		// FIXME set up this board's IRQ ...
 	}
-#else
-#define set_irq_type(num,trigger)	do{}while(0)
 #endif
 
 	if (tps->irq > 0) {
-		set_irq_type(tps->irq, IRQT_LOW);
 		status = request_irq(tps->irq, tps65010_irq,
-			SA_SAMPLE_RANDOM, DRIVER_NAME, tps);
+			 tps->irq_type, DRIVER_NAME, tps);
 		if (status < 0) {
 			dev_dbg(&tps->client.dev, "can't get IRQ %d, err %d\n",
 					tps->irq, status);
--- ./drivers/mmc/omap.c_orig	2006-02-07 17:27:38.000000000 +0100
+++ ./drivers/mmc/omap.c	2006-02-07 17:30:27.000000000 +0100
@@ -1262,9 +1262,8 @@ static int __init mmc_omap_probe(struct 
 		}
 
 		omap_set_gpio_direction(host->switch_pin, 1);
-		set_irq_type(OMAP_GPIO_IRQ(host->switch_pin), IRQT_RISING);
 		ret = request_irq(OMAP_GPIO_IRQ(host->switch_pin),
-				  mmc_omap_switch_irq, 0, DRIVER_NAME, host);
+				  mmc_omap_switch_irq, SA_TRIGGER_RISING, DRIVER_NAME, host);
 		if (ret) {
 			printk(KERN_WARNING "MMC%d: Unable to get IRQ for MMC cover switch\n",
 			       host->id);
--- ./drivers/input/touchscreen/omap/omap_ts.c_orig	2006-02-07 17:44:24.000000000 +0100
+++ ./drivers/input/touchscreen/omap/omap_ts.c	2006-02-07 17:45:02.000000000 +0100
@@ -162,7 +162,7 @@ static int __init omap_ts_probe(struct p
 
 	/* request irq */
 	if (ts_omap.irq != -1) {
-		if (request_irq(ts_omap.irq, omap_ts_handler, 0,
+		if (request_irq(ts_omap.irq, omap_ts_handler, ts_omap.irq_type,
 				OMAP_TS_NAME, &ts_omap)) {
 			printk(KERN_ERR
 	  "omap_ts.c: Could not allocate touchscreen IRQ!\n");
--- ./drivers/input/touchscreen/omap/omap_ts.h_orig	2006-02-07 17:44:11.000000000 +0100
+++ ./drivers/input/touchscreen/omap/omap_ts.h	2006-02-07 17:45:28.000000000 +0100
@@ -46,6 +46,7 @@ struct omap_ts_t{
 	struct timer_list ts_timer;      // Timer for triggering acquisitions
 	int touched;
 	int irq;
+	int irq_type;
 	int irq_enabled;
 	struct ts_device *dev;
 	spinlock_t lock;
--- ./drivers/input/touchscreen/omap/ts_hx.c_orig	2006-02-07 17:43:20.000000000 +0100
+++ ./drivers/input/touchscreen/omap/ts_hx.c	2006-02-07 17:47:17.000000000 +0100
@@ -98,7 +98,7 @@ static int __init hx_ts_probe(struct oma
 	};
 
 	omap_set_gpio_direction(gpio, 1);
-	set_irq_type(ts->irq, IRQT_FALLING);
+	ts->irq_type = SA_TRIGGER_FALLING;
 	return 0;
 }
 
--- ./drivers/input/touchscreen/omap/ts_osk.c_orig	2006-02-07 17:43:43.000000000 +0100
+++ ./drivers/input/touchscreen/omap/ts_osk.c	2006-02-07 17:46:40.000000000 +0100
@@ -91,7 +91,7 @@ static int  __init osk_ts_probe(struct o
         omap_cfg_reg(P20_1610_GPIO4);
 	omap_request_gpio(4);
 	omap_set_gpio_direction(4, 1);
-	set_irq_type(OMAP_GPIO_IRQ(4), IRQT_FALLING);
+	ts->irq_type = SA_TRIGGER_FALLING;
 
 	ts->irq = PEN_IRQ;
 
--- ./drivers/input/touchscreen/omap/ts_inn1510.c_orig	2006-02-07 17:43:33.000000000 +0100
+++ ./drivers/input/touchscreen/omap/ts_inn1510.c	2006-02-07 17:53:40.000000000 +0100
@@ -176,6 +176,7 @@ static int __init inn1510_ts_probe(struc
 		return -ENODEV;
 
 	ts->irq = OMAP1510_INT_FPGA_TS;
+	ts->irq_type = SA_SAMPLE_RANDOM;
 	
 	return 0;
 }
--- ./drivers/input/keyboard/omap-keypad.c_orig	2006-02-07 17:32:10.000000000 +0100
+++ ./drivers/input/keyboard/omap-keypad.c	2006-02-07 17:33:32.000000000 +0100
@@ -365,10 +365,9 @@ static int __init omap_kp_probe(struct p
 		omap_writew(0, OMAP_MPUIO_BASE + OMAP_MPUIO_KBD_MASKIT);
 	} else {
 		for (i = 0; i < omap_kp->rows; i++) {
-			if (request_irq(OMAP_GPIO_IRQ(row_gpios[i]), omap_kp_interrupt, 0,
-						"omap-keypad", omap_kp) < 0)
+			if (request_irq(OMAP_GPIO_IRQ(row_gpios[i]), omap_kp_interrupt, 
+					SA_TRIGGER_FALLING, "omap-keypad", omap_kp) < 0)
 				return -EINVAL;
-			set_irq_type(OMAP_GPIO_IRQ(row_gpios[i]), IRQT_FALLING);
 		}
 	}
 







[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



             reply	other threads:[~2006-02-07 17:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-07 17:32 Dirk Behme [this message]
2006-02-07 23:16 ` [PATCH] Convert drivers to new irq trigger modes Tony Lindgren
2006-02-08  5:14 ` Juha Yrjölä
2006-02-08 19:10   ` Dirk Behme
2006-02-09  6:25     ` Juha Yrjölä
2006-02-12 15:43       ` Dirk Behme
2006-02-13  9:17         ` Juha Yrjölä

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=43E8D9CA.8000204@gmail.com \
    --to=dirk.behme@googlemail.com \
    --cc=linux-omap-open-source@linux.omap.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.