示例#1
0
int s5p_mixer_set_grp_base_address(enum s5p_mixer_layer layer, u32 base_addr)
{
	tvout_dbg("%d, 0x%x\n", layer, base_addr);

	if (S5P_MXR_GRP_ADDR_ILLEGAL(base_addr)) {
		tvout_err("address is not word align = %d\n", base_addr);
		return -1;
	}

	switch (layer) {
	case MIXER_GPR0_LAYER:
		writel(S5P_MXR_GPR_BASE(base_addr),
			mixer_base + S5P_MXR_GRAPHIC0_BASE);
		break;

	case MIXER_GPR1_LAYER:
		writel(S5P_MXR_GPR_BASE(base_addr),
			mixer_base + S5P_MXR_GRAPHIC1_BASE);
		break;

	default:
		tvout_err("invalid layer parameter = %d\n", layer);
		return -1;
	}

	return 0;
}
示例#2
0
s5p_tv_vmx_err __s5p_vm_set_grp_base_address(s5p_tv_vmx_layer layer, u32 base_addr)
{
	VMPRINTK("%d,0x%x\n\r", layer, base_addr);

	if (S5P_MXR_GRP_ADDR_ILLEGAL(base_addr)) {
		VMPRINTK(" address is not word align = %d\n\r", base_addr);
		return S5P_TV_VMX_ERR_BASE_ADDRESS_MUST_WORD_ALIGN;
	}

	switch (layer) {

	case VM_GPR0_LAYER:
		writel(S5P_MXR_GPR_BASE(base_addr), mixer_base + S5P_MXR_GRAPHIC0_BASE);
		VMPRINTK("0x%x\n\r", readl(mixer_base + S5P_MXR_GRAPHIC0_BASE));
		break;

	case VM_GPR1_LAYER:
		writel(S5P_MXR_GPR_BASE(base_addr), mixer_base + S5P_MXR_GRAPHIC1_BASE);
		VMPRINTK("0x%x\n\r", readl(mixer_base + S5P_MXR_GRAPHIC1_BASE));
		break;

	default:
		VMPRINTK(" invalid layer parameter = %d\n\r", layer);
		return S5P_TV_VMX_ERR_INVALID_PARAM;
		break;
	}

	return VMIXER_NO_ERROR;
}