From: Dirk Behme <dirk.behme@de.bosch.com>
To: linux-omap-open-source@linux.omap.com
Subject: Convert input devices to input_allocate_device
Date: Tue, 22 Nov 2005 20:46:55 +0100 [thread overview]
Message-ID: <438375AF.1090808@de.bosch.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 977 bytes --]
Hi,
while loading omapts and omap-keypad drivers as modules in
2.6.15-rc1-omap1 I get:
input: device omap-keypad is statically allocated, will not register
Please convert to input_allocate_device() or contact dtor_core@ameritech.net
input: device omap_ts is statically allocated, will not register
Please convert to input_allocate_device() or contact dtor_core@ameritech.net
Converting them to input_allocate_device() (patch in the attachment)
results in clean loading:
OMAP Keypad Driver
MUX: initialized N14_1610_UWIRE_CS0
MUX: initialized P15_1610_UWIRE_CS3
MUX: initialized P20_1610_GPIO4
input: omap_ts as /class/input/input0
OMAP touchscreen driver initialized
But then ts_calibrate doesn't want to open touchscreen driver:
# ts_calibrate
ts_open: No such device
My standard TS configuration (worked quite good with the old
configuration) is:
./profile:4:export TSLIB_TSDEVICE='/dev/input/event1'
./ts.conf:2:module_raw input
Any ideas?
Thanks
Dirk
[-- Attachment #2: input_allocate_device.patch --]
[-- Type: text/plain, Size: 5171 bytes --]
--- ./drivers/input/touchscreen/omap/omap_ts.c_orig 2005-11-22 20:14:23.258389432 +0100
+++ ./drivers/input/touchscreen/omap/omap_ts.c 2005-11-22 20:20:24.437481864 +0100
@@ -65,10 +65,10 @@ static int omap_ts_read(void)
ts_omap.dev->read(data);
- input_report_abs(&(ts_omap.inputdevice), ABS_X, data[0]);
- input_report_abs(&(ts_omap.inputdevice), ABS_Y, data[1]);
- input_report_abs(&(ts_omap.inputdevice), ABS_PRESSURE, data[2]);
- input_sync(&(ts_omap.inputdevice));
+ input_report_abs(ts_omap.inputdevice, ABS_X, data[0]);
+ input_report_abs(ts_omap.inputdevice, ABS_Y, data[1]);
+ input_report_abs(ts_omap.inputdevice, ABS_PRESSURE, data[2]);
+ input_sync(ts_omap.inputdevice);
DEBUG_TS("omap_ts_read: read x=%d,y=%d,p=%d\n", data[0], data[1],
data[2]);
@@ -85,7 +85,7 @@ static void omap_ts_timer(unsigned long
if (!ts_omap.dev->penup()) {
if (!ts_omap.touched) {
DEBUG_TS("omap_ts_timer: pen down\n");
- input_report_key(&(ts_omap.inputdevice), BTN_TOUCH, 1);
+ input_report_key(ts_omap.inputdevice, BTN_TOUCH, 1);
}
ts_omap.touched = 1;
omap_ts_read();
@@ -95,12 +95,12 @@ static void omap_ts_timer(unsigned long
if (ts_omap.touched) {
DEBUG_TS("omap_ts_timer: pen up\n");
ts_omap.touched = 0;
- input_report_abs(&(ts_omap.inputdevice), ABS_X, 0);
- input_report_abs(&(ts_omap.inputdevice), ABS_Y, 0);
- input_report_abs(&(ts_omap.inputdevice), ABS_PRESSURE,
+ input_report_abs(ts_omap.inputdevice, ABS_X, 0);
+ input_report_abs(ts_omap.inputdevice, ABS_Y, 0);
+ input_report_abs(ts_omap.inputdevice, ABS_PRESSURE,
0);
- input_sync(&(ts_omap.inputdevice));
- input_report_key(&(ts_omap.inputdevice), BTN_TOUCH, 0);
+ input_sync(ts_omap.inputdevice);
+ input_report_key(ts_omap.inputdevice, BTN_TOUCH, 0);
}
if (!ts_omap.irq_enabled) {
ts_omap.irq_enabled = 1;
@@ -168,14 +168,14 @@ static int __init omap_ts_probe(struct d
return -EINVAL;
}
- init_input_dev(&(ts_omap.inputdevice));
- ts_omap.inputdevice.name = OMAP_TS_NAME;
- ts_omap.inputdevice.dev = dev;
- ts_omap.inputdevice.evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
- ts_omap.inputdevice.keybit[LONG(BTN_TOUCH)] |= BIT(BTN_TOUCH);
- ts_omap.inputdevice.absbit[0] =
+ ts_omap.inputdevice = input_allocate_device();
+ ts_omap.inputdevice->name = OMAP_TS_NAME;
+ ts_omap.inputdevice->dev = dev;
+ ts_omap.inputdevice->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS);
+ ts_omap.inputdevice->keybit[LONG(BTN_TOUCH)] |= BIT(BTN_TOUCH);
+ ts_omap.inputdevice->absbit[0] =
BIT(ABS_X) | BIT(ABS_Y) | BIT(ABS_PRESSURE);
- input_register_device(&(ts_omap.inputdevice));
+ input_register_device(ts_omap.inputdevice);
ts_omap.dev->enable();
@@ -187,7 +187,7 @@ static int __init omap_ts_probe(struct d
static int __exit omap_ts_remove(struct device *dev)
{
ts_omap.dev->disable();
- input_unregister_device(&ts_omap.inputdevice);
+ input_unregister_device(ts_omap.inputdevice);
if (ts_omap.irq != -1)
free_irq(ts_omap.irq, &ts_omap);
--- ./drivers/input/touchscreen/omap/omap_ts.h_orig 2005-11-22 19:47:37.137556912 +0100
+++ ./drivers/input/touchscreen/omap/omap_ts.h 2005-11-22 20:09:03.938933368 +0100
@@ -42,7 +42,7 @@ struct ts_device {
};
struct omap_ts_t{
- struct input_dev inputdevice;
+ struct input_dev * inputdevice;
struct timer_list ts_timer; // Timer for triggering acquisitions
int touched;
int irq;
--- ./drivers/input/keyboard/omap-keypad.c_orig 2005-11-22 20:17:15.222246952 +0100
+++ ./drivers/input/keyboard/omap-keypad.c 2005-11-22 20:20:56.918543992 +0100
@@ -44,7 +44,7 @@
static void omap_kp_tasklet(unsigned long);
static void omap_kp_timer(unsigned long);
-static struct input_dev omap_kp_dev;
+static struct input_dev * omap_kp_dev;
static unsigned char keypad_state[8];
static unsigned int keypad_irq = INT_KEYBOARD;
@@ -246,7 +246,7 @@ static void omap_kp_tasklet(unsigned lon
continue;
}
- input_report_key(&omap_kp_dev, key,
+ input_report_key(omap_kp_dev, key,
new_state[col] & (1 << row));
#endif
}
@@ -277,7 +277,7 @@ static int __init omap_kp_init(void)
if (machine_is_omap_h2() || machine_is_omap_h3()) {
keymap = h2_keymap;
- set_bit(EV_REP, omap_kp_dev.evbit);
+ set_bit(EV_REP, omap_kp_dev->evbit);
} else if (machine_is_omap_innovator()) {
keymap = innovator_keymap;
} else if (machine_is_omap_osk()) {
@@ -299,11 +299,11 @@ static int __init omap_kp_init(void)
return -EINVAL;
/* setup input device */
- set_bit(EV_KEY, omap_kp_dev.evbit);
+ omap_kp_dev = input_allocate_device();
+ set_bit(EV_KEY, omap_kp_dev->evbit);
for (i = 0; keymap[i] != 0; i++)
- set_bit(keymap[i] & 0x00ffffff, omap_kp_dev.keybit);
- omap_kp_dev.name = "omap-keypad";
- input_register_device(&omap_kp_dev);
+ set_bit(keymap[i] & 0x00ffffff, omap_kp_dev->keybit);
+ omap_kp_dev->name = "omap-keypad";
if (machine_is_omap_h2() || machine_is_omap_h3()) {
omap_cfg_reg(F18_1610_KBC0);
@@ -353,7 +353,7 @@ static void __exit omap_kp_exit(void)
del_timer_sync(&kp_timer);
/* unregister everything */
- input_unregister_device(&omap_kp_dev);
+ input_unregister_device(omap_kp_dev);
}
module_init(omap_kp_init);
[-- Attachment #3: Type: text/plain, Size: 184 bytes --]
_______________________________________________
Linux-omap-open-source mailing list
Linux-omap-open-source@linux.omap.com
http://linux.omap.com/mailman/listinfo/linux-omap-open-source
next reply other threads:[~2005-11-22 19:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-22 19:46 Dirk Behme [this message]
2005-11-22 21:49 ` Convert input devices to input_allocate_device Dirk Behme
2005-11-28 9:54 ` [PATCH] " Dirk Behme
2005-11-28 10:03 ` Komal Shah
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=438375AF.1090808@de.bosch.com \
--to=dirk.behme@de.bosch.com \
--cc=linux-omap-open-source@linux.omap.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.