... > > static int mcp3911_probe(struct spi_device *spi) > > { > > struct iio_dev *indio_dev; > > @@ -352,6 +382,15 @@ static int mcp3911_probe(struct spi_device *spi) > > if (ret) > > goto clk_disable; > > > > + if (device_property_read_bool(&adc->spi->dev, "microchip,data-ready-hiz")) > > + ret = mcp3911_update(adc, MCP3911_REG_STATUSCOM, MCP3911_STATUSCOM_DRHIZ, > > + 0, 2); > > + else > > + ret = mcp3911_update(adc, MCP3911_REG_STATUSCOM, MCP3911_STATUSCOM_DRHIZ, > > + MCP3911_STATUSCOM_DRHIZ, 2); > > + if (ret < 0) > > + goto clk_disable; > > + > > indio_dev->name = spi_get_device_id(spi)->name; > > indio_dev->modes = INDIO_DIRECT_MODE | INDIO_BUFFER_TRIGGERED; > > indio_dev->info = &mcp3911_info; > > @@ -362,6 +401,32 @@ static int mcp3911_probe(struct spi_device *spi) > > > > mutex_init(&adc->lock); > > > > + if (spi->irq > 0) { > > + adc->trig = devm_iio_trigger_alloc(&spi->dev, "%s-dev%d", > > + indio_dev->name, > > + iio_device_id(indio_dev)); > > + if (!adc->trig) > > + goto clk_disable; > You definitely want to use devm managed cleanup for these. > > There is a patch set that adds these as standard functions, but I haven't > yet seen it being picked up for this cycle (reviews have been slow coming). > > https://lore.kernel.org/all/20220520075737.758761-1-u.kleine-koenig@xxxxxxxxxxxxxx/ Ah, elsewhere in my unread email was a thread that says it's in clk-next so will be in the next merge window. I haven't confirmed, but looks like Stephen put up an immutable branch so I could pull it into the IIO togreg branch if you want to transition directly to that new code. @Stephen, would you be fine with me pulling your clk-devm-enable branch into IIO (with the fix which got posted earlier in the week presumably also going on that branch when you push out?) Thanks, Jonathan > > In meantime role your own with devm_add_action_or_reset()