Annotation of /trunk/xorg-old/patches-6.8.2-r10/5170_all_6.8.1.904-radeon-add-bioshotkeys-option.patch
Parent Directory | Revision Log
Revision 167 -
(hide annotations)
(download)
Tue May 8 20:58:51 2007 UTC (17 years, 4 months ago) by niro
File size: 3605 byte(s)
Tue May 8 20:58:51 2007 UTC (17 years, 4 months ago) by niro
File size: 3605 byte(s)
-import
1 | niro | 167 | (#79033, fd.o #2000) Radeon driver disables hotkeys. Provide a new option |
2 | BIOSHotkeys to enable hotkey switching. | ||
3 | |||
4 | --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c.orig 2005-01-23 13:58:56.000000000 +0100 | ||
5 | +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c 2005-01-23 17:35:46.000000000 +0100 | ||
6 | @@ -172,6 +172,7 @@ typedef enum { | ||
7 | OPTION_VGA_ACCESS, | ||
8 | OPTION_LVDS_PROBE_PLL, | ||
9 | OPTION_REVERSE_DDC, | ||
10 | + OPTION_BIOS_HOTKEYS, | ||
11 | } RADEONOpts; | ||
12 | |||
13 | static const OptionInfoRec RADEONOptions[] = { | ||
14 | @@ -222,6 +223,7 @@ static const OptionInfoRec RADEONOptions | ||
15 | { OPTION_VGA_ACCESS, "VGAAccess", OPTV_BOOLEAN, {0}, TRUE }, | ||
16 | { OPTION_LVDS_PROBE_PLL, "LVDSProbePLL", OPTV_BOOLEAN, {0}, FALSE }, | ||
17 | { OPTION_REVERSE_DDC, "ReverseDDC", OPTV_BOOLEAN, {0}, FALSE }, | ||
18 | + { OPTION_BIOS_HOTKEYS, "BIOSHotkeys", OPTV_BOOLEAN, {0}, FALSE }, | ||
19 | { -1, NULL, OPTV_NONE, {0}, FALSE } | ||
20 | }; | ||
21 | |||
22 | @@ -6899,7 +6901,18 @@ static void RADEONInitFPRegisters(ScrnIn | ||
23 | } | ||
24 | } | ||
25 | |||
26 | - if (info->IsMobility) { | ||
27 | + info->BiosHotkeys = FALSE; | ||
28 | + /* | ||
29 | + * Allow the bios to toggle outputs. see below for more. | ||
30 | + */ | ||
31 | + if (xf86ReturnOptValBool(info->Options, OPTION_BIOS_HOTKEYS, FALSE)) { | ||
32 | + info->BiosHotkeys = TRUE; | ||
33 | + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "BIOS HotKeys Enabled\n"); | ||
34 | + } else { | ||
35 | + xf86DrvMsg(pScrn->scrnIndex, X_INFO, "BIOS HotKeys Disabled\n"); | ||
36 | + } | ||
37 | + | ||
38 | + if (info->IsMobility && (!info->BiosHotkeys)) { | ||
39 | RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); | ||
40 | |||
41 | /* To work correctly with laptop hotkeys. | ||
42 | @@ -6927,6 +6940,21 @@ static void RADEONInitFPRegisters(ScrnIn | ||
43 | } | ||
44 | save->bios_4_scratch = 0x4; | ||
45 | save->bios_6_scratch = orig->bios_6_scratch | 0x40000000; | ||
46 | + | ||
47 | + } else if (info->IsMobility && (info->DisplayType == MT_LCD)) { | ||
48 | + RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); | ||
49 | + | ||
50 | + /* BIOS will use this setting to reset displays upon lid close/open. | ||
51 | + * Here we let BIOS controls LCD, but the driver will control the external CRT. | ||
52 | + */ | ||
53 | + if (info->MergedFB || pRADEONEnt->HasSecondary) | ||
54 | + save->bios_5_scratch = 0x01020201; | ||
55 | + else | ||
56 | + save->bios_5_scratch = orig->bios_5_scratch; | ||
57 | + | ||
58 | + save->bios_4_scratch = orig->bios_4_scratch; | ||
59 | + save->bios_6_scratch = orig->bios_6_scratch; | ||
60 | + | ||
61 | } | ||
62 | |||
63 | save->fp_crtc_h_total_disp = save->crtc_h_total_disp; | ||
64 | --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h.orig 2005-01-23 13:58:56.000000000 +0100 | ||
65 | +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h 2005-01-23 17:35:46.000000000 +0100 | ||
66 | @@ -602,6 +602,10 @@ typedef struct { | ||
67 | |||
68 | /* special handlings for DELL triple-head server */ | ||
69 | Bool IsDellServer; | ||
70 | + | ||
71 | + /* enable bios hotkey output switching */ | ||
72 | + Bool BiosHotkeys; | ||
73 | + | ||
74 | } RADEONInfoRec, *RADEONInfoPtr; | ||
75 | |||
76 | |||
77 | --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.man.orig 2005-01-23 13:58:56.000000000 +0100 | ||
78 | +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.man 2005-01-23 17:35:46.000000000 +0100 | ||
79 | @@ -522,6 +522,13 @@ case. This is only useful for LVDS pane | ||
80 | The default is | ||
81 | .B on. | ||
82 | .TP | ||
83 | +.BI "Option \*qBIOSHotkeys\*q \*q" boolean \*q | ||
84 | +Enable BIOS hotkey output switching. This allows the BIOS to toggle outputs | ||
85 | +using hotkeys (e.g., fn-f7, etc.). Since the driver does not support ACPI, | ||
86 | +there is no way to validate modes on an output switch and the BIOS can | ||
87 | +potentially change things behind the driver's back. The default is | ||
88 | +.B off. | ||
89 | +.TP | ||
90 | |||
91 | .SH SEE ALSO | ||
92 | __xservername__(__appmansuffix__), __xconfigfile__(__filemansuffix__), xorgconfig(__appmansuffix__), Xserver(__appmansuffix__), X(__miscmansuffix__) |