• Tomi Valkeinen's avatar
    ARM: OMAP: HWMOD: Unify DSS resets for OMAPs · 13662dc5
    Tomi Valkeinen authored
    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: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    [paul@pwsan.com: modified to build arch/arm/mach-omap2/display.o
     unconditionally to avoid an error when !CONFIG_OMAP2_DSS]
    Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
    13662dc5
omap_hwmod_2xxx_3xxx_ipblock_data.c 7.38 KB