Re: [PATCH v2 04/10] iio: adc: mcp3911: add support for interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



...

> >  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()



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux