Commit c976c781 authored by Aaro Koskinen's avatar Aaro Koskinen Committed by Greg Kroah-Hartman

staging: xgifb: refactor XGI_BridgeIsOn()

Refactor XGI_BridgeIsOn(). IF_DEF_LVDS bit is not valid for < XG20 chips.
Also we can make the function static by moving it to vb_init.
Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 1e4db2b3
...@@ -1185,6 +1185,14 @@ static unsigned char GetXG27FPBits(struct vb_device_info *pVBInfo) ...@@ -1185,6 +1185,14 @@ static unsigned char GetXG27FPBits(struct vb_device_info *pVBInfo)
return temp; return temp;
} }
static bool xgifb_bridge_is_on(struct vb_device_info *vb_info)
{
u8 flag;
flag = xgifb_reg_get(vb_info->Part4Port, 0x00);
return flag == 1 || flag == 2;
}
unsigned char XGIInitNew(struct pci_dev *pdev) unsigned char XGIInitNew(struct pci_dev *pdev)
{ {
struct xgifb_video_info *xgifb_info = pci_get_drvdata(pdev); struct xgifb_video_info *xgifb_info = pci_get_drvdata(pdev);
...@@ -1321,7 +1329,7 @@ unsigned char XGIInitNew(struct pci_dev *pdev) ...@@ -1321,7 +1329,7 @@ unsigned char XGIInitNew(struct pci_dev *pdev)
xgifb_reg_set(pVBInfo->P3c4, 0x33, XGI330_SR33); xgifb_reg_set(pVBInfo->P3c4, 0x33, XGI330_SR33);
if (HwDeviceExtension->jChipType < XG20) { if (HwDeviceExtension->jChipType < XG20) {
if (XGI_BridgeIsOn(pVBInfo) == 1) { if (xgifb_bridge_is_on(pVBInfo)) {
xgifb_reg_set(pVBInfo->Part2Port, 0x00, 0x1C); xgifb_reg_set(pVBInfo->Part2Port, 0x00, 0x1C);
xgifb_reg_set(pVBInfo->Part4Port, xgifb_reg_set(pVBInfo->Part4Port,
0x0D, XGI330_CRT2Data_4_D); 0x0D, XGI330_CRT2Data_4_D);
......
...@@ -5290,21 +5290,6 @@ void XGI_LockCRT2(struct xgi_hw_device_info *HwDeviceExtension, ...@@ -5290,21 +5290,6 @@ void XGI_LockCRT2(struct xgi_hw_device_info *HwDeviceExtension,
} }
unsigned char XGI_BridgeIsOn(struct vb_device_info *pVBInfo)
{
unsigned short flag;
if (pVBInfo->IF_DEF_LVDS == 1) {
return 1;
} else {
flag = xgifb_reg_get(pVBInfo->Part4Port, 0x00);
if ((flag == 1) || (flag == 2))
return 1; /* 301b */
else
return 0;
}
}
unsigned short XGI_GetRatePtrCRT2(struct xgi_hw_device_info *pXGIHWDE, unsigned short XGI_GetRatePtrCRT2(struct xgi_hw_device_info *pXGIHWDE,
unsigned short ModeNo, unsigned short ModeIdIndex, unsigned short ModeNo, unsigned short ModeIdIndex,
struct vb_device_info *pVBInfo) struct vb_device_info *pVBInfo)
......
...@@ -18,7 +18,6 @@ extern unsigned char XGISetModeNew(struct xgifb_video_info *xgifb_info, ...@@ -18,7 +18,6 @@ extern unsigned char XGISetModeNew(struct xgifb_video_info *xgifb_info,
extern unsigned char XGI_SearchModeID(unsigned short ModeNo, extern unsigned char XGI_SearchModeID(unsigned short ModeNo,
unsigned short *ModeIdIndex, unsigned short *ModeIdIndex,
struct vb_device_info *); struct vb_device_info *);
extern unsigned char XGI_BridgeIsOn(struct vb_device_info *);
extern unsigned short XGI_GetRatePtrCRT2(struct xgi_hw_device_info *pXGIHWDE, extern unsigned short XGI_GetRatePtrCRT2(struct xgi_hw_device_info *pXGIHWDE,
unsigned short ModeNo, unsigned short ModeNo,
unsigned short ModeIdIndex, unsigned short ModeIdIndex,
......
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