From patchwork Sat Feb 3 18:00:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasha Levin X-Patchwork-Id: 126787 Delivered-To: patch@linaro.org Received: by 10.46.124.24 with SMTP id x24csp650215ljc; Sat, 3 Feb 2018 10:03:39 -0800 (PST) X-Google-Smtp-Source: AH8x227Z4Se3FRfytz5ZqLvkAo2O3dqz/iKk44xFpnrN5Pwy5QaBUdb5jYmxZSVB95xuCM+lhojB X-Received: by 2002:a17:902:aa45:: with SMTP id c5-v6mr22976452plr.93.1517681019370; Sat, 03 Feb 2018 10:03:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517681019; cv=none; d=google.com; s=arc-20160816; b=xpwPwtaVz6aFFtdnqvqpSuvuJTTX+pZrx+yzeSo+3QRdYlWl/lQBP8RibNneCVKkSX UX0Hk+83+SDydubLqyParwBDtWWdCku2QzTQN5MVlmlB7duNAC9P8HP9tNUoNSrbRK+/ SGAXHgIGxKvoT1EnMVKAfRAXehv9FwA4jXZ/6ucu9uScbYKw6g4gF2zsUVo6CNSpzyng 8ARyDExERTWqv/ctRuogcDIudCURrJ28aZQHpWXFrE8I0WyMoRTe7FH4MoWSHpHI5ToW hZK6XVzUnj9njVWjkfuB884q7wRfeVvav5XixSBvLS+pox8Fy+771M8TwacpXw0+FXWl 56ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=0n+zupj31DccZlFUzpJxpaAGoUranR3qWJbgKC4qStQ=; b=OxVi9ZEWW3PrziUj4REQGLeM74jraPv6IEJfC7jhUMeYyjfgZ1tpbUVW9pK2uoVxV3 sjZThlXo67HeIL3RCmFjDdTTFYLWe6PFj2oZTJTImhquPfUZWNthrcj+vzeWDZ5ndFAL T+P3SsqmpypYuTeeiN8oEUOIKlIhtp8skBro4AViaGXXm9VTnqBfhGl5WHeYu+sZOlop WuyslvT9roWfq7DIfRMK14k4MU3Lbt5bNYNWqgZJ34Prev5xUfjDi7Z4xKft8tiQM1cd l1i0DQSY/AVhdB7RLBsUEYUrSxULkXNt1c9t0uarJryYSuu64C+hgLhaS75VpFD8rRqZ XdaA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=FliIBC98; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g8-v6si3961626plt.687.2018.02.03.10.03.39; Sat, 03 Feb 2018 10:03:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=FliIBC98; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753245AbeBCSDd (ORCPT + 10 others); Sat, 3 Feb 2018 13:03:33 -0500 Received: from mail-cys01nam02on0123.outbound.protection.outlook.com ([104.47.37.123]:2624 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753002AbeBCSB6 (ORCPT ); Sat, 3 Feb 2018 13:01:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=0n+zupj31DccZlFUzpJxpaAGoUranR3qWJbgKC4qStQ=; b=FliIBC98WoBKT3cC57V6QB2eaZMkAA7dx6ytT+Vw/Cji7GpG+yXwA9cnLeXAoAtZBKpqcIUDuKDn2zSR1nES+fnMoqafGty4GIrBQ/2sA0Oo48olUBFZLzCnnt7n+QASATN4Vcn0rWSobGlxb8KrfmT4RzcGI8q6UU+8RTYKnmc= Received: from BL0PR2101MB1027.namprd21.prod.outlook.com (52.132.20.161) by BL0PR2101MB1090.namprd21.prod.outlook.com (52.132.24.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.506.1; Sat, 3 Feb 2018 18:01:15 +0000 Received: from BL0PR2101MB1027.namprd21.prod.outlook.com ([fe80::a8da:b5d9:d710:9bf9]) by BL0PR2101MB1027.namprd21.prod.outlook.com ([fe80::a8da:b5d9:d710:9bf9%3]) with mapi id 15.20.0485.006; Sat, 3 Feb 2018 18:01:15 +0000 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: John Stultz , Laura Abbott , Sumit Semwal , Benjamin Gaignard , Archit Taneja , Greg KH , Daniel Vetter , Dmitry Shmidt , Todd Kjos , Amit Pundir , Sasha Levin Subject: [PATCH AUTOSEL for 4.14 031/110] staging: ion: Fix ion_cma_heap allocations Thread-Topic: [PATCH AUTOSEL for 4.14 031/110] staging: ion: Fix ion_cma_heap allocations Thread-Index: AQHTnRjovWuE6CKAiEOQ376bBqZwUg== Date: Sat, 3 Feb 2018 18:00:43 +0000 Message-ID: <20180203180015.29073-31-alexander.levin@microsoft.com> References: <20180203180015.29073-1-alexander.levin@microsoft.com> In-Reply-To: <20180203180015.29073-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BL0PR2101MB1090; 7:PcBSh/ULxOmZMAuapPcRHsIJNbY/6sofUboST+VoHd0bTgnpmajUUaE5XoCABKyE9iidD7wyUN1ugP+FwVSV5Klp42xgZPMi+u1+dltCouM+E4Sa2ECEYIU7wab+S6cDVZQktrmWHRxCV0JOoQyrhv+GvkWwE8IE2hR9Mv3RGnNqC176TKKrwbFsIyF6g4ZC0z05bS7BiRMI0UQIF/10gP2fntZHAcjZWrQGhIjrBy9PssEeHYJd68uH4VovkXtY x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: e7de90b7-d66a-4b5d-79bd-08d56b301e60 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(3008032)(2017052603307)(7193020); SRVR:BL0PR2101MB1090; x-ms-traffictypediagnostic: BL0PR2101MB1090: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(211936372134217)(153496737603132); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040501)(2401047)(5005006)(8121501046)(3002001)(10201501046)(3231101)(2400082)(944501161)(93006095)(93001095)(6055026)(61426038)(61427038)(6041288)(20161123562045)(20161123560045)(20161123558120)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:BL0PR2101MB1090; BCL:0; PCL:0; RULEID:; SRVR:BL0PR2101MB1090; x-forefront-prvs: 05724A8921 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(366004)(396003)(39380400002)(39860400002)(346002)(199004)(189003)(2900100001)(5660300001)(316002)(25786009)(4326008)(14454004)(2950100002)(478600001)(107886003)(72206003)(6666003)(22452003)(10290500003)(186003)(3660700001)(86612001)(76176011)(86362001)(53936002)(3280700002)(106356001)(6436002)(6486002)(59450400001)(81166006)(81156014)(2501003)(6506007)(97736004)(26005)(7736002)(6512007)(6346003)(102836004)(105586002)(68736007)(8936002)(5250100002)(305945005)(36756003)(1076002)(6116002)(3846002)(8676002)(110136005)(7416002)(66066001)(54906003)(2906002)(10090500001)(99286004)(22906009)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:BL0PR2101MB1090; H:BL0PR2101MB1027.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-message-info: EcW3cnj2cFuu0Bq6riNaKuDZGYV2eiVOtnd0wivwjAgS5VbKyZD9j7VnA1/m9cdK4c3dq2CL//dRCmcOqzQinA== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: e7de90b7-d66a-4b5d-79bd-08d56b301e60 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Feb 2018 18:00:43.6128 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR2101MB1090 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: John Stultz [ Upstream commit f292b9b28097d8fe870336108e91bd95a14294bf ] In trying to add support for drm_hwcomposer to HiKey, I've needed to utilize the ION CMA heap, and I've noticed problems with allocations on newer kernels failing. It seems back with 204f672255c2 ("ion: Use CMA APIs directly"), the ion_cma_heap code was modified to use the CMA API, but kept the arguments as buffer lengths rather then number of pages. This results in errors as we don't have enough pages in CMA to satisfy the exaggerated requests. This patch converts the ion_cma_heap CMA API usage to properly request pages. It also fixes a minor issue in the allocation where in the error path, the cma_release is called with the buffer->size value which hasn't yet been set. Cc: Laura Abbott Cc: Sumit Semwal Cc: Benjamin Gaignard Cc: Archit Taneja Cc: Greg KH Cc: Daniel Vetter Cc: Dmitry Shmidt Cc: Todd Kjos Cc: Amit Pundir Fixes: 204f672255c2 ("staging: android: ion: Use CMA APIs directly") Acked-by: Laura Abbott Signed-off-by: John Stultz Signed-off-by: Greg Kroah-Hartman Signed-off-by: Sasha Levin --- drivers/staging/android/ion/Kconfig | 2 +- drivers/staging/android/ion/ion_cma_heap.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) -- 2.11.0 diff --git a/drivers/staging/android/ion/Kconfig b/drivers/staging/android/ion/Kconfig index a517b2d29f1b..8f6494158d3d 100644 --- a/drivers/staging/android/ion/Kconfig +++ b/drivers/staging/android/ion/Kconfig @@ -37,7 +37,7 @@ config ION_CHUNK_HEAP config ION_CMA_HEAP bool "Ion CMA heap support" - depends on ION && CMA + depends on ION && DMA_CMA help Choose this option to enable CMA heaps with Ion. This heap is backed by the Contiguous Memory Allocator (CMA). If your system has these diff --git a/drivers/staging/android/ion/ion_cma_heap.c b/drivers/staging/android/ion/ion_cma_heap.c index dd5545d9990a..86196ffd2faf 100644 --- a/drivers/staging/android/ion/ion_cma_heap.c +++ b/drivers/staging/android/ion/ion_cma_heap.c @@ -39,9 +39,15 @@ static int ion_cma_allocate(struct ion_heap *heap, struct ion_buffer *buffer, struct ion_cma_heap *cma_heap = to_cma_heap(heap); struct sg_table *table; struct page *pages; + unsigned long size = PAGE_ALIGN(len); + unsigned long nr_pages = size >> PAGE_SHIFT; + unsigned long align = get_order(size); int ret; - pages = cma_alloc(cma_heap->cma, len, 0, GFP_KERNEL); + if (align > CONFIG_CMA_ALIGNMENT) + align = CONFIG_CMA_ALIGNMENT; + + pages = cma_alloc(cma_heap->cma, nr_pages, align, GFP_KERNEL); if (!pages) return -ENOMEM; @@ -53,7 +59,7 @@ static int ion_cma_allocate(struct ion_heap *heap, struct ion_buffer *buffer, if (ret) goto free_mem; - sg_set_page(table->sgl, pages, len, 0); + sg_set_page(table->sgl, pages, size, 0); buffer->priv_virt = pages; buffer->sg_table = table; @@ -62,7 +68,7 @@ static int ion_cma_allocate(struct ion_heap *heap, struct ion_buffer *buffer, free_mem: kfree(table); err: - cma_release(cma_heap->cma, pages, buffer->size); + cma_release(cma_heap->cma, pages, nr_pages); return -ENOMEM; } @@ -70,9 +76,10 @@ static void ion_cma_free(struct ion_buffer *buffer) { struct ion_cma_heap *cma_heap = to_cma_heap(buffer->heap); struct page *pages = buffer->priv_virt; + unsigned long nr_pages = PAGE_ALIGN(buffer->size) >> PAGE_SHIFT; /* release memory */ - cma_release(cma_heap->cma, pages, buffer->size); + cma_release(cma_heap->cma, pages, nr_pages); /* release sg table */ sg_free_table(buffer->sg_table); kfree(buffer->sg_table); From patchwork Sat Feb 3 18:01:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sasha Levin X-Patchwork-Id: 126791 Delivered-To: patch@linaro.org Received: by 10.46.124.24 with SMTP id x24csp666972ljc; Sat, 3 Feb 2018 10:34:22 -0800 (PST) X-Google-Smtp-Source: AH8x226vRZUcpkwAMPYUfy93nMWwc0JfZ60fsqrEw4MmWaIXGWZKr6RMPHzYqAW+UQYqbBU5FKpE X-Received: by 2002:a17:902:b104:: with SMTP id q4-v6mr8908500plr.143.1517682862773; Sat, 03 Feb 2018 10:34:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517682862; cv=none; d=google.com; s=arc-20160816; b=Mt/OA/AOskWa3tgDsnQ8pd5ppRPOOpfyDswf5uJioe9trSlT2odCIwhwcSbIi/cldd vZA4BcQ1hHsZj1FsHwsLKyZpBxSlFMK0puhEalVIW3I929ege16nc4BM317bDKraVuIb erYwstDKi9ZzpukUOuLmmlosqRTDf1Qdzo8WCW128pB6ntIBF3LVdaRmLxLViXSMvjoM +dwvUY8EJfgJkzkIB/vONamZ1Phy7F+cgCC2W3xQqqW/6DYhS1xOfxYQLoHbbawT3EeI NhVPqdO5b/W0tNynf/n54JeolVYUEH7AsGYJVnbDuLYu/xwfRGehn/6pQbWSW14SjkUZ OYPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=PreZyqpZiEzIF05CwckKGlikLTOqhmVHmJN1qFOcrks=; b=ZKFZxRZShsVwERoYsYeytSCQ3m9LeZxRwVnA1oEN2Moc67YhuDX8lbBoGPFMllQwNr O2h6IfrW0wsKSX8jVAJCB/CAW0UR4UkxiFVEWRe/2jADK+CmM4OJtDYxE+oqDcw5BOUk x6O0pgpn/qgvv+qNhb1hbCbgX4ix/pU7o6kmugNAI6UtFnqhFoW5QPL7UGRuvUHPr9LG suCuZjH6NNla96gNWMTITuY0BfhUPjQHUNFbZd/RnCJ+AHigaCNuN5A9e2/oNVIVME9p YAyFLf4JsHQdcrRLIU72a/y/vcsaxlY45yV9Lqc2aePivE5aK3O2aNkGedWFnyGew4pU mW4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=Inzqh1Cd; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l6si3252224pgp.5.2018.02.03.10.34.22; Sat, 03 Feb 2018 10:34:22 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=Inzqh1Cd; spf=pass (google.com: best guess record for domain of stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752884AbeBCSeV (ORCPT + 10 others); Sat, 3 Feb 2018 13:34:21 -0500 Received: from mail-bl2nam02on0109.outbound.protection.outlook.com ([104.47.38.109]:45293 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752839AbeBCSEX (ORCPT ); Sat, 3 Feb 2018 13:04:23 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=PreZyqpZiEzIF05CwckKGlikLTOqhmVHmJN1qFOcrks=; b=Inzqh1CdvkDjBxbNSNN3LDb9GY+2e3qr4vurC0CWXIN8NoVfC59tf34a4qbbutQCgj0CBKqBJSCuQ9cOUaCd25HNm7xMtQgli45pYrg/WAWHS9GKv9x/pbkMgoqPtmFRquoHtHDeyLwczfQQVLdC12M6XUCvmyitCrXdi1fRndM= Received: from BL0PR2101MB1027.namprd21.prod.outlook.com (52.132.20.161) by BL0PR2101MB1041.namprd21.prod.outlook.com (52.132.23.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.506.3; Sat, 3 Feb 2018 18:02:16 +0000 Received: from BL0PR2101MB1027.namprd21.prod.outlook.com ([fe80::a8da:b5d9:d710:9bf9]) by BL0PR2101MB1027.namprd21.prod.outlook.com ([fe80::a8da:b5d9:d710:9bf9%3]) with mapi id 15.20.0485.006; Sat, 3 Feb 2018 18:02:16 +0000 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: Loic Poulain , Kalle Valo , Sasha Levin Subject: [PATCH AUTOSEL for 4.14 090/110] wcn36xx: Fix dynamic power saving Thread-Topic: [PATCH AUTOSEL for 4.14 090/110] wcn36xx: Fix dynamic power saving Thread-Index: AQHTnRkCMuk4TolW7kKOkryyGwevHg== Date: Sat, 3 Feb 2018 18:01:26 +0000 Message-ID: <20180203180015.29073-90-alexander.levin@microsoft.com> References: <20180203180015.29073-1-alexander.levin@microsoft.com> In-Reply-To: <20180203180015.29073-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BL0PR2101MB1041; 6:e+w10NlXxhzRr1izK9lGvTCnQoxEVBkagEsFZi4o2lHYWbJopl5eeX/J/J5U+nCPgKWTzmbR5jg98QBel0Op+ugVb9nt7Gf6R/lt+trKuTbiKyyFox69L8EpnNy3AvIy8fVckwZ6ywK+5HQZdKG0/njXPiBgB2M5q0+QmBen4QuEZo+1ajC8Obbv6/VMMv89/wTwsz6d4+TXxnPqjCyx4n245KigaxQLFoc1z89V0YHLsoQ4+3lATlitDdrJbJSKRK8uwFXzvWbPmzjGaZX8CA5+PmhQnNgoreBgWpMTtqiTzxThEsdhi6CigZSvJO0/2FkJ7XzKxzv+EEBR+CQuPR+6IPkW37z7pwAfPxyTssZZabzZQqkt9TWyeueEmVUs; 5:CT1dEREZ/pbxuKif293n4CPWlfdN3t9davswjDrjoPgxy4ZDT67pDSX7eptTnglzahm2hxVw+bHlMkyXb9ntmAWcrDKmw2Rgi7WYdGlD1PwpozlHOiYAmASSw2OeqkH49S1S+8uBqcyUTNJurKfA8p09GllBU7/9sxF5RZaJVz8=; 24:eowqquIhaRcCM08q9PDP8K3Uw7fbOtB3Gqt9E7VwDDvEy7NSdABdtVUT9VTuuT45D2scO65cXiXi/jpza+5TFrWp98rfoohcXJHbR8DcnuY=; 7:NCEUsEbnh1KzLzwypX6bHyEyRQylEyxWh6NVaSgXOfRyj5OP4maXL7qitVX+cF9kT5v2nCQZ9Hln4Mh52p7U0EOpHESO8vdiCJdiItwvXo/DZhcu+B/1qz080g2g/ajojr3QDIAfee7083byZOHFQcdLTzLQUK/QHPn8nZg/Cvr5FOEUmDN9ThSocKsIctFeAUYIpzNXmm3Nh5ItORHKKEo+H37fLn86CHN3XLjr/jESqELRDp3WKc3tw6pYt1YM x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 15a7cb43-b265-4e0a-af51-08d56b304280 x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(5600026)(4604075)(3008032)(2017052603307)(7193020); SRVR:BL0PR2101MB1041; x-ms-traffictypediagnostic: BL0PR2101MB1041: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040501)(2401047)(5005006)(8121501046)(3231101)(2400082)(944501161)(93006095)(93001095)(3002001)(10201501046)(6055026)(61426038)(61427038)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123558120)(20161123562045)(20161123564045)(6072148)(201708071742011); SRVR:BL0PR2101MB1041; BCL:0; PCL:0; RULEID:; SRVR:BL0PR2101MB1041; x-forefront-prvs: 05724A8921 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39380400002)(396003)(366004)(39860400002)(376002)(346002)(189003)(199004)(2501003)(305945005)(3660700001)(5250100002)(81156014)(99286004)(81166006)(36756003)(7736002)(10290500003)(106356001)(53936002)(5660300001)(316002)(22452003)(8936002)(54906003)(110136005)(3280700002)(478600001)(72206003)(4326008)(25786009)(107886003)(102836004)(97736004)(76176011)(6666003)(66066001)(6506007)(2950100002)(2900100001)(68736007)(8676002)(6116002)(3846002)(186003)(1076002)(6346003)(105586002)(26005)(10090500001)(2906002)(6512007)(86612001)(14454004)(86362001)(6436002)(6486002)(22906009)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:BL0PR2101MB1041; H:BL0PR2101MB1027.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-message-info: z4quOP2W9MaPWRMBwnW9Pm8BLl6cf4s8z7H9S3sswLWpTstdinL6sOWYw+a4T/Rxq+B9VPwf0k32gWTtFaRZ7w== spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15a7cb43-b265-4e0a-af51-08d56b304280 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Feb 2018 18:01:26.0503 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR2101MB1041 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Loic Poulain [ Upstream commit 0856655a25476d4431005e39d606e349050066b0 ] Since driver does not report hardware dynamic power saving cap, this is up to the mac80211 to manage power saving timeout and state machine, using the ieee80211 config callback to report PS changes. This patch enables/disables PS mode according to the new configuration. Remove old behaviour enabling PS mode in a static way, this make the device unusable when power save is enabled since device is forced to PS regardless RX/TX traffic. Acked-by: Bjorn Andersson Signed-off-by: Loic Poulain Signed-off-by: Kalle Valo Signed-off-by: Sasha Levin --- drivers/net/wireless/ath/wcn36xx/main.c | 23 ++++++++++++----------- drivers/net/wireless/ath/wcn36xx/pmc.c | 6 ++++-- 2 files changed, 16 insertions(+), 13 deletions(-) -- 2.11.0 diff --git a/drivers/net/wireless/ath/wcn36xx/main.c b/drivers/net/wireless/ath/wcn36xx/main.c index b83f01d6e3dd..af37c19dbfd7 100644 --- a/drivers/net/wireless/ath/wcn36xx/main.c +++ b/drivers/net/wireless/ath/wcn36xx/main.c @@ -384,6 +384,18 @@ static int wcn36xx_config(struct ieee80211_hw *hw, u32 changed) } } + if (changed & IEEE80211_CONF_CHANGE_PS) { + list_for_each_entry(tmp, &wcn->vif_list, list) { + vif = wcn36xx_priv_to_vif(tmp); + if (hw->conf.flags & IEEE80211_CONF_PS) { + if (vif->bss_conf.ps) /* ps allowed ? */ + wcn36xx_pmc_enter_bmps_state(wcn, vif); + } else { + wcn36xx_pmc_exit_bmps_state(wcn, vif); + } + } + } + mutex_unlock(&wcn->conf_mutex); return 0; @@ -747,17 +759,6 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw, vif_priv->dtim_period = bss_conf->dtim_period; } - if (changed & BSS_CHANGED_PS) { - wcn36xx_dbg(WCN36XX_DBG_MAC, - "mac bss PS set %d\n", - bss_conf->ps); - if (bss_conf->ps) { - wcn36xx_pmc_enter_bmps_state(wcn, vif); - } else { - wcn36xx_pmc_exit_bmps_state(wcn, vif); - } - } - if (changed & BSS_CHANGED_BSSID) { wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss changed_bssid %pM\n", bss_conf->bssid); diff --git a/drivers/net/wireless/ath/wcn36xx/pmc.c b/drivers/net/wireless/ath/wcn36xx/pmc.c index 589fe5f70971..1976b80c235f 100644 --- a/drivers/net/wireless/ath/wcn36xx/pmc.c +++ b/drivers/net/wireless/ath/wcn36xx/pmc.c @@ -45,8 +45,10 @@ int wcn36xx_pmc_exit_bmps_state(struct wcn36xx *wcn, struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); if (WCN36XX_BMPS != vif_priv->pw_state) { - wcn36xx_err("Not in BMPS mode, no need to exit from BMPS mode!\n"); - return -EINVAL; + /* Unbalanced call or last BMPS enter failed */ + wcn36xx_dbg(WCN36XX_DBG_PMC, + "Not in BMPS mode, no need to exit\n"); + return -EALREADY; } wcn36xx_smd_exit_bmps(wcn, vif); vif_priv->pw_state = WCN36XX_FULL_POWER;