• T
    [PATCH] ALSA: Fix sysfs breakage · 7d2aae1e
    Takashi Iwai 提交于
    The recent change for a new sysfs tree with card* object breaks the
    /sys/class/sound tree if CONFIG_SYSFS_DEPRECATED is enabled.
    The device in each entry doesn't point the correct device object:
    
      /sys/class/sound
      ...
      |-- pcmC0D0c
      |   |-- dev
      |   |-- device -> ../../../class/sound/card0
      |   |-- pcm_class
      |   |-- power
      |   |   `-- wakeup
      |   |-- subsystem -> ../../../class/sound
      |   `-- uevent
    
    Also, this change breaks some drivers (like sound/arm/*) referring
    card->dev directly to obtain the device object for memory handling.
    
    This patch reverts the semantics of card->dev to the former version,
    which points to a real device object.  The card* object is stored in a
    new card->card_dev field, instead.  The device parent is chosen either
    card->dev or card->card_dev according to CONFIG_SYSFS_DEPRECATED to
    keep the tree compatibility.
    Also, card* isn't created if CONFIG_SYSFS_DEPRECATED is enabled.  The
    reason of card* object is a root of all beloing devices, and it makes
    little sense if each sound device points to the real device object
    directly.
    Signed-off-by: NTakashi Iwai <tiwai@suse.de>
    Acked-by: NMonty Montgomery <xiphmont@gmail.com>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
    7d2aae1e
sound.c 11.1 KB