drm/bridge/sii8620: re-factor registry access code
authorAndrzej Hajda <a.hajda@samsung.com>
Mon, 17 Oct 2016 10:17:38 +0000 (12:17 +0200)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Wed, 14 Dec 2016 04:53:49 +0000 (13:53 +0900)
The patch constifies arguments if possible, adds static version of
sii8620_write_seq and simplifies sii8620_setbits.
All these changes allows to optimize code and synchronize driver with mainline.

Change-Id: I7432156e0dbe47b53f012c4f8561c71e587ba9d3
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
drivers/gpu/drm/bridge/sii8620.c

index 863f859..48475f5 100644 (file)
@@ -205,7 +205,7 @@ static void sii8620_write_buf(struct sii8620 *ctx, u16 addr, const u8 *buf,
        sii8620_write_buf(ctx, addr, d, ARRAY_SIZE(d)); \
 })
 
-static void _sii8620_write_seq(struct sii8620 *ctx, u16 *seq, int len)
+static void __sii8620_write_seq(struct sii8620 *ctx, const u16 *seq, int len)
 {
        int i;
 
@@ -215,14 +215,19 @@ static void _sii8620_write_seq(struct sii8620 *ctx, u16 *seq, int len)
 
 #define sii8620_write_seq(ctx, seq...) \
 ({\
-       u16 d[] = { seq }; \
-       _sii8620_write_seq(ctx, d, ARRAY_SIZE(d)); \
+       const u16 d[] = { seq }; \
+       __sii8620_write_seq(ctx, d, ARRAY_SIZE(d)); \
+})
+
+#define sii8620_write_seq_static(ctx, seq...) \
+({\
+       static const u16 d[] = { seq }; \
+       __sii8620_write_seq(ctx, d, ARRAY_SIZE(d)); \
 })
 
 static void sii8620_setbits(struct sii8620 *ctx, u16 addr, u8 mask, u8 val)
 {
-       val &= mask;
-       val |= sii8620_readb(ctx, addr) & ~mask;
+       val = (val & mask) | (sii8620_readb(ctx, addr) & ~mask);
        sii8620_write(ctx, addr, val);
 }