On Fri, Feb 07, 2025 at 09:23:56AM -0600, David Lechner wrote: > On 2/7/25 6:17 AM, Andy Shevchenko wrote: > > On Fri, Feb 7, 2025 at 2:15 PM Andy Shevchenko > > <andy.shevchenko@xxxxxxxxx> wrote: > >> On Fri, Feb 7, 2025 at 12:48 AM David Lechner <dlechner@xxxxxxxxxxxx> wrote: ... > >>> static void ts_nbus_write_byte(struct ts_nbus *ts_nbus, u8 byte) > >>> { > >>> - struct gpio_descs *gpios = ts_nbus->data; > >>> DECLARE_BITMAP(values, 8); > >>> > >>> values[0] = byte; > >>> > >>> - gpiod_set_array_value_cansleep(8, gpios->desc, gpios->info, values); > >>> + gpiod_multi_set_value_cansleep(ts_nbus->data, values); > >> > >> As I said before, this is buggy code on BE64. Needs to be fixed. > > > > Or isn't? Do we have a test case in bitmap for such a case? > > > >>> } > > Maybe not the best style, but I don't think it is buggy. Bitmaps are always > handled in long-sized chunks and not cast to bytes so endianness doesn't affect > it. I didn't see an explicit test, but bitmap_read() and bitmap_write() use > array access like this so indirectly it is being tested. Right, the potential (and likely theoretical) issue may come if DEFINE_BITMAP() out of a sudden will use, let's say, an array of booleans. But it wasn't my initial complain about the code :-) -- With Best Regards, Andy Shevchenko