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: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: Joseph Chan <JosephChan@via.com.tw>
parent f4ab2f7a
...@@ -2313,7 +2313,6 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp, ...@@ -2313,7 +2313,6 @@ int viafb_setmode(struct VideoModeTable *vmode_tbl, int video_bpp,
via_write_reg(VIASR, i, VPIT.SR[i - 1]); via_write_reg(VIASR, i, VPIT.SR[i - 1]);
viafb_write_reg_mask(0x15, VIASR, 0xA2, 0xA2); viafb_write_reg_mask(0x15, VIASR, 0xA2, 0xA2);
viafb_set_iga_path();
/* Write CRTC */ /* Write CRTC */
viafb_fill_crtc_timing(crt_timing, vmode_tbl, video_bpp / 8, IGA1); viafb_fill_crtc_timing(crt_timing, vmode_tbl, video_bpp / 8, IGA1);
......
...@@ -94,6 +94,7 @@ int viafb_ioctl_hotplug(int hres, int vres, int bpp) ...@@ -94,6 +94,7 @@ int viafb_ioctl_hotplug(int hres, int vres, int bpp)
viafb_CRT_ON = 0; viafb_CRT_ON = 0;
viafb_LCD_ON = 0; viafb_LCD_ON = 0;
viafb_DeviceStatus = DVI_Device; viafb_DeviceStatus = DVI_Device;
viafb_set_iga_path();
return viafb_DeviceStatus; return viafb_DeviceStatus;
} }
status = 1; status = 1;
...@@ -107,6 +108,7 @@ int viafb_ioctl_hotplug(int hres, int vres, int bpp) ...@@ -107,6 +108,7 @@ int viafb_ioctl_hotplug(int hres, int vres, int bpp)
viafb_LCD_ON = 0; viafb_LCD_ON = 0;
viafb_DeviceStatus = CRT_Device; viafb_DeviceStatus = CRT_Device;
viafb_set_iga_path();
return viafb_DeviceStatus; return viafb_DeviceStatus;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment