From patchwork Wed Jul 12 11:14:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Brown X-Patchwork-Id: 119089 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a6b2:0:b0:3e4:2afc:c1 with SMTP id c18csp1079387vqm; Wed, 12 Jul 2023 04:30:01 -0700 (PDT) X-Google-Smtp-Source: APBJJlEDgfwUao78yDqc/LeEr6KuppPhTjQyTUv2WKSmKN3xYDMTYTH4GH/6sITlcd6OpHe+EDy0 X-Received: by 2002:a05:6808:210d:b0:3a3:6364:2b73 with SMTP id r13-20020a056808210d00b003a363642b73mr19707736oiw.52.1689161401490; Wed, 12 Jul 2023 04:30:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689161401; cv=none; d=google.com; s=arc-20160816; b=a+Mezog3ojddBVXRvijmilreRaqBhf+UqqYKjVAvFqI4Usk9VE57wkDizskx1PL943 esMsxhhD/mtpu0BasFXmj6qEGSPGFskUJXSSKOzUNoJEJk+pOLGu5WDghrWlnuRkt8Bl UqvBVeTTErcMW3j+Amfi1a5d2AassYb5ycZvWnVCSNNm5cy8qY4dTzf4l9fJ3i3egNUN KJLM2gWxtAe4/kTGcALuiJrmrmGNPyS1XCel5xYfrvWuU0jgntMbJKELDF/7kfP5pBok 2QMdz3oz7LlwxsdC1QaIt1QUOk4X4PF0r9pKlshuXGQWpqYZlO5Lgp+H0AtRXZTjcYZr nYQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=o03MdtRVHyT4wruO+zFOyGL1o795FiwAz2OefsxuwUQ=; fh=rCVLpxe3UmRePy6SHyKYIqGwxDAoVThMXGrKPCYeN2c=; b=wr8XZv2l8K3kcz6UH/0puFBZaC68YsiYRnF9vJ91sWE9gY2jD6W86wclBhjs0/CuAC NBFo44ixj3/HGpK6BrfWZPd9NyyXiEh/TnTit1hOptg49aKcwNgH1jVxghRbAdJrfC66 pR5NjdII4AhSb2SMm8NghPg2fIbskilvN7SHDouacX1sdp60CJasteSdDNdrLZFhuMlM qLPA1JA1jT9X62hNru/ywi2ejT7oyIB59CmIpJCzu+msAH/rJw4H2dNNyDFkOGomppNF IaFJ3SSIq/KeGNHU3S4y8p5KqeKslSJ4YqvjZxwksfx3ibTP/XWoYOLmmQPVcnE13Q70 akTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=iraQp1mI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id p7-20020a637407000000b0055bda24a17fsi3059140pgc.541.2023.07.12.04.29.44; Wed, 12 Jul 2023 04:30:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=iraQp1mI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233006AbjGLLOx (ORCPT + 99 others); Wed, 12 Jul 2023 07:14:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44876 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232997AbjGLLOu (ORCPT ); Wed, 12 Jul 2023 07:14:50 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BAE96170E for ; Wed, 12 Jul 2023 04:14:49 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 58E796175C for ; Wed, 12 Jul 2023 11:14:49 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A9A6BC433C8; Wed, 12 Jul 2023 11:14:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1689160488; bh=2fRRg922MXnJBLpH2CG47X7Q6Q7bgdnHX1iBu/puZIQ=; h=From:Date:Subject:To:Cc:From; b=iraQp1mIxYKV3l5KzZovLBYKCaXNJsPPeB41XQO7ca+SiByTuhPBWfIQxd2GSHfg8 WDr1d1xz/djoxJcHG8ClvVB2OEXRLFZLYp4ghhx+WsbLzitcyr/jq8tod7jW0cOCJA 3wpUXnnhEXNmA86v3ZaXPpkarWy0sYEjGz9QTlsl9OyThbF1BPytLTR+pgm5ctWjFX yNwfSlJeMr+nKgOdgEE8BYRJ8PEr1tPEYlyy7YlefDi21B6oZHgjHRZNyvXHELsXd5 vVB0Us8Psl6reupDYYciYzr+UPxxDQ7CYLRzEC5kNj+rIdiuUDkozr/EzMcancbNLw gcB18iOk3Go4w== From: Mark Brown Date: Wed, 12 Jul 2023 12:14:43 +0100 Subject: [PATCH] mfd: axp20x: Update to use maple tree register cache MIME-Version: 1.0 Message-Id: <20230712-mfd-axp20x-maple-v1-1-4df3749107a6@kernel.org> X-B4-Tracking: v=1; b=H4sIACKLrmQC/x2N0QrCMAwAf2Xk2UDXogx/RXzI1tQFbC2JjMLYv 9v5eBzH7WCswgb3YQflTUw+pcN4GWBZqbwYJXYG73xwNx8wp4jUqncNM9U3Y5omdtcUYgwj9Gw mY5yVyrKeYSb7sp6iKidp/9fjeRw/hI/7VXsAAAA= To: Lee Jones , Chen-Yu Tsai Cc: linux-kernel@vger.kernel.org, Mark Brown X-Mailer: b4 0.13-dev-099c9 X-Developer-Signature: v=1; a=openpgp-sha256; l=3093; i=broonie@kernel.org; h=from:subject:message-id; bh=2fRRg922MXnJBLpH2CG47X7Q6Q7bgdnHX1iBu/puZIQ=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBkrosmB2pXlV/R2vUT8GIXc9P2UIJYX03Sy26ix wOcVKozqIGJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZK6LJgAKCRAk1otyXVSH 0OWfB/sGhYXYQDgikalQDoJmlOuGU746ytp3c0SB/weeQ4xyimY+yAv+PK4LulrU/sIFGCDlBju K6XFtWfNXlb4LDydDhZvVvt4GljBqWIBPoY7lligrn9kfBN6/N8BeTQxaTKOY39JMwghS50Mh6W chgrn+pe/lVd8ykQcbTZQbC1TZLpVKc2n3i/piRL91msEdN5Z1xHSbaarrgYxEMPFGHJGecTmHE ScW8JZCZjeRqrvt9XsKOYvjEFmJnDqBwR+ThnStHiy+lk1cvIAAZS4pZseKYuFMBKZlsqguAfAr 8khUbFrn++GhZQmvQmfqHm1AXiOY5/a2l0W3GQSV8zXa+kFb X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1771214105761600999 X-GMAIL-MSGID: 1771214105761600999 The maple tree register cache is based on a much more modern data structure than the rbtree cache and makes optimisation choices which are probably more appropriate for modern systems than those made by the rbtree cache. In v6.5 it has also acquired the ability to generate multi-register writes in sync operations, bringing performance up to parity with the rbtree cache there. Update the axp20x driver to use the more modern data structure, really it should have been fine even without the most recent round of updates. Signed-off-by: Mark Brown --- Signed-off-by: Mark --- drivers/mfd/axp20x.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) --- base-commit: 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5 change-id: 20230623-mfd-axp20x-maple-f88e05f3dd31 Best regards, diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c index c03bc5cda080..87603eeaa277 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -342,7 +342,7 @@ static const struct regmap_config axp152_regmap_config = { .wr_table = &axp152_writeable_table, .volatile_table = &axp152_volatile_table, .max_register = AXP152_PWM1_DUTY_CYCLE, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; static const struct regmap_config axp192_regmap_config = { @@ -360,7 +360,7 @@ static const struct regmap_config axp20x_regmap_config = { .wr_table = &axp20x_writeable_table, .volatile_table = &axp20x_volatile_table, .max_register = AXP20X_OCV(AXP20X_OCV_MAX), - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; static const struct regmap_config axp22x_regmap_config = { @@ -369,7 +369,7 @@ static const struct regmap_config axp22x_regmap_config = { .wr_table = &axp22x_writeable_table, .volatile_table = &axp22x_volatile_table, .max_register = AXP22X_BATLOW_THRES1, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; static const struct regmap_config axp288_regmap_config = { @@ -378,7 +378,7 @@ static const struct regmap_config axp288_regmap_config = { .wr_table = &axp288_writeable_table, .volatile_table = &axp288_volatile_table, .max_register = AXP288_FG_TUNE5, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; static const struct regmap_config axp313a_regmap_config = { @@ -396,7 +396,7 @@ static const struct regmap_config axp806_regmap_config = { .wr_table = &axp806_writeable_table, .volatile_table = &axp806_volatile_table, .max_register = AXP806_REG_ADDR_EXT, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; static const struct regmap_config axp15060_regmap_config = { @@ -405,7 +405,7 @@ static const struct regmap_config axp15060_regmap_config = { .wr_table = &axp15060_writeable_table, .volatile_table = &axp15060_volatile_table, .max_register = AXP15060_IRQ2_STATE, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, }; #define INIT_REGMAP_IRQ(_variant, _irq, _off, _mask) \