10 Oct, 2008

1 commit


19 Sep, 2008

1 commit


27 Aug, 2008

1 commit


13 Aug, 2008

2 commits

  • Specify how much physically continuous, DMA capable memory will be
    allocated at driver initialization time. This allow to create framebuffer
    device with larger virtual resolution. Combine with y-panning this can be
    used to implement double buffering acceleration method.

    Signed-off-by: Stanislaw Gruszka
    Acked-by: Haavard Skinnemoen
    Acked-by: Krzysztof Helt
    Cc: Nicolas Ferre
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     
  • Some chips appear to have the 2D engine hang during screen redraw,
    typically in a sequence of copyarea operations. This appear to be
    solved by adding a flush of the engine destination pixel cache
    and waiting for the engine to be idle before issuing the accel
    operation. The performance impact seems to be fairly small.

    Here is a trace on an RV370 (PCI device ID 0x5b64), it records the
    RBBM_STATUS register, then the source x/y, destination x/y, and
    width/height used for the copy:

    ----------------------------------------
    radeonfb_prim_copyarea: STATUS[00000140] src[210:70] dst[210:60] wh[a0:10]
    radeonfb_prim_copyarea: STATUS[00000140] src[2b8:70] dst[2b8:60] wh[88:10]
    radeonfb_prim_copyarea: STATUS[00000140] src[348:70] dst[348:60] wh[40:10]
    radeonfb_prim_copyarea: STATUS[80020140] src[390:70] dst[390:60] wh[88:10]
    radeonfb_prim_copyarea: STATUS[8002613f] src[40:80] dst[40:70] wh[28:10]
    radeonfb_prim_copyarea: STATUS[80026139] src[a8:80] dst[a8:70] wh[38:10]
    radeonfb_prim_copyarea: STATUS[80026133] src[e8:80] dst[e8:70] wh[80:10]
    radeonfb_prim_copyarea: STATUS[8002612d] src[170:80] dst[170:70] wh[30:10]
    radeonfb_prim_copyarea: STATUS[80026127] src[1a8:80] dst[1a8:70] wh[8:10]
    radeonfb_prim_copyarea: STATUS[80026121] src[1b8:80] dst[1b8:70] wh[88:10]
    radeonfb_prim_copyarea: STATUS[8002611b] src[248:80] dst[248:70] wh[68:10]
    ----------------------------------------

    When things are going fine the copies complete before the next ROP is
    even issued, but all of a sudden the 2D unit becomes active (bit 17 in
    RBBM_STATUS) and the FIFO retry (bit 13) and FIFO pipeline busy (bit
    14) are set as well. The FIFO begins to backup until it becomes full.

    What happens next is the radeon_fifo_wait() times out, and we access
    the chip illegally leading to a bus error which usually wedges the
    box. None of this makes it to the console screen, of course :-)
    radeon_fifo_wait() should be modified to reset the accelerator when
    this timeout happens instead of programming the chip anyways.

    ----------------------------------------
    radeonfb: FIFO Timeout !
    ERROR(0): Cheetah error trap taken afsr[0010080005000000] afar[000007f900800e40] TL1(0)
    ERROR(0): TPC[595114] TNPC[595118] O7[459788] TSTATE[11009601]
    ERROR(0): TPC
    ERROR(0): M_SYND(0), E_SYND(0), Privileged
    ERROR(0): Highest priority error (0000080000000000) "Bus error response from system bus"
    ERROR(0): D-cache idx[0] tag[0000000000000000] utag[0000000000000000] stag[0000000000000000]
    ERROR(0): D-cache data0[0000000000000000] data1[0000000000000000] data2[0000000000000000] data3[0000000000000000]
    ERROR(0): I-cache idx[0] tag[0000000000000000] utag[0000000000000000] stag[0000000000000000] u[0000000000000000] l[00\

    ERROR(0): I-cache INSN0[0000000000000000] INSN1[0000000000000000] INSN2[0000000000000000] INSN3[0000000000000000]
    ERROR(0): I-cache INSN4[0000000000000000] INSN5[0000000000000000] INSN6[0000000000000000] INSN7[0000000000000000]
    ERROR(0): E-cache idx[800e40] tag[000000000e049f4c]
    ERROR(0): E-cache data0[fffff8127d300180] data1[00000000004b5384] data2[0000000000000000] data3[0000000000000000]
    Ker:xnel panic - not syncing: Irrecoverable deferred error trap.
    ----------------------------------------

    Another quirk is that these copyarea calls will not happen until the
    first drivers/char/vt.c:redraw_screen() occurs. This will only happen
    if you 1) VC switch or 2) run "consolechars" or 3) unblank the screen.

    This seems to happen because until a redraw_screen() the screen scrolling
    method used by fbcon is not finalized yet. I've seen this with other fb
    drivers too.

    So if all you do is boot straight into X you will never see this bug on
    the relevant chips.

    Signed-off-by: David S. Miller
    Signed-off-by: Benjamin Herrenschmidt
    Cc: [2.6.25.x, 2.6.26.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Miller
     

06 Aug, 2008

1 commit

  • I have a new PCI-E radeon RV380 series card (PCI device ID 5b64) that
    hangs in my sparc64 boxes when the init scripts set the font. The problem
    goes away if I disable acceleration.

    I haven't figured out that bug yet, but along the way I found some
    corrections to make based upon some auditing.

    1) The RB2D_DC_FLUSH_ALL value used by the kernel fb driver
    and the XORG video driver differ. I've made the kernel
    match what XORG is using.

    2) In radeonfb_engine_reset() we have top-level code structure
    that roughly looks like:

    if (family is 300, 350, or V350)
    do this;
    else
    do that;
    ...
    if (family is NOT 300, OR
    family is NOT 350, OR
    family is NOT V350)
    do another thing;

    this last conditional makes no sense, is always true,
    and obviously was likely meant to be "family is NOT
    300, 350, or V350". So I've made the code match the
    intent.

    Signed-off-by: David S. Miller
    Acked-by: Benjamin Herrenschmidt
    Tested-by: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Miller
     

27 Jul, 2008

1 commit

  • This patch fixes the following compile error caused by commit
    d22579b837358cbef12ccca5adaf7e93ae09ab7a ("atmel_lcdfb: FIFO underflow
    management"):

    In file included from arch/avr32/boards/atstk1000/atstk1004.c:21:
    include/video/atmel_lcdc.h:40: error: field 'task' has incomplete type

    Signed-off-by: Adrian Bunk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     

25 Jul, 2008

12 commits

  • Remove the xtimings structure which only stored some values to be used
    later (mostly once). Calculate and use these values in places they are
    needed.

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

    Krzysztof Helt
     
  • Add a platform_lcd driver to allow boards with simple lcd power controls
    to register themselves easily.

    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Ben Dooks
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Provide support for the ILI9320 display controller chip which is found in
    many LCD displays. Included with this is support for an example LCD using
    this chip, the VGG2432A4.

    Signed-off-by: Ben Dooks
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ben Dooks
     
  • Manage atmel_lcdfb FIFO underflow

    Resetting the LCD and DMA allows to fix screen shifting after a FIFO
    underflow. It follows reset sequence from errata "LCD Screen Shifting
    After a Reset".

    Signed-off-by: Nicolas Ferre
    Cc: Haavard Skinnemoen
    Cc: Andrew Victor
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     
  • 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 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 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
     
  • 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
     
  • 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 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
     

28 Apr, 2008

4 commits

  • This patch splits hecubafb into the platform independent hecubafb and the
    platform dependent n411.

    Signed-off-by: Jaya Kumar
    Cc: "Antonino A. Daplas"
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jaya Kumar
     
  • This patch splits metronomefb into the platform independent metronomefb and
    the platform dependent am200epd.

    Signed-off-by: Jaya Kumar
    Cc: "Antonino A. Daplas"
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jaya Kumar
     
  • Adds different wiring mode for the LCD screen.

    The legacy atmel LCDC IP uses a non standard color mode, "BGR-555.1" instead
    "RGB-565". The major part of graphic stacks for embedded systems uses only
    "RGB-565". It is possible to swap LCD IOs instead of doing this bit swapping
    by software (See application note AT91SAM9 LCD Controller
    http://www.atmel.com/dyn/resources/prod_documents/doc6300.pdf)

    This wire swapping is done on the at91sam9rl-ek board (board code
    using this patch will come later).

    Signed-off-by: Nicolas Ferre
    Cc: David Brownell
    Cc: Hans-Christian Egtvedt
    Cc: Haavard Skinnemoen
    Cc: Andrew Victor
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nicolas Ferre
     
  • Teach atmel_lcdfb driver how to suspend/resume.

    Note that the backlight control should probably do more of the same stuff:
    turning off display power (more than just the backlight) and stopping the
    clocks (and dma to drive the no-longer-seen display). No point in wasting
    power to generate images that can't be observed, after all...

    Signed-off-by: David Brownell
    Signed-off-by: Nicolas Ferre
    Cc: Hans-Christian Egtvedt
    Cc: Haavard Skinnemoen
    Cc: Andrew Victor
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     

07 Feb, 2008

2 commits

  • On the sam9 EK boards, the LCD backlight is hooked up to a PWM output from
    the LCD controller. It's controlled by "contrast" registers though.

    This patch lets boards declare that they have that kind of backlight
    control. The driver can then export this control, letting screenblank and
    other operations actually take effect ... reducing the typically
    substantial power drain from the backlight.

    Note that it's not fully cooked
    - doesn't force backlight off during system suspend
    - the "power" and "blank" events may not be done right
    This should be easily added in the future.

    [nicolas.ferre@atmel.com: remove unneeded inline and rename functions]
    Signed-off-by: David Brownell
    Signed-off-by: Nicolas Ferre
    Cc: Andrew Victor
    Cc: Russell King
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Brownell
     
  • Setting a display timing parameter too high or too low may cause it to
    wrap around and thus become completely wrong. Validate the timings in
    atmel_lcdfb_check_var() and saturate to the highest or lowest possible
    value if necessary.

    Signed-off-by: Haavard Skinnemoen
    Cc: "Antonino A. Daplas"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Haavard Skinnemoen
     

23 Oct, 2007

1 commit


20 Oct, 2007

1 commit

  • define global BIT macro

    move all local BIT defines to the new globally define macro.

    Signed-off-by: Jiri Slaby
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Kumar Gala
    Cc: Dmitry Torokhov
    Cc: Jeff Garzik
    Cc: James Bottomley
    Cc: "Antonino A. Daplas"
    Cc: Russell King
    Acked-by: Ralf Baechle
    Cc: "John W. Linville"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jiri Slaby
     

17 Oct, 2007

13 commits

  • This patch adds hardware cursor support for the Permedia 2 chip.

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

    Krzysztof Helt
     
  • This patch fixes white spaces, redudant definitions and formating in the pm3fb
    header file.

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

    Krzysztof Helt
     
  • This patch adds hardware cursor support for Permedia 2V chips.
    The hardware cursor is disabled by default. It does not blink - the
    same issue is mentioned in the x11 driver.

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

    Krzysztof Helt
     
  • This patch adds mtrr support to the tdfxfb driver. It also kills one
    redundant include and initialization value.

    [akpm@linux-foundation.org: cleanups]
    Signed-off-by: Krzysztof Helt
    Signed-off-by: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Helt
     
  • This patch adds hardware cursor support to the tdfxfb driver.

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

    Krzysztof Helt
     
  • This patch improves source code mainly by killing redundant variable loads,
    reducing number of variables, simplifying conditional branches, etc.

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

    Krzysztof Helt
     
  • This patch contains coding style improvements to the tdfxfb driver (white
    spaces, indentations, long lines).

    It also moves fb_ops structure to the end of file, so forward declarations of
    ops functions are redundant.

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

    Krzysztof Helt
     
  • This contains the following changes:

    * Overlay surface alpha is configured separately from the overlay. This
    prevents display glitches (configure and fill the overlay first, set
    alpha to a visible value next)

    * Added an ioctl for configuring transparency of the Overlay and graphics
    planes. Blend mode, colorkey mode and global alpha mode are supported.

    * Added an ioctl for setting the plane order. The overlay plance can be placed
    over or
    under the graphics plane.

    * Added an ioctl for setting and reading chip registers, with mask.

    * Updated copyright for 2007

    [adaplas]
    * Coding style changes

    Signed-off-by: Raphael Assenat
    Signed-off-by: Antonino Daplas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Raphael Assenat
     
  • This patch:
    - initializes correctly the Permedia2V chip if it is not initialized by BIOS
    - puts back clock frequency for the ELSA WINNER board to 100kHz
    - fixes returned error values from setcolreg() function
    - uses more general classes for PCI ids

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

    Krzysztof Helt
     
  • This patch adds accelerated imageblit function.

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

    Krzysztof Helt
     
  • This patch removes constants named AAA_DISABLE with value 0. They are redudant
    and misleading ( a |= AAA_DISABLE does nothing and usually should be
    a &= ~AAA_ENABLE).

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

    Krzysztof Helt
     
  • This patch adds accelerated copyarea and partially accelerated imageblit
    functions. There is also fixed one register address in the pm3fb.h file.

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

    Krzysztof Helt
     
  • uvesafb is an enhanced version of vesafb. It uses a userspace helper (v86d)
    to execute calls to the x86 Video BIOS functions. The driver is not limited
    to any specific arch and whether it works on a given arch or not depends on
    that arch being supported by the userspace daemon. It has been tested on
    x86_32 and x86_64.

    A single BIOS call is represented by an instance of the uvesafb_ktask
    structure. This structure contains a buffer, a completion struct and a
    uvesafb_task substructure, containing the values of the x86 registers, a flags
    field and a field indicating the length of the buffer. Whenever a BIOS call
    is made in the driver, uvesafb_exec() builds a message using the uvesafb_task
    substructure and the contents of the buffer. This message is then assigned a
    random ack number and sent to the userspace daemon using the connector
    interface.

    The message's sequence number is used as an index for the uvfb_tasks array,
    which provides a mapping from the messages coming from userspace to the
    in-kernel uvesafb_ktask structs.

    The userspace daemon performs the requested operation and sends a reply in the
    form of a uvesafb_task struct and, optionally, a buffer. The seq and ack
    numbers in the reply should be exactly the same as those in the request.

    Each message from userspace is processed by uvesafb_cn_callback() and after
    passing a few sanity checks leads to the completion of a BIOS call request.

    Signed-off-by: Michal Januszewski
    Signed-off-by: Antonino Daplas
    Cc: Paul Mundt
    Cc: Paulo Marques
    Cc: "H. Peter Anvin"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Michal Januszewski