From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B8B12C433E0 for ; Tue, 2 Jun 2020 12:19:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8F5702068D for ; Tue, 2 Jun 2020 12:19:19 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="BB6Bogdy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727065AbgFBMTR (ORCPT ); Tue, 2 Jun 2020 08:19:17 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:63135 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1725958AbgFBMTQ (ORCPT ); Tue, 2 Jun 2020 08:19:16 -0400 X-UUID: 737c847b080d486a9aaa17344788bb94-20200602 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:To:From:Subject:Message-ID; bh=4h8fafRuCGTyIr/VCDupUiRjNszwNbo9UU/ty3wLFYg=; b=BB6BogdypJebp2/YbfZk+8Pm2yPYmPU/qlQJKVt+/SfUJ1srvKxmfwtE7f7uXs/psdx6V5ThbEQywmEhtk9NoIPq95235ujRejWTgtmH16QQ1vvQn24vKSUNG4WTODUbipnMbSJs1aDCjQs1nxZQKylOrDpc+AMO5fXCmefny+k=; X-UUID: 737c847b080d486a9aaa17344788bb94-20200602 Received: from mtkcas11.mediatek.inc [(172.21.101.40)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 241703546; Tue, 02 Jun 2020 20:19:10 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 2 Jun 2020 20:19:00 +0800 Received: from [172.21.77.33] (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 2 Jun 2020 20:19:00 +0800 Message-ID: <1591100342.23525.8.camel@mtkswgap22> Subject: Re: [PATCH] sound: usb: pcm: fix incorrect power state when playing sound after PM_AUTO suspend From: Macpaul Lin To: Jaroslav Kysela , Alexander Tsoy , Johan Hovold , Hui Wang , Szabolcs =?UTF-8?Q?Sz=C5=91ke?= , , , "Mediatek WSD Upstream" , Macpaul Lin , , , , Matthias Brugger , Takashi Iwai Date: Tue, 2 Jun 2020 20:19:02 +0800 In-Reply-To: <1591098821-17910-1-git-send-email-macpaul.lin@mediatek.com> References: <1591098821-17910-1-git-send-email-macpaul.lin@mediatek.com> Content-Type: text/plain; charset="ISO-8859-1" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: 12C71F8E9B7B63D4DF6727041F40092E70F89D4579A111C8EDEBB373FBDFE0332000:8 X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gVHVlLCAyMDIwLTA2LTAyIGF0IDE5OjUzICswODAwLCBNYWNwYXVsIExpbiB3cm90ZToNCj4g VGhpcyBwYXRjaCBmaXggaW5jb3JyZWN0IHBvd2VyIHN0YXRlIGNoYW5nZWQgYnkgdXNiX2F1ZGlv X3N1c3BlbmQoKQ0KPiB3aGVuIENPTkZJR19QTSBpcyBlbmFibGVkLg0KPiANCj4gQWZ0ZXIgcmVj ZWl2aW5nIHN1c3BlbmQgUE0gbWVzc2FnZSB3aXRoIGF1dG8gZmxhZywgdXNiX2F1ZGlvX3N1c3Bl bmQoKQ0KPiBjaGFuZ2UgY2FyZCdzIHBvd2VyIHN0YXRlIHRvIFNORFJWX0NUTF9QT1dFUl9EM2hv dC4gT25seSB3aGVuIHRoZSBvdGhlcg0KPiByZXN1bWUgUE0gbWVzc2FnZSB3aXRoIGF1dG8gZmxh ZyBjYW4gY2hhbmdlIHBvd2VyIHN0YXRlIHRvDQo+IFNORFJWX0NUTF9QT1dFUl9EMCBpbiBfX3Vz Yl9hdWRpb19yZXN1bWUoKS4NCj4gDQo+IEhvd2V2ZXIsIHdoZW4gc3lzdGVtIGlzIG5vdCB1bmRl ciBhdXRvIHN1c3BlbmQsIHJlc3VtZSBQTSBtZXNzYWdlIHdpdGgNCj4gYXV0byBmbGFnIG1pZ2h0 IG5vdCBiZSBhYmxlIHRvIHJlY2VpdmUgb24gdGltZSB3aGljaCBjYXVzZSB0aGUgcG93ZXINCj4g c3RhdGUgd2FzIGluY29ycmVjdC4gQXQgdGhpcyB0aW1lLCBpZiBhIHBsYXllciBzdGFydHMgdG8g cGxheSBzb3VuZCwNCj4gd2lsbCBjYXVzZSBzbmRfdXNiX3BjbV9vcGVuKCkgdG8gYWNjZXNzIHRo ZSBjYXJkIGFuZCBzZXR1cF9od19pbmZvKCkgd2lsbA0KPiByZXN1bWUgdGhlIGNhcmQuDQo+IA0K PiBCdXQgZXZlbiB0aGUgY2FyZCBpcyBiYWNrIHRvIHdvcmsgYW5kIGFsbCBmdW5jdGlvbiBub3Jt YWwsIHRoZSBwb3dlcg0KPiBzdGF0ZSBpcyBzdGlsbCBpbiBTTkRSVl9DVExfUE9XRVJfRDNob3Qu IFdoaWNoIGNhdXNlIHRoZSBpbmZpbml0ZSBsb29wDQo+IGhhcHBlbmVkIGluIHNuZF9wb3dlcl93 YWl0KCkgdG8gY2hlY2sgdGhlIHBvd2VyIHN0YXRlLiBUaHVzIHRoZQ0KPiBzdWNjZXNzaXZlIHNl dHRpbmcgaW9jdGwgY2Fubm90IGJlIHBhc3NlZCB0byBjYXJkLg0KPiANCj4gSGVuY2Ugd2Ugc3Vn Z2VzdCB0byBjaGFuZ2UgcG93ZXIgc3RhdGUgdG8gU05EUlZfQ1RMX1BPV0VSX0QwIHdoZW4gY2Fy ZA0KPiBoYXMgYmVlbiByZXN1bWVkIHN1Y2Nlc3NmdWxseS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6 IE1hY3BhdWwgTGluIDxtYWNwYXVsLmxpbkBtZWRpYXRlay5jb20+DQo+IC0tLQ0KPiAgc291bmQv dXNiL3BjbS5jIHwgICAxMSArKysrKysrKysrK2xpbnV4LXVzYkB2Z2VyLmtlcm5lbC5vcmcsDQo+ ICAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKQ0KPiANCj4gZGlmZiAtLWdpdCBhL3Nv dW5kL3VzYi9wY20uYyBiL3NvdW5kL3VzYi9wY20uYw0KPiBpbmRleCBhNGU0MDY0Li5kNjY3ZWNi IDEwMDY0NA0KPiAtLS0gYS9zb3VuZC91c2IvcGNtLmMNCj4gKysrIGIvc291bmQvdXNiL3BjbS5j DQo+IEBAIC0xMzIyLDYgKzEzMjIsMTcgQEAgc3RhdGljIGludCBzZXR1cF9od19pbmZvKHN0cnVj dCBzbmRfcGNtX3J1bnRpbWUgKnJ1bnRpbWUsIHN0cnVjdCBzbmRfdXNiX3N1YnN0cmUNCj4gIAlp ZiAoZXJyIDwgMCkNCj4gIAkJcmV0dXJuIGVycjsNCj4gIA0KPiArCS8qIGZpeCBpbmNvcnJlY3Qg cG93ZXIgc3RhdGUgd2hlbiByZXN1bWluZyBieSBvcGVuIGFuZCBsYXRlciBpb2N0bHMgKi8NCj4g KwlpZiAoSVNfRU5BQkxFRChDT05GSUdfUE0pICYmDQo+ICsJCXNuZF9wb3dlcl9nZXRfc3RhdGUo c3Vicy0+c3RyZWFtLT5jaGlwLT5jYXJkKQ0KPiArCQkJPT0gU05EUlZfQ1RMX1BPV0VSX0QzaG90 KSB7DQo+ICsJCS8qIHNldCB0aGVzZSB2YXJpYWJsZXMgZm9yIHBvd2VyIHN0YXRlIGNvcnJlY3Rp b24gKi8NCj4gKwkJc3Vicy0+c3RyZWFtLT5jaGlwLT5hdXRvc3VzcGVuZGVkID0gMDsNCj4gKwkJ c3Vicy0+c3RyZWFtLT5jaGlwLT5udW1fc3VzcGVuZGVkX2ludGYgPSAxOw0KPiArCQlkZXZfaW5m bygmc3Vicy0+ZGV2LT5kZXYsDQo+ICsJCQkiY2hhbmdlIHBvd2VyIHN0YXRlIGZyb20gRDNob3Qg dG8gRDBcbiIpOw0KPiArCX0NCj4gKw0KPiAgCXJldHVybiBzbmRfdXNiX2F1dG9yZXN1bWUoc3Vi cy0+c3RyZWFtLT5jaGlwKTsNCj4gIH0NCj4gIA0KDQpUaGUgaXNzdWUgd2FzIGZvdW5kIG9uIGtl cm5lbCA0LjE0IChhbmRyb2lkIHRyZWUpLiBUaGUgdGVzdCBpcyB0byBhZGQNCmRlYnVnIGxvZyBp biBzb3VuZC9jb3JlL2luaXQuYyB0byBjaGVjayBpZiB0aGUgcG93ZXIgc3RhdGUgaXMNClNORFJW X0NUTF9QT1dFUl9EM2hvdC4NCg0KZGlmZiAtLWdpdCBhL3NvdW5kL2NvcmUvaW5pdC5jIGIvc291 bmQvY29yZS9pbml0LmMNCmluZGV4IGIwMmE5OTcuLmEwYmVlNzYgMTAwNjQ0DQotLS0gYS9zb3Vu ZC9jb3JlL2luaXQuYw0KKysrIGIvc291bmQvY29yZS9pbml0LmMNCkBAIC0xMDExLDYgKzEwMTEs OCBAQCBpbnQgc25kX3Bvd2VyX3dhaXQoc3RydWN0IHNuZF9jYXJkICpjYXJkLCB1bnNpZ25lZA0K aW50IHBvd2VyX3N0YXRlKQ0KIAkJaWYgKHNuZF9wb3dlcl9nZXRfc3RhdGUoY2FyZCkgPT0gcG93 ZXJfc3RhdGUpDQogCQkJYnJlYWs7DQogCQlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1VOSU5URVJS VVBUSUJMRSk7DQorCQlwcl9pbmZvKCIlcyBzbmRfcG93ZXJfZ2V0X3N0YXRlWyV4XVxuIiwgX19m dW5jX18sDQorCQkJc25kX3Bvd2VyX2dldF9zdGF0ZShjYXJkKSk7DQogCQlzY2hlZHVsZV90aW1l b3V0KDMwICogSFopOw0KIAl9DQogCXJlbW92ZV93YWl0X3F1ZXVlKCZjYXJkLT5wb3dlcl9zbGVl cCwgJndhaXQpOw0KDQpBZnRlciBhcHBsaWVkIGEgd29yayBhcm91bmQgYnkgZm9yY2luZyB0aGUg cG93ZXIgc3RhdGUsIHBjbSByZWxhdGVkDQppb2N0bCBhbmQgcGFyYW1ldGVyIHNldHRpbmdzIGNh biBiZSBzZXQgdG8gdXNiIHNvdW5kIGNhcmQgY29ycmVjdGx5Lg0KT3RoZXJ3aXNlIGEgaW5maW5p dGUgbG9vcCB3aWxsIGhhcHBlbmVkIGluIHNuZF9wb3dlcl93YWl0KCkuDQoNCkhlcmUgaXMgdGhl IG9yaWdpbiB3b3JrIGFyb3VuZCBmb3IgdmVyaWZ5aW5nIHRoaXMgcG93ZXIgc3RhdGUgaXNzdWUg b24NCmtlcm5lbCA0LjE0Lg0KDQpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL3BjbS5jIGIvc291bmQv dXNiL3BjbS5jDQppbmRleCA5MzNhZGNkN2FmODEuLjlhY2Q1MGRkNzE1NSAxMDA2NDQNCi0tLSBh L3NvdW5kL3VzYi9wY20uYw0KKysrIGIvc291bmQvdXNiL3BjbS5jDQpAQCAtMTI3NCw2ICsxMjc0 LDE2IEBAIHN0YXRpYyBpbnQgc2V0dXBfaHdfaW5mbyhzdHJ1Y3Qgc25kX3BjbV9ydW50aW1lDQoq cnVudGltZSwgc3RydWN0IHNuZF91c2Jfc3Vic3RyZQ0KIAlpZiAoZXJyIDwgMCkNCiAJCXJldHVy biBlcnI7DQogDQorCS8qIGF2b2lkIGluY29ycmVjdCBwb3dlciBzdGF0ZSB3aGVuIGV4ZWN1dGlu ZyBJT0NUTCAqLw0KKwlpZiAoSVNfRU5BQkxFRChDT05GSUdfUE0pICYmDQorCQlzbmRfcG93ZXJf Z2V0X3N0YXRlKHN1YnMtPnN0cmVhbS0+Y2hpcC0+Y2FyZCkNCisJCQk9PSBTTkRSVl9DVExfUE9X RVJfRDNob3QpIHsNCisJCWRldl9pbmZvKCZzdWJzLT5kZXYtPmRldiwNCisJCQkiY2hhbmdlIHBv d2VyIHN0YXRlIGZyb20gRDNob3QgdG8gRDBcbiIpOw0KKwkJc25kX3Bvd2VyX2NoYW5nZV9zdGF0 ZShzdWJzLT5zdHJlYW0tPmNoaXAtPmNhcmQsDQorCQkJCQlTTkRSVl9DVExfUE9XRVJfRDApOw0K Kwl9DQorDQogCXBhcmFtX3BlcmlvZF90aW1lX2lmX25lZWRlZCA9IFNORFJWX1BDTV9IV19QQVJB TV9QRVJJT0RfVElNRTsNCiAJaWYgKHN1YnMtPnNwZWVkID09IFVTQl9TUEVFRF9GVUxMKQ0KIAkJ LyogZnVsbCBzcGVlZCBkZXZpY2VzIGhhdmUgZml4ZWQgZGF0YSBwYWNrZXQgaW50ZXJ2YWwgKi8N Cg0KSG93ZXZlciwgdGhlIHBhdGNoIEkndmUgc2VuZCBpcyBtZWFudCB0byBtYWtlIHN1cmUgdGhl IHBvd2VyIHN0YXRlIHdpbGwNCmJlIGNvcnJlY3RlZCBiZWZvcmUgc25kX3VzYl9hdXRvcmVzdW1l KCksIEl0IHNob3VsZCBiZSBhZGFwdCB0byBrZXJuZWwNCjQuMTQgYW5kIGxhdGVyLg0KDQpUaGFu a3MuDQpNYWNwYXVsIExpbg0KDQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C7BF9C433DF for ; Tue, 2 Jun 2020 12:19:40 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id A008320663 for ; Tue, 2 Jun 2020 12:19:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="uR0u4ynt"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="BB6Bogdy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A008320663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Z3yXasJBNWZ2YzRNZqRkD0c0WJ5XrQRqSgL0zHBCJAQ=; b=uR0u4yntZxcJqa Zw19Ej5FD8TdQepBZpHbLxiI04hkHHLafDjwJnkjOC2zBg3k6ZOE/JQBcFgl2uyEYVwdi6GMEbqm+ wqLWSqotwqB9AETB10c+2yrpSlfa8UTQcRePfPm3seKL+PTmwtCQmJ6JGkAhdz8y3ErkJXU1Mryz+ 3fqdKD+gIPGTCyz1TFC1c6+YA1xo5c1kdFuZ1affhRGanOxXzDnXByaFLmUNLTbkRmDFOV79lISVY cDszeo3MzSAgbfoAZVmGTGCOxvzr5qd5PfOAH3F4rAECOqP4j5xlIzG61O58YyAbR2ijNrL0Zv/bH 2vkBhiNR1D3iLH6b0d2g==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jg5tC-0005nt-2K; Tue, 02 Jun 2020 12:19:30 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jg5st-0005VK-0p; Tue, 02 Jun 2020 12:19:12 +0000 X-UUID: 20538f0663ef4e19a01fd01d07374fb6-20200602 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:To:From:Subject:Message-ID; bh=4h8fafRuCGTyIr/VCDupUiRjNszwNbo9UU/ty3wLFYg=; b=BB6BogdypJebp2/YbfZk+8Pm2yPYmPU/qlQJKVt+/SfUJ1srvKxmfwtE7f7uXs/psdx6V5ThbEQywmEhtk9NoIPq95235ujRejWTgtmH16QQ1vvQn24vKSUNG4WTODUbipnMbSJs1aDCjQs1nxZQKylOrDpc+AMO5fXCmefny+k=; X-UUID: 20538f0663ef4e19a01fd01d07374fb6-20200602 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 379828204; Tue, 02 Jun 2020 04:19:08 -0800 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 2 Jun 2020 05:19:03 -0700 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 2 Jun 2020 20:19:00 +0800 Received: from [172.21.77.33] (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 2 Jun 2020 20:19:00 +0800 Message-ID: <1591100342.23525.8.camel@mtkswgap22> Subject: Re: [PATCH] sound: usb: pcm: fix incorrect power state when playing sound after PM_AUTO suspend From: Macpaul Lin To: Jaroslav Kysela , Alexander Tsoy , Johan Hovold , Hui Wang , Szabolcs =?UTF-8?Q?Sz=C5=91ke?= , , , "Mediatek WSD Upstream" , Macpaul Lin , , , , Matthias Brugger , Takashi Iwai Date: Tue, 2 Jun 2020 20:19:02 +0800 In-Reply-To: <1591098821-17910-1-git-send-email-macpaul.lin@mediatek.com> References: <1591098821-17910-1-git-send-email-macpaul.lin@mediatek.com> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: 12C71F8E9B7B63D4DF6727041F40092E70F89D4579A111C8EDEBB373FBDFE0332000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200602_051911_079300_19A85C1E X-CRM114-Status: GOOD ( 21.86 ) X-BeenThere: linux-mediatek@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Linux-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org On Tue, 2020-06-02 at 19:53 +0800, Macpaul Lin wrote: > This patch fix incorrect power state changed by usb_audio_suspend() > when CONFIG_PM is enabled. > > After receiving suspend PM message with auto flag, usb_audio_suspend() > change card's power state to SNDRV_CTL_POWER_D3hot. Only when the other > resume PM message with auto flag can change power state to > SNDRV_CTL_POWER_D0 in __usb_audio_resume(). > > However, when system is not under auto suspend, resume PM message with > auto flag might not be able to receive on time which cause the power > state was incorrect. At this time, if a player starts to play sound, > will cause snd_usb_pcm_open() to access the card and setup_hw_info() will > resume the card. > > But even the card is back to work and all function normal, the power > state is still in SNDRV_CTL_POWER_D3hot. Which cause the infinite loop > happened in snd_power_wait() to check the power state. Thus the > successive setting ioctl cannot be passed to card. > > Hence we suggest to change power state to SNDRV_CTL_POWER_D0 when card > has been resumed successfully. > > Signed-off-by: Macpaul Lin > --- > sound/usb/pcm.c | 11 +++++++++++linux-usb@vger.kernel.org, > 1 file changed, 11 insertions(+) > > diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c > index a4e4064..d667ecb 100644 > --- a/sound/usb/pcm.c > +++ b/sound/usb/pcm.c > @@ -1322,6 +1322,17 @@ static int setup_hw_info(struct snd_pcm_runtime *runtime, struct snd_usb_substre > if (err < 0) > return err; > > + /* fix incorrect power state when resuming by open and later ioctls */ > + if (IS_ENABLED(CONFIG_PM) && > + snd_power_get_state(subs->stream->chip->card) > + == SNDRV_CTL_POWER_D3hot) { > + /* set these variables for power state correction */ > + subs->stream->chip->autosuspended = 0; > + subs->stream->chip->num_suspended_intf = 1; > + dev_info(&subs->dev->dev, > + "change power state from D3hot to D0\n"); > + } > + > return snd_usb_autoresume(subs->stream->chip); > } > The issue was found on kernel 4.14 (android tree). The test is to add debug log in sound/core/init.c to check if the power state is SNDRV_CTL_POWER_D3hot. diff --git a/sound/core/init.c b/sound/core/init.c index b02a997..a0bee76 100644 --- a/sound/core/init.c +++ b/sound/core/init.c @@ -1011,6 +1011,8 @@ int snd_power_wait(struct snd_card *card, unsigned int power_state) if (snd_power_get_state(card) == power_state) break; set_current_state(TASK_UNINTERRUPTIBLE); + pr_info("%s snd_power_get_state[%x]\n", __func__, + snd_power_get_state(card)); schedule_timeout(30 * HZ); } remove_wait_queue(&card->power_sleep, &wait); After applied a work around by forcing the power state, pcm related ioctl and parameter settings can be set to usb sound card correctly. Otherwise a infinite loop will happened in snd_power_wait(). Here is the origin work around for verifying this power state issue on kernel 4.14. diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index 933adcd7af81..9acd50dd7155 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -1274,6 +1274,16 @@ static int setup_hw_info(struct snd_pcm_runtime *runtime, struct snd_usb_substre if (err < 0) return err; + /* avoid incorrect power state when executing IOCTL */ + if (IS_ENABLED(CONFIG_PM) && + snd_power_get_state(subs->stream->chip->card) + == SNDRV_CTL_POWER_D3hot) { + dev_info(&subs->dev->dev, + "change power state from D3hot to D0\n"); + snd_power_change_state(subs->stream->chip->card, + SNDRV_CTL_POWER_D0); + } + param_period_time_if_needed = SNDRV_PCM_HW_PARAM_PERIOD_TIME; if (subs->speed == USB_SPEED_FULL) /* full speed devices have fixed data packet interval */ However, the patch I've send is meant to make sure the power state will be corrected before snd_usb_autoresume(), It should be adapt to kernel 4.14 and later. Thanks. Macpaul Lin _______________________________________________ Linux-mediatek mailing list Linux-mediatek@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-mediatek From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2F4A6C433DF for ; Tue, 2 Jun 2020 12:19:16 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DED0020663 for ; Tue, 2 Jun 2020 12:19:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="DbZPvAdK"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="BB6Bogdy" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DED0020663 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=b+iP44yz3tGRfHi4sbA+xYqAO90ypWgeB5NvyqRQDcg=; b=DbZPvAdKs+dZHF 8VjhlqVsof0eA+kKNkt/HPd+JfIF5BffnYMncvNfwi6Pi04QEojed8PwrUv+LBM5JGX9Rdx4drFSg o3/9obRfqhY4Zy6ffPNLc8QbgOTXWC/8v4EHN0QW6WyDOP3H50x5+qcSijPHII2t04Hn3mIzS1dF1 uCMoSGDiOu/X4W8u0TXkyf9tKiOPoX6qd3ctbt6nsAZTeKt1cY2KM+k7IsYCE864vHrOnBFeYvPRQ 7/ZSMmASnT7OffMzt/HcJOoCLtIrYHDBRPeLg7O7bJNX87LjkjGwCCy4sTANEYnwte11LZxCQGrum +1Dt61/TKMFr7SO03Svw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jg5sx-0005Xw-5m; Tue, 02 Jun 2020 12:19:15 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jg5st-0005VK-0p; Tue, 02 Jun 2020 12:19:12 +0000 X-UUID: 20538f0663ef4e19a01fd01d07374fb6-20200602 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:To:From:Subject:Message-ID; bh=4h8fafRuCGTyIr/VCDupUiRjNszwNbo9UU/ty3wLFYg=; b=BB6BogdypJebp2/YbfZk+8Pm2yPYmPU/qlQJKVt+/SfUJ1srvKxmfwtE7f7uXs/psdx6V5ThbEQywmEhtk9NoIPq95235ujRejWTgtmH16QQ1vvQn24vKSUNG4WTODUbipnMbSJs1aDCjQs1nxZQKylOrDpc+AMO5fXCmefny+k=; X-UUID: 20538f0663ef4e19a01fd01d07374fb6-20200602 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 379828204; Tue, 02 Jun 2020 04:19:08 -0800 Received: from MTKMBS01N2.mediatek.inc (172.21.101.79) by MTKMBS62N1.mediatek.inc (172.29.193.41) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 2 Jun 2020 05:19:03 -0700 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs01n2.mediatek.inc (172.21.101.79) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 2 Jun 2020 20:19:00 +0800 Received: from [172.21.77.33] (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 2 Jun 2020 20:19:00 +0800 Message-ID: <1591100342.23525.8.camel@mtkswgap22> Subject: Re: [PATCH] sound: usb: pcm: fix incorrect power state when playing sound after PM_AUTO suspend From: Macpaul Lin To: Jaroslav Kysela , Alexander Tsoy , Johan Hovold , Hui Wang , Szabolcs =?UTF-8?Q?Sz=C5=91ke?= , , , "Mediatek WSD Upstream" , Macpaul Lin , , , , Matthias Brugger , Takashi Iwai Date: Tue, 2 Jun 2020 20:19:02 +0800 In-Reply-To: <1591098821-17910-1-git-send-email-macpaul.lin@mediatek.com> References: <1591098821-17910-1-git-send-email-macpaul.lin@mediatek.com> X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: 12C71F8E9B7B63D4DF6727041F40092E70F89D4579A111C8EDEBB373FBDFE0332000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200602_051911_079300_19A85C1E X-CRM114-Status: GOOD ( 21.86 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, 2020-06-02 at 19:53 +0800, Macpaul Lin wrote: > This patch fix incorrect power state changed by usb_audio_suspend() > when CONFIG_PM is enabled. > > After receiving suspend PM message with auto flag, usb_audio_suspend() > change card's power state to SNDRV_CTL_POWER_D3hot. Only when the other > resume PM message with auto flag can change power state to > SNDRV_CTL_POWER_D0 in __usb_audio_resume(). > > However, when system is not under auto suspend, resume PM message with > auto flag might not be able to receive on time which cause the power > state was incorrect. At this time, if a player starts to play sound, > will cause snd_usb_pcm_open() to access the card and setup_hw_info() will > resume the card. > > But even the card is back to work and all function normal, the power > state is still in SNDRV_CTL_POWER_D3hot. Which cause the infinite loop > happened in snd_power_wait() to check the power state. Thus the > successive setting ioctl cannot be passed to card. > > Hence we suggest to change power state to SNDRV_CTL_POWER_D0 when card > has been resumed successfully. > > Signed-off-by: Macpaul Lin > --- > sound/usb/pcm.c | 11 +++++++++++linux-usb@vger.kernel.org, > 1 file changed, 11 insertions(+) > > diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c > index a4e4064..d667ecb 100644 > --- a/sound/usb/pcm.c > +++ b/sound/usb/pcm.c > @@ -1322,6 +1322,17 @@ static int setup_hw_info(struct snd_pcm_runtime *runtime, struct snd_usb_substre > if (err < 0) > return err; > > + /* fix incorrect power state when resuming by open and later ioctls */ > + if (IS_ENABLED(CONFIG_PM) && > + snd_power_get_state(subs->stream->chip->card) > + == SNDRV_CTL_POWER_D3hot) { > + /* set these variables for power state correction */ > + subs->stream->chip->autosuspended = 0; > + subs->stream->chip->num_suspended_intf = 1; > + dev_info(&subs->dev->dev, > + "change power state from D3hot to D0\n"); > + } > + > return snd_usb_autoresume(subs->stream->chip); > } > The issue was found on kernel 4.14 (android tree). The test is to add debug log in sound/core/init.c to check if the power state is SNDRV_CTL_POWER_D3hot. diff --git a/sound/core/init.c b/sound/core/init.c index b02a997..a0bee76 100644 --- a/sound/core/init.c +++ b/sound/core/init.c @@ -1011,6 +1011,8 @@ int snd_power_wait(struct snd_card *card, unsigned int power_state) if (snd_power_get_state(card) == power_state) break; set_current_state(TASK_UNINTERRUPTIBLE); + pr_info("%s snd_power_get_state[%x]\n", __func__, + snd_power_get_state(card)); schedule_timeout(30 * HZ); } remove_wait_queue(&card->power_sleep, &wait); After applied a work around by forcing the power state, pcm related ioctl and parameter settings can be set to usb sound card correctly. Otherwise a infinite loop will happened in snd_power_wait(). Here is the origin work around for verifying this power state issue on kernel 4.14. diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index 933adcd7af81..9acd50dd7155 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -1274,6 +1274,16 @@ static int setup_hw_info(struct snd_pcm_runtime *runtime, struct snd_usb_substre if (err < 0) return err; + /* avoid incorrect power state when executing IOCTL */ + if (IS_ENABLED(CONFIG_PM) && + snd_power_get_state(subs->stream->chip->card) + == SNDRV_CTL_POWER_D3hot) { + dev_info(&subs->dev->dev, + "change power state from D3hot to D0\n"); + snd_power_change_state(subs->stream->chip->card, + SNDRV_CTL_POWER_D0); + } + param_period_time_if_needed = SNDRV_PCM_HW_PARAM_PERIOD_TIME; if (subs->speed == USB_SPEED_FULL) /* full speed devices have fixed data packet interval */ However, the patch I've send is meant to make sure the power state will be corrected before snd_usb_autoresume(), It should be adapt to kernel 4.14 and later. Thanks. Macpaul Lin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel