On Mon, Mar 1, 2021 at 3:18 PM Andy Shevchenko <andy.shevchenko@xxxxxxxxx> wrote: > > On Sun, Feb 28, 2021 at 3:30 AM Ronald Tschalär <ronald@xxxxxxxxxxxxx> wrote: > > > > These are useful to drivers that need to scan or parse reports > > themselves. > > ... > > > - while ((start = fetch_item(start, end, &item)) != NULL) > > + while ((start = hid_fetch_item(start, end, &item)) != NULL) > > dispatch_type[item.type](parser, &item); > > > - while ((next = fetch_item(start, end, &item)) != NULL) { > > + while ((next = hid_fetch_item(start, end, &item)) != NULL) { > > start = next; > > I don't see the full picture, but perhaps you may also introduce > for_each_hid_item() or so. Same here, I don't see the full picture, but I would suggest to not export those functions at all. >From 4/5, I can see that you are using them in appleib_find_collection(), which is only called by appleib_add_device(), which in turn is always called with a parsed and started HID device. Why can you not rely on the core parsing and iterate over the already parsed hid_field? Cheers, Benjamin