diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2010-09-03 03:20:27 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-09-14 04:23:26 -0400 |
commit | 1c120deb60edd4c19a2109daa98f65f2ad3b9c06 (patch) | |
tree | 6aa09f9a016d229c512e118ddd0157f77e68af20 /drivers/video/sh_mobile_hdmi.c | |
parent | 6de9edd5bde0cdfea12e9948690e53ec669c3018 (diff) |
fbdev: sh_mobile_lcdcfb: separate display variable data from framebuffer data
This is a preparation for a patch, that shall allow displaying of a smaller
framebuffer on a bigger display and of a part of a bigger framebuffer on a
smaller display.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/video/sh_mobile_hdmi.c')
-rw-r--r-- | drivers/video/sh_mobile_hdmi.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/video/sh_mobile_hdmi.c b/drivers/video/sh_mobile_hdmi.c index 56e44fd0a3af..51ce34990e24 100644 --- a/drivers/video/sh_mobile_hdmi.c +++ b/drivers/video/sh_mobile_hdmi.c | |||
@@ -732,6 +732,7 @@ static void hdmi_display_on(void *arg, struct fb_info *info) | |||
732 | */ | 732 | */ |
733 | struct sh_hdmi *hdmi = arg; | 733 | struct sh_hdmi *hdmi = arg; |
734 | struct sh_mobile_hdmi_info *pdata = hdmi->dev->platform_data; | 734 | struct sh_mobile_hdmi_info *pdata = hdmi->dev->platform_data; |
735 | struct sh_mobile_lcdc_chan *ch = info->par; | ||
735 | 736 | ||
736 | pr_debug("%s(%p): state %x\n", __func__, pdata->lcd_dev, info->state); | 737 | pr_debug("%s(%p): state %x\n", __func__, pdata->lcd_dev, info->state); |
737 | 738 | ||
@@ -747,7 +748,7 @@ static void hdmi_display_on(void *arg, struct fb_info *info) | |||
747 | case HDMI_HOTPLUG_DISCONNECTED: | 748 | case HDMI_HOTPLUG_DISCONNECTED: |
748 | info->state = FBINFO_STATE_SUSPENDED; | 749 | info->state = FBINFO_STATE_SUSPENDED; |
749 | default: | 750 | default: |
750 | hdmi->var = info->var; | 751 | hdmi->var = ch->display_var; |
751 | } | 752 | } |
752 | } | 753 | } |
753 | 754 | ||
@@ -767,6 +768,7 @@ static void edid_work_fn(struct work_struct *work) | |||
767 | { | 768 | { |
768 | struct sh_hdmi *hdmi = container_of(work, struct sh_hdmi, edid_work.work); | 769 | struct sh_hdmi *hdmi = container_of(work, struct sh_hdmi, edid_work.work); |
769 | struct sh_mobile_hdmi_info *pdata = hdmi->dev->platform_data; | 770 | struct sh_mobile_hdmi_info *pdata = hdmi->dev->platform_data; |
771 | struct sh_mobile_lcdc_chan *ch; | ||
770 | 772 | ||
771 | pr_debug("%s(%p): begin, hotplug status %d\n", __func__, | 773 | pr_debug("%s(%p): begin, hotplug status %d\n", __func__, |
772 | pdata->lcd_dev, hdmi->hp_state); | 774 | pdata->lcd_dev, hdmi->hp_state); |
@@ -788,10 +790,12 @@ static void edid_work_fn(struct work_struct *work) | |||
788 | if (!hdmi->info) | 790 | if (!hdmi->info) |
789 | goto out; | 791 | goto out; |
790 | 792 | ||
793 | ch = hdmi->info->par; | ||
794 | |||
791 | acquire_console_sem(); | 795 | acquire_console_sem(); |
792 | 796 | ||
793 | /* HDMI plug in */ | 797 | /* HDMI plug in */ |
794 | hdmi->info->var = hdmi->var; | 798 | ch->display_var = hdmi->var; |
795 | if (hdmi->info->state != FBINFO_STATE_RUNNING) { | 799 | if (hdmi->info->state != FBINFO_STATE_RUNNING) { |
796 | fb_set_suspend(hdmi->info, 0); | 800 | fb_set_suspend(hdmi->info, 0); |
797 | } else { | 801 | } else { |