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:05 UTC|newest]
Thread overview: 18+ 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-28 20:26 ` Alexey Klimov
2026-04-29 9:07 ` Tudor Ambarus
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.