Thanks Tobias for the patch! Reviewed-by: Rishi Gupta <gupt21@xxxxxxxxx> On Wed, Aug 18, 2021 at 8:28 AM Tobias Junghans <tobias.junghans@xxxxxxxx> wrote: > > devm_gpiochip_add_data() calls the gpio_chip->get_direction handler > for each line, resulting in device I/O in mcp_gpio_get_direction(). > However unless hid_device_io_start() is called, mcp2221_raw_event() > is not called during probe, causing mcp_gpio_get_direction() to time > out. This fixes that probing takes 12 seconds to complete. > > Signed-off-by: Tobias Junghans <tobias.junghans@xxxxxxxx> > --- > drivers/hid/hid-mcp2221.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/hid/hid-mcp2221.c b/drivers/hid/hid-mcp2221.c > index 4211b9839209..8e54173b195c 100644 > --- a/drivers/hid/hid-mcp2221.c > +++ b/drivers/hid/hid-mcp2221.c > @@ -895,7 +895,10 @@ static int mcp2221_probe(struct hid_device *hdev, > mcp->gc->can_sleep = 1; > mcp->gc->parent = &hdev->dev; > > + hid_device_io_start(hdev); > ret = devm_gpiochip_add_data(&hdev->dev, mcp->gc, mcp); > + hid_device_io_stop(hdev); > + > if (ret) > goto err_gc; > > -- > 2.25.1 >