Re: [PATCH] firmware: qcom_scm: use correct parameter type for dma_alloc_coherent

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 8, 2018 at 1:21 PM, Benjamin Gaignard
<benjamin.gaignard@xxxxxxxxxx> wrote:
> dma_alloc_coherent expects it third argument type to be dma_addr_t and
> not phys_addr_t.
> When phys_addr_t is defined as u32 and dma_addr_t as u64 that generate
> a compilation issue.
> Change the variable name because dma_alloc_coherent returns a bus
> address not a physical address.
>

> @@ -480,14 +480,14 @@ int qcom_scm_assign_mem(phys_addr_t mem_addr, size_t mem_sz,
>
>         /* Fill details of mem buff to map */
>         mem_to_map = ptr + ALIGN(src_sz, SZ_64);
> -       mem_to_map_phys = ptr_phys + ALIGN(src_sz, SZ_64);
> +       mem_to_map_phys = handle + ALIGN(src_sz, SZ_64);
>         mem_to_map[0].mem_addr = cpu_to_le64(mem_addr);
>         mem_to_map[0].mem_size = cpu_to_le64(mem_sz);
>
>         next_vm = 0;
>         /* Fill details of next vmid detail */
>         destvm = ptr + ALIGN(mem_to_map_sz, SZ_64) + ALIGN(src_sz, SZ_64);
> -       dest_phys = ptr_phys + ALIGN(mem_to_map_sz, SZ_64) + ALIGN(src_sz, SZ_64);
> +       dest_phys = handle + ALIGN(mem_to_map_sz, SZ_64) + ALIGN(src_sz, SZ_64);

This still assigns from a 'dma' address to a 'phys' address without a
long comment
explaining why you do it. There is also another instance of the naming confusion
in qcom_scm_pas_init_image and __qcom_scm_pas_init_image, so maybe they
should be addressed at the same time.

       Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux