Commit 60677978 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] sisfb update

From: Thomas Winischhofer <thomas@winischhofer.net>

sisfb is simply broken in current 2.6.x.  This patch updates sisfb to the
current development version which no less than 11 months ahead of the version
in the kernel.

Updated includes

- many fixes (duh)

- support for new chipsets (661, 741, 760)

- support for new video bridges (301C, 302ELV)

- removal of all offending fp code (as discussed earlier this month)

- a lot of code clean-up (which is the main reason for its size)
parent 9f61b232
......@@ -673,26 +673,27 @@ config FB_ATY_XL_INIT
Say Y here to support booting a Rage XL without BIOS support.
config FB_SIS
tristate "SIS acceleration"
tristate "SiS acceleration"
depends on FB && PCI
help
This is the frame buffer device driver for the SiS 630 and 640 Super
Socket 7 UMA cards. Specs available at <http://www.sis.com.tw/>.
This is the frame buffer device driver for the SiS 300, 315 and
330 series VGA chipsets. Specs available at http://www.sis.com
To compile this driver as a module, choose M here; the module
will be called sisfb.
config FB_SIS_300
bool "SIS 630/540/730 support"
bool "SiS 300 series support"
depends on FB_SIS
help
This is the frame buffer device driver for the SiS 630 and related
Super Socket 7 UMA cards. Specs available at
<http://www.sis.com.tw/>.
Say Y here to support use of the SiS 300/305, 540, 630 and 730.
config FB_SIS_315
bool "SIS 315H/315 support"
bool "SiS 315/330 series support"
depends on FB_SIS
help
This is the frame buffer device driver for the SiS 315 graphics
card. Specs available at <http://www.sis.com.tw/>.
Say Y here to support use of the SiS 315 and 330 series
(315/H/PRO, 55x, 650, 651, 740, 330, 661, 741, 760).
config FB_NEOMAGIC
tristate "NeoMagic display support"
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -4,11 +4,24 @@
*
* 2D acceleration part
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the named License,
* or any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA
*
* Based on the X driver's sis300_accel.h which is
* Copyright Xavier Ducoin <x.ducoin@lectra.com>
* Copyright 2002 by Thomas Winischhofer, Vienna, Austria
* Copyright (C) 2001-2004 by Thomas Winischhofer, Vienna, Austria
* and sis310_accel.h which is
* Copyright 2002 by Thomas Winischhofer, Vienna, Austria
* Copyright (C) 2001-2004 by Thomas Winischhofer, Vienna, Austria
*
* Author: Thomas Winischhofer <thomas@winischhofer.net>:
* (see http://www.winischhofer.net/
......@@ -47,7 +60,7 @@
#define TRAPAZOID_FILL 0x00000005 /* Fill trapezoid */
#define TRANSPARENT_BITBLT 0x00000006 /* Transparent Blit */
/* Additional engine commands for 310/325 */
/* Additional engine commands for 315 */
#define ALPHA_BLEND 0x00000007 /* Alpha blend ? */
#define A3D_FUNCTION 0x00000008 /* 3D command ? */
#define CLEAR_Z_BUFFER 0x00000009 /* ? */
......@@ -90,11 +103,11 @@
#define NO_RESET_COUNTER 0x00400000
#define NO_LAST_PIXEL 0x00200000
/* Subfunctions for Color/Enhanced Color Expansion (310/325 only) */
/* Subfunctions for Color/Enhanced Color Expansion (315 only) */
#define COLOR_TO_MONO 0x00100000
#define AA_TEXT 0x00200000
/* Some general registers for 310/325 series */
/* Some general registers for 315 series */
#define SRC_ADDR 0x8200
#define SRC_PITCH 0x8204
#define AGP_BASE 0x8206 /* color-depth dependent value */
......@@ -326,7 +339,7 @@ int CmdQueLen;
/* ----------- SiS 310/325 series --------------- */
/* -------------- SiS 315 series --------------- */
/* Q_STATUS:
bit 31 = 1: All engines idle and all queues empty
......@@ -342,16 +355,27 @@ int CmdQueLen;
bits 7:0: 2D counter 1
Where is the command queue length (current amount of commands the queue
can accept) on the 310/325 series? (The current implementation is taken
from 300 series and certainly wrong...)
can accept) on the 315 series?
*/
/* TW: FIXME: CmdQueLen is... where....? */
/* We assume a length of 4 bytes per command; since 512K of
* of RAM are allocated, the number of commands is easily
* calculated (assuming that there is no 3D support yet)
* We calculate it very cautiously (128K only) and let the
* rest to the (never?)-to-come (?) 3D engine. (The 3D engine
* can use a similar technique, using the remaining 384K,
* hence a queue overflow is avoided)
* UPDATE: This technique causes a terrible system latency
* on integrated chipsets. Disable the queue handling for
* now.
*/
#define SiS310Idle \
{ \
while( (MMIO_IN16(ivideo.mmio_vbase, Q_STATUS+2) & 0x8000) != 0x8000){}; \
while( (MMIO_IN16(ivideo.mmio_vbase, Q_STATUS+2) & 0x8000) != 0x8000){}; \
CmdQueLen=MMIO_IN16(ivideo.mmio_vbase, Q_STATUS); \
CmdQueLen = 0; \
/*CmdQueLen = ((128 * 1024) / 4) - 64; */ \
}
#define SiS310SetupSRCBase(base) \
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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