static void _mlc_set(int module, int width, int height)
{
    NX_MLC_SetMLCTopControlParameter(module,
            /*CTRUE, // Field Enable(interlace or progressive)*/
            CFALSE, // Field Enable(interlace or progressive)
            CTRUE, // MLC Operation Enable
            1,  // Layer preference decide
            SECON );

    NX_MLC_SetScreenSize(module, width, height);
    NX_MLC_SetBackground(module, 0xFFFFFF);
    
    NX_MLC_SetSRAMMODE(module, TOPMLC, RUN);

#if 0
    NX_MLC_SetRGB0LayerControlParameter(module,
            CTRUE, CFALSE,
            CFALSE, 0x0,
            CFALSE, 0x0,
            CFALSE, 0x0,
            RGBFMT_A8B8G8R8, LOCKSIZE_16);
#else
    // only enable background
    NX_MLC_SetRGB0LayerControlParameter(module,
            CFALSE, CFALSE,
            CFALSE, 0x0,
            CFALSE, 0x0,
            CFALSE, 0x0,
            RGBFMT_A8B8G8R8, LOCKSIZE_16);
#endif

    NX_MLC_SetLayerRegFinish(module, TOPMLC);
    NX_MLC_SetLayerRegFinish(module, RGB0);
}
Exemple #2
0
int disp_multily_setup(int module, struct disp_multily_param *par, unsigned int fbbase)
{
	int	x_resol = par->x_resol;
	int	y_resol	= par->y_resol;
	int	interlace = par->interlace;
	int	video_prior	= par->video_prior;
	int	pixel_byte = par->pixel_byte;
	int	mem_lock_size = par->mem_lock_size;
	int layer = par->fb_layer;
	unsigned int rgb_format = par->rgb_format;
	unsigned int bg_color = par->bg_color;

	mem_lock_size = 16; /* fix mem lock size */

	/* MLC TOP layer */
	NX_MLC_SetLayerPriority	(module, video_prior);
	NX_MLC_SetBackground(module, bg_color);
	NX_MLC_SetFieldEnable(module, interlace);
	NX_MLC_SetScreenSize(module, x_resol, y_resol);
	NX_MLC_SetRGBLayerGamaTablePowerMode(module, CFALSE, CFALSE, CFALSE);
	NX_MLC_SetRGBLayerGamaTableSleepMode(module, CTRUE, CTRUE, CTRUE);
	NX_MLC_SetRGBLayerGammaEnable(module, CFALSE);
	NX_MLC_SetDitherEnableWhenUsingGamma(module, CFALSE);
	NX_MLC_SetGammaPriority(module, CFALSE);
    NX_MLC_SetTopPowerMode(module, CTRUE);
    NX_MLC_SetTopSleepMode(module, CFALSE);

	/* MLC FB layer */
	NX_MLC_SetLockSize(module, layer, mem_lock_size);
	NX_MLC_SetAlphaBlending(module, layer, CFALSE, 15);
	NX_MLC_SetTransparency(module, layer, CFALSE, 0);
	NX_MLC_SetColorInversion(module, layer, CFALSE, 0);
	NX_MLC_SetRGBLayerInvalidPosition(module, layer, 0, 0, 0, 0, 0, CFALSE);
	NX_MLC_SetRGBLayerInvalidPosition(module, layer, 1, 0, 0, 0, 0, CFALSE);
	NX_MLC_SetFormatRGB(module, layer, rgb_format);
	NX_MLC_SetPosition(module, layer, 0, 0, x_resol-1, y_resol-1);
	NX_MLC_SetRGBLayerStride(module, layer, pixel_byte, x_resol*pixel_byte);
	NX_MLC_SetRGBLayerAddress(module, layer, fbbase);

	return 0;
}