summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/hid/hid-core.c13
-rw-r--r--include/linux/hid.h1
2 files changed, 2 insertions, 12 deletions
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index f9093dedf647..9993b692598f 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -173,8 +173,8 @@ static int open_collection(struct hid_parser *parser, unsigned type)
collection->type = type;
collection->usage = usage;
collection->level = parser->collection_stack_ptr - 1;
- collection->parent_idx = parser->active_collection_idx;
- parser->active_collection_idx = collection_index;
+ collection->parent_idx = (collection->level == 0) ? -1 :
+ parser->collection_stack[collection->level - 1];
if (type == HID_COLLECTION_APPLICATION)
parser->device->maxapplication++;
@@ -193,13 +193,6 @@ static int close_collection(struct hid_parser *parser)
return -EINVAL;
}
parser->collection_stack_ptr--;
- if (parser->active_collection_idx != -1) {
- struct hid_device *device = parser->device;
- struct hid_collection *c;
-
- c = &device->collection[parser->active_collection_idx];
- parser->active_collection_idx = c->parent_idx;
- }
return 0;
}
@@ -825,7 +818,6 @@ static int hid_scan_report(struct hid_device *hid)
return -ENOMEM;
parser->device = hid;
- parser->active_collection_idx = -1;
hid->group = HID_GROUP_GENERIC;
/*
@@ -1179,7 +1171,6 @@ int hid_open_report(struct hid_device *device)
}
parser->device = device;
- parser->active_collection_idx = -1;
end = start + size;
diff --git a/include/linux/hid.h b/include/linux/hid.h
index 992bbb7196df..f9707d1dcb58 100644
--- a/include/linux/hid.h
+++ b/include/linux/hid.h
@@ -658,7 +658,6 @@ struct hid_parser {
unsigned int *collection_stack;
unsigned int collection_stack_ptr;
unsigned int collection_stack_size;
- int active_collection_idx; /* device->collection */
struct hid_device *device;
unsigned int scan_flags;
};