Messages in this thread | | | From | Uwe Kleine-König <> | Subject | [PATCH 0/4] siox: Move some complexity into the core | Date | Mon, 19 Feb 2024 08:46:28 +0100 |
| |
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
| |