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. 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