diff options
-rw-r--r-- | drivers/hid/hid-core.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 86b7155632fb..d4c1906313d2 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -178,10 +178,14 @@ static int close_collection(struct hid_parser *parser) | |||
178 | 178 | ||
179 | static unsigned hid_lookup_collection(struct hid_parser *parser, unsigned type) | 179 | static unsigned hid_lookup_collection(struct hid_parser *parser, unsigned type) |
180 | { | 180 | { |
181 | struct hid_collection *collection = parser->device->collection; | ||
181 | int n; | 182 | int n; |
182 | for (n = parser->collection_stack_ptr - 1; n >= 0; n--) | 183 | |
183 | if (parser->device->collection[parser->collection_stack[n]].type == type) | 184 | for (n = parser->collection_stack_ptr - 1; n >= 0; n--) { |
184 | return parser->device->collection[parser->collection_stack[n]].usage; | 185 | unsigned index = parser->collection_stack[n]; |
186 | if (collection[index].type == type) | ||
187 | return collection[index].usage; | ||
188 | } | ||
185 | return 0; /* we know nothing about this usage type */ | 189 | return 0; /* we know nothing about this usage type */ |
186 | } | 190 | } |
187 | 191 | ||