/* * dsp-mmu.h * * DSP-BIOS Bridge driver support functions for TI OMAP processors. * * DSP iommu. * * Copyright (C) 2005-2010 Texas Instruments, Inc. * * This package is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef _DSP_MMU_ #define _DSP_MMU_ #include #include /** * dsp_mmu_init() - initialize dsp_mmu module and returns a handle * * This function initialize dsp mmu module and returns a struct iommu * handle to use it for dsp maps. * */ struct iommu *dsp_mmu_init(void); /** * dsp_mmu_exit() - destroy dsp mmu module * @mmu: Pointer to iommu handle. * * This function destroys dsp mmu module. * */ void dsp_mmu_exit(struct iommu *mmu); /** * user_to_dsp_map() - maps user to dsp virtual address * @mmu: Pointer to iommu handle. * @uva: Virtual user space address. * @da DSP address * @size Buffer size to map. * @usr_pgs struct page array pointer where the user pages will be stored * * This function maps a user space buffer into DSP virtual address. * */ u32 user_to_dsp_map(struct iommu *mmu, u32 uva, u32 da, u32 size, struct page **usr_pgs); /** * user_to_dsp_unmap() - unmaps DSP virtual buffer. * @mmu: Pointer to iommu handle. * @da DSP address * * This function unmaps a user space buffer into DSP virtual address. * */ int user_to_dsp_unmap(struct iommu *mmu, u32 da); #endif