示例#1
0
static int dpe_set_display_region(struct platform_device *pdev,
	struct dss_rect *dirty)
{
	int ret = 0;
	struct k3_fb_data_type *k3fd = NULL;
	char __iomem *addr = NULL;

	BUG_ON(pdev == NULL || dirty == NULL);
	k3fd = platform_get_drvdata(pdev);
	BUG_ON(k3fd == NULL);

	K3_FB_DEBUG("index=%d, enter!\n", k3fd->index);

	addr = k3fd->dss_base + DSS_DPE0_OFFSET + DFS_FRM_SIZE;
	outp32(addr, dirty->w * dirty->h);
	addr = k3fd->dss_base + DSS_DPE0_OFFSET + DFS_FRM_HSIZE;
	outp32(addr, DSS_WIDTH(dirty->w));

	addr = k3fd->dss_base + DSS_DPP_IFBC_OFFSET + IFBC_SIZE;
	outp32(addr, ((DSS_WIDTH(dirty->w) << 16) | DSS_HEIGHT(dirty->h)));

	addr = k3fd->dss_base + PDP_LDI_DPI0_HRZ_CTRL1;
	outp32(addr, DSS_WIDTH(dirty->w) | (DSS_WIDTH(k3fd->panel_info.ldi.h_pulse_width) << 16));
	addr = k3fd->dss_base + PDP_LDI_VRT_CTRL1;
	outp32(addr, DSS_HEIGHT(dirty->h) | (DSS_HEIGHT(k3fd->panel_info.ldi.v_pulse_width) << 16));

	ret = panel_next_set_display_region(pdev, dirty);

	K3_FB_DEBUG("index=%d, exit!\n", k3fd->index);

	return ret;
}
static int mipi_dsi_set_display_region(struct platform_device *pdev, struct dss_rect *dirty)
{
	int ret = 0;
	struct hisi_fb_data_type *hisifd = NULL;

	BUG_ON(pdev == NULL || dirty == NULL);
	hisifd = platform_get_drvdata(pdev);
	BUG_ON(hisifd == NULL);

	HISI_FB_DEBUG("index=%d, enter!\n", hisifd->index);

	ret = panel_next_set_display_region(pdev, dirty);

	HISI_FB_DEBUG("index=%d, exit!\n", hisifd->index);

	return ret;
}