diff --git a/kernel/fmc-trivial.c b/kernel/fmc-trivial.c index fe3ecec7c6d7c93c9fd1d04e6da5f639fed403a4..bdc43d198614ab828851fb4418d12e2aea435532 100644 --- a/kernel/fmc-trivial.c +++ b/kernel/fmc-trivial.c @@ -7,10 +7,9 @@ irqreturn_t t_handler(int irq, void *dev_id) { struct fmc_device *fmc = dev_id; - struct spec_dev *spec = fmc->carrier_data; - /* FIXME: don't assume to be under spec */ - dev_info(&spec->pdev->dev, "irq %i\n", irq); + fmc->op->irq_ack(fmc); + printk("%s: irq %i\n", __func__, irq); return IRQ_HANDLED; } @@ -18,17 +17,18 @@ int t_probe(struct fmc_device *fmc) { int ret; - ret = request_irq(fmc->irq, t_handler, 0, "fmc-trivial", fmc); + ret = fmc->op->irq_request(fmc, t_handler, "fmc-trivial", 0); return ret; } int t_remove(struct fmc_device *fmc) { - free_irq(fmc->irq, fmc); + fmc->op->irq_free(fmc); return 0; } static struct fmc_driver t_drv = { + .driver.name = KBUILD_MODNAME, .probe = t_probe, .remove = t_remove, /* no table, as the current match just matches everything */