OSDN Git Service

drm: omapdrm: Move size unit features to dispc_features structure
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Fri, 4 Aug 2017 22:44:03 +0000 (01:44 +0300)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Tue, 15 Aug 2017 12:18:25 +0000 (15:18 +0300)
The buffer_size_unit and burst_size_unit are dispc features. Move them
from the omap_dss_features structure to the dispc_features structure.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/dss/dispc.c
drivers/gpu/drm/omapdrm/dss/dss_features.c
drivers/gpu/drm/omapdrm/dss/dss_features.h

index 7053e3f..99a3084 100644 (file)
@@ -88,6 +88,8 @@ struct dispc_features {
                u16 width, u16 height, u16 out_width, u16 out_height,
                bool mem_to_mem);
        u8 num_fifos;
+       unsigned int buffer_size_unit;
+       unsigned int burst_size_unit;
 
        /* swap GFX & WB fifos */
        bool gfx_fifo_workaround:1;
@@ -1138,9 +1140,8 @@ static void dispc_configure_burst_sizes(void)
 
 static u32 dispc_ovl_get_burst_size(enum omap_plane_id plane)
 {
-       unsigned unit = dss_feat_get_burst_size_unit();
        /* burst multiplier is always x8 (see dispc_configure_burst_sizes()) */
-       return unit * 8;
+       return dispc.feat->burst_size_unit * 8;
 }
 
 static const u32 *dispc_ovl_get_color_modes(enum omap_plane_id plane)
@@ -1225,7 +1226,7 @@ static void dispc_init_fifos(void)
        u32 unit;
        int i;
 
-       unit = dss_feat_get_buffer_size_unit();
+       unit = dispc.feat->buffer_size_unit;
 
        dss_feat_get_reg_field(FEAT_REG_FIFOSIZE, &start, &end);
 
@@ -1309,7 +1310,7 @@ void dispc_ovl_set_fifo_threshold(enum omap_plane_id plane, u32 low,
        u8 hi_start, hi_end, lo_start, lo_end;
        u32 unit;
 
-       unit = dss_feat_get_buffer_size_unit();
+       unit = dispc.feat->buffer_size_unit;
 
        WARN_ON(low % unit != 0);
        WARN_ON(high % unit != 0);
@@ -1362,7 +1363,7 @@ void dispc_ovl_compute_fifo_thresholds(enum omap_plane_id plane,
         * buffer_units, and the fifo thresholds must be buffer_unit aligned.
         */
 
-       unsigned buf_unit = dss_feat_get_buffer_size_unit();
+       unsigned buf_unit = dispc.feat->buffer_size_unit;
        unsigned ovl_fifo_size, total_fifo_size, burst_size;
        int i;
 
@@ -1439,7 +1440,7 @@ static void dispc_init_mflag(void)
 
        for (i = 0; i < dss_feat_get_num_ovls(); ++i) {
                u32 size = dispc_ovl_get_fifo_size(i);
-               u32 unit = dss_feat_get_buffer_size_unit();
+               u32 unit = dispc.feat->buffer_size_unit;
                u32 low, high;
 
                dispc_ovl_set_mflag(i, true);
@@ -1458,7 +1459,7 @@ static void dispc_init_mflag(void)
 
        if (dispc.feat->has_writeback) {
                u32 size = dispc_ovl_get_fifo_size(OMAP_DSS_WB);
-               u32 unit = dss_feat_get_buffer_size_unit();
+               u32 unit = dispc.feat->buffer_size_unit;
                u32 low, high;
 
                dispc_ovl_set_mflag(OMAP_DSS_WB, true);
@@ -3706,6 +3707,8 @@ static const struct dispc_features omap24xx_dispc_feats = {
        .calc_scaling           =       dispc_ovl_calc_scaling_24xx,
        .calc_core_clk          =       calc_core_clk_24xx,
        .num_fifos              =       3,
+       .buffer_size_unit       =       1,
+       .burst_size_unit        =       8,
        .no_framedone_tv        =       true,
        .set_max_preload        =       false,
        .last_pixel_inc_missing =       true,
@@ -3727,6 +3730,8 @@ static const struct dispc_features omap34xx_rev1_0_dispc_feats = {
        .calc_scaling           =       dispc_ovl_calc_scaling_34xx,
        .calc_core_clk          =       calc_core_clk_34xx,
        .num_fifos              =       3,
+       .buffer_size_unit       =       1,
+       .burst_size_unit        =       8,
        .no_framedone_tv        =       true,
        .set_max_preload        =       false,
        .last_pixel_inc_missing =       true,
@@ -3748,6 +3753,8 @@ static const struct dispc_features omap34xx_rev3_0_dispc_feats = {
        .calc_scaling           =       dispc_ovl_calc_scaling_34xx,
        .calc_core_clk          =       calc_core_clk_34xx,
        .num_fifos              =       3,
+       .buffer_size_unit       =       1,
+       .burst_size_unit        =       8,
        .no_framedone_tv        =       true,
        .set_max_preload        =       false,
        .last_pixel_inc_missing =       true,
@@ -3769,6 +3776,8 @@ static const struct dispc_features omap44xx_dispc_feats = {
        .calc_scaling           =       dispc_ovl_calc_scaling_44xx,
        .calc_core_clk          =       calc_core_clk_44xx,
        .num_fifos              =       5,
+       .buffer_size_unit       =       16,
+       .burst_size_unit        =       16,
        .gfx_fifo_workaround    =       true,
        .set_max_preload        =       true,
        .supports_sync_align    =       true,
@@ -3795,6 +3804,8 @@ static const struct dispc_features omap54xx_dispc_feats = {
        .calc_scaling           =       dispc_ovl_calc_scaling_44xx,
        .calc_core_clk          =       calc_core_clk_44xx,
        .num_fifos              =       5,
+       .buffer_size_unit       =       16,
+       .burst_size_unit        =       16,
        .gfx_fifo_workaround    =       true,
        .mstandby_workaround    =       true,
        .set_max_preload        =       true,
index 4172fb3..7393f3f 100644 (file)
@@ -50,9 +50,6 @@ struct omap_dss_features {
        const u32 **supported_color_modes;
        const enum omap_overlay_caps *overlay_caps;
        const struct dss_param_range *dss_params;
-
-       const u32 buffer_size_unit;
-       const u32 burst_size_unit;
 };
 
 /* This struct is assigned to one of the below during initialization */
@@ -551,8 +548,6 @@ static const struct omap_dss_features omap2_dss_features = {
        .supported_color_modes = omap2_dss_supported_color_modes,
        .overlay_caps = omap2_dss_overlay_caps,
        .dss_params = omap2_dss_param_range,
-       .buffer_size_unit = 1,
-       .burst_size_unit = 8,
 };
 
 /* OMAP3 DSS Features */
@@ -569,8 +564,6 @@ static const struct omap_dss_features omap3430_dss_features = {
        .supported_color_modes = omap3_dss_supported_color_modes,
        .overlay_caps = omap3430_dss_overlay_caps,
        .dss_params = omap3_dss_param_range,
-       .buffer_size_unit = 1,
-       .burst_size_unit = 8,
 };
 
 /*
@@ -590,8 +583,6 @@ static const struct omap_dss_features am35xx_dss_features = {
        .supported_color_modes = omap3_dss_supported_color_modes,
        .overlay_caps = omap3430_dss_overlay_caps,
        .dss_params = omap3_dss_param_range,
-       .buffer_size_unit = 1,
-       .burst_size_unit = 8,
 };
 
 static const struct omap_dss_features am43xx_dss_features = {
@@ -607,8 +598,6 @@ static const struct omap_dss_features am43xx_dss_features = {
        .supported_color_modes = omap3_dss_supported_color_modes,
        .overlay_caps = omap3430_dss_overlay_caps,
        .dss_params = am43xx_dss_param_range,
-       .buffer_size_unit = 1,
-       .burst_size_unit = 8,
 };
 
 static const struct omap_dss_features omap3630_dss_features = {
@@ -624,8 +613,6 @@ static const struct omap_dss_features omap3630_dss_features = {
        .supported_color_modes = omap3_dss_supported_color_modes,
        .overlay_caps = omap3630_dss_overlay_caps,
        .dss_params = omap3_dss_param_range,
-       .buffer_size_unit = 1,
-       .burst_size_unit = 8,
 };
 
 /* OMAP4 DSS Features */
@@ -643,8 +630,6 @@ static const struct omap_dss_features omap4430_es1_0_dss_features  = {
        .supported_color_modes = omap4_dss_supported_color_modes,
        .overlay_caps = omap4_dss_overlay_caps,
        .dss_params = omap4_dss_param_range,
-       .buffer_size_unit = 16,
-       .burst_size_unit = 16,
 };
 
 /* For OMAP4430 ES 2.0, 2.1 and 2.2 revisions */
@@ -661,8 +646,6 @@ static const struct omap_dss_features omap4430_es2_0_1_2_dss_features = {
        .supported_color_modes = omap4_dss_supported_color_modes,
        .overlay_caps = omap4_dss_overlay_caps,
        .dss_params = omap4_dss_param_range,
-       .buffer_size_unit = 16,
-       .burst_size_unit = 16,
 };
 
 /* For all the other OMAP4 versions */
@@ -679,8 +662,6 @@ static const struct omap_dss_features omap4_dss_features = {
        .supported_color_modes = omap4_dss_supported_color_modes,
        .overlay_caps = omap4_dss_overlay_caps,
        .dss_params = omap4_dss_param_range,
-       .buffer_size_unit = 16,
-       .burst_size_unit = 16,
 };
 
 /* OMAP5 DSS Features */
@@ -697,8 +678,6 @@ static const struct omap_dss_features omap5_dss_features = {
        .supported_color_modes = omap4_dss_supported_color_modes,
        .overlay_caps = omap4_dss_overlay_caps,
        .dss_params = omap5_dss_param_range,
-       .buffer_size_unit = 16,
-       .burst_size_unit = 16,
 };
 
 /* Functions returning values related to a DSS feature */
@@ -752,16 +731,6 @@ bool dss_feat_color_mode_supported(enum omap_plane_id plane, u32 fourcc)
        return false;
 }
 
-u32 dss_feat_get_buffer_size_unit(void)
-{
-       return omap_current_dss_features->buffer_size_unit;
-}
-
-u32 dss_feat_get_burst_size_unit(void)
-{
-       return omap_current_dss_features->burst_size_unit;
-}
-
 /* DSS has_feature check */
 bool dss_has_feature(enum dss_feat_id id)
 {
index 56936d9..3fb56d6 100644 (file)
@@ -92,9 +92,6 @@ enum omap_overlay_caps dss_feat_get_overlay_caps(enum omap_plane_id plane);
 bool dss_feat_color_mode_supported(enum omap_plane_id plane,
                u32 fourcc);
 
-u32 dss_feat_get_buffer_size_unit(void);       /* in bytes */
-u32 dss_feat_get_burst_size_unit(void);                /* in bytes */
-
 bool dss_has_feature(enum dss_feat_id id);
 void dss_feat_get_reg_field(enum dss_feat_reg_field id, u8 *start, u8 *end);
 void dss_features_init(enum omapdss_version version);