• Paul Mundt's avatar
    driver core: Early dev_name() support. · a636ee7f
    Paul Mundt authored
    Presently early platform devices suffer from the fact they are unable to
    use dev_xxx() calls early on due to dev_name() and others being
    unavailable at the time ->probe() is called.
    
    This implements early init_name construction from the matched name/id
    pair following the semantics of the late device/driver match. As a
    result, matched IDs (inclusive of requested ones) are preserved when the
    handoff from the early platform code happens at kobject initialization
    time.
    
    Since we still require kmalloc slabs to be available at this point, using
    kstrdup() for establishing the init_name works fine. This subsequently
    needs to be tested from dev_name() prior to the init_name being cleared
    by the driver core. We don't kfree() since others will already have a
    handle on the string long before the kobject initialization takes place.
    
    This is also needed to permit drivers to use the clock framework early,
    without having to manually construct their own device IDs from the match
    id/name pair locally (needed by the early console and timer code on sh
    and arm).
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    Acked-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    a636ee7f
platform.c 31.4 KB