Mercurial > mplayer.hg
annotate vidix/sysdep/pci_sco.c @ 25317:7f3cb5408f28
Fixed VIDIX color bug that was introduced when Radeon VIDIX driver
was synchronized with vidix.sf.net.
The red color was saturating.
Corrected value fixes the issue and restore the color to the level
it used to have before synchronization.
Meaning of the value remains unknow but was retrieved from
register's value of a Radeon 9000 card, so it may need further testing.
Patch by Guillaume Lecerf (foxcore at gmail dot com)
author | ben |
---|---|
date | Mon, 10 Dec 2007 19:27:46 +0000 |
parents | 9c4ad35fabc5 |
children | 502f04b67653 |
rev | line source |
---|---|
4164 | 1 /* |
2 This file is based on: | |
3 $XFree86: xc/programs/Xserver/hw/xfree86/etc/scanpci.c,v 3.34.2.17 1998/11/10 11:55:40 dawes Exp $ | |
4 Modified for readability by Nick Kurshev | |
5 */ | |
25132
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
6 /* |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
7 * Copyright 1995 by Robin Cutshaw <robin@XFree86.Org> |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
8 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
9 * Permission to use, copy, modify, distribute, and sell this software and its |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
10 * documentation for any purpose is hereby granted without fee, provided that |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
11 * the above copyright notice appear in all copies and that both that |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
12 * copyright notice and this permission notice appear in supporting |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
13 * documentation, and that the names of the above listed copyright holder(s) |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
14 * not be used in advertising or publicity pertaining to distribution of |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
15 * the software without specific, written prior permission. The above listed |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
16 * copyright holder(s) make(s) no representations about the suitability of this |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
17 * software for any purpose. It is provided "as is" without express or |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
18 * implied warranty. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
19 * |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
20 * THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM(S) ALL WARRANTIES WITH REGARD |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
21 * TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
22 * AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
23 * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
24 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
25 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
26 * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
27 */ |
9c4ad35fabc5
Restore copyright/license notices that were stripped off.
diego
parents:
22900
diff
changeset
|
28 |
4164 | 29 #include <sys/console.h> |
30 #include <sys/param.h> | |
31 #include <sys/immu.h> | |
32 #include <sys/region.h> | |
33 #include <sys/proc.h> | |
34 #include <sys/tss.h> | |
35 #include <sys/sysi86.h> | |
36 #include <sys/v86.h> | |
37 | |
4174
4cfb6b9a6da3
api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents:
4164
diff
changeset
|
38 static __inline__ int enable_os_io(void) |
4164 | 39 { |
40 #if defined(SI86IOPL) | |
41 sysi86(SI86IOPL, 3); | |
42 #else | |
43 sysi86(SI86V86, V86SC_IOPL, PS_IOPL); | |
44 #endif | |
4174
4cfb6b9a6da3
api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents:
4164
diff
changeset
|
45 return(0); |
4164 | 46 } |
47 | |
4174
4cfb6b9a6da3
api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents:
4164
diff
changeset
|
48 static __inline__ int disable_os_io(void) |
4164 | 49 { |
50 #if defined(SI86IOPL) | |
51 sysi86(SI86IOPL, 0); | |
52 #else | |
53 sysi86(SI86V86, V86SC_IOPL, 0); | |
54 #endif | |
4174
4cfb6b9a6da3
api changed: enable/disable_os_io returns error-code (or zero if ok) and pciconfig_read exported for mga_vid
alex
parents:
4164
diff
changeset
|
55 return(0); |
4164 | 56 } |