#include <linux/rockchip_ion.h>
#endif
-#if defined(CONFIG_RK_IOMMU) & defined(CONFIG_ION_ROCKCHIP)
-#define CONFIG_VCODEC_MMU
#include <linux/rockchip-iovmm.h>
#include <linux/dma-buf.h>
-#endif
#include "vcodec_hw_info.h"
#include "vcodec_hw_vpu.h"
int bits;
u32 raw = 0;
struct vpu_service_info *pservice = data->pservice;
-#if defined(CONFIG_VCODEC_MMU)
struct vpu_subdev_data *subdata, *n;
-#endif
+
if (pservice->subcnt < 2) {
-#if defined(CONFIG_VCODEC_MMU)
if (data->mmu_dev && !test_bit(MMU_ACTIVATED, &data->state)) {
set_bit(MMU_ACTIVATED, &data->state);
if (atomic_read(&pservice->enabled))
else
BUG_ON(!atomic_read(&pservice->enabled));
}
-#endif
return;
}
return;
vpu_debug(DEBUG_IOMMU, "vcodec enter mode %d\n", data->mode);
-#if defined(CONFIG_VCODEC_MMU)
list_for_each_entry_safe(subdata, n,
&pservice->subdev_list, lnk_service) {
if (data != subdata && subdata->mmu_dev &&
rockchip_iovmm_deactivate(subdata->dev);
}
}
-#endif
bits = 1 << pservice->mode_bit;
#ifdef CONFIG_MFD_SYSCON
if (pservice->grf) {
return;
}
#endif
-#if defined(CONFIG_VCODEC_MMU)
if (data->mmu_dev && !test_bit(MMU_ACTIVATED, &data->state)) {
set_bit(MMU_ACTIVATED, &data->state);
if (atomic_read(&pservice->enabled))
else
BUG_ON(!atomic_read(&pservice->enabled));
}
-#endif
+
pservice->prev_mode = pservice->curr_mode;
pservice->curr_mode = data->mode;
}
{
if (data->mmu_dev && test_bit(MMU_ACTIVATED, &data->state)) {
clear_bit(MMU_ACTIVATED, &data->state);
-#if defined(CONFIG_VCODEC_MMU)
rockchip_iovmm_deactivate(data->dev);
-#endif
data->pservice->curr_mode = VCODEC_RUNNING_MODE_NONE;
}
}
}
#endif
-#if defined(CONFIG_VCODEC_MMU)
if (data->mmu_dev && test_bit(MMU_ACTIVATED, &data->state)) {
clear_bit(MMU_ACTIVATED, &data->state);
if (atomic_read(&pservice->enabled))
else
BUG_ON(!atomic_read(&pservice->enabled));
}
-#endif
+
atomic_set(&pservice->reset_request, 0);
pr_info("done\n");
}
udelay(5);
-#if defined(CONFIG_VCODEC_MMU)
list_for_each_entry_safe(data, n, &pservice->subdev_list, lnk_service) {
if (data->mmu_dev && test_bit(MMU_ACTIVATED, &data->state)) {
clear_bit(MMU_ACTIVATED, &data->state);
}
}
pservice->curr_mode = VCODEC_RUNNING_MODE_NONE;
-#endif
#if VCODEC_CLOCK_ENABLE
if (pservice->pd_video)