From: Robin Murphy <robin.murphy@arm.com>
To: Serge Semin <fancer.lancer@gmail.com>,
Christoph Hellwig <hch@infradead.org>
Cc: "Serge Semin" <Sergey.Semin@baikalelectronics.ru>,
"Gustavo Pimentel" <gustavo.pimentel@synopsys.com>,
"Vinod Koul" <vkoul@kernel.org>, "Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
"Cai Huoqing" <cai.huoqing@linux.dev>,
"Jingoo Han" <jingoohan1@gmail.com>,
"Frank Li" <Frank.Li@nxp.com>,
"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Alexey Malahov" <Alexey.Malahov@baikalelectronics.ru>,
"Pavel Parkhomenko" <Pavel.Parkhomenko@baikalelectronics.ru>,
caihuoqing <caihuoqing@baidu.com>,
"Yoshihiro Shimoda" <yoshihiro.shimoda.uh@renesas.com>,
linux-pci@vger.kernel.org, dmaengine@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 23/25] PCI: dwc: Restore DMA-mask after MSI-data allocation
Date: Fri, 16 Dec 2022 14:01:20 +0000 [thread overview]
Message-ID: <22bae859-58ee-80cd-f31b-2313c2e47531@arm.com> (raw)
In-Reply-To: <20221216101827.owq7qpakjduf3rit@mobilestation>
On 2022-12-16 10:18, Serge Semin wrote:
> On Fri, Dec 16, 2022 at 01:49:38AM -0800, Christoph Hellwig wrote:
>> On Fri, Dec 16, 2022 at 12:34:23PM +0300, Serge Semin wrote:
>>> What about instead of save/restore pattern I'll just change the
>>> dma_set_mask_and_coherent() method with the dma_set_coherent_mask()
>>> function call? It seems cleaner. Like this:
>>
>>> Thus the platform-specific streaming DMA mask would be preserved.
>>> Since it's PCIe then having the streaming DMA-mask less than 32-bits
>>> wide is very much improbable. Moreover DW PCIe AXI-interface can be
>>> synthesize only with one out of two address bus widths: 32 and 64.
>>
>
>> Where platform-specific means the dwc subdriver?
>
> Right. I meant the streaming DMA-mask set by the low-level DWC PCIe drivers
> (like pcie-qcom(-ep)?.c, pcie-bt1.c, etc). It's very much important to
> have the real DMA-mask (at least the streaming one) set for the eDMA-capable
> controllers so the DMA-engine clients would work with the best performance.
>
>> Yes, that seems to work.
>
> Ok. I'll just use the direct dma_set_coherent_mask() method here then.
>
>> Alternatively have a flag that says which streaming mask
>> to set.
>
> I'd prefer to have more flexibility here relying on the low-level
> drivers to set the mask(s) instead of adding the new flag, just in case
> if there is vendor-specific IP-core/platform changes in the address
> bus width.
Presumably the low-level glue drivers could pass a bus size or mask
value in struct dw_pcie_rp/dw_pcie, so the actual dma_set_mask() call
itself could be centralised? I guess there's also an argument that only
glue drivers which care about eDMA need to care about setting a mask at
all, so I don't have a string preference either way. If you'd rather
stick with that approach then it might be worth a brief comment at each
site to clarify why the other mask is being set from an entirely
different place, just in case anyone comes along and tries to "fix" it.
Cheers,
Robin.
next prev parent reply other threads:[~2022-12-16 14:01 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-14 23:52 [PATCH v7 00/25] dmaengine: dw-edma: Add RP/EP local DMA controllers support Serge Semin
2022-12-14 23:52 ` [PATCH v7 01/25] dmaengine: Fix dma_slave_config.dst_addr description Serge Semin
2022-12-14 23:52 ` [PATCH v7 02/25] dmaengine: dw-edma: Release requested IRQs on failure Serge Semin
2022-12-14 23:52 ` [PATCH v7 03/25] dmaengine: dw-edma: Convert ll/dt phys-address to PCIe bus/DMA address Serge Semin
2022-12-14 23:52 ` [PATCH v7 04/25] dmaengine: dw-edma: Fix missing src/dst address of the interleaved xfers Serge Semin
2022-12-14 23:52 ` [PATCH v7 05/25] dmaengine: dw-edma: Don't permit non-inc " Serge Semin
2022-12-14 23:52 ` [PATCH v7 06/25] dmaengine: dw-edma: Fix invalid interleaved xfers semantics Serge Semin
2022-12-14 23:52 ` [PATCH v7 07/25] dmaengine: dw-edma: Add CPU to PCIe bus address translation Serge Semin
2022-12-14 23:52 ` [PATCH v7 08/25] dmaengine: dw-edma: Add PCIe bus address getter to the remote EP glue-driver Serge Semin
2022-12-14 23:52 ` [PATCH v7 09/25] dmaengine: dw-edma: Drop chancnt initialization Serge Semin
2022-12-14 23:52 ` [PATCH v7 10/25] dmaengine: dw-edma: Fix DebugFS reg entry type Serge Semin
2022-12-14 23:52 ` [PATCH v7 11/25] dmaengine: dw-edma: Stop checking debugfs_create_*() return value Serge Semin
2022-12-14 23:52 ` [PATCH v7 12/25] dmaengine: dw-edma: Add dw_edma prefix to the DebugFS nodes descriptor Serge Semin
2022-12-14 23:52 ` [PATCH v7 13/25] dmaengine: dw-edma: Convert DebugFS descs to being kz-allocated Serge Semin
2022-12-14 23:52 ` [PATCH v7 14/25] dmaengine: dw-edma: Rename DebugFS dentry variables to 'dent' Serge Semin
2022-12-14 23:52 ` [PATCH v7 15/25] dmaengine: dw-edma: Simplify the DebugFS context CSRs init procedure Serge Semin
2022-12-14 23:52 ` [PATCH v7 16/25] dmaengine: dw-edma: Move eDMA data pointer to DebugFS node descriptor Serge Semin
2022-12-14 23:52 ` [PATCH v7 17/25] dmaengine: dw-edma: Join Write/Read channels into a single device Serge Semin
2022-12-14 23:52 ` [PATCH v7 18/25] dmaengine: dw-edma: Use DMA-engine device DebugFS subdirectory Serge Semin
2022-12-14 23:52 ` [PATCH v7 19/25] dmaengine: dw-edma: Use non-atomic io-64 methods Serge Semin
2022-12-14 23:53 ` [PATCH v7 20/25] dmaengine: dw-edma: Drop DT-region allocation Serge Semin
2022-12-14 23:53 ` [PATCH v7 21/25] dmaengine: dw-edma: Replace chip ID number with device name Serge Semin
2022-12-14 23:53 ` [PATCH v7 22/25] dmaengine: dw-edma: Skip cleanup procedure if no private data found Serge Semin
2022-12-14 23:53 ` [PATCH v7 23/25] PCI: dwc: Restore DMA-mask after MSI-data allocation Serge Semin
2022-12-15 0:03 ` Serge Semin
2022-12-15 7:13 ` Christoph Hellwig
2022-12-15 9:27 ` Serge Semin
2022-12-15 10:26 ` Robin Murphy
2022-12-15 23:52 ` Serge Semin
2022-12-16 7:39 ` Christoph Hellwig
2022-12-16 9:34 ` Serge Semin
2022-12-16 9:49 ` Christoph Hellwig
2022-12-16 10:18 ` Serge Semin
2022-12-16 14:01 ` Robin Murphy [this message]
2022-12-16 17:02 ` Serge Semin
2022-12-14 23:53 ` [PATCH v7 24/25] PCI: bt1: Set 64-bit DMA-mask Serge Semin
2023-01-13 12:04 ` Lorenzo Pieralisi
2023-01-13 12:12 ` Serge Semin
2023-01-13 17:40 ` Robin Murphy
2023-01-13 18:23 ` Serge Semin
2022-12-14 23:53 ` [PATCH v7 25/25] PCI: dwc: Add DW eDMA engine support Serge Semin
2022-12-15 12:25 ` kernel test robot
2022-12-15 17:08 ` kernel test robot
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=22bae859-58ee-80cd-f31b-2313c2e47531@arm.com \
--to=robin.murphy@arm.com \
--cc=Alexey.Malahov@baikalelectronics.ru \
--cc=Frank.Li@nxp.com \
--cc=Pavel.Parkhomenko@baikalelectronics.ru \
--cc=Sergey.Semin@baikalelectronics.ru \
--cc=bhelgaas@google.com \
--cc=cai.huoqing@linux.dev \
--cc=caihuoqing@baidu.com \
--cc=dmaengine@vger.kernel.org \
--cc=fancer.lancer@gmail.com \
--cc=gustavo.pimentel@synopsys.com \
--cc=hch@infradead.org \
--cc=jingoohan1@gmail.com \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=lpieralisi@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=robh@kernel.org \
--cc=vkoul@kernel.org \
--cc=yoshihiro.shimoda.uh@renesas.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®