int mmpfb_compat_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg) { int ret = -ENOIOCTLCMD; switch (cmd) { case FB_IOCTL_QUERY_GLOBAL_INFO: case FB_IOCTL_FLIP_USR_BUF: case FB_IOCTL_GAMMA_SET: case FB_IOCTL_ENABLE_DMA: case FB_IOCTL_VSMOOTH_EN: case FB_IOCTL_SET_COLORKEYnALPHA: case FB_IOCTL_GET_COLORKEYnALPHA: case FB_IOCTL_FLIP_VSYNC: case FB_IOCTL_ENABLE_COMMIT_DMA: case FB_IOCTL_SET_DFC_RATE: case FB_IOCTL_GET_DFC_RATE: arg = (unsigned long)compat_ptr(arg); case FB_IOCTL_FLIP_COMMIT: case FB_IOCTL_WAIT_VSYNC: ret = mmpfb_ioctl(info, cmd, arg); break; default: dev_info(info->dev, "unknown ioctl 0x%x\n", cmd); break; } return ret; }
int mmpfb_compat_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg) { int ret = -ENOIOCTLCMD; switch (cmd) { case FB_IOCTL_QUERY_GLOBAL_INFO: case FB_IOCTL_FLIP_USR_BUF: case FB_IOCTL_GAMMA_SET: case FB_IOCTL_ENABLE_DMA: case FB_IOCTL_VSMOOTH_EN: case FB_IOCTL_SET_COLORKEYnALPHA: case FB_IOCTL_GET_COLORKEYnALPHA: arg = (unsigned long)compat_ptr(arg); case FB_IOCTL_FLIP_COMMIT: case FB_IOCTL_WAIT_VSYNC: ret = mmpfb_ioctl(info, cmd, arg); break; /* * FIXME: FB_IOCTL_FLIP_VSYNC compat ioctl not support, it * would be added in following patch. */ default: dev_info(info->dev, "unknown ioctl 0x%x\n", cmd); break; } return ret; }