[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <DB6JF2JLZEO8.4HZPDC26F3G8@kernel.org>
Date: Tue, 08 Jul 2025 10:40:34 +0200
From: "Danilo Krummrich" <dakr@...nel.org>
To: "Alistair Popple" <apopple@...dia.com>
Cc: <rust-for-linux@...r.kernel.org>, "Bjorn Helgaas" <bhelgaas@...gle.com>,
Krzysztof Wilczyński <kwilczynski@...nel.org>, "Miguel
Ojeda" <ojeda@...nel.org>, "Alex Gaynor" <alex.gaynor@...il.com>, "Boqun
Feng" <boqun.feng@...il.com>, "Gary Guo" <gary@...yguo.net>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>, "Benno Lossin"
<lossin@...nel.org>, "Andreas Hindborg" <a.hindborg@...nel.org>, "Alice
Ryhl" <aliceryhl@...gle.com>, "Trevor Gross" <tmgross@...ch.edu>, "Greg
Kroah-Hartman" <gregkh@...uxfoundation.org>, "Rafael J. Wysocki"
<rafael@...nel.org>, "John Hubbard" <jhubbard@...dia.com>, "Alexandre
Courbot" <acourbot@...dia.com>, <linux-pci@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/2] rust: Add dma_set_mask() and
dma_set_coherent_mask() bindings
On Tue Jul 8, 2025 at 8:04 AM CEST, Alistair Popple wrote:
> Add bindings to allow setting the DMA masks for both a generic device
> and a PCI device.
Nice coincidence, I was about to get back to this. I already implemented this in
a previous patch [1], but didn't apply it yet.
I think the approach below is thought a bit too simple:
(1) We want the DMA mask methods to be implemented by a trait in dma.rs.
Subsequently, the trait should only be implemented by bus devices where
the bus actually supports DMA. Allowing to set the DMA mask on any device
doesn't make sense.
(2) We need to consider that with this we do no prevent
dma_set_coherent_mask() to concurrently with dma_alloc_coherent() (not
even if we'd add a new `Probe` device context).
(2) is the main reason why I didn't follow up yet. So far I haven't found a nice
solution for a sound API that doesn't need unsafe.
One thing I did consider was to have some kind of per device table (similar to
the device ID table) for drivers to specify the DMA mask already at compile
time. However, I'm pretty sure there are cases where the DMA mask has to derived
dynamically from probe().
I think I have to think a bit more about it.
[1] https://lore.kernel.org/all/20250317185345.2608976-7-abdiel.janulgue@gmail.com/
Powered by blists - more mailing lists