08 Nov, 2011

2 commits

  • Resetting DISPC when a DISPC output is enabled causes the DSS to go into an
    inconsistent state. Thus if the bootloader has enabled a display, the hwmod code
    cannot reset the DISPC module just like that, but the outputs need to be
    disabled first.

    Add function dispc_disable_outputs() which disables all active overlay manager
    and ensure all frame transfers are completed.

    Modify omap_dss_reset() to call this function and clear DSS_CONTROL,
    DSS_SDI_CONTROL and DSS_PLL_CONTROL so that DSS is in a clean state when the
    DSS2 driver starts.

    This resolves the hang issue(caused by a L3 error during boot) seen on the
    beagle board C3, which has a factory bootloader that enables display. The issue
    is resolved with this patch.

    Thanks to Tomi and Sricharan for some additional testing.

    Acked-by: Tomi Valkeinen
    Tested-by: R, Sricharan
    Signed-off-by: Archit Taneja
    [paul@pwsan.com: restructured code, removed omap_{read,write}l(), removed
    cpu_is_omap*() calls and converted to dev_attr]
    Signed-off-by: Paul Walmsley

    Archit Taneja
     
  • This patch adds a custom DSS reset function used on OMAPs from OMAP2
    forward.

    The function doesn't actually do a reset, it only waits for the reset to
    complete. The reason for this is that on OMAP4 there is no possibility
    to do a SW reset, and on OMAP2/3 doing a SW reset for dss_core resets
    all the other DSS modules also, thus breaking the HWMOD model where
    every DSS module is handled independently.

    This fixes the problem with DSS reset on OMAP4, caused by the fact that
    because there's no SW reset for dss_core on OMAP4, the HWMOD framework
    doesn't try to reset dss_core and thus the DSS clocks were never enabled
    at the same time. This causes causes the HWMOD reset to fail for
    dss_dispc and dss_rfbi.

    The common reset function will also allow us to fix another problem in
    the future: before doing a reset we need to disable DSS outputs, which
    are in some cases enabled by the bootloader, as otherwise DSS HW seems
    to get more or less stuck, requiring a power reset to recover.

    Signed-off-by: Tomi Valkeinen
    [paul@pwsan.com: modified to build arch/arm/mach-omap2/display.o
    unconditionally to avoid an error when !CONFIG_OMAP2_DSS]
    Signed-off-by: Paul Walmsley

    Tomi Valkeinen
     

07 Nov, 2011

1 commit

  • * 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
    Revert "tracing: Include module.h in define_trace.h"
    irq: don't put module.h into irq.h for tracking irqgen modules.
    bluetooth: macroize two small inlines to avoid module.h
    ip_vs.h: fix implicit use of module_get/module_put from module.h
    nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
    include: replace linux/module.h with "struct module" wherever possible
    include: convert various register fcns to macros to avoid include chaining
    crypto.h: remove unused crypto_tfm_alg_modname() inline
    uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
    pm_runtime.h: explicitly requires notifier.h
    linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
    miscdevice.h: fix up implicit use of lists and types
    stop_machine.h: fix implicit use of smp.h for smp_processor_id
    of: fix implicit use of errno.h in include/linux/of.h
    of_platform.h: delete needless include
    acpi: remove module.h include from platform/aclinux.h
    miscdevice.h: delete unnecessary inclusion of module.h
    device_cgroup.h: delete needless include
    net: sch_generic remove redundant use of
    net: inet_timewait_sock doesnt need
    ...

    Fix up trivial conflicts (other header files, and removal of the ab3550 mfd driver) in
    - drivers/media/dvb/frontends/dibx000_common.c
    - drivers/media/video/{mt9m111.c,ov6650.c}
    - drivers/mfd/ab3550-core.c
    - include/linux/dmaengine.h

    Linus Torvalds
     

02 Nov, 2011

1 commit

  • * 'next/cleanup2' of git://git.linaro.org/people/arnd/arm-soc: (31 commits)
    ARM: OMAP: Warn if omap_ioremap is called before SoC detection
    ARM: OMAP: Move set_globals initialization to happen in init_early
    ARM: OMAP: Map SRAM later on with ioremap_exec()
    ARM: OMAP: Remove calls to SRAM allocations for framebuffer
    ARM: OMAP: Avoid cpu_is_omapxxxx usage until map_io is done
    ARM: OMAP1: Use generic map_io, init_early and init_irq
    arm/dts: OMAP3+: Add mpu, dsp and iva nodes
    arm/dts: OMAP4: Add a main ocp entry bound to l3-noc driver
    ARM: OMAP2+: l3-noc: Add support for device-tree
    ARM: OMAP2+: board-generic: Add i2c static init
    ARM: OMAP2+: board-generic: Add DT support to generic board
    arm/dts: Add support for OMAP3 Beagle board
    arm/dts: Add initial device tree support for OMAP3 SoC
    arm/dts: Add support for OMAP4 SDP board
    arm/dts: Add support for OMAP4 PandaBoard
    arm/dts: Add initial device tree support for OMAP4 SoC
    ARM: OMAP: omap_device: Add a method to build an omap_device from a DT node
    ARM: OMAP: omap_device: Add omap_device_[alloc|delete] for DT integration
    of: Add helpers to get one string in multiple strings property
    ARM: OMAP2+: devices: Remove all omap_device_pm_latency structures
    ...

    Fix up trivial header file conflicts in arch/arm/mach-omap2/board-generic.c

    Linus Torvalds
     

01 Nov, 2011

2 commits

  • To fix things like this:

    arch/arm/mach-omap2/usb-tusb6010.c:58: error: implicit declaration of function 'memset'
    arch/arm/kernel/leds.c:40: error: implicit declaration of function 'strcspn'
    arch/arm/kernel/leds.c:40: warning: incompatible implicit declaration of built-in function 'strcspn'
    arch/arm/kernel/leds.c:45: error: implicit declaration of function 'strncmp'
    arch/arm/kernel/leds.c:55: error: implicit declaration of function 'strlen'
    arch/arm/kernel/leds.c:55: warning: incompatible implicit declaration of built-in function 'strlen'
    arch/arm/mach-omap2/clockdomain.c:52: error: implicit declaration of function 'strcmp'

    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     
  • Omap cleanups conflicted with omap2_dss work in a nontrivial
    way, this is the most logical fixup.

    Conflicts:
    arch/arm/mach-omap2/board-2430sdp.c
    arch/arm/mach-omap2/board-4430sdp.c
    arch/arm/mach-omap2/board-apollon.c
    arch/arm/mach-omap2/board-h4.c
    arch/arm/mach-omap2/board-ldp.c
    arch/arm/mach-omap2/board-rx51.c

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     

05 Oct, 2011

1 commit


30 Sep, 2011

3 commits

  • Implement dsi_mux_pads for OMAP4. On enable the function enables the DSI
    pins and disables pull down. On disable the function disables the pins
    and enables pull down.

    It is unclear from the TRM whether the pull down is active if the pins
    are disabled, so this implementation may leave the pins floating when
    the DSI device is disabled.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • dsi_mux_pads() needs to know about the DSI HW module and the DSI lanes
    used. Split the function into two, enable and disable, which take
    necessary arguments, and add empty implementations for both.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     
  • Currently, there are 2 differently named platform devices generated for
    the 2 DSS DSI modules. In order to use the same driver, the dsi devices
    should be 2 instances of the same platform device.

    Change the platform device names from "omapdss_dsi1" and "omapdss_dsi2"
    to omapdss_dsi", and set the device indices to 0 and 1.

    Signed-off-by: Archit Taneja
    Acked-by: Tony Lindgren
    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     

16 Sep, 2011

1 commit

  • All of the device init and device driver interaction with omap_device
    is done using platform_device pointers. To make this more explicit,
    have omap_device return a platform_device pointer instead of an
    omap_device pointer.

    All current users of the omap_device pointer were only using it to get
    at the platform_device pointer or struct device pointer, so fixing all
    of the users was trivial.

    This also makes it more difficult for device init code to directly
    access members of struct omap_device, and allows for easier changing
    of omap_device internals.

    Cc: Paul Walmsley
    Signed-off-by: Kevin Hilman

    Kevin Hilman
     

25 Jul, 2011

4 commits


11 May, 2011

2 commits

  • Currently, omap_display_init() maintains arrays for hwmod name(oh_name) and the
    correspnding platform_device name(dev_name) needed by omap_device_build().
    A variable oh_count keeps a track of the number of devices to build from oh_name
    based on what omap revision it is.

    Clean this up by maintaining an array of omap_dss_hwmod_data struct which is
    defined for each omap revision as suggested by Tomi Valkeinen. Assign the
    corresponding omap_dss_hwmod_data array struct to the pointer curr_dss_hwmod in
    omap_display_init().

    Signed-off-by: Archit Taneja
    Signed-off-by: Tomi Valkeinen

    Archit Taneja
     
  • arch/arm/plat-omap/include/plat/display.h is an include for the OMAP DSS
    driver. A more logical place for it is in include/video.

    Signed-off-by: Tomi Valkeinen

    Tomi Valkeinen
     

11 Mar, 2011

3 commits


23 Feb, 2011

1 commit