Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static int msmfb_ioctl(struct fb_info *p, unsigned int cmd, unsigned long arg)
- {
- void __user *argp = (void __user *)arg;
- struct fb_cursor cursor;
- int ret;
- #if PRINT_BLIT_TIME
- ktime_t t1, t2;
- #endif
- struct msmfb_info *msmfb = container_of(p, struct msmfb_info,fb);
- struct msm_panel_data *panel = msmfb->panel;
- switch (cmd) {
- case MSMFB_GRP_DISP:
- mdp->set_grp_disp(mdp, arg);
- break;
- case MSMFB_BLIT:
- #if PRINT_BLIT_TIME
- t1 = ktime_get();
- #endif
- ret = msmfb_blit(p, argp);
- if (ret)
- return ret;
- #if PRINT_BLIT_TIME
- t2 = ktime_get();
- DLOG(BLIT_TIME, "total %lld\n",
- ktime_to_ns(t2) - ktime_to_ns(t1));
- #endif
- break;
- case MSMFB_SUSPEND_SW_REFRESHER:
- wait_for_completion_killable(msmfb_refresh_thread);
- break;
- case MSMFB_RESUME_SW_REFRESHER:
- kernel_thread(msmfb_refresh_thread, NULL, CLONE_KERNEL);
- break;
- case MSMFB_CURSOR:
- ret = copy_from_user(&cursor, argp, sizeof(cursor));
- if (ret)
- return ret;
- break;
- case MSMFB_SET_LUT:
- printk("MSMFB_SET_LUT\n");
- break;
- case MSMFB_HISTOGRAM:
- printk("MSMFB_HISTOGRAM\n");
- break;
- case FBIOBLANK:
- if (arg == FB_BLANK_UNBLANK){
- if ( panel->unblank(panel) )
- printk(KERN_INFO "msmfb: panel unblank failed\n");
- }else if (arg == FB_BLANK_POWERDOWN){
- if( panel->blank(panel) )
- printk(KERN_INFO "msmfb: panel blank failed\n");
- }
- break;
- default:
- printk(KERN_INFO "msmfb unknown ioctl: %d\n", cmd);
- return -EINVAL;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement