diff --git a/drivers/staging/ipack/bridges/tpci200.c b/drivers/staging/ipack/bridges/tpci200.c index b0d220521ccfbaf24dba50491451bd76754d77a1..1a149d87bfa398d58a08144d8bbb01d4047ccf64 100644 --- a/drivers/staging/ipack/bridges/tpci200.c +++ b/drivers/staging/ipack/bridges/tpci200.c @@ -193,7 +193,7 @@ static int tpci200_free_irq(struct ipack_device *dev) } static int tpci200_request_irq(struct ipack_device *dev, int vector, - int (*handler)(void *), void *arg) + irqreturn_t (*handler)(void *), void *arg) { int res = 0; struct slot_irq *slot_irq; diff --git a/drivers/staging/ipack/bridges/tpci200.h b/drivers/staging/ipack/bridges/tpci200.h index b8e98268a59840bbeb6da17150184472f50a3ea4..2718d22a5dd2c29829549b4068f1520872a7e840 100644 --- a/drivers/staging/ipack/bridges/tpci200.h +++ b/drivers/staging/ipack/bridges/tpci200.h @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -123,7 +122,7 @@ struct tpci200_regs { struct slot_irq { struct ipack_device *holder; int vector; - int (*handler)(void *); + irqreturn_t (*handler)(void *); void *arg; }; diff --git a/drivers/staging/ipack/devices/ipoctal.c b/drivers/staging/ipack/devices/ipoctal.c index 4cc91730f34eb5e4e5c6151317dbaf13901626ba..8e61ebd648eeefcc9f46e0bc72ec1acff6793aef 100644 --- a/drivers/staging/ipack/devices/ipoctal.c +++ b/drivers/staging/ipack/devices/ipoctal.c @@ -263,7 +263,7 @@ static void ipoctal_irq_channel(struct ipoctal_channel *channel) tty_kref_put(tty); } -static int ipoctal_irq_handler(void *arg) +static irqreturn_t ipoctal_irq_handler(void *arg) { unsigned int i; struct ipoctal *ipoctal = (struct ipoctal *) arg; diff --git a/drivers/staging/ipack/ipack.h b/drivers/staging/ipack/ipack.h index 0ea9d849e36ed67d0340285753b58b76ad123019..9c3079d08e11500c9ae737ce659b57c0e230a320 100644 --- a/drivers/staging/ipack/ipack.h +++ b/drivers/staging/ipack/ipack.h @@ -11,6 +11,7 @@ #include #include +#include #include "ipack_ids.h" @@ -126,7 +127,8 @@ struct ipack_driver { struct ipack_bus_ops { int (*map_space) (struct ipack_device *dev, unsigned int memory_size, int space); int (*unmap_space) (struct ipack_device *dev, int space); - int (*request_irq) (struct ipack_device *dev, int vector, int (*handler)(void *), void *arg); + int (*request_irq) (struct ipack_device *dev, int vector, + irqreturn_t (*handler)(void *), void *arg); int (*free_irq) (struct ipack_device *dev); int (*get_clockrate) (struct ipack_device *dev); int (*set_clockrate) (struct ipack_device *dev, int mherz);