* [PATCH v4 0/5] i3c: introduce and use generic parity helper
@ 2025-01-07 9:01 Wolfram Sang
2025-01-07 9:02 ` [PATCH v4 2/5] hwmon: (spd5118) Use generic parity calculation Wolfram Sang
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Wolfram Sang @ 2025-01-07 9:01 UTC (permalink / raw)
To: linux-i3c
Cc: linux-kernel, linux-renesas-soc, Wolfram Sang, Alexandre Belloni,
Guenter Roeck, Jean Delvare, linux-hwmon, Przemysław Gaj,
Rasmus Villemoes, Yury Norov
Changes since v3:
* updated commit message of patch 4 to state that a bug gets fixed.
All acks from bitmap.h and HWMON maintainers are already included.
Old coverletter follows:
I am currently working on upstreaming another I3C controller driver. As
many others, it needs to ensure odd parity for a dynamically assigned
address. The BSP version of the driver implemented a custom parity
algorithm. Wondering why we don't have a generic helper for this in the
kernel, I found that many I3C controller drivers all implement their
version of handling parity.
So, I sent out an RFC[1] moving the efficient implementation of the
SPD5118 driver to a generic location. The series was well received, but
the path for upstream was not clear. Because I need the implementation
for my I3C controller driver and I3C is a prominent user of this new
function, I got the idea of converting the existing I3C drivers and
resend the series, suggesting this all goes upstream via I3C.
A build-tested branch is here:
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git renesas/i3c/get_parity
Looking forward to comments...
[1] https://lore.kernel.org/all/20241214085833.8695-1-wsa+renesas@sang-engineering.com/
Wolfram Sang (5):
bitops: add generic parity calculation for u8
hwmon: (spd5118) Use generic parity calculation
i3c: dw: use parity8 helper instead of open coding it
i3c: mipi-i3c-hci: use parity8 helper instead of open coding it
i3c: cdns: use parity8 helper instead of open coding it
drivers/hwmon/spd5118.c | 8 +-----
drivers/i3c/master/dw-i3c-master.c | 14 +++--------
drivers/i3c/master/i3c-master-cdns.c | 3 +--
drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 11 +--------
include/linux/bitops.h | 31 ++++++++++++++++++++++++
5 files changed, 37 insertions(+), 30 deletions(-)
--
2.45.2
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v4 2/5] hwmon: (spd5118) Use generic parity calculation
2025-01-07 9:01 [PATCH v4 0/5] i3c: introduce and use generic parity helper Wolfram Sang
@ 2025-01-07 9:02 ` Wolfram Sang
2025-01-08 7:23 ` [PATCH v4 0/5] i3c: introduce and use generic parity helper Wolfram Sang
2025-01-12 23:05 ` Alexandre Belloni
2 siblings, 0 replies; 4+ messages in thread
From: Wolfram Sang @ 2025-01-07 9:02 UTC (permalink / raw)
To: linux-i3c
Cc: linux-kernel, linux-renesas-soc, Wolfram Sang, Guenter Roeck,
Geert Uytterhoeven, Kuan-Wei Chiu, Jean Delvare, linux-hwmon
Make use of the new generic helper for calculating the parity.
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Tested-by: Guenter Roeck <linux@roeck-us.net>
Acked-by: Guenter Roeck <linux@roeck-us.net>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Kuan-Wei Chiu <visitorckw@gmail.com>
---
drivers/hwmon/spd5118.c | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/drivers/hwmon/spd5118.c b/drivers/hwmon/spd5118.c
index 6cee48a3e5c3..358152868d96 100644
--- a/drivers/hwmon/spd5118.c
+++ b/drivers/hwmon/spd5118.c
@@ -291,12 +291,6 @@ static umode_t spd5118_is_visible(const void *_data, enum hwmon_sensor_types typ
}
}
-static inline bool spd5118_parity8(u8 w)
-{
- w ^= w >> 4;
- return (0x6996 >> (w & 0xf)) & 1;
-}
-
/*
* Bank and vendor id are 8-bit fields with seven data bits and odd parity.
* Vendor IDs 0 and 0x7f are invalid.
@@ -304,7 +298,7 @@ static inline bool spd5118_parity8(u8 w)
*/
static bool spd5118_vendor_valid(u8 bank, u8 id)
{
- if (!spd5118_parity8(bank) || !spd5118_parity8(id))
+ if (parity8(bank) == 0 || parity8(id) == 0)
return false;
id &= 0x7f;
--
2.45.2
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v4 0/5] i3c: introduce and use generic parity helper
2025-01-07 9:01 [PATCH v4 0/5] i3c: introduce and use generic parity helper Wolfram Sang
2025-01-07 9:02 ` [PATCH v4 2/5] hwmon: (spd5118) Use generic parity calculation Wolfram Sang
@ 2025-01-08 7:23 ` Wolfram Sang
2025-01-12 23:05 ` Alexandre Belloni
2 siblings, 0 replies; 4+ messages in thread
From: Wolfram Sang @ 2025-01-08 7:23 UTC (permalink / raw)
To: linux-i3c
Cc: linux-kernel, linux-renesas-soc, Alexandre Belloni, Guenter Roeck,
Jean Delvare, linux-hwmon, Przemysław Gaj, Rasmus Villemoes,
Yury Norov
[-- Attachment #1: Type: text/plain, Size: 98 bytes --]
> A build-tested branch is here:
That was locally built. Now, build bot said it is happy, too.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v4 0/5] i3c: introduce and use generic parity helper
2025-01-07 9:01 [PATCH v4 0/5] i3c: introduce and use generic parity helper Wolfram Sang
2025-01-07 9:02 ` [PATCH v4 2/5] hwmon: (spd5118) Use generic parity calculation Wolfram Sang
2025-01-08 7:23 ` [PATCH v4 0/5] i3c: introduce and use generic parity helper Wolfram Sang
@ 2025-01-12 23:05 ` Alexandre Belloni
2 siblings, 0 replies; 4+ messages in thread
From: Alexandre Belloni @ 2025-01-12 23:05 UTC (permalink / raw)
To: linux-i3c, Wolfram Sang
Cc: linux-kernel, linux-renesas-soc, Guenter Roeck, Jean Delvare,
linux-hwmon, Przemysław Gaj, Rasmus Villemoes, Yury Norov
On Tue, 07 Jan 2025 10:01:58 +0100, Wolfram Sang wrote:
> Changes since v3:
>
> * updated commit message of patch 4 to state that a bug gets fixed.
>
> All acks from bitmap.h and HWMON maintainers are already included.
>
> Old coverletter follows:
>
> [...]
Applied, thanks!
[1/5] bitops: add generic parity calculation for u8
https://git.kernel.org/abelloni/c/c320592f3f2a
[2/5] hwmon: (spd5118) Use generic parity calculation
https://git.kernel.org/abelloni/c/32a8d362b515
[3/5] i3c: dw: use parity8 helper instead of open coding it
https://git.kernel.org/abelloni/c/e89cc14e96a9
[4/5] i3c: mipi-i3c-hci: use parity8 helper instead of open coding it
https://git.kernel.org/abelloni/c/e55905a3f33c
[5/5] i3c: cdns: use parity8 helper instead of open coding it
https://git.kernel.org/abelloni/c/5e8c732357ce
Best regards,
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-01-12 23:05 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-07 9:01 [PATCH v4 0/5] i3c: introduce and use generic parity helper Wolfram Sang
2025-01-07 9:02 ` [PATCH v4 2/5] hwmon: (spd5118) Use generic parity calculation Wolfram Sang
2025-01-08 7:23 ` [PATCH v4 0/5] i3c: introduce and use generic parity helper Wolfram Sang
2025-01-12 23:05 ` Alexandre Belloni
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox