[Freedreno] [RFC PULL] Add Display Support for Qualcomm SDM845

Jordan Crouse jcrouse at codeaurora.org
Thu Feb 15 20:15:12 UTC 2018


On Tue, Feb 13, 2018 at 02:18:13PM -0500, Sean Paul 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 at vger.kernel.org. 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:
> ----------------
> - 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 at vmware.com> and Lukasz Spintzyk <lukasz.spintzyk at displaylink.com>
> - Uma Shankar <uma.shankar at intel.com> 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?
> 
> 
> 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
> 
>  drivers/gpu/drm/msm/dpu_io_util.c                  |  507 ++
>  include/linux/dpu_io_util.h                        |  113 +

This looks like it was borrowed from some older downstream code - its mostly a
wrapper for iomem and clock operations and a goodly chuck of dead i2c and gpio
code too. The header definitely doesn't need to be in include/linux and we might
be able to save a bit of space by merging the iomem wrappers with the code we
already have.

Jordan
-- 
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project


More information about the Freedreno mailing list