From nobody Mon Feb 9 09:22:48 2026 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (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 C39ED2F9984; Thu, 29 Jan 2026 18:37:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769711828; cv=none; b=sNOH+jOOVQkdoCY36ucyp8iWWi62I6GaYfvOf2+GsO5d/BFbxL9Td/YVwGzFb0i57V/CuExqDzicZyYR9lJG1lQRoBKxZens0h9IzulljYfjR5YyuKmILkjgj6lENHLYEP4KI0Qt1J4RRl0IKfzsFdyGmnhMqFGVIwF7fzZPGHY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769711828; c=relaxed/simple; bh=RQXf3rqsQ3wvdkn5lJc58ZpRzqeHt4q+lDv4SoGb6Es=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uchWsZk0pH8YaMWaNfVIYSeoPCUCLEGuGH8fCMpguviWRrP7AuCsIGzLrNkw7ycT6Ka7rs3B7VhjuMnwzK164TzeAEVtlDs6AO+ZAXiEfPj0lScK4vmZMSKlrnvFZFrTipoT3SQEslJFAw92QXWztXsdhFoW9aP+5G2X/WPbjS4= 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=bglzhkLj; arc=none smtp.client-ip=198.175.65.12 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="bglzhkLj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1769711827; x=1801247827; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=RQXf3rqsQ3wvdkn5lJc58ZpRzqeHt4q+lDv4SoGb6Es=; b=bglzhkLjv4ScIfZJ2JjBlfO2spYSXTO18b/HcxQcR71Jg6JMHLY/U+wM tAQFEihiJi34X0Tmsp0StkkxMBcXmp6DMha9eYha1ETRrxBz+Ahe7DvOp Xg4wUJoyf9oJTpbGRrH+Nv85BHPggdUB9qilXvbQSBp5WZtfdhWQqOOmX 2a+5rqfAw0oz+zpfh/JJN8WJvofw1S2zeDmyhvr1te6yuoiyJyVhGwk93 trdkufdqxxdmWfTNXT9SfE6/1wZFACRrH57DNYzdduLXPMPKTb2P11wMY Vxhj5dzeWzMLI80tKixToNVXg+QmkIm1m6k4LNeX/GQtY7MV+VflNMOL+ A==; X-CSE-ConnectionGUID: hhxXC/ooSgCT9vr89Gim+g== X-CSE-MsgGUID: DVea+I2STuiM1S+YNpBvqw== X-IronPort-AV: E=McAfee;i="6800,10657,11686"; a="82388360" X-IronPort-AV: E=Sophos;i="6.21,261,1763452800"; d="scan'208";a="82388360" Received: from fmviesa009.fm.intel.com ([10.60.135.149]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2026 10:37:06 -0800 X-CSE-ConnectionGUID: N0qi9STRRCmnZewdmkFusg== X-CSE-MsgGUID: ST4YKXsSR2K9pSkqrGJsBQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,261,1763452800"; d="scan'208";a="209070961" Received: from skuppusw-desk2.jf.intel.com ([10.165.154.101]) by fmviesa009-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Jan 2026 10:37:05 -0800 From: Kuppuswamy Sathyanarayanan To: "Rafael J . Wysocki" , Daniel Lezcano Cc: Zhang Rui , Lukasz Luba , Srinivas Pandruvada , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 3/9] powercap: intel_rapl: Use GENMASK() and BIT() macros Date: Thu, 29 Jan 2026 10:36:40 -0800 Message-ID: <20260129183646.558866-4-sathyanarayanan.kuppuswamy@linux.intel.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260129183646.558866-1-sathyanarayanan.kuppuswamy@linux.intel.com> References: <20260129183646.558866-1-sathyanarayanan.kuppuswamy@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" Replace hardcoded bitmasks and bit shift operations with standard GENMASK(), GENMASK_ULL(), BIT(), and BIT_ULL() macros for better readability and to follow kernel coding conventions. No functional changes. Signed-off-by: Kuppuswamy Sathyanarayanan --- drivers/powercap/intel_rapl_common.c | 78 ++++++++++++++-------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/drivers/powercap/intel_rapl_common.c b/drivers/powercap/intel_= rapl_common.c index 74a74af8f0ec..0faafba8cc7c 100644 --- a/drivers/powercap/intel_rapl_common.c +++ b/drivers/powercap/intel_rapl_common.c @@ -31,62 +31,62 @@ #include =20 /* bitmasks for RAPL MSRs, used by primitive access functions */ -#define ENERGY_STATUS_MASK 0xffffffff +#define ENERGY_STATUS_MASK GENMASK(31, 0) =20 -#define POWER_LIMIT1_MASK 0x7FFF +#define POWER_LIMIT1_MASK GENMASK(14, 0) #define POWER_LIMIT1_ENABLE BIT(15) #define POWER_LIMIT1_CLAMP BIT(16) =20 -#define POWER_LIMIT2_MASK (0x7FFFULL<<32) +#define POWER_LIMIT2_MASK GENMASK_ULL(46, 32) #define POWER_LIMIT2_ENABLE BIT_ULL(47) #define POWER_LIMIT2_CLAMP BIT_ULL(48) #define POWER_HIGH_LOCK BIT_ULL(63) #define POWER_LOW_LOCK BIT(31) =20 -#define POWER_LIMIT4_MASK 0x1FFF +#define POWER_LIMIT4_MASK GENMASK(12, 0) =20 -#define TIME_WINDOW1_MASK (0x7FULL<<17) -#define TIME_WINDOW2_MASK (0x7FULL<<49) +#define TIME_WINDOW1_MASK GENMASK_ULL(23, 17) +#define TIME_WINDOW2_MASK GENMASK_ULL(55, 49) =20 #define POWER_UNIT_OFFSET 0x00 -#define POWER_UNIT_MASK 0x0F +#define POWER_UNIT_MASK GENMASK(3, 0) =20 #define ENERGY_UNIT_OFFSET 0x08 -#define ENERGY_UNIT_MASK 0x1F00 +#define ENERGY_UNIT_MASK GENMASK(12, 8) =20 #define TIME_UNIT_OFFSET 0x10 -#define TIME_UNIT_MASK 0xF0000 +#define TIME_UNIT_MASK GENMASK(19, 16) =20 -#define POWER_INFO_MAX_MASK (0x7fffULL<<32) -#define POWER_INFO_MIN_MASK (0x7fffULL<<16) -#define POWER_INFO_MAX_TIME_WIN_MASK (0x3fULL<<48) -#define POWER_INFO_THERMAL_SPEC_MASK 0x7fff +#define POWER_INFO_MAX_MASK GENMASK_ULL(46, 32) +#define POWER_INFO_MIN_MASK GENMASK_ULL(30, 16) +#define POWER_INFO_MAX_TIME_WIN_MASK GENMASK_ULL(53, 48) +#define POWER_INFO_THERMAL_SPEC_MASK GENMASK(14, 0) =20 -#define PERF_STATUS_THROTTLE_TIME_MASK 0xffffffff -#define PP_POLICY_MASK 0x1F +#define PERF_STATUS_THROTTLE_TIME_MASK GENMASK(31, 0) +#define PP_POLICY_MASK GENMASK(4, 0) =20 /* * SPR has different layout for Psys Domain PowerLimit registers. * There are 17 bits of PL1 and PL2 instead of 15 bits. * The Enable bits and TimeWindow bits are also shifted as a result. */ -#define PSYS_POWER_LIMIT1_MASK 0x1FFFF +#define PSYS_POWER_LIMIT1_MASK GENMASK_ULL(16, 0) #define PSYS_POWER_LIMIT1_ENABLE BIT(17) =20 -#define PSYS_POWER_LIMIT2_MASK (0x1FFFFULL<<32) +#define PSYS_POWER_LIMIT2_MASK GENMASK_ULL(48, 32) #define PSYS_POWER_LIMIT2_ENABLE BIT_ULL(49) =20 -#define PSYS_TIME_WINDOW1_MASK (0x7FULL<<19) -#define PSYS_TIME_WINDOW2_MASK (0x7FULL<<51) +#define PSYS_TIME_WINDOW1_MASK GENMASK_ULL(25, 19) +#define PSYS_TIME_WINDOW2_MASK GENMASK_ULL(57, 51) =20 /* bitmasks for RAPL TPMI, used by primitive access functions */ -#define TPMI_POWER_LIMIT_MASK 0x3FFFF +#define TPMI_POWER_LIMIT_MASK GENMASK_ULL(17, 0) #define TPMI_POWER_LIMIT_ENABLE BIT_ULL(62) -#define TPMI_TIME_WINDOW_MASK (0x7FULL<<18) -#define TPMI_INFO_SPEC_MASK 0x3FFFF -#define TPMI_INFO_MIN_MASK (0x3FFFFULL << 18) -#define TPMI_INFO_MAX_MASK (0x3FFFFULL << 36) -#define TPMI_INFO_MAX_TIME_WIN_MASK (0x7FULL << 54) +#define TPMI_TIME_WINDOW_MASK GENMASK_ULL(24, 18) +#define TPMI_INFO_SPEC_MASK GENMASK_ULL(17, 0) +#define TPMI_INFO_MIN_MASK GENMASK_ULL(35, 18) +#define TPMI_INFO_MAX_MASK GENMASK_ULL(53, 36) +#define TPMI_INFO_MAX_TIME_WIN_MASK GENMASK_ULL(60, 54) =20 /* Non HW constants */ #define RAPL_PRIMITIVE_DERIVED BIT(1) /* not from raw data */ @@ -111,9 +111,9 @@ #define TPMI_POWER_UNIT_OFFSET POWER_UNIT_OFFSET #define TPMI_POWER_UNIT_MASK POWER_UNIT_MASK #define TPMI_ENERGY_UNIT_OFFSET 0x06 -#define TPMI_ENERGY_UNIT_MASK 0x7C0 +#define TPMI_ENERGY_UNIT_MASK GENMASK_ULL(10, 6) #define TPMI_TIME_UNIT_OFFSET 0x0C -#define TPMI_TIME_UNIT_MASK 0xF000 +#define TPMI_TIME_UNIT_MASK GENMASK_ULL(15, 12) =20 #define RAPL_EVENT_MASK GENMASK(7, 0) =20 @@ -964,13 +964,13 @@ static int rapl_check_unit_core(struct rapl_domain *r= d) } =20 value =3D (ra.value & ENERGY_UNIT_MASK) >> ENERGY_UNIT_OFFSET; - rd->energy_unit =3D ENERGY_UNIT_SCALE * 1000000 / (1 << value); + rd->energy_unit =3D ENERGY_UNIT_SCALE * 1000000 / BIT(value); =20 value =3D (ra.value & POWER_UNIT_MASK) >> POWER_UNIT_OFFSET; - rd->power_unit =3D 1000000 / (1 << value); + rd->power_unit =3D 1000000 / BIT(value); =20 value =3D (ra.value & TIME_UNIT_MASK) >> TIME_UNIT_OFFSET; - rd->time_unit =3D 1000000 / (1 << value); + rd->time_unit =3D 1000000 / BIT(value); =20 pr_debug("Core CPU %s:%s energy=3D%dpJ, time=3D%dus, power=3D%duW\n", rd->rp->name, rd->name, rd->energy_unit, rd->time_unit, rd->power_unit); @@ -992,13 +992,13 @@ static int rapl_check_unit_atom(struct rapl_domain *r= d) } =20 value =3D (ra.value & ENERGY_UNIT_MASK) >> ENERGY_UNIT_OFFSET; - rd->energy_unit =3D ENERGY_UNIT_SCALE * 1 << value; + rd->energy_unit =3D ENERGY_UNIT_SCALE * BIT(value); =20 value =3D (ra.value & POWER_UNIT_MASK) >> POWER_UNIT_OFFSET; - rd->power_unit =3D (1 << value) * 1000; + rd->power_unit =3D BIT(value) * 1000; =20 value =3D (ra.value & TIME_UNIT_MASK) >> TIME_UNIT_OFFSET; - rd->time_unit =3D 1000000 / (1 << value); + rd->time_unit =3D 1000000 / BIT(value); =20 pr_debug("Atom %s:%s energy=3D%dpJ, time=3D%dus, power=3D%duW\n", rd->rp->name, rd->name, rd->energy_unit, rd->time_unit, rd->power_unit); @@ -1102,8 +1102,8 @@ static void set_floor_freq_atom(struct rapl_domain *r= d, bool enable) &power_ctrl_orig_val); mdata =3D power_ctrl_orig_val; if (enable) { - mdata &=3D ~(0x7f << 8); - mdata |=3D 1 << 8; + mdata &=3D ~GENMASK(14, 8); + mdata |=3D BIT(8); } iosf_mbi_write(BT_MBI_UNIT_PMC, MBI_CR_WRITE, defaults->floor_freq_reg_addr, mdata); @@ -1136,7 +1136,7 @@ static u64 rapl_compute_time_window_core(struct rapl_= domain *rd, u64 value, if (y > 0x1f) return 0x7f; =20 - f =3D div64_u64(4 * (value - (1ULL << y)), 1ULL << y); + f =3D div64_u64(4 * (value - BIT_ULL(y)), BIT_ULL(y)); value =3D (y & 0x1f) | ((f & 0x3) << 5); } return value; @@ -1169,13 +1169,13 @@ static int rapl_check_unit_tpmi(struct rapl_domain = *rd) } =20 value =3D (ra.value & TPMI_ENERGY_UNIT_MASK) >> TPMI_ENERGY_UNIT_OFFSET; - rd->energy_unit =3D ENERGY_UNIT_SCALE * 1000000 / (1 << value); + rd->energy_unit =3D ENERGY_UNIT_SCALE * 1000000 / BIT(value); =20 value =3D (ra.value & TPMI_POWER_UNIT_MASK) >> TPMI_POWER_UNIT_OFFSET; - rd->power_unit =3D 1000000 / (1 << value); + rd->power_unit =3D 1000000 / BIT(value); =20 value =3D (ra.value & TPMI_TIME_UNIT_MASK) >> TPMI_TIME_UNIT_OFFSET; - rd->time_unit =3D 1000000 / (1 << value); + rd->time_unit =3D 1000000 / BIT(value); =20 pr_debug("Core CPU %s:%s energy=3D%dpJ, time=3D%dus, power=3D%duW\n", rd->rp->name, rd->name, rd->energy_unit, rd->time_unit, rd->power_unit); --=20 2.43.0