X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=drivers%2Fvideo%2Frockchip%2Frkfb_sysfs.c;h=d40d98a1fa8571882eab7ac45cb5e2afc6b7c834;hb=e7f31e2b52e79b259095ad28196c96a3d94eaf39;hp=2554aa3702328ab9befe066cc24b48a9a5da875a;hpb=15245cb9823fadae35e3e7a8e41a598dc06adb9a;p=firefly-linux-kernel-4.4.55.git diff --git a/drivers/video/rockchip/rkfb_sysfs.c b/drivers/video/rockchip/rkfb_sysfs.c index 2554aa370232..d40d98a1fa85 100644 --- a/drivers/video/rockchip/rkfb_sysfs.c +++ b/drivers/video/rockchip/rkfb_sysfs.c @@ -411,12 +411,14 @@ static ssize_t set_dump_buffer(struct device *dev, u16 xact, yact; int data_format; u32 dsp_addr; + int ymirror; mutex_unlock(&dev_drv->front_lock); if (dev_drv->ops->get_dspbuf_info) dev_drv->ops->get_dspbuf_info(dev_drv, &xact, - &yact, &data_format, &dsp_addr); + &yact, &data_format, &dsp_addr, + &ymirror); dump_win(NULL, NULL, dsp_addr, xact, yact, data_format, 0, 0, 0, is_bmp, false); @@ -686,7 +688,7 @@ static ssize_t show_overlay(struct device *dev, struct fb_info *fbi = dev_get_drvdata(dev); struct rk_fb_par *fb_par = (struct rk_fb_par *)fbi->par; struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv; - int ovl; + int ovl = 0; if (dev_drv->ops->ovl_mgr) ovl = dev_drv->ops->ovl_mgr(dev_drv, 0, 0); @@ -725,7 +727,7 @@ static ssize_t show_fps(struct device *dev, struct fb_info *fbi = dev_get_drvdata(dev); struct rk_fb_par *fb_par = (struct rk_fb_par *)fbi->par; struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv; - int fps; + int fps = 0; if (dev_drv->ops->fps_mgr) fps = dev_drv->ops->fps_mgr(dev_drv, 0, 0); @@ -956,7 +958,7 @@ static ssize_t set_dsp_cabc(struct device *dev, struct device_attribute *attr, struct fb_info *fbi = dev_get_drvdata(dev); struct rk_fb_par *fb_par = (struct rk_fb_par *)fbi->par; struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv; - int space_max, ret, mode = 0, calc = 0, up = 0, down = 0, global = 0; + int space_max, ret = 0, mode = 0, calc = 0, up = 0, down = 0, global = 0; const char *start = buf; space_max = 10; /*max space number 10*/ @@ -1003,7 +1005,7 @@ static ssize_t show_dsp_bcsh(struct device *dev, struct fb_info *fbi = dev_get_drvdata(dev); struct rk_fb_par *fb_par = (struct rk_fb_par *)fbi->par; struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv; - int brightness, contrast, sat_con, sin_hue, cos_hue; + int brightness = 0, contrast = 0, sat_con = 0, sin_hue = 0, cos_hue = 0; if (dev_drv->ops->get_dsp_bcsh_bcs) { brightness = dev_drv->ops->get_dsp_bcsh_bcs(dev_drv, @@ -1192,6 +1194,52 @@ static ssize_t show_lcdc_id(struct device *dev, return snprintf(buf, PAGE_SIZE, "%d\n", dev_drv->id); } +static ssize_t show_dsp_mode(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct fb_info *fbi = dev_get_drvdata(dev); + struct rk_fb_par *fb_par = (struct rk_fb_par *)fbi->par; + struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv; + + return snprintf(buf, PAGE_SIZE, "%d\n", dev_drv->dsp_mode); +} + +static ssize_t show_win_property(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + struct fb_info *fbi = dev_get_drvdata(dev); + struct rk_fb_par *fb_par = (struct rk_fb_par *)fbi->par; + struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv; + int win_id = 0; + + win_id = dev_drv->ops->fb_get_win_id(dev_drv, fbi->fix.id); + return snprintf(buf, PAGE_SIZE, + "feature: %d, max_input_x: %d, max_input_y: %d\n", + dev_drv->win[win_id]->property.feature, + dev_drv->win[win_id]->property.max_input_x, + dev_drv->win[win_id]->property.max_input_y); +} + +static ssize_t set_car_reverse(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct fb_info *fbi = dev_get_drvdata(dev); + struct rk_fb_par *fb_par = (struct rk_fb_par *)fbi->par; + struct rk_lcdc_driver *dev_drv = fb_par->lcdc_drv; + u32 status; + int ret; + + ret = kstrtou32(buf, 0, &status); + if (ret) + return ret; + rk_fb_set_car_reverse_status(dev_drv, status); + + return count; +} + static struct device_attribute rkfb_attrs[] = { __ATTR(phys_addr, S_IRUGO, show_phys, NULL), __ATTR(virt_addr, S_IRUGO, show_virt, NULL), @@ -1211,6 +1259,9 @@ static struct device_attribute rkfb_attrs[] = { __ATTR(bcsh, S_IRUGO | S_IWUSR, show_dsp_bcsh, set_dsp_bcsh), __ATTR(scale, S_IRUGO | S_IWUSR, show_scale, set_scale), __ATTR(lcdcid, S_IRUGO, show_lcdc_id, NULL), + __ATTR(win_property, S_IRUGO, show_win_property, NULL), + __ATTR(car_reverse, S_IWUSR, NULL, set_car_reverse), + __ATTR(dsp_mode, S_IRUGO, show_dsp_mode, NULL), }; int rkfb_create_sysfs(struct fb_info *fbi)