On Sun, Mar 09, 2025 at 08:29:59PM -0500, Jeff LaBundy wrote: > Some register groups reserve a byte at the end of their continuous > address space. Depending on the variant of silicon, this field may > share the same memory space as the lower byte of the system status > register (0x10). > > In these cases, caching the reserved byte and writing it later may > effectively reset the device depending on what happened in between > the read and write operations. > > Solve this problem by avoiding any access to this last byte within > offending register groups. This method replaces a workaround which > attempted to write the reserved byte with up-to-date contents, but > left a small window in which updates by the device could have been > clobbered. > > Now that the driver does not touch these reserved bytes, the order > in which the device's registers are written no longer matters, and > they can be written in their natural order. The new method is also > much more generic, and can be more easily extended to new variants > of silicon with different register maps. > > As part of this change, the register read and write functions must > be gently updated to support byte access instead of word access. > > Fixes: 2e70ef525b73 ("Input: iqs7222 - acknowledge reset before writing registers") > Signed-off-by: Jeff LaBundy <jeff@xxxxxxxxxxx> Applied, thank you. -- Dmitry