Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1281765
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 2/4] dmaengine: qcom_bam_dma: clear BAM interrupt only if it is rised |
| Date | 2015-12-02 14:10 +0100 |
| Message-ID | <qBfkt-7B5-1@gated-at.bofh.it> (permalink) |
| References | <qAPgm-7I5-11@gated-at.bofh.it> <qAQvM-8pk-23@gated-at.bofh.it> <qBfaO-7ik-7@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Wednesday 02 December 2015 14:56:57 Stanimir Varbanov wrote:
> On 12/01/2015 12:29 PM, Arnd Bergmann wrote:
> > On Tuesday 01 December 2015 11:14:57 Stanimir Varbanov wrote:
> >> + if (srcs & BAM_IRQ) {
> >> clr_mask = readl_relaxed(bam_addr(bdev, 0, BAM_IRQ_STTS));
> >>
> >> - /* don't allow reorder of the various accesses to the BAM registers */
> >> - mb();
> >> + /*
> >> + * don't allow reorder of the various accesses to the BAM
> >> + * registers
> >> + */
> >> + mb();
> >>
> >> - writel_relaxed(clr_mask, bam_addr(bdev, 0, BAM_IRQ_CLR));
> >> + writel_relaxed(clr_mask, bam_addr(bdev, 0, BAM_IRQ_CLR));
> >> + }
> >>
> >
> > I think the comment here should be moved: change the writel_relaxed()
> > to writel(), which already includes the appropriate barriers, and
>
> If we agree with such a change it should be subject to another patch.
Correct.
> > add a comment at the readl_relaxed() to explain why it doesn't need
> > a barrier.
>
> Infact I'm not sure that readl_relaxed(BAM_IRQ_STTS) does not need
> barrier. If I read the code above correctly the mb() should guarantee
> that all load and store operations before it are happened before the
> write to BAM_IRQ_CLR register, and on the other hand if we replace
> writel_relaxed with writel, the writel has wmb() which guarantees only
> store operations. Did I miss something?
You are right, we only guarantee that stores to memory are complete
before we writel() an MMIO register.
What do you gain from synchronizing reads before an MMIO write?
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 2/4] dmaengine: qcom_bam_dma: clear BAM interrupt only if it is rised Stanimir Varbanov <stanimir.varbanov@linaro.org> - 2015-12-01 10:20 +0100
Re: [PATCH 2/4] dmaengine: qcom_bam_dma: clear BAM interrupt only if it is rised Arnd Bergmann <arnd@arndb.de> - 2015-12-01 11:40 +0100
Re: [PATCH 2/4] dmaengine: qcom_bam_dma: clear BAM interrupt only if it is rised Stanimir Varbanov <stanimir.varbanov@linaro.org> - 2015-12-02 14:00 +0100
Re: [PATCH 2/4] dmaengine: qcom_bam_dma: clear BAM interrupt only if it is rised Arnd Bergmann <arnd@arndb.de> - 2015-12-02 14:10 +0100
Re: [PATCH 2/4] dmaengine: qcom_bam_dma: clear BAM interrupt only if it is rised Stanimir Varbanov <stanimir.varbanov@linaro.org> - 2015-12-02 17:50 +0100
Re: [PATCH 2/4] dmaengine: qcom_bam_dma: clear BAM interrupt only if it is rised Andy Gross <agross@codeaurora.org> - 2015-12-01 18:30 +0100
csiph-web