On Mon, 2024-07-22 at 16:57 -0500, David Lechner wrote: > This adds support for SPI offload to the ad7944 driver. This allows > reading data at the max sample rate of 2.5 MSPS. > > Signed-off-by: David Lechner <dlechner@xxxxxxxxxxxx> > --- > ... > +static void ad7944_put_clk_trigger(void *p) > +{ > + clk_put(p); > +} > + I think this means we may still need to improve the API a bit. This asymmetric handling is (to me) and indicator that something is not very well from a design perspective. What I mean is that if you get the clock through spi I would also expect to put() it through SPI. Now that I think about it that's also true for the DMA channel handling but in there things are a bit more complicated. I mean, at least you're making this explicit in the docs so maybe it's acceptable. But it stills feels strange to me that the place where the resources are requested and bound too is not the same one responsible for releasing them. If we go with the provider/consumer approach and having a properly refcounted spi_offload object I think we may be able to do it from the offload object context. Maybe not worth it though... Not sure tbh. - Nuno Sá