Commit 4b96b70c authored by Laurent Pinchart's avatar Laurent Pinchart

drm: rcar-du: Replace direct DRM encoder access with cast macro

Add a new macro to downcast an rcar_du_encoder pointer to a drm_encoder
pointer and use it. This prepares for the replacement of the
rcar_drm_encoder encoder field with a drm_slave_encoder.
Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
parent 3ea4d5ec
...@@ -33,7 +33,7 @@ rcar_du_connector_best_encoder(struct drm_connector *connector) ...@@ -33,7 +33,7 @@ rcar_du_connector_best_encoder(struct drm_connector *connector)
{ {
struct rcar_du_connector *rcon = to_rcar_connector(connector); struct rcar_du_connector *rcon = to_rcar_connector(connector);
return &rcon->encoder->encoder; return rcar_encoder_to_drm_encoder(rcon->encoder);
} }
/* ----------------------------------------------------------------------------- /* -----------------------------------------------------------------------------
...@@ -146,6 +146,7 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, ...@@ -146,6 +146,7 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu,
struct device_node *con_node) struct device_node *con_node)
{ {
struct rcar_du_encoder *renc; struct rcar_du_encoder *renc;
struct drm_encoder *encoder;
unsigned int encoder_type; unsigned int encoder_type;
int ret; int ret;
...@@ -154,6 +155,7 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, ...@@ -154,6 +155,7 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu,
return -ENOMEM; return -ENOMEM;
renc->output = output; renc->output = output;
encoder = rcar_encoder_to_drm_encoder(renc);
switch (output) { switch (output) {
case RCAR_DU_OUTPUT_LVDS0: case RCAR_DU_OUTPUT_LVDS0:
...@@ -182,12 +184,12 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu, ...@@ -182,12 +184,12 @@ int rcar_du_encoder_init(struct rcar_du_device *rcdu,
break; break;
} }
ret = drm_encoder_init(rcdu->ddev, &renc->encoder, &encoder_funcs, ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs,
encoder_type); encoder_type);
if (ret < 0) if (ret < 0)
return ret; return ret;
drm_encoder_helper_add(&renc->encoder, &encoder_helper_funcs); drm_encoder_helper_add(encoder, &encoder_helper_funcs);
switch (encoder_type) { switch (encoder_type) {
case DRM_MODE_ENCODER_LVDS: case DRM_MODE_ENCODER_LVDS:
......
...@@ -35,6 +35,8 @@ struct rcar_du_encoder { ...@@ -35,6 +35,8 @@ struct rcar_du_encoder {
#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, encoder)
#define rcar_encoder_to_drm_encoder(e) (&(e)->encoder)
struct rcar_du_connector { struct rcar_du_connector {
struct drm_connector connector; struct drm_connector connector;
struct rcar_du_encoder *encoder; struct rcar_du_encoder *encoder;
......
...@@ -84,6 +84,7 @@ int rcar_du_lvds_connector_init(struct rcar_du_device *rcdu, ...@@ -84,6 +84,7 @@ int rcar_du_lvds_connector_init(struct rcar_du_device *rcdu,
struct rcar_du_encoder *renc, struct rcar_du_encoder *renc,
/* TODO const */ struct device_node *np) /* TODO const */ struct device_node *np)
{ {
struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(renc);
struct rcar_du_lvds_connector *lvdscon; struct rcar_du_lvds_connector *lvdscon;
struct drm_connector *connector; struct drm_connector *connector;
struct display_timing timing; struct display_timing timing;
...@@ -120,11 +121,11 @@ int rcar_du_lvds_connector_init(struct rcar_du_device *rcdu, ...@@ -120,11 +121,11 @@ int rcar_du_lvds_connector_init(struct rcar_du_device *rcdu,
drm_object_property_set_value(&connector->base, drm_object_property_set_value(&connector->base,
rcdu->ddev->mode_config.dpms_property, DRM_MODE_DPMS_OFF); rcdu->ddev->mode_config.dpms_property, DRM_MODE_DPMS_OFF);
ret = drm_mode_connector_attach_encoder(connector, &renc->encoder); ret = drm_mode_connector_attach_encoder(connector, encoder);
if (ret < 0) if (ret < 0)
return ret; return ret;
connector->encoder = &renc->encoder; connector->encoder = encoder;
lvdscon->connector.encoder = renc; lvdscon->connector.encoder = renc;
return 0; return 0;
......
...@@ -52,6 +52,7 @@ static const struct drm_connector_funcs connector_funcs = { ...@@ -52,6 +52,7 @@ static const struct drm_connector_funcs connector_funcs = {
int rcar_du_vga_connector_init(struct rcar_du_device *rcdu, int rcar_du_vga_connector_init(struct rcar_du_device *rcdu,
struct rcar_du_encoder *renc) struct rcar_du_encoder *renc)
{ {
struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(renc);
struct rcar_du_connector *rcon; struct rcar_du_connector *rcon;
struct drm_connector *connector; struct drm_connector *connector;
int ret; int ret;
...@@ -78,11 +79,11 @@ int rcar_du_vga_connector_init(struct rcar_du_device *rcdu, ...@@ -78,11 +79,11 @@ int rcar_du_vga_connector_init(struct rcar_du_device *rcdu,
drm_object_property_set_value(&connector->base, drm_object_property_set_value(&connector->base,
rcdu->ddev->mode_config.dpms_property, DRM_MODE_DPMS_OFF); rcdu->ddev->mode_config.dpms_property, DRM_MODE_DPMS_OFF);
ret = drm_mode_connector_attach_encoder(connector, &renc->encoder); ret = drm_mode_connector_attach_encoder(connector, encoder);
if (ret < 0) if (ret < 0)
return ret; return ret;
connector->encoder = &renc->encoder; connector->encoder = encoder;
rcon->encoder = renc; rcon->encoder = renc;
return 0; return 0;
......
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