summaryrefslogtreecommitdiff
path: root/drivers/input/rmi4/rmi_bus.h
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2018-07-02 11:14:50 -0600
committerJonathan Corbet <corbet@lwn.net>2018-07-02 11:14:50 -0600
commit5f6654094ff35a7a92eb76667788ef633595e4ea (patch)
tree8404c5fb245cddbc6877b97a9bf53139c95da852 /drivers/input/rmi4/rmi_bus.h
parent5105730fbf6789ff9e20837bdefe32e8ba133595 (diff)
parent021c91791a5e7e85c567452f1be3e4c2c6cb6063 (diff)
Merge tag 'v4.18-rc3' into docs-next
-rc1 broke the docs build due to changes in the e100/e1000 drivers; -rc3 got the fixes via the networking tree. Pull in -rc3 so that the docs tree can actually build the docs again.
Diffstat (limited to 'drivers/input/rmi4/rmi_bus.h')
-rw-r--r--drivers/input/rmi4/rmi_bus.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/input/rmi4/rmi_bus.h b/drivers/input/rmi4/rmi_bus.h
index b7625a9ac66a..96383eab41ba 100644
--- a/drivers/input/rmi4/rmi_bus.h
+++ b/drivers/input/rmi4/rmi_bus.h
@@ -14,6 +14,12 @@
struct rmi_device;
+/*
+ * The interrupt source count in the function descriptor can represent up to
+ * 6 interrupt sources in the normal manner.
+ */
+#define RMI_FN_MAX_IRQS 6
+
/**
* struct rmi_function - represents the implementation of an RMI4
* function for a particular device (basically, a driver for that RMI4 function)
@@ -26,6 +32,7 @@ struct rmi_device;
* @irq_pos: The position in the irq bitfield this function holds
* @irq_mask: For convenience, can be used to mask IRQ bits off during ATTN
* interrupt handling.
+ * @irqs: assigned virq numbers (up to num_of_irqs)
*
* @node: entry in device's list of functions
*/
@@ -36,6 +43,7 @@ struct rmi_function {
struct list_head node;
unsigned int num_of_irqs;
+ int irq[RMI_FN_MAX_IRQS];
unsigned int irq_pos;
unsigned long irq_mask[];
};
@@ -76,7 +84,7 @@ struct rmi_function_handler {
void (*remove)(struct rmi_function *fn);
int (*config)(struct rmi_function *fn);
int (*reset)(struct rmi_function *fn);
- int (*attention)(struct rmi_function *fn, unsigned long *irq_bits);
+ irqreturn_t (*attention)(int irq, void *ctx);
int (*suspend)(struct rmi_function *fn);
int (*resume)(struct rmi_function *fn);
};