diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2023-03-16 15:12:52 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2023-03-16 15:12:52 +0100 |
commit | 9b6c8c0aa005554673b1a95f5ae8db72f60a589b (patch) | |
tree | 3714e47c0286d235bfb4443d54989471864bda31 /arch/mips | |
parent | 88000c146a55cf0758007fadcac870e54e227256 (diff) | |
parent | 840cbe82579563346ee9097524123c17818fbf60 (diff) | |
download | barebox-9b6c8c0aa005554673b1a95f5ae8db72f60a589b.tar.gz barebox-9b6c8c0aa005554673b1a95f5ae8db72f60a589b.tar.xz |
Merge branch 'for-next/mips' into next
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/lib/bootm.c | 10 | ||||
-rw-r--r-- | arch/mips/lib/dma-default.c | 36 |
2 files changed, 24 insertions, 22 deletions
diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c index 655535737e..19d82ec375 100644 --- a/arch/mips/lib/bootm.c +++ b/arch/mips/lib/bootm.c @@ -57,25 +57,25 @@ static int do_bootm_elf(struct image_data *data) fdt = bootm_get_devicetree(data); if (IS_ERR(fdt)) { - ret = PTR_ERR(fdt); - goto bootm_free_fdt; + pr_err("Failed to load dtb\n"); + return PTR_ERR(fdt); } pr_info("Starting application at 0x%08lx, dts 0x%08lx...\n", - phys_to_virt(data->os_address), data->of_root_node); + data->os_address, data->of_root_node); if (data->dryrun) goto bootm_free_fdt; ret = of_overlay_load_firmware(); if (ret) - return ret; + goto bootm_free_fdt; shutdown_barebox(); entry = (void *) (unsigned long) data->os_address; - entry(-2, phys_to_virt((unsigned long)fdt)); + entry(-2, fdt); pr_err("ELF application terminated\n"); ret = -EINVAL; diff --git a/arch/mips/lib/dma-default.c b/arch/mips/lib/dma-default.c index 48176e5d28..0347d7a7db 100644 --- a/arch/mips/lib/dma-default.c +++ b/arch/mips/lib/dma-default.c @@ -6,35 +6,37 @@ #include <dma.h> #include <asm/io.h> -static inline void __dma_sync_mips(unsigned long addr, size_t size, - enum dma_data_direction direction) +void dma_sync_single_for_cpu(dma_addr_t address, size_t size, + enum dma_data_direction dir) { - switch (direction) { + unsigned long virt = (unsigned long)phys_to_virt(address); + + switch (dir) { case DMA_TO_DEVICE: - dma_flush_range(addr, addr + size); break; - case DMA_FROM_DEVICE: - dma_inv_range(addr, addr + size); - break; - case DMA_BIDIRECTIONAL: - dma_flush_range(addr, addr + size); + dma_inv_range(virt, virt + size); break; - default: BUG(); } } -void dma_sync_single_for_cpu(dma_addr_t address, size_t size, - enum dma_data_direction dir) -{ - __dma_sync_mips(address, size, dir); -} - void dma_sync_single_for_device(dma_addr_t address, size_t size, enum dma_data_direction dir) { - __dma_sync_mips(address, size, dir); + unsigned long virt = (unsigned long)phys_to_virt(address); + + switch (dir) { + case DMA_FROM_DEVICE: + dma_inv_range(virt, virt + size); + break; + case DMA_TO_DEVICE: + case DMA_BIDIRECTIONAL: + dma_flush_range(virt, virt + size); + break; + default: + BUG(); + } } |