ALSA: usb-audio: Manage auto-pm of all bundled interfaces

Currently USB-audio driver manages the auto-pm of the primary
interface although a card may consist of multiple interfaces.
This may leave the secondary and other interfaces left running
unnecessarily after the auto-suspend.

This patch allows the driver managing the auto-pm of all bundled
interfaces per card.  The chip->pm_intf field is extended as
chip->intf[] to contain the array of assigned interfaces, and the
runtime-PM is performed to all those interfaces.

Tested-by: Macpaul Lin <macpaul.lin@mediatek.com>
Link: https://lore.kernel.org/r/20200605064117.28504-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Этот коммит содержится в:
Takashi Iwai
2020-06-05 08:41:17 +02:00
родитель 573fcbfd31
Коммит 88d8822d30
2 изменённых файлов: 33 добавлений и 6 удалений

Просмотреть файл

@@ -19,11 +19,13 @@
struct media_device;
struct media_intf_devnode;
#define MAX_CARD_INTERFACES 16
struct snd_usb_audio {
int index;
struct usb_device *dev;
struct snd_card *card;
struct usb_interface *pm_intf;
struct usb_interface *intf[MAX_CARD_INTERFACES];
u32 usb_id;
struct mutex mutex;
unsigned int system_suspend;