diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-08-14 06:17:12 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-09-29 14:25:55 -0400 |
commit | 78e401f9891a8ecdb075c0ca46f9f43ce0ed0c4e (patch) | |
tree | 336da228fb3b03ac75151807e390d239f6783d1a /drivers/gpu/drm/i2c | |
parent | 3d58e31888318ebd157ba0680fb24cdcd1bc3d6f (diff) |
drm/i2c: tda998x: remove encoder pointer
Remove the encoder pointer from struct tda998x_priv, moving the encoder
itself from struct tda998x_priv2 here.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'drivers/gpu/drm/i2c')
-rw-r--r-- | drivers/gpu/drm/i2c/tda998x_drv.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c index 883025d35f87..e30a2a8c2a3c 100644 --- a/drivers/gpu/drm/i2c/tda998x_drv.c +++ b/drivers/gpu/drm/i2c/tda998x_drv.c | |||
@@ -44,12 +44,13 @@ struct tda998x_priv { | |||
44 | 44 | ||
45 | wait_queue_head_t wq_edid; | 45 | wait_queue_head_t wq_edid; |
46 | volatile int wq_edid_wait; | 46 | volatile int wq_edid_wait; |
47 | struct drm_encoder *encoder; | ||
48 | 47 | ||
49 | struct work_struct detect_work; | 48 | struct work_struct detect_work; |
50 | struct timer_list edid_delay_timer; | 49 | struct timer_list edid_delay_timer; |
51 | wait_queue_head_t edid_delay_waitq; | 50 | wait_queue_head_t edid_delay_waitq; |
52 | bool edid_delay_active; | 51 | bool edid_delay_active; |
52 | |||
53 | struct drm_encoder encoder; | ||
53 | }; | 54 | }; |
54 | 55 | ||
55 | /* The TDA9988 series of devices use a paged register scheme.. to simplify | 56 | /* The TDA9988 series of devices use a paged register scheme.. to simplify |
@@ -594,7 +595,7 @@ static void tda998x_detect_work(struct work_struct *work) | |||
594 | { | 595 | { |
595 | struct tda998x_priv *priv = | 596 | struct tda998x_priv *priv = |
596 | container_of(work, struct tda998x_priv, detect_work); | 597 | container_of(work, struct tda998x_priv, detect_work); |
597 | struct drm_device *dev = priv->encoder->dev; | 598 | struct drm_device *dev = priv->encoder.dev; |
598 | 599 | ||
599 | if (dev) | 600 | if (dev) |
600 | drm_kms_helper_hotplug_event(dev); | 601 | drm_kms_helper_hotplug_event(dev); |
@@ -1330,7 +1331,6 @@ fail: | |||
1330 | 1331 | ||
1331 | struct tda998x_priv2 { | 1332 | struct tda998x_priv2 { |
1332 | struct tda998x_priv base; | 1333 | struct tda998x_priv base; |
1333 | struct drm_encoder encoder; | ||
1334 | struct drm_connector connector; | 1334 | struct drm_connector connector; |
1335 | }; | 1335 | }; |
1336 | 1336 | ||
@@ -1338,7 +1338,7 @@ struct tda998x_priv2 { | |||
1338 | container_of(x, struct tda998x_priv2, connector); | 1338 | container_of(x, struct tda998x_priv2, connector); |
1339 | 1339 | ||
1340 | #define enc_to_tda998x_priv2(x) \ | 1340 | #define enc_to_tda998x_priv2(x) \ |
1341 | container_of(x, struct tda998x_priv2, encoder); | 1341 | container_of(x, struct tda998x_priv2, base.encoder); |
1342 | 1342 | ||
1343 | static void tda998x_encoder2_dpms(struct drm_encoder *encoder, int mode) | 1343 | static void tda998x_encoder2_dpms(struct drm_encoder *encoder, int mode) |
1344 | { | 1344 | { |
@@ -1408,7 +1408,7 @@ tda998x_connector_best_encoder(struct drm_connector *connector) | |||
1408 | { | 1408 | { |
1409 | struct tda998x_priv2 *priv = conn_to_tda998x_priv2(connector); | 1409 | struct tda998x_priv2 *priv = conn_to_tda998x_priv2(connector); |
1410 | 1410 | ||
1411 | return &priv->encoder; | 1411 | return &priv->base.encoder; |
1412 | } | 1412 | } |
1413 | 1413 | ||
1414 | static | 1414 | static |
@@ -1463,9 +1463,8 @@ static int tda998x_bind(struct device *dev, struct device *master, void *data) | |||
1463 | crtcs = 1 << 0; | 1463 | crtcs = 1 << 0; |
1464 | } | 1464 | } |
1465 | 1465 | ||
1466 | priv->base.encoder = &priv->encoder; | ||
1467 | priv->connector.interlace_allowed = 1; | 1466 | priv->connector.interlace_allowed = 1; |
1468 | priv->encoder.possible_crtcs = crtcs; | 1467 | priv->base.encoder.possible_crtcs = crtcs; |
1469 | 1468 | ||
1470 | ret = tda998x_create(client, &priv->base); | 1469 | ret = tda998x_create(client, &priv->base); |
1471 | if (ret) | 1470 | if (ret) |
@@ -1476,8 +1475,8 @@ static int tda998x_bind(struct device *dev, struct device *master, void *data) | |||
1476 | 1475 | ||
1477 | tda998x_encoder_set_polling(&priv->base, &priv->connector); | 1476 | tda998x_encoder_set_polling(&priv->base, &priv->connector); |
1478 | 1477 | ||
1479 | drm_encoder_helper_add(&priv->encoder, &tda998x_encoder_helper_funcs); | 1478 | drm_encoder_helper_add(&priv->base.encoder, &tda998x_encoder_helper_funcs); |
1480 | ret = drm_encoder_init(drm, &priv->encoder, &tda998x_encoder_funcs, | 1479 | ret = drm_encoder_init(drm, &priv->base.encoder, &tda998x_encoder_funcs, |
1481 | DRM_MODE_ENCODER_TMDS); | 1480 | DRM_MODE_ENCODER_TMDS); |
1482 | if (ret) | 1481 | if (ret) |
1483 | goto err_encoder; | 1482 | goto err_encoder; |
@@ -1494,15 +1493,15 @@ static int tda998x_bind(struct device *dev, struct device *master, void *data) | |||
1494 | if (ret) | 1493 | if (ret) |
1495 | goto err_sysfs; | 1494 | goto err_sysfs; |
1496 | 1495 | ||
1497 | priv->connector.encoder = &priv->encoder; | 1496 | priv->connector.encoder = &priv->base.encoder; |
1498 | drm_mode_connector_attach_encoder(&priv->connector, &priv->encoder); | 1497 | drm_mode_connector_attach_encoder(&priv->connector, &priv->base.encoder); |
1499 | 1498 | ||
1500 | return 0; | 1499 | return 0; |
1501 | 1500 | ||
1502 | err_sysfs: | 1501 | err_sysfs: |
1503 | drm_connector_cleanup(&priv->connector); | 1502 | drm_connector_cleanup(&priv->connector); |
1504 | err_connector: | 1503 | err_connector: |
1505 | drm_encoder_cleanup(&priv->encoder); | 1504 | drm_encoder_cleanup(&priv->base.encoder); |
1506 | err_encoder: | 1505 | err_encoder: |
1507 | tda998x_destroy(&priv->base); | 1506 | tda998x_destroy(&priv->base); |
1508 | return ret; | 1507 | return ret; |
@@ -1514,7 +1513,7 @@ static void tda998x_unbind(struct device *dev, struct device *master, | |||
1514 | struct tda998x_priv2 *priv = dev_get_drvdata(dev); | 1513 | struct tda998x_priv2 *priv = dev_get_drvdata(dev); |
1515 | 1514 | ||
1516 | drm_connector_cleanup(&priv->connector); | 1515 | drm_connector_cleanup(&priv->connector); |
1517 | drm_encoder_cleanup(&priv->encoder); | 1516 | drm_encoder_cleanup(&priv->base.encoder); |
1518 | tda998x_destroy(&priv->base); | 1517 | tda998x_destroy(&priv->base); |
1519 | } | 1518 | } |
1520 | 1519 | ||