xserver-xorg-video-openchrome: Changes to 'upstream-unstable'
ChangeLog | 108 +++++++++
NEWS | 69 +++++
README | 11
configure.ac | 6
src/openchrome.man | 20 +
src/via.h | 6
src/via_accel.c | 73 +++++-
src/via_bandwidth.c | 7
src/via_bios.h | 11
src/via_ch7xxx.c | 1
src/via_crtc.c | 8
src/via_cursor.c | 229 ++++++++++++-------
src/via_display.c | 61 +++++
src/via_dri.c | 25 +-
src/via_driver.c | 604 +++++++++++++++++++++++++++-------------------------
src/via_driver.h | 21 +
src/via_id.c | 20 +
src/via_id.h | 2
src/via_lvds.c | 146 +++++++++++-
src/via_mode.c | 219 ++++++++++++------
src/via_mode.h | 104 +++++---
src/via_panel.c | 25 +-
src/via_regs.h | 53 ----
src/via_shadow.c | 191 ++++++++++++++--
src/via_swov.c | 55 ++--
src/via_vbe.c | 6
src/via_video.c | 28 ++
src/via_vt162x.c | 56 ++++
src/via_vt162x.h | 38 +--
src/via_xvmc.c | 9
30 files changed, 1544 insertions(+), 668 deletions(-)
New commits:
commit e126b52daaa3ce44efc262507bc1e43981501de9
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Wed Oct 21 22:58:12 2009 +0000
Guillemot-Hercules ECafe EC900B (reported by Andrew Jones)
git-svn-id: http://svn.openchrome.org/svn/trunk@812 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_id.c b/src/via_id.c
index c961ee1..d73b365 100644
--- a/src/via_id.c
+++ b/src/via_id.c
@@ -224,6 +224,7 @@ static struct ViaCardIdStruct ViaCardId[] = {
/*** VX800 ***/
{"VIA Epia M700", VIA_VX800, 0x1106, 0x1122, VIA_DEVICE_CRT},
+ {"Guillemot-Hercules ECafe EC900B", VIA_VX800, 0x1106, 0x3349, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
{"VIA OpenBook", VIA_VX800, 0x1170, 0x0311, VIA_DEVICE_CRT | VIA_DEVICE_LCD}, /* VIA OpenBook eNote VBE8910 */
{"Samsung NC20", VIA_VX800, 0x144d, 0xc04e, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
{"Quanta DreamBook Light IL1", VIA_VX800, 0x152d, 0x0771, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
commit 407ad26ab808884d57943f9d91d47f08e2fd204c
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Thu Oct 8 23:10:30 2009 +0000
bump release
git-svn-id: http://svn.openchrome.org/svn/trunk@810 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/configure.ac b/configure.ac
index 136ff00..c94ab4c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
AC_PREREQ(2.57)
AC_INIT([xf86-video-openchrome],
- 0.2.903,
+ 0.2.904,
[http://www.openchrome.org/trac/report/1],
xf86-video-openchrome)
diff --git a/src/via_driver.h b/src/via_driver.h
index 11bc5a7..f99e7aa 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -104,7 +104,7 @@
#define DRIVER_NAME "openchrome"
#define VERSION_MAJOR 0
#define VERSION_MINOR 2
-#define PATCHLEVEL 903
+#define PATCHLEVEL 904
#define VIA_VERSION ((VERSION_MAJOR<<24) | (VERSION_MINOR<<16) | PATCHLEVEL)
#define VIA_VQ_SIZE (256 * 1024)
commit 6554ead94be5a5ceb02ba219acd7dfa2259ea70d
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Thu Oct 8 23:09:36 2009 +0000
last doc tweaks before release
git-svn-id: http://svn.openchrome.org/svn/trunk@809 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/NEWS b/NEWS
index be21e57..bae9d2f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-openchrome 0.2.904 (XX/10/2009)- NOT YET RELEASED
+openchrome 0.2.904 (09/10/2009)
-------------------------------
* New features :
- Basic VX855 support.
@@ -64,7 +64,7 @@ openchrome 0.2.904 (XX/10/2009)- NOT YET RELEASED
ECS P4M890T-M v2.0, Foxconn P4M800P7MB-RS2H, Haier A60-440256080BD,
Lenovo S12, Mitac 8624 (w/ P4M890), MSI K8M Neo-V (broken pci id),
MSI P4M900M3-L, Packard Bell Lima (ASUS MBP5VDZ-NVM), Samsung NC20,
- Twinhead M6, VIA Epia M700. VIA Openbook, Sharp PC-AE30J.
+ Twinhead H12V, Twinhead M6, VIA Epia M700. VIA Openbook, Sharp PC-AE30J.
openchrome 0.2.903 (19/08/2008)
diff --git a/README b/README
index 027df97..c94e303 100644
--- a/README
+++ b/README
@@ -13,11 +13,13 @@ SUPPORTED CHIPSETS :
- P4M890 (VT3327)
- K8M890 (VT3336)
- P4M900/VN896 (VT3364)
+- VX800 (VT3353)
+- VX855 (VT3409)
SUPPORTED FEATURES :
--------------------
-- Free modesetting for Unichrome and Unichrome Pro chipset.
+- Free modesetting for Unichrome, Unichrome Pro and Chrome9 chipsets.
- VBE modesetting for everything not natively supported.
- TV-out support.
- EXA acceleration.
@@ -42,7 +44,7 @@ KNOWN BUGS/LIMITATIONS :
* XvMC
- The hardware MPEG4 acceleration that is present on some chipsets is not
implemented.
-- No XvMC support for CX700 (new, unsupported engine).
+- No XvMC support for CX700 and newer (new, unsupported engine).
- No XvMC support for K8M890, P4M890 and P4M900/VN896 (need to get dri working
for them first).
@@ -55,10 +57,11 @@ KNOWN BUGS/LIMITATIONS :
In other words, there is no dual screen support.
* Misc.
-- Add-on and integrated TMDS encoders are not supported, except thru VBE.
+- Add-on TMDS encoders are not supported, except thru VBE.
+- CX700, VX800 and VX855 integrated TMDS is supported.
* Chrome9
-- Chrome9 chipsets' family (P4M900 and K8M890) currently doesn't
+- Chrome9 chipsets' family (P4M900, K8M890, VX800, VX855) currently doesn't
support neither AGP DMA nor 3D acceleration.
commit 0b8add00b5774a3b5fdc21f485c6084a8f720673
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Thu Oct 8 23:05:11 2009 +0000
fix for #326 (hopefully...)
git-svn-id: http://svn.openchrome.org/svn/trunk@808 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_driver.c b/src/via_driver.c
index 5957de6..63a9e4e 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -185,18 +185,18 @@ static SymTabRec VIAChipsets[] = {
/* Mapping a PCI device ID to a chipset family identifier. */
static PciChipsets VIAPciChipsets[] = {
- {VIA_CLE266, PCI_CHIP_CLE3122, NULL},
- {VIA_KM400, PCI_CHIP_VT3205, NULL},
- {VIA_K8M800, PCI_CHIP_VT3204, NULL},
- {VIA_PM800, PCI_CHIP_VT3259, NULL},
- {VIA_VM800, PCI_CHIP_VT3314, NULL},
- {VIA_K8M890, PCI_CHIP_VT3336, NULL},
- {VIA_P4M900, PCI_CHIP_VT3364, NULL},
- {VIA_CX700, PCI_CHIP_VT3324, NULL},
- {VIA_P4M890, PCI_CHIP_VT3327, NULL},
- {VIA_VX800, PCI_CHIP_VT3353, NULL},
- {VIA_VX855, PCI_CHIP_VT3409, NULL},
- {-1, -1, NULL}
+ {VIA_CLE266, PCI_CHIP_CLE3122, VIA_RES_SHARED},
+ {VIA_KM400, PCI_CHIP_VT3205, VIA_RES_SHARED},
+ {VIA_K8M800, PCI_CHIP_VT3204, VIA_RES_SHARED},
+ {VIA_PM800, PCI_CHIP_VT3259, VIA_RES_SHARED},
+ {VIA_VM800, PCI_CHIP_VT3314, VIA_RES_SHARED},
+ {VIA_K8M890, PCI_CHIP_VT3336, VIA_RES_SHARED},
+ {VIA_P4M900, PCI_CHIP_VT3364, VIA_RES_SHARED},
+ {VIA_CX700, PCI_CHIP_VT3324, VIA_RES_SHARED},
+ {VIA_P4M890, PCI_CHIP_VT3327, VIA_RES_SHARED},
+ {VIA_VX800, PCI_CHIP_VT3353, VIA_RES_SHARED},
+ {VIA_VX855, PCI_CHIP_VT3409, VIA_RES_SHARED},
+ {-1, -1, VIA_RES_UNDEF}
};
int gVIAEntityIndex = -1;
diff --git a/src/via_driver.h b/src/via_driver.h
index e030523..11bc5a7 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -109,6 +109,14 @@
#define VIA_VQ_SIZE (256 * 1024)
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+#define VIA_RES_SHARED RES_SHARED_VGA
+#define VIA_RES_UNDEF RES_UNDEFINED
+#else
+#define VIA_RES_SHARED NULL
+#define VIA_RES_UNDEF NULL
+#endif
+
typedef struct {
CARD8 SR08, SR0A, SR0F;
commit 3363565104fe0445ab4d96666e87caa1236c61b9
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Thu Oct 8 21:30:18 2009 +0000
ModeSwitchMethod option (patch from Rafał Miłecki)
git-svn-id: http://svn.openchrome.org/svn/trunk@807 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_driver.c b/src/via_driver.c
index 848612d..5957de6 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -235,7 +235,8 @@ typedef enum
OPTION_VBE_SAVERESTORE,
OPTION_MAX_DRIMEM,
OPTION_AGPMEM,
- OPTION_DISABLE_XV_BW_CHECK
+ OPTION_DISABLE_XV_BW_CHECK,
+ OPTION_MODE_SWITCH_METHOD
} VIAOpts;
@@ -272,6 +273,7 @@ static OptionInfoRec VIAOptions[] = {
{OPTION_XV_DMA, "NoXVDMA", OPTV_BOOLEAN, {0}, FALSE},
{OPTION_VBE_SAVERESTORE, "VbeSaveRestore", OPTV_BOOLEAN, {0}, FALSE},
{OPTION_DISABLE_XV_BW_CHECK, "DisableXvBWCheck", OPTV_BOOLEAN, {0}, FALSE},
+ {OPTION_MODE_SWITCH_METHOD, "ModeSwitchMethod", OPTV_ANYSTR, {0}, FALSE},
{OPTION_MAX_DRIMEM, "MaxDRIMem", OPTV_INTEGER, {0}, FALSE},
{OPTION_AGPMEM, "AGPMem", OPTV_INTEGER, {0}, FALSE},
{-1, NULL, OPTV_NONE, {0}, FALSE}
@@ -1065,6 +1067,38 @@ VIAPreInit(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"Setting amount of VideoRAM to %d kB\n", pScrn->videoRam);
+ if ((s = xf86GetOptValString(VIAOptions, OPTION_MODE_SWITCH_METHOD))) {
+ if (!xf86NameCmp(s, "legacy")) {
+ if (pVia->UseLegacyModeSwitch) {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Already using \"legacy\" as ModeSwitchMethod, "
+ "did not force anything.\n");
+ }
+ else {
+ pVia->UseLegacyModeSwitch = TRUE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Forced ModeSwitchMethod to \"legacy\".\n");
+ }
+ }
+ else if (!xf86NameCmp(s, "new")) {
+ if (pVia->UseLegacyModeSwitch) {
+ pVia->UseLegacyModeSwitch = FALSE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Forced ModeSwitchMethod to \"new\".\n");
+ }
+ else {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
+ "Already using \"new\" as ModeSwitchMethod, "
+ "did not force anything.\n");
+ }
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "\"%s\" is not a valid"
+ "value for Option \"ModeSwitchMethod\".\n", s);
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Valid options are \"legacy\" or \"new\".\n");
+ }
+ }
+
/* When rotating, switch shadow framebuffer on and acceleration off. */
if ((s = xf86GetOptValString(VIAOptions, OPTION_ROTATE))) {
if (!xf86NameCmp(s, "CW")) {
commit 1ff6c6f2e84cc3d48cb67bdfe6a93686da9365f5
Author: gang65 <gang65@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Thu Oct 8 18:56:37 2009 +0000
Update openchrome man page, with information about TVPort option.
git-svn-id: http://svn.openchrome.org/svn/trunk@806 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/openchrome.man b/src/openchrome.man
index 43fab9c..fae904c 100644
--- a/src/openchrome.man
+++ b/src/openchrome.man
@@ -185,6 +185,10 @@ Specifies which TV output to use. The driver supports "S-Video",
EPIA boards the composite-video port is shared with audio-out and
is selected via a jumper.
.TP
+.BI "Option \*qTVPort\*q \*q" string \*q
+Specifies TV port. The driver currently supports "DVP0", "DVP1",
+"DFPHigh" and "DFPLow" ports.
+.TP
.BI "Option \*qTVType\*q \*q" string \*q
Specifies TV output format. The driver currently supports "NTSC" and
"PAL" timings only.
commit 1b514e77531f3567088fa6b823e63acc5b4a3d8d
Author: gang65 <gang65@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Thu Oct 8 15:54:28 2009 +0000
Fix panel autodetection for Legacy mode switch
git-svn-id: http://svn.openchrome.org/svn/trunk@805 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_mode.c b/src/via_mode.c
index 504e2c5..7b84562 100644
--- a/src/via_mode.c
+++ b/src/via_mode.c
@@ -683,13 +683,6 @@ ViaPanelGetIndex(ScrnInfoPtr pScrn, DisplayModePtr mode)
}
}
- if ((mode->PrivSize != sizeof(struct ViaModePriv))
- || (mode->Private != (void *)&ViaPanelPrivate)) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "ViaPanelGetIndex: Mode not supported by Panel.\n");
- return FALSE;
- }
-
if (!ViaGetResolutionIndex(pScrn, mode)) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Panel does not support this"
" resolution: %s\n", mode->name);
commit 40b5af4d447576976c8a209b070210225f1f2e50
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Wed Oct 7 22:01:07 2009 +0000
add missing comma (cosmetic)
git-svn-id: http://svn.openchrome.org/svn/trunk@804 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_video.c b/src/via_video.c
index 781d21b..4d7c62b 100644
--- a/src/via_video.c
+++ b/src/via_video.c
@@ -674,7 +674,7 @@ viaVideoFillPixmap(ScrnInfoPtr pScrn,
{
int i;
- ErrorF("pitch %lu, depth %d, x %d, y %d, w %d h %d, color 0x%08lx\n",
+ ErrorF("pitch %lu, depth %d, x %d, y %d, w %d, h %d, color 0x%08lx\n",
pitch, depth, x, y, w, h, color);
depth = (depth + 7) >> 3;
commit dae16fa19a3c5b1f899eba7cd7a1e31abc1e962b
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Wed Oct 7 21:57:30 2009 +0000
better check for resources/RAC API
git-svn-id: http://svn.openchrome.org/svn/trunk@803 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_driver.c b/src/via_driver.c
index 1e9520b..848612d 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -29,10 +29,6 @@
#include "config.h"
#endif
-#ifndef XSERVER_LIBPCIACCESS
-#include "xf86RAC.h"
-#endif
-
#include "shadowfb.h"
#include "globals.h"
@@ -49,6 +45,10 @@
#include "via_video.h"
#include "via.h"
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
+#include "xf86RAC.h"
+#endif
+
#ifdef XF86DRI
#include "dri.h"
#endif
diff --git a/src/via_driver.h b/src/via_driver.h
index 2ac19cc..e030523 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -37,7 +37,7 @@
#include "vgaHW.h"
#include "xf86.h"
-#ifndef XSERVER_LIBPCIACCESS
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
#include "xf86Resources.h"
#endif
diff --git a/src/via_video.c b/src/via_video.c
index 465e001..781d21b 100644
--- a/src/via_video.c
+++ b/src/via_video.c
@@ -33,7 +33,7 @@
#include "xf86.h"
#include "xf86_OSproc.h"
-#ifndef XSERVER_LIBPCIACCESS
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
#include "xf86Resources.h"
#endif
diff --git a/src/via_xvmc.c b/src/via_xvmc.c
index e94d133..a35a44a 100644
--- a/src/via_xvmc.c
+++ b/src/via_xvmc.c
@@ -28,7 +28,7 @@
#include "xf86.h"
#include "xf86_OSproc.h"
-#ifndef XSERVER_LIBPCIACCESS
+#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
#include "xf86Resources.h"
#endif
commit fd8d36f5b910fc14411ebc602215c0b0789e5d9d
Author: gang65 <gang65@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Wed Oct 7 20:17:06 2009 +0000
Add 1280x800 panel resolution support
git-svn-id: http://svn.openchrome.org/svn/trunk@802 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_mode.h b/src/via_mode.h
index 496af61..826df7f 100644
--- a/src/via_mode.h
+++ b/src/via_mode.h
@@ -136,7 +136,8 @@ static DisplayModeRec ViaPanelModes[] = {
{ MODEPREFIX("1152x864"), 81613, 1152, 1216, 1336, 1520, 0, 864, 864, 867, 895, 0, V_PHSYNC | V_PVSYNC, MODESUFFIX },
{ MODEPREFIX("1280x768"), 81135, 1280, 1328, 1440, 1688, 0, 768, 770, 776, 802, 0, V_PHSYNC | V_NVSYNC, MODESUFFIX },
{ MODEPREFIX("1280x720"), 74600, 1280, 1341, 1474, 1688, 0, 720, 721, 724, 746, 0, V_NHSYNC | V_PVSYNC, MODESUFFIX },
- { MODEPREFIX("1200x900"), 57275, 1200, 1208, 1216, 1240, 0, 900, 905, 908, 912, 0, V_NHSYNC | V_NVSYNC, MODESUFFIX },
+ { MODEPREFIX("1280x800"), 83500, 1280, 1352, 1480, 1680, 0, 800, 803, 809, 831, 0, V_NHSYNC | V_PVSYNC, MODESUFFIX },
+ { MODEPREFIX("1200x900"), 57275, 1200, 1208, 1216, 1240, 0, 900, 905, 908, 912, 0, V_NHSYNC | V_NVSYNC, MODESUFFIX },
{ MODEPREFIX("1280x960"), 108280, 1280, 1376, 1488, 1800, 0, 960, 960, 963, 1000, 0, V_PHSYNC | V_PVSYNC, MODESUFFIX },
{ MODEPREFIX("1280x1024"), 108280, 1280, 1328, 1440, 1688, 0, 1024, 1024, 1027, 1066, 0, V_PHSYNC | V_PVSYNC, MODESUFFIX },
{ MODEPREFIX("1360x768"), 85500, 1360, 1392, 1712, 1744, 0, 768, 783, 791, 807, 0, V_PHSYNC | V_PVSYNC, MODESUFFIX },
commit a6a00d34c755fb05bfa39099b364ec4eec49bd28
Author: gang65 <gang65@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Wed Oct 7 20:14:04 2009 +0000
Add support for Twinhead H12V (P4M900)
git-svn-id: http://svn.openchrome.org/svn/trunk@801 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_id.c b/src/via_id.c
index 0b2eb6d..c961ee1 100644
--- a/src/via_id.c
+++ b/src/via_id.c
@@ -188,6 +188,7 @@ static struct ViaCardIdStruct ViaCardId[] = {
{"MSI VR321", VIA_P4M900, 0x1462, 0x3355, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
{"MSI P4M900M / P4M900M2-F/L", VIA_P4M900, 0x1462, 0x7255, VIA_DEVICE_CRT},
{"MSI P4M900M3-L", VIA_P4M900, 0x1462, 0x7387, VIA_DEVICE_CRT},
+ {"Twinhead H12V", VIA_P4M900, 0x14FF, 0xA00F, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
{"Everex NC1501/NC1503", VIA_P4M900, 0x1509, 0x1E30, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
{"Clevo M660SE", VIA_P4M900, 0x1558, 0x0664, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
{"Clevo M660SR", VIA_P4M900, 0x1558, 0x0669, VIA_DEVICE_CRT | VIA_DEVICE_LCD},
commit f39ff7e100c801f01097a72828eb2cc33db938f6
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Sat Oct 3 21:18:35 2009 +0000
update NEWS to prepare next release
git-svn-id: http://svn.openchrome.org/svn/trunk@800 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/NEWS b/NEWS
index eef3436..be21e57 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,72 @@
+openchrome 0.2.904 (XX/10/2009)- NOT YET RELEASED
+-------------------------------
+* New features :
+- Basic VX855 support.
+- VX800 support.
+- CX700, VX800 integrated TMDS support.
+- ARGB cursor support.
+- Panel modesetting code rework.
+
+* Bug fixes and enhancements :
+- Add checking of the initialization of the XFree86 framebuffer manager.
+- Save/restore ECK Clock Synthesizer.
+- Fix bug with panel autodetection.
+- Fixed problem with backlite (Ticket #308).
+- Better VT1625 chipset support.
+- Cursor support speedup.
+- Fix bug with wrong panel size (Ticket #301).
+- Remove build warnings and removed unused variables.
+- Unified variable names with RandR.
+- RandR initial support.
+- Updated manpage.
+- Add rotate upside-down and remove "Magic numbers".
+- Disable TMDS by default for now, output detection is not working properly.
+- Fix hardlock on resolution change.
+- Remove loader symbol lists.
+- XO-1.5 panel patch and dot clock fixup.
+- Switch on LVDS pads only for active channel.
+- Modify PLL generation and add VX855 support.
+- Fix cursor on secondary.
+- Fix a segfault on shutdown in ViaCleanupXVMC when there's no Xv.
+- Fix null pointer dereference in viaExaCheckComposite.
+- Clean up duplicate defines in via_regs.h.
+- Remove VT8454B LCD flag.
+- Make sure Chrome9 chipsets use software rasterizer for 3D.
+- Cosmetic fix for ViaMMIODisable.
+- Fix DFP pad mask.
+- Fix possible use of uninitialized variable (ticket#292).
+- Fix use of uninitialized variable.
+- Fix 2D engine init.
+- ViaPanelGetIndex: 1 bugfix and 1 cosmetic fix.
+- Set P4M890 primary FIFO.
+- Initialize CRTC before a mode switch. Fix bug #260.
+- Small bug fixes for XAA and EXA.
+- Minor bug fixes and tweaks.
+- Remove support for old EXA.
+- Fix 2d initialization for P4M900.
+- Temporary workaround for freedesktop bug 21563.
+- Adjust monitor values to handle preset LCD panel and TV modes.
+- Fix placement of pVia->FrameBufferBase to MapFB.
+- Clean up compile warnings.
+- Fix crash worked around by XaaNoImageWriteRect.
+- Restore panel backlight after VT switch (Ticket #29).
+- XvMC Unichrome Pro allocation fixes.
+- Add more needed modes to ViaPanelModes.
+- XvMC symbol visibility.
+- Properly link XvMC.
+- Hide overlay when video is invisible (ticket #266).
+- Allow FullHD with DDR400.
+- Add missing 640x480 PAL mode for VT1625.
+- Remove support for pre-xorg 7.1rc1 Xv ABI.
+
+* New boards :
+- Axper XP-M8VM800, Gigabyte M704 / RoverPC A700GQ, IBM AnyPlace Kiosk 3xx,
+ ECS P4M890T-M v2.0, Foxconn P4M800P7MB-RS2H, Haier A60-440256080BD,
+ Lenovo S12, Mitac 8624 (w/ P4M890), MSI K8M Neo-V (broken pci id),
+ MSI P4M900M3-L, Packard Bell Lima (ASUS MBP5VDZ-NVM), Samsung NC20,
+ Twinhead M6, VIA Epia M700. VIA Openbook, Sharp PC-AE30J.
+
+
openchrome 0.2.903 (19/08/2008)
-------------------------------
* Enhancements and bug fixes:
commit 46b388163a6acdb09e36b050f0a799f0b9a93862
Author: schlobinux <schlobinux@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Sat Oct 3 20:49:09 2009 +0000
properly enable MMIO and pci burst on all HW. Fixes #323
git-svn-id: http://svn.openchrome.org/svn/trunk@799 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_mode.c b/src/via_mode.c
index ecef5fb..504e2c5 100644
--- a/src/via_mode.c
+++ b/src/via_mode.c
@@ -1630,6 +1630,20 @@ ViaModeFirstCRTC(ScrnInfoPtr pScrn, DisplayModePtr mode)
pBIOSInfo->Clock = ViaModeDotClockTranslate(pScrn, mode);
pBIOSInfo->ClockExternal = FALSE;
+ /* Enable MMIO & PCI burst (1 wait state) */
+ switch (pVia->Chipset) {
+ case VIA_CLE266:
+ case VIA_KM400:
+ case VIA_K8M800:
+ case VIA_PM800:
+ case VIA_VM800:
+ ViaSeqMask(hwp, 0x1A, 0x06, 0x06);
+ break;
+ default:
+ ViaSeqMask(hwp, 0x1A, 0x0C, 0x0C);
+ break;
+ }
+
ViaSetPrimaryFIFO(pScrn, mode);
ViaSetPrimaryDotclock(pScrn, pBIOSInfo->Clock);
commit 3c4fdfda675e88d3530a227ede801e418b64a892
Author: gang65 <gang65@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Wed Sep 30 22:46:08 2009 +0000
Add checking of the initialization of the XFree86 framebuffer manager
git-svn-id: http://svn.openchrome.org/svn/trunk@798 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_accel.c b/src/via_accel.c
index 349a39b..ced428a 100644
--- a/src/via_accel.c
+++ b/src/via_accel.c
@@ -2364,8 +2364,28 @@ viaInitAccel(ScreenPtr pScreen)
VIAPtr pVia = VIAPTR(pScrn);
BoxRec AvailFBArea;
int maxY;
+ Bool ret;
Bool nPOTSupported;
+
+ /* HW Limitation are described here:
+ *
+ * 1. H2/H5/H6 2D source and destination:
+ * Pitch: (1 << 14) - 1 = 16383
+ * Dimension: (1 << 12) = 4096
+ * X, Y position: (1 << 12) - 1 = 4095.
+ *
+ * 2. H2 3D engine Render target:
+ * Pitch: (1 << 14) - 1 = 16383
+ * Clip Rectangle: 0 - 2047
+ *
+ * 3. H5/H6 3D engine Render target:
+ * Pitch: ((1 << 10) - 1)*32 = 32736
+ * Clip Rectangle: Color Window, 12bits. As Spec saied: 0 - 2048
+ * Scissor is the same as color window.
+ * */
+
+
pVia->VQStart = 0;
if (((pVia->FBFreeEnd - pVia->FBFreeStart) >= VIA_VQ_SIZE)
&& pVia->VQEnable) {
@@ -2435,6 +2455,10 @@ viaInitAccel(ScreenPtr pScreen)
return TRUE;
}
+ /*
+ * Finally, we set up the memory space available to the pixmap
+ * cache.
+ */
AvailFBArea.x1 = 0;
AvailFBArea.y1 = 0;
AvailFBArea.x2 = pScrn->displayWidth;
@@ -2457,10 +2481,25 @@ viaInitAccel(ScreenPtr pScreen)
if (maxY > 4 * pScrn->virtualY)
maxY = 4 * pScrn->virtualY;
+ /* Non-rotate */
+ AvailFBArea.y2 = maxY;
pVia->FBFreeStart = (maxY + 1) * pVia->Bpl;
- AvailFBArea.y2 = maxY;
- xf86InitFBManager(pScreen, &AvailFBArea);
+ /*
+ * Initialization of the XFree86 framebuffer manager is done via
+ * Bool xf86InitFBManager(ScreenPtr pScreen, BoxPtr FullBox)
+ * FullBox represents the area of the framebuffer that the manager
+ * is allowed to manage. This is typically a box with a width
+ * of pScrn->displayWidth and a height of as many lines as can be fit
+ * within the total video memory
+ */
+ ret = xf86InitFBManager(pScreen, &AvailFBArea);
+ if (ret != TRUE) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "VIAInitAccel xf86InitFBManager init failed\n");
+ }
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Frame Buffer From (%d,%d) To (%d,%d)\n",
+ AvailFBArea.x1, AvailFBArea.y1, AvailFBArea.x2, AvailFBArea.y2));
VIAInitLinear(pScreen);
pVia->driSize = (pVia->FBFreeEnd - pVia->FBFreeStart - pVia->Bpl);
diff --git a/src/via_driver.c b/src/via_driver.c
index d38cd84..1e9520b 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -173,7 +173,7 @@ static SymTabRec VIAChipsets[] = {
{VIA_KM400, "KM400/KN400"},
{VIA_K8M800, "K8M800/K8N800"},
{VIA_PM800, "PM800/PM880/CN400"},
- {VIA_VM800, "P4M800Pro/VN800/CN700"},
+ {VIA_VM800, "VM800/P4M800Pro/VN800/CN700"},
{VIA_K8M890, "K8M890/K8N890"},
{VIA_P4M900, "P4M900/VN896/CN896"},
{VIA_CX700, "CX700/VX700"},
commit 92a395675c4c17901de4e11a25dd6528d90e143d
Author: gang65 <gang65@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Sun Sep 27 13:50:33 2009 +0000
Initial AMD64 support
git-svn-id: http://svn.openchrome.org/svn/trunk@797 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_dri.c b/src/via_dri.c
index 1618a20..4786353 100644
--- a/src/via_dri.c
+++ b/src/via_dri.c
@@ -891,10 +891,17 @@ VIADRIKernelInit(ScreenPtr pScreen, VIAPtr pVia)
drmInfo.sarea_priv_offset = sizeof(XF86DRISAREARec);
drmInfo.fb_offset = pVia->frameBufferHandle;
drmInfo.mmio_offset = pVia->registerHandle;
- if (pVia->IsPCI)
+
+ if (pVia->IsPCI) {
drmInfo.agpAddr = (CARD32) NULL;
- else
- drmInfo.agpAddr = (CARD32) pVia->agpAddr;
+ } else {
+ /*For AMD64*/
+#ifndef __x86_64__
+ drmInfo.agpAddr = (CARD32)pVia->agpAddr;
+#else
+ drmInfo.agpAddr = (CARD64)pVia->agpAddr;
+#endif
+ }
if ((drmCommandWrite(pVia->drmFD, DRM_VIA_MAP_INIT, &drmInfo,
sizeof(drm_via_init_t))) < 0)
commit 20e5b44537cc301b2347d965f05c4dbbc23dc106
Author: gang65 <gang65@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Sat Sep 26 17:53:17 2009 +0000
Save/restore ECK Clock Synthesizer
git-svn-id: http://svn.openchrome.org/svn/trunk@796 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/ChangeLog b/ChangeLog
index c31af39..5d493e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-09-26 Bartosz Kosiorek <gang65@poczta.onet.pl>
+
+ Save/restore ECK Clock Synthesizer
+
+ * src/via_driver.c: (VIASave), (VIARestore):
+ * src/via_driver.h:
+
2009-09-21 Bartosz Kosiorek <gang65@poczta.onet.pl>
Fixed bug with panel autodetection using
diff --git a/src/via_driver.c b/src/via_driver.c
index 2233bbc..d38cd84 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -1921,23 +1921,30 @@ VIASave(ScrnInfoPtr pScrn)
Regs->SR2E = hwp->readSeq(hwp, 0x2E);
+ /*=* Save VCK, LCDCK and ECK *=*/
+ /* Primary Display (VCK) (description for Chipset >= K8M800): */
Regs->SR44 = hwp->readSeq(hwp, 0x44);
Regs->SR45 = hwp->readSeq(hwp, 0x45);
Regs->SR46 = hwp->readSeq(hwp, 0x46);
+
+ /* ECK Clock Synthesizer (description for Chipset >= K8M800): */
Regs->SR47 = hwp->readSeq(hwp, 0x47);
+ Regs->SR48 = hwp->readSeq(hwp, 0x48);
+ Regs->SR49 = hwp->readSeq(hwp, 0x49);
switch (pVia->Chipset) {
case VIA_CLE266:
case VIA_KM400:
break;
default:
+ /* Secondary Display (LCDCK): */
Regs->SR4A = hwp->readSeq(hwp, 0x4A);
Regs->SR4B = hwp->readSeq(hwp, 0x4B);
Regs->SR4C = hwp->readSeq(hwp, 0x4C);
break;
}
- DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Non-Primary Adapter! saving VGA_SR_MODE only !!\n"));
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Non-Primary Adapter! saving VGA_SR_MODE only !!\n"));
DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Crtc...\n"));
Regs->CR13 = hwp->readCrtc(hwp, 0x13);
@@ -2058,8 +2065,9 @@ VIARestore(ScrnInfoPtr pScrn)
hwp->writeSeq(hwp, 0x46, Regs->SR46);
/* ECK Clock Synthesizer: */
- // FIXME the registers SR48 and SR49 also need to be restored
hwp->writeSeq(hwp, 0x47, Regs->SR47);
+ hwp->writeSeq(hwp, 0x48, Regs->SR48);
+ hwp->writeSeq(hwp, 0x49, Regs->SR49);
switch (pVia->Chipset) {
case VIA_CLE266:
diff --git a/src/via_driver.h b/src/via_driver.h
index d90925e..2ac19cc 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -118,7 +118,7 @@ typedef struct {
CARD8 SR1F, SR20, SR21, SR22,SR23,SR24,SR25,SR26;
CARD8 SR27, SR28, SR29, SR2A,SR2B,SR2C,SR2D,SR2E;
CARD8 SR2F, SR30, SR31, SR32,SR33,SR34,SR40,SR41;
- CARD8 SR42, SR43, SR44, SR45,SR46,SR47;
+ CARD8 SR42, SR43, SR44, SR45,SR46,SR47,SR48,SR49;
CARD8 SR4A, SR4B, SR4C;
/* extended CRTC registers */
commit 3063076251cf7c16a317a4e483436fa38439a458
Author: gang65 <gang65@e8d65cb0-85f4-0310-8831-c60e2a5ce829>
Date: Sat Sep 26 12:36:17 2009 +0000
Add support duoview for VX855 and add more comment to ViaRestore function
git-svn-id: http://svn.openchrome.org/svn/trunk@795 e8d65cb0-85f4-0310-8831-c60e2a5ce829
diff --git a/src/via_cursor.c b/src/via_cursor.c
index 9b07af4..9333a18 100644
--- a/src/via_cursor.c
+++ b/src/via_cursor.c
@@ -297,6 +297,7 @@ viaShowCursor(ScrnInfoPtr pScrn)
case VIA_P4M890:
case VIA_P4M900:
case VIA_VX800:
+ case VIA_VX855:
if (pVia->pBIOSInfo->FirstCRTC->IsActive) {
VIASETREG(VIA_REG_HI_CONTROL0, 0x36000005);
}
@@ -336,6 +337,7 @@ viaHideCursor(ScrnInfoPtr pScrn)
case VIA_P4M890:
case VIA_P4M900:
case VIA_VX800:
+ case VIA_VX855:
if (pVia->pBIOSInfo->FirstCRTC->IsActive) {
temp = VIAGETREG(VIA_REG_HI_CONTROL0);
VIASETREG(VIA_REG_HI_CONTROL0, temp & 0xFFFFFFFA);
@@ -377,6 +379,7 @@ viaSetCursorPosition(ScrnInfoPtr pScrn, int x, int y)
case VIA_P4M890:
case VIA_P4M900:
case VIA_VX800:
+ case VIA_VX855:
if (pVia->pBIOSInfo->FirstCRTC->IsActive) {
VIASETREG(VIA_REG_HI_POS0, ((x << 16) | (y & 0x07ff)));
VIASETREG(VIA_REG_HI_OFFSET0, ((xoff << 16) | (yoff & 0x07ff)));
@@ -451,6 +454,7 @@ viaLoadCursorImage(ScrnInfoPtr pScrn, unsigned char *s)
case VIA_P4M890:
case VIA_P4M900:
case VIA_VX800:
+ case VIA_VX855:
if (pVia->pBIOSInfo->FirstCRTC->IsActive) {
temp = VIAGETREG(VIA_REG_HI_CONTROL0);
VIASETREG(VIA_REG_HI_CONTROL0, temp & 0xFFFFFFFE);
@@ -502,6 +506,7 @@ viaSetCursorColors(ScrnInfoPtr pScrn, int bg, int fg)
case VIA_P4M890:
case VIA_P4M900:
case VIA_VX800:
+ case VIA_VX855:
if (pVia->pBIOSInfo->FirstCRTC->IsActive) {
temp = VIAGETREG(VIA_REG_HI_CONTROL0);
VIASETREG(VIA_REG_HI_CONTROL0, temp & 0xFFFFFFFE);
diff --git a/src/via_driver.c b/src/via_driver.c
index 839d1ee..2233bbc 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -1883,11 +1883,15 @@ VIASave(ScrnInfoPtr pScrn)
vgaHWProtect(pScrn, TRUE);
- if (xf86IsPrimaryPci(pVia->PciInfo))
+ if (xf86IsPrimaryPci(pVia->PciInfo)) {
vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_ALL);
- else
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Primary Adapter! saving VGA_SR_ALL !!\n"));
+ } else {
vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_MODE);
-
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Non-Primary Adapter! saving VGA_SR_MODE only !!\n"));
+ }
/* Unlock and save extended registers. */
hwp->writeSeq(hwp, 0x10, 0x01);
@@ -1932,7 +1936,8 @@ VIASave(ScrnInfoPtr pScrn)
Regs->SR4C = hwp->readSeq(hwp, 0x4C);
break;
}
-
+ DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Non-Primary Adapter! saving VGA_SR_MODE only !!\n"));
DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Crtc...\n"));
Regs->CR13 = hwp->readCrtc(hwp, 0x13);
@@ -1999,10 +2004,15 @@ VIARestore(ScrnInfoPtr pScrn)
/* Unlock extended registers. */
hwp->writeSeq(hwp, 0x10, 0x01);
+ /*=* CR6A, CR6B, CR6C must be reset before restore
+ standard vga regs, or system will be hang. *=*/
+ /*=* TODO Check is reset IGA2 channel before disable IGA2 channel
+ is neccesery or it may cause some line garbage. *=*/
hwp->writeCrtc(hwp, 0x6A, 0x00);
hwp->writeCrtc(hwp, 0x6B, 0x00);
hwp->writeCrtc(hwp, 0x6C, 0x00);
-
+
+ /* Gamma must disable before restore pallette */
ViaGammaDisable(pScrn);
if (pBIOSInfo->TVI2CDev)
@@ -2040,10 +2050,15 @@ VIARestore(ScrnInfoPtr pScrn)
hwp->writeSeq(hwp, 0x2B, Regs->SR2B);
hwp->writeSeq(hwp, 0x2E, Regs->SR2E);
-
+
+ /*=* restore VCK, LCDCK and ECK *=*/
+ /* Primary Display (VCK): */
hwp->writeSeq(hwp, 0x44, Regs->SR44);
hwp->writeSeq(hwp, 0x45, Regs->SR45);
hwp->writeSeq(hwp, 0x46, Regs->SR46);
+
+ /* ECK Clock Synthesizer: */
+ // FIXME the registers SR48 and SR49 also need to be restored
hwp->writeSeq(hwp, 0x47, Regs->SR47);
switch (pVia->Chipset) {
@@ -2051,6 +2066,7 @@ VIARestore(ScrnInfoPtr pScrn)
case VIA_KM400:
break;
default:
+ /* Secondary Display (LCDCK): */
hwp->writeSeq(hwp, 0x4A, Regs->SR4A);
hwp->writeSeq(hwp, 0x4B, Regs->SR4B);
hwp->writeSeq(hwp, 0x4C, Regs->SR4C);
@@ -2061,11 +2077,19 @@ VIARestore(ScrnInfoPtr pScrn)
ViaSeqMask(hwp, 0x40, 0x06, 0x06);
ViaSeqMask(hwp, 0x40, 0x00, 0x06);
+ /* Integrated LVDS Mode Select */
hwp->writeCrtc(hwp, 0x13, Regs->CR13);
+
+ /*=* Restore CRTC controller extended regs: *=*/
+ /* Mode Control */
hwp->writeCrtc(hwp, 0x32, Regs->CR32);
+ /* HSYNCH Adjuster */
hwp->writeCrtc(hwp, 0x33, Regs->CR33);
+ /* Starting Address Overflow */
hwp->writeCrtc(hwp, 0x34, Regs->CR34);
+ /* Extended Overflow */
hwp->writeCrtc(hwp, 0x35, Regs->CR35);
+ /*Power Management 3 (Monitor Control) */
hwp->writeCrtc(hwp, 0x36, Regs->CR36);
hwp->writeCrtc(hwp, 0x48, Regs->CR48);
@@ -2076,11 +2100,12 @@ VIARestore(ScrnInfoPtr pScrn)
hwp->writeCrtc(hwp, i + 0x50, Regs->CRTCRegs[i]);
if (pVia->Chipset != VIA_CLE266 && pVia->Chipset != VIA_KM400) {
-
+ /* Scaling Initial values */
hwp->writeCrtc(hwp, 0xA0, Regs->CRA0);
hwp->writeCrtc(hwp, 0xA1, Regs->CRA1);
hwp->writeCrtc(hwp, 0xA2, Regs->CRA2);
+ /* LVDS Channels Functions Selection */
hwp->writeCrtc(hwp, 0x97, Regs->CR97);
hwp->writeCrtc(hwp, 0x99, Regs->CR99);
hwp->writeCrtc(hwp, 0x9B, Regs->CR9B);
@@ -2093,6 +2118,7 @@ VIARestore(ScrnInfoPtr pScrn)
case VIA_CX700:
case VIA_VX800:
case VIA_VX855:
+ /* LVDS Control Register */
hwp->writeCrtc(hwp, 0xD2, Regs->CRD2);
break;
}
@@ -2969,7 +2995,7 @@ VIAAdjustFrame(int scrnIndex, int x, int y, int flags)
VIAPtr pVia = VIAPTR(pScrn);
CARD32 Base;
- DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame\n"));
+ DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIAAdjustFrame %dx%d\n", x, y));
Reply to: