Lines Matching defs:collection

151  * Open a collection. The type/usage is pushed on the stack.
156 struct hid_collection *collection;
178 collection = kmalloc(
183 if (collection == NULL) {
184 hid_err(parser->device, "failed to reallocate collection array\n");
187 memcpy(collection, parser->device->collection,
190 memset(collection + parser->device->collection_size, 0,
193 kfree(parser->device->collection);
194 parser->device->collection = collection;
202 collection = parser->device->collection + collection_index;
203 collection->type = type;
204 collection->usage = usage;
205 collection->level = parser->collection_stack_ptr - 1;
206 collection->parent_idx = (collection->level == 0) ? -1 :
207 parser->collection_stack[collection->level - 1];
216 * Close a collection.
222 hid_err(parser->device, "collection stack underflow\n");
230 * Climb up the stack, search for the specified collection type
236 struct hid_collection *collection = parser->device->collection;
241 if (collection[index].type == type)
242 return collection[index].usage;
738 kfree(device->collection);
739 device->collection = NULL;
1127 struct hid_collection *collection;
1135 * but our field may be in a subcollection of that collection.
1140 collection = &hid->collection[usage->collection_index];
1141 while (collection->parent_idx != -1 &&
1142 collection != multiplier_collection)
1143 collection = &hid->collection[collection->parent_idx];
1145 if (collection->parent_idx != -1 ||
1168 * all controls in the collection. If no Logical Collection is
1173 * Thus, search from the current collection upwards until we find a
1174 * logical collection. Then search all fields for that same parent
1175 * collection. Those are the fields the multiplier applies to.
1180 multiplier_collection = &hid->collection[multiplier->usage->collection_index];
1183 multiplier_collection = &hid->collection[multiplier_collection->parent_idx];
1268 device->collection = kzalloc_objs(*device->collection,
1270 if (!device->collection)
1275 device->collection[i].parent_idx = -1;
1309 hid_err(device, "unbalanced collection at end of report description\n");
2347 struct hid_collection *col = &hdev->collection[i];