02 Jul, 2009

1 commit


22 May, 2009

1 commit

  • This patch fixes the LCDC driver to avoid calling the
    function sh_mobile_lcdc_start_stop(priv, 0) unless the
    same function has been called before to start the LCDC
    hardware.

    Triggered when sh_mobile_lcdcfb.c failed to probe() due to
    missing MSTP clocks.

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

    Magnus Damm
     

27 Mar, 2009

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (61 commits)
    Dynamic debug: fix pr_fmt() build error
    Dynamic debug: allow simple quoting of words
    dynamic debug: update docs
    dynamic debug: combine dprintk and dynamic printk
    sysfs: fix some bin_vm_ops errors
    kobject: don't block for each kobject_uevent
    sysfs: only allow one scheduled removal callback per kobj
    Driver core: Fix device_move() vs. dpm list ordering, v2
    Driver core: some cleanup on drivers/base/sys.c
    Driver core: implement uevent suppress in kobject
    vcs: hook sysfs devices into object lifetime instead of "binding"
    driver core: fix passing platform_data
    driver core: move platform_data into platform_device
    sysfs: don't block indefinitely for unmapped files.
    driver core: move knode_bus into private structure
    driver core: move knode_driver into private structure
    driver core: move klist_children into private structure
    driver core: create a private portion of struct device
    driver core: remove polling for driver_probe_done(v5)
    sysfs: reference sysfs_dirent from sysfs inodes
    ...

    Fixed conflicts in drivers/sh/maple/maple.c manually

    Linus Torvalds
     

25 Mar, 2009

1 commit


16 Mar, 2009

1 commit

  • This patch adds suspend/resume support to the LCDC
    driver for SuperH Mobile - sh_mobile_lcdcfb.

    We simply stop hardware on suspend and start it again
    on resume. For RGB panels this is trivial, but for SYS
    panels in deferred io mode this becomes a bit more
    difficult - we need to wait for a frame end interrupt
    to make sure the clocks are balanced before stopping
    the actual hardware.

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

    Magnus Damm
     

10 Mar, 2009

1 commit

  • Fix deferred io cleanup patch in the sh_mobile_lcdcfb driver.

    If probe() fails early the sh_mobile_lcdc_stop() function will
    be called to clean up deferred io. This patch modifies the
    code to only call fb_deferred_io_cleanup() after deferred io
    has been initialized.

    With this patch applied we no longer hit BUG_ON() inside
    fb_deferred_io_cleanup(). Triggers on a Migo-R with the
    SYS QVGA panel board unmounted.

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

    Magnus Damm
     

22 Dec, 2008

3 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
     
  • 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
     
  • 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
     

20 Oct, 2008

2 commits


01 Oct, 2008

1 commit


11 Aug, 2008

1 commit


25 Jul, 2008

1 commit

  • This is the SuperH Mobile LCDC frame buffer driver V2, adding support for
    the LCDC block found in SuperH Mobile processors. The hardware supports
    up to two LCD panels per LCDC block, and both RGB and SYS interfaces can
    be used to hook up LCD panels/modules.

    The device driver is a regular platform driver, so LCD configuration and
    board specific hooks are passed to the driver using platform data. LCD
    modules using SYS interface often require special configuration using the
    SYS bus, and to solve this cleanly the driver provides SYS interface
    operations to the board code.

    Tested on sh7723 and sh7722 processors with a SYS16A QVGA panel and WVGA
    panels using RGB16 and RGB18 interfaces.

    Signed-off-by: Magnus Damm
    Acked-by: Paul Mundt
    Reviewed-by: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Magnus Damm