OMAPDSS: refactor dispc_ovl_get_channel_out
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 4 Nov 2015 15:10:46 +0000 (17:10 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 29 Dec 2015 09:06:26 +0000 (11:06 +0200)
Refactor dispc_ovl_get_channel_out() to a bit cleaner form, which makes
it easier to add support for writeback in the following patch.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/fbdev/omap2/dss/dispc.c

index aa74b3da37180e01217dabc5c539f1f4b1031f9a..678a1928a9b580ddd192e479f10bfdc803e4002e 100644 (file)
@@ -992,7 +992,6 @@ static enum omap_channel dispc_ovl_get_channel_out(enum omap_plane plane)
 {
        int shift;
        u32 val;
-       enum omap_channel channel;
 
        switch (plane) {
        case OMAP_DSS_GFX:
@@ -1010,23 +1009,21 @@ static enum omap_channel dispc_ovl_get_channel_out(enum omap_plane plane)
 
        val = dispc_read_reg(DISPC_OVL_ATTRIBUTES(plane));
 
-       if (dss_has_feature(FEAT_MGR_LCD3)) {
-               if (FLD_GET(val, 31, 30) == 0)
-                       channel = FLD_GET(val, shift, shift);
-               else if (FLD_GET(val, 31, 30) == 1)
-                       channel = OMAP_DSS_CHANNEL_LCD2;
-               else
-                       channel = OMAP_DSS_CHANNEL_LCD3;
-       } else if (dss_has_feature(FEAT_MGR_LCD2)) {
-               if (FLD_GET(val, 31, 30) == 0)
-                       channel = FLD_GET(val, shift, shift);
-               else
-                       channel = OMAP_DSS_CHANNEL_LCD2;
-       } else {
-               channel = FLD_GET(val, shift, shift);
-       }
+       if (FLD_GET(val, shift, shift) == 1)
+               return OMAP_DSS_CHANNEL_DIGIT;
+
+       if (!dss_has_feature(FEAT_MGR_LCD2))
+               return OMAP_DSS_CHANNEL_LCD;
 
-       return channel;
+       switch (FLD_GET(val, 31, 30)) {
+       case 0:
+       default:
+               return OMAP_DSS_CHANNEL_LCD;
+       case 1:
+               return OMAP_DSS_CHANNEL_LCD2;
+       case 2:
+               return OMAP_DSS_CHANNEL_LCD3;
+       }
 }
 
 void dispc_wb_set_channel_in(enum dss_writeback_channel channel)
This page took 0.030794 seconds and 5 git commands to generate.