On Sat, Oct 1, 2022 at 2:52 AM Matt Ranostay <matt.ranostay@xxxxxxxxxxxx> wrote: > > To avoid recursive dependencies on GPIOLIB when 'imply IIO' is requested > with other drivers we should switch GPIOLIB to an imply. > > This isn't the most ideal solution but avoids modifiying the Kconfig for > other drivers, and only requires a singular IS_REACHABLE(CONFIG_GPIOLIB) > check. > > Signed-off-by: Matt Ranostay <matt.ranostay@xxxxxxxxxxxx> > --- > drivers/hid/Kconfig | 2 +- > drivers/hid/hid-mcp2221.c | 2 ++ > 2 files changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig > index 185a077d59cd..745fc38794ad 100644 > --- a/drivers/hid/Kconfig > +++ b/drivers/hid/Kconfig > @@ -1252,7 +1252,7 @@ config HID_ALPS > config HID_MCP2221 > tristate "Microchip MCP2221 HID USB-to-I2C/SMbus host support" > depends on USB_HID && I2C > - depends on GPIOLIB > + imply GPIOLIB > help > Provides I2C and SMBUS host adapter functionality over USB-HID > through MCP2221 device. > diff --git a/drivers/hid/hid-mcp2221.c b/drivers/hid/hid-mcp2221.c > index 4d10a24e3e13..fb54f1c6fd9c 100644 > --- a/drivers/hid/hid-mcp2221.c > +++ b/drivers/hid/hid-mcp2221.c > @@ -915,9 +915,11 @@ static int mcp2221_probe(struct hid_device *hdev, > mcp->gc->can_sleep = 1; > mcp->gc->parent = &hdev->dev; > > +#if IS_REACHABLE(CONFIG_GPIOLIB) > ret = devm_gpiochip_add_data(&hdev->dev, mcp->gc, mcp); > if (ret) > return ret; > +#endif Hi Matt, This patch actually breaks my CI because devm_gpiochip_add_data() is not the only one function that should be protected against CONFIG_GPIOLIB. I am getting: --- ERROR: modpost: "gpiochip_get_data" [drivers/hid/hid-mcp2221.ko] undefined! --- Can you also protect gpiochip_get_data() and make sure that the driver is not completely buggy after? I assume a simple #if around all of the calls will be worse than the current non compiling situation. Cheers, Benjamin > > return 0; > } > -- > 2.37.2 >