Convert drivers to use Platform::Session::dma_addr

This patch eliminates several calls of 'Dataspace::phys_addr'.

Issue #2243
This commit is contained in:
Norman Feske
2022-02-02 15:05:28 +01:00
parent 90a6f55f88
commit 51479e6be0
29 changed files with 192 additions and 98 deletions

View File

@ -84,7 +84,7 @@ class Pci_driver : public Bsd::Bus_driver
try {
Ram_dataspace_capability cap = _drv._alloc_dma_memory(BACKING_STORE_SIZE);
mapped_base = (addr_t)env.rm().attach(cap);
base = Dataspace_client(cap).phys_addr();
base = _drv._dma_addr(cap);
Allocator_avl::add_range(mapped_base, BACKING_STORE_SIZE);
} catch (...) {
@ -146,6 +146,14 @@ class Pci_driver : public Bsd::Bus_driver
});
}
/**
* Get physical address for DMA dataspace
*/
Genode::addr_t _dma_addr(Genode::Ram_dataspace_capability ds_cap)
{
return _pci.dma_addr(ds_cap);
}
public:
Pci_driver(Genode::Env &env, Genode::Allocator &alloc)