From: Tudor Ambarus <tudor.ambarus@linaro.org>
To: Alexey Klimov <alexey.klimov@linaro.org>
Cc: Krzysztof Kozlowski <krzk@kernel.org>,
Sylwester Nawrocki <s.nawrocki@samsung.com>,
Chanwoo Choi <cw00.choi@samsung.com>,
Alim Akhtar <alim.akhtar@samsung.com>,
Sam Protsenko <semen.protsenko@linaro.org>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Jassi Brar <jassisinghbrar@gmail.com>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Peter Griffin <peter.griffin@linaro.org>,
linux-samsung-soc@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Juan Yescas <jyescas@google.com>
Subject: Re: [PATCH v2 2/3] mailbox: exynos: Add support for Exynos850 mailbox
Date: Thu, 9 Apr 2026 15:04:52 +0300 [thread overview]
Message-ID: <c796e077-e061-44c4-a8e1-dbd8d3c14caa@linaro.org> (raw)
In-Reply-To: <DHNSP3FVR4ZQ.1PIRHF0KJGKI5@linaro.org>
On 4/8/26 4:08 PM, Alexey Klimov wrote:
> Hi Tudor,
Hi!
>> I find it strange that the SoCs use different registers. Are you sure you're
>> using the right direction? i.e. ring the doorbell to APM and not to AP?
>
> Well, I am not sure I correctly understood the questions and comment. So,
> this all was tested with ACPM TMU code with 3 temp sensors and it seems
> to work and sensors react in the right way.
>
> Downstream clearly does the following (see also [1],[2]) when sending
> ACPM msg:
>
> static void apm_interrupt_gen(unsigned int id)
> {
> /* APM NVIC INTERRUPT GENERATE */
> writel((1 << id) << 16, acpm_ipc->intr + INTGR0);
> }
>
Indeed, it looks alright, thanks for the pointers.
> I am aware that gs101 downstream uses INTGR1 in apm_interrupt_gen().
>
> When I use INTGR1 for e850 then I observe acpm timeouts. Hence, out of
> curiosity, what's the expected behaviour when/if I ring the doorbell to
If you raise your own interrupt the APM remains unaware and the AP times out.
You also have a spurious interrupt on yourself.
> AP (to itself as far as I understand)? My understanding that it won't
> work at all in such case unless APM firmware does some very fast
> polling.
>
>
> [1]: https://gitlab.com/Linaro/96boards/e850-96/kernel/-/blob/android-exynos-4.14-linaro/drivers/soc/samsung/acpm/acpm_ipc.c?ref_type=heads#L423
> [2]: https://github.com/samsungexynos850/android_kernel_samsung_exynos850/blob/0af517be2336bf8e09c59d576c4c314446713101/drivers/soc/samsung/acpm/acpm_ipc.c#L426
>
>>> static int exynos_mbox_send_data(struct mbox_chan *chan, void *data)
>>> @@ -57,7 +104,8 @@ static int exynos_mbox_send_data(struct mbox_chan *chan, void *data)
>>> return -EINVAL;
>>> }
>>>
>>> - writel(BIT(msg->chan_id), exynos_mbox->regs + EXYNOS_MBOX_INTGR1);
>>> + writel(BIT(msg->chan_id) << exynos_mbox->data->irq_doorbell_shift,
>>> + exynos_mbox->regs + exynos_mbox->data->irq_doorbell_offset);
>>
>> Use FIELD_PREP from <linux/bitfield.h> please. You will use a mask instead of
>> a shift.
>>
>> I would rename irq_doorbell_offset to intgr. It aligns with the register name
>> from the datasheet. You won't need to prepend _offset to the name, we already
>> see it's an offset when doing the writel().
>
> Sure. Thanks. Let's use FIELD_PREP.
>
> "doorbell" naming was chosen for readability and maintainability reasons.
> It seems to be more generic enough name that better reflects the workflow
> of what's going on in ACPM+mailbox machinery. We can rename it to just
> "doorbell" for instance.
>
> From platform data it will be clear to which register it is set, INTGR0
> or INTGR1, to align it with datasheet (which is closed anyway).
>
> Regarding intgr vs doorbell name, the intgr is a bit unclear for a
> reader if it means interrupt generation register or something else.
interrupt generation registers sounds sane to me
> But if you prefer, I can go with "intgr".
I think I prefer intgr, yes. If you choose doorbell, you'll have:
writel(FIELD_PREP(data->doorbell_mask), BIT(msg->chan_id),
exynos_mbox->regs + data->doorbell);
or maybe s/doorbell/doorbell_reg? But that would duplicate
exynos_mbox->regs, we already see that doorbell is a reg offset.
Doorbell is too generic for my taste.
And then how would you refer to the interrupt mask register? You
already have a doorbell_mask in the example above.
I won't push back too hard, I'll let you choose. If you can find a good
naming scheme for the interrupt generation reg and interrupt mask reg,
then fine.
>
> One more option is add a comment, smth like /* Ring the doorbell */
> before that writel().
I'm okay with such comment.
Cheers,
ta
next prev parent reply other threads:[~2026-04-09 12:04 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-02 2:20 [PATCH v2 0/3] Exynos850 APM-to-AP mailbox support Alexey Klimov
2026-04-02 2:20 ` [PATCH v2 1/3] dt-bindings: mailbox: google,gs101-mbox: Add samsung,exynos850-mbox Alexey Klimov
2026-04-02 8:11 ` Krzysztof Kozlowski
2026-04-02 8:46 ` Tudor Ambarus
2026-04-02 2:20 ` [PATCH v2 2/3] mailbox: exynos: Add support for Exynos850 mailbox Alexey Klimov
2026-04-02 8:11 ` Krzysztof Kozlowski
2026-04-02 8:42 ` Tudor Ambarus
2026-04-08 13:08 ` Alexey Klimov
2026-04-09 12:04 ` Tudor Ambarus [this message]
2026-04-02 2:20 ` [PATCH v2 3/3] arm64: dts: exynos850: Add ap2apm mailbox Alexey Klimov
2026-04-02 8:01 ` Krzysztof Kozlowski
2026-04-02 13:30 ` Alexey Klimov
2026-04-02 13:32 ` Krzysztof Kozlowski
2026-04-02 8:48 ` Tudor Ambarus
2026-04-02 8:45 ` [PATCH v2 0/3] Exynos850 APM-to-AP mailbox support Tudor Ambarus
2026-04-08 14:05 ` Alexey Klimov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c796e077-e061-44c4-a8e1-dbd8d3c14caa@linaro.org \
--to=tudor.ambarus@linaro.org \
--cc=alexey.klimov@linaro.org \
--cc=alim.akhtar@samsung.com \
--cc=conor+dt@kernel.org \
--cc=cw00.choi@samsung.com \
--cc=devicetree@vger.kernel.org \
--cc=jassisinghbrar@gmail.com \
--cc=jyescas@google.com \
--cc=krzk+dt@kernel.org \
--cc=krzk@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=peter.griffin@linaro.org \
--cc=robh@kernel.org \
--cc=s.nawrocki@samsung.com \
--cc=sboyd@kernel.org \
--cc=semen.protsenko@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox