fb: add sysfs node lcdcid.
authorZheng Yang <zhengyang@rock-chips.com>
Fri, 22 May 2015 07:18:37 +0000 (15:18 +0800)
committerZheng Yang <zhengyang@rock-chips.com>
Fri, 22 May 2015 07:30:07 +0000 (15:30 +0800)
Now we have many fb devices, each vop layer is mapped to a fb device.
If there is 2 vop, we can not distinguish the vop between these fb devices.
Add sysfs node lcdcid to get the lcdc id mapped by fb device.

Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
drivers/video/rockchip/rkfb_sysfs.c

index e377e4f688e51fb3f87a2f95be347ec3e79c8c69..cd8af899a5b0cdbc517f7b5dc67d4c44b4b79ed3 100755 (executable)
@@ -1044,6 +1044,17 @@ static ssize_t set_scale(struct device *dev, struct device_attribute *attr,
        return count;
 }
 
+static ssize_t show_lcdc_id(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->id);
+}
+
 static struct device_attribute rkfb_attrs[] = {
        __ATTR(phys_addr, S_IRUGO, show_phys, NULL),
        __ATTR(virt_addr, S_IRUGO, show_virt, NULL),
@@ -1061,6 +1072,7 @@ static struct device_attribute rkfb_attrs[] = {
        __ATTR(cabc, S_IRUGO | S_IWUSR, show_dsp_cabc, set_dsp_cabc),
        __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),
 };
 
 int rkfb_create_sysfs(struct fb_info *fbi)