01 Apr, 2009
3 commits
-
Remove Kconfig option for tridentfb acceleration. The acceleration can be
switched off with modules "noaccel" parameter.The acceleration for Trident chips was fixed in the 2.6.27 kernel.
Also, add CyberXXX and CyberBlade names to Kconfig option's name. It should
make easier to find the tridentfb choice for cyblafb driver's users. The
cyblafb driver has been replaced by the tridentfb driver.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
A tridentfb driver has all the functionality of the cyblafb driver without
the bugs of the latter.Changes to the tridentfb driver:
- FBINFO_READS_FAST added to the tridentfb. The cyblafb used a blitter
for scrolling which is faster than color expansion on Cyberblade
chipsets. The blitter is slower on a discrete Blade3D core. Use the
blitter for scrolling in the tridentfb only for integrated Blade3D
cores. Now, scrolling speed is about equal for the tridentfb and the
cyblafb.- a copyright notice addition is done on request of Jani Monoses (the
first author of the tridentfb).Tested on AGP Blade3D card and PCChips
M787CLR motherboard: VIA C3 cpu +
VT8601 north bridge (aka Cyberblade/i1).Signed-off-by: Krzysztof Helt
Cc: "Jani Monoses"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
We were leaking the cmap memory.
Signed-off-by: Andres Salomon
Acked-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
25 Jul, 2008
30 commits
-
The tridentfb driver should handle now all chipsets handled by the cyblafb
driver. Remove the message which claims that support will be removed.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Add imageblit acceleration for the Blade3D family of cores. The code is
based on code from the cyblafb driver.It is a step toward assimilating back the cyblafb driver into the
tridentfb driver. The cyblafb driver handles a subfamily of the Trident
Blade3d cores.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch fixes following problems:
- does not allow the m parameter to reach 0 as
it locks the graphics core (power cycle needed)
- for the newer chips (with new clock registers)
does not allow of n / m ratio below 4 as it gives
unstable image on the Blade3D core
- extend shift parameter (k) range to 2 for the newer
chips to cope with the n /m >= 4 limit at low resolution
(bandwidth) modes
- prefer modes with higher n / m ratio (higher k values)Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The Trident cards uses only 20-bit address of screen start in double
words. This allows addressing for only 4MB of video memory so check this.Also remove some redundant checks and assignments.
Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Fix depth setting for 8 bpp mode. The nice 224 color logo is not
displayed in 8 bpp depth without this fix.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch fixes two problems when acceleration is enabled:
- console switch from the Xorg locks up the computer
because the Xorg code locks some registers and disables
the mmio mode, so reenable these in the
tridentfb_set_par() and enable_mmio()- blacklist the Image975 chipset from setting PCI burst
mode. This helps with random lock ups of the
framebuffer on this chip. The same fix is probably
needed for the Xorg as well.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch contains general source code improvments:
- more simple functions are inline
- removes some meaningless output and the VERSION
string as it is no use
- eng_par is moved into the tridentfb_par
- removed small section of code for CyberBladeXPAi1
which is maybe right for only one resolution
and refresh rate and is probably redundant now
- other minor improvementsSigned-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch replaces deprecated constant FB_ACCELF_TEXT with
FBINFO_HWACCEL_DISABLED and adds constants for Trident families of
accelerators.The FBINFO_HWACCEL_DISABLED is correctly used so noaccel parameter works
now.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch fixes few issues related to timings and pixclock generation:
- disallow the pixclocks with numerator lower than
double denominator. This fixes display instability
for some modes.
- choose the pixelclock with the highest
numerator and denominator values. This improve
image quality and fixes display instability
for some modes.
- make interlaced modes work.
- set synchronization pulses polarization
correctly.
- horizontal synchronization timing are now
the same as generated by X.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch fixes two problems when acceleration is enabled:
- bit for bitblt direction is corrected
so scrolling down works as expected on 3DImage chips- initialization of acceleration is done later
this helps with initial console malfuntion (on Blade3D
chips) well documented here:
http://marc.info/?l=linux-fbdev-users&m=111386953124478&w=2Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch brings various acceleration improvements:
- set copyarea/fillrect for non-accelerated framebuffer (fix)
- remove 15 bpp depth handling to simplify code as it hardly
works (15 bpp handling was obviously missing in some switches)
- add fb_sync call and move waiting before accelerated function
to make acceleration more asynchronous to cpu (few % of speed
improvement)
- add cpu_relax() call in waiting loops
- make longer register names and name more registers
- move registers' definition to header
- general code improvements (shortening, simplifying)Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch adds acceleration for TGUI 9440 and 96xx chips. These chips
requires line length to be power of 2, so this is also changed.It also moves the troubling enable_mmio() function to its final
destination.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The TGUI 9440 requires doubling clock for 16bpp (hi-color) modes.
The patch also moves back enable_mmio() call to the right position.
Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Do not overwrite bits which contain memory type settings. It removes
noise pixels ("snow") on Blade3D and 3DImage chips.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Do some additional checks (like pixelclock versus ramdac speed) to
eliminate modes which do not work.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Initialize the pseudo_palette pointer properly. This fixes crash when
16bpp or 32bpp mode is selected.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Add support for TGUI 9440 chip.
Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Improved values for some registers after Xorg Trident driver. The main
problem was that values set by BIOS have been ignored.This patch completely remove random pixels ("snow") on the TGUI 9680 and
9440 (not supported yet by the driver). It does not help with the "snow"
on 3DImage and Blade3D cards.There is also small improvement in timing calculations (hblank start and
vblank start)Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Add missing release of allocated fb_info structure and move enable_mmio() to
fix error path.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
The Xorg code shows that Trident models 9660, 9680 and 9682 require a
different clock setting method. Add the second clock setting method for older
models.Signed-off-by: Krzysztof Helt
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Use the mmio outb function instead of direct one. The mmio registers are
already mapped (in the probe function).Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Fix broken timings calculations. This patch helps with following
problems:
- no left part of screen visible (up to half of the screen)
- monitor's frequencies are not the ones intended for selected modes
- if mode with resoultion y > 1024 is selected at least once then
all modes with y < 1024 are "out of sync" (no display)Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Make use of functions and constants from the vga.h header to compact the code
and make it more readable.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch moves acceleration hooks into the tridentfb_par structure and
removes global hooks.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch converts the is_blade() and is_xp() macros into local functions.
Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch moves flat panel indicator into tridentfb_par structure and removes
related global variables and macros.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch moves the chip_id into tridentfb_par structure and removes global
chip_id related constants.It also bumps version of the driver to 0.7.9
Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch moves pseudo palette int tridentfb_par structure and removes global
default_var.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch converts fb_info structure from global variable to allocatable one.
The global default_par is moved into function variable.
Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
This patch replaces macros with static functions and puts tridentfb_par
pointer as the first argument of these functions. These is a step toward
multihead support.Additionally, bogus TRIDENT_MMIO define is removed as the driver supports
graphics cards only through the mmio mode.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
13 May, 2008
2 commits
-
Improve clock calculation precision (to kHz from MHz) and removes parameter
field vclk from the tridentfb_par structure.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Remove redundant enable_mmio() call as the mmio mode is enabled in the probe
function earlier.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
28 Apr, 2008
2 commits
-
Add removed option "mode" to keep compatibility with existing setups. The
option is back for pm2fb, tridentfb and vt8623fb drivers.Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Change the option "mode_option" into "mode". It also adds __init attribute to
tridentfb_setup function.This is one step toward changing all fb drivers to have common "mode_option"
parameter.Signed-off-by: Krzysztof Helt
Cc: Alain Kalker
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
11 Mar, 2008
2 commits
-
Fix memory size multiplier during detection.
Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds -
Remove locking registers after they are unlocked during switch to/from MMIO
mode. This fixes regression on the Blade3D (Trident 9880) caused by the
previous patch (probe fixes).Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
05 Mar, 2008
1 commit
-
Correct error paths in probe function.
The probe function enables mmio mode so it important to disable the mmio
mode before exiting the probe function. Otherwise, the console is left in
unusable state (garbled fonts at least, lock up at worst).[akpm@linux-foundation.org: cleanups]
Signed-off-by: Krzysztof Helt
Cc: "Antonino A. Daplas"
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds