regcache: Use a consistent sort for defaults table
authorMark Brown <broonie@kernel.org>
Wed, 5 Aug 2026 17:51:00 +0000 (18:51 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 6 Aug 2026 11:59:47 +0000 (12:59 +0100)
commit9ed3d974a26644ad57b3d4d067e279188b2038b6
treeb9ccec37a60c704e94e451d6bdab4c7d43029b6b
parent075b74841bd0065a3bda3440873c747938e69b68
regcache: Use a consistent sort for defaults table

When we look up registers in the defaults table we use a binary search,
and we have a regcache_sort_defaults() API to help drivers that constuct
their defaults tables on the fly.  Unfortunately the lookup and the sort
don't use the same comparison function, and to make matters worse the
comparison function used during lookups is written for signed register
numbers rather than the unsigned ones we actually have so can produce
suprising results when some of the addresses have the top bit set.

Standardise on the more explicitly coded function to ensure consistent
results.

Reviewed-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Tested-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20260805-regmap-regcache-sort-v1-1-162186aad8b9@kernel.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/base/regmap/regcache.c