Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 281294
b: refs/heads/master
c: 25aa75f
h: refs/heads/master
v: v3
  • Loading branch information
Aaro Koskinen authored and Greg Kroah-Hartman committed Dec 8, 2011
1 parent 02f8eb8 commit 5692543
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 776091018bf722eebc75c8be958bdd59f003e6f7
refs/heads/master: 25aa75f142e0e6945a6d5db3dbcd9d6919525866
28 changes: 17 additions & 11 deletions trunk/drivers/staging/xgifb/XGI_main_26.c
Original file line number Diff line number Diff line change
Expand Up @@ -1744,17 +1744,16 @@ static void XGIfb_detect_VB(struct xgifb_video_info *xgifb_info)
XGIfb_crt1off = 0;
}

if (XGIfb_crt2type != -1)
/* TW: Override with option */
xgifb_info->display2 = XGIfb_crt2type;
else if (cr32 & XGI_VB_TV)
xgifb_info->display2 = XGIFB_DISP_TV;
else if (cr32 & XGI_VB_LCD)
xgifb_info->display2 = XGIFB_DISP_LCD;
else if (cr32 & XGI_VB_CRT2)
xgifb_info->display2 = XGIFB_DISP_CRT;
else
xgifb_info->display2 = XGIFB_DISP_NONE;
if (!xgifb_info->display2_force) {
if (cr32 & XGI_VB_TV)
xgifb_info->display2 = XGIFB_DISP_TV;
else if (cr32 & XGI_VB_LCD)
xgifb_info->display2 = XGIFB_DISP_LCD;
else if (cr32 & XGI_VB_CRT2)
xgifb_info->display2 = XGIFB_DISP_CRT;
else
xgifb_info->display2 = XGIFB_DISP_NONE;
}

if (XGIfb_tvplug != -1)
/* PR/TW: Override with option */
Expand Down Expand Up @@ -1926,6 +1925,11 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,
goto error;
}

if (XGIfb_crt2type != -1) {
xgifb_info->display2 = XGIfb_crt2type;
xgifb_info->display2_force = true;
}

XGIRegInit(&xgifb_info->dev_info, (unsigned long)hw_info->pjIOAddress);

xgifb_reg_set(XGISR, IND_XGI_PASSWORD, XGI_PASSWORD);
Expand Down Expand Up @@ -2104,6 +2108,8 @@ static int __devinit xgifb_probe(struct pci_dev *pdev,

if (xgifb_info->hasVB != HASVB_NONE)
XGIfb_detect_VB(xgifb_info);
else if (xgifb_info->chip != XG21)
xgifb_info->display2 = XGIFB_DISP_NONE;

if (xgifb_info->display2 == XGIFB_DISP_LCD) {
if (!enable_dstn) {
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/staging/xgifb/XGIfb.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ struct xgifb_video_info {
unsigned int refresh_rate;

enum xgifb_display_type display2; /* the second display output type */
bool display2_force;
unsigned char hasVB;
unsigned char TV_type;
unsigned char TV_plug;
Expand Down
8 changes: 7 additions & 1 deletion trunk/drivers/staging/xgifb/vb_init.c
Original file line number Diff line number Diff line change
Expand Up @@ -1136,7 +1136,13 @@ static void xgifb_read_vbios(struct pci_dev *pdev,
}
if (vbios_size <= 0x65)
goto error;
if (!(vbios[0x65] & 0x1)) {
/*
* The user can ignore the LVDS bit in the BIOS and force the display
* type.
*/
if (!(vbios[0x65] & 0x1) &&
(!xgifb_info->display2_force ||
xgifb_info->display2 != XGIFB_DISP_LCD)) {
vfree(vbios);
return;
}
Expand Down

0 comments on commit 5692543

Please sign in to comment.