From: "Arend van Spriel" <arend@broadcom.com>
To: "Hauke Mehrtens" <hauke@hauke-m.de>
Cc: "Nathan Hintz" <nlhintz@hotmail.com>,
linville@tuxdriver.com, linux-wireless@vger.kernel.org
Subject: Re: [PATCH v3 6/6] bcma: Add flush for BCMA_RESET_CTL write
Date: Sat, 5 May 2012 22:40:14 +0200 [thread overview]
Message-ID: <4FA5902E.8080308@broadcom.com> (raw)
In-Reply-To: <4FA51FFE.4070100@hauke-m.de>
On 05/05/2012 02:41 PM, Hauke Mehrtens wrote:
> On 05/05/2012 09:50 AM, Nathan Hintz wrote:
>> On Sat, 2012-05-05 at 08:03 +0200, Arend van Spriel wrote:
>>> On 05/05/2012 06:56 AM, Nathan Hintz wrote:
>>>> Adds a missing read to flush the previous write (per the Broadcom SDK).
>>>>
>>>> Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
>>>> ---
>>>> drivers/bcma/core.c | 1 +
>>>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/drivers/bcma/core.c b/drivers/bcma/core.c
>>>> index 893f6e0..c4e6deb 100644
>>>> --- a/drivers/bcma/core.c
>>>> +++ b/drivers/bcma/core.c
>>>> @@ -30,6 +30,7 @@ void bcma_core_disable(struct bcma_device *core, u32 flags)
>>>> udelay(10);
>>>>
>>>> bcma_awrite32(core, BCMA_RESET_CTL, BCMA_RESET_CTL_RESET);
>>>> + bcma_aread32(core, BCMA_RESET_CTL);
>>>> udelay(1);
>>>> }
>>>> EXPORT_SYMBOL_GPL(bcma_core_disable);
>>>
>>> Hi Nathan,
>>>
>>> The read after write is only needed on (certain) SoCs. As bcma is not
>>> being used just for these SoCs I suggest to make the flush conditional.
>>> In brcmsmac we introduced "flushed write" function, which does the read
>>> only for those SoCs.
>>>
>>> Gr. AvS
>>>
>>>
>> There are several other occurrences in core.c that are the same
>> implementation as what was added in this patch. Is there a reason
>> why the existing code isn't the way you have suggested already?
>> Would it be better to submit your suggestion as a separate patch, or
>> just roll it all into this one?
>>
>> Nathan
>
> In some older versions of the Broadcom SDK (e.g. version with wl
> 5.10.147.0 and the version brcmsmac seams to be based on) this read is
> not included in ai_core_disable(), but in more recent versions (e.g.
> version including wl 5.100.138.9) this read is included unconditionally.
>
> @Arend For what SoCs should we read after this write?
> When you are speaking of (certain) SoCs are you talking about this code
> and comment from brcmsmac?
>
> #ifdef CONFIG_BCM47XX
> /*
> * bcm4716 (which includes 4717 & 4718), plus 4706 on PCIe can reorder
> * transactions. As a fix, a read after write is performed on certain places
> * in the code. Older chips and the newer 5357 family don't require this
> fix.
> */
> #define bcma_wflush16(c, o, v) \
> ({ bcma_write16(c, o, v); (void)bcma_read16(c, o); })
>
>
> Hauke
>
Yes, Those are indeed the SoCs I meant. I was being to lazy to look it
up, so thanks for making the effort ;-)
Gr. AvS
next prev parent reply other threads:[~2012-05-05 20:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1336193796-32599-1-git-send-email-nlhintz@hotmail.com>
2012-05-05 4:56 ` [PATCH v3 1/6] bcma: Find names of non BCM cores Nathan Hintz
2012-05-05 6:16 ` Arend van Spriel
2012-05-05 7:23 ` Nathan Hintz
2012-05-05 4:56 ` [PATCH v3 2/6] bcma: Move initialization of SPROM to prevent overwrite Nathan Hintz
2012-05-05 4:56 ` [PATCH v3 3/6] bcma: Account for variable PCI memory base/size Nathan Hintz
2012-05-05 4:56 ` [PATCH v3 4/6] bcma: reads/writes are always 4 bytes, so always map 4 bytes Nathan Hintz
2012-05-05 4:56 ` [PATCH v3 5/6] bcma: Add __devexit to bcma_host_pci_remove Nathan Hintz
2012-05-05 4:56 ` [PATCH v3 6/6] bcma: Add flush for BCMA_RESET_CTL write Nathan Hintz
2012-05-05 6:03 ` Arend van Spriel
2012-05-05 7:50 ` Nathan Hintz
2012-05-05 12:41 ` Hauke Mehrtens
2012-05-05 20:40 ` Arend van Spriel [this message]
2012-05-06 18:07 ` Nathan Hintz
2012-05-06 20:48 ` Arend van Spriel
2012-12-11 7:44 ` Nathan Hintz
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=4FA5902E.8080308@broadcom.com \
--to=arend@broadcom.com \
--cc=hauke@hauke-m.de \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=nlhintz@hotmail.com \
/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.