aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-01-26 08:25:47 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-02-09 10:34:50 -0500
commitae99ddbc976572194e8a68cb9ca1e27805ce30c7 (patch)
tree1c9beadf736c4038625a77cefd6f030cfba130ce /drivers/input
parent6bd72f0562142ddae26a052cfc4e578ad6953d06 (diff)
ARM: sa1111: add platform enable/disable functions
Add platform hooks to be called when individual sa1111 devices are enabled and disabled. This will allow us to move some platform specifics out of the individual drivers. Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/serio/sa1111ps2.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/input/serio/sa1111ps2.c b/drivers/input/serio/sa1111ps2.c
index 40ec545fbd40..ad7d23b5c6fe 100644
--- a/drivers/input/serio/sa1111ps2.c
+++ b/drivers/input/serio/sa1111ps2.c
@@ -124,13 +124,16 @@ static int ps2_open(struct serio *io)
124 struct ps2if *ps2if = io->port_data; 124 struct ps2if *ps2if = io->port_data;
125 int ret; 125 int ret;
126 126
127 sa1111_enable_device(ps2if->dev); 127 ret = sa1111_enable_device(ps2if->dev);
128 if (ret)
129 return ret;
128 130
129 ret = request_irq(ps2if->dev->irq[0], ps2_rxint, 0, 131 ret = request_irq(ps2if->dev->irq[0], ps2_rxint, 0,
130 SA1111_DRIVER_NAME(ps2if->dev), ps2if); 132 SA1111_DRIVER_NAME(ps2if->dev), ps2if);
131 if (ret) { 133 if (ret) {
132 printk(KERN_ERR "sa1111ps2: could not allocate IRQ%d: %d\n", 134 printk(KERN_ERR "sa1111ps2: could not allocate IRQ%d: %d\n",
133 ps2if->dev->irq[0], ret); 135 ps2if->dev->irq[0], ret);
136 sa1111_disable_device(ps2if->dev);
134 return ret; 137 return ret;
135 } 138 }
136 139
@@ -140,6 +143,7 @@ static int ps2_open(struct serio *io)
140 printk(KERN_ERR "sa1111ps2: could not allocate IRQ%d: %d\n", 143 printk(KERN_ERR "sa1111ps2: could not allocate IRQ%d: %d\n",
141 ps2if->dev->irq[1], ret); 144 ps2if->dev->irq[1], ret);
142 free_irq(ps2if->dev->irq[0], ps2if); 145 free_irq(ps2if->dev->irq[0], ps2if);
146 sa1111_disable_device(ps2if->dev);
143 return ret; 147 return ret;
144 } 148 }
145 149