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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Andres Salomon
     

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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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 improvements

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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=2

    Signed-off-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     
  • 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

    Krzysztof Helt
     

13 May, 2008

2 commits


28 Apr, 2008

2 commits


11 Mar, 2008

2 commits


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

    Krzysztof Helt