video: rockchip: rk fb: add hot plug state indicate extent screen state
authorHuang Jiachai <hjc@rock-chips.com>
Sun, 9 Oct 2016 02:28:03 +0000 (10:28 +0800)
committerHuang, Tao <huangtao@rock-chips.com>
Sun, 9 Oct 2016 10:47:36 +0000 (18:47 +0800)
Change-Id: If7dea36a420ef21763c309d12d64d95574b3dcf3
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
drivers/video/rockchip/rk_fb.c
drivers/video/rockchip/rkfb_sysfs.c
include/linux/rk_fb.h

index 4a838803dc1ed809d5992c836a78b2f9d7badee6..4e0641876baf58d8548d58ea06ec3c329d88d74e 100644 (file)
@@ -3590,6 +3590,7 @@ int rk_fb_switch_screen(struct rk_screen *screen, int enable, int lcdc_id)
                enable, lcdc_id, screen->type, dev_drv->cur_screen->type);
 
        mutex_lock(&dev_drv->switch_screen);
+       dev_drv->hot_plug_state = enable;
        hdmi_switch_state = 0;
        dev_drv->hdmi_switch = 1;
        if (!dev_drv->uboot_logo) {
index d40d98a1fa8571882eab7ac45cb5e2afc6b7c834..965e2df1a67073e963bb074a4bb553d9e1402d84 100644 (file)
@@ -1205,6 +1205,17 @@ static ssize_t show_dsp_mode(struct device *dev,
        return snprintf(buf, PAGE_SIZE, "%d\n", dev_drv->dsp_mode);
 }
 
+static ssize_t show_hot_plug_state(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->hot_plug_state);
+}
+
 static ssize_t show_win_property(struct device *dev,
                            struct device_attribute *attr,
                            char *buf)
@@ -1262,6 +1273,7 @@ static struct device_attribute rkfb_attrs[] = {
        __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),
+       __ATTR(hot_plug_state, S_IRUGO, show_hot_plug_state, NULL),
 };
 
 int rkfb_create_sysfs(struct fb_info *fbi)
index 902b978d81cd7cbc881b0c3f73efb3d00e1100f5..086e744d23ce6349f5d8357eb01868cf7f25670e 100755 (executable)
@@ -702,6 +702,7 @@ struct rk_lcdc_driver {
        struct device *mmu_dev;
        int iommu_enabled;
        int dsp_mode;
+       bool hot_plug_state;
 
        struct rk_fb_reg_area_data reg_area_data;
        /*