aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/joystick
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2012-12-17 01:04:14 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2012-12-17 01:04:14 -0500
commit022573c275500e1a50889949f679d04b5446edf6 (patch)
tree766ab0e13fc38275466f8544d1bbf4982833cbff /drivers/input/joystick
parent516d798f656614f59553b1ff3592c2c36102b684 (diff)
parenta455e2985f57e2a71566bb8850094af38b2c932d (diff)
Merge branch 'next' into for-linus
Prepare first set of updates for 3.8 merge window.
Diffstat (limited to 'drivers/input/joystick')
-rw-r--r--drivers/input/joystick/as5011.c29
-rw-r--r--drivers/input/joystick/maplecontrol.c6
-rw-r--r--drivers/input/joystick/walkera0701.c7
3 files changed, 28 insertions, 14 deletions
diff --git a/drivers/input/joystick/as5011.c b/drivers/input/joystick/as5011.c
index c96653b5886..121cd63d333 100644
--- a/drivers/input/joystick/as5011.c
+++ b/drivers/input/joystick/as5011.c
@@ -85,7 +85,10 @@ static int as5011_i2c_write(struct i2c_client *client,
85{ 85{
86 uint8_t data[2] = { aregaddr, avalue }; 86 uint8_t data[2] = { aregaddr, avalue };
87 struct i2c_msg msg = { 87 struct i2c_msg msg = {
88 client->addr, I2C_M_IGNORE_NAK, 2, (uint8_t *)data 88 .addr = client->addr,
89 .flags = I2C_M_IGNORE_NAK,
90 .len = 2,
91 .buf = (uint8_t *)data
89 }; 92 };
90 int error; 93 int error;
91 94
@@ -98,8 +101,18 @@ static int as5011_i2c_read(struct i2c_client *client,
98{ 101{
99 uint8_t data[2] = { aregaddr }; 102 uint8_t data[2] = { aregaddr };
100 struct i2c_msg msg_set[2] = { 103 struct i2c_msg msg_set[2] = {
101 { client->addr, I2C_M_REV_DIR_ADDR, 1, (uint8_t *)data }, 104 {
102 { client->addr, I2C_M_RD | I2C_M_NOSTART, 1, (uint8_t *)data } 105 .addr = client->addr,
106 .flags = I2C_M_REV_DIR_ADDR,
107 .len = 1,
108 .buf = (uint8_t *)data
109 },
110 {
111 .addr = client->addr,
112 .flags = I2C_M_RD | I2C_M_NOSTART,
113 .len = 1,
114 .buf = (uint8_t *)data
115 }
103 }; 116 };
104 int error; 117 int error;
105 118
@@ -144,7 +157,7 @@ out:
144 return IRQ_HANDLED; 157 return IRQ_HANDLED;
145} 158}
146 159
147static int __devinit as5011_configure_chip(struct as5011_device *as5011, 160static int as5011_configure_chip(struct as5011_device *as5011,
148 const struct as5011_platform_data *plat_dat) 161 const struct as5011_platform_data *plat_dat)
149{ 162{
150 struct i2c_client *client = as5011->i2c_client; 163 struct i2c_client *client = as5011->i2c_client;
@@ -212,8 +225,8 @@ static int __devinit as5011_configure_chip(struct as5011_device *as5011,
212 return 0; 225 return 0;
213} 226}
214 227
215static int __devinit as5011_probe(struct i2c_client *client, 228static int as5011_probe(struct i2c_client *client,
216 const struct i2c_device_id *id) 229 const struct i2c_device_id *id)
217{ 230{
218 const struct as5011_platform_data *plat_data; 231 const struct as5011_platform_data *plat_data;
219 struct as5011_device *as5011; 232 struct as5011_device *as5011;
@@ -328,7 +341,7 @@ err_free_mem:
328 return error; 341 return error;
329} 342}
330 343
331static int __devexit as5011_remove(struct i2c_client *client) 344static int as5011_remove(struct i2c_client *client)
332{ 345{
333 struct as5011_device *as5011 = i2c_get_clientdata(client); 346 struct as5011_device *as5011 = i2c_get_clientdata(client);
334 347
@@ -353,7 +366,7 @@ static struct i2c_driver as5011_driver = {
353 .name = "as5011", 366 .name = "as5011",
354 }, 367 },
355 .probe = as5011_probe, 368 .probe = as5011_probe,
356 .remove = __devexit_p(as5011_remove), 369 .remove = as5011_remove,
357 .id_table = as5011_id, 370 .id_table = as5011_id,
358}; 371};
359 372
diff --git a/drivers/input/joystick/maplecontrol.c b/drivers/input/joystick/maplecontrol.c
index 77cfde571bd..59c10ec5a2a 100644
--- a/drivers/input/joystick/maplecontrol.c
+++ b/drivers/input/joystick/maplecontrol.c
@@ -78,7 +78,7 @@ static void dc_pad_close(struct input_dev *dev)
78} 78}
79 79
80/* allow the controller to be used */ 80/* allow the controller to be used */
81static int __devinit probe_maple_controller(struct device *dev) 81static int probe_maple_controller(struct device *dev)
82{ 82{
83 static const short btn_bit[32] = { 83 static const short btn_bit[32] = {
84 BTN_C, BTN_B, BTN_A, BTN_START, -1, -1, -1, -1, 84 BTN_C, BTN_B, BTN_A, BTN_START, -1, -1, -1, -1,
@@ -157,7 +157,7 @@ fail:
157 return error; 157 return error;
158} 158}
159 159
160static int __devexit remove_maple_controller(struct device *dev) 160static int remove_maple_controller(struct device *dev)
161{ 161{
162 struct maple_device *mdev = to_maple_dev(dev); 162 struct maple_device *mdev = to_maple_dev(dev);
163 struct dc_pad *pad = maple_get_drvdata(mdev); 163 struct dc_pad *pad = maple_get_drvdata(mdev);
@@ -175,7 +175,7 @@ static struct maple_driver dc_pad_driver = {
175 .drv = { 175 .drv = {
176 .name = "Dreamcast_controller", 176 .name = "Dreamcast_controller",
177 .probe = probe_maple_controller, 177 .probe = probe_maple_controller,
178 .remove = __devexit_p(remove_maple_controller), 178 .remove = remove_maple_controller,
179 }, 179 },
180}; 180};
181 181
diff --git a/drivers/input/joystick/walkera0701.c b/drivers/input/joystick/walkera0701.c
index 4dfa1eed4b7..f8f892b076e 100644
--- a/drivers/input/joystick/walkera0701.c
+++ b/drivers/input/joystick/walkera0701.c
@@ -196,6 +196,7 @@ static void walkera0701_close(struct input_dev *dev)
196 struct walkera_dev *w = input_get_drvdata(dev); 196 struct walkera_dev *w = input_get_drvdata(dev);
197 197
198 parport_disable_irq(w->parport); 198 parport_disable_irq(w->parport);
199 hrtimer_cancel(&w->timer);
199} 200}
200 201
201static int walkera0701_connect(struct walkera_dev *w, int parport) 202static int walkera0701_connect(struct walkera_dev *w, int parport)
@@ -224,6 +225,9 @@ static int walkera0701_connect(struct walkera_dev *w, int parport)
224 if (parport_claim(w->pardevice)) 225 if (parport_claim(w->pardevice))
225 goto init_err1; 226 goto init_err1;
226 227
228 hrtimer_init(&w->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
229 w->timer.function = timer_handler;
230
227 w->input_dev = input_allocate_device(); 231 w->input_dev = input_allocate_device();
228 if (!w->input_dev) 232 if (!w->input_dev)
229 goto init_err2; 233 goto init_err2;
@@ -254,8 +258,6 @@ static int walkera0701_connect(struct walkera_dev *w, int parport)
254 if (err) 258 if (err)
255 goto init_err3; 259 goto init_err3;
256 260
257 hrtimer_init(&w->timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
258 w->timer.function = timer_handler;
259 return 0; 261 return 0;
260 262
261 init_err3: 263 init_err3:
@@ -271,7 +273,6 @@ static int walkera0701_connect(struct walkera_dev *w, int parport)
271 273
272static void walkera0701_disconnect(struct walkera_dev *w) 274static void walkera0701_disconnect(struct walkera_dev *w)
273{ 275{
274 hrtimer_cancel(&w->timer);
275 input_unregister_device(w->input_dev); 276 input_unregister_device(w->input_dev);
276 parport_release(w->pardevice); 277 parport_release(w->pardevice);
277 parport_unregister_device(w->pardevice); 278 parport_unregister_device(w->pardevice);