|
@@ -366,10 +366,17 @@ static void malidp_de_plane_update(struct drm_plane *plane,
|
|
|
LAYER_V_VAL(plane->state->crtc_y),
|
|
|
mp->layer->base + MALIDP_LAYER_OFFSET);
|
|
|
|
|
|
- if (mp->layer->id == DE_SMART)
|
|
|
+ if (mp->layer->id == DE_SMART) {
|
|
|
+ /*
|
|
|
+ * Enable the first rectangle in the SMART layer to be
|
|
|
+ * able to use it as a drm plane.
|
|
|
+ */
|
|
|
+ malidp_hw_write(mp->hwdev, 1,
|
|
|
+ mp->layer->base + MALIDP550_LS_ENABLE);
|
|
|
malidp_hw_write(mp->hwdev,
|
|
|
LAYER_H_VAL(src_w) | LAYER_V_VAL(src_h),
|
|
|
mp->layer->base + MALIDP550_LS_R1_IN_SIZE);
|
|
|
+ }
|
|
|
|
|
|
/* first clear the rotation bits */
|
|
|
val = malidp_hw_read(mp->hwdev, mp->layer->base + MALIDP_LAYER_CONTROL);
|
|
@@ -484,12 +491,6 @@ int malidp_de_planes_init(struct drm_device *drm)
|
|
|
plane->layer = &map->layers[i];
|
|
|
|
|
|
if (id == DE_SMART) {
|
|
|
- /*
|
|
|
- * Enable the first rectangle in the SMART layer to be
|
|
|
- * able to use it as a drm plane.
|
|
|
- */
|
|
|
- malidp_hw_write(malidp->dev, 1,
|
|
|
- plane->layer->base + MALIDP550_LS_ENABLE);
|
|
|
/* Skip the features which the SMART layer doesn't have. */
|
|
|
continue;
|
|
|
}
|