powerpc: Remove all usages of NO_IRQ
NO_IRQ has been == 0 on powerpc for just over ten years (since commit
0ebfff1491
("[POWERPC] Add new interrupt mapping core and change
platforms to use it")). It's also 0 on most other arches.
Although it's fairly harmless, every now and then it causes confusion
when a driver is built on powerpc and another arch which doesn't define
NO_IRQ. There's at least 6 definitions of NO_IRQ in drivers/, at least
some of which are to work around that problem.
So we'd like to remove it. This is fairly trivial in the arch code, we
just convert:
if (irq == NO_IRQ) to if (!irq)
if (irq != NO_IRQ) to if (irq)
irq = NO_IRQ; to irq = 0;
return NO_IRQ; to return 0;
And a few other odd cases as well.
At least for now we keep the #define NO_IRQ, because there is driver
code that uses NO_IRQ and the fixes to remove those will go via other
trees.
Note we also change some occurrences in PPC sound drivers, drivers/ps3,
and drivers/macintosh.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
@@ -236,7 +236,7 @@ static void macio_create_fixup_irq(struct macio_dev *dev, int index,
|
||||
unsigned int irq;
|
||||
|
||||
irq = irq_create_mapping(NULL, line);
|
||||
if (irq != NO_IRQ) {
|
||||
if (!irq) {
|
||||
dev->interrupt[index].start = irq;
|
||||
dev->interrupt[index].flags = IORESOURCE_IRQ;
|
||||
dev->interrupt[index].name = dev_name(&dev->ofdev.dev);
|
||||
@@ -299,7 +299,7 @@ static void macio_setup_interrupts(struct macio_dev *dev)
|
||||
break;
|
||||
res = &dev->interrupt[j];
|
||||
irq = irq_of_parse_and_map(np, i++);
|
||||
if (irq == NO_IRQ)
|
||||
if (!irq)
|
||||
break;
|
||||
res->start = irq;
|
||||
res->flags = IORESOURCE_IRQ;
|
||||
|
@@ -427,7 +427,7 @@ static int rackmeter_probe(struct macio_dev* mdev,
|
||||
rm->irq = macio_irq(mdev, 1);
|
||||
#else
|
||||
rm->irq = irq_of_parse_and_map(i2s, 1);
|
||||
if (rm->irq == NO_IRQ ||
|
||||
if (!rm->irq ||
|
||||
of_address_to_resource(i2s, 0, &ri2s) ||
|
||||
of_address_to_resource(i2s, 1, &rdma)) {
|
||||
printk(KERN_ERR
|
||||
|
@@ -279,7 +279,7 @@ int smu_queue_cmd(struct smu_cmd *cmd)
|
||||
spin_unlock_irqrestore(&smu->lock, flags);
|
||||
|
||||
/* Workaround for early calls when irq isn't available */
|
||||
if (!smu_irq_inited || smu->db_irq == NO_IRQ)
|
||||
if (!smu_irq_inited || !smu->db_irq)
|
||||
smu_spinwait_cmd(cmd);
|
||||
|
||||
return 0;
|
||||
@@ -498,8 +498,8 @@ int __init smu_init (void)
|
||||
INIT_LIST_HEAD(&smu->cmd_list);
|
||||
INIT_LIST_HEAD(&smu->cmd_i2c_list);
|
||||
smu->of_node = np;
|
||||
smu->db_irq = NO_IRQ;
|
||||
smu->msg_irq = NO_IRQ;
|
||||
smu->db_irq = 0;
|
||||
smu->msg_irq = 0;
|
||||
|
||||
/* smu_cmdbuf_abs is in the low 2G of RAM, can be converted to a
|
||||
* 32 bits value safely
|
||||
@@ -587,13 +587,13 @@ static int smu_late_init(void)
|
||||
|
||||
if (smu->db_node) {
|
||||
smu->db_irq = irq_of_parse_and_map(smu->db_node, 0);
|
||||
if (smu->db_irq == NO_IRQ)
|
||||
if (!smu->db_irq)
|
||||
printk(KERN_ERR "smu: failed to map irq for node %s\n",
|
||||
smu->db_node->full_name);
|
||||
}
|
||||
if (smu->msg_node) {
|
||||
smu->msg_irq = irq_of_parse_and_map(smu->msg_node, 0);
|
||||
if (smu->msg_irq == NO_IRQ)
|
||||
if (!smu->msg_irq)
|
||||
printk(KERN_ERR "smu: failed to map irq for node %s\n",
|
||||
smu->msg_node->full_name);
|
||||
}
|
||||
@@ -602,23 +602,23 @@ static int smu_late_init(void)
|
||||
* Try to request the interrupts
|
||||
*/
|
||||
|
||||
if (smu->db_irq != NO_IRQ) {
|
||||
if (smu->db_irq) {
|
||||
if (request_irq(smu->db_irq, smu_db_intr,
|
||||
IRQF_SHARED, "SMU doorbell", smu) < 0) {
|
||||
printk(KERN_WARNING "SMU: can't "
|
||||
"request interrupt %d\n",
|
||||
smu->db_irq);
|
||||
smu->db_irq = NO_IRQ;
|
||||
smu->db_irq = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (smu->msg_irq != NO_IRQ) {
|
||||
if (smu->msg_irq) {
|
||||
if (request_irq(smu->msg_irq, smu_msg_intr,
|
||||
IRQF_SHARED, "SMU message", smu) < 0) {
|
||||
printk(KERN_WARNING "SMU: can't "
|
||||
"request interrupt %d\n",
|
||||
smu->msg_irq);
|
||||
smu->msg_irq = NO_IRQ;
|
||||
smu->msg_irq = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -209,7 +209,7 @@ static int __init via_cuda_start(void)
|
||||
cuda_irq = IRQ_MAC_ADB;
|
||||
#else
|
||||
cuda_irq = irq_of_parse_and_map(vias, 0);
|
||||
if (cuda_irq == NO_IRQ) {
|
||||
if (!cuda_irq) {
|
||||
printk(KERN_ERR "via-cuda: can't map interrupts for %s\n",
|
||||
vias->full_name);
|
||||
return -ENODEV;
|
||||
|
@@ -145,7 +145,7 @@ static int pmu_fully_inited;
|
||||
static int pmu_has_adb;
|
||||
static struct device_node *gpio_node;
|
||||
static unsigned char __iomem *gpio_reg;
|
||||
static int gpio_irq = NO_IRQ;
|
||||
static int gpio_irq = 0;
|
||||
static int gpio_irq_enabled = -1;
|
||||
static volatile int pmu_suspended;
|
||||
static spinlock_t pmu_lock;
|
||||
@@ -402,7 +402,7 @@ static int __init via_pmu_start(void)
|
||||
batt_req.complete = 1;
|
||||
|
||||
irq = irq_of_parse_and_map(vias, 0);
|
||||
if (irq == NO_IRQ) {
|
||||
if (!irq) {
|
||||
printk(KERN_ERR "via-pmu: can't map interrupt\n");
|
||||
return -ENODEV;
|
||||
}
|
||||
@@ -424,7 +424,7 @@ static int __init via_pmu_start(void)
|
||||
if (gpio_node)
|
||||
gpio_irq = irq_of_parse_and_map(gpio_node, 0);
|
||||
|
||||
if (gpio_irq != NO_IRQ) {
|
||||
if (gpio_irq) {
|
||||
if (request_irq(gpio_irq, gpio1_interrupt,
|
||||
IRQF_NO_SUSPEND, "GPIO1 ADB",
|
||||
(void *)0))
|
||||
|
Reference in New Issue
Block a user