On Tue, May 14, 2024 at 06:31:39AM -0700, Bartosz Golaszewski wrote: > On Mon, 13 May 2024 12:13:31 +0200, Kent Gibson <warthog618@xxxxxxxxx> said: > > > >> > /** > >> > * @brief Set the bias of requested input line. > >> > * @param olr The request to reconfigure. > >> > * @param bias The new bias to apply to requested input line. > >> > * @return 0 on success, -1 on failure. > >> > */ > >> > int gpiod_olr_set_bias(struct gpiod_line_request * olr, > >> > enum gpiod_line_bias bias); > >> > >> For this to work, you'd most likely need a new struct wrapping the request > >> and also storing the line config. Otherwise - how'd you keep the state of all > >> the other line settings? > >> > > > > Yeah, I realised that when I went to implement it :(. > > > > What I implemented was to read the line info and build the config from that. > > So no impact on core. > > Not the most efficient, but for this use case I wan't fussed. > > > > I think those simplified requests should wrap the config structures, otherwise > we'd have to readback the config from the kernel which would become quite > complex for anything including more than one line. > The whole point of the simplified requests is that they only deal with a single line. And the config mutators only deal with a single input. Wouldn't wrapping break the ability to use all the other gpiod_line_request_XXX functions, and so require adding more functions to make use of the simplified requests? Maybe I'm missing something. Cheers, Kent.