> +++ b/drivers/auxdisplay/hd44780.c
> @@ -62,17 +62,12 @@ static void hd44780_strobe_gpio(struct hd44780 *hd)
>  /* write to an LCD panel register in 8 bit GPIO mode */
>  static void hd44780_write_gpio8(struct hd44780 *hd, u8 val, unsigned int rs)
>  {
> -     int values[10]; /* for DATA[0-7], RS, RW */
> -     unsigned int i, n;
> -
> -     for (i = 0; i < 8; i++)
> -             values[PIN_DATA0 + i] = !!(val & BIT(i));
> -     values[PIN_CTRL_RS] = rs;
> -     n = 9;
> -     if (hd->pins[PIN_CTRL_RW]) {
> -             values[PIN_CTRL_RW] = 0;
> -             n++;
> -     }
> +     DECLARE_BITMAP(values, 10); /* for DATA[0-7], RS, RW */
> +     unsigned int n;
> +
> +     *values = val;
> +     __assign_bit(8, values, rs);
> +     n = hd->pins[PIN_CTRL_RW] ? 10 : 9;

Doesn't this assume little endian bitmaps?  Has anyone tested this on
big-endian machines?
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to