Skip to content

Upstream: probe_defer support breaks SOF BE overrides #565

Description

@plbossart

The recent upstream changes break the way SOF used to override the BE information to reuse machine drivers.

Test code: https://github.com/plbossart/sound/tree/fix/soc-core-probe-defer

With the upstream changes, the tests on the dailink platform names are done before we even have a chance to override them. Moving the call of soc_check_tplg_fes() from soc_instantiate_card() to soc_register_card() partly solves the problem. This can be shown with the PLB_FIX1 define. It is not clear if this solution is acceptable since there soc_register_card() is very minimal and plays with mutexes, we may need to do something less invasive

There is however a second problem where we seem to have a memory leak in snd_soc_init_platform(), the use of the legacy_plaform field makes no sense. this can be shown with the PLB_FIX2 define.

This can be tested with the Up2 pcm512 machine driver.

dmesg_fail.log
dmesg_plbfix1.log
dmesg_plbfix2.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Blocker bugs or important featuresupstream blockerMandatory for upstream

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions