Re: [PATCH] omap:iommu-added cache flushing operation for L2 cache

From: David Cohen
Date: Wed Mar 02 2011 - 06:59:05 EST


Hi,

On Tue, Mar 1, 2011 at 9:46 PM, Fernando Guzman Lugo
<fernando.lugo@xxxxxx> wrote:
> From: Ramesh Gupta <grgupta@xxxxxx>

No patch body description at all?
Can we get at least something here?

Regards,

David

>
> Signed-off-by: Ramesh Gupta <grgupta@xxxxxx>
> Signed-off-by: Hari Kanigeri <h-kanigeri2@xxxxxx>
> ---
> Âarch/arm/plat-omap/iommu.c | Â 22 ++++++++--------------
> Â1 files changed, 8 insertions(+), 14 deletions(-)
>
> diff --git a/arch/arm/plat-omap/iommu.c b/arch/arm/plat-omap/iommu.c
> index e3eb038..aeb2c33 100644
> --- a/arch/arm/plat-omap/iommu.c
> +++ b/arch/arm/plat-omap/iommu.c
> @@ -471,22 +471,15 @@ EXPORT_SYMBOL_GPL(foreach_iommu_device);
> Â*/
> Âstatic void flush_iopgd_range(u32 *first, u32 *last)
> Â{
> - Â Â Â /* FIXME: L2 cache should be taken care of if it exists */
> - Â Â Â do {
> -        asm("mcr    Âp15, 0, %0, c7, c10, 1 @ flush_pgd"
> - Â Â Â Â Â Â Â Â Â : : "r" (first));
> - Â Â Â Â Â Â Â first += L1_CACHE_BYTES / sizeof(*first);
> - Â Â Â } while (first <= last);
> + Â Â Â dmac_flush_range(first, last);
> + Â Â Â outer_flush_range(virt_to_phys(first), virt_to_phys(last));
> Â}
>
> +
> Âstatic void flush_iopte_range(u32 *first, u32 *last)
> Â{
> - Â Â Â /* FIXME: L2 cache should be taken care of if it exists */
> - Â Â Â do {
> -        asm("mcr    Âp15, 0, %0, c7, c10, 1 @ flush_pte"
> - Â Â Â Â Â Â Â Â Â : : "r" (first));
> - Â Â Â Â Â Â Â first += L1_CACHE_BYTES / sizeof(*first);
> - Â Â Â } while (first <= last);
> + Â Â Â dmac_flush_range(first, last);
> + Â Â Â outer_flush_range(virt_to_phys(first), virt_to_phys(last));
> Â}
>
> Âstatic void iopte_free(u32 *iopte)
> @@ -750,7 +743,7 @@ size_t iopgtable_clear_entry(struct iommu *obj, u32 da)
> Â}
> ÂEXPORT_SYMBOL_GPL(iopgtable_clear_entry);
>
> -static void iopgtable_clear_entry_all(struct iommu *obj)
> +void iopgtable_clear_entry_all(struct iommu *obj)
> Â{
> Â Â Â Âint i;
>
> @@ -777,7 +770,7 @@ static void iopgtable_clear_entry_all(struct iommu *obj)
>
> Â Â Â Âspin_unlock(&obj->page_table_lock);
> Â}
> -
> +EXPORT_SYMBOL_GPL(iopgtable_clear_entry_all);
> Â/*
> Â* Â Â Device IOMMU generic operations
> Â*/
> @@ -1068,6 +1061,7 @@ static void iopte_cachep_ctor(void *iopte)
> Â Â Â Âclean_dcache_area(iopte, IOPTE_TABLE_SIZE);
> Â}
>
> +
> Âstatic int __init omap_iommu_init(void)
> Â{
> Â Â Â Âstruct kmem_cache *p;
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at Âhttp://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/