19 Aug, 2011

1 commit


30 Mar, 2010

1 commit

  • …it slab.h inclusion from percpu.h

    percpu.h is included by sched.h and module.h and thus ends up being
    included when building most .c files. percpu.h includes slab.h which
    in turn includes gfp.h making everything defined by the two files
    universally available and complicating inclusion dependencies.

    percpu.h -> slab.h dependency is about to be removed. Prepare for
    this change by updating users of gfp and slab facilities include those
    headers directly instead of assuming availability. As this conversion
    needs to touch large number of source files, the following script is
    used as the basis of conversion.

    http://userweb.kernel.org/~tj/misc/slabh-sweep.py

    The script does the followings.

    * Scan files for gfp and slab usages and update includes such that
    only the necessary includes are there. ie. if only gfp is used,
    gfp.h, if slab is used, slab.h.

    * When the script inserts a new include, it looks at the include
    blocks and try to put the new include such that its order conforms
    to its surrounding. It's put in the include block which contains
    core kernel includes, in the same order that the rest are ordered -
    alphabetical, Christmas tree, rev-Xmas-tree or at the end if there
    doesn't seem to be any matching order.

    * If the script can't find a place to put a new include (mostly
    because the file doesn't have fitting include block), it prints out
    an error message indicating which .h file needs to be added to the
    file.

    The conversion was done in the following steps.

    1. The initial automatic conversion of all .c files updated slightly
    over 4000 files, deleting around 700 includes and adding ~480 gfp.h
    and ~3000 slab.h inclusions. The script emitted errors for ~400
    files.

    2. Each error was manually checked. Some didn't need the inclusion,
    some needed manual addition while adding it to implementation .h or
    embedding .c file was more appropriate for others. This step added
    inclusions to around 150 files.

    3. The script was run again and the output was compared to the edits
    from #2 to make sure no file was left behind.

    4. Several build tests were done and a couple of problems were fixed.
    e.g. lib/decompress_*.c used malloc/free() wrappers around slab
    APIs requiring slab.h to be added manually.

    5. The script was run on all .h files but without automatically
    editing them as sprinkling gfp.h and slab.h inclusions around .h
    files could easily lead to inclusion dependency hell. Most gfp.h
    inclusion directives were ignored as stuff from gfp.h was usually
    wildly available and often used in preprocessor macros. Each
    slab.h inclusion directive was examined and added manually as
    necessary.

    6. percpu.h was updated not to include slab.h.

    7. Build test were done on the following configurations and failures
    were fixed. CONFIG_GCOV_KERNEL was turned off for all tests (as my
    distributed build env didn't work with gcov compiles) and a few
    more options had to be turned off depending on archs to make things
    build (like ipr on powerpc/64 which failed due to missing writeq).

    * x86 and x86_64 UP and SMP allmodconfig and a custom test config.
    * powerpc and powerpc64 SMP allmodconfig
    * sparc and sparc64 SMP allmodconfig
    * ia64 SMP allmodconfig
    * s390 SMP allmodconfig
    * alpha SMP allmodconfig
    * um on x86_64 SMP allmodconfig

    8. percpu.h modifications were reverted so that it could be applied as
    a separate patch and serve as bisection point.

    Given the fact that I had only a couple of failures from tests on step
    6, I'm fairly confident about the coverage of this conversion patch.
    If there is a breakage, it's likely to be something in one of the arch
    headers which should be easily discoverable easily on most builds of
    the specific arch.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Guess-its-ok-by: Christoph Lameter <cl@linux-foundation.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>

    Tejun Heo
     

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

1 commit