[PATCH v3 0/3] Qualcomm Resource Power Manager driver

Bjorn Andersson bjorn at kryo.se
Thu Jun 19 11:22:41 PDT 2014


On Wed, Jun 18, 2014 at 8:55 PM, Jassi Brar <jaswinder.singh at linaro.org> wrote:
> On 18 June 2014 22:14, Kevin Hilman <khilman at linaro.org> wrote:
[...]
>> Thinking more about what this RPM driver actually does, and since you
>> mentioned patterns across SoCs, it seems to me the RPM driver bascially
>> just doing the IPC.
>>
>> So, rather than MFD or drivers/soc, it seems to me that it should be
>> implmented as a controller in the new common mailbox framwork[1] being
>> worked on by Jassi Brar (added to Cc.)
>>
>> IIUC, RPM is actually only doing one-way IPC (it only exposes a write()
>> interface to clients) so it seems like a rather simple implementation of
>> a mailbox controller.
>>
> Yup, qcom_rpm.c is exactly what drivers/mailbox/ is meant for.
>

The RPM provides a register file with 80ish registers of variable size, to
program the hardware you write to these registers. Then you write to a register
selector register and then signal an outgoing interrupt.

That is, the interface exposed to the kernel by the SoC is not an mailbox like
interface.

So I do not share your view that this is "exactly what mailbox is meant for",
because if so then you're just re-inventing regmap - with variable size regs.


The reason why I'm not using a regmap as my abstraction between the rpm and the
clients (e.g. regulator driver) is because it only supports fixed size
registers.


To me the mailbox api is supposed to abstract communication hardware, not to
abstract communication between software components.

Regards,
Bjorn



More information about the linux-arm-kernel mailing list