• Jeffrey Hugo's avatar
    bus: mhi: core: Fix channel device name conflict · f0e1d3ac
    Jeffrey Hugo authored
    When multiple instances of the same MHI product are present in a system,
    we can see a splat from mhi_create_devices() - "sysfs: cannot create
    duplicate filename".
    
    This is because the device names assigned to the MHI channel devices are
    non-unique.  They consist of the channel's name, and the channel's pipe
    id.  For identical products, each instance is going to have the same
    set of channel (both in name and pipe id).
    
    To fix this, we prepend the device name of the parent device that the
    MHI channels belong to.  Since different instances of the same product
    should have unique device names, this makes the MHI channel devices for
    each product also unique.
    
    Additionally, remove the pipe id from the MHI channel device name.  This
    is an internal detail to the MHI product that provides little value, and
    imposes too much device specific internal details to userspace.  It is
    expected that channel with a specific name (ie "SAHARA") has a specific
    client, and it does not matter what pipe id that channel is enumerated on.
    The pipe id is an internal detail between the MHI bus, and the hardware.
    The client is not expected to make decisions based on the pipe id, and to
    do so would require the client to have intimate knowledge of the hardware,
    which is inappropiate as it may violate the layering provided by the MHI
    bus.  The limitation of doing this is that each product may only have one
    instance of a channel by a unique name.  This limitation is appropriate
    given the usecases of MHI channels.
    Signed-off-by: default avatarJeffrey Hugo <jhugo@codeaurora.org>
    Reviewed-by: default avatarHemant Kumar <hemantk@codeaurora.org>
    Reviewed-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Signed-off-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
    Link: https://lore.kernel.org/r/20200430190555.32741-7-manivannan.sadhasivam@linaro.orgSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    f0e1d3ac
main.c 38.8 KB