struct fb_info *fbi = dev_get_drvdata(dev);
struct rk_lcdc_driver *dev_drv = (struct rk_lcdc_driver *)fbi->par;
struct rk_screen *screen = dev_drv->cur_screen;
- int fps;
+ int fps = 0;
u32 x = screen->mode.left_margin + screen->mode.right_margin +
screen->mode.xres + screen->mode.hsync_len;
u32 y = screen->mode.upper_margin + screen->mode.lower_margin +
screen->mode.yres + screen->mode.vsync_len;
u64 ft = (u64)x * y * (dev_drv->pixclock);
- fps = div64_u64(1000000000000llu, ft);
+ if (ft > 0)
+ fps = div64_u64(1000000000000llu, ft);
return snprintf(buf, PAGE_SIZE, "xres:%d\nyres:%d\nfps:%d\n",
screen->mode.xres, screen->mode.yres, fps);
}
struct rk_lcdc_driver *dev_drv =
(struct rk_lcdc_driver *)fbi->par;
int ovl;
- ovl = dev_drv->ops->ovl_mgr(dev_drv, 0, 0);
+
+ if (dev_drv->ops->ovl_mgr)
+ ovl = dev_drv->ops->ovl_mgr(dev_drv, 0, 0);
if (ovl < 0)
return ovl;
ret = kstrtoint(buf, 0, &ovl);
if (ret)
return ret;
-
- ret = dev_drv->ops->ovl_mgr(dev_drv, ovl, 1);
+ if (dev_drv->ops->ovl_mgr)
+ ret = dev_drv->ops->ovl_mgr(dev_drv, ovl, 1);
if (ret < 0)
return ret;
(struct rk_lcdc_driver *)fbi->par;
int fps;
- fps = dev_drv->ops->fps_mgr(dev_drv, 0, 0);
+ if (dev_drv->ops->fps_mgr)
+ fps = dev_drv->ops->fps_mgr(dev_drv, 0, 0);
if (fps < 0)
return fps;
ret = kstrtoint(buf, 0, &fps);
if (ret)
return ret;
- ret = dev_drv->ops->fps_mgr(dev_drv, fps, 1);
+
+ if (fps == 0) {
+ dev_info(dev, "unsupport set fps=0\n");
+ return count;
+ }
+
+ if (dev_drv->ops->fps_mgr)
+ ret = dev_drv->ops->fps_mgr(dev_drv, fps, 1);
if (ret < 0)
return ret;
"fb0-win2\n" "fb1-win1\n" "fb2-win0\n");
return count;
} else {
- dev_drv->ops->fb_win_remap(dev_drv, order);
+ if (dev_drv->ops->fb_win_remap)
+ dev_drv->ops->fb_win_remap(dev_drv, order);
}
return count;
printk("\n");
}
#endif
- dev_drv->ops->set_dsp_lut(dev_drv, dsp_lut);
+ if (dev_drv->ops->set_dsp_lut)
+ dev_drv->ops->set_dsp_lut(dev_drv, dsp_lut);
return count;
}
if (ret)
return ret;
- ret = dev_drv->ops->set_dsp_cabc(dev_drv, mode);
+ if (dev_drv->ops->set_dsp_cabc)
+ ret = dev_drv->ops->set_dsp_cabc(dev_drv, mode);
if (ret < 0)
return ret;