net: axienet: Autodetect 64-bit DMA capability
[ Upstream commit f735c40ed93ccaeb52d026def47ac1a423df7133 ] When newer revisions of the Axienet IP are configured for a 64-bit bus, we *need* to write to the MSB part of the an address registers, otherwise the IP won't recognise this as a DMA start condition. This is even true when the actual DMA address comes from the lower 4 GB. To autodetect this configuration, at probe time we write all 1's to such an MSB register, and see if any bits stick. If this is configured for a 32-bit bus, those MSB registers are RES0, so reading back 0 indicates that no MSB writes are necessary. On the other hands reading anything other than 0 indicated the need to write the MSB registers, so we set the respective flag. The actual DMA mask stays at 32-bit for now. To help bisecting, a separate patch will enable allocations from higher addresses. Signed-off-by:Andre Przywara <andre.przywara@arm.com> Signed-off-by:
David S. Miller <davem@davemloft.net> Stable-dep-of: 9ff2f816e2aa ("net: axienet: Fix register defines comment description") Signed-off-by:
Sasha Levin <sashal@kernel.org>
Loading
Please register or sign in to comment