diff options
author | Harry Wentland <harry.wentland@amd.com> | 2017-11-01 11:43:36 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2017-12-06 12:47:45 -0500 |
commit | 2a06e0a5a491f306e22eb5a5239a6bd8ce0f1ac6 (patch) | |
tree | f1c1b237d6c4f36b6921a9931c5948d18c05ad97 /drivers/gpu/drm/amd/display/modules/freesync/freesync.c | |
parent | 2e5fa5ba50b045500fceea1ef1d0fdc13a7e0e1f (diff) |
drm/amd/display: Remove unnecessary dc_stream vtable
There's no need to have this as a vtable. The vtable was initially
used for stream_adjust_vmin_vmax but the condition checked here
(set_drr) is always true, hence we don't need to assign this
dynamically anymore.
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/modules/freesync/freesync.c')
-rw-r--r-- | drivers/gpu/drm/amd/display/modules/freesync/freesync.c | 84 |
1 files changed, 30 insertions, 54 deletions
diff --git a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c index 4d7db4aa28e0..b4723af368a5 100644 --- a/drivers/gpu/drm/amd/display/modules/freesync/freesync.c +++ b/drivers/gpu/drm/amd/display/modules/freesync/freesync.c | |||
@@ -132,14 +132,6 @@ struct core_freesync { | |||
132 | #define MOD_FREESYNC_TO_CORE(mod_freesync)\ | 132 | #define MOD_FREESYNC_TO_CORE(mod_freesync)\ |
133 | container_of(mod_freesync, struct core_freesync, public) | 133 | container_of(mod_freesync, struct core_freesync, public) |
134 | 134 | ||
135 | static bool check_dc_support(const struct dc *dc) | ||
136 | { | ||
137 | if (dc->stream_funcs.adjust_vmin_vmax == NULL) | ||
138 | return false; | ||
139 | |||
140 | return true; | ||
141 | } | ||
142 | |||
143 | struct mod_freesync *mod_freesync_create(struct dc *dc) | 135 | struct mod_freesync *mod_freesync_create(struct dc *dc) |
144 | { | 136 | { |
145 | struct core_freesync *core_freesync = | 137 | struct core_freesync *core_freesync = |
@@ -169,9 +161,6 @@ struct mod_freesync *mod_freesync_create(struct dc *dc) | |||
169 | 161 | ||
170 | core_freesync->dc = dc; | 162 | core_freesync->dc = dc; |
171 | 163 | ||
172 | if (!check_dc_support(dc)) | ||
173 | goto fail_construct; | ||
174 | |||
175 | /* Create initial module folder in registry for freesync enable data */ | 164 | /* Create initial module folder in registry for freesync enable data */ |
176 | flag.save_per_edid = true; | 165 | flag.save_per_edid = true; |
177 | flag.save_per_link = false; | 166 | flag.save_per_link = false; |
@@ -599,10 +588,9 @@ static bool set_freesync_on_streams(struct core_freesync *core_freesync, | |||
599 | update_stream_freesync_context(core_freesync, | 588 | update_stream_freesync_context(core_freesync, |
600 | streams[stream_idx]); | 589 | streams[stream_idx]); |
601 | 590 | ||
602 | core_freesync->dc->stream_funcs. | 591 | dc_stream_adjust_vmin_vmax(core_freesync->dc, streams, |
603 | adjust_vmin_vmax(core_freesync->dc, streams, | 592 | num_streams, v_total_min, |
604 | num_streams, v_total_min, | 593 | v_total_max); |
605 | v_total_max); | ||
606 | 594 | ||
607 | return true; | 595 | return true; |
608 | 596 | ||
@@ -625,8 +613,7 @@ static bool set_freesync_on_streams(struct core_freesync *core_freesync, | |||
625 | core_freesync, | 613 | core_freesync, |
626 | streams[stream_idx]); | 614 | streams[stream_idx]); |
627 | 615 | ||
628 | core_freesync->dc->stream_funcs. | 616 | dc_stream_adjust_vmin_vmax( |
629 | adjust_vmin_vmax( | ||
630 | core_freesync->dc, streams, | 617 | core_freesync->dc, streams, |
631 | num_streams, v_total_nominal, | 618 | num_streams, v_total_nominal, |
632 | v_total_nominal); | 619 | v_total_nominal); |
@@ -645,11 +632,9 @@ static bool set_freesync_on_streams(struct core_freesync *core_freesync, | |||
645 | core_freesync, | 632 | core_freesync, |
646 | streams[stream_idx]); | 633 | streams[stream_idx]); |
647 | 634 | ||
648 | core_freesync->dc->stream_funcs. | 635 | dc_stream_adjust_vmin_vmax(core_freesync->dc, streams, |
649 | adjust_vmin_vmax( | 636 | num_streams, v_total_nominal, |
650 | core_freesync->dc, streams, | 637 | v_total_nominal); |
651 | num_streams, v_total_nominal, | ||
652 | v_total_nominal); | ||
653 | 638 | ||
654 | /* Reset the cached variables */ | 639 | /* Reset the cached variables */ |
655 | reset_freesync_state_variables(state); | 640 | reset_freesync_state_variables(state); |
@@ -665,11 +650,9 @@ static bool set_freesync_on_streams(struct core_freesync *core_freesync, | |||
665 | * not support freesync because a former stream has | 650 | * not support freesync because a former stream has |
666 | * be programmed | 651 | * be programmed |
667 | */ | 652 | */ |
668 | core_freesync->dc->stream_funcs. | 653 | dc_stream_adjust_vmin_vmax(core_freesync->dc, streams, |
669 | adjust_vmin_vmax( | 654 | num_streams, v_total_nominal, |
670 | core_freesync->dc, streams, | 655 | v_total_nominal); |
671 | num_streams, v_total_nominal, | ||
672 | v_total_nominal); | ||
673 | /* Reset the cached variables */ | 656 | /* Reset the cached variables */ |
674 | reset_freesync_state_variables(state); | 657 | reset_freesync_state_variables(state); |
675 | } | 658 | } |
@@ -786,9 +769,8 @@ void mod_freesync_handle_v_update(struct mod_freesync *mod_freesync, | |||
786 | vmin = inserted_frame_v_total; | 769 | vmin = inserted_frame_v_total; |
787 | 770 | ||
788 | /* Program V_TOTAL */ | 771 | /* Program V_TOTAL */ |
789 | core_freesync->dc->stream_funcs.adjust_vmin_vmax( | 772 | dc_stream_adjust_vmin_vmax(core_freesync->dc, streams, |
790 | core_freesync->dc, streams, | 773 | num_streams, vmin, vmax); |
791 | num_streams, vmin, vmax); | ||
792 | } | 774 | } |
793 | 775 | ||
794 | if (state->btr.frame_counter > 0) | 776 | if (state->btr.frame_counter > 0) |
@@ -822,17 +804,15 @@ void mod_freesync_handle_v_update(struct mod_freesync *mod_freesync, | |||
822 | update_stream_freesync_context(core_freesync, streams[0]); | 804 | update_stream_freesync_context(core_freesync, streams[0]); |
823 | 805 | ||
824 | /* Program static screen ramp values */ | 806 | /* Program static screen ramp values */ |
825 | core_freesync->dc->stream_funcs.adjust_vmin_vmax( | 807 | dc_stream_adjust_vmin_vmax(core_freesync->dc, streams, |
826 | core_freesync->dc, streams, | 808 | num_streams, v_total, |
827 | num_streams, v_total, | 809 | v_total); |
828 | v_total); | ||
829 | 810 | ||
830 | triggers.overlay_update = true; | 811 | triggers.overlay_update = true; |
831 | triggers.surface_update = true; | 812 | triggers.surface_update = true; |
832 | 813 | ||
833 | core_freesync->dc->stream_funcs.set_static_screen_events( | 814 | dc_stream_set_static_screen_events(core_freesync->dc, streams, |
834 | core_freesync->dc, streams, num_streams, | 815 | num_streams, &triggers); |
835 | &triggers); | ||
836 | } | 816 | } |
837 | } | 817 | } |
838 | 818 | ||
@@ -916,9 +896,8 @@ void mod_freesync_update_state(struct mod_freesync *mod_freesync, | |||
916 | triggers.overlay_update = true; | 896 | triggers.overlay_update = true; |
917 | triggers.surface_update = true; | 897 | triggers.surface_update = true; |
918 | 898 | ||
919 | core_freesync->dc->stream_funcs.set_static_screen_events( | 899 | dc_stream_set_static_screen_events(core_freesync->dc, streams, |
920 | core_freesync->dc, streams, num_streams, | 900 | num_streams, &triggers); |
921 | &triggers); | ||
922 | 901 | ||
923 | if (freesync_program_required) | 902 | if (freesync_program_required) |
924 | /* Program freesync according to current state*/ | 903 | /* Program freesync according to current state*/ |
@@ -1084,10 +1063,9 @@ bool mod_freesync_override_min_max(struct mod_freesync *mod_freesync, | |||
1084 | max_refresh); | 1063 | max_refresh); |
1085 | 1064 | ||
1086 | /* Program vtotal min/max */ | 1065 | /* Program vtotal min/max */ |
1087 | core_freesync->dc->stream_funcs.adjust_vmin_vmax( | 1066 | dc_stream_adjust_vmin_vmax(core_freesync->dc, &streams, 1, |
1088 | core_freesync->dc, &streams, 1, | 1067 | state->freesync_range.vmin, |
1089 | state->freesync_range.vmin, | 1068 | state->freesync_range.vmax); |
1090 | state->freesync_range.vmax); | ||
1091 | } | 1069 | } |
1092 | 1070 | ||
1093 | if (min_refresh != 0 && | 1071 | if (min_refresh != 0 && |
@@ -1163,9 +1141,9 @@ bool mod_freesync_get_v_position(struct mod_freesync *mod_freesync, | |||
1163 | core_freesync = MOD_FREESYNC_TO_CORE(mod_freesync); | 1141 | core_freesync = MOD_FREESYNC_TO_CORE(mod_freesync); |
1164 | index = map_index_from_stream(core_freesync, stream); | 1142 | index = map_index_from_stream(core_freesync, stream); |
1165 | 1143 | ||
1166 | if (core_freesync->dc->stream_funcs.get_crtc_position( | 1144 | if (dc_stream_get_crtc_position(core_freesync->dc, &stream, 1, |
1167 | core_freesync->dc, &stream, 1, | 1145 | &position.vertical_count, |
1168 | &position.vertical_count, &position.nominal_vcount)) { | 1146 | &position.nominal_vcount)) { |
1169 | 1147 | ||
1170 | *nom_v_pos = position.nominal_vcount; | 1148 | *nom_v_pos = position.nominal_vcount; |
1171 | *v_pos = position.vertical_count; | 1149 | *v_pos = position.vertical_count; |
@@ -1223,9 +1201,9 @@ void mod_freesync_notify_mode_change(struct mod_freesync *mod_freesync, | |||
1223 | triggers.overlay_update = true; | 1201 | triggers.overlay_update = true; |
1224 | triggers.surface_update = true; | 1202 | triggers.surface_update = true; |
1225 | 1203 | ||
1226 | core_freesync->dc->stream_funcs.set_static_screen_events( | 1204 | dc_stream_set_static_screen_events(core_freesync->dc, |
1227 | core_freesync->dc, streams, num_streams, | 1205 | streams, num_streams, |
1228 | &triggers); | 1206 | &triggers); |
1229 | } | 1207 | } |
1230 | } | 1208 | } |
1231 | 1209 | ||
@@ -1424,10 +1402,8 @@ static void apply_fixed_refresh(struct core_freesync *core_freesync, | |||
1424 | 1402 | ||
1425 | vmax = vmin; | 1403 | vmax = vmin; |
1426 | 1404 | ||
1427 | core_freesync->dc->stream_funcs.adjust_vmin_vmax( | 1405 | dc_stream_adjust_vmin_vmax(core_freesync->dc, &stream, |
1428 | core_freesync->dc, &stream, | 1406 | 1, vmin, vmax); |
1429 | 1, vmin, | ||
1430 | vmax); | ||
1431 | } | 1407 | } |
1432 | } | 1408 | } |
1433 | 1409 | ||