forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/gpu/drm/msm/disp/mdp4/mdp4_dtv_encoder.c
....@@ -1,22 +1,11 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Copyright (C) 2013 Red Hat
34 * Author: Rob Clark <robdclark@gmail.com>
4
- *
5
- * This program is free software; you can redistribute it and/or modify it
6
- * under the terms of the GNU General Public License version 2 as published by
7
- * the Free Software Foundation.
8
- *
9
- * This program is distributed in the hope that it will be useful, but WITHOUT
10
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
- * more details.
13
- *
14
- * You should have received a copy of the GNU General Public License along with
15
- * this program. If not, see <http://www.gnu.org/licenses/>.
165 */
176
187 #include <drm/drm_crtc.h>
19
-#include <drm/drm_crtc_helper.h>
8
+#include <drm/drm_probe_helper.h>
209
2110 #include "mdp4_kms.h"
2211
....@@ -36,54 +25,9 @@
3625 return to_mdp4_kms(to_mdp_kms(priv->kms));
3726 }
3827
39
-#ifdef DOWNSTREAM_CONFIG_MSM_BUS_SCALING
40
-#include <mach/board.h>
41
-/* not ironically named at all.. no, really.. */
42
-static void bs_init(struct mdp4_dtv_encoder *mdp4_dtv_encoder)
43
-{
44
- struct drm_device *dev = mdp4_dtv_encoder->base.dev;
45
- struct lcdc_platform_data *dtv_pdata = mdp4_find_pdata("dtv.0");
46
-
47
- if (!dtv_pdata) {
48
- dev_err(dev->dev, "could not find dtv pdata\n");
49
- return;
50
- }
51
-
52
- if (dtv_pdata->bus_scale_table) {
53
- mdp4_dtv_encoder->bsc = msm_bus_scale_register_client(
54
- dtv_pdata->bus_scale_table);
55
- DBG("bus scale client: %08x", mdp4_dtv_encoder->bsc);
56
- DBG("lcdc_power_save: %p", dtv_pdata->lcdc_power_save);
57
- if (dtv_pdata->lcdc_power_save)
58
- dtv_pdata->lcdc_power_save(1);
59
- }
60
-}
61
-
62
-static void bs_fini(struct mdp4_dtv_encoder *mdp4_dtv_encoder)
63
-{
64
- if (mdp4_dtv_encoder->bsc) {
65
- msm_bus_scale_unregister_client(mdp4_dtv_encoder->bsc);
66
- mdp4_dtv_encoder->bsc = 0;
67
- }
68
-}
69
-
70
-static void bs_set(struct mdp4_dtv_encoder *mdp4_dtv_encoder, int idx)
71
-{
72
- if (mdp4_dtv_encoder->bsc) {
73
- DBG("set bus scaling: %d", idx);
74
- msm_bus_scale_client_update_request(mdp4_dtv_encoder->bsc, idx);
75
- }
76
-}
77
-#else
78
-static void bs_init(struct mdp4_dtv_encoder *mdp4_dtv_encoder) {}
79
-static void bs_fini(struct mdp4_dtv_encoder *mdp4_dtv_encoder) {}
80
-static void bs_set(struct mdp4_dtv_encoder *mdp4_dtv_encoder, int idx) {}
81
-#endif
82
-
8328 static void mdp4_dtv_encoder_destroy(struct drm_encoder *encoder)
8429 {
8530 struct mdp4_dtv_encoder *mdp4_dtv_encoder = to_mdp4_dtv_encoder(encoder);
86
- bs_fini(mdp4_dtv_encoder);
8731 drm_encoder_cleanup(encoder);
8832 kfree(mdp4_dtv_encoder);
8933 }
....@@ -104,14 +48,7 @@
10448
10549 mode = adjusted_mode;
10650
107
- DBG("set mode: %d:\"%s\" %d %d %d %d %d %d %d %d %d %d 0x%x 0x%x",
108
- mode->base.id, mode->name,
109
- mode->vrefresh, mode->clock,
110
- mode->hdisplay, mode->hsync_start,
111
- mode->hsync_end, mode->htotal,
112
- mode->vdisplay, mode->vsync_start,
113
- mode->vsync_end, mode->vtotal,
114
- mode->type, mode->flags);
51
+ DBG("set mode: " DRM_MODE_FMT, DRM_MODE_ARG(mode));
11552
11653 mdp4_dtv_encoder->pixclock = mode->clock * 1000;
11754
....@@ -180,8 +117,6 @@
180117 clk_disable_unprepare(mdp4_dtv_encoder->hdmi_clk);
181118 clk_disable_unprepare(mdp4_dtv_encoder->mdp_clk);
182119
183
- bs_set(mdp4_dtv_encoder, 0);
184
-
185120 mdp4_dtv_encoder->enabled = false;
186121 }
187122
....@@ -203,22 +138,20 @@
203138 MDP4_DMA_CONFIG_PACK(0x21));
204139 mdp4_crtc_set_intf(encoder->crtc, INTF_LCDC_DTV, 1);
205140
206
- bs_set(mdp4_dtv_encoder, 1);
207
-
208141 DBG("setting mdp_clk=%lu", pc);
209142
210143 ret = clk_set_rate(mdp4_dtv_encoder->mdp_clk, pc);
211144 if (ret)
212
- dev_err(dev->dev, "failed to set mdp_clk to %lu: %d\n",
145
+ DRM_DEV_ERROR(dev->dev, "failed to set mdp_clk to %lu: %d\n",
213146 pc, ret);
214147
215148 ret = clk_prepare_enable(mdp4_dtv_encoder->mdp_clk);
216149 if (ret)
217
- dev_err(dev->dev, "failed to enabled mdp_clk: %d\n", ret);
150
+ DRM_DEV_ERROR(dev->dev, "failed to enabled mdp_clk: %d\n", ret);
218151
219152 ret = clk_prepare_enable(mdp4_dtv_encoder->hdmi_clk);
220153 if (ret)
221
- dev_err(dev->dev, "failed to enable hdmi_clk: %d\n", ret);
154
+ DRM_DEV_ERROR(dev->dev, "failed to enable hdmi_clk: %d\n", ret);
222155
223156 mdp4_write(mdp4_kms, REG_MDP4_DTV_ENABLE, 1);
224157
....@@ -258,19 +191,17 @@
258191
259192 mdp4_dtv_encoder->hdmi_clk = devm_clk_get(dev->dev, "hdmi_clk");
260193 if (IS_ERR(mdp4_dtv_encoder->hdmi_clk)) {
261
- dev_err(dev->dev, "failed to get hdmi_clk\n");
194
+ DRM_DEV_ERROR(dev->dev, "failed to get hdmi_clk\n");
262195 ret = PTR_ERR(mdp4_dtv_encoder->hdmi_clk);
263196 goto fail;
264197 }
265198
266199 mdp4_dtv_encoder->mdp_clk = devm_clk_get(dev->dev, "tv_clk");
267200 if (IS_ERR(mdp4_dtv_encoder->mdp_clk)) {
268
- dev_err(dev->dev, "failed to get tv_clk\n");
201
+ DRM_DEV_ERROR(dev->dev, "failed to get tv_clk\n");
269202 ret = PTR_ERR(mdp4_dtv_encoder->mdp_clk);
270203 goto fail;
271204 }
272
-
273
- bs_init(mdp4_dtv_encoder);
274205
275206 return encoder;
276207