[PATCH 0/4] siox: Move some complexity into the core

From: Uwe Kleine-König
Date: Mon Feb 19 2024 - 02:48:52 EST


Hello,

the reference handling in siox is a bit strange. With
siox_master_alloc() to get a reference on the master that is passed to
the core calling siox_master_register(). So until siox_master_register()
is called successfully the driver has to call siox_master_put() in the
error path, but on remove siox_master_unregister cares for that. While
that technically works, it's unusual and surprising to use. This serie's
first patch cleans that up and then introduces devm functions to make it
even easier to use.

A nice (and intended) side effect is that the gpio bus driver gets rid
of it's remove callback, so I don't have to adapt it for my quest that
changes the prototype of .remove().

Best regards
Uwe

Uwe Kleine-König (4):
siox: Don't pass the reference on a master in siox_master_register()
siox: Provide a devm variant of siox_master_alloc()
siox: Provide a devm variant of siox_master_register()
siox: bus-gpio: Simplify using devm_siox_* functions

drivers/siox/siox-bus-gpio.c | 62 ++++++++++++------------------------
drivers/siox/siox-core.c | 45 ++++++++++++++++++++++++++
drivers/siox/siox.h | 4 +++
3 files changed, 69 insertions(+), 42 deletions(-)


base-commit: d37e1e4c52bc60578969f391fb81f947c3e83118
--
2.43.0