Two mailbox controllers have channel/client binding mechanisms that are controller-specific and not using the devicetree binding mechanisms. Mailbox channel/client is conceptually done in two steps: selecting the channel and binding the selected to channel to a client. Channel selection is sometimes controller specific (pcc and omap are examples). The channel/client binding code is all the same. This small series de-duplicates and refactors the channel/client binding into a common framework function: "mbox_bind_client" which all of the channel selection mechanisms can use. I found this duplicate code while working on the support for Gunyah hypervisor message queues [1]. I've only been able to compile-test omap-maiblox and pcc, however it is a straightforward conversion here. [1]: https://lore.kernel.org/all/20230120224627.4053418-9-quic_eberman@xxxxxxxxxxx/ Elliot Berman (3): mailbox: Allow direct registration to a channel mailbox: omap: Use mbox_bind_client mailbox: pcc: Use mbox_bind_client drivers/mailbox/mailbox.c | 96 ++++++++++++++++++++++++---------- drivers/mailbox/omap-mailbox.c | 22 ++------ drivers/mailbox/pcc.c | 82 ++++++++++++++++------------- include/linux/mailbox_client.h | 1 + 4 files changed, 118 insertions(+), 83 deletions(-) base-commit: 09e41676e35ab06e4bce8870ea3bf1f191c3cb90 -- 2.39.1