• Tomi Valkeinen's avatar
    OMAPDSS: componentize omapdss · 736e60dd
    Tomi Valkeinen authored
    omapdss kernel module contains drivers for multiple devices, one for
    each DSS submodule. The probing we have at the moment is a mess, and
    doesn't give us proper deferred probing nor ensure that all the devices
    are probed before omapfb/omapdrm start using omapdss.
    
    This patch solves the mess by using the component system for DSS
    submodules.
    
    The changes to all DSS submodules (dispc, dpi, dsi, hdmi4/5, rfbi, sdi,
    venc) are the same: probe & remove functions are changed to bind &
    unbind, and new probe & remove functions are added which call
    component_add/del.
    
    The dss_core driver (dss.c) acts as a component master. Adding and
    matching the components is simple: all dss device's child devices are
    added as components.
    
    However, we do have some dependencies between the drivers. The order in
    which they should be probed is reflected by the list in core.c
    (dss_output_drv_reg_funcs). The drivers are registered in that order,
    which causes the components to be added in that order, which makes the
    components to be bound in that order. This feels a bit fragile, and we
    probably should improve the code to manage binds in random order.
    However, for now, this works fine.
    Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
    Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
    736e60dd
dss.c 27.2 KB