aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c3
-rw-r--r--drivers/gpu/drm/drm_atomic_helper.c13
-rw-r--r--drivers/gpu/drm/drm_plane_helper.c5
-rw-r--r--drivers/gpu/drm/i915/intel_display.c6
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h6
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c6
-rw-r--r--drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c6
-rw-r--r--drivers/gpu/drm/tegra/dc.c6
8 files changed, 33 insertions, 18 deletions
diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
index dbf97d999d40..be9fa8220499 100644
--- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
+++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c
@@ -712,7 +712,8 @@ static int atmel_hlcdc_plane_atomic_check(struct drm_plane *p,
712} 712}
713 713
714static int atmel_hlcdc_plane_prepare_fb(struct drm_plane *p, 714static int atmel_hlcdc_plane_prepare_fb(struct drm_plane *p,
715 struct drm_framebuffer *fb) 715 struct drm_framebuffer *fb,
716 const struct drm_plane_state *new_state)
716{ 717{
717 struct atmel_hlcdc_plane *plane = drm_plane_to_atmel_hlcdc_plane(p); 718 struct atmel_hlcdc_plane *plane = drm_plane_to_atmel_hlcdc_plane(p);
718 719
diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
index 28aa87510551..7715c40d4e74 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -1116,6 +1116,7 @@ int drm_atomic_helper_prepare_planes(struct drm_device *dev,
1116 for (i = 0; i < nplanes; i++) { 1116 for (i = 0; i < nplanes; i++) {
1117 struct drm_plane_helper_funcs *funcs; 1117 struct drm_plane_helper_funcs *funcs;
1118 struct drm_plane *plane = state->planes[i]; 1118 struct drm_plane *plane = state->planes[i];
1119 struct drm_plane_state *plane_state = state->plane_states[i];
1119 struct drm_framebuffer *fb; 1120 struct drm_framebuffer *fb;
1120 1121
1121 if (!plane) 1122 if (!plane)
@@ -1123,10 +1124,10 @@ int drm_atomic_helper_prepare_planes(struct drm_device *dev,
1123 1124
1124 funcs = plane->helper_private; 1125 funcs = plane->helper_private;
1125 1126
1126 fb = state->plane_states[i]->fb; 1127 fb = plane_state->fb;
1127 1128
1128 if (fb && funcs->prepare_fb) { 1129 if (fb && funcs->prepare_fb) {
1129 ret = funcs->prepare_fb(plane, fb); 1130 ret = funcs->prepare_fb(plane, fb, plane_state);
1130 if (ret) 1131 if (ret)
1131 goto fail; 1132 goto fail;
1132 } 1133 }
@@ -1138,6 +1139,7 @@ fail:
1138 for (i--; i >= 0; i--) { 1139 for (i--; i >= 0; i--) {
1139 struct drm_plane_helper_funcs *funcs; 1140 struct drm_plane_helper_funcs *funcs;
1140 struct drm_plane *plane = state->planes[i]; 1141 struct drm_plane *plane = state->planes[i];
1142 struct drm_plane_state *plane_state = state->plane_states[i];
1141 struct drm_framebuffer *fb; 1143 struct drm_framebuffer *fb;
1142 1144
1143 if (!plane) 1145 if (!plane)
@@ -1148,7 +1150,7 @@ fail:
1148 fb = state->plane_states[i]->fb; 1150 fb = state->plane_states[i]->fb;
1149 1151
1150 if (fb && funcs->cleanup_fb) 1152 if (fb && funcs->cleanup_fb)
1151 funcs->cleanup_fb(plane, fb); 1153 funcs->cleanup_fb(plane, fb, plane_state);
1152 1154
1153 } 1155 }
1154 1156
@@ -1254,6 +1256,7 @@ void drm_atomic_helper_cleanup_planes(struct drm_device *dev,
1254 for (i = 0; i < nplanes; i++) { 1256 for (i = 0; i < nplanes; i++) {
1255 struct drm_plane_helper_funcs *funcs; 1257 struct drm_plane_helper_funcs *funcs;
1256 struct drm_plane *plane = old_state->planes[i]; 1258 struct drm_plane *plane = old_state->planes[i];
1259 struct drm_plane_state *plane_state = old_state->plane_states[i];
1257 struct drm_framebuffer *old_fb; 1260 struct drm_framebuffer *old_fb;
1258 1261
1259 if (!plane) 1262 if (!plane)
@@ -1261,10 +1264,10 @@ void drm_atomic_helper_cleanup_planes(struct drm_device *dev,
1261 1264
1262 funcs = plane->helper_private; 1265 funcs = plane->helper_private;
1263 1266
1264 old_fb = old_state->plane_states[i]->fb; 1267 old_fb = plane_state->fb;
1265 1268
1266 if (old_fb && funcs->cleanup_fb) 1269 if (old_fb && funcs->cleanup_fb)
1267 funcs->cleanup_fb(plane, old_fb); 1270 funcs->cleanup_fb(plane, old_fb, plane_state);
1268 } 1271 }
1269} 1272}
1270EXPORT_SYMBOL(drm_atomic_helper_cleanup_planes); 1273EXPORT_SYMBOL(drm_atomic_helper_cleanup_planes);
diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c
index 5ba5792bfdba..813a06627eb3 100644
--- a/drivers/gpu/drm/drm_plane_helper.c
+++ b/drivers/gpu/drm/drm_plane_helper.c
@@ -437,7 +437,8 @@ int drm_plane_helper_commit(struct drm_plane *plane,
437 437
438 if (plane_funcs->prepare_fb && plane_state->fb && 438 if (plane_funcs->prepare_fb && plane_state->fb &&
439 plane_state->fb != old_fb) { 439 plane_state->fb != old_fb) {
440 ret = plane_funcs->prepare_fb(plane, plane_state->fb); 440 ret = plane_funcs->prepare_fb(plane, plane_state->fb,
441 plane_state);
441 if (ret) 442 if (ret)
442 goto out; 443 goto out;
443 } 444 }
@@ -487,7 +488,7 @@ int drm_plane_helper_commit(struct drm_plane *plane,
487 } 488 }
488 489
489 if (plane_funcs->cleanup_fb && old_fb) 490 if (plane_funcs->cleanup_fb && old_fb)
490 plane_funcs->cleanup_fb(plane, old_fb); 491 plane_funcs->cleanup_fb(plane, old_fb, plane_state);
491out: 492out:
492 if (plane_state) { 493 if (plane_state) {
493 if (plane->funcs->atomic_destroy_state) 494 if (plane->funcs->atomic_destroy_state)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 3b0fe9f1f3c9..c234af0379fc 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -11776,7 +11776,8 @@ static void intel_shared_dpll_init(struct drm_device *dev)
11776 */ 11776 */
11777int 11777int
11778intel_prepare_plane_fb(struct drm_plane *plane, 11778intel_prepare_plane_fb(struct drm_plane *plane,
11779 struct drm_framebuffer *fb) 11779 struct drm_framebuffer *fb,
11780 const struct drm_plane_state *new_state)
11780{ 11781{
11781 struct drm_device *dev = plane->dev; 11782 struct drm_device *dev = plane->dev;
11782 struct intel_plane *intel_plane = to_intel_plane(plane); 11783 struct intel_plane *intel_plane = to_intel_plane(plane);
@@ -11830,7 +11831,8 @@ intel_prepare_plane_fb(struct drm_plane *plane,
11830 */ 11831 */
11831void 11832void
11832intel_cleanup_plane_fb(struct drm_plane *plane, 11833intel_cleanup_plane_fb(struct drm_plane *plane,
11833 struct drm_framebuffer *fb) 11834 struct drm_framebuffer *fb,
11835 const struct drm_plane_state *old_state)
11834{ 11836{
11835 struct drm_device *dev = plane->dev; 11837 struct drm_device *dev = plane->dev;
11836 struct drm_i915_gem_object *obj = intel_fb_obj(fb); 11838 struct drm_i915_gem_object *obj = intel_fb_obj(fb);
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 1de8e20474d7..58d11a8066d4 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -943,9 +943,11 @@ void intel_finish_page_flip(struct drm_device *dev, int pipe);
943void intel_finish_page_flip_plane(struct drm_device *dev, int plane); 943void intel_finish_page_flip_plane(struct drm_device *dev, int plane);
944void intel_check_page_flip(struct drm_device *dev, int pipe); 944void intel_check_page_flip(struct drm_device *dev, int pipe);
945int intel_prepare_plane_fb(struct drm_plane *plane, 945int intel_prepare_plane_fb(struct drm_plane *plane,
946 struct drm_framebuffer *fb); 946 struct drm_framebuffer *fb,
947 const struct drm_plane_state *new_state);
947void intel_cleanup_plane_fb(struct drm_plane *plane, 948void intel_cleanup_plane_fb(struct drm_plane *plane,
948 struct drm_framebuffer *fb); 949 struct drm_framebuffer *fb,
950 const struct drm_plane_state *old_state);
949int intel_plane_atomic_get_property(struct drm_plane *plane, 951int intel_plane_atomic_get_property(struct drm_plane *plane,
950 const struct drm_plane_state *state, 952 const struct drm_plane_state *state,
951 struct drm_property *property, 953 struct drm_property *property,
diff --git a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
index cde25009203a..dbc068988377 100644
--- a/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c
@@ -83,7 +83,8 @@ static const struct drm_plane_funcs mdp4_plane_funcs = {
83}; 83};
84 84
85static int mdp4_plane_prepare_fb(struct drm_plane *plane, 85static int mdp4_plane_prepare_fb(struct drm_plane *plane,
86 struct drm_framebuffer *fb) 86 struct drm_framebuffer *fb,
87 const struct drm_plane_state *new_state)
87{ 88{
88 struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane); 89 struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane);
89 struct mdp4_kms *mdp4_kms = get_kms(plane); 90 struct mdp4_kms *mdp4_kms = get_kms(plane);
@@ -93,7 +94,8 @@ static int mdp4_plane_prepare_fb(struct drm_plane *plane,
93} 94}
94 95
95static void mdp4_plane_cleanup_fb(struct drm_plane *plane, 96static void mdp4_plane_cleanup_fb(struct drm_plane *plane,
96 struct drm_framebuffer *fb) 97 struct drm_framebuffer *fb,
98 const struct drm_plane_state *old_state)
97{ 99{
98 struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane); 100 struct mdp4_plane *mdp4_plane = to_mdp4_plane(plane);
99 struct mdp4_kms *mdp4_kms = get_kms(plane); 101 struct mdp4_kms *mdp4_kms = get_kms(plane);
diff --git a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
index 05cf9ab2a876..6bd48e246283 100644
--- a/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
+++ b/drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c
@@ -156,7 +156,8 @@ static const struct drm_plane_funcs mdp5_plane_funcs = {
156}; 156};
157 157
158static int mdp5_plane_prepare_fb(struct drm_plane *plane, 158static int mdp5_plane_prepare_fb(struct drm_plane *plane,
159 struct drm_framebuffer *fb) 159 struct drm_framebuffer *fb,
160 const struct drm_plane_state *new_state)
160{ 161{
161 struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane); 162 struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
162 struct mdp5_kms *mdp5_kms = get_kms(plane); 163 struct mdp5_kms *mdp5_kms = get_kms(plane);
@@ -166,7 +167,8 @@ static int mdp5_plane_prepare_fb(struct drm_plane *plane,
166} 167}
167 168
168static void mdp5_plane_cleanup_fb(struct drm_plane *plane, 169static void mdp5_plane_cleanup_fb(struct drm_plane *plane,
169 struct drm_framebuffer *fb) 170 struct drm_framebuffer *fb,
171 const struct drm_plane_state *old_state)
170{ 172{
171 struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane); 173 struct mdp5_plane *mdp5_plane = to_mdp5_plane(plane);
172 struct mdp5_kms *mdp5_kms = get_kms(plane); 174 struct mdp5_kms *mdp5_kms = get_kms(plane);
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
index 3aaa84ae2681..bc3e85186b88 100644
--- a/drivers/gpu/drm/tegra/dc.c
+++ b/drivers/gpu/drm/tegra/dc.c
@@ -472,13 +472,15 @@ static const struct drm_plane_funcs tegra_primary_plane_funcs = {
472}; 472};
473 473
474static int tegra_plane_prepare_fb(struct drm_plane *plane, 474static int tegra_plane_prepare_fb(struct drm_plane *plane,
475 struct drm_framebuffer *fb) 475 struct drm_framebuffer *fb,
476 const struct drm_plane_state *new_state)
476{ 477{
477 return 0; 478 return 0;
478} 479}
479 480
480static void tegra_plane_cleanup_fb(struct drm_plane *plane, 481static void tegra_plane_cleanup_fb(struct drm_plane *plane,
481 struct drm_framebuffer *fb) 482 struct drm_framebuffer *fb,
483 const struct drm_plane_state *old_fb)
482{ 484{
483} 485}
484 486