void mdp4_overlay_handle_padding(struct msm_fb_data_type *mfd, bool is_3d)
{
	int i = 0;
	unsigned char *fbvir = NULL;
	struct fb_info *fbi = mfd->fbi;
	MDPIBUF *iBuf = &mfd->ibuf;

	//get virtual address
	for(i = 0; i < 2; i++) {
		if(fb_addr[i].fbphy == iBuf->buf) {
			fbvir = (unsigned char*)fb_addr[i].fbvir;
			fb_addr[i].is_3d = is_3d;
			break;
		} else if(fb_addr[i].fbphy == NULL || fb_addr[i].fbvir == NULL) {
			fb_addr[i].fbphy = (unsigned char*) iBuf->buf;
			fb_addr[i].fbvir = ioremap((unsigned long)fb_addr[i].fbphy, fbi->fix.smem_len/2);
			fbvir = (unsigned char*)fb_addr[i].fbvir;
			fb_addr[i].is_3d = is_3d;
			//pr_info("%s(%d) call ioremap fbphy %p fbvir %p\n", __func__, __LINE__, fb_addr[i].fbphy, fb_addr[i].fbvir);
			break;
		}
	}

	if(is_3d)
		mdp4_overlay_move_padding(mfd, fbvir, is_3d);
	else {
		for(i =0; i < 2; i++) {
			if(fb_addr[i].is_3d) {
				mdp4_overlay_move_padding(mfd, fb_addr[i].fbvir, is_3d);
				fb_addr[i].is_3d = false;
			}
		}
	}
}
Example #2
0
void mdp4_overlay_handle_padding(struct msm_fb_data_type *mfd, bool is_3d)
{
    int i = 0;
    unsigned char *fbvir = NULL;
    struct fb_info *fbi = mfd->fbi;
    MDPIBUF *iBuf = &mfd->ibuf;
    bool found = false;

    /* get virtual address */
    for (i = 0; i < 2; i++) {
        if (fb_addr[i].fbphy == iBuf->buf) {
            fbvir = (unsigned char *)fb_addr[i].fbvir;
            found = true;
            break;
        } else if (fb_addr[i].fbphy == NULL || fb_addr[i].fbvir == NULL) {
            fb_addr[i].fbphy = (unsigned char *) iBuf->buf;
            fb_addr[i].fbvir = ioremap((unsigned long)fb_addr[i].fbphy, fbi->fix.smem_len/2);
            fbvir = (unsigned char *)fb_addr[i].fbvir;
            found = true;
            break;
        }
    }
    if (!found)
        return;

    if (is_3d) {
        mdp4_overlay_move_padding(mfd, fbvir, is_3d);
        fb_addr[i].is_3d = is_3d;
    } else {
        for (i = 0; i < 2; i++) {
            if (fb_addr[i].is_3d) {
                mdp4_overlay_move_padding(mfd, fb_addr[i].fbvir, is_3d);
                fb_addr[i].is_3d = false;
            }
        }
    }
}