Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2010
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.49 KB | None | 0 0
  1. static int msmfb_ioctl(struct fb_info *p, unsigned int cmd, unsigned long arg)
  2. {
  3.     void __user *argp = (void __user *)arg;
  4.         struct fb_cursor cursor;
  5.     int ret;
  6. #if PRINT_BLIT_TIME
  7.     ktime_t t1, t2;
  8. #endif
  9.     struct msmfb_info *msmfb = container_of(p, struct msmfb_info,fb);
  10.     struct msm_panel_data *panel = msmfb->panel;
  11.  
  12.     switch (cmd) {
  13.     case MSMFB_GRP_DISP:
  14.         mdp->set_grp_disp(mdp, arg);
  15.         break;
  16.     case MSMFB_BLIT:
  17. #if PRINT_BLIT_TIME
  18.         t1 = ktime_get();
  19. #endif
  20.         ret = msmfb_blit(p, argp);
  21.         if (ret)
  22.             return ret;
  23. #if PRINT_BLIT_TIME
  24.         t2 = ktime_get();
  25.         DLOG(BLIT_TIME, "total %lld\n",
  26.                ktime_to_ns(t2) - ktime_to_ns(t1));
  27. #endif
  28.         break;
  29.  
  30.     case MSMFB_SUSPEND_SW_REFRESHER:
  31.         wait_for_completion_killable(msmfb_refresh_thread);
  32.         break;
  33.  
  34.     case MSMFB_RESUME_SW_REFRESHER:
  35.         kernel_thread(msmfb_refresh_thread, NULL, CLONE_KERNEL);
  36.         break;
  37.  
  38.     case MSMFB_CURSOR:
  39.         ret = copy_from_user(&cursor, argp, sizeof(cursor));
  40.         if (ret)
  41.             return ret;
  42.         break;
  43.  
  44.     case MSMFB_SET_LUT:
  45.         printk("MSMFB_SET_LUT\n");
  46.         break;
  47.  
  48.     case MSMFB_HISTOGRAM:
  49.         printk("MSMFB_HISTOGRAM\n");
  50.         break;
  51.  
  52.     case FBIOBLANK:
  53.         if (arg == FB_BLANK_UNBLANK){
  54.             if ( panel->unblank(panel) )
  55.                 printk(KERN_INFO "msmfb: panel unblank failed\n");
  56.         }else if (arg == FB_BLANK_POWERDOWN){
  57.             if( panel->blank(panel) )
  58.                 printk(KERN_INFO "msmfb: panel blank failed\n");
  59.         }
  60.         break;
  61.  
  62.     default:
  63.             printk(KERN_INFO "msmfb unknown ioctl: %d\n", cmd);
  64.             return -EINVAL;
  65.     }
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement