static void device_off(void);
static void device_on(void);
static void enable_second_display_channel(void);
-static void disable_second_display_channel(void);
void viafb_lock_crt(void)
{
set_lcd_output_path(set_iga, output_interface);
break;
}
+
+ if (set_iga == IGA2)
+ enable_second_display_channel();
}
static void set_crt_output_path(int set_iga)
viafb_write_reg_mask(SR16, VIASR, 0x00, BIT6);
break;
case IGA2:
- viafb_write_reg_mask(CR6A, VIACR, 0xC0, BIT6 + BIT7);
viafb_write_reg_mask(SR16, VIASR, 0x40, BIT6);
break;
}
}
if (set_iga == IGA2) {
- enable_second_display_channel();
/* Disable LCD Scaling */
viafb_write_reg_mask(CR79, VIACR, 0x00, BIT0);
}
DEBUG_MSG(KERN_INFO
"set_lcd_output_path, iga:%d,out_interface:%d\n",
set_iga, output_interface);
- switch (set_iga) {
- case IGA1:
- viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3);
- viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3);
- disable_second_display_channel();
- break;
-
- case IGA2:
- viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3);
- viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3);
-
- enable_second_display_channel();
- break;
- }
+ viafb_write_reg_mask(CR6B, VIACR, 0x00, BIT3);
+ viafb_write_reg_mask(CR6A, VIACR, 0x08, BIT3);
switch (output_interface) {
case INTERFACE_DVP0:
viafb_DeviceStatus = CRT_Device;
}
device_on();
-
- if (viafb_SAMM_ON == 1)
- viafb_write_reg_mask(CR6A, VIACR, 0xC0, BIT6 + BIT7);
-
device_screen_on();
return 1;
}
viafb_write_reg_mask(CR6A, VIACR, BIT6, BIT6);
}
-static void disable_second_display_channel(void)
-{
- /* to disable second display channel. */
- viafb_write_reg_mask(CR6A, VIACR, 0x00, BIT6);
- viafb_write_reg_mask(CR6A, VIACR, 0x00, BIT7);
- viafb_write_reg_mask(CR6A, VIACR, BIT6, BIT6);
-}
-
-
void viafb_set_dpa_gfx(int output_interface, struct GFX_DPA_SETTING\
*p_gfx_dpa_setting)
{