aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2010-08-09 20:45:06 -0400
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2010-09-23 22:14:48 -0400
commit661c65cd0ce180d5e3a3e05f08fc9e64cedcf91c (patch)
treeb10a5d1ab088b643cab18c53655b81394ede485a
parentf4ab2f7a21338ae0f59ad925c23545e790cd51e3 (diff)
viafb: reduce viafb_set_iga_path usage
The result of viafb_set_iga_path can change after init only in the hotplug ioctl. So we can move it there rather than doing it always when a new mode is set. The setup during init is done via a call from the init chip funtion. This change enables a stable mapping between the old device scheme and a new more powerfull one. Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de> Cc: Joseph Chan <JosephChan@via.com.tw>
-rw-r--r--drivers/video/via/hw.c1
-rw-r--r--drivers/video/via/ioctl.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c
index 4407943fa7d7..638cf96c8739 100644
--- a/drivers/video/via/hw.c
+++ b/drivers/video/via/hw.c
@@ -2313,7 +2313,6 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp,
2313 via_write_reg(VIASR, i, VPIT.SR[i - 1]); 2313 via_write_reg(VIASR, i, VPIT.SR[i - 1]);
2314 2314
2315 viafb_write_reg_mask(0x15, VIASR, 0xA2, 0xA2); 2315 viafb_write_reg_mask(0x15, VIASR, 0xA2, 0xA2);
2316 viafb_set_iga_path();
2317 2316
2318 /* Write CRTC */ 2317 /* Write CRTC */
2319 viafb_fill_crtc_timing(crt_timing, vmode_tbl, video_bpp / 8, IGA1); 2318 viafb_fill_crtc_timing(crt_timing, vmode_tbl, video_bpp / 8, IGA1);
diff --git a/drivers/video/via/ioctl.c b/drivers/video/via/ioctl.c
index 4d553d0b8d7a..ea1c51428823 100644
--- a/drivers/video/via/ioctl.c
+++ b/drivers/video/via/ioctl.c
@@ -94,6 +94,7 @@ int viafb_ioctl_hotplug(int hres, int vres, int bpp)
94 viafb_CRT_ON = 0; 94 viafb_CRT_ON = 0;
95 viafb_LCD_ON = 0; 95 viafb_LCD_ON = 0;
96 viafb_DeviceStatus = DVI_Device; 96 viafb_DeviceStatus = DVI_Device;
97 viafb_set_iga_path();
97 return viafb_DeviceStatus; 98 return viafb_DeviceStatus;
98 } 99 }
99 status = 1; 100 status = 1;
@@ -107,6 +108,7 @@ int viafb_ioctl_hotplug(int hres, int vres, int bpp)
107 viafb_LCD_ON = 0; 108 viafb_LCD_ON = 0;
108 109
109 viafb_DeviceStatus = CRT_Device; 110 viafb_DeviceStatus = CRT_Device;
111 viafb_set_iga_path();
110 return viafb_DeviceStatus; 112 return viafb_DeviceStatus;
111 } 113 }
112 114