Commit 39c6e0a0 authored by James Simmons's avatar James Simmons

[SIS FBDEV] More sisfb driver updates.

[FBCON] Many fixes dealing with reszing the screen.
parent 5958121c
......@@ -1044,6 +1044,9 @@ static void fbcon_set_display(struct vc_data *vc, int init, int logo)
vc->vc_rows = nr_rows;
}
p->vrows = info->var.yres_virtual / vc->vc_font.height;
if(info->var.yres > (vc->vc_font.height * (vc->vc_rows + 1))) {
p->vrows -= (info->var.yres - (vc->vc_font.height * vc->vc_rows)) / vc->vc_font.height;
}
if ((info->var.yres % vc->vc_font.height) &&
(info->var.yres_virtual % vc->vc_font.height <
info->var.yres % vc->vc_font.height))
......@@ -1815,14 +1818,16 @@ static int fbcon_resize(struct vc_data *vc, unsigned int width,
(y_diff < 0 || y_diff > fh)) {
var.activate = FB_ACTIVATE_TEST;
err = fb_set_var(&var, info);
if (err || width != var.xres/fw ||
height != var.yres/fh)
if (err || width > var.xres/fw ||
height > var.yres/fh)
return -EINVAL;
DPRINTK("resize now %ix%i\n", var.xres, var.yres);
var.activate = FB_ACTIVATE_NOW;
fb_set_var(&var, info);
p->vrows = info->var.yres_virtual/fh;
}
p->vrows = var.yres_virtual/fh;
if(var.yres > (fh * (height + 1)))
p->vrows -= (var.yres - (fh * height)) / fh;
return 0;
}
......@@ -1857,6 +1862,7 @@ static int fbcon_switch(struct vc_data *vc)
}
if (info)
info->var.yoffset = p->yscroll = 0;
fbcon_resize(vc, vc->vc_cols, vc->vc_rows);
switch (p->scrollmode & __SCROLL_YMASK) {
case __SCROLL_YWRAP:
scrollback_phys_max = p->vrows - vc->vc_rows;
......@@ -1875,7 +1881,6 @@ static int fbcon_switch(struct vc_data *vc)
info->currcon = unit;
fbcon_resize(vc, vc->vc_cols, vc->vc_rows);
update_var(unit, info);
fbcon_set_palette(vc, color_table);
......@@ -2094,6 +2099,11 @@ static int fbcon_do_set_font(struct vc_data *vc, struct console_font_op *op,
/* reset wrap/pan */
info->var.xoffset = info->var.yoffset = p->yscroll = 0;
p->vrows = info->var.yres_virtual / h;
#if 0 /* INCOMPLETE - let the console gurus handle this */
if(info->var.yres > (h * (vc->vc_rows + 1))
p->vrows -= (info->var.yres - (h * vc->vc_rows)) / h;
#endif
if ((info->var.yres % h)
&& (info->var.yres_virtual % h < info->var.yres % h))
p->vrows--;
......
......@@ -1515,7 +1515,7 @@ static const SiS300_TVDataStruct SiS300_ExtNTSCData[] =
};
#if 0
static const SiS310_TVDataStruct SiS300_St1HiTVData[]=
static const SiS300_TVDataStruct SiS300_St1HiTVData[]=
{
};
......@@ -1731,33 +1731,31 @@ static const SiS300_LVDSDataStruct SiS300_LVDS1024x768Data_2[] =
{800, 525,1280, 813}
};
static const SiS300_LVDSDataStruct SiS300_LVDS1280x1024Data_1[] =
{
{840, 438,1344, 806},
{840, 409,1344, 806},
{840, 438,1344, 806},
{840, 409,1344, 806},
{840, 518,1344, 806},
{1050, 638,1344, 806},
{1344, 806,1344, 806},
{800, 449,1280, 801},
{800, 525,1280, 813}
static const SiS300_LVDSDataStruct SiS300_LVDS1280x1024Data_1[]=
{
{1048, 442,1688,1066},
{1048, 392,1688,1066},
{1048, 442,1688,1066},
{1048, 392,1688,1066},
{1048, 522,1688,1066},
{1208, 642,1688,1066},
{1432, 810,1688,1066},
{1688,1066,1688,1066}
};
static const SiS300_LVDSDataStruct SiS300_LVDS1280x1024Data_2[] =
{
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{800, 449,1280, 801},
{800, 525,1280, 813}
static const SiS300_LVDSDataStruct SiS300_LVDS1280x1024Data_2[]=
{
{1688,1066,1688,1066},
{1688,1066,1688,1066},
{1688,1066,1688,1066},
{1688,1066,1688,1066},
{1688,1066,1688,1066},
{1688,1066,1688,1066},
{1688,1066,1688,1066},
{1688,1066,1688,1066}
};
static const SiS300_LVDSDataStruct SiS300_LVDS1400x1050Data_1[] = /* TW: New */
static const SiS300_LVDSDataStruct SiS300_LVDS1400x1050Data_1[] =
{
{928, 416, 1688, 1066},
{928, 366, 1688, 1066},
......@@ -1770,7 +1768,7 @@ static const SiS300_LVDSDataStruct SiS300_LVDS1400x1050Data_1[] = /* TW: New
{1688, 1066, 1688, 1066}
};
static const SiS300_LVDSDataStruct SiS300_LVDS1400x1050Data_2[] = /* TW: New */
static const SiS300_LVDSDataStruct SiS300_LVDS1400x1050Data_2[] =
{
{1688,1066, 1688,1066},
{1688,1066, 1688,1066},
......@@ -1783,33 +1781,60 @@ static const SiS300_LVDSDataStruct SiS300_LVDS1400x1050Data_2[] = /* TW: New
{1688,1066, 1688,1066},
};
static const SiS300_LVDSDataStruct SiS300_LVDS1280x768Data_1[]= /* TW: New - TODO */
{ /* TW: Temp data, invalid (is identical to 1024x768) */
{840, 438,1344, 806},
{840, 409,1344, 806},
{840, 438,1344, 806},
{840, 409,1344, 806},
{840, 518,1344, 806},
{1050, 638,1344, 806},
{1344, 806,1344, 806},
{800, 449,1280, 801},
{800, 525,1280, 813}
static const SiS300_LVDSDataStruct SiS300_LVDS1600x1200Data_1[]=
{
{1088, 450, 2048,1250},
{1088, 400, 2048,1250},
{1088, 450, 2048,1250},
{1088, 400, 2048,1250},
{1088, 530, 2048,1250},
{1248, 650, 2048,1250},
{1472, 818, 2048,1250},
{1728,1066, 2048,1250},
{1848,1066, 2048,1250},
{2048,1250, 2048,1250}
};
static const SiS300_LVDSDataStruct SiS300_LVDS1600x1200Data_2[]=
{
{2048,1250, 2048,1250},
{2048,1250, 2048,1250},
{2048,1250, 2048,1250},
{2048,1250, 2048,1250},
{2048,1250, 2048,1250},
{2048,1250, 2048,1250},
{2048,1250, 2048,1250},
{2048,1250, 2048,1250},
{2048,1250, 2048,1250},
{2048,1250, 2048,1250}
};
static const SiS300_LVDSDataStruct SiS300_LVDS1280x768Data_1[]=
{
{ 768, 438, 1408, 806},
{ 768, 388, 1408, 806},
{ 768, 438, 1408, 806},
{ 768, 388, 1408, 806},
{ 768, 518, 1408, 806},
{ 928, 638, 1408, 806},
{1152, 806, 1408, 806},
{1408, 806, 1408, 806},
{1408, 806, 1408, 806}
};
static const SiS300_LVDSDataStruct SiS300_LVDS1280x768Data_2[]=
{
{1408, 806, 1408, 806},
{1408, 806, 1408, 806},
{1408, 806, 1408, 806},
{1408, 806, 1408, 806},
{1408, 806, 1408, 806},
{1408, 806, 1408, 806},
{1408, 806, 1408, 806},
{1408, 806, 1408, 806},
{1408, 806, 1408, 806}
};
static const SiS300_LVDSDataStruct SiS300_LVDS1280x768Data_2[]= /* TW: New - TODO */
{ /* TW: Temp data, invalid (is identical to 1024x768) */
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{1344, 806,1344, 806},
{800, 449,1280, 801},
{800, 525,1280, 813}
};
/* TW: New: */
static const SiS300_LVDSDataStruct SiS300_LVDS1024x600Data_1[] =
{
{840, 604,1344, 800},
......@@ -1823,7 +1848,6 @@ static const SiS300_LVDSDataStruct SiS300_LVDS1024x600Data_1[] =
{800, 525,1280, 785}
};
/* TW: New: */
static const SiS300_LVDSDataStruct SiS300_LVDS1024x600Data_2[] =
{
{1344, 800,1344, 800},
......@@ -1837,7 +1861,6 @@ static const SiS300_LVDSDataStruct SiS300_LVDS1024x600Data_2[] =
{800, 525,1280, 813}
};
/* TW: New: */
static const SiS300_LVDSDataStruct SiS300_LVDS1152x768Data_1[] =
{
{840, 438,1344, 806},
......@@ -1851,7 +1874,6 @@ static const SiS300_LVDSDataStruct SiS300_LVDS1152x768Data_1[] =
{800, 525,1280, 813}
};
/* TW: New: */
static const SiS300_LVDSDataStruct SiS300_LVDS1152x768Data_2[] =
{
{1344, 806,1344, 806},
......@@ -1865,17 +1887,19 @@ static const SiS300_LVDSDataStruct SiS300_LVDS1152x768Data_2[] =
{800, 525,1280, 813}
};
/* TW: New in 650/LVDS BIOS - 1:1 */
static const SiS300_LVDSDataStruct SiS300_LVDSXXXxXXXData_1[] = /* TW: New */
/* TW: pass 1:1 data */
static const SiS300_LVDSDataStruct SiS300_LVDSXXXxXXXData_1[]=
{
{ 800, 449, 800, 449},
{ 800, 449, 800, 449},
{ 900, 449, 900, 449},
{ 900, 449, 900, 449},
{ 800, 525, 800, 525},
{1056, 628,1056, 628},
{1344, 806,1344, 806},
{1688, 806,1688, 806} /* 1280x768 ! */
{ 800, 449, 800, 449},
{ 800, 449, 800, 449},
{ 900, 449, 900, 449},
{ 900, 449, 900, 449},
{ 800, 525, 800, 525}, /* 640x480 */
{1056, 628, 1056, 628}, /* 800x600 */
{1344, 806, 1344, 806}, /* 1024x768 */
{1344,1066, 1344,1066}, /* 1280x1024 */ /* INSERTED ! */
{1688, 806, 1688, 806}, /* 1280x768 ! */
/* No other panels ! */
};
static const SiS300_LVDSDataStruct SiS300_LVDS640x480Data_1[] =
......@@ -2448,6 +2472,34 @@ static const SiS300_LVDSDesStruct SiS300_PanelType0f_2[] =
{ 0, 0}
};
static const SiS300_LVDSDesStruct SiS300_PanelTypeNS_1[]=
{
{ 8, 0},
{ 8, 0},
{ 8, 0},
{ 8, 0},
{ 8, 0},
{ 0, 0},
{ 0, 0},
{ 0, 0},
{ 0, 806},
{ 0, 0 }
};
static const SiS300_LVDSDesStruct SiS300_PanelTypeNS_2[] =
{
{ 0 , 0},
{ 0 , 0},
{ 0 , 0},
{ 0 , 0},
{ 0 , 0},
{ 0 , 0},
{ 0 , 0},
{ 0 , 0},
{ 0 , 0},
{ 0 , 0}
};
static const SiS300_LVDSDesStruct SiS300_PanelType1076_1[] = /* TW: New */
{
{ 0 , 0},
......
This diff is collapsed.
This diff is collapsed.
......@@ -261,16 +261,15 @@ void SiSInitPCIetc(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtensio
void SiSDetermineROMUsage(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, UCHAR *ROMAddr);
#ifdef LINUX_XF86
USHORT SiS_CalcModeIndex(ScrnInfoPtr pScrn, DisplayModePtr mode);
USHORT SiS_CheckCalcModeIndex(ScrnInfoPtr pScrn, DisplayModePtr mode, int VBFlags);
USHORT SiS_CheckBuildCustomMode(ScrnInfoPtr pScrn, DisplayModePtr mode, int VBFlags);
void SiS_SetPitch(SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, UShort BaseAddr);
void SiS_SetPitchCRT1(SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, UShort BaseAddr);
void SiS_SetPitchCRT2(SiS_Private *SiS_Pr, ScrnInfoPtr pScrn, UShort BaseAddr);
unsigned char SiS_GetSetModeID(ScrnInfoPtr pScrn, unsigned char id);
unsigned char SiS_GetSetBIOSScratch(ScrnInfoPtr pScrn, USHORT offset, unsigned char value);
extern int SiS_compute_vclk(int Clock, int *out_n, int *out_dn, int *out_div,
int *out_sbit, int *out_scale);
extern unsigned char SiS_GetSetBIOSScratch(ScrnInfoPtr pScrn, USHORT offset, unsigned char value);
extern unsigned char SiS_GetSetModeID(ScrnInfoPtr pScrn, unsigned char id);
extern USHORT SiS_CalcModeIndex(ScrnInfoPtr pScrn, DisplayModePtr mode);
#endif
extern USHORT SiS_GetOffset(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
......
This diff is collapsed.
......@@ -72,8 +72,10 @@ void SiS_GetCRT2Data(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHOR
USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension);
void SiS_GetCRT2DataLVDS(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
USHORT RefreshRateTableIndex,PSIS_HW_DEVICE_INFO HwDeviceExtension);
#ifdef SIS315H
void SiS_GetCRT2PtrA(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
USHORT RefreshRateTableIndex,USHORT *CRT2Index,USHORT *ResIndex);
#endif
void SiS_GetCRT2Part2Ptr(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
USHORT RefreshRateTableIndex,USHORT *CRT2Index, USHORT *ResIndex);
void SiS_GetCRT2Data301(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
......@@ -142,8 +144,10 @@ void SiS_SetCRT2ECLK(SiS_Private *SiS_Pr, UCHAR *ROMAddr, USHORT ModeNo,USHO
void SiS_GetLVDSDesPtr(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
USHORT RefreshRateTableIndex,USHORT *PanelIndex,USHORT *ResIndex,
PSIS_HW_DEVICE_INFO HwDeviceExtension);
#ifdef SIS315H
void SiS_GetLVDSDesPtrA(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
USHORT RefreshRateTableIndex,USHORT *PanelIndex,USHORT *ResIndex);
#endif
void SiS_SetTPData(SiS_Private *SiS_Pr);
void SiS_WhatIsThis(SiS_Private *SiS_Pr, USHORT myvbinfo);
void SiS_ModCRT1CRTC(SiS_Private *SiS_Pr, UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
......@@ -202,8 +206,10 @@ void SiS_SetGroup1(SiS_Private *SiS_Pr, USHORT BaseAddr,UCHAR *ROMAddr,USHOR
PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT RefreshRateTableIndex);
void SiS_SetGroup1_LVDS(SiS_Private *SiS_Pr, USHORT BaseAddr,UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT RefreshRateTableIndex);
#ifdef SIS315H
void SiS_SetGroup1_LCDA(SiS_Private *SiS_Pr, USHORT BaseAddr,UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT RefreshRateTableIndex);
#endif
void SiS_SetGroup1_301(SiS_Private *SiS_Pr, USHORT BaseAddr,UCHAR *ROMAddr,USHORT ModeNo,USHORT ModeIdIndex,
PSIS_HW_DEVICE_INFO HwDeviceExtension,USHORT RefreshRateTableIndex);
#ifdef SIS300
......@@ -231,18 +237,24 @@ void SiS_VBWait(SiS_Private *SiS_Pr);
void SiS_SiS30xBLOn(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension);
void SiS_SiS30xBLOff(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension);
/* TW: New functions (with mostly temporary names) */
void SiS_Chrontel701xBLOn(SiS_Private *SiS_Pr);
void SiS_Chrontel701xBLOff(SiS_Private *SiS_Pr);
#ifdef SIS315H
void SiS_Chrontel701xOn(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension,
USHORT BaseAddr);
void SiS_Chrontel701xBLOff(SiS_Private *SiS_Pr);
void SiS_Chrontel701xOff(SiS_Private *SiS_Pr);
void SiS_ChrontelResetDB(SiS_Private *SiS_Pr);
void SiS_ChrontelResetDB(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
void SiS_ChrontelDoSomething4(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
void SiS_ChrontelDoSomething3(SiS_Private *SiS_Pr, USHORT ModeNo, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
void SiS_ChrontelDoSomething2(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
void SiS_ChrontelDoSomething1(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
BOOLEAN SiS_WeHaveBacklightCtrl(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
void SiS_ChrontelPowerSequencing(SiS_Private *SiS_Pr);
void SiS_SetCH701xForLCD(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
#ifdef NEWCH701x
void SiS_ChrontelDoSomething5(SiS_Private *SiS_Pr);
#endif
#endif /* 315 */
#if 0
BOOLEAN SiS_IsSomethingCR5F(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
#endif
......@@ -250,12 +262,9 @@ BOOLEAN SiS_IsYPbPr(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension,
BOOLEAN SiS_IsChScart(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
BOOLEAN SiS_IsTVOrYPbPrOrScart(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
BOOLEAN SiS_IsLCDOrLCDA(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
void SiS_SetCH701xForLCD(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension, USHORT BaseAddr);
void SiS_ChrontelPowerSequencing(SiS_Private *SiS_Pr);
BOOLEAN SiS_CR36BIOSWord23b(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension);
BOOLEAN SiS_CR36BIOSWord23d(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension);
BOOLEAN SiS_IsSR13_CR30(SiS_Private *SiS_Pr, PSIS_HW_DEVICE_INFO HwDeviceExtension);
/* TW end */
extern void SiS_SetReg1(USHORT, USHORT, USHORT);
extern void SiS_SetReg3(USHORT, USHORT);
......
......@@ -60,7 +60,7 @@ UCHAR SiS310_LCDDelayCompensation_3xx301B[] = /* 30xB,LV */
0x02,0x02,0x02
};
const UCHAR SiS310_LCDDelayCompensation_LVDS[] = /* LVDS */
const UCHAR SiS310_LCDDelayCompensation_LVDS650[] = /* LVDS */
{
0x00,0x00,0x00, /* 800x600 */
0x00,0x00,0x00, /* 1024x768 */
......@@ -79,6 +79,25 @@ const UCHAR SiS310_LCDDelayCompensation_LVDS[] = /* LVDS */
0x00,0x00,0x00
};
const UCHAR SiS310_LCDDelayCompensation_LVDS740[] = /* LVDS */
{
0x03,0x03,0x03, /* 800x600 */
0x03,0x03,0x03, /* 1024x768 */
0x03,0x03,0x03, /* 1280x1024 */
0x03,0x03,0x03, /* 640x480 (unknown) */
0x03,0x03,0x03, /* 1024x600 (unknown) */
0x03,0x03,0x03, /* 1152x864 (unknown) */
0x03,0x03,0x03, /* 1280x960 (guessed) */
0x03,0x03,0x03, /* 1152x768 (unknown) */
0x03,0x03,0x03, /* 1400x1050 */
0x03,0x03,0x03, /* 1280x768 (guessed) */
0x03,0x03,0x03, /* 1600x1200 */
0x00,0x00,0x00,
0x00,0x00,0x00,
0x00,0x00,0x00,
0x00,0x00,0x00
};
const UCHAR SiS310_LCDDelayCompensation_651301LV[] = /* M650/651 301LV */
{
0x33,0x33,0x33, /* 800x600 (guessed) */
......
......@@ -330,7 +330,7 @@ void sisfb_syncaccel(void)
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,34) /* --- KERNEL 2.5.34 and later --- */
int sisfb_sync(struct fb_info *info)
int fbcon_sis_sync(struct fb_info *info)
{
if(!sisfb_accel) return 0;
CRITFLAGS
......@@ -343,17 +343,17 @@ int sisfb_sync(struct fb_info *info)
return 0;
}
void sisfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
void fbcon_sis_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
{
int col=0;
CRITFLAGS
TWDEBUG("Inside sisfb_fillrect");
TWDEBUG("Inside sis_fillrect");
if(!rect->width || !rect->height)
return;
if(!sisfb_accel) {
cfb_fillrect(info, rect);
cfb_fillrect(info, rect);
return;
}
......@@ -382,7 +382,7 @@ void sisfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
}
void sisfb_copyarea(struct fb_info *info, const struct fb_copyarea *area)
void fbcon_sis_copyarea(struct fb_info *info, const struct fb_copyarea *area)
{
int xdir, ydir;
CRITFLAGS
......
......@@ -502,8 +502,8 @@ void fbcon_sis_clear32(struct vc_data *conp, struct display *p, int srcy,
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,34)
extern int sisfb_accel;
void sisfb_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
void sisfb_copyarea(struct fb_info *info, const struct fb_copyarea *area);
void fbcon_sis_fillrect(struct fb_info *info, const struct fb_fillrect *rect);
void fbcon_sis_copyarea(struct fb_info *info, const struct fb_copyarea *area);
#endif
#endif
This diff is collapsed.
......@@ -14,7 +14,7 @@
#define VER_MAJOR 1
#define VER_MINOR 6
#define VER_LEVEL 0
#define VER_LEVEL 1
#include "sis.h"
......@@ -890,11 +890,15 @@ static int sisfb_blank(int blank,
struct fb_info *info);
static int sisfb_mmap(struct fb_info *info, struct file *file,
struct vm_area_struct *vma);
extern void sisfb_fillrect(struct fb_info *info,
const struct fb_fillrect *rect);
extern void sisfb_copyarea(struct fb_info *info,
extern void fbcon_sis_fillrect(struct fb_info *info,
const struct fb_fillrect *rect);
extern void fbcon_sis_copyarea(struct fb_info *info,
const struct fb_copyarea *area);
extern int sisfb_sync(struct fb_info *info);
#if 0
extern void cfb_imageblit(struct fb_info *info,
const struct fb_image *image);
#endif
extern int fbcon_sis_sync(struct fb_info *info);
static int sisfb_ioctl(struct inode *inode,
struct file *file,
unsigned int cmd,
......
......@@ -372,6 +372,8 @@ typedef struct _SiS_Private
const SiS_LVDSDataStruct *SiS_LVDS1280x960Data_2;
const SiS_LVDSDataStruct *SiS_LVDS1400x1050Data_1;
const SiS_LVDSDataStruct *SiS_LVDS1400x1050Data_2;
const SiS_LVDSDataStruct *SiS_LVDS1600x1200Data_1;
const SiS_LVDSDataStruct *SiS_LVDS1600x1200Data_2;
const SiS_LVDSDataStruct *SiS_LVDS1280x768Data_1;
const SiS_LVDSDataStruct *SiS_LVDS1280x768Data_2;
const SiS_LVDSDataStruct *SiS_LVDS1024x600Data_1;
......@@ -410,6 +412,7 @@ typedef struct _SiS_Private
const SiS_LVDSDesStruct *SiS_PanelType0d_1;
const SiS_LVDSDesStruct *SiS_PanelType0e_1;
const SiS_LVDSDesStruct *SiS_PanelType0f_1;
const SiS_LVDSDesStruct *SiS_PanelTypeNS_1;
const SiS_LVDSDesStruct *SiS_PanelType00_2;
const SiS_LVDSDesStruct *SiS_PanelType01_2;
const SiS_LVDSDesStruct *SiS_PanelType02_2;
......@@ -426,6 +429,7 @@ typedef struct _SiS_Private
const SiS_LVDSDesStruct *SiS_PanelType0d_2;
const SiS_LVDSDesStruct *SiS_PanelType0e_2;
const SiS_LVDSDesStruct *SiS_PanelType0f_2;
const SiS_LVDSDesStruct *SiS_PanelTypeNS_2;
const SiS_LVDSDesStruct *LVDS1024x768Des_1;
const SiS_LVDSDesStruct *LVDS1280x1024Des_1;
......
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