hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/drivers/gpu/drm/sti/sti_tvout.c
....@@ -8,14 +8,18 @@
88
99 #include <linux/clk.h>
1010 #include <linux/component.h>
11
+#include <linux/io.h>
1112 #include <linux/module.h>
1213 #include <linux/of_platform.h>
1314 #include <linux/platform_device.h>
1415 #include <linux/reset.h>
1516 #include <linux/seq_file.h>
1617
17
-#include <drm/drmP.h>
18
-#include <drm/drm_crtc_helper.h>
18
+#include <drm/drm_atomic_helper.h>
19
+#include <drm/drm_debugfs.h>
20
+#include <drm/drm_device.h>
21
+#include <drm/drm_file.h>
22
+#include <drm/drm_print.h>
1923
2024 #include "sti_crtc.h"
2125 #include "sti_drv.h"
....@@ -153,9 +157,9 @@
153157 *
154158 * @tvout: tvout structure
155159 * @reg: register to set
156
- * @cr_r:
157
- * @y_g:
158
- * @cb_b:
160
+ * @cr_r: red chroma or red order
161
+ * @y_g: y or green order
162
+ * @cb_b: blue chroma or blue order
159163 */
160164 static void tvout_vip_set_color_order(struct sti_tvout *tvout, int reg,
161165 u32 cr_r, u32 y_g, u32 cb_b)
....@@ -210,7 +214,7 @@
210214 * @tvout: tvout structure
211215 * @reg: register to set
212216 * @main_path: main or auxiliary path
213
- * @sel_input: selected_input (main/aux + conv)
217
+ * @video_out: selected_input (main/aux + conv)
214218 */
215219 static void tvout_vip_set_sel_input(struct sti_tvout *tvout,
216220 int reg,
....@@ -247,7 +251,7 @@
247251 *
248252 * @tvout: tvout structure
249253 * @reg: register to set
250
- * @in_vid_signed: used video input format
254
+ * @in_vid_fmt: used video input format
251255 */
252256 static void tvout_vip_set_in_vid_fmt(struct sti_tvout *tvout,
253257 int reg, u32 in_vid_fmt)
....@@ -566,16 +570,16 @@
566570 { "tvout", tvout_dbg_show, 0, NULL },
567571 };
568572
569
-static int tvout_debugfs_init(struct sti_tvout *tvout, struct drm_minor *minor)
573
+static void tvout_debugfs_init(struct sti_tvout *tvout, struct drm_minor *minor)
570574 {
571575 unsigned int i;
572576
573577 for (i = 0; i < ARRAY_SIZE(tvout_debugfs_files); i++)
574578 tvout_debugfs_files[i].data = tvout;
575579
576
- return drm_debugfs_create_files(tvout_debugfs_files,
577
- ARRAY_SIZE(tvout_debugfs_files),
578
- minor->debugfs_root, minor);
580
+ drm_debugfs_create_files(tvout_debugfs_files,
581
+ ARRAY_SIZE(tvout_debugfs_files),
582
+ minor->debugfs_root, minor);
579583 }
580584
581585 static void sti_tvout_encoder_dpms(struct drm_encoder *encoder, int mode)
....@@ -599,14 +603,11 @@
599603 static int sti_tvout_late_register(struct drm_encoder *encoder)
600604 {
601605 struct sti_tvout *tvout = to_sti_tvout(encoder);
602
- int ret;
603606
604607 if (tvout->debugfs_registered)
605608 return 0;
606609
607
- ret = tvout_debugfs_init(tvout, encoder->dev->primary);
608
- if (ret)
609
- return ret;
610
+ tvout_debugfs_init(tvout, encoder->dev->primary);
610611
611612 tvout->debugfs_registered = true;
612613 return 0;
....@@ -665,10 +666,9 @@
665666
666667 encoder->tvout = tvout;
667668
668
- drm_encoder = (struct drm_encoder *)encoder;
669
+ drm_encoder = &encoder->encoder;
669670
670671 drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
671
- drm_encoder->possible_clones = 1 << 0;
672672
673673 drm_encoder_init(dev, drm_encoder,
674674 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_LVDS,
....@@ -718,10 +718,9 @@
718718
719719 encoder->tvout = tvout;
720720
721
- drm_encoder = (struct drm_encoder *) encoder;
721
+ drm_encoder = &encoder->encoder;
722722
723723 drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
724
- drm_encoder->possible_clones = 1 << 0;
725724
726725 drm_encoder_init(dev, drm_encoder,
727726 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_DAC, NULL);
....@@ -767,10 +766,9 @@
767766
768767 encoder->tvout = tvout;
769768
770
- drm_encoder = (struct drm_encoder *) encoder;
769
+ drm_encoder = &encoder->encoder;
771770
772771 drm_encoder->possible_crtcs = ENCODER_CRTC_MASK;
773
- drm_encoder->possible_clones = 1 << 1;
774772
775773 drm_encoder_init(dev, drm_encoder,
776774 &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_TMDS, NULL);
....@@ -786,6 +784,13 @@
786784 tvout->hdmi = sti_tvout_create_hdmi_encoder(dev, tvout);
787785 tvout->hda = sti_tvout_create_hda_encoder(dev, tvout);
788786 tvout->dvo = sti_tvout_create_dvo_encoder(dev, tvout);
787
+
788
+ tvout->hdmi->possible_clones = drm_encoder_mask(tvout->hdmi) |
789
+ drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
790
+ tvout->hda->possible_clones = drm_encoder_mask(tvout->hdmi) |
791
+ drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
792
+ tvout->dvo->possible_clones = drm_encoder_mask(tvout->hdmi) |
793
+ drm_encoder_mask(tvout->hda) | drm_encoder_mask(tvout->dvo);
789794 }
790795
791796 static void sti_tvout_destroy_encoders(struct sti_tvout *tvout)
....@@ -852,7 +857,7 @@
852857 DRM_ERROR("Invalid glue resource\n");
853858 return -ENOMEM;
854859 }
855
- tvout->regs = devm_ioremap_nocache(dev, res->start, resource_size(res));
860
+ tvout->regs = devm_ioremap(dev, res->start, resource_size(res));
856861 if (!tvout->regs)
857862 return -ENOMEM;
858863