From nobody Mon Dec 15 19:08:05 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3DA3C23BD13 for ; Wed, 29 Oct 2025 07:31:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761723099; cv=none; b=kkfJbgUIAFGbD+LGVAe2iB/Rpfh9/6UtDhmMexN0lEBckfETS7P1piamhRec50fbOSbOfvi9ej9HOCBXzWx+8z9mIGqL0tEghMtWta+eiecmLL6sQDGzGFnGGGbzziejah6fGr8NaHqEX8uP6KWLEzkm3LOLZq/f5vLpSYnaczU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761723099; c=relaxed/simple; bh=zQuHvvFCL7RGaZWrKmLYT4hfs2YnHzQbTWDMrC99pJ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FEljMu5450u7+mRQYrLDkEHuIM5Y0MTeLm+nNR21Ayrc7OXJkJ5Wq4RkDiEeetzN6MHRPIMY4M77fzEcj63xyueAm2ISNMyfLMiDoFUHv61cXB0AePWJmfJxkGfB5gyt31qCG46D02neuakdCQA2IJ/3aCiN7KoBGGvaP/ZX0Pg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=mgJRUq1i; arc=none smtp.client-ip=192.198.163.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="mgJRUq1i" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1761723097; x=1793259097; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=zQuHvvFCL7RGaZWrKmLYT4hfs2YnHzQbTWDMrC99pJ4=; b=mgJRUq1iP/8wgBf5SAcGttjWuHO95svhopIZy9DnMAKNTDhiLF0sDUEU YOdEALLdMlmm2jL3GojSiPg42rxT3C5kcpgPLSz/OctW8wKOKJD9mGADB YESMpeeAWlccom0we06ClYrY+J8vY5OFZcR8DMceY37sIxRY6FZV45qDc dkMEUfpePDLh8TaaUJKKI9mVqNGfU6uMvdUpV6QuZkGdF4dU94M0dllnk 1ZcAEWHJlOlgcqyJ9KTul78GWqaFsYgpxPt8/xCUJQkpHH3lW5xLVL1mv 6NuwhWoUCEvplcDo6x8a6H/NBfSB4Fah9VGFBBDpXrqvQhxgh09LjqUiC Q==; X-CSE-ConnectionGUID: icSqZKjmSXGeLL/Hv/k6xQ== X-CSE-MsgGUID: RZVwM+PMQGylvirQdP5Uag== X-IronPort-AV: E=McAfee;i="6800,10657,11586"; a="63870953" X-IronPort-AV: E=Sophos;i="6.19,263,1754982000"; d="scan'208";a="63870953" Received: from fmviesa006.fm.intel.com ([10.60.135.146]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Oct 2025 00:31:36 -0700 X-CSE-ConnectionGUID: n0Wgeb3PQ8yp3c6GnMS0pQ== X-CSE-MsgGUID: hYRbDtkBSma2Jm7c7s/fFA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,263,1754982000"; d="scan'208";a="185469058" Received: from black.igk.intel.com ([10.91.253.5]) by fmviesa006.fm.intel.com with ESMTP; 29 Oct 2025 00:31:35 -0700 Received: by black.igk.intel.com (Postfix, from userid 1003) id 5D76A96; Wed, 29 Oct 2025 08:31:34 +0100 (CET) From: Andy Shevchenko To: Christophe JAILLET , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Mark Brown , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich Subject: [PATCH v1 1/4] regcache: Add ->populate() callback to separate from ->init() Date: Wed, 29 Oct 2025 08:28:58 +0100 Message-ID: <20251029073131.3004660-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251029073131.3004660-1-andriy.shevchenko@linux.intel.com> References: <20251029073131.3004660-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In the future changes we would like to change the flow of the cache handlin= g. Add ->populate() callback in order to prepare for that. Signed-off-by: Andy Shevchenko --- drivers/base/regmap/internal.h | 1 + drivers/base/regmap/regcache.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/drivers/base/regmap/internal.h b/drivers/base/regmap/internal.h index 6f31240ee4a9..6efed02c21c5 100644 --- a/drivers/base/regmap/internal.h +++ b/drivers/base/regmap/internal.h @@ -186,6 +186,7 @@ struct regcache_ops { enum regcache_type type; int (*init)(struct regmap *map); int (*exit)(struct regmap *map); + int (*populate)(struct regmap *map); #ifdef CONFIG_DEBUG_FS void (*debugfs_init)(struct regmap *map); #endif diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c index c7650fa434ad..149945690cdf 100644 --- a/drivers/base/regmap/regcache.c +++ b/drivers/base/regmap/regcache.c @@ -221,8 +221,24 @@ int regcache_init(struct regmap *map, const struct reg= map_config *config) if (ret) goto err_free; } + + if (map->num_reg_defaults && map->cache_ops->populate) { + dev_dbg(map->dev, "Populating %s cache\n", map->cache_ops->name); + map->lock(map->lock_arg); + ret =3D map->cache_ops->populate(map); + map->unlock(map->lock_arg); + if (ret) + goto err_exit; + } return 0; =20 +err_exit: + if (map->cache_ops->exit) { + dev_dbg(map->dev, "Destroying %s cache\n", map->cache_ops->name); + map->lock(map->lock_arg); + ret =3D map->cache_ops->exit(map); + map->unlock(map->lock_arg); + } err_free: kfree(map->reg_defaults); if (map->cache_free) --=20 2.50.1 From nobody Mon Dec 15 19:08:05 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 56FDF272816 for ; Wed, 29 Oct 2025 07:31:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.19 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761723099; cv=none; b=EeoH+AeftUUGNICpDBH6h5AV2N+LBNZPVaBBi2PsKVsBAWYglMszqN23RG9F2eU+0EoaDphNUh7IXtjraHDxbxXawdrIMg44Ga7lboYJZAgtQywz92EiZysXXB+tJ7XLsC/laO2QoKe2cgIZqYjivadPSQkzuXelToLXj6lZwTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761723099; c=relaxed/simple; bh=64hz6eN9wMTQb/u5lIj1gRNc79dS5LgF6HqMkkNo/mw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WtU3BDIUS2kgEBDQkyvgo61DMttDA4HaSKBKSczd0tXdYjs1HOFVBDnyPyJl69NPlt34waL8a+oUdRih67N1ZxYlUWaHwzNnmwGDsx16hlo4aEIYaQdKfziV/pNMeCO4pY44WlgvAamo6qlq539xDNPPTLDjT/euwUyBfjNitlQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=RFd4aqr5; arc=none smtp.client-ip=198.175.65.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="RFd4aqr5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1761723098; x=1793259098; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=64hz6eN9wMTQb/u5lIj1gRNc79dS5LgF6HqMkkNo/mw=; b=RFd4aqr5vcuD1TGDfhDnqQgSF46WApltN7jW5KTPRhrhT+7Drx998e8H sRUTRo2lsO8z15zugoQ2YzsHuuOOlFcfN4PC2Ikky/Ms6WYw+C1dRBUv5 7g/QJ4PVOB0zaIh92YOiwMyLdayRIzLpFcgT9UR2vHQcNqlhyPo5SYQd1 8Qk+2vqJejg/aZnpK2L9JTpmJKUv11uMCNH6biFlJjBDAx+s6NSQ0RxTF LGdm9MUHdFbnVZmAJPHGEI685V/mK5pI4n6zTa8bTirVLe0lxXAHEQKbX 3fhJiSEa8IXMjMJH0vASrULCPTNtnnlry3T+txxiD7Ov5l7cVMhnCg6dK Q==; X-CSE-ConnectionGUID: qZBWrBdYQeqI5qZiLIRLkw== X-CSE-MsgGUID: P/Dl1VXHTsSbNoFoYcOzIg== X-IronPort-AV: E=McAfee;i="6800,10657,11586"; a="63720714" X-IronPort-AV: E=Sophos;i="6.19,263,1754982000"; d="scan'208";a="63720714" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by orvoesa111.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Oct 2025 00:31:37 -0700 X-CSE-ConnectionGUID: UAk3yzuRSYiNnKQuZWX6KA== X-CSE-MsgGUID: k+o9ycgLQ6aECAux3D0Rwg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,263,1754982000"; d="scan'208";a="185213942" Received: from black.igk.intel.com ([10.91.253.5]) by orviesa009.jf.intel.com with ESMTP; 29 Oct 2025 00:31:35 -0700 Received: by black.igk.intel.com (Postfix, from userid 1003) id 6164B97; Wed, 29 Oct 2025 08:31:34 +0100 (CET) From: Andy Shevchenko To: Christophe JAILLET , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Mark Brown , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich Subject: [PATCH v1 2/4] regcache: rbtree: Split ->populate() from ->init() Date: Wed, 29 Oct 2025 08:28:59 +0100 Message-ID: <20251029073131.3004660-3-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251029073131.3004660-1-andriy.shevchenko@linux.intel.com> References: <20251029073131.3004660-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Split ->populate() implementation from ->init() code. This decoupling will help for the further changes. Signed-off-by: Andy Shevchenko --- drivers/base/regmap/regcache-rbtree.c | 31 +++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/drivers/base/regmap/regcache-rbtree.c b/drivers/base/regmap/re= gcache-rbtree.c index a9d17f316e55..2751714d52ea 100644 --- a/drivers/base/regmap/regcache-rbtree.c +++ b/drivers/base/regmap/regcache-rbtree.c @@ -184,8 +184,6 @@ static void rbtree_debugfs_init(struct regmap *map) static int regcache_rbtree_init(struct regmap *map) { struct regcache_rbtree_ctx *rbtree_ctx; - int i; - int ret; =20 map->cache =3D kmalloc(sizeof *rbtree_ctx, map->alloc_flags); if (!map->cache) @@ -195,19 +193,7 @@ static int regcache_rbtree_init(struct regmap *map) rbtree_ctx->root =3D RB_ROOT; rbtree_ctx->cached_rbnode =3D NULL; =20 - for (i =3D 0; i < map->num_reg_defaults; i++) { - ret =3D regcache_rbtree_write(map, - map->reg_defaults[i].reg, - map->reg_defaults[i].def); - if (ret) - goto err; - } - return 0; - -err: - regcache_rbtree_exit(map); - return ret; } =20 static int regcache_rbtree_exit(struct regmap *map) @@ -239,6 +225,22 @@ static int regcache_rbtree_exit(struct regmap *map) return 0; } =20 +static int regcache_rbtree_populate(struct regmap *map) +{ + unsigned int i; + int ret; + + for (i =3D 0; i < map->num_reg_defaults; i++) { + ret =3D regcache_rbtree_write(map, + map->reg_defaults[i].reg, + map->reg_defaults[i].def); + if (ret) + return ret; + } + + return 0; +} + static int regcache_rbtree_read(struct regmap *map, unsigned int reg, unsigned int *value) { @@ -546,6 +548,7 @@ struct regcache_ops regcache_rbtree_ops =3D { .name =3D "rbtree", .init =3D regcache_rbtree_init, .exit =3D regcache_rbtree_exit, + .populate=3D regcache_rbtree_populate, #ifdef CONFIG_DEBUG_FS .debugfs_init =3D rbtree_debugfs_init, #endif --=20 2.50.1 From nobody Mon Dec 15 19:08:05 2025 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 422E21C861D for ; Wed, 29 Oct 2025 07:31:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.9 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761723100; cv=none; b=g1DJmMfc8UVsNkBldh/QE2Gn0z7VA19fnVN8J2m/AeJG/3qjX/p4CfdBz6qJKGDLzo58fzO3QivGYSPTB8wrHQH98FPbgUHhF/BMgv2iT1YV/zt+jSC3+JmzHiz4jCmSVLwvojYPe9zjKn+ky66ZzXa629nnf9+ouEvpKZXUCk0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761723100; c=relaxed/simple; bh=U0/rjQE1vdYL9FqRPQDxRZmHchX606p6o6tCuSRACdQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=PD+nOaaI+s0SoXXt8YUENFnfrsi2k5LfS9pcq4qHCb8oq9QcKtj+t09fXF6nkopiY0vILQM6U+kT9Hq6n5M+fFYtqeGCgIom91QWSi7jhF7lj/2w2y0q+mENVPzxcGWGMp9FDP4gaWL/rUEkdeywtPcLpwsKJfVr7JkX6fKcmPE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Nvgzgawv; arc=none smtp.client-ip=198.175.65.9 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Nvgzgawv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1761723098; x=1793259098; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=U0/rjQE1vdYL9FqRPQDxRZmHchX606p6o6tCuSRACdQ=; b=NvgzgawvV+KS1ld33Y76+hFGa03MVB6ACMYPV9PAiLCVAXpJ2F+aV7da llJnBMec7g0piQjk6kMtHK2+YQhC7sNcdrfH6gL6dLS/oHzJHqNT8Q2Xr +ld7C09LSfUv2SzgTZtHvqPkpUZ3XOyg7r9BhYdUSduJpd6LEL00DUkse M3m+5ok7tGZqWbUAczabxtgokVg2Hg2EHlmizg2EWXkwJxaSFEB8ATBn8 JsndgL1SQiN0l01y+ptlp1pbF1xHz0qhry+uunDrIGFmVvuhMb7ROGvOq hleATrQtARuTedc5tFBxir8/87iI9meonAJtZtNHTFrb37rO+SK0T9taY g==; X-CSE-ConnectionGUID: ZsZ1g7mtSHCnAs2nbEBTSA== X-CSE-MsgGUID: 1ZR3mpbtQ5yvH07M8vAfkA== X-IronPort-AV: E=McAfee;i="6800,10657,11586"; a="86463820" X-IronPort-AV: E=Sophos;i="6.19,263,1754982000"; d="scan'208";a="86463820" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Oct 2025 00:31:37 -0700 X-CSE-ConnectionGUID: ijO6JgpyQaaLTyjFl0WqYw== X-CSE-MsgGUID: Z7vc40I/Q1CeEz6qBlOlUw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,263,1754982000"; d="scan'208";a="189890054" Received: from black.igk.intel.com ([10.91.253.5]) by orviesa004.jf.intel.com with ESMTP; 29 Oct 2025 00:31:35 -0700 Received: by black.igk.intel.com (Postfix, from userid 1003) id 654E798; Wed, 29 Oct 2025 08:31:34 +0100 (CET) From: Andy Shevchenko To: Christophe JAILLET , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Mark Brown , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich Subject: [PATCH v1 3/4] regcache: flat: Split ->populate() from ->init() Date: Wed, 29 Oct 2025 08:29:00 +0100 Message-ID: <20251029073131.3004660-4-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251029073131.3004660-1-andriy.shevchenko@linux.intel.com> References: <20251029073131.3004660-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Split ->populate() implementation from ->init() code. This decoupling will help for the further changes. Signed-off-by: Andy Shevchenko --- drivers/base/regmap/regcache-flat.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/drivers/base/regmap/regcache-flat.c b/drivers/base/regmap/regc= ache-flat.c index f36d3618b67c..adcfde75f2b3 100644 --- a/drivers/base/regmap/regcache-flat.c +++ b/drivers/base/regmap/regcache-flat.c @@ -20,9 +20,6 @@ static inline unsigned int regcache_flat_get_index(const = struct regmap *map, =20 static int regcache_flat_init(struct regmap *map) { - int i; - unsigned int *cache; - if (!map || map->reg_stride_order < 0 || !map->max_register_is_set) return -EINVAL; =20 @@ -31,15 +28,6 @@ static int regcache_flat_init(struct regmap *map) if (!map->cache) return -ENOMEM; =20 - cache =3D map->cache; - - for (i =3D 0; i < map->num_reg_defaults; i++) { - unsigned int reg =3D map->reg_defaults[i].reg; - unsigned int index =3D regcache_flat_get_index(map, reg); - - cache[index] =3D map->reg_defaults[i].def; - } - return 0; } =20 @@ -51,6 +39,21 @@ static int regcache_flat_exit(struct regmap *map) return 0; } =20 +static int regcache_flat_populate(struct regmap *map) +{ + unsigned int *cache =3D map->cache; + unsigned int i; + + for (i =3D 0; i < map->num_reg_defaults; i++) { + unsigned int reg =3D map->reg_defaults[i].reg; + unsigned int index =3D regcache_flat_get_index(map, reg); + + cache[index] =3D map->reg_defaults[i].def; + } + + return 0; +} + static int regcache_flat_read(struct regmap *map, unsigned int reg, unsigned int *value) { @@ -78,6 +81,7 @@ struct regcache_ops regcache_flat_ops =3D { .name =3D "flat", .init =3D regcache_flat_init, .exit =3D regcache_flat_exit, + .populate =3D regcache_flat_populate, .read =3D regcache_flat_read, .write =3D regcache_flat_write, }; --=20 2.50.1 From nobody Mon Dec 15 19:08:05 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7AED32836A4 for ; Wed, 29 Oct 2025 07:31:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.7 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761723099; cv=none; b=afWApZ2ZHNm24jtAFfJHAWdz9g+JfkEdm49ziw/0xyR5Tec38cdMldDnYHFEVF6CYCkkwCfGxNbEEP8eVjKmYnVV5sRD9omts4raNyPGwzfG/HPk4BFDo8XE+Dc61qHRVuDP68cMSC0ZpFSTIkEA3NHcfECd+FilvyQlGaoyLvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761723099; c=relaxed/simple; bh=spUqVFANeu6zA5mqKFPkIzzbgdNgivsG0RxjQcBExq4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=e4g31+o8FuOuPKF/r6VvxBLZuKhRmYsYe8nscf8VEtjP5U1gpAWc/6rAndhHT5l5M7HymHT69CGZik32YtDZcepWX8ubuauBNIuSAhIkUCb9ExmYdHS4VgZTqG02RojMGABOPmQlVHD5SnjJi62XmwChwW1ZmF26CkmgplO1bqE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=WH3rtcZp; arc=none smtp.client-ip=192.198.163.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="WH3rtcZp" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1761723097; x=1793259097; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=spUqVFANeu6zA5mqKFPkIzzbgdNgivsG0RxjQcBExq4=; b=WH3rtcZpVSO3MDmUpYSKv0HEZESy1G2yDHOQRdKtuqvJoUH8MWVMYqOJ qeR1KcKgk2RDDpetPwIvyDo0u1EUuHcE25KSyvxMOa2pL+6nEjTY/fHh3 quhIBCr56aIY6xuk4QXCtsH/oxr40S/AhYYpVNxV+euMRv+39KbiJBuXR wD62vD27VsIQlrFqUgLf3ehLRDKK2gfAnVd0JbDmgiUU4Cl8tN54u+6kv kYWqX+Yho0xisOVMJBt83nXVoAwyeQkO1e6sUyTLtF3WN+R5f9bUlDNmH A7O1AQ29ryhv4/SOic9FnM4XkbX1rhGeoen3hdqYPs9w2K+xVlbj5FxmI g==; X-CSE-ConnectionGUID: nZ0G+FEQTPecyM1ftwwjVg== X-CSE-MsgGUID: G8sRo2fAR9aaV60OvV0cHQ== X-IronPort-AV: E=McAfee;i="6800,10657,11586"; a="89304576" X-IronPort-AV: E=Sophos;i="6.19,263,1754982000"; d="scan'208";a="89304576" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by fmvoesa101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Oct 2025 00:31:37 -0700 X-CSE-ConnectionGUID: 4ddSmd8SRV+FlctmoJmuXg== X-CSE-MsgGUID: qMBEHcEiTn+AoORM0ZIS/g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,263,1754982000"; d="scan'208";a="222797252" Received: from black.igk.intel.com ([10.91.253.5]) by orviesa001.jf.intel.com with ESMTP; 29 Oct 2025 00:31:36 -0700 Received: by black.igk.intel.com (Postfix, from userid 1003) id 6915799; Wed, 29 Oct 2025 08:31:34 +0100 (CET) From: Andy Shevchenko To: Christophe JAILLET , Andy Shevchenko , linux-kernel@vger.kernel.org Cc: Mark Brown , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich Subject: [PATCH v1 4/4] regcache: maple: Split ->populate() from ->init() Date: Wed, 29 Oct 2025 08:29:01 +0100 Message-ID: <20251029073131.3004660-5-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20251029073131.3004660-1-andriy.shevchenko@linux.intel.com> References: <20251029073131.3004660-1-andriy.shevchenko@linux.intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Split ->populate() implementation from ->init() code. This decoupling will help for the further changes. Signed-off-by: Andy Shevchenko --- drivers/base/regmap/regcache-maple.c | 47 +++++++++++++--------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/drivers/base/regmap/regcache-maple.c b/drivers/base/regmap/reg= cache-maple.c index 2319c30283a6..ca1c72b68f31 100644 --- a/drivers/base/regmap/regcache-maple.c +++ b/drivers/base/regmap/regcache-maple.c @@ -289,6 +289,23 @@ static int regcache_maple_sync(struct regmap *map, uns= igned int min, return ret; } =20 +static int regcache_maple_init(struct regmap *map) +{ + struct maple_tree *mt; + + mt =3D kmalloc(sizeof(*mt), map->alloc_flags); + if (!mt) + return -ENOMEM; + map->cache =3D mt; + + mt_init(mt); + + if (!mt_external_lock(mt) && map->lock_key) + lockdep_set_class_and_subclass(&mt->ma_lock, map->lock_key, 1); + + return 0; +} + static int regcache_maple_exit(struct regmap *map) { struct maple_tree *mt =3D map->cache; @@ -340,26 +357,12 @@ static int regcache_maple_insert_block(struct regmap = *map, int first, return ret; } =20 -static int regcache_maple_init(struct regmap *map) +static int regcache_maple_populate(struct regmap *map) { - struct maple_tree *mt; int i; int ret; int range_start; =20 - mt =3D kmalloc(sizeof(*mt), map->alloc_flags); - if (!mt) - return -ENOMEM; - map->cache =3D mt; - - mt_init(mt); - - if (!mt_external_lock(mt) && map->lock_key) - lockdep_set_class_and_subclass(&mt->ma_lock, map->lock_key, 1); - - if (!map->num_reg_defaults) - return 0; - range_start =3D 0; =20 /* Scan for ranges of contiguous registers */ @@ -369,23 +372,14 @@ static int regcache_maple_init(struct regmap *map) ret =3D regcache_maple_insert_block(map, range_start, i - 1); if (ret !=3D 0) - goto err; + return ret; =20 range_start =3D i; } } =20 /* Add the last block */ - ret =3D regcache_maple_insert_block(map, range_start, - map->num_reg_defaults - 1); - if (ret !=3D 0) - goto err; - - return 0; - -err: - regcache_maple_exit(map); - return ret; + return regcache_maple_insert_block(map, range_start, map->num_reg_default= s - 1); } =20 struct regcache_ops regcache_maple_ops =3D { @@ -393,6 +387,7 @@ struct regcache_ops regcache_maple_ops =3D { .name =3D "maple", .init =3D regcache_maple_init, .exit =3D regcache_maple_exit, + .populate =3D regcache_maple_populate, .read =3D regcache_maple_read, .write =3D regcache_maple_write, .drop =3D regcache_maple_drop, --=20 2.50.1