Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3f2e40df authored by Jeff Garzik's avatar Jeff Garzik
Browse files

[PARPORT] Consolidate code copies into a single generic irq handler



Several arches used the exact same code for their parport irq handling.
Make that code generic, in parport_irq_handler().

Also, s/__inline__/inline/ in include/linux/parport.h.

Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 01e7ae8c
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -137,13 +137,6 @@ static unsigned char amiga_read_status(struct parport *p)
	return status;
}

/* as this ports irq handling is already done, we use a generic funktion */
static irqreturn_t amiga_interrupt(int irq, void *dev_id)
{
	parport_generic_irq(irq, (struct parport *) dev_id);
	return IRQ_HANDLED;
}

static void amiga_enable_irq(struct parport *p)
{
	enable_irq(IRQ_AMIGA_CIAA_FLG);
@@ -255,7 +248,7 @@ static int __init parport_amiga_init(void)
	if (!p)
		goto out_port;

	err = request_irq(IRQ_AMIGA_CIAA_FLG, amiga_interrupt, 0, p->name, p);
	err = request_irq(IRQ_AMIGA_CIAA_FLG, parport_irq_handler, 0, p->name, p);
	if (err)
		goto out_irq;

+1 −8
Original line number Diff line number Diff line
@@ -103,13 +103,6 @@ parport_atari_restore_state(struct parport *p, struct parport_state *s)
{
}

static irqreturn_t
parport_atari_interrupt(int irq, void *dev_id)
{
	parport_generic_irq(irq, (struct parport *) dev_id);
	return IRQ_HANDLED;
}

static void
parport_atari_enable_irq(struct parport *p)
{
@@ -208,7 +201,7 @@ static int __init parport_atari_init(void)
					  &parport_atari_ops);
		if (!p)
			return -ENODEV;
		if (request_irq(IRQ_MFP_BUSY, parport_atari_interrupt,
		if (request_irq(IRQ_MFP_BUSY, parport_irq_handler,
				IRQ_TYPE_SLOW, p->name, p)) {
			parport_put_port (p);
			return -ENODEV;
+1 −9
Original line number Diff line number Diff line
@@ -232,14 +232,6 @@ parport_ax88796_restore_state(struct parport *p, struct parport_state *s)
	writeb(s->u.ax88796.cpr, dd->spp_cpr);
}

static irqreturn_t
parport_ax88796_interrupt(int irq, void *dev_id)
{
        parport_generic_irq(irq, dev_id);
        return IRQ_HANDLED;
}


static struct parport_operations parport_ax88796_ops = {
	.write_data	= parport_ax88796_write_data,
	.read_data	= parport_ax88796_read_data,
@@ -344,7 +336,7 @@ static int parport_ax88796_probe(struct platform_device *pdev)

	if (irq >= 0) {
		/* request irq */
		ret = request_irq(irq, parport_ax88796_interrupt,
		ret = request_irq(irq, parport_irq_handler,
				  IRQF_TRIGGER_FALLING, pdev->name, pp);

		if (ret < 0)
+1 −7
Original line number Diff line number Diff line
@@ -80,12 +80,6 @@ static int clear_epp_timeout(struct parport *pb)
 * of these are in parport_gsc.h.
 */

static irqreturn_t parport_gsc_interrupt(int irq, void *dev_id)
{
	parport_generic_irq(irq, (struct parport *) dev_id);
	return IRQ_HANDLED;
}

void parport_gsc_init_state(struct pardevice *dev, struct parport_state *s)
{
	s->u.pc.ctr = 0xc | (dev->irq_func ? 0x10 : 0x0);
@@ -324,7 +318,7 @@ struct parport *__devinit parport_gsc_probe_port (unsigned long base,
	printk("]\n");

	if (p->irq != PARPORT_IRQ_NONE) {
		if (request_irq (p->irq, parport_gsc_interrupt,
		if (request_irq (p->irq, parport_irq_handler,
				 0, p->name, p)) {
			printk (KERN_WARNING "%s: irq %d in use, "
				"resorting to polled operation\n",
+4 −2
Original line number Diff line number Diff line
@@ -778,14 +778,16 @@ static irqreturn_t parport_ip32_interrupt(int irq, void *dev_id)
	struct parport * const p = dev_id;
	struct parport_ip32_private * const priv = p->physport->private_data;
	enum parport_ip32_irq_mode irq_mode = priv->irq_mode;

	switch (irq_mode) {
	case PARPORT_IP32_IRQ_FWD:
		parport_generic_irq(irq, p);
		break;
		return parport_irq_handler(irq, dev_id);

	case PARPORT_IP32_IRQ_HERE:
		parport_ip32_wakeup(p);
		break;
	}

	return IRQ_HANDLED;
}

Loading