Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>

+13 -7
+5 -3
drivers/gpu/drm/rcar-du/rcar_du_encoder.c
··· 33 33 { 34 34 struct rcar_du_connector *rcon = to_rcar_connector(connector); 35 35 36 - return &rcon->encoder->encoder; 36 + return rcar_encoder_to_drm_encoder(rcon->encoder); 37 37 } 38 38 39 39 /* ----------------------------------------------------------------------------- ··· 146 146 struct device_node *con_node) 147 147 { 148 148 struct rcar_du_encoder *renc; 149 + struct drm_encoder *encoder; 149 150 unsigned int encoder_type; 150 151 int ret; 151 152 ··· 155 154 return -ENOMEM; 156 155 157 156 renc->output = output; 157 + encoder = rcar_encoder_to_drm_encoder(renc); 158 158 159 159 switch (output) { 160 160 case RCAR_DU_OUTPUT_LVDS0: ··· 184 182 break; 185 183 } 186 184 187 - ret = drm_encoder_init(rcdu->ddev, &renc->encoder, &encoder_funcs, 185 + ret = drm_encoder_init(rcdu->ddev, encoder, &encoder_funcs, 188 186 encoder_type); 189 187 if (ret < 0) 190 188 return ret; 191 189 192 - drm_encoder_helper_add(&renc->encoder, &encoder_helper_funcs); 190 + drm_encoder_helper_add(encoder, &encoder_helper_funcs); 193 191 194 192 switch (encoder_type) { 195 193 case DRM_MODE_ENCODER_LVDS:
+2
drivers/gpu/drm/rcar-du/rcar_du_encoder.h
··· 35 35 #define to_rcar_encoder(e) \ 36 36 container_of(e, struct rcar_du_encoder, encoder) 37 37 38 + #define rcar_encoder_to_drm_encoder(e) (&(e)->encoder) 39 + 38 40 struct rcar_du_connector { 39 41 struct drm_connector connector; 40 42 struct rcar_du_encoder *encoder;
+3 -2
drivers/gpu/drm/rcar-du/rcar_du_lvdscon.c
··· 84 84 struct rcar_du_encoder *renc, 85 85 /* TODO const */ struct device_node *np) 86 86 { 87 + struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(renc); 87 88 struct rcar_du_lvds_connector *lvdscon; 88 89 struct drm_connector *connector; 89 90 struct display_timing timing; ··· 121 120 drm_object_property_set_value(&connector->base, 122 121 rcdu->ddev->mode_config.dpms_property, DRM_MODE_DPMS_OFF); 123 122 124 - ret = drm_mode_connector_attach_encoder(connector, &renc->encoder); 123 + ret = drm_mode_connector_attach_encoder(connector, encoder); 125 124 if (ret < 0) 126 125 return ret; 127 126 128 - connector->encoder = &renc->encoder; 127 + connector->encoder = encoder; 129 128 lvdscon->connector.encoder = renc; 130 129 131 130 return 0;
+3 -2
drivers/gpu/drm/rcar-du/rcar_du_vgacon.c
··· 52 52 int rcar_du_vga_connector_init(struct rcar_du_device *rcdu, 53 53 struct rcar_du_encoder *renc) 54 54 { 55 + struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(renc); 55 56 struct rcar_du_connector *rcon; 56 57 struct drm_connector *connector; 57 58 int ret; ··· 79 78 drm_object_property_set_value(&connector->base, 80 79 rcdu->ddev->mode_config.dpms_property, DRM_MODE_DPMS_OFF); 81 80 82 - ret = drm_mode_connector_attach_encoder(connector, &renc->encoder); 81 + ret = drm_mode_connector_attach_encoder(connector, encoder); 83 82 if (ret < 0) 84 83 return ret; 85 84 86 - connector->encoder = &renc->encoder; 85 + connector->encoder = encoder; 87 86 rcon->encoder = renc; 88 87 89 88 return 0;