forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/drivers/gpu/drm/gma500/cdv_intel_dp.c
....@@ -26,16 +26,18 @@
2626 */
2727
2828 #include <linux/i2c.h>
29
-#include <linux/slab.h>
3029 #include <linux/module.h>
31
-#include <drm/drmP.h>
30
+#include <linux/slab.h>
31
+
3232 #include <drm/drm_crtc.h>
3333 #include <drm/drm_crtc_helper.h>
34
+#include <drm/drm_dp_helper.h>
35
+#include <drm/drm_simple_kms_helper.h>
36
+
37
+#include "gma_display.h"
3438 #include "psb_drv.h"
3539 #include "psb_intel_drv.h"
3640 #include "psb_intel_reg.h"
37
-#include "gma_display.h"
38
-#include <drm/drm_dp_helper.h>
3941
4042 /**
4143 * struct i2c_algo_dp_aux_data - driver interface structure for i2c over dp
....@@ -1270,37 +1272,8 @@
12701272 return ((l >> s) & 3) << DP_TRAIN_PRE_EMPHASIS_SHIFT;
12711273 }
12721274
1273
-
1274
-#if 0
1275
-static char *voltage_names[] = {
1276
- "0.4V", "0.6V", "0.8V", "1.2V"
1277
-};
1278
-static char *pre_emph_names[] = {
1279
- "0dB", "3.5dB", "6dB", "9.5dB"
1280
-};
1281
-static char *link_train_names[] = {
1282
- "pattern 1", "pattern 2", "idle", "off"
1283
-};
1284
-#endif
1285
-
12861275 #define CDV_DP_VOLTAGE_MAX DP_TRAIN_VOLTAGE_SWING_LEVEL_3
1287
-/*
1288
-static uint8_t
1289
-cdv_intel_dp_pre_emphasis_max(uint8_t voltage_swing)
1290
-{
1291
- switch (voltage_swing & DP_TRAIN_VOLTAGE_SWING_MASK) {
1292
- case DP_TRAIN_VOLTAGE_SWING_400:
1293
- return DP_TRAIN_PRE_EMPHASIS_6;
1294
- case DP_TRAIN_VOLTAGE_SWING_600:
1295
- return DP_TRAIN_PRE_EMPHASIS_6;
1296
- case DP_TRAIN_VOLTAGE_SWING_800:
1297
- return DP_TRAIN_PRE_EMPHASIS_3_5;
1298
- case DP_TRAIN_VOLTAGE_SWING_1200:
1299
- default:
1300
- return DP_TRAIN_PRE_EMPHASIS_0;
1301
- }
1302
-}
1303
-*/
1276
+
13041277 static void
13051278 cdv_intel_get_adjust_train(struct gma_encoder *encoder)
13061279 {
....@@ -1593,7 +1566,6 @@
15931566 {
15941567 struct drm_device *dev = encoder->base.dev;
15951568 struct cdv_intel_dp *intel_dp = encoder->dev_priv;
1596
- bool channel_eq = false;
15971569 int tries, cr_tries;
15981570 u32 reg;
15991571 uint32_t DP = intel_dp->DP;
....@@ -1601,7 +1573,6 @@
16011573 /* channel equalization */
16021574 tries = 0;
16031575 cr_tries = 0;
1604
- channel_eq = false;
16051576
16061577 DRM_DEBUG_KMS("\n");
16071578 reg = DP | DP_LINK_TRAIN_PAT_2;
....@@ -1647,7 +1618,6 @@
16471618
16481619 if (cdv_intel_channel_eq_ok(encoder)) {
16491620 DRM_DEBUG_KMS("PT2 train is done\n");
1650
- channel_eq = true;
16511621 break;
16521622 }
16531623
....@@ -1910,11 +1880,6 @@
19101880 kfree(connector);
19111881 }
19121882
1913
-static void cdv_intel_dp_encoder_destroy(struct drm_encoder *encoder)
1914
-{
1915
- drm_encoder_cleanup(encoder);
1916
-}
1917
-
19181883 static const struct drm_encoder_helper_funcs cdv_intel_dp_helper_funcs = {
19191884 .dpms = cdv_intel_dp_dpms,
19201885 .mode_fixup = cdv_intel_dp_mode_fixup,
....@@ -1936,11 +1901,6 @@
19361901 .mode_valid = cdv_intel_dp_mode_valid,
19371902 .best_encoder = gma_best_encoder,
19381903 };
1939
-
1940
-static const struct drm_encoder_funcs cdv_intel_dp_enc_funcs = {
1941
- .destroy = cdv_intel_dp_encoder_destroy,
1942
-};
1943
-
19441904
19451905 static void cdv_intel_dp_add_properties(struct drm_connector *connector)
19461906 {
....@@ -2018,8 +1978,7 @@
20181978 encoder = &gma_encoder->base;
20191979
20201980 drm_connector_init(dev, connector, &cdv_intel_dp_connector_funcs, type);
2021
- drm_encoder_init(dev, encoder, &cdv_intel_dp_enc_funcs,
2022
- DRM_MODE_ENCODER_TMDS, NULL);
1981
+ drm_simple_encoder_init(dev, encoder, DRM_MODE_ENCODER_TMDS);
20231982
20241983 gma_connector_attach_encoder(gma_connector, gma_encoder);
20251984
....@@ -2122,7 +2081,7 @@
21222081 if (ret <= 0) {
21232082 /* if this fails, presume the device is a ghost */
21242083 DRM_INFO("failed to retrieve link info, disabling eDP\n");
2125
- cdv_intel_dp_encoder_destroy(encoder);
2084
+ drm_encoder_cleanup(encoder);
21262085 cdv_intel_dp_destroy(connector);
21272086 goto err_connector;
21282087 } else {