summaryrefslogtreecommitdiffstats
path: root/drivers/hid
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2010-12-09 19:29:08 -0800
committerJiri Kosina <jkosina@suse.cz>2010-12-10 15:14:43 +0100
commit504499f22c08a03e2e19dc88d31aa0ecd2ac815e (patch)
tree9cbd803c228103b37006ab2427981db8d7f66ab0 /drivers/hid
parenta3789a1783d37f2772ba5046b26416c98dfe1bfa (diff)
downloadlinux-504499f22c08a03e2e19dc88d31aa0ecd2ac815e.tar.gz
linux-504499f22c08a03e2e19dc88d31aa0ecd2ac815e.tar.bz2
linux-504499f22c08a03e2e19dc88d31aa0ecd2ac815e.zip
HID: simplify an index check in hid_lookup_collection
Save the struct hid_collection * in a temporary to shorten the generated code a bit and perhaps improve readability. $ size drivers/hid/hid-core.o* text data bss dec hex filename 16460 78 8 16546 40a2 drivers/hid/hid-core.o.new 16469 78 8 16555 40ab drivers/hid/hid-core.o.old Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Diffstat (limited to 'drivers/hid')
-rw-r--r--drivers/hid/hid-core.c10
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)
static unsigned hid_lookup_collection(struct hid_parser *parser, unsigned type)
{
+ struct hid_collection *collection = parser->device->collection;
int n;
- for (n = parser->collection_stack_ptr - 1; n >= 0; n--)
- if (parser->device->collection[parser->collection_stack[n]].type == type)
- return parser->device->collection[parser->collection_stack[n]].usage;
+
+ for (n = parser->collection_stack_ptr - 1; n >= 0; n--) {
+ unsigned index = parser->collection_stack[n];
+ if (collection[index].type == type)
+ return collection[index].usage;
+ }
return 0; /* we know nothing about this usage type */
}