Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [RESEND PATCH 2/3] ARM: EXYNOS4: Update consistent DMA size to 8MB
From: Tushar Behera @ 2011-09-21  9:23 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <23185691.178841316589732769.JavaMail.weblogic@epv6ml02>

Hi,

On Wednesday 21 September 2011 12:52 PM, HATIMALI RV wrote:
> Hello Mr. Park,
>
> As I mentioned in the cover letter of v1 patch set (http://www.spinics.net/lists/arm-kernel/msg138054.html),
> this is a temporary patch which is just for testing HDMI on SMDKV310.
> Once CMA gets merged, we will be using that to allocate memory.
>
The macro definition CONSISTENT_DMA_SIZE has been removed and has been 
replaced by a function call. Please refer to this patch.

http://www.spinics.net/lists/linux-samsung-soc/msg06627.html

> Thanks for your review.
>
> Regards,
> Hatim Ali
>
> ------- Original Message -------
> Sender : Kyungmin Park<kmpark@infradead.org>
> Date   : Sep 21, 2011 11:55 (GMT+05:30)
> Title  : Re: [RESEND PATCH 2/3] ARM: EXYNOS4: Update consistent DMA size to 8MB
>
> Hi,
>
> As I know,  CONSISTENT_DMA_SIZE is removed, please use the updated APIs.
>
> Thank you,
> Kyungmin Park
>
> On Wed, Sep 21, 2011 at 2:44 PM, Hatim Ali<hatim.rv@samsung.com>  wrote:
>> Change the consistent DMA allocation to 8MB to support the
>> TVOUT driver.
>>
>> NOTE: Once CMA support is merged into mainline, we will use it for memory
>> allocation.
>>
>> Signed-off-by: Hatim Ali<hatim.rv@samsung.com>
>> ---
>>   arch/arm/mach-exynos4/include/mach/memory.h |    2 ++
>>   1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/mach-exynos4/include/mach/memory.h b/arch/arm/mach-exynos4/include/mach/memory.h
>> index 374ef2c..7549742 100644
>> --- a/arch/arm/mach-exynos4/include/mach/memory.h
>> +++ b/arch/arm/mach-exynos4/include/mach/memory.h
>> @@ -15,6 +15,8 @@
>>
>>   #define PLAT_PHYS_OFFSET               UL(0x40000000)
>>
>> +#define CONSISTENT_DMA_SIZE            SZ_8M
>> +
>>   /* Maximum of 256MiB in one bank */
>>   #define MAX_PHYSMEM_BITS       32
>>   #define SECTION_SIZE_BITS      28
>> --
>> 1.7.2.3
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> N?????r??y????b?X????v?^?)??{.n?+????{?????x,????\x17????}???? z?&j:+v???\a????zZ+??+zf???h???~????i???z?
?w?????????&?)??^[fl===


-- 
Tushar Behera

^ permalink raw reply

* [PATCH 24/57] SCSI: irq: Remove IRQF_DISABLED
From: Yong Zhang @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-1-git-send-email-yong.zhang0@gmail.com>

Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
We run all interrupt handlers with interrupts disabled
and we even check and yell when an interrupt handler
returns with interrupts enabled (see commit [b738a50a:
genirq: Warn when handler enables interrupts]).

So now this flag is a NOOP and can be removed.

Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
---
 drivers/scsi/NCR5380.c            |    2 +-
 drivers/scsi/aacraid/rx.c         |    2 +-
 drivers/scsi/aacraid/sa.c         |    2 +-
 drivers/scsi/aacraid/src.c        |    2 +-
 drivers/scsi/aha152x.c            |    4 ++--
 drivers/scsi/aic7xxx_old.c        |    2 +-
 drivers/scsi/arm/acornscsi.c      |    2 +-
 drivers/scsi/arm/cumana_1.c       |    2 +-
 drivers/scsi/arm/cumana_2.c       |    2 +-
 drivers/scsi/arm/powertec.c       |    2 +-
 drivers/scsi/dtc.c                |    2 +-
 drivers/scsi/eata.c               |    2 +-
 drivers/scsi/eata_pio.c           |    4 ++--
 drivers/scsi/g_NCR5380.c          |    2 +-
 drivers/scsi/gdth.c               |    6 +++---
 drivers/scsi/hpsa.c               |    4 ++--
 drivers/scsi/ibmvscsi/ibmvstgt.c  |    2 +-
 drivers/scsi/in2000.c             |    2 +-
 drivers/scsi/initio.c             |    2 +-
 drivers/scsi/pas16.c              |    2 +-
 drivers/scsi/pm8001/pm8001_init.c |    4 +---
 drivers/scsi/t128.c               |    2 +-
 drivers/scsi/u14-34f.c            |    2 +-
 drivers/scsi/wd7000.c             |    2 +-
 24 files changed, 29 insertions(+), 31 deletions(-)

diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
index 165e4dd86..9f6de17 100644
--- a/drivers/scsi/NCR5380.c
+++ b/drivers/scsi/NCR5380.c
@@ -584,7 +584,7 @@ static int __init __maybe_unused NCR5380_probe_irq(struct Scsi_Host *instance,
 	NCR5380_setup(instance);
 
 	for (trying_irqs = i = 0, mask = 1; i < 16; ++i, mask <<= 1)
-		if ((mask & possible) && (request_irq(i, &probe_intr, IRQF_DISABLED, "NCR-probe", NULL) == 0))
+		if ((mask & possible) && (request_irq(i, &probe_intr, 0, "NCR-probe", NULL) == 0))
 			trying_irqs |= mask;
 
 	timeout = jiffies + (250 * HZ / 1000);
diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c
index ce530f1..d1e2a2a 100644
--- a/drivers/scsi/aacraid/rx.c
+++ b/drivers/scsi/aacraid/rx.c
@@ -645,7 +645,7 @@ int _aac_rx_init(struct aac_dev *dev)
 	aac_adapter_comm(dev, dev->comm_interface);
 	dev->msi = aac_msi && !pci_enable_msi(dev->pdev);
 	if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr,
-			IRQF_SHARED|IRQF_DISABLED, "aacraid", dev) < 0) {
+			IRQF_SHARED, "aacraid", dev) < 0) {
 		if (dev->msi)
 			pci_disable_msi(dev->pdev);
 		printk(KERN_ERR "%s%d: Interrupt unavailable.\n",
diff --git a/drivers/scsi/aacraid/sa.c b/drivers/scsi/aacraid/sa.c
index e5d4457..c3e1f6b 100644
--- a/drivers/scsi/aacraid/sa.c
+++ b/drivers/scsi/aacraid/sa.c
@@ -386,7 +386,7 @@ int aac_sa_init(struct aac_dev *dev)
 	if(aac_init_adapter(dev) == NULL)
 		goto error_irq;
 	if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr,
-			IRQF_SHARED|IRQF_DISABLED,
+			IRQF_SHARED,
 			"aacraid", (void *)dev ) < 0) {
 		printk(KERN_WARNING "%s%d: Interrupt unavailable.\n",
 			name, instance);
diff --git a/drivers/scsi/aacraid/src.c b/drivers/scsi/aacraid/src.c
index 957595a..68374e4 100644
--- a/drivers/scsi/aacraid/src.c
+++ b/drivers/scsi/aacraid/src.c
@@ -565,7 +565,7 @@ int aac_src_init(struct aac_dev *dev)
 	dev->msi = aac_msi && !pci_enable_msi(dev->pdev);
 
 	if (request_irq(dev->pdev->irq, dev->a_ops.adapter_intr,
-			IRQF_SHARED|IRQF_DISABLED, "aacraid", dev) < 0) {
+			IRQF_SHARED, "aacraid", dev) < 0) {
 
 		if (dev->msi)
 			pci_disable_msi(dev->pdev);
diff --git a/drivers/scsi/aha152x.c b/drivers/scsi/aha152x.c
index f17c92c..46e7a53 100644
--- a/drivers/scsi/aha152x.c
+++ b/drivers/scsi/aha152x.c
@@ -858,7 +858,7 @@ struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *setup)
 	SETPORT(SIMODE0, 0);
 	SETPORT(SIMODE1, 0);
 
-	if( request_irq(shpnt->irq, swintr, IRQF_DISABLED|IRQF_SHARED, "aha152x", shpnt) ) {
+	if( request_irq(shpnt->irq, swintr, IRQF_SHARED, "aha152x", shpnt) ) {
 		printk(KERN_ERR "aha152x%d: irq %d busy.\n", shpnt->host_no, shpnt->irq);
 		goto out_host_put;
 	}
@@ -892,7 +892,7 @@ struct Scsi_Host *aha152x_probe_one(struct aha152x_setup *setup)
 	SETPORT(SSTAT0, 0x7f);
 	SETPORT(SSTAT1, 0xef);
 
-	if ( request_irq(shpnt->irq, intr, IRQF_DISABLED|IRQF_SHARED, "aha152x", shpnt) ) {
+	if ( request_irq(shpnt->irq, intr, IRQF_SHARED, "aha152x", shpnt) ) {
 		printk(KERN_ERR "aha152x%d: failed to reassign irq %d.\n", shpnt->host_no, shpnt->irq);
 		goto out_host_put;
 	}
diff --git a/drivers/scsi/aic7xxx_old.c b/drivers/scsi/aic7xxx_old.c
index 5b212f0..c3499dd 100644
--- a/drivers/scsi/aic7xxx_old.c
+++ b/drivers/scsi/aic7xxx_old.c
@@ -8306,7 +8306,7 @@ aic7xxx_register(struct scsi_host_template *template, struct aic7xxx_host *p,
               "aic7xxx", p));
     if (result < 0)
     {
-      result = (request_irq(p->irq, do_aic7xxx_isr, IRQF_DISABLED | IRQF_SHARED,
+      result = (request_irq(p->irq, do_aic7xxx_isr, IRQF_SHARED,
               "aic7xxx", p));
     }
   }
diff --git a/drivers/scsi/arm/acornscsi.c b/drivers/scsi/arm/acornscsi.c
index c454e44..d58ea8e 100644
--- a/drivers/scsi/arm/acornscsi.c
+++ b/drivers/scsi/arm/acornscsi.c
@@ -2997,7 +2997,7 @@ acornscsi_probe(struct expansion_card *ec, const struct ecard_id *id)
 	ec->irqaddr	= ashost->fast + INT_REG;
 	ec->irqmask	= 0x0a;
 
-	ret = request_irq(host->irq, acornscsi_intr, IRQF_DISABLED, "acornscsi", ashost);
+	ret = request_irq(host->irq, acornscsi_intr, 0, "acornscsi", ashost);
 	if (ret) {
 		printk(KERN_CRIT "scsi%d: IRQ%d not free: %d\n",
 			host->host_no, ashost->scsi.irq, ret);
diff --git a/drivers/scsi/arm/cumana_1.c b/drivers/scsi/arm/cumana_1.c
index a3398fe..c5f46ba 100644
--- a/drivers/scsi/arm/cumana_1.c
+++ b/drivers/scsi/arm/cumana_1.c
@@ -264,7 +264,7 @@ cumanascsi1_probe(struct expansion_card *ec, const struct ecard_id *id)
 		goto out_unmap;
 	}
 
-	ret = request_irq(host->irq, cumanascsi_intr, IRQF_DISABLED,
+	ret = request_irq(host->irq, cumanascsi_intr, 0,
 			  "CumanaSCSI-1", host);
 	if (ret) {
 		printk("scsi%d: IRQ%d not free: %d\n",
diff --git a/drivers/scsi/arm/cumana_2.c b/drivers/scsi/arm/cumana_2.c
index 547987b..084ed7b 100644
--- a/drivers/scsi/arm/cumana_2.c
+++ b/drivers/scsi/arm/cumana_2.c
@@ -456,7 +456,7 @@ cumanascsi2_probe(struct expansion_card *ec, const struct ecard_id *id)
 		goto out_free;
 
 	ret = request_irq(ec->irq, cumanascsi_2_intr,
-			  IRQF_DISABLED, "cumanascsi2", info);
+			  0, "cumanascsi2", info);
 	if (ret) {
 		printk("scsi%d: IRQ%d not free: %d\n",
 		       host->host_no, ec->irq, ret);
diff --git a/drivers/scsi/arm/powertec.c b/drivers/scsi/arm/powertec.c
index 9274c06..49ac0c2 100644
--- a/drivers/scsi/arm/powertec.c
+++ b/drivers/scsi/arm/powertec.c
@@ -369,7 +369,7 @@ powertecscsi_probe(struct expansion_card *ec, const struct ecard_id *id)
 		goto out_free;
 
 	ret = request_irq(ec->irq, powertecscsi_intr,
-			  IRQF_DISABLED, "powertec", info);
+			  0, "powertec", info);
 	if (ret) {
 		printk("scsi%d: IRQ%d not free: %d\n",
 		       host->host_no, ec->irq, ret);
diff --git a/drivers/scsi/dtc.c b/drivers/scsi/dtc.c
index c2677ba..c77c820 100644
--- a/drivers/scsi/dtc.c
+++ b/drivers/scsi/dtc.c
@@ -277,7 +277,7 @@ found:
 		/* With interrupts enabled, it will sometimes hang when doing heavy
 		 * reads. So better not enable them until I finger it out. */
 		if (instance->irq != SCSI_IRQ_NONE)
-			if (request_irq(instance->irq, dtc_intr, IRQF_DISABLED,
+			if (request_irq(instance->irq, dtc_intr, 0,
 					"dtc", instance)) {
 				printk(KERN_ERR "scsi%d : IRQ%d not free, interrupts disabled\n", instance->host_no, instance->irq);
 				instance->irq = SCSI_IRQ_NONE;
diff --git a/drivers/scsi/eata.c b/drivers/scsi/eata.c
index 94de889..bc2e02e 100644
--- a/drivers/scsi/eata.c
+++ b/drivers/scsi/eata.c
@@ -1221,7 +1221,7 @@ static int port_detect(unsigned long port_base, unsigned int j,
 
 	/* Board detected, allocate its IRQ */
 	if (request_irq(irq, do_interrupt_handler,
-			IRQF_DISABLED | ((subversion == ESA) ? IRQF_SHARED : 0),
+			((subversion == ESA) ? IRQF_SHARED : 0),
 			driver_name, (void *)&sha[j])) {
 		printk("%s: unable to allocate IRQ %u, detaching.\n", name,
 		       irq);
diff --git a/drivers/scsi/eata_pio.c b/drivers/scsi/eata_pio.c
index d5f8362..dcc9820 100644
--- a/drivers/scsi/eata_pio.c
+++ b/drivers/scsi/eata_pio.c
@@ -723,7 +723,7 @@ static int register_pio_HBA(long base, struct get_conf *gc, struct pci_dev *pdev
 		return 0;
 
 	if (!reg_IRQ[gc->IRQ]) {	/* Interrupt already registered ? */
-		if (!request_irq(gc->IRQ, do_eata_pio_int_handler, IRQF_DISABLED, "EATA-PIO", sh)) {
+		if (!request_irq(gc->IRQ, do_eata_pio_int_handler, 0, "EATA-PIO", sh)) {
 			reg_IRQ[gc->IRQ]++;
 			if (!gc->IRQ_TR)
 				reg_IRQL[gc->IRQ] = 1;	/* IRQ is edge triggered */
@@ -957,7 +957,7 @@ static int eata_pio_detect(struct scsi_host_template *tpnt)
 
 	for (i = 0; i <= MAXIRQ; i++)
 		if (reg_IRQ[i])
-			request_irq(i, do_eata_pio_int_handler, IRQF_DISABLED, "EATA-PIO", NULL);
+			request_irq(i, do_eata_pio_int_handler, 0, "EATA-PIO", NULL);
 
 	HBA_ptr = first_HBA;
 
diff --git a/drivers/scsi/g_NCR5380.c b/drivers/scsi/g_NCR5380.c
index 81182ba..72cf40f 100644
--- a/drivers/scsi/g_NCR5380.c
+++ b/drivers/scsi/g_NCR5380.c
@@ -462,7 +462,7 @@ int __init generic_NCR5380_detect(struct scsi_host_template * tpnt)
 
 		if (instance->irq != SCSI_IRQ_NONE)
 			if (request_irq(instance->irq, generic_NCR5380_intr,
-					IRQF_DISABLED, "NCR5380", instance)) {
+					0, "NCR5380", instance)) {
 				printk(KERN_WARNING "scsi%d : IRQ%d not free, interrupts disabled\n", instance->host_no, instance->irq);
 				instance->irq = SCSI_IRQ_NONE;
 			}
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c
index 3242bca..045cc61 100644
--- a/drivers/scsi/gdth.c
+++ b/drivers/scsi/gdth.c
@@ -4718,7 +4718,7 @@ static int __init gdth_isa_probe_one(u32 isa_bios)
 	printk("Configuring GDT-ISA HA at BIOS 0x%05X IRQ %u DRQ %u\n",
 		isa_bios, ha->irq, ha->drq);
 
-	error = request_irq(ha->irq, gdth_interrupt, IRQF_DISABLED, "gdth", ha);
+	error = request_irq(ha->irq, gdth_interrupt, 0, "gdth", ha);
 	if (error) {
 		printk("GDT-ISA: Unable to allocate IRQ\n");
 		goto out_host_put;
@@ -4850,7 +4850,7 @@ static int __init gdth_eisa_probe_one(u16 eisa_slot)
 	printk("Configuring GDT-EISA HA at Slot %d IRQ %u\n",
 		eisa_slot >> 12, ha->irq);
 
-	error = request_irq(ha->irq, gdth_interrupt, IRQF_DISABLED, "gdth", ha);
+	error = request_irq(ha->irq, gdth_interrupt, 0, "gdth", ha);
 	if (error) {
 		printk("GDT-EISA: Unable to allocate IRQ\n");
 		goto out_host_put;
@@ -4987,7 +4987,7 @@ static int __devinit gdth_pci_probe_one(gdth_pci_str *pcistr,
 		ha->irq);
 
 	error = request_irq(ha->irq, gdth_interrupt,
-				IRQF_DISABLED|IRQF_SHARED, "gdth", ha);
+				IRQF_SHARED, "gdth", ha);
 	if (error) {
 		printk("GDT-PCI: Unable to allocate IRQ\n");
 		goto out_host_put;
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index b200b73..444ea3b 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -4025,10 +4025,10 @@ static int hpsa_request_irq(struct ctlr_info *h,
 
 	if (h->msix_vector || h->msi_vector)
 		rc = request_irq(h->intr[h->intr_mode], msixhandler,
-				IRQF_DISABLED, h->devname, h);
+				0, h->devname, h);
 	else
 		rc = request_irq(h->intr[h->intr_mode], intxhandler,
-				IRQF_DISABLED, h->devname, h);
+				0, h->devname, h);
 	if (rc) {
 		dev_err(&h->pdev->dev, "unable to get irq %d for %s\n",
 		       h->intr[h->intr_mode], h->devname);
diff --git a/drivers/scsi/ibmvscsi/ibmvstgt.c b/drivers/scsi/ibmvscsi/ibmvstgt.c
index 2256bab..41d42f2 100644
--- a/drivers/scsi/ibmvscsi/ibmvstgt.c
+++ b/drivers/scsi/ibmvscsi/ibmvstgt.c
@@ -589,7 +589,7 @@ static int crq_queue_create(struct crq_queue *queue, struct srp_target *target)
 	}
 
 	err = request_irq(vport->dma_dev->irq, &ibmvstgt_interrupt,
-			  IRQF_DISABLED, "ibmvstgt", target);
+			  0, "ibmvstgt", target);
 	if (err)
 		goto req_irq_failed;
 
diff --git a/drivers/scsi/in2000.c b/drivers/scsi/in2000.c
index 112f1be..1efb20b 100644
--- a/drivers/scsi/in2000.c
+++ b/drivers/scsi/in2000.c
@@ -2016,7 +2016,7 @@ static int __init in2000_detect(struct scsi_host_template * tpnt)
 		write1_io(0, IO_FIFO_READ);	/* start fifo out in read mode */
 		write1_io(0, IO_INTR_MASK);	/* allow all ints */
 		x = int_tab[(switches & (SW_INT0 | SW_INT1)) >> SW_INT_SHIFT];
-		if (request_irq(x, in2000_intr, IRQF_DISABLED, "in2000", instance)) {
+		if (request_irq(x, in2000_intr, 0, "in2000", instance)) {
 			printk("in2000_detect: Unable to allocate IRQ.\n");
 			detect_count--;
 			continue;
diff --git a/drivers/scsi/initio.c b/drivers/scsi/initio.c
index dd741bc..4c80c7d 100644
--- a/drivers/scsi/initio.c
+++ b/drivers/scsi/initio.c
@@ -2931,7 +2931,7 @@ static int initio_probe_one(struct pci_dev *pdev,
 	shost->base = host->addr;
 	shost->sg_tablesize = TOTAL_SG_ENTRY;
 
-	error = request_irq(pdev->irq, i91u_intr, IRQF_DISABLED|IRQF_SHARED, "i91u", shost);
+	error = request_irq(pdev->irq, i91u_intr, IRQF_SHARED, "i91u", shost);
 	if (error < 0) {
 		printk(KERN_WARNING "initio: Unable to request IRQ %d\n", pdev->irq);
 		goto out_free_scbs;
diff --git a/drivers/scsi/pas16.c b/drivers/scsi/pas16.c
index f2018b4..e75d43d 100644
--- a/drivers/scsi/pas16.c
+++ b/drivers/scsi/pas16.c
@@ -453,7 +453,7 @@ int __init pas16_detect(struct scsi_host_template * tpnt)
 	    instance->irq = NCR5380_probe_irq(instance, PAS16_IRQS);
 
 	if (instance->irq != SCSI_IRQ_NONE) 
-	    if (request_irq(instance->irq, pas16_intr, IRQF_DISABLED,
+	    if (request_irq(instance->irq, pas16_intr, 0,
 			    "pas16", instance)) {
 		printk("scsi%d : IRQ%d not free, interrupts disabled\n", 
 		    instance->host_no, instance->irq);
diff --git a/drivers/scsi/pm8001/pm8001_init.c b/drivers/scsi/pm8001/pm8001_init.c
index 172cefb..d148ba3 100644
--- a/drivers/scsi/pm8001/pm8001_init.c
+++ b/drivers/scsi/pm8001/pm8001_init.c
@@ -553,12 +553,10 @@ static u32 pm8001_setup_msix(struct pm8001_hba_info *pm8001_ha,
 {
 	u32 i = 0, j = 0;
 	u32 number_of_intr = 1;
-	int flag = 0;
 	u32 max_entry;
 	int rc;
 	max_entry = sizeof(pm8001_ha->msix_entries) /
 		sizeof(pm8001_ha->msix_entries[0]);
-	flag |= IRQF_DISABLED;
 	for (i = 0; i < max_entry ; i++)
 		pm8001_ha->msix_entries[i].entry = i;
 	rc = pci_enable_msix(pm8001_ha->pdev, pm8001_ha->msix_entries,
@@ -567,7 +565,7 @@ static u32 pm8001_setup_msix(struct pm8001_hba_info *pm8001_ha,
 	if (!rc) {
 		for (i = 0; i < number_of_intr; i++) {
 			if (request_irq(pm8001_ha->msix_entries[i].vector,
-				irq_handler, flag, DRV_NAME,
+				irq_handler, 0, DRV_NAME,
 				SHOST_TO_SAS_HA(pm8001_ha->shost))) {
 				for (j = 0; j < i; j++)
 					free_irq(
diff --git a/drivers/scsi/t128.c b/drivers/scsi/t128.c
index 041eaaa..d9142a2 100644
--- a/drivers/scsi/t128.c
+++ b/drivers/scsi/t128.c
@@ -259,7 +259,7 @@ found:
 	    instance->irq = NCR5380_probe_irq(instance, T128_IRQS);
 
 	if (instance->irq != SCSI_IRQ_NONE) 
-	    if (request_irq(instance->irq, t128_intr, IRQF_DISABLED, "t128",
+	    if (request_irq(instance->irq, t128_intr, 0, "t128",
 			    instance)) {
 		printk("scsi%d : IRQ%d not free, interrupts disabled\n", 
 		    instance->host_no, instance->irq);
diff --git a/drivers/scsi/u14-34f.c b/drivers/scsi/u14-34f.c
index 90e104d..5c50f9c 100644
--- a/drivers/scsi/u14-34f.c
+++ b/drivers/scsi/u14-34f.c
@@ -874,7 +874,7 @@ static int port_detect \
 
    /* Board detected, allocate its IRQ */
    if (request_irq(irq, do_interrupt_handler,
-             IRQF_DISABLED | ((subversion == ESA) ? IRQF_SHARED : 0),
+             ((subversion == ESA) ? IRQF_SHARED : 0),
              driver_name, (void *) &sha[j])) {
       printk("%s: unable to allocate IRQ %u, detaching.\n", name, irq);
       goto freelock;
diff --git a/drivers/scsi/wd7000.c b/drivers/scsi/wd7000.c
index 9ee0afe..8cab246 100644
--- a/drivers/scsi/wd7000.c
+++ b/drivers/scsi/wd7000.c
@@ -1253,7 +1253,7 @@ static int wd7000_init(Adapter * host)
 		return 0;
 
 
-	if (request_irq(host->irq, wd7000_intr, IRQF_DISABLED, "wd7000", host)) {
+	if (request_irq(host->irq, wd7000_intr, 0, "wd7000", host)) {
 		printk("wd7000_init: can't get IRQ %d.\n", host->irq);
 		return (0);
 	}
-- 
1.7.4.1

^ permalink raw reply related

* [GIT PULL] omap cleanup part1 for v3.2 merge window
From: Arnd Bergmann @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <201109202346.11393.arnd@arndb.de>

On Tuesday 20 September 2011 23:46:11 Arnd Bergmann wrote:

> It seems that you replace the #ifdef in the board-flash.c file
> with a similar #ifdef in the header that replaces this with an
> empty inline function when the object is not built.

Found another similar problem over night, presumably in the voltage series:

arch/arm/mach-omap2/built-in.o: In function `pwrdm_register_pwrdms':
twl-common.c:(.text+0x5e20): undefined reference to `voltdm_lookup'
twl-common.c:(.text+0x5e40): undefined reference to `voltdm_add_pwrdm'
arch/arm/mach-omap2/built-in.o: In function `omap2_init_common_infrastructure':
twl-common.c:(.init.text+0x3a4): undefined reference to `omap2xxx_voltagedomains_init'
twl-common.c:(.init.text+0x3c8): undefined reference to `omap3xxx_voltagedomains_init'
arch/arm/mach-omap2/built-in.o: In function `omap2_set_init_voltage':
twl-common.c:(.init.text+0x13c8): undefined reference to `voltdm_lookup'
arch/arm/mach-omap2/built-in.o: In function `omap3_twl_init':
twl-common.c:(.init.text+0x1f44): undefined reference to `voltdm_lookup'
twl-common.c:(.init.text+0x1f4c): undefined reference to `voltdm_lookup'

	Arnd

^ permalink raw reply

* [PATCH 30/57] dmaengine: irq: Remove IRQF_DISABLED
From: Yong Zhang @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-1-git-send-email-yong.zhang0@gmail.com>

Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
We run all interrupt handlers with interrupts disabled
and we even check and yell when an interrupt handler
returns with interrupts enabled (see commit [b738a50a:
genirq: Warn when handler enables interrupts]).

So now this flag is a NOOP and can be removed.

Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
Acked-by: Vinod Koul <vinod.koul@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/dma/amba-pl08x.c |    2 +-
 drivers/dma/coh901318.c  |    2 +-
 drivers/dma/shdma.c      |    4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/dma/amba-pl08x.c b/drivers/dma/amba-pl08x.c
index cd8df7f..5337b69 100644
--- a/drivers/dma/amba-pl08x.c
+++ b/drivers/dma/amba-pl08x.c
@@ -1866,7 +1866,7 @@ static int pl08x_probe(struct amba_device *adev, const struct amba_id *id)
 	writel(0x000000FF, pl08x->base + PL080_ERR_CLEAR);
 	writel(0x000000FF, pl08x->base + PL080_TC_CLEAR);
 
-	ret = request_irq(adev->irq[0], pl08x_irq, IRQF_DISABLED,
+	ret = request_irq(adev->irq[0], pl08x_irq, 0,
 			  DRIVER_NAME, pl08x);
 	if (ret) {
 		dev_err(&adev->dev, "%s failed to request interrupt %d\n",
diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c
index 4234f41..1dd9455 100644
--- a/drivers/dma/coh901318.c
+++ b/drivers/dma/coh901318.c
@@ -1506,7 +1506,7 @@ static int __init coh901318_probe(struct platform_device *pdev)
 	if (irq < 0)
 		goto err_no_irq;
 
-	err = request_irq(irq, dma_irq_handler, IRQF_DISABLED,
+	err = request_irq(irq, dma_irq_handler, 0,
 			  "coh901318", base);
 	if (err) {
 		dev_crit(&pdev->dev,
diff --git a/drivers/dma/shdma.c b/drivers/dma/shdma.c
index 7f49235..8c137d2 100644
--- a/drivers/dma/shdma.c
+++ b/drivers/dma/shdma.c
@@ -1106,7 +1106,7 @@ static void sh_dmae_chan_remove(struct sh_dmae_device *shdev)
 static int __init sh_dmae_probe(struct platform_device *pdev)
 {
 	struct sh_dmae_pdata *pdata = pdev->dev.platform_data;
-	unsigned long irqflags = IRQF_DISABLED,
+	unsigned long irqflags = 0,
 		chan_flag[SH_DMAC_MAX_CHANNELS] = {};
 	int errirq, chan_irq[SH_DMAC_MAX_CHANNELS];
 	int err, i, irq_cnt = 0, irqres = 0, irq_cap = 0;
@@ -1266,7 +1266,7 @@ static int __init sh_dmae_probe(struct platform_device *pdev)
 				    IORESOURCE_IRQ_SHAREABLE)
 					chan_flag[irq_cnt] = IRQF_SHARED;
 				else
-					chan_flag[irq_cnt] = IRQF_DISABLED;
+					chan_flag[irq_cnt] = 0;
 				dev_dbg(&pdev->dev,
 					"Found IRQ %d for channel %d\n",
 					i, irq_cnt);
-- 
1.7.4.1

^ permalink raw reply related

* [PATCH 32/57] i2c: irq: Remove IRQF_DISABLED
From: Yong Zhang @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-1-git-send-email-yong.zhang0@gmail.com>

Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
We run all interrupt handlers with interrupts disabled
and we even check and yell when an interrupt handler
returns with interrupts enabled (see commit [b738a50a:
genirq: Warn when handler enables interrupts]).

So now this flag is a NOOP and can be removed.

Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Barry Song <21cnbao@gmail.com>
---
 drivers/i2c/busses/i2c-bfin-twi.c   |    4 ++--
 drivers/i2c/busses/i2c-designware.c |    2 +-
 drivers/i2c/busses/i2c-highlander.c |    2 +-
 drivers/i2c/busses/i2c-nomadik.c    |    2 +-
 drivers/i2c/busses/i2c-nuc900.c     |    2 +-
 drivers/i2c/busses/i2c-pmcmsp.c     |    2 +-
 drivers/i2c/busses/i2c-s3c2410.c    |    2 +-
 drivers/i2c/busses/i2c-sh7760.c     |    2 +-
 drivers/i2c/busses/i2c-sh_mobile.c  |    2 +-
 drivers/i2c/busses/i2c-stu300.c     |    2 +-
 10 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/drivers/i2c/busses/i2c-bfin-twi.c b/drivers/i2c/busses/i2c-bfin-twi.c
index cbc98ae..cdb59e5 100644
--- a/drivers/i2c/busses/i2c-bfin-twi.c
+++ b/drivers/i2c/busses/i2c-bfin-twi.c
@@ -631,7 +631,7 @@ static int i2c_bfin_twi_resume(struct platform_device *pdev)
 	struct bfin_twi_iface *iface = platform_get_drvdata(pdev);
 
 	int rc = request_irq(iface->irq, bfin_twi_interrupt_entry,
-		IRQF_DISABLED, pdev->name, iface);
+		0, pdev->name, iface);
 	if (rc) {
 		dev_err(&pdev->dev, "Can't get IRQ %d !\n", iface->irq);
 		return -ENODEV;
@@ -702,7 +702,7 @@ static int i2c_bfin_twi_probe(struct platform_device *pdev)
 	}
 
 	rc = request_irq(iface->irq, bfin_twi_interrupt_entry,
-		IRQF_DISABLED, pdev->name, iface);
+		0, pdev->name, iface);
 	if (rc) {
 		dev_err(&pdev->dev, "Can't get IRQ %d !\n", iface->irq);
 		rc = -ENODEV;
diff --git a/drivers/i2c/busses/i2c-designware.c b/drivers/i2c/busses/i2c-designware.c
index 1b42b50..2ac1903 100644
--- a/drivers/i2c/busses/i2c-designware.c
+++ b/drivers/i2c/busses/i2c-designware.c
@@ -755,7 +755,7 @@ static int __devinit dw_i2c_probe(struct platform_device *pdev)
 	i2c_dw_init(dev);
 
 	writel(0, dev->base + DW_IC_INTR_MASK); /* disable IRQ */
-	r = request_irq(dev->irq, i2c_dw_isr, IRQF_DISABLED, pdev->name, dev);
+	r = request_irq(dev->irq, i2c_dw_isr, 0, pdev->name, dev);
 	if (r) {
 		dev_err(&pdev->dev, "failure requesting irq %i\n", dev->irq);
 		goto err_iounmap;
diff --git a/drivers/i2c/busses/i2c-highlander.c b/drivers/i2c/busses/i2c-highlander.c
index 3876a24..63bb1cc 100644
--- a/drivers/i2c/busses/i2c-highlander.c
+++ b/drivers/i2c/busses/i2c-highlander.c
@@ -387,7 +387,7 @@ static int __devinit highlander_i2c_probe(struct platform_device *pdev)
 		dev->irq = 0;
 
 	if (dev->irq) {
-		ret = request_irq(dev->irq, highlander_i2c_irq, IRQF_DISABLED,
+		ret = request_irq(dev->irq, highlander_i2c_irq, 0,
 				  pdev->name, dev);
 		if (unlikely(ret))
 			goto err_unmap;
diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c
index b228e09..40702e8 100644
--- a/drivers/i2c/busses/i2c-nomadik.c
+++ b/drivers/i2c/busses/i2c-nomadik.c
@@ -935,7 +935,7 @@ static int __devinit nmk_i2c_probe(struct platform_device *pdev)
 	}
 
 	dev->irq = platform_get_irq(pdev, 0);
-	ret = request_irq(dev->irq, i2c_irq_handler, IRQF_DISABLED,
+	ret = request_irq(dev->irq, i2c_irq_handler, 0,
 				DRIVER_NAME, dev);
 	if (ret) {
 		dev_err(&pdev->dev, "cannot claim the irq %d\n", dev->irq);
diff --git a/drivers/i2c/busses/i2c-nuc900.c b/drivers/i2c/busses/i2c-nuc900.c
index 7243426..835e47b 100644
--- a/drivers/i2c/busses/i2c-nuc900.c
+++ b/drivers/i2c/busses/i2c-nuc900.c
@@ -610,7 +610,7 @@ static int __devinit nuc900_i2c_probe(struct platform_device *pdev)
 		goto err_iomap;
 	}
 
-	ret = request_irq(i2c->irq, nuc900_i2c_irq, IRQF_DISABLED | IRQF_SHARED,
+	ret = request_irq(i2c->irq, nuc900_i2c_irq, IRQF_SHARED,
 			  dev_name(&pdev->dev), i2c);
 
 	if (ret != 0) {
diff --git a/drivers/i2c/busses/i2c-pmcmsp.c b/drivers/i2c/busses/i2c-pmcmsp.c
index dfa7ae9..127051b 100644
--- a/drivers/i2c/busses/i2c-pmcmsp.c
+++ b/drivers/i2c/busses/i2c-pmcmsp.c
@@ -306,7 +306,7 @@ static int __devinit pmcmsptwi_probe(struct platform_device *pldev)
 	pmcmsptwi_data.irq = platform_get_irq(pldev, 0);
 	if (pmcmsptwi_data.irq) {
 		rc = request_irq(pmcmsptwi_data.irq, &pmcmsptwi_interrupt,
-			IRQF_SHARED | IRQF_DISABLED | IRQF_SAMPLE_RANDOM,
+			IRQF_SHARED | IRQF_SAMPLE_RANDOM,
 			pldev->name, &pmcmsptwi_data);
 		if (rc == 0) {
 			/*
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c
index 9c00ad1..2754cef 100644
--- a/drivers/i2c/busses/i2c-s3c2410.c
+++ b/drivers/i2c/busses/i2c-s3c2410.c
@@ -980,7 +980,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
 		goto err_iomap;
 	}
 
-	ret = request_irq(i2c->irq, s3c24xx_i2c_irq, IRQF_DISABLED,
+	ret = request_irq(i2c->irq, s3c24xx_i2c_irq, 0,
 			  dev_name(&pdev->dev), i2c);
 
 	if (ret != 0) {
diff --git a/drivers/i2c/busses/i2c-sh7760.c b/drivers/i2c/busses/i2c-sh7760.c
index 4cd0a1d..a67132b 100644
--- a/drivers/i2c/busses/i2c-sh7760.c
+++ b/drivers/i2c/busses/i2c-sh7760.c
@@ -503,7 +503,7 @@ static int __devinit sh7760_i2c_probe(struct platform_device *pdev)
 	}
 	OUT32(id, I2CCCR, ret);
 
-	if (request_irq(id->irq, sh7760_i2c_irq, IRQF_DISABLED,
+	if (request_irq(id->irq, sh7760_i2c_irq, 0,
 			SH7760_I2C_DEVNAME, id)) {
 		dev_err(&pdev->dev, "cannot get irq %d\n", id->irq);
 		ret = -EBUSY;
diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c
index f633a53..675c969 100644
--- a/drivers/i2c/busses/i2c-sh_mobile.c
+++ b/drivers/i2c/busses/i2c-sh_mobile.c
@@ -543,7 +543,7 @@ static int sh_mobile_i2c_hook_irqs(struct platform_device *dev, int hook)
 
 	while ((res = platform_get_resource(dev, IORESOURCE_IRQ, k))) {
 		for (n = res->start; hook && n <= res->end; n++) {
-			if (request_irq(n, sh_mobile_i2c_isr, IRQF_DISABLED,
+			if (request_irq(n, sh_mobile_i2c_isr, 0,
 					dev_name(&dev->dev), dev)) {
 				for (n--; n >= res->start; n--)
 					free_irq(n, dev);
diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c
index 9987961..4d44af1 100644
--- a/drivers/i2c/busses/i2c-stu300.c
+++ b/drivers/i2c/busses/i2c-stu300.c
@@ -916,7 +916,7 @@ stu300_probe(struct platform_device *pdev)
 	}
 
 	dev->irq = platform_get_irq(pdev, 0);
-	if (request_irq(dev->irq, stu300_irh, IRQF_DISABLED,
+	if (request_irq(dev->irq, stu300_irh, 0,
 			NAME, dev)) {
 		ret = -EIO;
 		goto err_no_irq;
-- 
1.7.4.1

^ permalink raw reply related

* [PATCH 02/11] at91/boards: use -1 for invalid gpio
From: Nicolas Ferre @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316436695-19194-2-git-send-email-plagnioj@jcrosoft.com>

Le 19/09/2011 14:51, Jean-Christophe PLAGNIOL-VILLARD :
> this will allow to use gpio_is_valid
> 
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>

[..]

> ---
>  34 files changed, 141 insertions(+), 50 deletions(-)
> 
> diff --git a/arch/arm/mach-at91/board-1arm.c b/arch/arm/mach-at91/board-1arm.c
> index 5aa5885..17d9163 100644
> --- a/arch/arm/mach-at91/board-1arm.c
> +++ b/arch/arm/mach-at91/board-1arm.c
> @@ -70,6 +70,7 @@ static struct at91_eth_data __initdata onearm_eth_data = {
>  
>  static struct at91_usbh_data __initdata onearm_usbh_data = {
>  	.ports		= 1,
> +	.vbus_pin	= {-1, -1},

I would prefer to use "-EINVAL" as stated in the documentation.

Best regards,
-- 
Nicolas Ferre

^ permalink raw reply

* [PATCH 46/57] rtc: irq: Remove IRQF_DISABLED
From: Yong Zhang @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-1-git-send-email-yong.zhang0@gmail.com>

Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
We run all interrupt handlers with interrupts disabled
and we even check and yell when an interrupt handler
returns with interrupts enabled (see commit [b738a50a:
genirq: Warn when handler enables interrupts]).

So now this flag is a NOOP and can be removed.

Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/rtc/rtc-at91sam9.c  |    2 +-
 drivers/rtc/rtc-cmos.c      |    2 +-
 drivers/rtc/rtc-coh901331.c |    2 +-
 drivers/rtc/rtc-davinci.c   |    2 +-
 drivers/rtc/rtc-ds1511.c    |    2 +-
 drivers/rtc/rtc-ds1553.c    |    2 +-
 drivers/rtc/rtc-lpc32xx.c   |    2 +-
 drivers/rtc/rtc-mpc5121.c   |    4 ++--
 drivers/rtc/rtc-mrst.c      |    2 +-
 drivers/rtc/rtc-mv.c        |    2 +-
 drivers/rtc/rtc-nuc900.c    |    2 +-
 drivers/rtc/rtc-omap.c      |    4 ++--
 drivers/rtc/rtc-pl030.c     |    2 +-
 drivers/rtc/rtc-pl031.c     |    2 +-
 drivers/rtc/rtc-puv3.c      |    4 ++--
 drivers/rtc/rtc-pxa.c       |    4 ++--
 drivers/rtc/rtc-s3c.c       |    4 ++--
 drivers/rtc/rtc-sa1100.c    |    4 ++--
 drivers/rtc/rtc-sh.c        |    8 ++++----
 drivers/rtc/rtc-stk17ta8.c  |    2 +-
 drivers/rtc/rtc-tx4939.c    |    2 +-
 drivers/rtc/rtc-vr41xx.c    |    4 ++--
 22 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/drivers/rtc/rtc-at91sam9.c b/drivers/rtc/rtc-at91sam9.c
index a3ad957..0c09e8f 100644
--- a/drivers/rtc/rtc-at91sam9.c
+++ b/drivers/rtc/rtc-at91sam9.c
@@ -331,7 +331,7 @@ static int __init at91_rtc_probe(struct platform_device *pdev)
 
 	/* register irq handler after we know what name we'll use */
 	ret = request_irq(AT91_ID_SYS, at91_rtc_interrupt,
-				IRQF_DISABLED | IRQF_SHARED,
+				IRQF_SHARED,
 				dev_name(&rtc->rtcdev->dev), rtc);
 	if (ret) {
 		dev_dbg(&pdev->dev, "can't share IRQ %d?\n", AT91_ID_SYS);
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index 05beb6c..66d3b14 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -714,7 +714,7 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
 			rtc_cmos_int_handler = cmos_interrupt;
 
 		retval = request_irq(rtc_irq, rtc_cmos_int_handler,
-				IRQF_DISABLED, dev_name(&cmos_rtc.rtc->dev),
+				0, dev_name(&cmos_rtc.rtc->dev),
 				cmos_rtc.rtc);
 		if (retval < 0) {
 			dev_dbg(dev, "IRQ %d is already in use\n", rtc_irq);
diff --git a/drivers/rtc/rtc-coh901331.c b/drivers/rtc/rtc-coh901331.c
index 80f9c88..a5b8a0c 100644
--- a/drivers/rtc/rtc-coh901331.c
+++ b/drivers/rtc/rtc-coh901331.c
@@ -199,7 +199,7 @@ static int __init coh901331_probe(struct platform_device *pdev)
 	}
 
 	rtap->irq = platform_get_irq(pdev, 0);
-	if (request_irq(rtap->irq, coh901331_interrupt, IRQF_DISABLED,
+	if (request_irq(rtap->irq, coh901331_interrupt, 0,
 			"RTC COH 901 331 Alarm", rtap)) {
 		ret = -EIO;
 		goto out_no_irq;
diff --git a/drivers/rtc/rtc-davinci.c b/drivers/rtc/rtc-davinci.c
index 755e1fe..14c2109 100644
--- a/drivers/rtc/rtc-davinci.c
+++ b/drivers/rtc/rtc-davinci.c
@@ -542,7 +542,7 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
 	rtcss_write(davinci_rtc, 0, PRTCSS_RTC_CCTRL);
 
 	ret = request_irq(davinci_rtc->irq, davinci_rtc_interrupt,
-			  IRQF_DISABLED, "davinci_rtc", davinci_rtc);
+			  0, "davinci_rtc", davinci_rtc);
 	if (ret < 0) {
 		dev_err(dev, "unable to register davinci RTC interrupt\n");
 		goto fail4;
diff --git a/drivers/rtc/rtc-ds1511.c b/drivers/rtc/rtc-ds1511.c
index 586c244..bbc7c86 100644
--- a/drivers/rtc/rtc-ds1511.c
+++ b/drivers/rtc/rtc-ds1511.c
@@ -532,7 +532,7 @@ ds1511_rtc_probe(struct platform_device *pdev)
 	if (pdata->irq > 0) {
 		rtc_read(RTC_CMD1);
 		if (devm_request_irq(&pdev->dev, pdata->irq, ds1511_interrupt,
-			IRQF_DISABLED | IRQF_SHARED, pdev->name, pdev) < 0) {
+			IRQF_SHARED, pdev->name, pdev) < 0) {
 
 			dev_warn(&pdev->dev, "interrupt not available.\n");
 			pdata->irq = 0;
diff --git a/drivers/rtc/rtc-ds1553.c b/drivers/rtc/rtc-ds1553.c
index 1350029..1ef2718 100644
--- a/drivers/rtc/rtc-ds1553.c
+++ b/drivers/rtc/rtc-ds1553.c
@@ -320,7 +320,7 @@ static int __devinit ds1553_rtc_probe(struct platform_device *pdev)
 		writeb(0, ioaddr + RTC_INTERRUPTS);
 		if (devm_request_irq(&pdev->dev, pdata->irq,
 				ds1553_rtc_interrupt,
-				IRQF_DISABLED, pdev->name, pdev) < 0) {
+				0, pdev->name, pdev) < 0) {
 			dev_warn(&pdev->dev, "interrupt not available.\n");
 			pdata->irq = 0;
 		}
diff --git a/drivers/rtc/rtc-lpc32xx.c b/drivers/rtc/rtc-lpc32xx.c
index ae16250..ba11a19 100644
--- a/drivers/rtc/rtc-lpc32xx.c
+++ b/drivers/rtc/rtc-lpc32xx.c
@@ -287,7 +287,7 @@ static int __devinit lpc32xx_rtc_probe(struct platform_device *pdev)
 	if (rtc->irq >= 0) {
 		if (devm_request_irq(&pdev->dev, rtc->irq,
 				     lpc32xx_rtc_alarm_interrupt,
-				     IRQF_DISABLED, pdev->name, rtc) < 0) {
+				     0, pdev->name, rtc) < 0) {
 			dev_warn(&pdev->dev, "Can't request interrupt.\n");
 			rtc->irq = -1;
 		} else {
diff --git a/drivers/rtc/rtc-mpc5121.c b/drivers/rtc/rtc-mpc5121.c
index da60915..3a683fd 100644
--- a/drivers/rtc/rtc-mpc5121.c
+++ b/drivers/rtc/rtc-mpc5121.c
@@ -327,7 +327,7 @@ static int __devinit mpc5121_rtc_probe(struct platform_device *op)
 	dev_set_drvdata(&op->dev, rtc);
 
 	rtc->irq = irq_of_parse_and_map(op->dev.of_node, 1);
-	err = request_irq(rtc->irq, mpc5121_rtc_handler, IRQF_DISABLED,
+	err = request_irq(rtc->irq, mpc5121_rtc_handler, 0,
 						"mpc5121-rtc", &op->dev);
 	if (err) {
 		dev_err(&op->dev, "%s: could not request irq: %i\n",
@@ -337,7 +337,7 @@ static int __devinit mpc5121_rtc_probe(struct platform_device *op)
 
 	rtc->irq_periodic = irq_of_parse_and_map(op->dev.of_node, 0);
 	err = request_irq(rtc->irq_periodic, mpc5121_rtc_handler_upd,
-				IRQF_DISABLED, "mpc5121-rtc_upd", &op->dev);
+				0, "mpc5121-rtc_upd", &op->dev);
 	if (err) {
 		dev_err(&op->dev, "%s: could not request irq: %i\n",
 						__func__, rtc->irq_periodic);
diff --git a/drivers/rtc/rtc-mrst.c b/drivers/rtc/rtc-mrst.c
index d335448..507f00e 100644
--- a/drivers/rtc/rtc-mrst.c
+++ b/drivers/rtc/rtc-mrst.c
@@ -363,7 +363,7 @@ vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, int rtc_irq)
 
 	if (rtc_irq) {
 		retval = request_irq(rtc_irq, mrst_rtc_irq,
-				IRQF_DISABLED, dev_name(&mrst_rtc.rtc->dev),
+				0, dev_name(&mrst_rtc.rtc->dev),
 				mrst_rtc.rtc);
 		if (retval < 0) {
 			dev_dbg(dev, "IRQ %d is already in use, err %d\n",
diff --git a/drivers/rtc/rtc-mv.c b/drivers/rtc/rtc-mv.c
index 768e2ed..1300962 100644
--- a/drivers/rtc/rtc-mv.c
+++ b/drivers/rtc/rtc-mv.c
@@ -273,7 +273,7 @@ static int __devinit mv_rtc_probe(struct platform_device *pdev)
 	if (pdata->irq >= 0) {
 		writel(0, pdata->ioaddr + RTC_ALARM_INTERRUPT_MASK_REG_OFFS);
 		if (devm_request_irq(&pdev->dev, pdata->irq, mv_rtc_interrupt,
-				     IRQF_DISABLED | IRQF_SHARED,
+				     IRQF_SHARED,
 				     pdev->name, pdata) < 0) {
 			dev_warn(&pdev->dev, "interrupt not available.\n");
 			pdata->irq = -1;
diff --git a/drivers/rtc/rtc-nuc900.c b/drivers/rtc/rtc-nuc900.c
index 781068d..b790109 100644
--- a/drivers/rtc/rtc-nuc900.c
+++ b/drivers/rtc/rtc-nuc900.c
@@ -269,7 +269,7 @@ static int __devinit nuc900_rtc_probe(struct platform_device *pdev)
 
 	nuc900_rtc->irq_num = platform_get_irq(pdev, 0);
 	if (request_irq(nuc900_rtc->irq_num, nuc900_rtc_interrupt,
-				IRQF_DISABLED, "nuc900rtc", nuc900_rtc)) {
+				0, "nuc900rtc", nuc900_rtc)) {
 		dev_err(&pdev->dev, "NUC900 RTC request irq failed\n");
 		err = -EBUSY;
 		goto fail4;
diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
index 7789002..0b614e3 100644
--- a/drivers/rtc/rtc-omap.c
+++ b/drivers/rtc/rtc-omap.c
@@ -348,14 +348,14 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
 		rtc_write(OMAP_RTC_STATUS_ALARM, OMAP_RTC_STATUS_REG);
 
 	/* handle periodic and alarm irqs */
-	if (request_irq(omap_rtc_timer, rtc_irq, IRQF_DISABLED,
+	if (request_irq(omap_rtc_timer, rtc_irq, 0,
 			dev_name(&rtc->dev), rtc)) {
 		pr_debug("%s: RTC timer interrupt IRQ%d already claimed\n",
 			pdev->name, omap_rtc_timer);
 		goto fail1;
 	}
 	if ((omap_rtc_timer != omap_rtc_alarm) &&
-		(request_irq(omap_rtc_alarm, rtc_irq, IRQF_DISABLED,
+		(request_irq(omap_rtc_alarm, rtc_irq, 0,
 			dev_name(&rtc->dev), rtc))) {
 		pr_debug("%s: RTC alarm interrupt IRQ%d already claimed\n",
 			pdev->name, omap_rtc_alarm);
diff --git a/drivers/rtc/rtc-pl030.c b/drivers/rtc/rtc-pl030.c
index 1d28d44..c5afd6f 100644
--- a/drivers/rtc/rtc-pl030.c
+++ b/drivers/rtc/rtc-pl030.c
@@ -123,7 +123,7 @@ static int pl030_probe(struct amba_device *dev, const struct amba_id *id)
 
 	amba_set_drvdata(dev, rtc);
 
-	ret = request_irq(dev->irq[0], pl030_interrupt, IRQF_DISABLED,
+	ret = request_irq(dev->irq[0], pl030_interrupt, 0,
 			  "rtc-pl030", rtc);
 	if (ret)
 		goto err_irq;
diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c
index ff1b84b..d2df59d 100644
--- a/drivers/rtc/rtc-pl031.c
+++ b/drivers/rtc/rtc-pl031.c
@@ -352,7 +352,7 @@ static int pl031_probe(struct amba_device *adev, const struct amba_id *id)
 	}
 
 	if (request_irq(adev->irq[0], pl031_interrupt,
-			IRQF_DISABLED, "rtc-pl031", ldata)) {
+			0, "rtc-pl031", ldata)) {
 		ret = -EIO;
 		goto out_no_irq;
 	}
diff --git a/drivers/rtc/rtc-puv3.c b/drivers/rtc/rtc-puv3.c
index b3eba3c..378fe4b 100644
--- a/drivers/rtc/rtc-puv3.c
+++ b/drivers/rtc/rtc-puv3.c
@@ -164,7 +164,7 @@ static int puv3_rtc_open(struct device *dev)
 	int ret;
 
 	ret = request_irq(puv3_rtc_alarmno, puv3_rtc_alarmirq,
-			  IRQF_DISABLED,  "pkunity-rtc alarm", rtc_dev);
+			  0,  "pkunity-rtc alarm", rtc_dev);
 
 	if (ret) {
 		dev_err(dev, "IRQ%d error %d\n", puv3_rtc_alarmno, ret);
@@ -172,7 +172,7 @@ static int puv3_rtc_open(struct device *dev)
 	}
 
 	ret = request_irq(puv3_rtc_tickno, puv3_rtc_tickirq,
-			  IRQF_DISABLED,  "pkunity-rtc tick", rtc_dev);
+			  0,  "pkunity-rtc tick", rtc_dev);
 
 	if (ret) {
 		dev_err(dev, "IRQ%d error %d\n", puv3_rtc_tickno, ret);
diff --git a/drivers/rtc/rtc-pxa.c b/drivers/rtc/rtc-pxa.c
index fc9f499..0075c8f 100644
--- a/drivers/rtc/rtc-pxa.c
+++ b/drivers/rtc/rtc-pxa.c
@@ -174,14 +174,14 @@ static int pxa_rtc_open(struct device *dev)
 	struct pxa_rtc *pxa_rtc = dev_get_drvdata(dev);
 	int ret;
 
-	ret = request_irq(pxa_rtc->irq_1Hz, pxa_rtc_irq, IRQF_DISABLED,
+	ret = request_irq(pxa_rtc->irq_1Hz, pxa_rtc_irq, 0,
 			  "rtc 1Hz", dev);
 	if (ret < 0) {
 		dev_err(dev, "can't get irq %i, err %d\n", pxa_rtc->irq_1Hz,
 			ret);
 		goto err_irq_1Hz;
 	}
-	ret = request_irq(pxa_rtc->irq_Alrm, pxa_rtc_irq, IRQF_DISABLED,
+	ret = request_irq(pxa_rtc->irq_Alrm, pxa_rtc_irq, 0,
 			  "rtc Alrm", dev);
 	if (ret < 0) {
 		dev_err(dev, "can't get irq %i, err %d\n", pxa_rtc->irq_Alrm,
diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index 7639ab9..9a073aa 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -536,14 +536,14 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
 	s3c_rtc_setfreq(&pdev->dev, 1);
 
 	ret = request_irq(s3c_rtc_alarmno, s3c_rtc_alarmirq,
-			  IRQF_DISABLED,  "s3c2410-rtc alarm", rtc);
+			  0,  "s3c2410-rtc alarm", rtc);
 	if (ret) {
 		dev_err(&pdev->dev, "IRQ%d error %d\n", s3c_rtc_alarmno, ret);
 		goto err_alarm_irq;
 	}
 
 	ret = request_irq(s3c_rtc_tickno, s3c_rtc_tickirq,
-			  IRQF_DISABLED,  "s3c2410-rtc tick", rtc);
+			  0,  "s3c2410-rtc tick", rtc);
 	if (ret) {
 		dev_err(&pdev->dev, "IRQ%d error %d\n", s3c_rtc_tickno, ret);
 		free_irq(s3c_rtc_alarmno, rtc);
diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
index 0b40bb8..7ca247e 100644
--- a/drivers/rtc/rtc-sa1100.c
+++ b/drivers/rtc/rtc-sa1100.c
@@ -161,13 +161,13 @@ static int sa1100_rtc_open(struct device *dev)
 	struct platform_device *plat_dev = to_platform_device(dev);
 	struct rtc_device *rtc = platform_get_drvdata(plat_dev);
 
-	ret = request_irq(IRQ_RTC1Hz, sa1100_rtc_interrupt, IRQF_DISABLED,
+	ret = request_irq(IRQ_RTC1Hz, sa1100_rtc_interrupt, 0,
 		"rtc 1Hz", dev);
 	if (ret) {
 		dev_err(dev, "IRQ %d already in use.\n", IRQ_RTC1Hz);
 		goto fail_ui;
 	}
-	ret = request_irq(IRQ_RTCAlrm, sa1100_rtc_interrupt, IRQF_DISABLED,
+	ret = request_irq(IRQ_RTCAlrm, sa1100_rtc_interrupt, 0,
 		"rtc Alrm", dev);
 	if (ret) {
 		dev_err(dev, "IRQ %d already in use.\n", IRQ_RTCAlrm);
diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c
index 6ac55fd..e55a763 100644
--- a/drivers/rtc/rtc-sh.c
+++ b/drivers/rtc/rtc-sh.c
@@ -666,7 +666,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev)
 	if (rtc->carry_irq <= 0) {
 		/* register shared periodic/carry/alarm irq */
 		ret = request_irq(rtc->periodic_irq, sh_rtc_shared,
-				  IRQF_DISABLED, "sh-rtc", rtc);
+				  0, "sh-rtc", rtc);
 		if (unlikely(ret)) {
 			dev_err(&pdev->dev,
 				"request IRQ failed with %d, IRQ %d\n", ret,
@@ -676,7 +676,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev)
 	} else {
 		/* register periodic/carry/alarm irqs */
 		ret = request_irq(rtc->periodic_irq, sh_rtc_periodic,
-				  IRQF_DISABLED, "sh-rtc period", rtc);
+				  0, "sh-rtc period", rtc);
 		if (unlikely(ret)) {
 			dev_err(&pdev->dev,
 				"request period IRQ failed with %d, IRQ %d\n",
@@ -685,7 +685,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev)
 		}
 
 		ret = request_irq(rtc->carry_irq, sh_rtc_interrupt,
-				  IRQF_DISABLED, "sh-rtc carry", rtc);
+				  0, "sh-rtc carry", rtc);
 		if (unlikely(ret)) {
 			dev_err(&pdev->dev,
 				"request carry IRQ failed with %d, IRQ %d\n",
@@ -695,7 +695,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev)
 		}
 
 		ret = request_irq(rtc->alarm_irq, sh_rtc_alarm,
-				  IRQF_DISABLED, "sh-rtc alarm", rtc);
+				  0, "sh-rtc alarm", rtc);
 		if (unlikely(ret)) {
 			dev_err(&pdev->dev,
 				"request alarm IRQ failed with %d, IRQ %d\n",
diff --git a/drivers/rtc/rtc-stk17ta8.c b/drivers/rtc/rtc-stk17ta8.c
index ed3e9b5..5e9adec 100644
--- a/drivers/rtc/rtc-stk17ta8.c
+++ b/drivers/rtc/rtc-stk17ta8.c
@@ -329,7 +329,7 @@ static int __devinit stk17ta8_rtc_probe(struct platform_device *pdev)
 		writeb(0, ioaddr + RTC_INTERRUPTS);
 		if (devm_request_irq(&pdev->dev, pdata->irq,
 				stk17ta8_rtc_interrupt,
-				IRQF_DISABLED | IRQF_SHARED,
+				IRQF_SHARED,
 				pdev->name, pdev) < 0) {
 			dev_warn(&pdev->dev, "interrupt not available.\n");
 			pdata->irq = 0;
diff --git a/drivers/rtc/rtc-tx4939.c b/drivers/rtc/rtc-tx4939.c
index aac0ffe..a12bfac 100644
--- a/drivers/rtc/rtc-tx4939.c
+++ b/drivers/rtc/rtc-tx4939.c
@@ -266,7 +266,7 @@ static int __init tx4939_rtc_probe(struct platform_device *pdev)
 	spin_lock_init(&pdata->lock);
 	tx4939_rtc_cmd(pdata->rtcreg, TX4939_RTCCTL_COMMAND_NOP);
 	if (devm_request_irq(&pdev->dev, irq, tx4939_rtc_interrupt,
-			     IRQF_DISABLED, pdev->name, &pdev->dev) < 0)
+			     0, pdev->name, &pdev->dev) < 0)
 		return -EBUSY;
 	rtc = rtc_device_register(pdev->name, &pdev->dev,
 				  &tx4939_rtc_ops, THIS_MODULE);
diff --git a/drivers/rtc/rtc-vr41xx.c b/drivers/rtc/rtc-vr41xx.c
index c5698cd..6aef17d 100644
--- a/drivers/rtc/rtc-vr41xx.c
+++ b/drivers/rtc/rtc-vr41xx.c
@@ -333,7 +333,7 @@ static int __devinit rtc_probe(struct platform_device *pdev)
 		goto err_device_unregister;
 	}
 
-	retval = request_irq(aie_irq, elapsedtime_interrupt, IRQF_DISABLED,
+	retval = request_irq(aie_irq, elapsedtime_interrupt, 0,
 	                     "elapsed_time", pdev);
 	if (retval < 0)
 		goto err_device_unregister;
@@ -342,7 +342,7 @@ static int __devinit rtc_probe(struct platform_device *pdev)
 	if (pie_irq <= 0)
 		goto err_free_irq;
 
-	retval = request_irq(pie_irq, rtclong1_interrupt, IRQF_DISABLED,
+	retval = request_irq(pie_irq, rtclong1_interrupt, 0,
 		             "rtclong1", pdev);
 	if (retval < 0)
 		goto err_free_irq;
-- 
1.7.4.1

^ permalink raw reply related

* [PATCH 49/57] video: irq: Remove IRQF_DISABLED
From: Yong Zhang @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-1-git-send-email-yong.zhang0@gmail.com>

Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
We run all interrupt handlers with interrupts disabled
and we even check and yell when an interrupt handler
returns with interrupts enabled (see commit [b738a50a:
genirq: Warn when handler enables interrupts]).

So now this flag is a NOOP and can be removed.

Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
---
 drivers/video/au1200fb.c                  |    2 +-
 drivers/video/bf54x-lq043fb.c             |    2 +-
 drivers/video/bfin-lq035q1-fb.c           |    2 +-
 drivers/video/bfin-t350mcqb-fb.c          |    2 +-
 drivers/video/bfin_adv7393fb.c            |    2 +-
 drivers/video/mb862xx/mb862xxfbdrv.c      |    4 ++--
 drivers/video/msm/mddi.c                  |    2 +-
 drivers/video/msm/mdp.c                   |    2 +-
 drivers/video/nuc900fb.c                  |    2 +-
 drivers/video/omap2/displays/panel-taal.c |    2 +-
 drivers/video/ps3fb.c                     |    2 +-
 drivers/video/pxa3xx-gcu.c                |    2 +-
 drivers/video/pxafb.c                     |    2 +-
 drivers/video/s3c2410fb.c                 |    2 +-
 drivers/video/sa1100fb.c                  |    3 +--
 drivers/video/sh_mobile_lcdcfb.c          |    2 +-
 drivers/video/tmiofb.c                    |    2 +-
 drivers/video/vt8500lcdfb.c               |    2 +-
 18 files changed, 19 insertions(+), 20 deletions(-)

diff --git a/drivers/video/au1200fb.c b/drivers/video/au1200fb.c
index a19a40e..7200559 100644
--- a/drivers/video/au1200fb.c
+++ b/drivers/video/au1200fb.c
@@ -1673,7 +1673,7 @@ static int __devinit au1200fb_drv_probe(struct platform_device *dev)
 	/* Now hook interrupt too */
 	irq = platform_get_irq(dev, 0);
 	ret = request_irq(irq, au1200fb_handle_irq,
-			  IRQF_DISABLED | IRQF_SHARED, "lcd", (void *)dev);
+			  IRQF_SHARED, "lcd", (void *)dev);
 	if (ret) {
 		print_err("fail to request interrupt line %d (err: %d)",
 			  irq, ret);
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 2464b91..56720fb 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -633,7 +633,7 @@ static int __devinit bfin_bf54x_probe(struct platform_device *pdev)
 		goto out7;
 	}
 
-	if (request_irq(info->irq, bfin_bf54x_irq_error, IRQF_DISABLED,
+	if (request_irq(info->irq, bfin_bf54x_irq_error, 0,
 			"PPI ERROR", info) < 0) {
 		printk(KERN_ERR DRIVER_NAME
 		       ": unable to request PPI ERROR IRQ\n");
diff --git a/drivers/video/bfin-lq035q1-fb.c b/drivers/video/bfin-lq035q1-fb.c
index 23b6c4b..c633068 100644
--- a/drivers/video/bfin-lq035q1-fb.c
+++ b/drivers/video/bfin-lq035q1-fb.c
@@ -695,7 +695,7 @@ static int __devinit bfin_lq035q1_probe(struct platform_device *pdev)
 		goto out7;
 	}
 
-	ret = request_irq(info->irq, bfin_lq035q1_irq_error, IRQF_DISABLED,
+	ret = request_irq(info->irq, bfin_lq035q1_irq_error, 0,
 			DRIVER_NAME" PPI ERROR", info);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "unable to request PPI ERROR IRQ\n");
diff --git a/drivers/video/bfin-t350mcqb-fb.c b/drivers/video/bfin-t350mcqb-fb.c
index d8de29f..d5e1267 100644
--- a/drivers/video/bfin-t350mcqb-fb.c
+++ b/drivers/video/bfin-t350mcqb-fb.c
@@ -529,7 +529,7 @@ static int __devinit bfin_t350mcqb_probe(struct platform_device *pdev)
 		goto out7;
 	}
 
-	ret = request_irq(info->irq, bfin_t350mcqb_irq_error, IRQF_DISABLED,
+	ret = request_irq(info->irq, bfin_t350mcqb_irq_error, 0,
 			"PPI ERROR", info);
 	if (ret < 0) {
 		printk(KERN_ERR DRIVER_NAME
diff --git a/drivers/video/bfin_adv7393fb.c b/drivers/video/bfin_adv7393fb.c
index 8486f54..811dd7f 100644
--- a/drivers/video/bfin_adv7393fb.c
+++ b/drivers/video/bfin_adv7393fb.c
@@ -481,7 +481,7 @@ static int __devinit bfin_adv7393_fb_probe(struct i2c_client *client,
 		goto out_4;
 	}
 
-	if (request_irq(IRQ_PPI_ERROR, ppi_irq_error, IRQF_DISABLED,
+	if (request_irq(IRQ_PPI_ERROR, ppi_irq_error, 0,
 			"PPI ERROR", fbdev) < 0) {
 		dev_err(&client->dev, "unable to request PPI ERROR IRQ\n");
 		ret = -EFAULT;
diff --git a/drivers/video/mb862xx/mb862xxfbdrv.c b/drivers/video/mb862xx/mb862xxfbdrv.c
index 12a634a..11a7a33 100644
--- a/drivers/video/mb862xx/mb862xxfbdrv.c
+++ b/drivers/video/mb862xx/mb862xxfbdrv.c
@@ -738,7 +738,7 @@ static int __devinit of_platform_mb862xx_probe(struct platform_device *ofdev)
 	if (mb862xx_gdc_init(par))
 		goto io_unmap;
 
-	if (request_irq(par->irq, mb862xx_intr, IRQF_DISABLED,
+	if (request_irq(par->irq, mb862xx_intr, 0,
 			DRV_NAME, (void *)par)) {
 		dev_err(dev, "Cannot request irq\n");
 		goto io_unmap;
@@ -1074,7 +1074,7 @@ static int __devinit mb862xx_pci_probe(struct pci_dev *pdev,
 	if (mb862xx_pci_gdc_init(par))
 		goto io_unmap;
 
-	if (request_irq(par->irq, mb862xx_intr, IRQF_DISABLED | IRQF_SHARED,
+	if (request_irq(par->irq, mb862xx_intr, IRQF_SHARED,
 			DRV_NAME, (void *)par)) {
 		dev_err(dev, "Cannot request irq\n");
 		goto io_unmap;
diff --git a/drivers/video/msm/mddi.c b/drivers/video/msm/mddi.c
index 178b072..4527cbf 100644
--- a/drivers/video/msm/mddi.c
+++ b/drivers/video/msm/mddi.c
@@ -715,7 +715,7 @@ static int __devinit mddi_probe(struct platform_device *pdev)
 
 	mddi->int_enable = 0;
 	mddi_writel(mddi->int_enable, INTEN);
-	ret = request_irq(mddi->irq, mddi_isr, IRQF_DISABLED, "mddi",
+	ret = request_irq(mddi->irq, mddi_isr, 0, "mddi",
 			  &mddi->client_data);
 	if (ret) {
 		printk(KERN_ERR "mddi: failed to request enable irq!\n");
diff --git a/drivers/video/msm/mdp.c b/drivers/video/msm/mdp.c
index 2750ed2..cb2ddf1 100644
--- a/drivers/video/msm/mdp.c
+++ b/drivers/video/msm/mdp.c
@@ -426,7 +426,7 @@ int mdp_probe(struct platform_device *pdev)
 		goto error_get_clk;
 	}
 
-	ret = request_irq(mdp->irq, mdp_isr, IRQF_DISABLED, "msm_mdp", mdp);
+	ret = request_irq(mdp->irq, mdp_isr, 0, "msm_mdp", mdp);
 	if (ret)
 		goto error_request_irq;
 	disable_irq(mdp->irq);
diff --git a/drivers/video/nuc900fb.c b/drivers/video/nuc900fb.c
index 37dd850..d1fbbd8 100644
--- a/drivers/video/nuc900fb.c
+++ b/drivers/video/nuc900fb.c
@@ -587,7 +587,7 @@ static int __devinit nuc900fb_probe(struct platform_device *pdev)
 	fbinfo->flags			= FBINFO_FLAG_DEFAULT;
 	fbinfo->pseudo_palette		= &fbi->pseudo_pal;
 
-	ret = request_irq(irq, nuc900fb_irqhandler, IRQF_DISABLED,
+	ret = request_irq(irq, nuc900fb_irqhandler, 0,
 			  pdev->name, fbinfo);
 	if (ret) {
 		dev_err(&pdev->dev, "cannot register irq handler %d -err %d\n",
diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
index ddc696d..20d9968 100644
--- a/drivers/video/omap2/displays/panel-taal.c
+++ b/drivers/video/omap2/displays/panel-taal.c
@@ -1053,7 +1053,7 @@ static int taal_probe(struct omap_dss_device *dssdev)
 		gpio_direction_input(gpio);
 
 		r = request_irq(gpio_to_irq(gpio), taal_te_isr,
-				IRQF_DISABLED | IRQF_TRIGGER_RISING,
+				IRQF_TRIGGER_RISING,
 				"taal vsync", dssdev);
 
 		if (r) {
diff --git a/drivers/video/ps3fb.c b/drivers/video/ps3fb.c
index 65560a1..213fbbc 100644
--- a/drivers/video/ps3fb.c
+++ b/drivers/video/ps3fb.c
@@ -1082,7 +1082,7 @@ static int __devinit ps3fb_probe(struct ps3_system_bus_device *dev)
 	}
 
 	retval = request_irq(ps3fb.irq_no, ps3fb_vsync_interrupt,
-			     IRQF_DISABLED, DEVICE_NAME, &dev->core);
+			     0, DEVICE_NAME, &dev->core);
 	if (retval) {
 		dev_err(&dev->core, "%s: request_irq failed %d\n", __func__,
 			retval);
diff --git a/drivers/video/pxa3xx-gcu.c b/drivers/video/pxa3xx-gcu.c
index d8de557..1ed8b36 100644
--- a/drivers/video/pxa3xx-gcu.c
+++ b/drivers/video/pxa3xx-gcu.c
@@ -676,7 +676,7 @@ pxa3xx_gcu_probe(struct platform_device *dev)
 	}
 
 	ret = request_irq(irq, pxa3xx_gcu_handle_irq,
-			  IRQF_DISABLED, DRV_NAME, priv);
+			  0, DRV_NAME, priv);
 	if (ret) {
 		dev_err(&dev->dev, "request_irq failed\n");
 		ret = -EBUSY;
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 0f4e8c9..e89778f 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -2191,7 +2191,7 @@ static int __devinit pxafb_probe(struct platform_device *dev)
 		goto failed_free_mem;
 	}
 
-	ret = request_irq(irq, pxafb_handle_irq, IRQF_DISABLED, "LCD", fbi);
+	ret = request_irq(irq, pxafb_handle_irq, 0, "LCD", fbi);
 	if (ret) {
 		dev_err(&dev->dev, "request_irq failed: %d\n", ret);
 		ret = -EBUSY;
diff --git a/drivers/video/s3c2410fb.c b/drivers/video/s3c2410fb.c
index 798144a..ee4c0df 100644
--- a/drivers/video/s3c2410fb.c
+++ b/drivers/video/s3c2410fb.c
@@ -910,7 +910,7 @@ static int __devinit s3c24xxfb_probe(struct platform_device *pdev,
 	for (i = 0; i < 256; i++)
 		info->palette_buffer[i] = PALETTE_BUFF_CLEAR;
 
-	ret = request_irq(irq, s3c2410fb_irq, IRQF_DISABLED, pdev->name, info);
+	ret = request_irq(irq, s3c2410fb_irq, 0, pdev->name, info);
 	if (ret) {
 		dev_err(&pdev->dev, "cannot get irq %d - err %d\n", irq, ret);
 		ret = -EBUSY;
diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c
index e8b76d6..98d55d0 100644
--- a/drivers/video/sa1100fb.c
+++ b/drivers/video/sa1100fb.c
@@ -1457,8 +1457,7 @@ static int __devinit sa1100fb_probe(struct platform_device *pdev)
 	if (ret)
 		goto failed;
 
-	ret = request_irq(irq, sa1100fb_handle_irq, IRQF_DISABLED,
-			  "LCD", fbi);
+	ret = request_irq(irq, sa1100fb_handle_irq, 0, "LCD", fbi);
 	if (ret) {
 		printk(KERN_ERR "sa1100fb: request_irq failed: %d\n", ret);
 		goto failed;
diff --git a/drivers/video/sh_mobile_lcdcfb.c b/drivers/video/sh_mobile_lcdcfb.c
index 4636f9d..facffc2 100644
--- a/drivers/video/sh_mobile_lcdcfb.c
+++ b/drivers/video/sh_mobile_lcdcfb.c
@@ -1577,7 +1577,7 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
 
 	platform_set_drvdata(pdev, priv);
 
-	error = request_irq(i, sh_mobile_lcdc_irq, IRQF_DISABLED,
+	error = request_irq(i, sh_mobile_lcdc_irq, 0,
 			    dev_name(&pdev->dev), priv);
 	if (error) {
 		dev_err(&pdev->dev, "unable to request irq\n");
diff --git a/drivers/video/tmiofb.c b/drivers/video/tmiofb.c
index cd1c4dc..8e4a446 100644
--- a/drivers/video/tmiofb.c
+++ b/drivers/video/tmiofb.c
@@ -744,7 +744,7 @@ static int __devinit tmiofb_probe(struct platform_device *dev)
 		goto err_ioremap_vram;
 	}
 
-	retval = request_irq(irq, &tmiofb_irq, IRQF_DISABLED,
+	retval = request_irq(irq, &tmiofb_irq, 0,
 					dev_name(&dev->dev), info);
 
 	if (retval)
diff --git a/drivers/video/vt8500lcdfb.c b/drivers/video/vt8500lcdfb.c
index c13c246..777c21d 100644
--- a/drivers/video/vt8500lcdfb.c
+++ b/drivers/video/vt8500lcdfb.c
@@ -355,7 +355,7 @@ static int __devinit vt8500lcd_probe(struct platform_device *pdev)
 		goto failed_free_palette;
 	}
 
-	ret = request_irq(irq, vt8500lcd_handle_irq, IRQF_DISABLED, "LCD", fbi);
+	ret = request_irq(irq, vt8500lcd_handle_irq, 0, "LCD", fbi);
 	if (ret) {
 		dev_err(&pdev->dev, "request_irq failed: %d\n", ret);
 		ret = -EBUSY;
-- 
1.7.4.1

^ permalink raw reply related

* [PATCH 51/57] watchdog: irq: Remove IRQF_DISABLED
From: Yong Zhang @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-1-git-send-email-yong.zhang0@gmail.com>

Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
We run all interrupt handlers with interrupts disabled
and we even check and yell when an interrupt handler
returns with interrupts enabled (see commit [b738a50a:
genirq: Warn when handler enables interrupts]).

So now this flag is a NOOP and can be removed.

Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/watchdog/coh901327_wdt.c   |    2 +-
 drivers/watchdog/eurotechwdt.c     |    2 +-
 drivers/watchdog/mpcore_wdt.c      |    3 +--
 drivers/watchdog/octeon-wdt-main.c |    2 +-
 drivers/watchdog/sb_wdog.c         |    4 ++--
 drivers/watchdog/wdt.c             |    2 +-
 drivers/watchdog/wdt_pci.c         |    2 +-
 7 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/drivers/watchdog/coh901327_wdt.c b/drivers/watchdog/coh901327_wdt.c
index 9291506..03f449a 100644
--- a/drivers/watchdog/coh901327_wdt.c
+++ b/drivers/watchdog/coh901327_wdt.c
@@ -429,7 +429,7 @@ static int __init coh901327_probe(struct platform_device *pdev)
 	writew(U300_WDOG_SR_RESET_STATUS_RESET, virtbase + U300_WDOG_SR);
 
 	irq = platform_get_irq(pdev, 0);
-	if (request_irq(irq, coh901327_interrupt, IRQF_DISABLED,
+	if (request_irq(irq, coh901327_interrupt, 0,
 			DRV_NAME " Bark", pdev)) {
 		ret = -EIO;
 		goto out_no_irq;
diff --git a/drivers/watchdog/eurotechwdt.c b/drivers/watchdog/eurotechwdt.c
index f1d1da6..41018d4 100644
--- a/drivers/watchdog/eurotechwdt.c
+++ b/drivers/watchdog/eurotechwdt.c
@@ -427,7 +427,7 @@ static int __init eurwdt_init(void)
 {
 	int ret;
 
-	ret = request_irq(irq, eurwdt_interrupt, IRQF_DISABLED, "eurwdt", NULL);
+	ret = request_irq(irq, eurwdt_interrupt, 0, "eurwdt", NULL);
 	if (ret) {
 		printk(KERN_ERR "eurwdt: IRQ %d is not free.\n", irq);
 		goto out;
diff --git a/drivers/watchdog/mpcore_wdt.c b/drivers/watchdog/mpcore_wdt.c
index 4dc3102..82ccd36 100644
--- a/drivers/watchdog/mpcore_wdt.c
+++ b/drivers/watchdog/mpcore_wdt.c
@@ -367,8 +367,7 @@ static int __devinit mpcore_wdt_probe(struct platform_device *dev)
 		goto err_misc;
 	}
 
-	ret = request_irq(wdt->irq, mpcore_wdt_fire, IRQF_DISABLED,
-							"mpcore_wdt", wdt);
+	ret = request_irq(wdt->irq, mpcore_wdt_fire, 0, "mpcore_wdt", wdt);
 	if (ret) {
 		dev_printk(KERN_ERR, wdt->dev,
 			"cannot register IRQ%d for watchdog\n", wdt->irq);
diff --git a/drivers/watchdog/octeon-wdt-main.c b/drivers/watchdog/octeon-wdt-main.c
index 945ee83..6019087 100644
--- a/drivers/watchdog/octeon-wdt-main.c
+++ b/drivers/watchdog/octeon-wdt-main.c
@@ -402,7 +402,7 @@ static void octeon_wdt_setup_interrupt(int cpu)
 	irq = OCTEON_IRQ_WDOG0 + core;
 
 	if (request_irq(irq, octeon_wdt_poke_irq,
-			IRQF_DISABLED, "octeon_wdt", octeon_wdt_poke_irq))
+			0, "octeon_wdt", octeon_wdt_poke_irq))
 		panic("octeon_wdt: Couldn't obtain irq %d", irq);
 
 	cpumask_set_cpu(cpu, &irq_enabled_cpus);
diff --git a/drivers/watchdog/sb_wdog.c b/drivers/watchdog/sb_wdog.c
index f31493e..b01a30e 100644
--- a/drivers/watchdog/sb_wdog.c
+++ b/drivers/watchdog/sb_wdog.c
@@ -300,7 +300,7 @@ static int __init sbwdog_init(void)
 	 * get the resources
 	 */
 
-	ret = request_irq(1, sbwdog_interrupt, IRQF_DISABLED | IRQF_SHARED,
+	ret = request_irq(1, sbwdog_interrupt, IRQF_SHARED,
 		ident.identity, (void *)user_dog);
 	if (ret) {
 		printk(KERN_ERR "%s: failed to request irq 1 - %d\n",
@@ -350,7 +350,7 @@ void platform_wd_setup(void)
 {
 	int ret;
 
-	ret = request_irq(1, sbwdog_interrupt, IRQF_DISABLED | IRQF_SHARED,
+	ret = request_irq(1, sbwdog_interrupt, IRQF_SHARED,
 		"Kernel Watchdog", IOADDR(A_SCD_WDOG_CFG_0));
 	if (ret) {
 		printk(KERN_CRIT
diff --git a/drivers/watchdog/wdt.c b/drivers/watchdog/wdt.c
index bb03e15..d2ef002 100644
--- a/drivers/watchdog/wdt.c
+++ b/drivers/watchdog/wdt.c
@@ -612,7 +612,7 @@ static int __init wdt_init(void)
 		goto out;
 	}
 
-	ret = request_irq(irq, wdt_interrupt, IRQF_DISABLED, "wdt501p", NULL);
+	ret = request_irq(irq, wdt_interrupt, 0, "wdt501p", NULL);
 	if (ret) {
 		printk(KERN_ERR "wdt: IRQ %d is not free.\n", irq);
 		goto outreg;
diff --git a/drivers/watchdog/wdt_pci.c b/drivers/watchdog/wdt_pci.c
index 172dad6..e0fc3baa 100644
--- a/drivers/watchdog/wdt_pci.c
+++ b/drivers/watchdog/wdt_pci.c
@@ -643,7 +643,7 @@ static int __devinit wdtpci_init_one(struct pci_dev *dev,
 	irq = dev->irq;
 	io = pci_resource_start(dev, 2);
 
-	if (request_irq(irq, wdtpci_interrupt, IRQF_DISABLED | IRQF_SHARED,
+	if (request_irq(irq, wdtpci_interrupt, IRQF_SHARED,
 			 "wdt_pci", &wdtpci_miscdev)) {
 		printk(KERN_ERR PFX "IRQ %d is not free\n", irq);
 		goto out_reg;
-- 
1.7.4.1

^ permalink raw reply related

* [PATCH 53/57] sound: irq: Remove IRQF_DISABLED
From: Yong Zhang @ 2011-09-21  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-1-git-send-email-yong.zhang0@gmail.com>

Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
We run all interrupt handlers with interrupts disabled
and we even check and yell when an interrupt handler
returns with interrupts enabled (see commit [b738a50a:
genirq: Warn when handler enables interrupts]).

So now this flag is a NOOP and can be removed.

Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
---
 include/sound/initval.h            |    2 +-
 sound/arm/aaci.c                   |    2 +-
 sound/arm/pxa2xx-ac97-lib.c        |    2 +-
 sound/drivers/ml403-ac97cr.c       |    4 ++--
 sound/drivers/mpu401/mpu401_uart.c |    2 +-
 sound/drivers/mtpav.c              |    2 +-
 sound/drivers/serial-u16550.c      |    2 +-
 sound/isa/ad1816a/ad1816a_lib.c    |    2 +-
 sound/isa/es1688/es1688_lib.c      |    2 +-
 sound/isa/es18xx.c                 |    2 +-
 sound/isa/gus/gus_main.c           |    2 +-
 sound/isa/gus/gusmax.c             |    2 +-
 sound/isa/gus/interwave.c          |    2 +-
 sound/isa/opl3sa2.c                |    2 +-
 sound/isa/opti9xx/opti92x-ad1848.c |    2 +-
 sound/isa/sb/sb_common.c           |    2 +-
 sound/isa/wavefront/wavefront.c    |    2 +-
 sound/isa/wss/wss_lib.c            |    2 +-
 sound/mips/au1x00.c                |    4 ++--
 sound/pci/sis7019.c                |    4 ++--
 sound/ppc/snd_ps3.c                |    2 +-
 sound/soc/au1x/dma.c               |    2 +-
 sound/soc/codecs/tlv320dac33.c     |    2 +-
 sound/soc/nuc900/nuc900-pcm.c      |    2 +-
 sound/soc/samsung/ac97.c           |    2 +-
 sound/soc/sh/fsi.c                 |    2 +-
 sound/soc/txx9/txx9aclc-ac97.c     |    2 +-
 sound/sparc/amd7930.c              |    2 +-
 28 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/include/sound/initval.h b/include/sound/initval.h
index 1daa6df..f99a0d2 100644
--- a/include/sound/initval.h
+++ b/include/sound/initval.h
@@ -62,7 +62,7 @@ static int snd_legacy_find_free_irq(int *irq_table)
 {
 	while (*irq_table != -1) {
 		if (!request_irq(*irq_table, snd_legacy_empty_irq_handler,
-				 IRQF_DISABLED | IRQF_PROBE_SHARED, "ALSA Test IRQ",
+				 IRQF_PROBE_SHARED, "ALSA Test IRQ",
 				 (void *) irq_table)) {
 			free_irq(*irq_table, (void *) irq_table);
 			return *irq_table;
diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
index d0cead3..e518d38 100644
--- a/sound/arm/aaci.c
+++ b/sound/arm/aaci.c
@@ -443,7 +443,7 @@ static int aaci_pcm_open(struct snd_pcm_substream *substream)
 	mutex_lock(&aaci->irq_lock);
 	if (!aaci->users++) {
 		ret = request_irq(aaci->dev->irq[0], aaci_irq,
-			   IRQF_SHARED | IRQF_DISABLED, DRIVER_NAME, aaci);
+			   IRQF_SHARED, DRIVER_NAME, aaci);
 		if (ret != 0)
 			aaci->users--;
 	}
diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c
index 88eec38..8ad6535 100644
--- a/sound/arm/pxa2xx-ac97-lib.c
+++ b/sound/arm/pxa2xx-ac97-lib.c
@@ -359,7 +359,7 @@ int __devinit pxa2xx_ac97_hw_probe(struct platform_device *dev)
 	if (ret)
 		goto err_clk2;
 
-	ret = request_irq(IRQ_AC97, pxa2xx_ac97_irq, IRQF_DISABLED, "AC97", NULL);
+	ret = request_irq(IRQ_AC97, pxa2xx_ac97_irq, 0, "AC97", NULL);
 	if (ret < 0)
 		goto err_irq;
 
diff --git a/sound/drivers/ml403-ac97cr.c b/sound/drivers/ml403-ac97cr.c
index 5cfcb90..2c7a763 100644
--- a/sound/drivers/ml403-ac97cr.c
+++ b/sound/drivers/ml403-ac97cr.c
@@ -1153,7 +1153,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev,
 		   "0x%x done\n", (unsigned int)ml403_ac97cr->port);
 	/* get irq */
 	irq = platform_get_irq(pfdev, 0);
-	if (request_irq(irq, snd_ml403_ac97cr_irq, IRQF_DISABLED,
+	if (request_irq(irq, snd_ml403_ac97cr_irq, 0,
 			dev_name(&pfdev->dev), (void *)ml403_ac97cr)) {
 		snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": "
 			   "unable to grab IRQ %d\n",
@@ -1166,7 +1166,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev,
 		   "request (playback) irq %d done\n",
 		   ml403_ac97cr->irq);
 	irq = platform_get_irq(pfdev, 1);
-	if (request_irq(irq, snd_ml403_ac97cr_irq, IRQF_DISABLED,
+	if (request_irq(irq, snd_ml403_ac97cr_irq, 0,
 			dev_name(&pfdev->dev), (void *)ml403_ac97cr)) {
 		snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": "
 			   "unable to grab IRQ %d\n",
diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c
index 34df505..1cff331 100644
--- a/sound/drivers/mpu401/mpu401_uart.c
+++ b/sound/drivers/mpu401/mpu401_uart.c
@@ -578,7 +578,7 @@ int snd_mpu401_uart_new(struct snd_card *card, int device,
 	else
 		mpu->cport = port + 1;
 	if (irq >= 0) {
-		if (request_irq(irq, snd_mpu401_uart_interrupt, IRQF_DISABLED,
+		if (request_irq(irq, snd_mpu401_uart_interrupt, 0,
 				"MPU401 UART", (void *) mpu)) {
 			snd_printk(KERN_ERR "mpu401_uart: "
 				   "unable to grab IRQ %d\n", irq);
diff --git a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c
index f50021c..7693079 100644
--- a/sound/drivers/mtpav.c
+++ b/sound/drivers/mtpav.c
@@ -590,7 +590,7 @@ static int __devinit snd_mtpav_get_ISA(struct mtpav * mcard)
 		return -EBUSY;
 	}
 	mcard->port = port;
-	if (request_irq(irq, snd_mtpav_irqh, IRQF_DISABLED, "MOTU MTPAV", mcard)) {
+	if (request_irq(irq, snd_mtpav_irqh, 0, "MOTU MTPAV", mcard)) {
 		snd_printk(KERN_ERR "MTVAP IRQ %d busy\n", irq);
 		return -EBUSY;
 	}
diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
index 6c5bf58..85aad43 100644
--- a/sound/drivers/serial-u16550.c
+++ b/sound/drivers/serial-u16550.c
@@ -816,7 +816,7 @@ static int __devinit snd_uart16550_create(struct snd_card *card,
 
 	if (irq >= 0 && irq != SNDRV_AUTO_IRQ) {
 		if (request_irq(irq, snd_uart16550_interrupt,
-				IRQF_DISABLED, "Serial MIDI", uart)) {
+				0, "Serial MIDI", uart)) {
 			snd_printk(KERN_WARNING
 				   "irq %d busy. Using Polling.\n", irq);
 		} else {
diff --git a/sound/isa/ad1816a/ad1816a_lib.c b/sound/isa/ad1816a/ad1816a_lib.c
index 05aef8b..177eed3 100644
--- a/sound/isa/ad1816a/ad1816a_lib.c
+++ b/sound/isa/ad1816a/ad1816a_lib.c
@@ -595,7 +595,7 @@ int __devinit snd_ad1816a_create(struct snd_card *card,
 		snd_ad1816a_free(chip);
 		return -EBUSY;
 	}
-	if (request_irq(irq, snd_ad1816a_interrupt, IRQF_DISABLED, "AD1816A", (void *) chip)) {
+	if (request_irq(irq, snd_ad1816a_interrupt, 0, "AD1816A", (void *) chip)) {
 		snd_printk(KERN_ERR "ad1816a: can't grab IRQ %d\n", irq);
 		snd_ad1816a_free(chip);
 		return -EBUSY;
diff --git a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c
index 0767620..d3eab6f 100644
--- a/sound/isa/es1688/es1688_lib.c
+++ b/sound/isa/es1688/es1688_lib.c
@@ -661,7 +661,7 @@ int snd_es1688_create(struct snd_card *card,
 		snd_printk(KERN_ERR "es1688: can't grab port 0x%lx\n", port + 4);
 		return -EBUSY;
 	}
-	if (request_irq(irq, snd_es1688_interrupt, IRQF_DISABLED, "ES1688", (void *) chip)) {
+	if (request_irq(irq, snd_es1688_interrupt, 0, "ES1688", (void *) chip)) {
 		snd_printk(KERN_ERR "es1688: can't grab IRQ %d\n", irq);
 		return -EBUSY;
 	}
diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c
index aeee8f8..bf6ad0b 100644
--- a/sound/isa/es18xx.c
+++ b/sound/isa/es18xx.c
@@ -1805,7 +1805,7 @@ static int __devinit snd_es18xx_new_device(struct snd_card *card,
 		return -EBUSY;
 	}
 
-	if (request_irq(irq, snd_es18xx_interrupt, IRQF_DISABLED, "ES18xx",
+	if (request_irq(irq, snd_es18xx_interrupt, 0, "ES18xx",
 			(void *) card)) {
 		snd_es18xx_free(card);
 		snd_printk(KERN_ERR PFX "unable to grap IRQ %d\n", irq);
diff --git a/sound/isa/gus/gus_main.c b/sound/isa/gus/gus_main.c
index 12eb98f..3167e5a 100644
--- a/sound/isa/gus/gus_main.c
+++ b/sound/isa/gus/gus_main.c
@@ -180,7 +180,7 @@ int snd_gus_create(struct snd_card *card,
 		snd_gus_free(gus);
 		return -EBUSY;
 	}
-	if (irq >= 0 && request_irq(irq, snd_gus_interrupt, IRQF_DISABLED, "GUS GF1", (void *) gus)) {
+	if (irq >= 0 && request_irq(irq, snd_gus_interrupt, 0, "GUS GF1", (void *) gus)) {
 		snd_printk(KERN_ERR "gus: can't grab irq %d\n", irq);
 		snd_gus_free(gus);
 		return -EBUSY;
diff --git a/sound/isa/gus/gusmax.c b/sound/isa/gus/gusmax.c
index 3e4a58b..c43faa0 100644
--- a/sound/isa/gus/gusmax.c
+++ b/sound/isa/gus/gusmax.c
@@ -291,7 +291,7 @@ static int __devinit snd_gusmax_probe(struct device *pdev, unsigned int dev)
 		goto _err;
 	}
 
-	if (request_irq(xirq, snd_gusmax_interrupt, IRQF_DISABLED, "GUS MAX", (void *)maxcard)) {
+	if (request_irq(xirq, snd_gusmax_interrupt, 0, "GUS MAX", (void *)maxcard)) {
 		snd_printk(KERN_ERR PFX "unable to grab IRQ %d\n", xirq);
 		err = -EBUSY;
 		goto _err;
diff --git a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c
index c7b80e4..5f869a3 100644
--- a/sound/isa/gus/interwave.c
+++ b/sound/isa/gus/interwave.c
@@ -684,7 +684,7 @@ static int __devinit snd_interwave_probe(struct snd_card *card, int dev)
 	if ((err = snd_gus_initialize(gus)) < 0)
 		return err;
 
-	if (request_irq(xirq, snd_interwave_interrupt, IRQF_DISABLED,
+	if (request_irq(xirq, snd_interwave_interrupt, 0,
 			"InterWave", iwcard)) {
 		snd_printk(KERN_ERR PFX "unable to grab IRQ %d\n", xirq);
 		return -EBUSY;
diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c
index de99f47..bbafb0b 100644
--- a/sound/isa/opl3sa2.c
+++ b/sound/isa/opl3sa2.c
@@ -667,7 +667,7 @@ static int __devinit snd_opl3sa2_probe(struct snd_card *card, int dev)
 	err = snd_opl3sa2_detect(card);
 	if (err < 0)
 		return err;
-	err = request_irq(xirq, snd_opl3sa2_interrupt, IRQF_DISABLED,
+	err = request_irq(xirq, snd_opl3sa2_interrupt, 0,
 			  "OPL3-SA2", card);
 	if (err) {
 		snd_printk(KERN_ERR PFX "can't grab IRQ %d\n", xirq);
diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
index 346e12b..6dbbfa7 100644
--- a/sound/isa/opti9xx/opti92x-ad1848.c
+++ b/sound/isa/opti9xx/opti92x-ad1848.c
@@ -892,7 +892,7 @@ static int __devinit snd_opti9xx_probe(struct snd_card *card)
 #endif
 #ifdef OPTi93X
 	error = request_irq(irq, snd_opti93x_interrupt,
-			    IRQF_DISABLED, DEV_NAME" - WSS", chip);
+			    0, DEV_NAME" - WSS", chip);
 	if (error < 0) {
 		snd_printk(KERN_ERR "opti9xx: can't grab IRQ %d\n", irq);
 		return error;
diff --git a/sound/isa/sb/sb_common.c b/sound/isa/sb/sb_common.c
index eae6c1c..d2e1921 100644
--- a/sound/isa/sb/sb_common.c
+++ b/sound/isa/sb/sb_common.c
@@ -240,7 +240,7 @@ int snd_sbdsp_create(struct snd_card *card,
 	if (request_irq(irq, irq_handler,
 			(hardware == SB_HW_ALS4000 ||
 			 hardware == SB_HW_CS5530) ?
-			IRQF_SHARED : IRQF_DISABLED,
+			IRQF_SHARED : 0,
 			"SoundBlaster", (void *) chip)) {
 		snd_printk(KERN_ERR "sb: can't grab irq %d\n", irq);
 		snd_sbdsp_free(chip);
diff --git a/sound/isa/wavefront/wavefront.c b/sound/isa/wavefront/wavefront.c
index 83f291d..8714297 100644
--- a/sound/isa/wavefront/wavefront.c
+++ b/sound/isa/wavefront/wavefront.c
@@ -418,7 +418,7 @@ snd_wavefront_probe (struct snd_card *card, int dev)
 		return -EBUSY;
 	}
 	if (request_irq(ics2115_irq[dev], snd_wavefront_ics2115_interrupt,
-			IRQF_DISABLED, "ICS2115", acard)) {
+			0, "ICS2115", acard)) {
 		snd_printk(KERN_ERR "unable to use ICS2115 IRQ %d\n", ics2115_irq[dev]);
 		return -EBUSY;
 	}
diff --git a/sound/isa/wss/wss_lib.c b/sound/isa/wss/wss_lib.c
index 2a42cc3..7277c5b 100644
--- a/sound/isa/wss/wss_lib.c
+++ b/sound/isa/wss/wss_lib.c
@@ -1833,7 +1833,7 @@ int snd_wss_create(struct snd_card *card,
 	}
 	chip->cport = cport;
 	if (!(hwshare & WSS_HWSHARE_IRQ))
-		if (request_irq(irq, snd_wss_interrupt, IRQF_DISABLED,
+		if (request_irq(irq, snd_wss_interrupt, 0,
 				"WSS", (void *) chip)) {
 			snd_printk(KERN_ERR "wss: can't grab IRQ %d\n", irq);
 			snd_wss_free(chip);
diff --git a/sound/mips/au1x00.c b/sound/mips/au1x00.c
index 446cf97..7567ebd 100644
--- a/sound/mips/au1x00.c
+++ b/sound/mips/au1x00.c
@@ -465,13 +465,13 @@ snd_au1000_pcm_new(struct snd_au1000 *au1000)
 
 	flags = claim_dma_lock();
 	if ((au1000->stream[PLAYBACK]->dma = request_au1000_dma(DMA_ID_AC97C_TX,
-			"AC97 TX", au1000_dma_interrupt, IRQF_DISABLED,
+			"AC97 TX", au1000_dma_interrupt, 0,
 			au1000->stream[PLAYBACK])) < 0) {
 		release_dma_lock(flags);
 		return -EBUSY;
 	}
 	if ((au1000->stream[CAPTURE]->dma = request_au1000_dma(DMA_ID_AC97C_RX,
-			"AC97 RX", au1000_dma_interrupt, IRQF_DISABLED,
+			"AC97 RX", au1000_dma_interrupt, 0,
 			au1000->stream[CAPTURE])) < 0){
 		release_dma_lock(flags);
 		return -EBUSY;
diff --git a/sound/pci/sis7019.c b/sound/pci/sis7019.c
index bcf6152..5ffb20b 100644
--- a/sound/pci/sis7019.c
+++ b/sound/pci/sis7019.c
@@ -1234,7 +1234,7 @@ static int sis_resume(struct pci_dev *pci)
 		goto error;
 	}
 
-	if (request_irq(pci->irq, sis_interrupt, IRQF_DISABLED|IRQF_SHARED,
+	if (request_irq(pci->irq, sis_interrupt, IRQF_SHARED,
 			KBUILD_MODNAME, sis)) {
 		printk(KERN_ERR "sis7019: unable to regain IRQ %d\n", pci->irq);
 		goto error;
@@ -1340,7 +1340,7 @@ static int __devinit sis_chip_create(struct snd_card *card,
 	if (rc)
 		goto error_out_cleanup;
 
-	if (request_irq(pci->irq, sis_interrupt, IRQF_DISABLED|IRQF_SHARED,
+	if (request_irq(pci->irq, sis_interrupt, IRQF_SHARED,
 			KBUILD_MODNAME, sis)) {
 		printk(KERN_ERR "unable to allocate irq %d\n", sis->irq);
 		goto error_out_cleanup;
diff --git a/sound/ppc/snd_ps3.c b/sound/ppc/snd_ps3.c
index bc823a5..775bd95 100644
--- a/sound/ppc/snd_ps3.c
+++ b/sound/ppc/snd_ps3.c
@@ -845,7 +845,7 @@ static int __devinit snd_ps3_allocate_irq(void)
 		return ret;
 	}
 
-	ret = request_irq(the_card.irq_no, snd_ps3_interrupt, IRQF_DISABLED,
+	ret = request_irq(the_card.irq_no, snd_ps3_interrupt, 0,
 			  SND_PS3_DRIVER_NAME, &the_card);
 	if (ret) {
 		pr_info("%s: request_irq failed (%d)\n", __func__, ret);
diff --git a/sound/soc/au1x/dma.c b/sound/soc/au1x/dma.c
index 7aa5b76..177f713 100644
--- a/sound/soc/au1x/dma.c
+++ b/sound/soc/au1x/dma.c
@@ -211,7 +211,7 @@ static int alchemy_pcm_open(struct snd_pcm_substream *substream)
 	/* DMA setup */
 	name = (s == SNDRV_PCM_STREAM_PLAYBACK) ? "audio-tx" : "audio-rx";
 	ctx->stream[s].dma = request_au1000_dma(dmaids[s], name,
-					au1000_dma_interrupt, IRQF_DISABLED,
+					au1000_dma_interrupt, 0,
 					&ctx->stream[s]);
 	set_dma_mode(ctx->stream[s].dma,
 		     get_dma_mode(ctx->stream[s].dma) & ~DMA_NC);
diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
index faa5e9f..243d177 100644
--- a/sound/soc/codecs/tlv320dac33.c
+++ b/sound/soc/codecs/tlv320dac33.c
@@ -1431,7 +1431,7 @@ static int dac33_soc_probe(struct snd_soc_codec *codec)
 	/* Check if the IRQ number is valid and request it */
 	if (dac33->irq >= 0) {
 		ret = request_irq(dac33->irq, dac33_interrupt_handler,
-				  IRQF_TRIGGER_RISING | IRQF_DISABLED,
+				  IRQF_TRIGGER_RISING,
 				  codec->name, codec);
 		if (ret < 0) {
 			dev_err(codec->dev, "Could not request IRQ%d (%d)\n",
diff --git a/sound/soc/nuc900/nuc900-pcm.c b/sound/soc/nuc900/nuc900-pcm.c
index e46d551..865b288 100644
--- a/sound/soc/nuc900/nuc900-pcm.c
+++ b/sound/soc/nuc900/nuc900-pcm.c
@@ -268,7 +268,7 @@ static int nuc900_dma_open(struct snd_pcm_substream *substream)
 	nuc900_audio = nuc900_ac97_data;
 
 	if (request_irq(nuc900_audio->irq_num, nuc900_dma_interrupt,
-			IRQF_DISABLED, "nuc900-dma", substream))
+			0, "nuc900-dma", substream))
 		return -EBUSY;
 
 	runtime->private_data = nuc900_audio;
diff --git a/sound/soc/samsung/ac97.c b/sound/soc/samsung/ac97.c
index b4f9b00..41b387b 100644
--- a/sound/soc/samsung/ac97.c
+++ b/sound/soc/samsung/ac97.c
@@ -450,7 +450,7 @@ static __devinit int s3c_ac97_probe(struct platform_device *pdev)
 	}
 
 	ret = request_irq(irq_res->start, s3c_ac97_irq,
-					IRQF_DISABLED, "AC97", NULL);
+					0, "AC97", NULL);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "ac97: interrupt request failed.\n");
 		goto err4;
diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
index 8e112cc..1493ebf 100644
--- a/sound/soc/sh/fsi.c
+++ b/sound/soc/sh/fsi.c
@@ -1285,7 +1285,7 @@ static int fsi_probe(struct platform_device *pdev)
 	pm_runtime_enable(&pdev->dev);
 	dev_set_drvdata(&pdev->dev, master);
 
-	ret = request_irq(irq, &fsi_interrupt, IRQF_DISABLED,
+	ret = request_irq(irq, &fsi_interrupt, 0,
 			  id_entry->name, master);
 	if (ret) {
 		dev_err(&pdev->dev, "irq request err\n");
diff --git a/sound/soc/txx9/txx9aclc-ac97.c b/sound/soc/txx9/txx9aclc-ac97.c
index 743d07b..a4e3f55 100644
--- a/sound/soc/txx9/txx9aclc-ac97.c
+++ b/sound/soc/txx9/txx9aclc-ac97.c
@@ -201,7 +201,7 @@ static int __devinit txx9aclc_ac97_dev_probe(struct platform_device *pdev)
 	if (!drvdata->base)
 		return -EBUSY;
 	err = devm_request_irq(&pdev->dev, irq, txx9aclc_ac97_irq,
-			       IRQF_DISABLED, dev_name(&pdev->dev), drvdata);
+			       0, dev_name(&pdev->dev), drvdata);
 	if (err < 0)
 		return err;
 
diff --git a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c
index ad7d4d7..f036776 100644
--- a/sound/sparc/amd7930.c
+++ b/sound/sparc/amd7930.c
@@ -962,7 +962,7 @@ static int __devinit snd_amd7930_create(struct snd_card *card,
 	amd7930_idle(amd);
 
 	if (request_irq(irq, snd_amd7930_interrupt,
-			IRQF_DISABLED | IRQF_SHARED, "amd7930", amd)) {
+			IRQF_SHARED, "amd7930", amd)) {
 		snd_printk(KERN_ERR "amd7930-%d: Unable to grab IRQ %d\n",
 			   dev, irq);
 		snd_amd7930_free(amd);
-- 
1.7.4.1

^ permalink raw reply related

* [PATCH RESEND] mmc: sdio: rw extended, use a sg entry for each block
From: Nicolas Ferre @ 2011-09-21  9:40 UTC (permalink / raw)
  To: linux-arm-kernel

While using io multiple blocks operations, change the way that sg is built:
use one sg entry for each block instead of aggregating the whole buffer
in a single sg entry.
Using a single sg entry for a multiple block command may lead to
misunderstanding between the sd/mmc and the DMA controllers. In fact, the
knowledge of the block length will allow both controllers to optimize burst
sizes on internal bus while dealing with those data.

Use a sg table to store start addresses of blocks within the data buffer.

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
---
 drivers/mmc/core/sdio_ops.c |   38 +++++++++++++++++++++++++++++---------
 1 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/drivers/mmc/core/sdio_ops.c b/drivers/mmc/core/sdio_ops.c
index f087d87..aea6978 100644
--- a/drivers/mmc/core/sdio_ops.c
+++ b/drivers/mmc/core/sdio_ops.c
@@ -124,7 +124,7 @@ int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn,
 	struct mmc_request mrq = {0};
 	struct mmc_command cmd = {0};
 	struct mmc_data data = {0};
-	struct scatterlist sg;
+	struct sg_table sgt;
 
 	BUG_ON(!card);
 	BUG_ON(fn > 7);
@@ -144,24 +144,44 @@ int mmc_io_rw_extended(struct mmc_card *card, int write, unsigned fn,
 	cmd.arg |= fn << 28;
 	cmd.arg |= incr_addr ? 0x04000000 : 0x00000000;
 	cmd.arg |= addr << 9;
-	if (blocks == 1 && blksz <= 512)
-		cmd.arg |= (blksz == 512) ? 0 : blksz;	/* byte mode */
-	else
-		cmd.arg |= 0x08000000 | blocks;		/* block mode */
+	if (blocks == 1 && blksz <= 512) {
+		/* byte mode */
+		struct scatterlist sg;
+
+		cmd.arg |= (blksz == 512) ? 0 : blksz;
+		sg_init_one(&sg, buf, blksz * blocks);
+
+		data.sg = &sg;
+		data.sg_len = 1;
+	} else {
+		/* block mode */
+		struct scatterlist *sg_ptr;
+		int i;
+
+		cmd.arg |= 0x08000000 | blocks;
+		if (sg_alloc_table(&sgt, blocks, GFP_KERNEL))
+			return -ENOMEM;
+		for_each_sg(sgt.sgl, sg_ptr, sgt.nents, i) {
+			sg_set_buf(sg_ptr, buf + i * blksz, blksz);
+		}
+
+		data.sg = sgt.sgl;
+		data.sg_len = sgt.nents;
+	}
+
 	cmd.flags = MMC_RSP_SPI_R5 | MMC_RSP_R5 | MMC_CMD_ADTC;
 
 	data.blksz = blksz;
 	data.blocks = blocks;
 	data.flags = write ? MMC_DATA_WRITE : MMC_DATA_READ;
-	data.sg = &sg;
-	data.sg_len = 1;
-
-	sg_init_one(&sg, buf, blksz * blocks);
 
 	mmc_set_data_timeout(&data, card);
 
 	mmc_wait_for_req(card->host, &mrq);
 
+	if (blocks != 1 || blksz > 512)
+		sg_free_table(&sgt);
+
 	if (cmd.error)
 		return cmd.error;
 	if (data.error)
-- 
1.7.3

^ permalink raw reply related

* DT vs ARM static mappings
From: Pawel Moll @ 2011-09-21  9:41 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <201109202128.55517.arnd@arndb.de>

> > 2. Single DT_MACHINE_START matching (the most generic) "arm,vexpress"
> > and doing (rougly) this in v2m_map_io:
> > 
> > of_scan_flat_dt(v2m_dt_iotable_init, NULL);
> > 
> > v2m_dt_iotable_init(...)
> > {
> > 	if (depth != 0)
> > 		return 0;
> > 	if (of_flat_dt_is_compatible(node, "arm,vexpress-legacy"))
> > 		iotable_init(v2m_io_desc_legacy);
> > 	else (of_flat_dt_is_compatible(node, "arm,vexpress-rs1"))
> > 		iotable_init(v2m_io_desc_rs1);
> > 	else
> > 		panic();
> > }
> > 
> > Neither of them seem particularly appealing... ;-)
> 
> But I think both ways would be acceptable in the end. It's not a lot
> of extra code either way. In the second case, I would probably have
> the legacy case as a special variant of the map_io function and have
> all others be the default instead of falling back to panic though.

Ok, I'll go (roughly) that way.

> > In my case it's sysreg and sysctl. There are two more users of static
> > mappings: timer01 and timer23, but they could at some point do ioremap()
> > on their own (especially with Nico's changes).
> 
> Well, I think with Nico's cahnges, you /can/ actually do ioremap for
> areas that have been mapped through the iotable before kmalloc is up.
> IIRC, omap does this for a number of peripherals.
> 
> It's a bit of a hack, but I think it's much better than taking hardcoded
> addresses.

Yes, I was thinking about that last night. If you think it's acceptable
I'll do this (killing MMIO_P2V on the way ;-)

> With the combination of the points mentioned above, you should be
> able to do:
> 
> - map the entire I/O area in map_io(), depending on the board
> - have an __iomem pointer for the sysreg
> - populate that pointer using of_iomap from the device tree address
>   before you first access it.
> 
> Do you think that would work?

Yes, I suppose so. The last bit (getting the offset from DT) will be a
little ugly, I think, but let's wait till I get some code done.

Cheers!

Pawe?

^ permalink raw reply

* [PATCH 0/3] GIC OF bindings
From: Shawn Guo @ 2011-09-21  9:43 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316550244-3655-1-git-send-email-robherring2@gmail.com>

On Tue, Sep 20, 2011 at 03:24:01PM -0500, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> Hopefully, this is the final or near final version of GIC binding support.
> 
> Changes from the previous version:
> - SPIs and PPIs are numbered starting at 0. Now the gic has it's own irq
>   domain translate function instead of the simple domain one.
> - interrupt cell format has changed based on Grant's proposal.
> - Dropped "ARM: gic: allow irq_start to be 0". Instead, the first 16 irqs
>   are skipped and the domain irq_base adjusted accordingly.
> - Added a fix to of_irq_find_parent when the parent == child.
> - Renamed intc_desc.parent to intc_desc.interrupt_parent.
> - Implemented Grant's algorithm for walking the list of interrupt
>   controllers. Added a return value to interrupt init functions, so they
>   don't get added to the parent list on a init failure.
> 
> The changes are significant enough that I did not include previous
> acked/reviewed/tested-by's.
> 
You can add mine back.  On imx6q:

Tested-by: Shawn Guo <shawn.guo@linaro.org>

Hopefully, this is the last round of binding scheme change.  There are
63 nodes in imx6q dts with 'interrupts' property.  I have changed them
3 times :)

-- 
Regards,
Shawn

^ permalink raw reply

* [PATCH 2/3] at91/gpio: drop PIN_BASE
From: Nicolas Ferre @ 2011-09-21  9:45 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <4E76FF22.40001@atmel.com>

Le 19/09/2011 10:36, Nicolas Ferre :
> Le 17/09/2011 20:58, Jean-Christophe PLAGNIOL-VILLARD :
>> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
>> Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
>> ---
>>  arch/arm/mach-at91/gpio.c              |   54 ++--
>>  arch/arm/mach-at91/include/mach/gpio.h |  454 ++++++++++++++++----------------
>>  2 files changed, 254 insertions(+), 254 deletions(-)
>>  rewrite arch/arm/mach-at91/include/mach/gpio.h (78%)
>>
>> diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
>> index 04beff1..e709406 100644
>> --- a/arch/arm/mach-at91/gpio.c
>> +++ b/arch/arm/mach-at91/gpio.c
>> @@ -60,18 +60,17 @@ static int at91_gpiolib_direction_input(struct gpio_chip *chip,
>>  	}
>>  
>>  static struct at91_gpio_chip gpio_chip[] = {
>> -	AT91_GPIO_CHIP("A", 0x00 + PIN_BASE, 32),
>> -	AT91_GPIO_CHIP("B", 0x20 + PIN_BASE, 32),
>> -	AT91_GPIO_CHIP("C", 0x40 + PIN_BASE, 32),
>> -	AT91_GPIO_CHIP("D", 0x60 + PIN_BASE, 32),
>> -	AT91_GPIO_CHIP("E", 0x80 + PIN_BASE, 32),
>> +	AT91_GPIO_CHIP("A", 0x00, 32),
>> +	AT91_GPIO_CHIP("B", 0x20, 32),
>> +	AT91_GPIO_CHIP("C", 0x40, 32),
>> +	AT91_GPIO_CHIP("D", 0x60, 32),
>> +	AT91_GPIO_CHIP("E", 0x80, 32),
>>  };
>>  
>>  static int gpio_banks;
>>  
>>  static inline void __iomem *pin_to_controller(unsigned pin)
>>  {
>> -	pin -= PIN_BASE;
>>  	pin /= 32;
>>  	if (likely(pin < gpio_banks))
>>  		return gpio_chip[pin].regbase;
>> @@ -81,7 +80,6 @@ static inline void __iomem *pin_to_controller(unsigned pin)
>>  
>>  static inline unsigned pin_to_mask(unsigned pin)
>>  {
>> -	pin -= PIN_BASE;
>>  	return 1 << (pin % 32);
>>  }
>>  
>> @@ -276,8 +274,9 @@ static u32 backups[MAX_GPIO_BANKS];
>>  
>>  static int gpio_irq_set_wake(struct irq_data *d, unsigned state)
>>  {
>> -	unsigned	mask = pin_to_mask(d->irq);
>> -	unsigned	bank = (d->irq - PIN_BASE) / 32;
>> +	unsigned	pin = irq_to_gpio(d->irq);
> 
> No, we try to remove the use of this irq_to_gpio() function. So we have
> to avoid re-introducing it...

Well, as this use is limited to the gpio driver itself it seems that we
can accept it...

So we can go forward with this patch series.

Best regards,
-- 
Nicolas Ferre

^ permalink raw reply

* [PATCH 53/57] sound: irq: Remove IRQF_DISABLED
From: Takashi Iwai @ 2011-09-21  9:52 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-54-git-send-email-yong.zhang0@gmail.com>

At Wed, 21 Sep 2011 17:28:54 +0800,
Yong Zhang wrote:
> 
> Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],

Hm, this id hits a different commit:
    commit c58543c869606532c2382f027d6466f4672ea756
    Author: David S. Miller <davem@davemloft.net>
    Date:   Tue Oct 13 00:49:09 2009 -0700

    sparc64: Set IRQF_DISABLED on LDC channel IRQs.

You mean commit e58aa3d2d0cc01ad8d6f7f640a0670433f794922?

> We run all interrupt handlers with interrupts disabled
> and we even check and yell when an interrupt handler
> returns with interrupts enabled (see commit [b738a50a:
> genirq: Warn when handler enables interrupts]).
> 
> So now this flag is a NOOP and can be removed.
> 
> Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

Do you want to merge by yourself or shall I take it to sound git tree?
Since IRQF_DISABLED isn't used, it can be applied safely in 3.1-based
tree, right?

Anyway, if needed, take my ack:
	Acked-by: Takashi Iwai <tiwai@suse.de>


thanks,

Takashi

> ---
>  include/sound/initval.h            |    2 +-
>  sound/arm/aaci.c                   |    2 +-
>  sound/arm/pxa2xx-ac97-lib.c        |    2 +-
>  sound/drivers/ml403-ac97cr.c       |    4 ++--
>  sound/drivers/mpu401/mpu401_uart.c |    2 +-
>  sound/drivers/mtpav.c              |    2 +-
>  sound/drivers/serial-u16550.c      |    2 +-
>  sound/isa/ad1816a/ad1816a_lib.c    |    2 +-
>  sound/isa/es1688/es1688_lib.c      |    2 +-
>  sound/isa/es18xx.c                 |    2 +-
>  sound/isa/gus/gus_main.c           |    2 +-
>  sound/isa/gus/gusmax.c             |    2 +-
>  sound/isa/gus/interwave.c          |    2 +-
>  sound/isa/opl3sa2.c                |    2 +-
>  sound/isa/opti9xx/opti92x-ad1848.c |    2 +-
>  sound/isa/sb/sb_common.c           |    2 +-
>  sound/isa/wavefront/wavefront.c    |    2 +-
>  sound/isa/wss/wss_lib.c            |    2 +-
>  sound/mips/au1x00.c                |    4 ++--
>  sound/pci/sis7019.c                |    4 ++--
>  sound/ppc/snd_ps3.c                |    2 +-
>  sound/soc/au1x/dma.c               |    2 +-
>  sound/soc/codecs/tlv320dac33.c     |    2 +-
>  sound/soc/nuc900/nuc900-pcm.c      |    2 +-
>  sound/soc/samsung/ac97.c           |    2 +-
>  sound/soc/sh/fsi.c                 |    2 +-
>  sound/soc/txx9/txx9aclc-ac97.c     |    2 +-
>  sound/sparc/amd7930.c              |    2 +-
>  28 files changed, 31 insertions(+), 31 deletions(-)
> 
> diff --git a/include/sound/initval.h b/include/sound/initval.h
> index 1daa6df..f99a0d2 100644
> --- a/include/sound/initval.h
> +++ b/include/sound/initval.h
> @@ -62,7 +62,7 @@ static int snd_legacy_find_free_irq(int *irq_table)
>  {
>  	while (*irq_table != -1) {
>  		if (!request_irq(*irq_table, snd_legacy_empty_irq_handler,
> -				 IRQF_DISABLED | IRQF_PROBE_SHARED, "ALSA Test IRQ",
> +				 IRQF_PROBE_SHARED, "ALSA Test IRQ",
>  				 (void *) irq_table)) {
>  			free_irq(*irq_table, (void *) irq_table);
>  			return *irq_table;
> diff --git a/sound/arm/aaci.c b/sound/arm/aaci.c
> index d0cead3..e518d38 100644
> --- a/sound/arm/aaci.c
> +++ b/sound/arm/aaci.c
> @@ -443,7 +443,7 @@ static int aaci_pcm_open(struct snd_pcm_substream *substream)
>  	mutex_lock(&aaci->irq_lock);
>  	if (!aaci->users++) {
>  		ret = request_irq(aaci->dev->irq[0], aaci_irq,
> -			   IRQF_SHARED | IRQF_DISABLED, DRIVER_NAME, aaci);
> +			   IRQF_SHARED, DRIVER_NAME, aaci);
>  		if (ret != 0)
>  			aaci->users--;
>  	}
> diff --git a/sound/arm/pxa2xx-ac97-lib.c b/sound/arm/pxa2xx-ac97-lib.c
> index 88eec38..8ad6535 100644
> --- a/sound/arm/pxa2xx-ac97-lib.c
> +++ b/sound/arm/pxa2xx-ac97-lib.c
> @@ -359,7 +359,7 @@ int __devinit pxa2xx_ac97_hw_probe(struct platform_device *dev)
>  	if (ret)
>  		goto err_clk2;
>  
> -	ret = request_irq(IRQ_AC97, pxa2xx_ac97_irq, IRQF_DISABLED, "AC97", NULL);
> +	ret = request_irq(IRQ_AC97, pxa2xx_ac97_irq, 0, "AC97", NULL);
>  	if (ret < 0)
>  		goto err_irq;
>  
> diff --git a/sound/drivers/ml403-ac97cr.c b/sound/drivers/ml403-ac97cr.c
> index 5cfcb90..2c7a763 100644
> --- a/sound/drivers/ml403-ac97cr.c
> +++ b/sound/drivers/ml403-ac97cr.c
> @@ -1153,7 +1153,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev,
>  		   "0x%x done\n", (unsigned int)ml403_ac97cr->port);
>  	/* get irq */
>  	irq = platform_get_irq(pfdev, 0);
> -	if (request_irq(irq, snd_ml403_ac97cr_irq, IRQF_DISABLED,
> +	if (request_irq(irq, snd_ml403_ac97cr_irq, 0,
>  			dev_name(&pfdev->dev), (void *)ml403_ac97cr)) {
>  		snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": "
>  			   "unable to grab IRQ %d\n",
> @@ -1166,7 +1166,7 @@ snd_ml403_ac97cr_create(struct snd_card *card, struct platform_device *pfdev,
>  		   "request (playback) irq %d done\n",
>  		   ml403_ac97cr->irq);
>  	irq = platform_get_irq(pfdev, 1);
> -	if (request_irq(irq, snd_ml403_ac97cr_irq, IRQF_DISABLED,
> +	if (request_irq(irq, snd_ml403_ac97cr_irq, 0,
>  			dev_name(&pfdev->dev), (void *)ml403_ac97cr)) {
>  		snd_printk(KERN_ERR SND_ML403_AC97CR_DRIVER ": "
>  			   "unable to grab IRQ %d\n",
> diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c
> index 34df505..1cff331 100644
> --- a/sound/drivers/mpu401/mpu401_uart.c
> +++ b/sound/drivers/mpu401/mpu401_uart.c
> @@ -578,7 +578,7 @@ int snd_mpu401_uart_new(struct snd_card *card, int device,
>  	else
>  		mpu->cport = port + 1;
>  	if (irq >= 0) {
> -		if (request_irq(irq, snd_mpu401_uart_interrupt, IRQF_DISABLED,
> +		if (request_irq(irq, snd_mpu401_uart_interrupt, 0,
>  				"MPU401 UART", (void *) mpu)) {
>  			snd_printk(KERN_ERR "mpu401_uart: "
>  				   "unable to grab IRQ %d\n", irq);
> diff --git a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c
> index f50021c..7693079 100644
> --- a/sound/drivers/mtpav.c
> +++ b/sound/drivers/mtpav.c
> @@ -590,7 +590,7 @@ static int __devinit snd_mtpav_get_ISA(struct mtpav * mcard)
>  		return -EBUSY;
>  	}
>  	mcard->port = port;
> -	if (request_irq(irq, snd_mtpav_irqh, IRQF_DISABLED, "MOTU MTPAV", mcard)) {
> +	if (request_irq(irq, snd_mtpav_irqh, 0, "MOTU MTPAV", mcard)) {
>  		snd_printk(KERN_ERR "MTVAP IRQ %d busy\n", irq);
>  		return -EBUSY;
>  	}
> diff --git a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
> index 6c5bf58..85aad43 100644
> --- a/sound/drivers/serial-u16550.c
> +++ b/sound/drivers/serial-u16550.c
> @@ -816,7 +816,7 @@ static int __devinit snd_uart16550_create(struct snd_card *card,
>  
>  	if (irq >= 0 && irq != SNDRV_AUTO_IRQ) {
>  		if (request_irq(irq, snd_uart16550_interrupt,
> -				IRQF_DISABLED, "Serial MIDI", uart)) {
> +				0, "Serial MIDI", uart)) {
>  			snd_printk(KERN_WARNING
>  				   "irq %d busy. Using Polling.\n", irq);
>  		} else {
> diff --git a/sound/isa/ad1816a/ad1816a_lib.c b/sound/isa/ad1816a/ad1816a_lib.c
> index 05aef8b..177eed3 100644
> --- a/sound/isa/ad1816a/ad1816a_lib.c
> +++ b/sound/isa/ad1816a/ad1816a_lib.c
> @@ -595,7 +595,7 @@ int __devinit snd_ad1816a_create(struct snd_card *card,
>  		snd_ad1816a_free(chip);
>  		return -EBUSY;
>  	}
> -	if (request_irq(irq, snd_ad1816a_interrupt, IRQF_DISABLED, "AD1816A", (void *) chip)) {
> +	if (request_irq(irq, snd_ad1816a_interrupt, 0, "AD1816A", (void *) chip)) {
>  		snd_printk(KERN_ERR "ad1816a: can't grab IRQ %d\n", irq);
>  		snd_ad1816a_free(chip);
>  		return -EBUSY;
> diff --git a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c
> index 0767620..d3eab6f 100644
> --- a/sound/isa/es1688/es1688_lib.c
> +++ b/sound/isa/es1688/es1688_lib.c
> @@ -661,7 +661,7 @@ int snd_es1688_create(struct snd_card *card,
>  		snd_printk(KERN_ERR "es1688: can't grab port 0x%lx\n", port + 4);
>  		return -EBUSY;
>  	}
> -	if (request_irq(irq, snd_es1688_interrupt, IRQF_DISABLED, "ES1688", (void *) chip)) {
> +	if (request_irq(irq, snd_es1688_interrupt, 0, "ES1688", (void *) chip)) {
>  		snd_printk(KERN_ERR "es1688: can't grab IRQ %d\n", irq);
>  		return -EBUSY;
>  	}
> diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c
> index aeee8f8..bf6ad0b 100644
> --- a/sound/isa/es18xx.c
> +++ b/sound/isa/es18xx.c
> @@ -1805,7 +1805,7 @@ static int __devinit snd_es18xx_new_device(struct snd_card *card,
>  		return -EBUSY;
>  	}
>  
> -	if (request_irq(irq, snd_es18xx_interrupt, IRQF_DISABLED, "ES18xx",
> +	if (request_irq(irq, snd_es18xx_interrupt, 0, "ES18xx",
>  			(void *) card)) {
>  		snd_es18xx_free(card);
>  		snd_printk(KERN_ERR PFX "unable to grap IRQ %d\n", irq);
> diff --git a/sound/isa/gus/gus_main.c b/sound/isa/gus/gus_main.c
> index 12eb98f..3167e5a 100644
> --- a/sound/isa/gus/gus_main.c
> +++ b/sound/isa/gus/gus_main.c
> @@ -180,7 +180,7 @@ int snd_gus_create(struct snd_card *card,
>  		snd_gus_free(gus);
>  		return -EBUSY;
>  	}
> -	if (irq >= 0 && request_irq(irq, snd_gus_interrupt, IRQF_DISABLED, "GUS GF1", (void *) gus)) {
> +	if (irq >= 0 && request_irq(irq, snd_gus_interrupt, 0, "GUS GF1", (void *) gus)) {
>  		snd_printk(KERN_ERR "gus: can't grab irq %d\n", irq);
>  		snd_gus_free(gus);
>  		return -EBUSY;
> diff --git a/sound/isa/gus/gusmax.c b/sound/isa/gus/gusmax.c
> index 3e4a58b..c43faa0 100644
> --- a/sound/isa/gus/gusmax.c
> +++ b/sound/isa/gus/gusmax.c
> @@ -291,7 +291,7 @@ static int __devinit snd_gusmax_probe(struct device *pdev, unsigned int dev)
>  		goto _err;
>  	}
>  
> -	if (request_irq(xirq, snd_gusmax_interrupt, IRQF_DISABLED, "GUS MAX", (void *)maxcard)) {
> +	if (request_irq(xirq, snd_gusmax_interrupt, 0, "GUS MAX", (void *)maxcard)) {
>  		snd_printk(KERN_ERR PFX "unable to grab IRQ %d\n", xirq);
>  		err = -EBUSY;
>  		goto _err;
> diff --git a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c
> index c7b80e4..5f869a3 100644
> --- a/sound/isa/gus/interwave.c
> +++ b/sound/isa/gus/interwave.c
> @@ -684,7 +684,7 @@ static int __devinit snd_interwave_probe(struct snd_card *card, int dev)
>  	if ((err = snd_gus_initialize(gus)) < 0)
>  		return err;
>  
> -	if (request_irq(xirq, snd_interwave_interrupt, IRQF_DISABLED,
> +	if (request_irq(xirq, snd_interwave_interrupt, 0,
>  			"InterWave", iwcard)) {
>  		snd_printk(KERN_ERR PFX "unable to grab IRQ %d\n", xirq);
>  		return -EBUSY;
> diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c
> index de99f47..bbafb0b 100644
> --- a/sound/isa/opl3sa2.c
> +++ b/sound/isa/opl3sa2.c
> @@ -667,7 +667,7 @@ static int __devinit snd_opl3sa2_probe(struct snd_card *card, int dev)
>  	err = snd_opl3sa2_detect(card);
>  	if (err < 0)
>  		return err;
> -	err = request_irq(xirq, snd_opl3sa2_interrupt, IRQF_DISABLED,
> +	err = request_irq(xirq, snd_opl3sa2_interrupt, 0,
>  			  "OPL3-SA2", card);
>  	if (err) {
>  		snd_printk(KERN_ERR PFX "can't grab IRQ %d\n", xirq);
> diff --git a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
> index 346e12b..6dbbfa7 100644
> --- a/sound/isa/opti9xx/opti92x-ad1848.c
> +++ b/sound/isa/opti9xx/opti92x-ad1848.c
> @@ -892,7 +892,7 @@ static int __devinit snd_opti9xx_probe(struct snd_card *card)
>  #endif
>  #ifdef OPTi93X
>  	error = request_irq(irq, snd_opti93x_interrupt,
> -			    IRQF_DISABLED, DEV_NAME" - WSS", chip);
> +			    0, DEV_NAME" - WSS", chip);
>  	if (error < 0) {
>  		snd_printk(KERN_ERR "opti9xx: can't grab IRQ %d\n", irq);
>  		return error;
> diff --git a/sound/isa/sb/sb_common.c b/sound/isa/sb/sb_common.c
> index eae6c1c..d2e1921 100644
> --- a/sound/isa/sb/sb_common.c
> +++ b/sound/isa/sb/sb_common.c
> @@ -240,7 +240,7 @@ int snd_sbdsp_create(struct snd_card *card,
>  	if (request_irq(irq, irq_handler,
>  			(hardware == SB_HW_ALS4000 ||
>  			 hardware == SB_HW_CS5530) ?
> -			IRQF_SHARED : IRQF_DISABLED,
> +			IRQF_SHARED : 0,
>  			"SoundBlaster", (void *) chip)) {
>  		snd_printk(KERN_ERR "sb: can't grab irq %d\n", irq);
>  		snd_sbdsp_free(chip);
> diff --git a/sound/isa/wavefront/wavefront.c b/sound/isa/wavefront/wavefront.c
> index 83f291d..8714297 100644
> --- a/sound/isa/wavefront/wavefront.c
> +++ b/sound/isa/wavefront/wavefront.c
> @@ -418,7 +418,7 @@ snd_wavefront_probe (struct snd_card *card, int dev)
>  		return -EBUSY;
>  	}
>  	if (request_irq(ics2115_irq[dev], snd_wavefront_ics2115_interrupt,
> -			IRQF_DISABLED, "ICS2115", acard)) {
> +			0, "ICS2115", acard)) {
>  		snd_printk(KERN_ERR "unable to use ICS2115 IRQ %d\n", ics2115_irq[dev]);
>  		return -EBUSY;
>  	}
> diff --git a/sound/isa/wss/wss_lib.c b/sound/isa/wss/wss_lib.c
> index 2a42cc3..7277c5b 100644
> --- a/sound/isa/wss/wss_lib.c
> +++ b/sound/isa/wss/wss_lib.c
> @@ -1833,7 +1833,7 @@ int snd_wss_create(struct snd_card *card,
>  	}
>  	chip->cport = cport;
>  	if (!(hwshare & WSS_HWSHARE_IRQ))
> -		if (request_irq(irq, snd_wss_interrupt, IRQF_DISABLED,
> +		if (request_irq(irq, snd_wss_interrupt, 0,
>  				"WSS", (void *) chip)) {
>  			snd_printk(KERN_ERR "wss: can't grab IRQ %d\n", irq);
>  			snd_wss_free(chip);
> diff --git a/sound/mips/au1x00.c b/sound/mips/au1x00.c
> index 446cf97..7567ebd 100644
> --- a/sound/mips/au1x00.c
> +++ b/sound/mips/au1x00.c
> @@ -465,13 +465,13 @@ snd_au1000_pcm_new(struct snd_au1000 *au1000)
>  
>  	flags = claim_dma_lock();
>  	if ((au1000->stream[PLAYBACK]->dma = request_au1000_dma(DMA_ID_AC97C_TX,
> -			"AC97 TX", au1000_dma_interrupt, IRQF_DISABLED,
> +			"AC97 TX", au1000_dma_interrupt, 0,
>  			au1000->stream[PLAYBACK])) < 0) {
>  		release_dma_lock(flags);
>  		return -EBUSY;
>  	}
>  	if ((au1000->stream[CAPTURE]->dma = request_au1000_dma(DMA_ID_AC97C_RX,
> -			"AC97 RX", au1000_dma_interrupt, IRQF_DISABLED,
> +			"AC97 RX", au1000_dma_interrupt, 0,
>  			au1000->stream[CAPTURE])) < 0){
>  		release_dma_lock(flags);
>  		return -EBUSY;
> diff --git a/sound/pci/sis7019.c b/sound/pci/sis7019.c
> index bcf6152..5ffb20b 100644
> --- a/sound/pci/sis7019.c
> +++ b/sound/pci/sis7019.c
> @@ -1234,7 +1234,7 @@ static int sis_resume(struct pci_dev *pci)
>  		goto error;
>  	}
>  
> -	if (request_irq(pci->irq, sis_interrupt, IRQF_DISABLED|IRQF_SHARED,
> +	if (request_irq(pci->irq, sis_interrupt, IRQF_SHARED,
>  			KBUILD_MODNAME, sis)) {
>  		printk(KERN_ERR "sis7019: unable to regain IRQ %d\n", pci->irq);
>  		goto error;
> @@ -1340,7 +1340,7 @@ static int __devinit sis_chip_create(struct snd_card *card,
>  	if (rc)
>  		goto error_out_cleanup;
>  
> -	if (request_irq(pci->irq, sis_interrupt, IRQF_DISABLED|IRQF_SHARED,
> +	if (request_irq(pci->irq, sis_interrupt, IRQF_SHARED,
>  			KBUILD_MODNAME, sis)) {
>  		printk(KERN_ERR "unable to allocate irq %d\n", sis->irq);
>  		goto error_out_cleanup;
> diff --git a/sound/ppc/snd_ps3.c b/sound/ppc/snd_ps3.c
> index bc823a5..775bd95 100644
> --- a/sound/ppc/snd_ps3.c
> +++ b/sound/ppc/snd_ps3.c
> @@ -845,7 +845,7 @@ static int __devinit snd_ps3_allocate_irq(void)
>  		return ret;
>  	}
>  
> -	ret = request_irq(the_card.irq_no, snd_ps3_interrupt, IRQF_DISABLED,
> +	ret = request_irq(the_card.irq_no, snd_ps3_interrupt, 0,
>  			  SND_PS3_DRIVER_NAME, &the_card);
>  	if (ret) {
>  		pr_info("%s: request_irq failed (%d)\n", __func__, ret);
> diff --git a/sound/soc/au1x/dma.c b/sound/soc/au1x/dma.c
> index 7aa5b76..177f713 100644
> --- a/sound/soc/au1x/dma.c
> +++ b/sound/soc/au1x/dma.c
> @@ -211,7 +211,7 @@ static int alchemy_pcm_open(struct snd_pcm_substream *substream)
>  	/* DMA setup */
>  	name = (s == SNDRV_PCM_STREAM_PLAYBACK) ? "audio-tx" : "audio-rx";
>  	ctx->stream[s].dma = request_au1000_dma(dmaids[s], name,
> -					au1000_dma_interrupt, IRQF_DISABLED,
> +					au1000_dma_interrupt, 0,
>  					&ctx->stream[s]);
>  	set_dma_mode(ctx->stream[s].dma,
>  		     get_dma_mode(ctx->stream[s].dma) & ~DMA_NC);
> diff --git a/sound/soc/codecs/tlv320dac33.c b/sound/soc/codecs/tlv320dac33.c
> index faa5e9f..243d177 100644
> --- a/sound/soc/codecs/tlv320dac33.c
> +++ b/sound/soc/codecs/tlv320dac33.c
> @@ -1431,7 +1431,7 @@ static int dac33_soc_probe(struct snd_soc_codec *codec)
>  	/* Check if the IRQ number is valid and request it */
>  	if (dac33->irq >= 0) {
>  		ret = request_irq(dac33->irq, dac33_interrupt_handler,
> -				  IRQF_TRIGGER_RISING | IRQF_DISABLED,
> +				  IRQF_TRIGGER_RISING,
>  				  codec->name, codec);
>  		if (ret < 0) {
>  			dev_err(codec->dev, "Could not request IRQ%d (%d)\n",
> diff --git a/sound/soc/nuc900/nuc900-pcm.c b/sound/soc/nuc900/nuc900-pcm.c
> index e46d551..865b288 100644
> --- a/sound/soc/nuc900/nuc900-pcm.c
> +++ b/sound/soc/nuc900/nuc900-pcm.c
> @@ -268,7 +268,7 @@ static int nuc900_dma_open(struct snd_pcm_substream *substream)
>  	nuc900_audio = nuc900_ac97_data;
>  
>  	if (request_irq(nuc900_audio->irq_num, nuc900_dma_interrupt,
> -			IRQF_DISABLED, "nuc900-dma", substream))
> +			0, "nuc900-dma", substream))
>  		return -EBUSY;
>  
>  	runtime->private_data = nuc900_audio;
> diff --git a/sound/soc/samsung/ac97.c b/sound/soc/samsung/ac97.c
> index b4f9b00..41b387b 100644
> --- a/sound/soc/samsung/ac97.c
> +++ b/sound/soc/samsung/ac97.c
> @@ -450,7 +450,7 @@ static __devinit int s3c_ac97_probe(struct platform_device *pdev)
>  	}
>  
>  	ret = request_irq(irq_res->start, s3c_ac97_irq,
> -					IRQF_DISABLED, "AC97", NULL);
> +					0, "AC97", NULL);
>  	if (ret < 0) {
>  		dev_err(&pdev->dev, "ac97: interrupt request failed.\n");
>  		goto err4;
> diff --git a/sound/soc/sh/fsi.c b/sound/soc/sh/fsi.c
> index 8e112cc..1493ebf 100644
> --- a/sound/soc/sh/fsi.c
> +++ b/sound/soc/sh/fsi.c
> @@ -1285,7 +1285,7 @@ static int fsi_probe(struct platform_device *pdev)
>  	pm_runtime_enable(&pdev->dev);
>  	dev_set_drvdata(&pdev->dev, master);
>  
> -	ret = request_irq(irq, &fsi_interrupt, IRQF_DISABLED,
> +	ret = request_irq(irq, &fsi_interrupt, 0,
>  			  id_entry->name, master);
>  	if (ret) {
>  		dev_err(&pdev->dev, "irq request err\n");
> diff --git a/sound/soc/txx9/txx9aclc-ac97.c b/sound/soc/txx9/txx9aclc-ac97.c
> index 743d07b..a4e3f55 100644
> --- a/sound/soc/txx9/txx9aclc-ac97.c
> +++ b/sound/soc/txx9/txx9aclc-ac97.c
> @@ -201,7 +201,7 @@ static int __devinit txx9aclc_ac97_dev_probe(struct platform_device *pdev)
>  	if (!drvdata->base)
>  		return -EBUSY;
>  	err = devm_request_irq(&pdev->dev, irq, txx9aclc_ac97_irq,
> -			       IRQF_DISABLED, dev_name(&pdev->dev), drvdata);
> +			       0, dev_name(&pdev->dev), drvdata);
>  	if (err < 0)
>  		return err;
>  
> diff --git a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c
> index ad7d4d7..f036776 100644
> --- a/sound/sparc/amd7930.c
> +++ b/sound/sparc/amd7930.c
> @@ -962,7 +962,7 @@ static int __devinit snd_amd7930_create(struct snd_card *card,
>  	amd7930_idle(amd);
>  
>  	if (request_irq(irq, snd_amd7930_interrupt,
> -			IRQF_DISABLED | IRQF_SHARED, "amd7930", amd)) {
> +			IRQF_SHARED, "amd7930", amd)) {
>  		snd_printk(KERN_ERR "amd7930-%d: Unable to grab IRQ %d\n",
>  			   dev, irq);
>  		snd_amd7930_free(amd);
> -- 
> 1.7.4.1
> 

^ permalink raw reply

* [PATCH 46/57] rtc: irq: Remove IRQF_DISABLED
From: Wan ZongShun @ 2011-09-21  9:52 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-47-git-send-email-yong.zhang0@gmail.com>

2011/9/21 Yong Zhang <yong.zhang0@gmail.com>:
> Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
> We run all interrupt handlers with interrupts disabled
> and we even check and yell when an interrupt handler
> returns with interrupts enabled (see commit [b738a50a:
> genirq: Warn when handler enables interrupts]).
>
> So now this flag is a NOOP and can be removed.
>
> Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>

thanks, add Andrew in loop.

Acked-by: Wan ZongShun <mcuos.com@gmail.com>

> ---
> ?drivers/rtc/rtc-at91sam9.c ?| ? ?2 +-
> ?drivers/rtc/rtc-cmos.c ? ? ?| ? ?2 +-
> ?drivers/rtc/rtc-coh901331.c | ? ?2 +-
> ?drivers/rtc/rtc-davinci.c ? | ? ?2 +-
> ?drivers/rtc/rtc-ds1511.c ? ?| ? ?2 +-
> ?drivers/rtc/rtc-ds1553.c ? ?| ? ?2 +-
> ?drivers/rtc/rtc-lpc32xx.c ? | ? ?2 +-
> ?drivers/rtc/rtc-mpc5121.c ? | ? ?4 ++--
> ?drivers/rtc/rtc-mrst.c ? ? ?| ? ?2 +-
> ?drivers/rtc/rtc-mv.c ? ? ? ?| ? ?2 +-
> ?drivers/rtc/rtc-nuc900.c ? ?| ? ?2 +-
> ?drivers/rtc/rtc-omap.c ? ? ?| ? ?4 ++--
> ?drivers/rtc/rtc-pl030.c ? ? | ? ?2 +-
> ?drivers/rtc/rtc-pl031.c ? ? | ? ?2 +-
> ?drivers/rtc/rtc-puv3.c ? ? ?| ? ?4 ++--
> ?drivers/rtc/rtc-pxa.c ? ? ? | ? ?4 ++--
> ?drivers/rtc/rtc-s3c.c ? ? ? | ? ?4 ++--
> ?drivers/rtc/rtc-sa1100.c ? ?| ? ?4 ++--
> ?drivers/rtc/rtc-sh.c ? ? ? ?| ? ?8 ++++----
> ?drivers/rtc/rtc-stk17ta8.c ?| ? ?2 +-
> ?drivers/rtc/rtc-tx4939.c ? ?| ? ?2 +-
> ?drivers/rtc/rtc-vr41xx.c ? ?| ? ?4 ++--
> ?22 files changed, 32 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/rtc/rtc-at91sam9.c b/drivers/rtc/rtc-at91sam9.c
> index a3ad957..0c09e8f 100644
> --- a/drivers/rtc/rtc-at91sam9.c
> +++ b/drivers/rtc/rtc-at91sam9.c
> @@ -331,7 +331,7 @@ static int __init at91_rtc_probe(struct platform_device *pdev)
>
> ? ? ? ?/* register irq handler after we know what name we'll use */
> ? ? ? ?ret = request_irq(AT91_ID_SYS, at91_rtc_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED | IRQF_SHARED,
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_SHARED,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?dev_name(&rtc->rtcdev->dev), rtc);
> ? ? ? ?if (ret) {
> ? ? ? ? ? ? ? ?dev_dbg(&pdev->dev, "can't share IRQ %d?\n", AT91_ID_SYS);
> diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
> index 05beb6c..66d3b14 100644
> --- a/drivers/rtc/rtc-cmos.c
> +++ b/drivers/rtc/rtc-cmos.c
> @@ -714,7 +714,7 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
> ? ? ? ? ? ? ? ? ? ? ? ?rtc_cmos_int_handler = cmos_interrupt;
>
> ? ? ? ? ? ? ? ?retval = request_irq(rtc_irq, rtc_cmos_int_handler,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, dev_name(&cmos_rtc.rtc->dev),
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, dev_name(&cmos_rtc.rtc->dev),
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?cmos_rtc.rtc);
> ? ? ? ? ? ? ? ?if (retval < 0) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_dbg(dev, "IRQ %d is already in use\n", rtc_irq);
> diff --git a/drivers/rtc/rtc-coh901331.c b/drivers/rtc/rtc-coh901331.c
> index 80f9c88..a5b8a0c 100644
> --- a/drivers/rtc/rtc-coh901331.c
> +++ b/drivers/rtc/rtc-coh901331.c
> @@ -199,7 +199,7 @@ static int __init coh901331_probe(struct platform_device *pdev)
> ? ? ? ?}
>
> ? ? ? ?rtap->irq = platform_get_irq(pdev, 0);
> - ? ? ? if (request_irq(rtap->irq, coh901331_interrupt, IRQF_DISABLED,
> + ? ? ? if (request_irq(rtap->irq, coh901331_interrupt, 0,
> ? ? ? ? ? ? ? ? ? ? ? ?"RTC COH 901 331 Alarm", rtap)) {
> ? ? ? ? ? ? ? ?ret = -EIO;
> ? ? ? ? ? ? ? ?goto out_no_irq;
> diff --git a/drivers/rtc/rtc-davinci.c b/drivers/rtc/rtc-davinci.c
> index 755e1fe..14c2109 100644
> --- a/drivers/rtc/rtc-davinci.c
> +++ b/drivers/rtc/rtc-davinci.c
> @@ -542,7 +542,7 @@ static int __init davinci_rtc_probe(struct platform_device *pdev)
> ? ? ? ?rtcss_write(davinci_rtc, 0, PRTCSS_RTC_CCTRL);
>
> ? ? ? ?ret = request_irq(davinci_rtc->irq, davinci_rtc_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, "davinci_rtc", davinci_rtc);
> + ? ? ? ? ? ? ? ? ? ? ? ? 0, "davinci_rtc", davinci_rtc);
> ? ? ? ?if (ret < 0) {
> ? ? ? ? ? ? ? ?dev_err(dev, "unable to register davinci RTC interrupt\n");
> ? ? ? ? ? ? ? ?goto fail4;
> diff --git a/drivers/rtc/rtc-ds1511.c b/drivers/rtc/rtc-ds1511.c
> index 586c244..bbc7c86 100644
> --- a/drivers/rtc/rtc-ds1511.c
> +++ b/drivers/rtc/rtc-ds1511.c
> @@ -532,7 +532,7 @@ ds1511_rtc_probe(struct platform_device *pdev)
> ? ? ? ?if (pdata->irq > 0) {
> ? ? ? ? ? ? ? ?rtc_read(RTC_CMD1);
> ? ? ? ? ? ? ? ?if (devm_request_irq(&pdev->dev, pdata->irq, ds1511_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED | IRQF_SHARED, pdev->name, pdev) < 0) {
> + ? ? ? ? ? ? ? ? ? ? ? IRQF_SHARED, pdev->name, pdev) < 0) {
>
> ? ? ? ? ? ? ? ? ? ? ? ?dev_warn(&pdev->dev, "interrupt not available.\n");
> ? ? ? ? ? ? ? ? ? ? ? ?pdata->irq = 0;
> diff --git a/drivers/rtc/rtc-ds1553.c b/drivers/rtc/rtc-ds1553.c
> index 1350029..1ef2718 100644
> --- a/drivers/rtc/rtc-ds1553.c
> +++ b/drivers/rtc/rtc-ds1553.c
> @@ -320,7 +320,7 @@ static int __devinit ds1553_rtc_probe(struct platform_device *pdev)
> ? ? ? ? ? ? ? ?writeb(0, ioaddr + RTC_INTERRUPTS);
> ? ? ? ? ? ? ? ?if (devm_request_irq(&pdev->dev, pdata->irq,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?ds1553_rtc_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, pdev->name, pdev) < 0) {
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, pdev->name, pdev) < 0) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_warn(&pdev->dev, "interrupt not available.\n");
> ? ? ? ? ? ? ? ? ? ? ? ?pdata->irq = 0;
> ? ? ? ? ? ? ? ?}
> diff --git a/drivers/rtc/rtc-lpc32xx.c b/drivers/rtc/rtc-lpc32xx.c
> index ae16250..ba11a19 100644
> --- a/drivers/rtc/rtc-lpc32xx.c
> +++ b/drivers/rtc/rtc-lpc32xx.c
> @@ -287,7 +287,7 @@ static int __devinit lpc32xx_rtc_probe(struct platform_device *pdev)
> ? ? ? ?if (rtc->irq >= 0) {
> ? ? ? ? ? ? ? ?if (devm_request_irq(&pdev->dev, rtc->irq,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? lpc32xx_rtc_alarm_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?IRQF_DISABLED, pdev->name, rtc) < 0) {
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0, pdev->name, rtc) < 0) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_warn(&pdev->dev, "Can't request interrupt.\n");
> ? ? ? ? ? ? ? ? ? ? ? ?rtc->irq = -1;
> ? ? ? ? ? ? ? ?} else {
> diff --git a/drivers/rtc/rtc-mpc5121.c b/drivers/rtc/rtc-mpc5121.c
> index da60915..3a683fd 100644
> --- a/drivers/rtc/rtc-mpc5121.c
> +++ b/drivers/rtc/rtc-mpc5121.c
> @@ -327,7 +327,7 @@ static int __devinit mpc5121_rtc_probe(struct platform_device *op)
> ? ? ? ?dev_set_drvdata(&op->dev, rtc);
>
> ? ? ? ?rtc->irq = irq_of_parse_and_map(op->dev.of_node, 1);
> - ? ? ? err = request_irq(rtc->irq, mpc5121_rtc_handler, IRQF_DISABLED,
> + ? ? ? err = request_irq(rtc->irq, mpc5121_rtc_handler, 0,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"mpc5121-rtc", &op->dev);
> ? ? ? ?if (err) {
> ? ? ? ? ? ? ? ?dev_err(&op->dev, "%s: could not request irq: %i\n",
> @@ -337,7 +337,7 @@ static int __devinit mpc5121_rtc_probe(struct platform_device *op)
>
> ? ? ? ?rtc->irq_periodic = irq_of_parse_and_map(op->dev.of_node, 0);
> ? ? ? ?err = request_irq(rtc->irq_periodic, mpc5121_rtc_handler_upd,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, "mpc5121-rtc_upd", &op->dev);
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, "mpc5121-rtc_upd", &op->dev);
> ? ? ? ?if (err) {
> ? ? ? ? ? ? ? ?dev_err(&op->dev, "%s: could not request irq: %i\n",
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?__func__, rtc->irq_periodic);
> diff --git a/drivers/rtc/rtc-mrst.c b/drivers/rtc/rtc-mrst.c
> index d335448..507f00e 100644
> --- a/drivers/rtc/rtc-mrst.c
> +++ b/drivers/rtc/rtc-mrst.c
> @@ -363,7 +363,7 @@ vrtc_mrst_do_probe(struct device *dev, struct resource *iomem, int rtc_irq)
>
> ? ? ? ?if (rtc_irq) {
> ? ? ? ? ? ? ? ?retval = request_irq(rtc_irq, mrst_rtc_irq,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, dev_name(&mrst_rtc.rtc->dev),
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, dev_name(&mrst_rtc.rtc->dev),
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mrst_rtc.rtc);
> ? ? ? ? ? ? ? ?if (retval < 0) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_dbg(dev, "IRQ %d is already in use, err %d\n",
> diff --git a/drivers/rtc/rtc-mv.c b/drivers/rtc/rtc-mv.c
> index 768e2ed..1300962 100644
> --- a/drivers/rtc/rtc-mv.c
> +++ b/drivers/rtc/rtc-mv.c
> @@ -273,7 +273,7 @@ static int __devinit mv_rtc_probe(struct platform_device *pdev)
> ? ? ? ?if (pdata->irq >= 0) {
> ? ? ? ? ? ? ? ?writel(0, pdata->ioaddr + RTC_ALARM_INTERRUPT_MASK_REG_OFFS);
> ? ? ? ? ? ? ? ?if (devm_request_irq(&pdev->dev, pdata->irq, mv_rtc_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?IRQF_DISABLED | IRQF_SHARED,
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?IRQF_SHARED,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pdev->name, pdata) < 0) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_warn(&pdev->dev, "interrupt not available.\n");
> ? ? ? ? ? ? ? ? ? ? ? ?pdata->irq = -1;
> diff --git a/drivers/rtc/rtc-nuc900.c b/drivers/rtc/rtc-nuc900.c
> index 781068d..b790109 100644
> --- a/drivers/rtc/rtc-nuc900.c
> +++ b/drivers/rtc/rtc-nuc900.c
> @@ -269,7 +269,7 @@ static int __devinit nuc900_rtc_probe(struct platform_device *pdev)
>
> ? ? ? ?nuc900_rtc->irq_num = platform_get_irq(pdev, 0);
> ? ? ? ?if (request_irq(nuc900_rtc->irq_num, nuc900_rtc_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, "nuc900rtc", nuc900_rtc)) {
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, "nuc900rtc", nuc900_rtc)) {
> ? ? ? ? ? ? ? ?dev_err(&pdev->dev, "NUC900 RTC request irq failed\n");
> ? ? ? ? ? ? ? ?err = -EBUSY;
> ? ? ? ? ? ? ? ?goto fail4;
> diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c
> index 7789002..0b614e3 100644
> --- a/drivers/rtc/rtc-omap.c
> +++ b/drivers/rtc/rtc-omap.c
> @@ -348,14 +348,14 @@ static int __init omap_rtc_probe(struct platform_device *pdev)
> ? ? ? ? ? ? ? ?rtc_write(OMAP_RTC_STATUS_ALARM, OMAP_RTC_STATUS_REG);
>
> ? ? ? ?/* handle periodic and alarm irqs */
> - ? ? ? if (request_irq(omap_rtc_timer, rtc_irq, IRQF_DISABLED,
> + ? ? ? if (request_irq(omap_rtc_timer, rtc_irq, 0,
> ? ? ? ? ? ? ? ? ? ? ? ?dev_name(&rtc->dev), rtc)) {
> ? ? ? ? ? ? ? ?pr_debug("%s: RTC timer interrupt IRQ%d already claimed\n",
> ? ? ? ? ? ? ? ? ? ? ? ?pdev->name, omap_rtc_timer);
> ? ? ? ? ? ? ? ?goto fail1;
> ? ? ? ?}
> ? ? ? ?if ((omap_rtc_timer != omap_rtc_alarm) &&
> - ? ? ? ? ? ? ? (request_irq(omap_rtc_alarm, rtc_irq, IRQF_DISABLED,
> + ? ? ? ? ? ? ? (request_irq(omap_rtc_alarm, rtc_irq, 0,
> ? ? ? ? ? ? ? ? ? ? ? ?dev_name(&rtc->dev), rtc))) {
> ? ? ? ? ? ? ? ?pr_debug("%s: RTC alarm interrupt IRQ%d already claimed\n",
> ? ? ? ? ? ? ? ? ? ? ? ?pdev->name, omap_rtc_alarm);
> diff --git a/drivers/rtc/rtc-pl030.c b/drivers/rtc/rtc-pl030.c
> index 1d28d44..c5afd6f 100644
> --- a/drivers/rtc/rtc-pl030.c
> +++ b/drivers/rtc/rtc-pl030.c
> @@ -123,7 +123,7 @@ static int pl030_probe(struct amba_device *dev, const struct amba_id *id)
>
> ? ? ? ?amba_set_drvdata(dev, rtc);
>
> - ? ? ? ret = request_irq(dev->irq[0], pl030_interrupt, IRQF_DISABLED,
> + ? ? ? ret = request_irq(dev->irq[0], pl030_interrupt, 0,
> ? ? ? ? ? ? ? ? ? ? ? ? ?"rtc-pl030", rtc);
> ? ? ? ?if (ret)
> ? ? ? ? ? ? ? ?goto err_irq;
> diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c
> index ff1b84b..d2df59d 100644
> --- a/drivers/rtc/rtc-pl031.c
> +++ b/drivers/rtc/rtc-pl031.c
> @@ -352,7 +352,7 @@ static int pl031_probe(struct amba_device *adev, const struct amba_id *id)
> ? ? ? ?}
>
> ? ? ? ?if (request_irq(adev->irq[0], pl031_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, "rtc-pl031", ldata)) {
> + ? ? ? ? ? ? ? ? ? ? ? 0, "rtc-pl031", ldata)) {
> ? ? ? ? ? ? ? ?ret = -EIO;
> ? ? ? ? ? ? ? ?goto out_no_irq;
> ? ? ? ?}
> diff --git a/drivers/rtc/rtc-puv3.c b/drivers/rtc/rtc-puv3.c
> index b3eba3c..378fe4b 100644
> --- a/drivers/rtc/rtc-puv3.c
> +++ b/drivers/rtc/rtc-puv3.c
> @@ -164,7 +164,7 @@ static int puv3_rtc_open(struct device *dev)
> ? ? ? ?int ret;
>
> ? ? ? ?ret = request_irq(puv3_rtc_alarmno, puv3_rtc_alarmirq,
> - ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, ?"pkunity-rtc alarm", rtc_dev);
> + ? ? ? ? ? ? ? ? ? ? ? ? 0, ?"pkunity-rtc alarm", rtc_dev);
>
> ? ? ? ?if (ret) {
> ? ? ? ? ? ? ? ?dev_err(dev, "IRQ%d error %d\n", puv3_rtc_alarmno, ret);
> @@ -172,7 +172,7 @@ static int puv3_rtc_open(struct device *dev)
> ? ? ? ?}
>
> ? ? ? ?ret = request_irq(puv3_rtc_tickno, puv3_rtc_tickirq,
> - ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, ?"pkunity-rtc tick", rtc_dev);
> + ? ? ? ? ? ? ? ? ? ? ? ? 0, ?"pkunity-rtc tick", rtc_dev);
>
> ? ? ? ?if (ret) {
> ? ? ? ? ? ? ? ?dev_err(dev, "IRQ%d error %d\n", puv3_rtc_tickno, ret);
> diff --git a/drivers/rtc/rtc-pxa.c b/drivers/rtc/rtc-pxa.c
> index fc9f499..0075c8f 100644
> --- a/drivers/rtc/rtc-pxa.c
> +++ b/drivers/rtc/rtc-pxa.c
> @@ -174,14 +174,14 @@ static int pxa_rtc_open(struct device *dev)
> ? ? ? ?struct pxa_rtc *pxa_rtc = dev_get_drvdata(dev);
> ? ? ? ?int ret;
>
> - ? ? ? ret = request_irq(pxa_rtc->irq_1Hz, pxa_rtc_irq, IRQF_DISABLED,
> + ? ? ? ret = request_irq(pxa_rtc->irq_1Hz, pxa_rtc_irq, 0,
> ? ? ? ? ? ? ? ? ? ? ? ? ?"rtc 1Hz", dev);
> ? ? ? ?if (ret < 0) {
> ? ? ? ? ? ? ? ?dev_err(dev, "can't get irq %i, err %d\n", pxa_rtc->irq_1Hz,
> ? ? ? ? ? ? ? ? ? ? ? ?ret);
> ? ? ? ? ? ? ? ?goto err_irq_1Hz;
> ? ? ? ?}
> - ? ? ? ret = request_irq(pxa_rtc->irq_Alrm, pxa_rtc_irq, IRQF_DISABLED,
> + ? ? ? ret = request_irq(pxa_rtc->irq_Alrm, pxa_rtc_irq, 0,
> ? ? ? ? ? ? ? ? ? ? ? ? ?"rtc Alrm", dev);
> ? ? ? ?if (ret < 0) {
> ? ? ? ? ? ? ? ?dev_err(dev, "can't get irq %i, err %d\n", pxa_rtc->irq_Alrm,
> diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
> index 7639ab9..9a073aa 100644
> --- a/drivers/rtc/rtc-s3c.c
> +++ b/drivers/rtc/rtc-s3c.c
> @@ -536,14 +536,14 @@ static int __devinit s3c_rtc_probe(struct platform_device *pdev)
> ? ? ? ?s3c_rtc_setfreq(&pdev->dev, 1);
>
> ? ? ? ?ret = request_irq(s3c_rtc_alarmno, s3c_rtc_alarmirq,
> - ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, ?"s3c2410-rtc alarm", rtc);
> + ? ? ? ? ? ? ? ? ? ? ? ? 0, ?"s3c2410-rtc alarm", rtc);
> ? ? ? ?if (ret) {
> ? ? ? ? ? ? ? ?dev_err(&pdev->dev, "IRQ%d error %d\n", s3c_rtc_alarmno, ret);
> ? ? ? ? ? ? ? ?goto err_alarm_irq;
> ? ? ? ?}
>
> ? ? ? ?ret = request_irq(s3c_rtc_tickno, s3c_rtc_tickirq,
> - ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, ?"s3c2410-rtc tick", rtc);
> + ? ? ? ? ? ? ? ? ? ? ? ? 0, ?"s3c2410-rtc tick", rtc);
> ? ? ? ?if (ret) {
> ? ? ? ? ? ? ? ?dev_err(&pdev->dev, "IRQ%d error %d\n", s3c_rtc_tickno, ret);
> ? ? ? ? ? ? ? ?free_irq(s3c_rtc_alarmno, rtc);
> diff --git a/drivers/rtc/rtc-sa1100.c b/drivers/rtc/rtc-sa1100.c
> index 0b40bb8..7ca247e 100644
> --- a/drivers/rtc/rtc-sa1100.c
> +++ b/drivers/rtc/rtc-sa1100.c
> @@ -161,13 +161,13 @@ static int sa1100_rtc_open(struct device *dev)
> ? ? ? ?struct platform_device *plat_dev = to_platform_device(dev);
> ? ? ? ?struct rtc_device *rtc = platform_get_drvdata(plat_dev);
>
> - ? ? ? ret = request_irq(IRQ_RTC1Hz, sa1100_rtc_interrupt, IRQF_DISABLED,
> + ? ? ? ret = request_irq(IRQ_RTC1Hz, sa1100_rtc_interrupt, 0,
> ? ? ? ? ? ? ? ?"rtc 1Hz", dev);
> ? ? ? ?if (ret) {
> ? ? ? ? ? ? ? ?dev_err(dev, "IRQ %d already in use.\n", IRQ_RTC1Hz);
> ? ? ? ? ? ? ? ?goto fail_ui;
> ? ? ? ?}
> - ? ? ? ret = request_irq(IRQ_RTCAlrm, sa1100_rtc_interrupt, IRQF_DISABLED,
> + ? ? ? ret = request_irq(IRQ_RTCAlrm, sa1100_rtc_interrupt, 0,
> ? ? ? ? ? ? ? ?"rtc Alrm", dev);
> ? ? ? ?if (ret) {
> ? ? ? ? ? ? ? ?dev_err(dev, "IRQ %d already in use.\n", IRQ_RTCAlrm);
> diff --git a/drivers/rtc/rtc-sh.c b/drivers/rtc/rtc-sh.c
> index 6ac55fd..e55a763 100644
> --- a/drivers/rtc/rtc-sh.c
> +++ b/drivers/rtc/rtc-sh.c
> @@ -666,7 +666,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev)
> ? ? ? ?if (rtc->carry_irq <= 0) {
> ? ? ? ? ? ? ? ?/* register shared periodic/carry/alarm irq */
> ? ? ? ? ? ? ? ?ret = request_irq(rtc->periodic_irq, sh_rtc_shared,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, "sh-rtc", rtc);
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, "sh-rtc", rtc);
> ? ? ? ? ? ? ? ?if (unlikely(ret)) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_err(&pdev->dev,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"request IRQ failed with %d, IRQ %d\n", ret,
> @@ -676,7 +676,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev)
> ? ? ? ?} else {
> ? ? ? ? ? ? ? ?/* register periodic/carry/alarm irqs */
> ? ? ? ? ? ? ? ?ret = request_irq(rtc->periodic_irq, sh_rtc_periodic,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, "sh-rtc period", rtc);
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, "sh-rtc period", rtc);
> ? ? ? ? ? ? ? ?if (unlikely(ret)) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_err(&pdev->dev,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"request period IRQ failed with %d, IRQ %d\n",
> @@ -685,7 +685,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev)
> ? ? ? ? ? ? ? ?}
>
> ? ? ? ? ? ? ? ?ret = request_irq(rtc->carry_irq, sh_rtc_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, "sh-rtc carry", rtc);
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, "sh-rtc carry", rtc);
> ? ? ? ? ? ? ? ?if (unlikely(ret)) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_err(&pdev->dev,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"request carry IRQ failed with %d, IRQ %d\n",
> @@ -695,7 +695,7 @@ static int __init sh_rtc_probe(struct platform_device *pdev)
> ? ? ? ? ? ? ? ?}
>
> ? ? ? ? ? ? ? ?ret = request_irq(rtc->alarm_irq, sh_rtc_alarm,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED, "sh-rtc alarm", rtc);
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 0, "sh-rtc alarm", rtc);
> ? ? ? ? ? ? ? ?if (unlikely(ret)) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_err(&pdev->dev,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"request alarm IRQ failed with %d, IRQ %d\n",
> diff --git a/drivers/rtc/rtc-stk17ta8.c b/drivers/rtc/rtc-stk17ta8.c
> index ed3e9b5..5e9adec 100644
> --- a/drivers/rtc/rtc-stk17ta8.c
> +++ b/drivers/rtc/rtc-stk17ta8.c
> @@ -329,7 +329,7 @@ static int __devinit stk17ta8_rtc_probe(struct platform_device *pdev)
> ? ? ? ? ? ? ? ?writeb(0, ioaddr + RTC_INTERRUPTS);
> ? ? ? ? ? ? ? ?if (devm_request_irq(&pdev->dev, pdata->irq,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?stk17ta8_rtc_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_DISABLED | IRQF_SHARED,
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? IRQF_SHARED,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?pdev->name, pdev) < 0) {
> ? ? ? ? ? ? ? ? ? ? ? ?dev_warn(&pdev->dev, "interrupt not available.\n");
> ? ? ? ? ? ? ? ? ? ? ? ?pdata->irq = 0;
> diff --git a/drivers/rtc/rtc-tx4939.c b/drivers/rtc/rtc-tx4939.c
> index aac0ffe..a12bfac 100644
> --- a/drivers/rtc/rtc-tx4939.c
> +++ b/drivers/rtc/rtc-tx4939.c
> @@ -266,7 +266,7 @@ static int __init tx4939_rtc_probe(struct platform_device *pdev)
> ? ? ? ?spin_lock_init(&pdata->lock);
> ? ? ? ?tx4939_rtc_cmd(pdata->rtcreg, TX4939_RTCCTL_COMMAND_NOP);
> ? ? ? ?if (devm_request_irq(&pdev->dev, irq, tx4939_rtc_interrupt,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ?IRQF_DISABLED, pdev->name, &pdev->dev) < 0)
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ?0, pdev->name, &pdev->dev) < 0)
> ? ? ? ? ? ? ? ?return -EBUSY;
> ? ? ? ?rtc = rtc_device_register(pdev->name, &pdev->dev,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?&tx4939_rtc_ops, THIS_MODULE);
> diff --git a/drivers/rtc/rtc-vr41xx.c b/drivers/rtc/rtc-vr41xx.c
> index c5698cd..6aef17d 100644
> --- a/drivers/rtc/rtc-vr41xx.c
> +++ b/drivers/rtc/rtc-vr41xx.c
> @@ -333,7 +333,7 @@ static int __devinit rtc_probe(struct platform_device *pdev)
> ? ? ? ? ? ? ? ?goto err_device_unregister;
> ? ? ? ?}
>
> - ? ? ? retval = request_irq(aie_irq, elapsedtime_interrupt, IRQF_DISABLED,
> + ? ? ? retval = request_irq(aie_irq, elapsedtime_interrupt, 0,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? "elapsed_time", pdev);
> ? ? ? ?if (retval < 0)
> ? ? ? ? ? ? ? ?goto err_device_unregister;
> @@ -342,7 +342,7 @@ static int __devinit rtc_probe(struct platform_device *pdev)
> ? ? ? ?if (pie_irq <= 0)
> ? ? ? ? ? ? ? ?goto err_free_irq;
>
> - ? ? ? retval = request_irq(pie_irq, rtclong1_interrupt, IRQF_DISABLED,
> + ? ? ? retval = request_irq(pie_irq, rtclong1_interrupt, 0,
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? "rtclong1", pdev);
> ? ? ? ?if (retval < 0)
> ? ? ? ? ? ? ? ?goto err_free_irq;
> --
> 1.7.4.1
>
>



-- 
Wan ZongShun.
www.mcuos.com

^ permalink raw reply

* [PATCH 53/57] sound: irq: Remove IRQF_DISABLED
From: Thomas Gleixner @ 2011-09-21  9:55 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <s5hsjnqxlxb.wl%tiwai@suse.de>

On Wed, 21 Sep 2011, Takashi Iwai wrote:

> At Wed, 21 Sep 2011 17:28:54 +0800,
> Yong Zhang wrote:
> > 
> > Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
> 
> Hm, this id hits a different commit:
>     commit c58543c869606532c2382f027d6466f4672ea756
>     Author: David S. Miller <davem@davemloft.net>
>     Date:   Tue Oct 13 00:49:09 2009 -0700
> 
>     sparc64: Set IRQF_DISABLED on LDC channel IRQs.
> 
> You mean commit e58aa3d2d0cc01ad8d6f7f640a0670433f794922?

Yeah.
 
> > We run all interrupt handlers with interrupts disabled
> > and we even check and yell when an interrupt handler
> > returns with interrupts enabled (see commit [b738a50a:
> > genirq: Warn when handler enables interrupts]).
> > 
> > So now this flag is a NOOP and can be removed.
> > 
> > Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
> > Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
> 
> Do you want to merge by yourself or shall I take it to sound git tree?
> Since IRQF_DISABLED isn't used, it can be applied safely in 3.1-based
> tree, right?

Yes, please go ahead. I'll pick up the leftovers.

Thanks,

	tglx

^ permalink raw reply

* DT vs ARM static mappings
From: Dave Martin @ 2011-09-21  9:59 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316598109.4611.613.camel@hornet.cambridge.arm.com>

On Wed, Sep 21, 2011 at 10:41:49AM +0100, Pawel Moll wrote:
> > > 2. Single DT_MACHINE_START matching (the most generic) "arm,vexpress"
> > > and doing (rougly) this in v2m_map_io:
> > > 
> > > of_scan_flat_dt(v2m_dt_iotable_init, NULL);
> > > 
> > > v2m_dt_iotable_init(...)
> > > {
> > > 	if (depth != 0)
> > > 		return 0;
> > > 	if (of_flat_dt_is_compatible(node, "arm,vexpress-legacy"))
> > > 		iotable_init(v2m_io_desc_legacy);
> > > 	else (of_flat_dt_is_compatible(node, "arm,vexpress-rs1"))
> > > 		iotable_init(v2m_io_desc_rs1);
> > > 	else
> > > 		panic();
> > > }
> > > 
> > > Neither of them seem particularly appealing... ;-)
> > 
> > But I think both ways would be acceptable in the end. It's not a lot
> > of extra code either way. In the second case, I would probably have
> > the legacy case as a special variant of the map_io function and have
> > all others be the default instead of falling back to panic though.
> 
> Ok, I'll go (roughly) that way.
> 
> > > In my case it's sysreg and sysctl. There are two more users of static
> > > mappings: timer01 and timer23, but they could at some point do ioremap()
> > > on their own (especially with Nico's changes).
> > 
> > Well, I think with Nico's cahnges, you /can/ actually do ioremap for
> > areas that have been mapped through the iotable before kmalloc is up.
> > IIRC, omap does this for a number of peripherals.
> > 
> > It's a bit of a hack, but I think it's much better than taking hardcoded
> > addresses.
> 
> Yes, I was thinking about that last night. If you think it's acceptable
> I'll do this (killing MMIO_P2V on the way ;-)
> 
> > With the combination of the points mentioned above, you should be
> > able to do:
> > 
> > - map the entire I/O area in map_io(), depending on the board
> > - have an __iomem pointer for the sysreg
> > - populate that pointer using of_iomap from the device tree address
> >   before you first access it.
> > 
> > Do you think that would work?
> 
> Yes, I suppose so. The last bit (getting the offset from DT) will be a
> little ugly, I think, but let's wait till I get some code done.

I won't attempt to modify the rest of the patch yet, but we can roll
changes in when you've decided on a way forward.

Alternatively, the requisite changes can be done as patches on top of
the basic patch -- since the initial patch doesn't attempt to support
multiple core tiles anyway.

Cheers
---Dave

^ permalink raw reply

* [PATCH 2/3] of/irq: introduce of_irq_init
From: Jamie Iles @ 2011-09-21 10:01 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316550244-3655-3-git-send-email-robherring2@gmail.com>

Hi Rob,

On Tue, Sep 20, 2011 at 03:24:03PM -0500, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> of_irq_init will scan the devicetree for matching interrupt controller
> nodes. Then it calls an initialization function for each found controller
> in the proper order with parent nodes initialized before child nodes.
> 
> Based on initial pseudo code from Grant Likely.
> 
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Grant Likely <grant.likely@secretlab.ca>
> ---
>  drivers/of/irq.c       |  114 ++++++++++++++++++++++++++++++++++++++++++++++++
>  include/linux/of_irq.h |    1 +
>  2 files changed, 115 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/of/irq.c b/drivers/of/irq.c
> index 6a5b5e7..1d51bc7 100644
> --- a/drivers/of/irq.c
> +++ b/drivers/of/irq.c
> @@ -19,10 +19,12 @@
>   */
>  
>  #include <linux/errno.h>
> +#include <linux/list.h>
>  #include <linux/module.h>
>  #include <linux/of.h>
>  #include <linux/of_irq.h>
>  #include <linux/string.h>
> +#include <linux/slab.h>
>  
>  /* For archs that don't support NO_IRQ (such as x86), provide a dummy value */
>  #ifndef NO_IRQ
> @@ -386,3 +388,115 @@ int of_irq_to_resource_table(struct device_node *dev, struct resource *res,
>  
>  	return i;
>  }
> +
> +struct intc_desc {
> +	struct list_head	list;
> +	struct device_node	*dev;
> +	struct device_node	*interrupt_parent;
> +};
> +
> +typedef int (*irq_init_cb_t)(struct device_node *, struct device_node *);
> +
> +/**
> + * of_irq_init - Scan the device tree for matching interrupt controllers and
> + * call their initialization functions in order with parents first.
> + * @matches: 0 terminated array of nodes to match and initialization function
> + * to call on match
> + */
> +void __init of_irq_init(const struct of_device_id *matches)
> +{
> +	struct device_node *np;
> +	struct intc_desc *desc;
> +	struct intc_desc *temp_desc;
> +	struct intc_desc *parent_desc = NULL;
> +	struct list_head intc_desc_list;
> +	struct list_head intc_parent_list;
> +
> +	INIT_LIST_HEAD(&intc_desc_list);
> +	INIT_LIST_HEAD(&intc_parent_list);
> +
> +	for_each_matching_node(np, matches) {
> +		if (!of_find_property(np, "interrupt-controller", NULL))
> +			continue;
> +		/* Here, we allocate and populate an intc_desc with the node
> +		* pointer, interrupt-parent device_node etc. */
> +		desc = kzalloc(sizeof(*desc), GFP_KERNEL);
> +		if (!desc) {
> +			WARN_ON(1);
> +			goto err;
> +		}
> +		desc->dev = np;
> +		desc->interrupt_parent = of_irq_find_parent(np);
> +		list_add(&desc->list, &intc_desc_list);
> +	}
> +	if (list_empty(&intc_desc_list))
> +		return;
> +
> +	/*
> +	 * The root irq controller is the one without an interrupt-parent.
> +	 * That one goes first, followed by the controllers that reference it,
> +	 * followed by the ones that reference the 2nd level controllers, etc
> +	 */
> +	while (!list_empty(&intc_desc_list)) {
> +		/*
> +		 * Process all controllers with the current 'parent'.
> +		 * First pass will be looking for NULL as the parent.
> +		 * The assumption is that NULL parent means a root controller.
> +		 */
> +		list_for_each_entry_safe(desc, temp_desc, &intc_desc_list, list) {
> +			const struct of_device_id *match;
> +			int ret;
> +			irq_init_cb_t irq_init_cb;
> +
> +			if (parent_desc &&
> +				(desc->interrupt_parent != parent_desc->dev))
> +				continue;
> +
> +			list_del(&desc->list);
> +			match = of_match_node(matches, desc->dev);
> +			if (!match || !match->data)
> +				continue;

Doesn't this case need to kfree(desc)?

> +
> +			pr_debug("of_irq_init: init %s @ %p, parent %p\n",
> +				 match->compatible,
> +				 desc->dev, desc->interrupt_parent);
> +			irq_init_cb = match->data;
> +			ret = irq_init_cb(desc->dev, desc->interrupt_parent);
> +			if (ret)
> +				continue;

and here?

> +
> +			/*
> +			 * This one is now set up; add it to the parent list so
> +			 * its children can get processed in a subsequent pass.
> +			 */
> +			list_add_tail(&desc->list, &intc_parent_list);
> +		}
> +		/*
> +		 * All the direct children for the current parent are
> +		 * processed, so free the parent now.
> +		 */
> +		if (parent_desc)
> +			kfree(parent_desc);
> +
> +		/* Get the next pending parent that might have children */
> +		parent_desc = list_first_entry(&intc_parent_list,
> +					       typeof(*parent_desc), list);
> +		if (list_empty(&intc_parent_list) || !parent_desc) {
> +			pr_debug("of_irq_init: children remain, but no parents\n");
> +			goto err;
> +		}
> +
> +		list_del(&parent_desc->list);
> +	}
> +	return;
> +
> +err:
> +	list_for_each_entry_safe(desc, temp_desc, &intc_parent_list, list) {
> +		list_del(&desc->list);
> +		kfree(desc);
> +	}
> +	list_for_each_entry_safe(desc, temp_desc, &intc_desc_list, list) {
> +		list_del(&desc->list);
> +		kfree(desc);
> +	}
> +}
> diff --git a/include/linux/of_irq.h b/include/linux/of_irq.h
> index cd2e61c..032d76c 100644
> --- a/include/linux/of_irq.h
> +++ b/include/linux/of_irq.h
> @@ -73,6 +73,7 @@ extern int of_irq_to_resource_table(struct device_node *dev,
>  		struct resource *res, int nr_irqs);
>  extern struct device_node *of_irq_find_parent(struct device_node *child);
>  
> +extern void of_irq_init(const struct of_device_id *matches);
>  
>  #endif /* CONFIG_OF_IRQ */
>  #endif /* CONFIG_OF */
> -- 
> 1.7.5.4
> 

^ permalink raw reply

* DT vs ARM static mappings
From: Pawel Moll @ 2011-09-21 10:02 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20110921095926.GA2041@arm.com>

> I won't attempt to modify the rest of the patch yet, but we can roll
> changes in when you've decided on a way forward.
> 
> Alternatively, the requisite changes can be done as patches on top of
> the basic patch -- since the initial patch doesn't attempt to support
> multiple core tiles anyway.

Sure thing - I'll work on top of your patch.

Pawe?

^ permalink raw reply

* [PATCH 53/57] sound: irq: Remove IRQF_DISABLED
From: Ujfalusi, Peter @ 2011-09-21 10:21 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-54-git-send-email-yong.zhang0@gmail.com>

On Wed, Sep 21, 2011 at 12:28 PM, Yong Zhang <yong.zhang0@gmail.com> wrote:
> Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
> We run all interrupt handlers with interrupts disabled
> and we even check and yell when an interrupt handler
> returns with interrupts enabled (see commit [b738a50a:
> genirq: Warn when handler enables interrupts]).
>
> So now this flag is a NOOP and can be removed.
>
> Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com>

^ permalink raw reply

* [rtc-linux] [PATCH 46/57] rtc: irq: Remove IRQF_DISABLED
From: Wolfram Sang @ 2011-09-21 10:31 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1316597339-29861-47-git-send-email-yong.zhang0@gmail.com>

On Wed, Sep 21, 2011 at 05:28:47PM +0800, Yong Zhang wrote:
> Since commit [c58543c8: genirq: Run irq handlers with interrupts disabled],
> We run all interrupt handlers with interrupts disabled
> and we even check and yell when an interrupt handler
> returns with interrupts enabled (see commit [b738a50a:
> genirq: Warn when handler enables interrupts]).
> 
> So now this flag is a NOOP and can be removed.
> 
> Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
> Acked-by: Linus Walleij <linus.walleij@linaro.org>

Acked-by: Wolfram Sang <w.sang@pengutronix.de>

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20110921/9fdefceb/attachment.sig>

^ permalink raw reply

* [PATCH 2/2] arm: samsung: remove sdhci default configuration setup platform helper
From: Kukjin Kim @ 2011-09-21 10:44 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CAJuYYwT1tW0XEiwWWpX08OorZw2q2Wce2r0fUvxLmWC8uq6uhQ@mail.gmail.com>

Thomas Abraham wrote:
> 
> Dear Mr. Kim,
> 
> On 5 September 2011 10:46, Kukjin Kim <kgene.kim@samsung.com> wrote:
> > Thomas Abraham wrote:
> >>
> >> The sdhci platform helper function that sets up the default controller
> >> configuration is removed for all Samsung platforms since such default
> >> controller configuration can be handled by the driver.
> >>
> >> Cc: Ben Dooks <ben-linux@fluff.org>
> >> Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
> >> ---
> >> ?arch/arm/mach-exynos4/setup-sdhci.c ? ? ? ?| ? 47
-----------------------
> >> ?arch/arm/mach-s3c2416/setup-sdhci.c ? ? ? ?| ? 37 ------------------
> >> ?arch/arm/mach-s3c64xx/setup-sdhci.c ? ? ? ?| ? 48
-----------------------
> >> ?arch/arm/mach-s5pc100/setup-sdhci.c ? ? ? ?| ? 42 --------------------
> >> ?arch/arm/mach-s5pv210/setup-sdhci.c ? ? ? ?| ? 41 --------------------
> >> ?arch/arm/plat-samsung/dev-hsmmc.c ? ? ? ? ?| ? ?2 -
> >> ?arch/arm/plat-samsung/dev-hsmmc1.c ? ? ? ? | ? ?2 -
> >> ?arch/arm/plat-samsung/dev-hsmmc2.c ? ? ? ? | ? ?2 -
> >> ?arch/arm/plat-samsung/dev-hsmmc3.c ? ? ? ? | ? ?2 -
> >> ?arch/arm/plat-samsung/include/plat/sdhci.h | ? 57
> > ----------------------------
> >> ?10 files changed, 0 insertions(+), 280 deletions(-)
> >>
> 
> [...]
> 
> >
> > Hi Thomas,
> >
> > The arch/arm/plat-samsung/dev-hsmmcX.c files have been changed due to
> commit
> > 61e62fcb ("ARM: SAMSUNG: Consolidate common function to set SDHCI plat
> > data"). So if possible please make your patch based on latest my
for-next :)
> 
> Sure. I will base these patches on your for-next, test and resubmit.
> 

Hi Thomas,

I missed? I didn't get your updated yet.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply

* [PATCH v2 0/2] Move sdhci-s3c platform helper into driver
From: Kukjin Kim @ 2011-09-21 10:51 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1315984158-29651-1-git-send-email-thomas.abraham@linaro.org>

Thomas Abraham wrote:
> 
> Changes since v1:
> - Rebased with 'for-next' branch of
>   http://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git
>   (tested with commit id a08b7e19811181309da2306338027fe1d3f8001d at the
>   tip of the for-next branch, not sure if there have been further
>   commits after that).
> 
> The platform helper that sets up the default sdhci-s3c controller
> configuration can be removed and moved into the sdhci-s3c driver.
> This platform helper is removed for s3c2416, s3c64xx, s5pc100,
> s5pv210 and Exynos4 platforms.
> 
> Since the platform helper function pointer was being passed in the
> platform data of sdhci-s3c driver, the removal of this pointer from
> the platform data is step closer to complete device tree support for
> sdhci-s3c driver.
> 
> This patchset has been tested on the following platforms.
> SMDK2416, SMDK6410, SMDKC100, SMDKV210 and SMDKV310.

Oh, I found :)
Looks ok to me, will apply.

As a note, please kindly ignore previous my comments on v.1 patch.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

^ permalink raw reply

* [PATCH 0/2] pin controller subsystem v7
From: Linus Walleij @ 2011-09-21 10:54 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <74CDBE0F657A3D45AFBB94109FB122FF04B73216C5@HQMAIL01.nvidia.com>

On Tue, Sep 20, 2011 at 10:10 PM, Stephen Warren <swarren@nvidia.com> wrote:

> ... hence I was surprised to see that you explicitly note that mapping a
> single device to multiple controllers was disallowed.

Actually it's easy to fix, I mainly wanted to keep that until we have
a solid usecase for it, it's just a few lines of code the day we
need it.

> Then again, if this need ever does arise, we should be able to just relax
> this restriction without causing any backwards-compatibility issues, so
> I don't see a specific need to change this now; I just thought I'd mention
> it so you're aware of what I'm thinking.

It was actually on my mind, I just wanted to keep down the feature
creep to what was absolutely needed for the pin controllers we're
facing in arch/arm/* today.

Thanks!
Linus Walleij

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox