aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2014-03-30 19:52:01 -0400
committerLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>2014-11-26 13:09:38 -0500
commit69746b4112e3c83442c1df59b7011ab3c5ed2d5a (patch)
tree5dd309f52f2e67f1f736a9414b707984e0882904
parent4b96b70cfa465550eb9d7112c28e8b5a4093e022 (diff)
drm: rcar-du: Replace drm_encoder with drm_slave_encoder
DRM slave encoders require their associated struct drm_encoder instance to be embedded in a struct drm_slave_encoder. This makes processing encoders regardless of their types needlessly and painfully complex in drivers that use a mix of slave encoders and custom encoders. Such a driver will need to either create drm_slave_encoder instances that fake their embedded encoder instance, or to turn all drm_encoder instances into drm_slave_encoder instances. Between the two evils, one must choose the lesser. Use drm_slave_encoder everywhere. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
-rw-r--r--drivers/gpu/drm/rcar-du/rcar_du_encoder.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h
index c6334b4280d9..c4dccdbcff33 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_encoder.h
+++ b/drivers/gpu/drm/rcar-du/rcar_du_encoder.h
@@ -15,6 +15,7 @@
15#define __RCAR_DU_ENCODER_H__ 15#define __RCAR_DU_ENCODER_H__
16 16
17#include <drm/drm_crtc.h> 17#include <drm/drm_crtc.h>
18#include <drm/drm_encoder_slave.h>
18 19
19struct rcar_du_device; 20struct rcar_du_device;
20struct rcar_du_lvdsenc; 21struct rcar_du_lvdsenc;
@@ -27,15 +28,15 @@ enum rcar_du_encoder_type {
27}; 28};
28 29
29struct rcar_du_encoder { 30struct rcar_du_encoder {
30 struct drm_encoder encoder; 31 struct drm_encoder_slave slave;
31 enum rcar_du_output output; 32 enum rcar_du_output output;
32 struct rcar_du_lvdsenc *lvds; 33 struct rcar_du_lvdsenc *lvds;
33}; 34};
34 35
35#define to_rcar_encoder(e) \ 36#define to_rcar_encoder(e) \
36 container_of(e, struct rcar_du_encoder, encoder) 37 container_of(e, struct rcar_du_encoder, slave.base)
37 38
38#define rcar_encoder_to_drm_encoder(e) (&(e)->encoder) 39#define rcar_encoder_to_drm_encoder(e) (&(e)->slave.base)
39 40
40struct rcar_du_connector { 41struct rcar_du_connector {
41 struct drm_connector connector; 42 struct drm_connector connector;