Commit 69746b41 authored by Laurent Pinchart's avatar Laurent Pinchart

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: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
parent 4b96b70c
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#define __RCAR_DU_ENCODER_H__ #define __RCAR_DU_ENCODER_H__
#include <drm/drm_crtc.h> #include <drm/drm_crtc.h>
#include <drm/drm_encoder_slave.h>
struct rcar_du_device; struct rcar_du_device;
struct rcar_du_lvdsenc; struct rcar_du_lvdsenc;
...@@ -27,15 +28,15 @@ enum rcar_du_encoder_type { ...@@ -27,15 +28,15 @@ enum rcar_du_encoder_type {
}; };
struct rcar_du_encoder { struct rcar_du_encoder {
struct drm_encoder encoder; struct drm_encoder_slave slave;
enum rcar_du_output output; enum rcar_du_output output;
struct rcar_du_lvdsenc *lvds; struct rcar_du_lvdsenc *lvds;
}; };
#define to_rcar_encoder(e) \ #define to_rcar_encoder(e) \
container_of(e, struct rcar_du_encoder, encoder) container_of(e, struct rcar_du_encoder, slave.base)
#define rcar_encoder_to_drm_encoder(e) (&(e)->encoder) #define rcar_encoder_to_drm_encoder(e) (&(e)->slave.base)
struct rcar_du_connector { struct rcar_du_connector {
struct drm_connector connector; struct drm_connector connector;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment