31 Dec, 2008

2 commits

  • * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (407 commits)
    [ARM] pxafb: add support for overlay1 and overlay2 as framebuffer devices
    [ARM] pxafb: cleanup of the timing checking code
    [ARM] pxafb: cleanup of the color format manipulation code
    [ARM] pxafb: add palette format support for LCCR4_PAL_FOR_3
    [ARM] pxafb: add support for FBIOPAN_DISPLAY by dma braching
    [ARM] pxafb: allow pxafb_set_par() to start from arbitrary yoffset
    [ARM] pxafb: allow video memory size to be configurable
    [ARM] pxa: add document on the MFP design and how to use it
    [ARM] sa1100_wdt: don't assume CLOCK_TICK_RATE to be a constant
    [ARM] rtc-sa1100: don't assume CLOCK_TICK_RATE to be a constant
    [ARM] pxa/tavorevb: update board support (smartpanel LCD + keypad)
    [ARM] pxa: Update eseries defconfig
    [ARM] 5352/1: add w90p910-plat config file
    [ARM] s3c: S3C options should depend on PLAT_S3C
    [ARM] mv78xx0: implement GPIO and GPIO interrupt support
    [ARM] Kirkwood: implement GPIO and GPIO interrupt support
    [ARM] Orion: share GPIO IRQ handling code
    [ARM] Orion: share GPIO handling code
    [ARM] s3c: define __io using the typesafe version
    [ARM] S3C64XX: Ensure CPU_V6 is selected
    ...

    Linus Torvalds
     
  • * 'drm-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (37 commits)
    drm/i915: fix modeset devname allocation + agp init return check.
    drm/i915: Remove redundant test in error path.
    drm: Add a debug node for vblank state.
    drm: Avoid use-before-null-test on dev in drm_cleanup().
    drm/i915: Don't print to dmesg when taking signal during object_pin.
    drm: pin new and unpin old buffer when setting a mode.
    drm/i915: un-EXPORT and make 'intelfb_panic' static
    drm/i915: Delete unused, pointless i915_driver_firstopen.
    drm/i915: fix sparse warnings: returning void-valued expression
    drm/i915: fix sparse warnings: move 'extern' decls to header file
    drm/i915: fix sparse warnings: make symbols static
    drm/i915: fix sparse warnings: declare one-bit bitfield as unsigned
    drm/i915: Don't double-unpin buffers if we take a signal in evict_everything().
    drm/i915: Fix fbcon setup to align display pitch to 64b.
    drm/i915: Add missing userland definitions for gem init/execbuffer.
    i915/drm: provide compat defines for userspace for certain struct members.
    drm: drop DRM_IOCTL_MODE_REPLACEFB, add+remove works just as well.
    drm: sanitise drm modesetting API + remove unused hotplug
    drm: fix allowing master ioctls on non-master fds.
    drm/radeon: use locked rmmap to remove sarea mapping.
    ...

    Linus Torvalds
     

30 Dec, 2008

1 commit


29 Dec, 2008

15 commits

  • PXA27x and later processors support overlay1 and overlay2 on-top of the
    base framebuffer (although under-neath the base is also possible). They
    support palette and no-palette RGB formats, as well as YUV formats (only
    available on overlay2). These overlays have dedicated DMA channels and
    behave in a similar way as a framebuffer.

    This heavily simplified and re-structured work is based on the original
    pxafb_overlay.c (which is pending for mainline merge for a long time).

    The major problems with this pxafb_overlay.c are (if you are interested
    in the history):

    1. heavily redundant (the control logics for overlay1 and overlay2 are
    actually identical except for some small operations, which are now
    abstracted into a 'pxafb_layer_ops' structure)

    2. a lot of useless and un-tested code (two workarounds which are now
    fixed on mature silicons)

    3. cursorfb is actually useless, hardware cursor should not be used
    this way, and the code was actually un-tested for a long time.

    The code in this patch should be self-explanatory, I tried to add minimum
    comments. As said, this is basically simplified, there are several things
    still on the pending list:

    1. palette mode is un-supported and un-tested (although re-using the
    palette code of the base framebuffer is actually very easy now with
    previous clean-up patches)

    2. fb_pan_display for overlay(s) is un-supported

    3. the base framebuffer can actually be abstracted by 'pxafb_layer' as
    well, which will help further re-use of the code and keep a better
    and consistent structure. (This is the reason I named it 'pxafb_layer'
    instead of 'pxafb_overlay' or something alike)

    See Documentation/fb/pxafb.txt for additional usage information.

    Signed-off-by: Eric Miao
    Cc: Rodolfo Giometti
    Signed-off-by: Eric Miao

    Eric Miao
     
  • Signed-off-by: Eric Miao
    Signed-off-by: Eric Miao

    Eric Miao
     
  • 1. introduce var_to_depth() to calculate the color depth including the
    transparency bit

    2. the conversion from 'fb_var_screeninfo' to LCCR3 BPP bits can be re-
    used by overlays (in OVLxC1), thus an individual pxafb_var_to_bpp()
    has been separated out.

    3. pxafb_setmode() should really set the color bitfields correctly at
    begining, introduce a pxafb_set_pixfmt() for this

    4. allow user apps to specify color formats within fb_var_screeninfo,
    and checking of this in pxafb_check_var() has been simplified as
    below:

    a) pxafb_var_to_bpp() should pass - which means a basically correct
    bits_per_pixel and color depth setting
    b) the RGBT bitfields are then forced into supported values by
    pxafb_set_pixfmt()

    Signed-off-by: Eric Miao
    Signed-off-by: Eric Miao

    Eric Miao
     
  • Add the palette format support for LCCR4_PAL_FOR_3, and fix the
    issue of LCCR4 being never assigned.

    Also remove the useless pxafb_set_truecolor().

    Signed-off-by: Eric Miao
    Signed-off-by: Eric Miao

    Eric Miao
     
  • dma branching is enabled by extending the current setup_frame_dma()
    function to allow a 2nd set of frame/palette dma descriptors to be
    used.

    As a result, pxafb_dma_buff.dma_desc[], pxafb_dma_buff.pal_desc[]
    and pxafb_info.fdadr[] are doubled.

    This allows maximum re-use of the current dma setup code, although
    the pxafb_info.fdadr[xx] for FBRx register values looks a bit odd.

    Signed-off-by: Eric Miao
    Signed-off-by: Eric Miao

    Eric Miao
     
  • Note the var->yres_virtual is only re-calculated from the fix.smem_len
    when text mode acceleration is enabled (which is default), this is due
    to the issue as Russell suggested below:

    Previous experience of doing this with the X server and acornfb is that
    it causes all sorts of problems - it seems to force the X server into
    assuming that the framebuffer should be panned no matter what settings
    you ask it for.

    The recommended workaround (implemented in acornfb) is to only do these
    kinds of adjustments if text mode acceleration is enabled. IIRC, the X
    server should be disabling text mode acceleration when it maps the
    framebuffer. I seem to remember that there are X servers which forget
    to do that though.

    Signed-off-by: Eric Miao
    Signed-off-by: Eric Miao

    Eric Miao
     
  • The amount of video memory size is decided according to the following
    order:

    1. x x by default, which is the backward
    compatible way

    2. size specified in platform data

    3. size specified in module parameter 'options' string or specified in
    kernel boot command line (see updated Documentation/fb/pxafb.txt)

    And now since the memory is allocated from system memory, the pxafb_mmap
    can be removed and the default fb_mmap() should be working all right.

    Also, since we now have introduced the 'struct pxafb_dma_buff' for DMA
    descriptors and palettes, the allocation can be separated cleanly.

    NOTE: the LCD DMA actually supports chained transfer (i.e. page-based
    transfers), to simplify the logic and keep the performance (with less
    TLB misses when accessing from memory mapped user space), the memory
    is allocated by alloc_pages_*() to ensures it's physical contiguous.

    Signed-off-by: Eric Miao
    Signed-off-by: Eric Miao

    Eric Miao
     
  • Add mode setting support to the DRM layer.

    This is a fairly big chunk of work that allows DRM drivers to provide
    full output control and configuration capabilities to userspace. It was
    motivated by several factors:
    - the fb layer's APIs aren't suited for anything but simple
    configurations
    - coordination between the fb layer, DRM layer, and various userspace
    drivers is poor to non-existent (radeonfb excepted)
    - user level mode setting drivers makes displaying panic & oops
    messages more difficult
    - suspend/resume of graphics state is possible in many more
    configurations with kernel level support

    This commit just adds the core DRM part of the mode setting APIs.
    Driver specific commits using these new structure and APIs will follow.

    Co-authors: Jesse Barnes , Jakob Bornecrantz
    Contributors: Alan Hourihane , Maarten Maathuis

    Signed-off-by: Jesse Barnes
    Signed-off-by: Eric Anholt
    Signed-off-by: Dave Airlie

    Dave Airlie
     
  • Conflicts:
    arch/sparc64/kernel/idprom.c

    David S. Miller
     
  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (144 commits)
    powerpc/44x: Support 16K/64K base page sizes on 44x
    powerpc: Force memory size to be a multiple of PAGE_SIZE
    powerpc/32: Wire up the trampoline code for kdump
    powerpc/32: Add the ability for a classic ppc kernel to be loaded at 32M
    powerpc/32: Allow __ioremap on RAM addresses for kdump kernel
    powerpc/32: Setup OF properties for kdump
    powerpc/32/kdump: Implement crash_setup_regs() using ppc_save_regs()
    powerpc: Prepare xmon_save_regs for use with kdump
    powerpc: Remove default kexec/crash_kernel ops assignments
    powerpc: Make default kexec/crash_kernel ops implicit
    powerpc: Setup OF properties for ppc32 kexec
    powerpc/pseries: Fix cpu hotplug
    powerpc: Fix KVM build on ppc440
    powerpc/cell: add QPACE as a separate Cell platform
    powerpc/cell: fix build breakage with CONFIG_SPUFS disabled
    powerpc/mpc5200: fix error paths in PSC UART probe function
    powerpc/mpc5200: add rts/cts handling in PSC UART driver
    powerpc/mpc5200: Make PSC UART driver update serial errors counters
    powerpc/mpc5200: Remove obsolete code from mpc5200 MDIO driver
    powerpc/mpc5200: Add MDMA/UDMA support to MPC5200 ATA driver
    ...

    Fix trivial conflict in drivers/char/Makefile as per Paul's directions

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k: use the new byteorder headers
    fbcon: Protect free_irq() by MACH_IS_ATARI check
    fbcon: remove broken mac vbl handler
    m68k: fix trigraph ignored warning in setox.S
    macfb annotations and compiler warning fix
    m68k: mac baboon interrupt enable/disable
    m68k: machw.h cleanup
    m68k: Mac via cleanup and commentry
    m68k: Reinstate mac rtc

    Linus Torvalds
     
  • Add missing check for Atari in free_irq() call, which could cause problems on
    multi-platform m68k kernels.

    Reported-by: Brad Boyer
    Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     
  • Remove the Mac VBL interrupt code as it doesn't work properly and
    doesn't bring any benefit when fixed. Also remove unused
    DEFAULT_CURSOR_BLINK_RATE macro and irqres variable.

    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Add some __iomem annotations. Remove some volatile qualifiers to fix
    several compiler warnings: "passing arg 1 of `iounmap' discards qualifiers
    from pointer target type".

    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     
  • Remove some more cruft from machw.h and drop the #include where it isn't
    needed.

    Signed-off-by: Finn Thain
    Signed-off-by: Geert Uytterhoeven

    Finn Thain
     

24 Dec, 2008

1 commit


22 Dec, 2008

8 commits

  • This patch adds sh_mobile_lcdcfb deferred io support for SYS panels.

    The LCDC hardware block managed by the sh_mobile_lcdcfb driver supports
    RGB or SYS panel configurations. SYS panels come with an external display
    controller that is resposible for refreshing the actual LCD panel. RGB
    panels are controlled directly by the LCDC and they need to be refreshed
    by the LCDC hardware.

    In the case of SYS panels we can save some power by configuring the LCDC
    hardware block in one-shot mode. In this one-shot mode panel refresh is
    managed by software. This works well together with deferred io since it
    allows us to stop clocks for most of the time and only enable clocks when
    we actually want to trigger an update. When there is no fbdev activity
    the clocks are kept stopped which allows us to deep sleep.

    The refresh rate in deferred io mode is set using platform data. The same
    platform data can also be used to disable deferred io mode.

    As with other deferred io frame buffers user space code should use fsync()
    on the frame buffer device to trigger an update.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • Extend the deferred io code from only supporting vmalloc()ed frame
    buffer memory to support both vmalloc()ed and physically contiguous
    frame buffer memory.

    The sh_mobile_lcdcfb hardware does not support scatter gather so
    we need physically contiguous memory to back our frame buffer.

    Signed-off-by: Magnus Damm
    Acked-by: Jaya Kumar
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • Make sure the mmap callback is set to NULL in the deferred io
    cleanup function. This way we can enable and disable deferred
    io on the fly.

    Signed-off-by: Magnus Damm
    Acked-by: Jaya Kumar
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • If CONFIG_FB_DEFERRED_IO is set, but there are framebuffers
    registered that does not make use of deferred io, then fsync()
    on those framebuffers will result in a crash. Fix that.

    This is needed for sh_mobile_lcdcfb since we always enable
    deferred io at compile time but we may disable deferred io
    for some types of hardware configurations.

    Signed-off-by: Magnus Damm
    Acked-by: Jaya Kumar
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • Since the sh_mobile_lcdc hardware has the framebuffer(s) in system RAM,
    use FB_SYS instead of FB_CFB. Also hook in read and write helpers.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     
  • SH7720 and 7721 has IP of Frame Buffer same as SH7760.
    This driver can support these.

    Signed-off-by: Nobuhiro Iwamatsu
    Signed-off-by: Paul Mundt

    Nobuhiro Iwamatsu
     
  • The setting of the color palette was wrong, fixed it.
    And removed fb_setcmap, and added fb_setcolreg function.

    Signed-off-by: Nobuhiro Iwamatsu
    Signed-off-by: Paul Mundt

    Nobuhiro Iwamatsu
     
  • Add clock framework support to the lcdc driver and
    adjust the board specific code accordingly.

    Signed-off-by: Magnus Damm
    Signed-off-by: Paul Mundt

    Magnus Damm
     

21 Dec, 2008

1 commit

  • Currently, we never set _PAGE_COHERENT in the PTEs, we just OR it in
    in the hash code based on some CPU feature bit. We also manipulate
    _PAGE_NO_CACHE and _PAGE_GUARDED by hand in all sorts of places.

    This changes the logic so that instead, the PTE now contains
    _PAGE_COHERENT for all normal RAM pages thay have I = 0 on platforms
    that need it. The hash code clears it if the feature bit is not set.

    It also adds some clean accessors to setup various valid combinations
    of access flags and change various bits of code to use them instead.

    This should help having the PTE actually containing the bit
    combinations that we really want.

    I also removed _PAGE_GUARDED from _PAGE_BASE on 44x and instead
    set it explicitely from the TLB miss. I will ultimately remove it
    completely as it appears that it might not be needed after all
    but in the meantime, having it in the TLB miss makes things a
    lot easier.

    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Kumar Gala
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

18 Dec, 2008

1 commit


17 Dec, 2008

5 commits


16 Dec, 2008

6 commits