01 Apr, 2009

1 commit


06 Feb, 2009

1 commit

  • Fix namespace violations by changing non-kconfig CONFIG_ names to CNFG_*.

    Fixes breakage in staging/, which adds a real CONFIG_PANEL.

    Signed-off-by: Randy Dunlap
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

11 Dec, 2008

1 commit

  • This reverts commit b1ee26bab14886350ba12a5c10cbc0696ac679bf, along with
    the "fixes" for it that all just caused problems:

    - c4c6fa9891f3d1bcaae4f39fb751d5302965b566 "radeonfb: fix problem with
    color expansion & alignment"

    - f3179748a157c21d44d929fd3779421ebfbeaa93 "radeonfb: Disable new color
    expand acceleration unless explicitely enabled"

    because even when disabled, it breaks for people. See

    http://bugzilla.kernel.org/show_bug.cgi?id=12191

    for the latest example.

    Acked-by: Benjamin Herrenschmidt
    Acked-by: David S. Miller
    Cc: Krzysztof Halasa
    Cc: James Cloos
    Cc: "Rafael J. Wysocki"
    Cc: Krzysztof Helt
    Cc: Jean-Luc Coulon
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

17 Oct, 2008

2 commits

  • Implement support for HW color expansion of 1bpp images, along with some
    improvements to the FIFO handling and other accel operations.

    The offset fixup code is now unnecessary as the fbcon core will call our
    set_par upon switch back from KD_GRAPHICS before anything else happens. I
    removed it as it would slow down accel operations.

    The fifo wait has been improved to avoid hitting the HW register as often,
    and the various accel ops are now performing better caching of register
    values.

    Overall, this improve accel performances. The imageblit acceleration does
    result in a small overall regression in performances on some machines (on
    the order of 5% on some x86), probably becaus the SW path provides a
    better bus utilisation, but I decided to ingnore that as the performances
    is still very good, and on the other hand, some machines such as some
    sparc64 get a 3 fold performance improvement.

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

    Benjamin Herrenschmidt
     
  • Fix a couple of incomplete tests of the chip families in the engine
    init/reset code and proper initialization of the destination cache mode.
    The result should better match what the latest X radeon driver does.

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

    Benjamin Herrenschmidt
     

13 Aug, 2008

1 commit

  • 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
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds