On Wed, 30 Sep 2026 20:02:21 +0700 Nguyen Minh Tien <[email protected]> wrote:
> Hi Wilken, > > > Wouldn't it make more sense to add the "allwinner,sun20i-d1-hwspinlock" > > line to > > the driver in the sun6i_hwspinlock_ids struct, drop > > "allwinner,sun6i-a31-hwspinlock" here in the D1 device tree and update the > > yaml > > file accordingly? > > Thanks for looking at it. Bjorn hasn't replied yet, so I looked a bit > more at the naming. I'd like to keep the A31 fallback: it's the usual > pattern, other blocks in this dtsi do the same (timer, I2S, LED > controller), and Conor already acked the binding in 2/3. If Bjorn > prefers a driver entry instead, I'm fine to change it. Yeah, Conor was a bit quick to act here, such things happen often with patchsets made out of documentation/devicetrees and code. Though, the get clock and resets patch is fine. The driver could use some modernization. > > Oh, and I may be able to test it against the D1, I own a Sipeed Nezha. > > That would be great. You don't need FreeRTOS for it: I tested with a > small Linux module that takes each lock and checks the status > register. I can clean it up for the single-core D1 and send it. Uhm, the Linux-only test doesn't work as a hwspinlock test, it misses the entire point of the primitive. A hwspinlock arbitrates between two independent agents, in this case, Linux running on the C906 core and FreeRTOS running on the HiFi DSP, both sharing the same memory bus and other hardware. If Linux is the only one who ever takes the locks, it is simultaneously writer and reader of the status register, so the test cannot fail even for a broken (or fake) implementation. That would basically test nothing at all, well, maybe it would be some kind of bring-up test, but overall quite useless. greetings, Wilken

