From: noralf@tronnes.org (Noralf Trønnes)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/3 v8] mailbox: Enable BCM2835 mailbox support
Date: Tue, 12 May 2015 17:28:47 +0200 [thread overview]
Message-ID: <55521C2F.5030809@tronnes.org> (raw)
In-Reply-To: <1430857666-18877-2-git-send-email-eric@anholt.net>
Den 05.05.2015 22:27, skrev Eric Anholt:
> From: Lubomir Rintel <lkundrak@v3.sk>
>
> This mailbox driver provides a single mailbox channel to write 32-bit
> values to the VPU and get a 32-bit response. The Raspberry Pi
> firmware uses this mailbox channel to implement firmware calls, while
> Roku 2 (despite being derived from the same firmware tree) doesn't.
>
> The driver was originally submitted by Lubomir, based on the
> out-of-tree 2708 mailbox driver. Eric Anholt fixed it up for
> upstreaming, with the major functional change being that it now has no
> notion of multiple channels (since that is a firmware-dependent
> concept) and instead the raspberrypi-firmware driver will do that
> bit-twiddling in its own messages.
>
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> Signed-off-by: Craig McGeachie <slapdau@yahoo.com.au>
> Signed-off-by: Eric Anholt <eric@anholt.net>
> Cc: Jassi Brar <jassisinghbrar@gmail.com>
> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
> ---
[...]
> diff --git a/drivers/mailbox/bcm2835-mailbox.c b/drivers/mailbox/bcm2835-mailbox.c
[...]
> +static bool bcm2835_last_tx_done(struct mbox_chan *link)
> +{
> + struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
> + bool ret;
> +
> + spin_lock(&mbox->lock);
> + ret = !(readl(mbox->regs + MAIL0_STA) & ARM_MS_FULL);
I don't know how the mailbox framework uses this function,
but MAIL0_STA might be wrong here.
Phil Elwell detected a bug in the downstream mailbox driver in
the mbox_write function where it waits for space to be available
in the FIFO. His observation:
With the VC reader blocked and the ARM writing, MAIL0_STA reads
empty permanently while MAIL1_STA goes from empty (0x40000000)
to non-empty (0x00000001-0x00000007) to full (0x80000008).
See:
https://github.com/raspberrypi/linux/commit/3018d8a0996ad2340ba1b3f473f705ef285b01b5
WARNING: multiple messages have this Message-ID (diff)
From: "Noralf Trønnes" <noralf@tronnes.org>
To: Eric Anholt <eric@anholt.net>, linux-arm-kernel@lists.infradead.org
Cc: devicetree@vger.kernel.org, Jassi Brar <jassisinghbrar@gmail.com>,
linux-kernel@vger.kernel.org,
linux-rpi-kernel@lists.infradead.org, Phil <phil@raspberrypi.org>
Subject: Re: [PATCH 2/3 v8] mailbox: Enable BCM2835 mailbox support
Date: Tue, 12 May 2015 17:28:47 +0200 [thread overview]
Message-ID: <55521C2F.5030809@tronnes.org> (raw)
In-Reply-To: <1430857666-18877-2-git-send-email-eric@anholt.net>
Den 05.05.2015 22:27, skrev Eric Anholt:
> From: Lubomir Rintel <lkundrak@v3.sk>
>
> This mailbox driver provides a single mailbox channel to write 32-bit
> values to the VPU and get a 32-bit response. The Raspberry Pi
> firmware uses this mailbox channel to implement firmware calls, while
> Roku 2 (despite being derived from the same firmware tree) doesn't.
>
> The driver was originally submitted by Lubomir, based on the
> out-of-tree 2708 mailbox driver. Eric Anholt fixed it up for
> upstreaming, with the major functional change being that it now has no
> notion of multiple channels (since that is a firmware-dependent
> concept) and instead the raspberrypi-firmware driver will do that
> bit-twiddling in its own messages.
>
> Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
> Signed-off-by: Craig McGeachie <slapdau@yahoo.com.au>
> Signed-off-by: Eric Anholt <eric@anholt.net>
> Cc: Jassi Brar <jassisinghbrar@gmail.com>
> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
> ---
[...]
> diff --git a/drivers/mailbox/bcm2835-mailbox.c b/drivers/mailbox/bcm2835-mailbox.c
[...]
> +static bool bcm2835_last_tx_done(struct mbox_chan *link)
> +{
> + struct bcm2835_mbox *mbox = bcm2835_link_mbox(link);
> + bool ret;
> +
> + spin_lock(&mbox->lock);
> + ret = !(readl(mbox->regs + MAIL0_STA) & ARM_MS_FULL);
I don't know how the mailbox framework uses this function,
but MAIL0_STA might be wrong here.
Phil Elwell detected a bug in the downstream mailbox driver in
the mbox_write function where it waits for space to be available
in the FIFO. His observation:
With the VC reader blocked and the ARM writing, MAIL0_STA reads
empty permanently while MAIL1_STA goes from empty (0x40000000)
to non-empty (0x00000001-0x00000007) to full (0x80000008).
See:
https://github.com/raspberrypi/linux/commit/3018d8a0996ad2340ba1b3f473f705ef285b01b5
next prev parent reply other threads:[~2015-05-12 15:28 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-05 20:27 [PATCH 1/3 v6] dt/bindings: Add binding for the BCM2835 mailbox driver Eric Anholt
2015-05-05 20:27 ` Eric Anholt
2015-05-05 20:27 ` Eric Anholt
2015-05-05 20:27 ` [PATCH 2/3 v8] mailbox: Enable BCM2835 mailbox support Eric Anholt
2015-05-05 20:27 ` Eric Anholt
2015-05-07 17:28 ` Noralf Trønnes
2015-05-07 17:28 ` Noralf Trønnes
2015-05-07 17:28 ` Noralf Trønnes
2015-05-07 19:54 ` Eric Anholt
2015-05-07 19:54 ` Eric Anholt
2015-05-08 8:33 ` Alexander Stein
2015-05-08 8:33 ` Alexander Stein
2015-05-08 19:19 ` Eric Anholt
2015-05-08 19:19 ` Eric Anholt
2015-05-12 2:41 ` Stephen Warren
2015-05-12 2:41 ` Stephen Warren
2015-05-08 20:38 ` Noralf Trønnes
2015-05-08 20:38 ` Noralf Trønnes
2015-05-08 20:38 ` Noralf Trønnes
2015-05-12 15:28 ` Noralf Trønnes [this message]
2015-05-12 15:28 ` Noralf Trønnes
2015-05-05 20:27 ` [PATCH 3/3 v2] ARM: bcm2835: Add the mailbox to the device tree Eric Anholt
2015-05-05 20:27 ` Eric Anholt
2015-05-13 7:57 ` Lee Jones
2015-05-13 7:57 ` Lee Jones
2015-05-12 4:03 ` [PATCH 1/3 v6] dt/bindings: Add binding for the BCM2835 mailbox driver Jassi Brar
2015-05-12 4:03 ` Jassi Brar
2015-05-13 7:57 ` Lee Jones
2015-05-13 7:57 ` Lee Jones
2015-05-13 7:57 ` Lee Jones
2015-05-13 15:47 ` Jassi Brar
2015-05-13 15:47 ` Jassi Brar
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=55521C2F.5030809@tronnes.org \
--to=noralf@tronnes.org \
--cc=linux-arm-kernel@lists.infradead.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.