Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 84477 Details for
Bug 124301
splashutils-1.1.9.10 emerge fails with various errors (kernel 2.6.16)
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Dmitry's fix
input-mod-devicetable.patch (text/plain), 9.96 KB, created by
Daniel Drake (RETIRED)
on 2006-04-11 19:12:52 UTC
(
hide
)
Description:
Dmitry's fix
Filename:
MIME Type:
Creator:
Daniel Drake (RETIRED)
Created:
2006-04-11 19:12:52 UTC
Size:
9.96 KB
patch
obsolete
>Input: move input_device_id to mod_devicetable.h > >Signed-off-by: Dmitry Torokhov <dtor@mail.ru> >--- > drivers/input/input.c | 8 +-- > include/linux/input.h | 104 ++++++++++++++++++++-------------------- > include/linux/mod_devicetable.h | 48 ++++++++++++++++++ > scripts/mod/file2alias.c | 36 ++++++------- > 4 files changed, 122 insertions(+), 74 deletions(-) > >Index: linux/include/linux/input.h >=================================================================== >--- linux.orig/include/linux/input.h >+++ linux/include/linux/input.h >@@ -12,8 +12,6 @@ > #ifdef __KERNEL__ > #include <linux/time.h> > #include <linux/list.h> >-#include <linux/device.h> >-#include <linux/mod_devicetable.h> > #else > #include <sys/time.h> > #include <sys/ioctl.h> >@@ -577,15 +575,15 @@ struct input_absinfo { > * Switch events > */ > >-#define SW_0 0x00 >-#define SW_1 0x01 >-#define SW_2 0x02 >-#define SW_3 0x03 >-#define SW_4 0x04 >-#define SW_5 0x05 >-#define SW_6 0x06 >-#define SW_7 0x07 >-#define SW_MAX 0x0f >+#define SW_0 0x00 >+#define SW_1 0x01 >+#define SW_2 0x02 >+#define SW_3 0x03 >+#define SW_4 0x04 >+#define SW_5 0x05 >+#define SW_6 0x06 >+#define SW_7 0x07 >+#define SW_MAX 0x0f > > /* > * Misc events >@@ -805,52 +803,16 @@ struct ff_effect { > > #define FF_MAX 0x7f > >-struct input_device_id { >- >- kernel_ulong_t flags; >- >- struct input_id id; >- >- kernel_ulong_t evbit[EV_MAX/BITS_PER_LONG+1]; >- kernel_ulong_t keybit[KEY_MAX/BITS_PER_LONG+1]; >- kernel_ulong_t relbit[REL_MAX/BITS_PER_LONG+1]; >- kernel_ulong_t absbit[ABS_MAX/BITS_PER_LONG+1]; >- kernel_ulong_t mscbit[MSC_MAX/BITS_PER_LONG+1]; >- kernel_ulong_t ledbit[LED_MAX/BITS_PER_LONG+1]; >- kernel_ulong_t sndbit[SND_MAX/BITS_PER_LONG+1]; >- kernel_ulong_t ffbit[FF_MAX/BITS_PER_LONG+1]; >- kernel_ulong_t swbit[SW_MAX/BITS_PER_LONG+1]; >- >- kernel_ulong_t driver_info; >-}; >- >-/* >- * Structure for hotplug & device<->driver matching. >- */ >- >-#define INPUT_DEVICE_ID_MATCH_BUS 1 >-#define INPUT_DEVICE_ID_MATCH_VENDOR 2 >-#define INPUT_DEVICE_ID_MATCH_PRODUCT 4 >-#define INPUT_DEVICE_ID_MATCH_VERSION 8 >- >-#define INPUT_DEVICE_ID_MATCH_EVBIT 0x010 >-#define INPUT_DEVICE_ID_MATCH_KEYBIT 0x020 >-#define INPUT_DEVICE_ID_MATCH_RELBIT 0x040 >-#define INPUT_DEVICE_ID_MATCH_ABSBIT 0x080 >-#define INPUT_DEVICE_ID_MATCH_MSCIT 0x100 >-#define INPUT_DEVICE_ID_MATCH_LEDBIT 0x200 >-#define INPUT_DEVICE_ID_MATCH_SNDBIT 0x400 >-#define INPUT_DEVICE_ID_MATCH_FFBIT 0x800 >-#define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000 >- > #ifdef __KERNEL__ > > /* > * In-kernel definitions. > */ > >+#include <linux/device.h> > #include <linux/fs.h> > #include <linux/timer.h> >+#include <linux/mod_devicetable.h> > > #define NBITS(x) (((x)/BITS_PER_LONG)+1) > #define BIT(x) (1UL<<((x)%BITS_PER_LONG)) >@@ -951,9 +913,49 @@ struct input_dev { > }; > #define to_input_dev(d) container_of(d, struct input_dev, cdev) > >-#define INPUT_DEVICE_ID_MATCH_DEVICE\ >+/* >+ * Verify that we are in sync with input_device_id mod_devicetable.h #defines >+ */ >+ >+#if EV_MAX != INPUT_DEVICE_ID_EV_MAX >+#error "EV_MAX and INPUT_DEVICE_ID_EV_MAX do not match" >+#endif >+ >+#if KEY_MAX != INPUT_DEVICE_ID_KEY_MAX >+#error "KEY_MAX and INPUT_DEVICE_ID_KEY_MAX do not match" >+#endif >+ >+#if REL_MAX != INPUT_DEVICE_ID_REL_MAX >+#error "REL_MAX and INPUT_DEVICE_ID_REL_MAX do not match" >+#endif >+ >+#if ABS_MAX != INPUT_DEVICE_ID_ABS_MAX >+#error "ABS_MAX and INPUT_DEVICE_ID_ABS_MAX do not match" >+#endif >+ >+#if MSC_MAX != INPUT_DEVICE_ID_MSC_MAX >+#error "MSC_MAX and INPUT_DEVICE_ID_MSC_MAX do not match" >+#endif >+ >+#if LED_MAX != INPUT_DEVICE_ID_LED_MAX >+#error "LED_MAX and INPUT_DEVICE_ID_LED_MAX do not match" >+#endif >+ >+#if SND_MAX != INPUT_DEVICE_ID_SND_MAX >+#error "SND_MAX and INPUT_DEVICE_ID_SND_MAX do not match" >+#endif >+ >+#if FF_MAX != INPUT_DEVICE_ID_FF_MAX >+#error "FF_MAX and INPUT_DEVICE_ID_FF_MAX do not match" >+#endif >+ >+#if SW_MAX != INPUT_DEVICE_ID_SW_MAX >+#error "SW_MAX and INPUT_DEVICE_ID_SW_MAX do not match" >+#endif >+ >+#define INPUT_DEVICE_ID_MATCH_DEVICE \ > (INPUT_DEVICE_ID_MATCH_BUS | INPUT_DEVICE_ID_MATCH_VENDOR | INPUT_DEVICE_ID_MATCH_PRODUCT) >-#define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION\ >+#define INPUT_DEVICE_ID_MATCH_DEVICE_AND_VERSION \ > (INPUT_DEVICE_ID_MATCH_DEVICE | INPUT_DEVICE_ID_MATCH_VERSION) > > struct input_handle; >Index: linux/include/linux/mod_devicetable.h >=================================================================== >--- linux.orig/include/linux/mod_devicetable.h >+++ linux/include/linux/mod_devicetable.h >@@ -249,4 +249,52 @@ struct i2c_device_id { > __u16 id; > }; > >+/* Input */ >+#define INPUT_DEVICE_ID_EV_MAX 0x1f >+#define INPUT_DEVICE_ID_KEY_MAX 0x1ff >+#define INPUT_DEVICE_ID_REL_MAX 0x0f >+#define INPUT_DEVICE_ID_ABS_MAX 0x3f >+#define INPUT_DEVICE_ID_MSC_MAX 0x07 >+#define INPUT_DEVICE_ID_LED_MAX 0x0f >+#define INPUT_DEVICE_ID_SND_MAX 0x07 >+#define INPUT_DEVICE_ID_FF_MAX 0x7f >+#define INPUT_DEVICE_ID_SW_MAX 0x0f >+ >+#define INPUT_DEVICE_ID_MATCH_BUS 1 >+#define INPUT_DEVICE_ID_MATCH_VENDOR 2 >+#define INPUT_DEVICE_ID_MATCH_PRODUCT 4 >+#define INPUT_DEVICE_ID_MATCH_VERSION 8 >+ >+#define INPUT_DEVICE_ID_MATCH_EVBIT 0x0010 >+#define INPUT_DEVICE_ID_MATCH_KEYBIT 0x0020 >+#define INPUT_DEVICE_ID_MATCH_RELBIT 0x0040 >+#define INPUT_DEVICE_ID_MATCH_ABSBIT 0x0080 >+#define INPUT_DEVICE_ID_MATCH_MSCIT 0x0100 >+#define INPUT_DEVICE_ID_MATCH_LEDBIT 0x0200 >+#define INPUT_DEVICE_ID_MATCH_SNDBIT 0x0400 >+#define INPUT_DEVICE_ID_MATCH_FFBIT 0x0800 >+#define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000 >+ >+struct input_device_id { >+ >+ kernel_ulong_t flags; >+ >+ __u16 bustype; >+ __u16 vendor; >+ __u16 product; >+ __u16 version; >+ >+ kernel_ulong_t evbit[INPUT_DEVICE_ID_EV_MAX / BITS_PER_LONG + 1]; >+ kernel_ulong_t keybit[INPUT_DEVICE_ID_KEY_MAX / BITS_PER_LONG + 1]; >+ kernel_ulong_t relbit[INPUT_DEVICE_ID_REL_MAX / BITS_PER_LONG + 1]; >+ kernel_ulong_t absbit[INPUT_DEVICE_ID_ABS_MAX / BITS_PER_LONG + 1]; >+ kernel_ulong_t mscbit[INPUT_DEVICE_ID_MSC_MAX / BITS_PER_LONG + 1]; >+ kernel_ulong_t ledbit[INPUT_DEVICE_ID_LED_MAX / BITS_PER_LONG + 1]; >+ kernel_ulong_t sndbit[INPUT_DEVICE_ID_SND_MAX / BITS_PER_LONG + 1]; >+ kernel_ulong_t ffbit[INPUT_DEVICE_ID_FF_MAX / BITS_PER_LONG + 1]; >+ kernel_ulong_t swbit[INPUT_DEVICE_ID_SW_MAX / BITS_PER_LONG + 1]; >+ >+ kernel_ulong_t driver_info; >+}; >+ > #endif /* LINUX_MOD_DEVICETABLE_H */ >Index: linux/scripts/mod/file2alias.c >=================================================================== >--- linux.orig/scripts/mod/file2alias.c >+++ linux/scripts/mod/file2alias.c >@@ -371,10 +371,10 @@ static void do_input(char *alias, > kernel_ulong_t *arr, unsigned int min, unsigned int max) > { > unsigned int i; >- for (i = min; i < max; i++) { >- if (arr[i/BITS_PER_LONG] & (1 << (i%BITS_PER_LONG))) >- sprintf(alias+strlen(alias), "%X,*", i); >- } >+ >+ for (i = min; i < max; i++) >+ if (arr[i / BITS_PER_LONG] & (1 << (i%BITS_PER_LONG))) >+ sprintf(alias + strlen(alias), "%X,*", i); > } > > /* input:b0v0p0e0-eXkXrXaXmXlXsXfXwX where X is comma-separated %02X. */ >@@ -383,39 +383,37 @@ static int do_input_entry(const char *fi > { > sprintf(alias, "input:"); > >- ADD(alias, "b", id->flags&INPUT_DEVICE_ID_MATCH_BUS, id->id.bustype); >- ADD(alias, "v", id->flags&INPUT_DEVICE_ID_MATCH_VENDOR, id->id.vendor); >- ADD(alias, "p", id->flags&INPUT_DEVICE_ID_MATCH_PRODUCT, >- id->id.product); >- ADD(alias, "e", id->flags&INPUT_DEVICE_ID_MATCH_VERSION, >- id->id.version); >+ ADD(alias, "b", id->flags & INPUT_DEVICE_ID_MATCH_BUS, id->bustype); >+ ADD(alias, "v", id->flags & INPUT_DEVICE_ID_MATCH_VENDOR, id->vendor); >+ ADD(alias, "p", id->flags & INPUT_DEVICE_ID_MATCH_PRODUCT, id->product); >+ ADD(alias, "e", id->flags & INPUT_DEVICE_ID_MATCH_VERSION, id->version); > > sprintf(alias + strlen(alias), "-e*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_EVBIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_EVBIT) > do_input(alias, id->evbit, 0, EV_MAX); > sprintf(alias + strlen(alias), "k*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_KEYBIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_KEYBIT) > do_input(alias, id->keybit, KEY_MIN_INTERESTING, KEY_MAX); > sprintf(alias + strlen(alias), "r*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_RELBIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_RELBIT) > do_input(alias, id->relbit, 0, REL_MAX); > sprintf(alias + strlen(alias), "a*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_ABSBIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_ABSBIT) > do_input(alias, id->absbit, 0, ABS_MAX); > sprintf(alias + strlen(alias), "m*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_MSCIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_MSCIT) > do_input(alias, id->mscbit, 0, MSC_MAX); > sprintf(alias + strlen(alias), "l*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_LEDBIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_LEDBIT) > do_input(alias, id->ledbit, 0, LED_MAX); > sprintf(alias + strlen(alias), "s*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_SNDBIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_SNDBIT) > do_input(alias, id->sndbit, 0, SND_MAX); > sprintf(alias + strlen(alias), "f*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_FFBIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_FFBIT) > do_input(alias, id->ffbit, 0, FF_MAX); > sprintf(alias + strlen(alias), "w*"); >- if (id->flags&INPUT_DEVICE_ID_MATCH_SWBIT) >+ if (id->flags & INPUT_DEVICE_ID_MATCH_SWBIT) > do_input(alias, id->swbit, 0, SW_MAX); > return 1; > } >Index: linux/drivers/input/input.c >=================================================================== >--- linux.orig/drivers/input/input.c >+++ linux/drivers/input/input.c >@@ -286,19 +286,19 @@ static struct input_device_id *input_mat > for (; id->flags || id->driver_info; id++) { > > if (id->flags & INPUT_DEVICE_ID_MATCH_BUS) >- if (id->id.bustype != dev->id.bustype) >+ if (id->bustype != dev->id.bustype) > continue; > > if (id->flags & INPUT_DEVICE_ID_MATCH_VENDOR) >- if (id->id.vendor != dev->id.vendor) >+ if (id->vendor != dev->id.vendor) > continue; > > if (id->flags & INPUT_DEVICE_ID_MATCH_PRODUCT) >- if (id->id.product != dev->id.product) >+ if (id->product != dev->id.product) > continue; > > if (id->flags & INPUT_DEVICE_ID_MATCH_VERSION) >- if (id->id.version != dev->id.version) >+ if (id->version != dev->id.version) > continue; > > MATCH_BIT(evbit, EV_MAX); >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 124301
:
82718
|
83711
|
84452
| 84477