On Tue, Feb 13, 2018 at 3:00 PM, Rob Clark <robdclark@xxxxxxxxx> wrote: > On Tue, Feb 13, 2018 at 2:18 PM, Sean Paul <seanpaul@xxxxxxxxxxxx> wrote: >> Hi dri-devel, >> Qualcomm has been working for the past few weeks on forward porting their >> downstream drm driver from 4.14 to mainline. Please consider this PR as a >> request for review, rather than an attempt at mainlining the code as it >> currently stands. The goal is get this driver in shape over the next coming >> months. >> >> In the meantime, I'll be hosting a tree here [1] to stage the fixes. Patches >> will be posted and reviewed on linux-arm-msm@xxxxxxxxxxxxxxx. Once things look >> good, I'll send another pull 4realz. >> >> To get the ball rolling, I've done some review on the new connector code, my >> comments are below. >> >> Thanks in advance for your constructive feedback :) >> >> Sean >> >> [1]- git://people.freedesktop.org/~seanpaul/dpu-staging >> >> Review feedback: >> ---------------- > > just so others aren't confused, s/sde/dpu/g in the list below (we did > our DAL->DC rename before sending first RFC :-P) > >> - Solve the splash screen handling (or remove it) >> - Simplify devicetree binding (remove register offsets) >> feedback from reviewing sde_connector.c: >> - Rationalize backlight implementation in sde_connector (display_count static) >> - Sort out the dsi event passing between dsi/encoder/connector (move to encoder) >> - include/uapi/drm/msm_drm_pp.h needs opensource userspace (or removal) >> - connector->state access violations reading/writing mode_info >> - s/sde_rect/drm_rect/ >> - sde_kms_info usage needs to be replaced with formal data structures (not >> stringified keypairs) >> - sde_connector_ops needs to be trimmed, duplicates connector helpers, info >> hooks circumvent state, and other hooks should be stored in state or >> prepopulated (get_dst_format) >> - sde_connector_get_dpms unused >> - esd status check should migrate to encoder from connector >> - backlight should be handled in panel drivers, not in the generic connector/dsi >> encoder >> - sde_connector_helper_bridge_disable is called from encoder and calls back into >> set_power encoder function. if backlight, and esd status are removed, >> pre_kickoff can probably go away >> - sde_connector_clk_ctrl is another example of encoder->connector->encoder call >> - RETIRE_FENCE connector property should be removed, opting for the native >> atomic fences >> - ROI (regions of interest) should be expressed per-plane instead of connector. >> there is work ongoing to support dirty_rects per-plane by Deepak Singh Rawat >> <drawat@xxxxxxxxxx> and Lukasz Spintzyk <lukasz.spintzyk@xxxxxxxxxxxxxxx> >> - Uma Shankar <uma.shankar@xxxxxxxxx> has proposed HDR source metadata >> properties on the list, we should pivot to those instead of hand-rolling them >> in the sde driver >> - Convert HDCP implementation to upstream Content Protection property >> - Merge dsi and dsi_staging into one driver >> - Writeback connector has been proposed by ARM (Liviu Dudau and Brian Starkey), >> we should work with their proposal instead of rolling OUT_FB ourselves >> - sde_connector_set_property should be replaced with atomic helper >> - dsi hotplug can probably be punted to the panel driver >> - dpms should switch to enable/disable (or at least use the atomic helpers) >> - dsi mode handling should also defer to the panel driver >> - SDE_WB_CONFIG ioctl should be removed in favor of the existing ioctl to add >> user-defined modes >> - dp implementation should use the existing dp helpers wherever possible >> - lots of duplicated structures in dsi_defs.h that can be replaced with existing >> drm structs >> - mode_valid should be split up and implemented directly in connector/encoder as >> appropriate >> - sde_connector->aspace seems like it's unused? >> > > To add to that, a few things I've noticed (but I've mostly only gotten > as far as the front-end of the pipeline, ie. dpu_plane): > > - It looks like, as was the case with mdp4/mdp5 (and really most other hw) > there are still unequal capabilities for planes (ie. some can do YUV, > scaling, etc). > > But drm-hwc (or weston) isn't going to know about that, so I think we'll > need to add support for dynamically assigning dpu_plane::pipe, similar > to what mdp5 does w/ plane<->hwpipe. (Which I actually added specifically > for drm-hwc ;-)) > > - I *think* we also need the same trick for combining mixers under one CRTC > for 4k modes too? > > - in dpu_plane, and perhaps elsewhere, userspace pointers for things like CSC > and scaling coefficients need to be annotated w/ __user. (Except the should > probably be blob properties instead.. and we probably need to strip out the > custom properties and re-introduce them separately with some userspace + > review.) > > - dpu_formats.c looks mostly like a superset of mdp_format.c, ie there is a > similar concept to how you describe the format to hw as mdp4/mdp5. Probably > the additions in dpu_formats should be folded back in mdp_format. > > I'm not sure how we want to balance adding new features with cleanup > and hopefully removing some code. I suspect a fair chunk of dpu_plane > actually belongs in dpu_plane_state, so maybe we can handle that as > part of that cleanup. one more to add to the TODO list: - fix direct callers of msm_gem_free_object() to use drm_gem_object_put() BR, -R > > Few more below > >> >> The following changes since commit 9afe236df559d0dc6818f64e728a3f931a0a2231: >> >> drm/msm/dsi: Fix potential NULL pointer dereference in msm_dsi_modeset_init (2018-02-12 10:25:15 -0500) >> >> are available in the Git repository at: >> >> git://people.freedesktop.org/~seanpaul/dpu-staging for-next-compiles >> >> for you to fetch changes up to 672005da148f82021a62d4fa658728e19f13097e: >> >> ARM: dts: msm: add device tree changes for SDM845 (2018-02-13 13:14:43 -0500) >> >> ---------------------------------------------------------------- >> Jeykumar Sankaran (9): >> dt-bindings: msm/dsi: Add mdp transfer time to msm dsi binding >> dt-bindings: msm/disp: Add bindings for Snapdragon 845 DPU >> drm: Core changes >> drm/msm: add DPU DRM driver to support SDM845 >> drm/msm: Change mdp_get_format arguments >> drm/msm: Core msm changes >> drm/msm: Add DSI Staging driver >> drm/msm: Add DisplayPort support >> ARM: dts: msm: add device tree changes for SDM845 >> >> Manasi Navare (1): >> drm/dp: Add HBR3 support in existing DRM DP helpers >> >> Rob Clark (1): >> drm/msm: rename mdp->disp >> >> .../devicetree/bindings/display/msm/dpu-rsc.txt | 96 + >> .../devicetree/bindings/display/msm/dpu.txt | 736 +++ >> .../devicetree/bindings/display/msm/dsi.txt | 16 + >> .../devicetree/bindings/drm/msm/dpu-dp.txt | 217 + >> .../devicetree/bindings/drm/msm/dpu-dsi.txt | 102 + >> .../devicetree/bindings/drm/msm/dpu-wb.txt | 23 + >> .../devicetree/bindings/drm/msm/mdss-dsi-panel.txt | 772 +++ >> .../devicetree/bindings/fb/mdss-dsi-panel.txt | 742 +++ >> Documentation/devicetree/bindings/fb/mdss-pll.txt | 103 + >> .../devicetree/bindings/msm_hdcp/msm_hdcp.txt | 14 + >> arch/arm64/boot/dts/qcom/sdm845-dpu-display.dtsi | 248 + >> arch/arm64/boot/dts/qcom/sdm845-dpu.dtsi | 541 +++ >> drivers/clk/qcom/mdss/mdss-pll.h | 240 + >> drivers/gpu/drm/drm_dp_helper.c | 4 + >> drivers/gpu/drm/drm_dp_mst_topology.c | 3 + >> drivers/gpu/drm/drm_edid.c | 77 + >> drivers/gpu/drm/drm_framebuffer.c | 3 +- >> drivers/gpu/drm/drm_mipi_dsi.c | 12 +- > > Some of these changes in drm core need to be split out. > >> drivers/gpu/drm/msm/Makefile | 98 +- >> drivers/gpu/drm/msm/disp/dpu1/dpu_ad4.h | 99 + >> .../gpu/drm/msm/disp/dpu1/dpu_color_processing.c | 1520 ++++++ >> .../gpu/drm/msm/disp/dpu1/dpu_color_processing.h | 120 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c | 1381 ++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h | 581 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c | 640 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h | 192 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 818 ++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h | 144 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 5076 ++++++++++++++++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h | 661 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 3838 +++++++++++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h | 220 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h | 561 +++ >> .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c | 1365 ++++++ >> .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c | 1045 ++++ >> .../gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c | 1369 ++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_fence.c | 404 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_fence.h | 190 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c | 1339 ++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h | 152 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ad4.c | 1443 ++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c | 155 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h | 53 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c | 3287 +++++++++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h | 1050 ++++ >> .../gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h | 182 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c | 329 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h | 139 + >> .../msm/disp/dpu1/dpu_hw_color_proc_common_v4.h | 69 + >> .../gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.c | 242 + >> .../gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.h | 40 + >> .../drm/msm/disp/dpu1/dpu_hw_color_processing.h | 20 + >> .../msm/disp/dpu1/dpu_hw_color_processing_v1_7.c | 565 +++ >> .../msm/disp/dpu1/dpu_hw_color_processing_v1_7.h | 92 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c | 657 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h | 275 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ds.c | 149 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ds.h | 111 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c | 252 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h | 100 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c | 209 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h | 220 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c | 1235 +++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h | 289 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c | 373 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h | 132 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c | 331 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h | 136 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h | 538 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c | 409 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h | 182 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.c | 759 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.h | 27 + >> .../msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.c | 943 ++++ >> .../msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.h | 75 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_rot.c | 962 ++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_rot.h | 192 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c | 1063 ++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h | 574 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c | 461 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.h | 227 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c | 453 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h | 202 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.c | 275 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.h | 128 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c | 324 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h | 187 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_hwio.h | 60 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_irq.c | 112 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_irq.h | 59 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c | 2099 ++++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h | 547 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_kms_utils.c | 220 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 4774 ++++++++++++++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h | 296 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.c | 139 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.h | 310 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c | 1394 ++++++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h | 200 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h | 245 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c | 385 ++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.h | 94 + >> drivers/gpu/drm/msm/disp/dpu1/dpu_wb.c | 781 +++ >> drivers/gpu/drm/msm/disp/dpu1/dpu_wb.h | 232 + >> drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4.xml.h | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_crtc.c | 0 >> .../drm/msm/{mdp => disp}/mdp4/mdp4_dsi_encoder.c | 0 >> .../drm/msm/{mdp => disp}/mdp4/mdp4_dtv_encoder.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_irq.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_kms.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_kms.h | 2 +- >> .../drm/msm/{mdp => disp}/mdp4/mdp4_lcdc_encoder.c | 0 >> .../msm/{mdp => disp}/mdp4/mdp4_lvds_connector.c | 0 >> .../gpu/drm/msm/{mdp => disp}/mdp4/mdp4_lvds_pll.c | 0 >> .../gpu/drm/msm/{mdp => disp}/mdp4/mdp4_plane.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5.xml.h | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_cfg.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_cfg.h | 0 >> .../drm/msm/{mdp => disp}/mdp5/mdp5_cmd_encoder.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_crtc.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_ctl.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_ctl.h | 0 >> .../gpu/drm/msm/{mdp => disp}/mdp5/mdp5_encoder.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_irq.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_kms.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_kms.h | 2 +- >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_mdss.c | 0 >> .../gpu/drm/msm/{mdp => disp}/mdp5/mdp5_mixer.c | 0 >> .../gpu/drm/msm/{mdp => disp}/mdp5/mdp5_mixer.h | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_pipe.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_pipe.h | 0 >> .../gpu/drm/msm/{mdp => disp}/mdp5/mdp5_plane.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_smp.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_smp.h | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp_common.xml.h | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp_format.c | 5 +- >> drivers/gpu/drm/msm/{mdp => disp}/mdp_kms.c | 0 >> drivers/gpu/drm/msm/{mdp => disp}/mdp_kms.h | 2 +- >> drivers/gpu/drm/msm/dp/dp_audio.c | 796 +++ >> drivers/gpu/drm/msm/dp/dp_audio.h | 81 + >> drivers/gpu/drm/msm/dp/dp_aux.c | 570 +++ >> drivers/gpu/drm/msm/dp/dp_aux.h | 44 + >> drivers/gpu/drm/msm/dp/dp_catalog.c | 1320 +++++ >> drivers/gpu/drm/msm/dp/dp_catalog.h | 163 + >> drivers/gpu/drm/msm/dp/dp_ctrl.c | 1474 ++++++ >> drivers/gpu/drm/msm/dp/dp_ctrl.h | 50 + >> drivers/gpu/drm/msm/dp/dp_debug.c | 503 ++ >> drivers/gpu/drm/msm/dp/dp_debug.h | 60 + >> drivers/gpu/drm/msm/dp/dp_display.c | 1262 +++++ >> drivers/gpu/drm/msm/dp/dp_display.h | 52 + >> drivers/gpu/drm/msm/dp/dp_drm.c | 538 +++ >> drivers/gpu/drm/msm/dp/dp_drm.h | 96 + >> drivers/gpu/drm/msm/dp/dp_hdcp2p2.c | 927 ++++ >> drivers/gpu/drm/msm/dp/dp_link.c | 1548 ++++++ >> drivers/gpu/drm/msm/dp/dp_link.h | 184 + >> drivers/gpu/drm/msm/dp/dp_panel.c | 531 ++ >> drivers/gpu/drm/msm/dp/dp_panel.h | 116 + >> drivers/gpu/drm/msm/dp/dp_parser.c | 645 +++ >> drivers/gpu/drm/msm/dp/dp_parser.h | 200 + >> drivers/gpu/drm/msm/dp/dp_power.c | 623 +++ >> drivers/gpu/drm/msm/dp/dp_power.h | 58 + >> drivers/gpu/drm/msm/dp/dp_reg.h | 231 + >> drivers/gpu/drm/msm/dp/dp_usbpd.c | 491 ++ >> drivers/gpu/drm/msm/dp/dp_usbpd.h | 101 + >> drivers/gpu/drm/msm/dpu_dbg.c | 3325 +++++++++++++ >> drivers/gpu/drm/msm/dpu_dbg.h | 421 ++ >> drivers/gpu/drm/msm/dpu_dbg_evtlog.c | 306 ++ >> drivers/gpu/drm/msm/dpu_edid_parser.c | 657 +++ >> drivers/gpu/drm/msm/dpu_edid_parser.h | 166 + > > let's not have our own edid parser ;-) > > I guess this is a symptom of some enhancements needed in drm_edid > >> drivers/gpu/drm/msm/dpu_hdcp.h | 74 + >> drivers/gpu/drm/msm/dpu_hdcp_1x.c | 1579 ++++++ >> drivers/gpu/drm/msm/dpu_io_util.c | 507 ++ >> drivers/gpu/drm/msm/dpu_power_handle.c | 1128 +++++ >> drivers/gpu/drm/msm/dpu_power_handle.h | 334 ++ >> drivers/gpu/drm/msm/dpu_rsc.c | 1367 ++++++ >> drivers/gpu/drm/msm/dpu_rsc_hw.c | 818 ++++ >> drivers/gpu/drm/msm/dpu_rsc_priv.h | 191 + >> drivers/gpu/drm/msm/dsi-staging/dsi_catalog.c | 241 + >> drivers/gpu/drm/msm/dsi-staging/dsi_catalog.h | 201 + >> drivers/gpu/drm/msm/dsi-staging/dsi_clk.h | 276 ++ >> drivers/gpu/drm/msm/dsi-staging/dsi_clk_manager.c | 1227 +++++ >> drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c | 2862 +++++++++++ >> drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h | 635 +++ >> drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw.h | 752 +++ >> drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw_1_4.c | 480 ++ >> drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw_2_0.c | 234 + >> drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw_2_2.c | 42 + >> drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw_cmn.c | 1312 +++++ >> drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_reg.h | 196 + >> drivers/gpu/drm/msm/dsi-staging/dsi_defs.h | 581 +++ >> drivers/gpu/drm/msm/dsi-staging/dsi_display.c | 4325 +++++++++++++++++ >> drivers/gpu/drm/msm/dsi-staging/dsi_display.h | 557 +++ >> drivers/gpu/drm/msm/dsi-staging/dsi_display_test.c | 114 + >> drivers/gpu/drm/msm/dsi-staging/dsi_display_test.h | 31 + >> drivers/gpu/drm/msm/dsi-staging/dsi_drm.c | 708 +++ >> drivers/gpu/drm/msm/dsi-staging/dsi_drm.h | 129 + >> drivers/gpu/drm/msm/dsi-staging/dsi_hw.h | 48 + >> drivers/gpu/drm/msm/dsi-staging/dsi_panel.c | 3521 ++++++++++++++ >> drivers/gpu/drm/msm/dsi-staging/dsi_panel.h | 262 + >> drivers/gpu/drm/msm/dsi-staging/dsi_phy.c | 935 ++++ >> drivers/gpu/drm/msm/dsi-staging/dsi_phy.h | 235 + >> drivers/gpu/drm/msm/dsi-staging/dsi_phy_hw.h | 260 + >> drivers/gpu/drm/msm/dsi-staging/dsi_phy_hw_v2_0.c | 252 + >> drivers/gpu/drm/msm/dsi-staging/dsi_phy_hw_v3_0.c | 447 ++ >> .../gpu/drm/msm/dsi-staging/dsi_phy_timing_calc.c | 676 +++ >> .../gpu/drm/msm/dsi-staging/dsi_phy_timing_calc.h | 144 + >> .../gpu/drm/msm/dsi-staging/dsi_phy_timing_v2_0.c | 126 + >> .../gpu/drm/msm/dsi-staging/dsi_phy_timing_v3_0.c | 107 + > > getting rid of the 2nd dsi driver in dsi-staging will cut off a big > chunk of code, it is just shy of 25kloc > >> drivers/gpu/drm/msm/dsi-staging/dsi_pwr.c | 365 ++ >> drivers/gpu/drm/msm/dsi-staging/dsi_pwr.h | 93 + >> drivers/gpu/drm/msm/hdmi/hdmi_hdcp.c | 26 +- >> drivers/gpu/drm/msm/msm_atomic.c | 446 +- >> drivers/gpu/drm/msm/msm_drv.c | 919 +++- >> drivers/gpu/drm/msm/msm_drv.h | 486 +- >> drivers/gpu/drm/msm/msm_fb.c | 10 +- >> drivers/gpu/drm/msm/msm_kms.h | 90 +- >> drivers/gpu/drm/msm/msm_prop.c | 688 +++ >> drivers/gpu/drm/msm/msm_prop.h | 438 ++ >> drivers/gpu/drm/msm/msm_rd.c | 58 +- >> drivers/platform/msm/Kconfig | 21 + >> drivers/platform/msm/Makefile | 4 + >> drivers/platform/msm/msm_ext_display.c | 525 ++ > > I guess msm_ext_display.c needs to go away > >> include/drm/drm_connector.h | 19 + >> include/drm/drm_dp_helper.h | 23 + >> include/drm/drm_mipi_dsi.h | 4 + >> include/drm/drm_mode_object.h | 2 +- >> include/linux/dpu_io_util.h | 113 + >> include/linux/dpu_rsc.h | 302 ++ >> include/linux/msm_ext_display.h | 182 + >> include/uapi/drm/dpu_drm.h | 449 ++ >> include/uapi/drm/drm_fourcc.h | 32 + >> include/uapi/drm/drm_mode.h | 5 + >> include/uapi/drm/msm_drm.h | 79 + >> include/uapi/drm/msm_drm_pp.h | 345 ++ >> include/uapi/media/msm_media_info.h | 1376 ++++++ > > and this > >> include/video/mipi_display.h | 4 + >> 236 files changed, 110234 insertions(+), 159 deletions(-) > > jfwiw, Sean an I have already cut out ~15k insertions from the inital > version ;-) > > BR, > -R > >> create mode 100644 Documentation/devicetree/bindings/display/msm/dpu-rsc.txt >> create mode 100644 Documentation/devicetree/bindings/display/msm/dpu.txt >> create mode 100644 Documentation/devicetree/bindings/drm/msm/dpu-dp.txt >> create mode 100644 Documentation/devicetree/bindings/drm/msm/dpu-dsi.txt >> create mode 100644 Documentation/devicetree/bindings/drm/msm/dpu-wb.txt >> create mode 100644 Documentation/devicetree/bindings/drm/msm/mdss-dsi-panel.txt >> create mode 100644 Documentation/devicetree/bindings/fb/mdss-dsi-panel.txt >> create mode 100644 Documentation/devicetree/bindings/fb/mdss-pll.txt >> create mode 100644 Documentation/devicetree/bindings/msm_hdcp/msm_hdcp.txt >> create mode 100644 arch/arm64/boot/dts/qcom/sdm845-dpu-display.dtsi >> create mode 100644 arch/arm64/boot/dts/qcom/sdm845-dpu.dtsi >> create mode 100644 drivers/clk/qcom/mdss/mdss-pll.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_ad4.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_color_processing.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_connector.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_connector.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_core_irq.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_vid.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_fence.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_fence.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_formats.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ad4.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_cdm.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_common_v4.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_proc_v4.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_color_processing_v1_7.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ctl.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ds.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_ds.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dspp.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_intf.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_mdss.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_pingpong.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_reg_dma_v1_color_proc.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_rot.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_rot.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_top.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_util.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_vbif.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_wb.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_hwio.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_irq.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_irq.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_kms_utils.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_reg_dma.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_trace.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.h >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_wb.c >> create mode 100644 drivers/gpu/drm/msm/disp/dpu1/dpu_wb.h >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4.xml.h (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_crtc.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_dsi_encoder.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_dtv_encoder.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_irq.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_kms.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_kms.h (99%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_lcdc_encoder.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_lvds_connector.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_lvds_pll.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp4/mdp4_plane.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5.xml.h (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_cfg.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_cfg.h (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_cmd_encoder.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_crtc.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_ctl.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_ctl.h (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_encoder.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_irq.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_kms.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_kms.h (99%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_mdss.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_mixer.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_mixer.h (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_pipe.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_pipe.h (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_plane.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_smp.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp5/mdp5_smp.h (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp_common.xml.h (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp_format.c (98%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp_kms.c (100%) >> rename drivers/gpu/drm/msm/{mdp => disp}/mdp_kms.h (99%) >> create mode 100644 drivers/gpu/drm/msm/dp/dp_audio.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_audio.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_aux.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_aux.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_catalog.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_catalog.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_ctrl.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_ctrl.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_debug.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_debug.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_display.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_display.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_drm.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_drm.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_hdcp2p2.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_link.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_link.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_panel.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_panel.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_parser.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_parser.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_power.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_power.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_reg.h >> create mode 100644 drivers/gpu/drm/msm/dp/dp_usbpd.c >> create mode 100644 drivers/gpu/drm/msm/dp/dp_usbpd.h >> create mode 100644 drivers/gpu/drm/msm/dpu_dbg.c >> create mode 100644 drivers/gpu/drm/msm/dpu_dbg.h >> create mode 100644 drivers/gpu/drm/msm/dpu_dbg_evtlog.c >> create mode 100644 drivers/gpu/drm/msm/dpu_edid_parser.c >> create mode 100644 drivers/gpu/drm/msm/dpu_edid_parser.h >> create mode 100644 drivers/gpu/drm/msm/dpu_hdcp.h >> create mode 100644 drivers/gpu/drm/msm/dpu_hdcp_1x.c >> create mode 100644 drivers/gpu/drm/msm/dpu_io_util.c >> create mode 100644 drivers/gpu/drm/msm/dpu_power_handle.c >> create mode 100644 drivers/gpu/drm/msm/dpu_power_handle.h >> create mode 100644 drivers/gpu/drm/msm/dpu_rsc.c >> create mode 100644 drivers/gpu/drm/msm/dpu_rsc_hw.c >> create mode 100644 drivers/gpu/drm/msm/dpu_rsc_priv.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_catalog.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_catalog.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_clk.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_clk_manager.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw_1_4.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw_2_0.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw_2_2.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_hw_cmn.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_ctrl_reg.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_defs.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_display.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_display.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_display_test.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_display_test.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_drm.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_drm.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_hw.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_panel.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_panel.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy_hw.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy_hw_v2_0.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy_hw_v3_0.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy_timing_calc.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy_timing_calc.h >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy_timing_v2_0.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_phy_timing_v3_0.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_pwr.c >> create mode 100644 drivers/gpu/drm/msm/dsi-staging/dsi_pwr.h >> create mode 100644 drivers/gpu/drm/msm/msm_prop.c >> create mode 100644 drivers/gpu/drm/msm/msm_prop.h >> create mode 100644 drivers/platform/msm/Kconfig >> create mode 100644 drivers/platform/msm/Makefile >> create mode 100644 drivers/platform/msm/msm_ext_display.c >> create mode 100644 include/linux/dpu_io_util.h >> create mode 100644 include/linux/dpu_rsc.h >> create mode 100644 include/linux/msm_ext_display.h >> create mode 100644 include/uapi/drm/dpu_drm.h >> create mode 100644 include/uapi/drm/msm_drm_pp.h >> create mode 100644 include/uapi/media/msm_media_info.h >> >> -- >> Sean Paul, Software Engineer, Google / Chromium OS -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html