Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751990AbdFHV7A (ORCPT ); Thu, 8 Jun 2017 17:59:00 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:32997 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751923AbdFHV6m (ORCPT ); Thu, 8 Jun 2017 17:58:42 -0400 From: Yueyao Zhu To: Jiri Kosina , Benjamin Tissoires , Greg Kroah-Hartman , Jaroslav Kysela , Takashi Iwai Cc: linux-usb@vger.kernel.org, linux-input@vger.kernel.org, linux-kernel@vger.kernel.org, Andrew Chant , Badhri Jagan Sridharan , Dmitry Torokhov , Yueyao Zhu Subject: [PATCH 3/3] sound: usb: allow interfaces that the driver claims to autosuspend Date: Thu, 8 Jun 2017 14:58:28 -0700 Message-Id: <20170608215828.130455-4-yueyao.zhu@gmail.com> X-Mailer: git-send-email 2.13.0.506.g27d5fe0cd-goog In-Reply-To: <20170608215828.130455-1-yueyao.zhu@gmail.com> References: <20170608215828.130455-1-yueyao.zhu@gmail.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1394 Lines: 41 From: Yueyao Zhu Instead of calling usb_enable_autosuspend() to change the configuration of a USB device as an interface driver, enable autosuspend for every interfaces that the driver claims. Signed-off-by: Yueyao Zhu --- sound/usb/card.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/usb/card.c b/sound/usb/card.c index 6640277a725b..79bec2883740 100644 --- a/sound/usb/card.c +++ b/sound/usb/card.c @@ -184,6 +184,7 @@ static int snd_usb_create_stream(struct snd_usb_audio *chip, int ctrlif, int int return -EINVAL; } usb_driver_claim_interface(&usb_audio_driver, iface, (void *)-1L); + usb_allow_interface_autosuspend(iface); return 0; } @@ -206,6 +207,7 @@ static int snd_usb_create_stream(struct snd_usb_audio *chip, int ctrlif, int int if (! snd_usb_parse_audio_interface(chip, interface)) { usb_set_interface(dev, interface, 0); /* reset the current interface */ usb_driver_claim_interface(&usb_audio_driver, iface, (void *)-1L); + usb_allow_interface_autosuspend(iface); } return 0; @@ -618,6 +620,7 @@ static int usb_audio_probe(struct usb_interface *intf, usb_chip[chip->index] = chip; chip->num_interfaces++; usb_set_intfdata(intf, chip); + usb_allow_interface_autosuspend(intf); atomic_dec(&chip->active); mutex_unlock(®ister_mutex); return 0; -- 2.13.0.506.g27d5fe0cd-goog