• Stephen Warren's avatar
    ASoC: Tegra I2S: Remove dependency on pdev->id · d4a2eca7
    Stephen Warren authored
    When devices are instantiated from device-tree, pdev->id is set to -1.
    Rework the driver so it doesn't depend on the ID.
    
    Tegra I2S instantiated from board files are configured with pdev
    name "tegra-i2s" and ID 0 or 1. The driver core then names the
    device "tegra-i2s.0" or "tegra-i2s.1". This is not changing.
    
    When a device is instantiated from device-tree, it will have
    pdev->name="" and pdev->id=-1. For this reason, the pdev->id value is
    not something we can rely on.
    
    This patch doesn't actually change any names though:
    
    When a device is instantiated from device-tree, the overall device name
    will be "${unit_address}.${node_name}". This causes issues such as
    clk_get() failures due to lack of a device-name match. To solve that,
    AUXDATA was invented, to force a specific device name, thus allowing
    dev_name() to return the same as the non-device-tree case. Tegra
    currently uses AUXDATA for the I2S controllers. Eventually, AUXDATA will
    go away, most likely replaced by phandle-based references within the
    device tree.
    Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    d4a2eca7
tegra_i2s.c 10.6 KB