.. | .. |
---|
8 | 8 | |
---|
9 | 9 | #include <linux/clk.h> |
---|
10 | 10 | #include <linux/component.h> |
---|
| 11 | +#include <linux/io.h> |
---|
11 | 12 | #include <linux/module.h> |
---|
12 | 13 | #include <linux/of_platform.h> |
---|
13 | 14 | #include <linux/platform_device.h> |
---|
14 | 15 | #include <linux/reset.h> |
---|
15 | 16 | #include <linux/seq_file.h> |
---|
16 | 17 | |
---|
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> |
---|
19 | 23 | |
---|
20 | 24 | #include "sti_crtc.h" |
---|
21 | 25 | #include "sti_drv.h" |
---|
.. | .. |
---|
153 | 157 | * |
---|
154 | 158 | * @tvout: tvout structure |
---|
155 | 159 | * @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 |
---|
159 | 163 | */ |
---|
160 | 164 | static void tvout_vip_set_color_order(struct sti_tvout *tvout, int reg, |
---|
161 | 165 | u32 cr_r, u32 y_g, u32 cb_b) |
---|
.. | .. |
---|
210 | 214 | * @tvout: tvout structure |
---|
211 | 215 | * @reg: register to set |
---|
212 | 216 | * @main_path: main or auxiliary path |
---|
213 | | - * @sel_input: selected_input (main/aux + conv) |
---|
| 217 | + * @video_out: selected_input (main/aux + conv) |
---|
214 | 218 | */ |
---|
215 | 219 | static void tvout_vip_set_sel_input(struct sti_tvout *tvout, |
---|
216 | 220 | int reg, |
---|
.. | .. |
---|
247 | 251 | * |
---|
248 | 252 | * @tvout: tvout structure |
---|
249 | 253 | * @reg: register to set |
---|
250 | | - * @in_vid_signed: used video input format |
---|
| 254 | + * @in_vid_fmt: used video input format |
---|
251 | 255 | */ |
---|
252 | 256 | static void tvout_vip_set_in_vid_fmt(struct sti_tvout *tvout, |
---|
253 | 257 | int reg, u32 in_vid_fmt) |
---|
.. | .. |
---|
566 | 570 | { "tvout", tvout_dbg_show, 0, NULL }, |
---|
567 | 571 | }; |
---|
568 | 572 | |
---|
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) |
---|
570 | 574 | { |
---|
571 | 575 | unsigned int i; |
---|
572 | 576 | |
---|
573 | 577 | for (i = 0; i < ARRAY_SIZE(tvout_debugfs_files); i++) |
---|
574 | 578 | tvout_debugfs_files[i].data = tvout; |
---|
575 | 579 | |
---|
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); |
---|
579 | 583 | } |
---|
580 | 584 | |
---|
581 | 585 | static void sti_tvout_encoder_dpms(struct drm_encoder *encoder, int mode) |
---|
.. | .. |
---|
599 | 603 | static int sti_tvout_late_register(struct drm_encoder *encoder) |
---|
600 | 604 | { |
---|
601 | 605 | struct sti_tvout *tvout = to_sti_tvout(encoder); |
---|
602 | | - int ret; |
---|
603 | 606 | |
---|
604 | 607 | if (tvout->debugfs_registered) |
---|
605 | 608 | return 0; |
---|
606 | 609 | |
---|
607 | | - ret = tvout_debugfs_init(tvout, encoder->dev->primary); |
---|
608 | | - if (ret) |
---|
609 | | - return ret; |
---|
| 610 | + tvout_debugfs_init(tvout, encoder->dev->primary); |
---|
610 | 611 | |
---|
611 | 612 | tvout->debugfs_registered = true; |
---|
612 | 613 | return 0; |
---|
.. | .. |
---|
665 | 666 | |
---|
666 | 667 | encoder->tvout = tvout; |
---|
667 | 668 | |
---|
668 | | - drm_encoder = (struct drm_encoder *)encoder; |
---|
| 669 | + drm_encoder = &encoder->encoder; |
---|
669 | 670 | |
---|
670 | 671 | drm_encoder->possible_crtcs = ENCODER_CRTC_MASK; |
---|
671 | | - drm_encoder->possible_clones = 1 << 0; |
---|
672 | 672 | |
---|
673 | 673 | drm_encoder_init(dev, drm_encoder, |
---|
674 | 674 | &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_LVDS, |
---|
.. | .. |
---|
718 | 718 | |
---|
719 | 719 | encoder->tvout = tvout; |
---|
720 | 720 | |
---|
721 | | - drm_encoder = (struct drm_encoder *) encoder; |
---|
| 721 | + drm_encoder = &encoder->encoder; |
---|
722 | 722 | |
---|
723 | 723 | drm_encoder->possible_crtcs = ENCODER_CRTC_MASK; |
---|
724 | | - drm_encoder->possible_clones = 1 << 0; |
---|
725 | 724 | |
---|
726 | 725 | drm_encoder_init(dev, drm_encoder, |
---|
727 | 726 | &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_DAC, NULL); |
---|
.. | .. |
---|
767 | 766 | |
---|
768 | 767 | encoder->tvout = tvout; |
---|
769 | 768 | |
---|
770 | | - drm_encoder = (struct drm_encoder *) encoder; |
---|
| 769 | + drm_encoder = &encoder->encoder; |
---|
771 | 770 | |
---|
772 | 771 | drm_encoder->possible_crtcs = ENCODER_CRTC_MASK; |
---|
773 | | - drm_encoder->possible_clones = 1 << 1; |
---|
774 | 772 | |
---|
775 | 773 | drm_encoder_init(dev, drm_encoder, |
---|
776 | 774 | &sti_tvout_encoder_funcs, DRM_MODE_ENCODER_TMDS, NULL); |
---|
.. | .. |
---|
786 | 784 | tvout->hdmi = sti_tvout_create_hdmi_encoder(dev, tvout); |
---|
787 | 785 | tvout->hda = sti_tvout_create_hda_encoder(dev, tvout); |
---|
788 | 786 | 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); |
---|
789 | 794 | } |
---|
790 | 795 | |
---|
791 | 796 | static void sti_tvout_destroy_encoders(struct sti_tvout *tvout) |
---|
.. | .. |
---|
852 | 857 | DRM_ERROR("Invalid glue resource\n"); |
---|
853 | 858 | return -ENOMEM; |
---|
854 | 859 | } |
---|
855 | | - tvout->regs = devm_ioremap_nocache(dev, res->start, resource_size(res)); |
---|
| 860 | + tvout->regs = devm_ioremap(dev, res->start, resource_size(res)); |
---|
856 | 861 | if (!tvout->regs) |
---|
857 | 862 | return -ENOMEM; |
---|
858 | 863 | |
---|