1. 15 Dec, 2020 1 commit
    • Rob Clark's avatar
      drm/msm: Fix WARN_ON() splat in _free_object() · 57f04815
      Rob Clark authored
      [  192.062000] ------------[ cut here ]------------
      [  192.062498] WARNING: CPU: 3 PID: 2039 at drivers/gpu/drm/msm/msm_gem.c:381 put_iova_vmas+0x94/0xa0 [msm]
      [  192.062870] Modules linked in: snd_hrtimer snd_seq snd_seq_device rfcomm algif_hash algif_skcipher af_alg bnep xt_CHECKSUM nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_counter xt_tcpudp nft_compat cpufreq_powersave cpufreq_conservative q6asm_dai q6routing q6afe_dai q6adm bridge q6afe q6asm q6dsp_common q6core stp llc nf_tables libcrc32c nfnetlink snd_soc_wsa881x regmap_sdw soundwire_qcom gpio_wcd934x snd_soc_wcd934x wcd934x regmap_slimbus venus_enc venus_dec apr videobuf2_dma_sg qrtr_smd uvcvideo videobuf2_vmalloc videobuf2_memops ath10k_snoc ath10k_core hci_uart btqca btbcm mac80211 bluetooth snd_soc_sdm845 ath snd_soc_rt5663 snd_soc_qcom_common snd_soc_rl6231 soundwire_bus ecdh_generic ecc qcom_spmi_adc5 venus_core qcom_pon qcom_spmi_temp_alarm qcom_vadc_common v4l2_mem2mem videobuf2_v4l2 cfg80211 videobuf2_common hid_multitouch reset_qcom_pdc qcrypto qcom_rng rfkill qcom_q6v5_mss libarc4 libdes qrtr ns qcom_wdt socinfo slim_qcom_ngd_ctrl
      [  192.065739]  pdr_interface qcom_q6v5_pas slimbus qcom_pil_info qcom_q6v5 qcom_sysmon qcom_common qcom_glink_smem qmi_helpers rmtfs_mem tcp_bbr sch_fq fuse ip_tables x_tables ipv6 crc_ccitt ti_sn65dsi86 i2c_hid msm mdt_loader llcc_qcom rtc_pm8xxx ocmem drm_kms_helper crct10dif_ce phy_qcom_qusb2 i2c_qcom_geni panel_simple drm pwm_bl
      [  192.066066] CPU: 3 PID: 2039 Comm: gnome-shell Tainted: G        W         5.10.0-rc7-next-20201208 #1
      [  192.066068] Hardware name: LENOVO 81JL/LNVNB161216, BIOS 9UCN33WW(V2.06) 06/ 4/2019
      [  192.066072] pstate: 40400005 (nZcv daif +PAN -UAO -TCO BTYPE=--)
      [  192.066099] pc : put_iova_vmas+0x94/0xa0 [msm]
      [  192.066262] lr : put_iova_vmas+0x1c/0xa0 [msm]
      [  192.066403] sp : ffff800019efbbb0
      [  192.066405] x29: ffff800019efbbb0 x28: ffff800019efbd88
      [  192.066411] x27: 0000000000000000 x26: ffff109582efa400
      [  192.066417] x25: 0000000000000009 x24: 000000000000012b
      [  192.066422] x23: ffff109582efa438 x22: ffff109582efa450
      [  192.066427] x21: ffff109582efa528 x20: ffff1095cbd4f200
      [  192.066432] x19: ffff1095cbd4f200 x18: 0000000000000000
      [  192.066438] x17: 0000000000000000 x16: ffffc26c200ca750
      [  192.066727] x15: 0000000000000000 x14: 0000000000000000
      [  192.066741] x13: ffff1096fb8c9100 x12: 0000000000000002
      [  192.066754] x11: ffffffffffffffff x10: 0000000000000002
      [  192.067046] x9 : 0000000000000001 x8 : 0000000000000a36
      [  192.067060] x7 : ffff4e2ad9f11000 x6 : ffffc26c216d4000
      [  192.067212] x5 : ffffc26c2022661c x4 : ffff1095c2b98000
      [  192.067367] x3 : ffff1095cbd4f300 x2 : 0000000000000000
      [  192.067380] x1 : ffff1095c2b98000 x0 : 0000000000000000
      [  192.067667] Call trace:
      [  192.067734]  put_iova_vmas+0x94/0xa0 [msm]
      [  192.068078]  msm_gem_free_object+0xb4/0x110 [msm]
      [  192.068399]  drm_gem_object_free+0x1c/0x30 [drm]
      [  192.068717]  drm_gem_object_handle_put_unlocked+0xf0/0xf8 [drm]
      [  192.069032]  drm_gem_object_release_handle+0x6c/0x88 [drm]
      [  192.069349]  drm_gem_handle_delete+0x68/0xc0 [drm]
      [  192.069666]  drm_gem_close_ioctl+0x30/0x48 [drm]
      [  192.069984]  drm_ioctl_kernel+0xc0/0x110 [drm]
      [  192.070303]  drm_ioctl+0x210/0x440 [drm]
      [  192.070588]  __arm64_sys_ioctl+0xa8/0xf0
      [  192.070599]  el0_svc_common.constprop.0+0x74/0x190
      [  192.070608]  do_el0_svc+0x24/0x90
      [  192.070618]  el0_svc+0x14/0x20
      [  192.070903]  el0_sync_handler+0xb0/0xb8
      [  192.070911]  el0_sync+0x174/0x180
      [  192.070918] ---[ end trace bee6b12a899001a3 ]---
      [  192.072140] ------------[ cut here ]------------
      
      Fixes: 9b73bde3 ("drm/msm: Fix use-after-free in msm_gem with carveout")
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      Acked-by: default avatarIskren Chernev <iskren.chernev@gmail.com>
      57f04815
  2. 05 Dec, 2020 3 commits
  3. 03 Dec, 2020 4 commits
    • Iskren Chernev's avatar
      drm/msm: Fix use-after-free in msm_gem with carveout · 9b73bde3
      Iskren Chernev authored
      When using gem with vram carveout the page allocation is managed via
      drm_mm. The necessary drm_mm_node is allocated in add_vma, but it is
      referenced in msm_gem_object as well. It is freed before the drm_mm_node
      has been deallocated leading to use-after-free on every single vram
      allocation.
      
      Currently put_iova is called before put_pages in both
      msm_gem_free_object and msm_gem_purge:
      
      	put_iova -> del_vma -> kfree(vma) // vma holds drm_mm_node
      	/* later */
      	put_pages -> put_pages_vram -> drm_mm_remove_node(
      						msm_obj->vram_node)
      				 	// vram_node is a ref to
      					// drm_mm_node; in _msm_gem_new
      
      It looks like del_vma does nothing else other than freeing the vma
      object and removing it from it's list, so delaying the deletion should
      be harmless.
      
      This patch splits put_iova in put_iova_spaces and put_iova_vmas, so the
      vma can be freed after the mm_node has been deallocated with the mm.
      
      Note: The breaking commit separated the vma allocation from within
      msm_gem_object to outside, so the vram_node reference became outside the
      msm_gem_object allocation, and freeing order was therefore overlooked.
      
      Fixes: 4b85f7f5 ("drm/msm: support for an arbitrary number of address spaces")
      Signed-off-by: default avatarIskren Chernev <iskren.chernev@gmail.com>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      9b73bde3
    • Kuogee Hsieh's avatar
      drm/msm/dp: fix connect/disconnect handled at irq_hpd · c58eb1b5
      Kuogee Hsieh authored
      Some usb type-c dongle use irq_hpd request to perform device connection
      and disconnection. This patch add handling of both connection and
      disconnection are based on the state of hpd_state and sink_count.
      
      Changes in V2:
      -- add dp_display_handle_port_ststus_changed()
      -- fix kernel test robot complaint
      
      Changes in V3:
      -- add encoder_mode_set into struct dp_display_private
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Fixes: 26b8d66a ("drm/msm/dp: promote irq_hpd handle to handle link training correctly")
      Tested-by: default avatarStephen Boyd <swboyd@chromium.org>
      Signed-off-by: default avatarKuogee Hsieh <khsieh@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      c58eb1b5
    • Abhinav Kumar's avatar
      drm/msm/dpu: update the qos remap only if the client type changes · 854f6f1c
      Abhinav Kumar authored
      Update the qos remap only if the client type changes for the plane.
      This will avoid unnecessary register programming and also avoid log
      spam from the dpu_vbif_set_qos_remap() function.
      
      changes in v2:
       - get rid of the dirty flag and simplify the logic to call
         _dpu_plane_set_qos_remap()
      Signed-off-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      854f6f1c
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_hw_interrupts: Demote kernel-doc formatting misuse · 849652c1
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c:246: error: Cannot parse struct or union!
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c:756: error: Cannot parse struct or union!
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Shubhashree Dhar <dhar@codeaurora.org>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      849652c1
  4. 29 Nov, 2020 23 commits
    • Kalyan Thota's avatar
      drm/msm/dpu: consider vertical front porch in the prefill bw calculation · 0c3d3cc9
      Kalyan Thota authored
      In case of panels with low vertical back porch, the prefill bw
      requirement will be high as we will have less time(vbp+pw) to
      fetch and fill the hw latency buffers before start of first line
      in active period.
      
      For ex:
      Say hw_latency_line_buffers = 24, and if blanking vbp+pw = 10
      Here we need to fetch 24 lines of data in 10 line times.
      This will increase the bw to the ratio of linebuffers to blanking.
      
      DPU hw can also fetch data during vertical front porch provided
      interface prefetch is enabled. Use vfp in the prefill calculation
      as dpu driver enables prefetch if the blanking is not sufficient
      to fill the latency lines.
      Signed-off-by: default avatarKalyan Thota <kalyan_t@codeaurora.org>
      Tested-by: default avatarAmit Pundir <amit.pundir@linaro.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      0c3d3cc9
    • Jordan Crouse's avatar
      drm/msm/a6xx: Add support for using system cache on MMU500 based targets · 3d247123
      Jordan Crouse authored
      GPU targets with an MMU-500 attached have a slightly different process for
      enabling system cache. Use the compatible string on the IOMMU phandle
      to see if an MMU-500 is attached and modify the programming sequence
      accordingly.
      Signed-off-by: default avatarJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: default avatarSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      3d247123
    • Sharat Masetty's avatar
      drm/msm/a6xx: Add support for using system cache(LLC) · 474dadb8
      Sharat Masetty authored
      The last level system cache can be partitioned to 32 different
      slices of which GPU has two slices preallocated. One slice is
      used for caching GPU buffers and the other slice is used for
      caching the GPU SMMU pagetables. This talks to the core system
      cache driver to acquire the slice handles, configure the SCID's
      to those slices and activates and deactivates the slices upon
      GPU power collapse and restore.
      
      Some support from the IOMMU driver is also needed to make use
      of the system cache to set the right TCR attributes. GPU then
      has the ability to override a few cacheability parameters which
      it does to override write-allocate to write-no-allocate as the
      GPU hardware does not benefit much from it.
      
      DOMAIN_ATTR_IO_PGTABLE_CFG is another domain level attribute used
      by the IOMMU driver for pagetable configuration which will be used
      to set a quirk initially to set the right attributes to cache the
      hardware pagetables into the system cache.
      Signed-off-by: default avatarSharat Masetty <smasetty@codeaurora.org>
      [saiprakash.ranjan: fix to set attr before device attach to iommu and rebase]
      Signed-off-by: default avatarSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      474dadb8
    • Sharat Masetty's avatar
      drm/msm: rearrange the gpu_rmw() function · 40a72b0c
      Sharat Masetty authored
      The register read-modify-write construct is generic enough
      that it can be used by other subsystems as needed, create
      a more generic rmw() function and have the gpu_rmw() use
      this new function.
      Signed-off-by: default avatarSharat Masetty <smasetty@codeaurora.org>
      Reviewed-by: default avatarJordan Crouse <jcrouse@codeaurora.org>
      Signed-off-by: default avatarSai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      40a72b0c
    • Rob Clark's avatar
      9e0673c0
    • Tian Tao's avatar
      drm/msm/dp: remove duplicate include statement · 64aec620
      Tian Tao authored
      linux/rational.h is included more than once, Remove the one that isn't
      necessary.
      Signed-off-by: default avatarTian Tao <tiantao6@hisilicon.com>
      Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      64aec620
    • Rikard Falkeborn's avatar
      drm/msm: dsi: Constify dsi_host_ops · 8b6947a8
      Rikard Falkeborn authored
      The only usage of dsi_host_ops is to assign its address to the ops field
      in the mipi_dsi_host struct, which is a const pointer. Make it const to
      allow the compiler to put it in read-only memory.
      Signed-off-by: default avatarRikard Falkeborn <rikard.falkeborn@gmail.com>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      8b6947a8
    • Lee Jones's avatar
      drm/msm/dp/dp_ctrl: Move 'tu' from the stack to the heap · cc9014bf
      Lee Jones authored
      'struct tu_algo_data' is huge ~400 Bytes.
      
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/dp/dp_ctrl.c: In function ‘_dp_ctrl_calc_tu.constprop’:
       drivers/gpu/drm/msm/dp/dp_ctrl.c:938:1: warning: the frame size of 1184 bytes is larger than 1024 bytes [-Wframe-larger-than=]
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Chandan Uddaraju <chandanu@codeaurora.org>
      Cc: Kuogee Hsieh <khsieh@codeaurora.org>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      cc9014bf
    • Lee Jones's avatar
      drm/msm/adreno/a6xx_gpu_state: Make some local functions static · 692bdf97
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:83:7: warning: no previous prototype for ‘state_kcalloc’ [-Wmissing-prototypes]
       drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:95:7: warning: no previous prototype for ‘state_kmemdup’ [-Wmissing-prototypes]
       drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c:947:6: warning: no previous prototype for ‘a6xx_gpu_state_destroy’ [-Wmissing-prototypes]
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      692bdf97
    • Lee Jones's avatar
      drm/msm/msm_gem_shrinker: Fix descriptions for 'drm_device' · 324dca17
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/msm_gem_shrinker.c:108: warning: Function parameter or member 'dev' not described in 'msm_gem_shrinker_init'
       drivers/gpu/drm/msm/msm_gem_shrinker.c:108: warning: Excess function parameter 'dev_priv' description in 'msm_gem_shrinker_init'
       drivers/gpu/drm/msm/msm_gem_shrinker.c:126: warning: Function parameter or member 'dev' not described in 'msm_gem_shrinker_cleanup'
       drivers/gpu/drm/msm/msm_gem_shrinker.c:126: warning: Excess function parameter 'dev_priv' description in 'msm_gem_shrinker_cleanup'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      324dca17
    • Lee Jones's avatar
      drm/msm/msm_drv: Make '_msm_ioremap()' static · ea8742c6
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/msm_drv.c:124:15: warning: no previous prototype for ‘_msm_ioremap’ [-Wmissing-prototypes]
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      ea8742c6
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_plane: Fix some spelling and missing function param descriptions · 9ddf3fd3
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:152: warning: Function parameter or member 'plane' not described in '_dpu_plane_calc_bw'
       drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:152: warning: Function parameter or member 'fb' not described in '_dpu_plane_calc_bw'
       drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:152: warning: Excess function parameter 'Plane' description in '_dpu_plane_calc_bw'
       drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:200: warning: Function parameter or member 'plane' not described in '_dpu_plane_calc_clk'
       drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:200: warning: Excess function parameter 'Plane' description in '_dpu_plane_calc_clk'
       drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:232: warning: Function parameter or member 'src_width' not described in '_dpu_plane_calc_fill_level'
       drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:232: warning: Excess function parameter 'src_wdith' description in '_dpu_plane_calc_fill_level'
       drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c:1060: warning: Function parameter or member 'error' not described in 'dpu_plane_set_error'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Kalyan Thota <kalyan_t@codeaurora.org>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      9ddf3fd3
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_vbif: Fix a couple of function param descriptions · 4c99c358
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c:150: warning: Function parameter or member 'dpu_kms' not described in 'dpu_vbif_set_ot_limit'
       drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c:150: warning: Excess function parameter 'vbif' description in 'dpu_vbif_set_ot_limit'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      4c99c358
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_rm: Fix formatting issues and supply 'global_state' description · 0d88dda6
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:247: warning: Excess function parameter 'Return' description in '_dpu_rm_check_lm_peer'
       drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:283: warning: Function parameter or member 'global_state' not described in '_dpu_rm_check_lm_and_get_connected_blks'
       drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c:283: warning: Excess function parameter 'Return' description in '_dpu_rm_check_lm_and_get_connected_blks'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Drew Davenport <ddavenport@chromium.org>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      0d88dda6
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_hw_sspp: Fix kernel-doc formatting abuse · 6008cd43
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c:240: warning: Function parameter or member 'ctx' not described in 'dpu_hw_sspp_setup_format'
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c:240: warning: Function parameter or member 'fmt' not described in 'dpu_hw_sspp_setup_format'
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c:240: warning: Function parameter or member 'flags' not described in 'dpu_hw_sspp_setup_format'
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c:240: warning: Function parameter or member 'rect_mode' not described in 'dpu_hw_sspp_setup_format'
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c:446: warning: Function parameter or member 'ctx' not described in 'dpu_hw_sspp_setup_rects'
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c:446: warning: Function parameter or member 'cfg' not described in 'dpu_hw_sspp_setup_rects'
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c:446: warning: Function parameter or member 'rect_index' not described in 'dpu_hw_sspp_setup_rects'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Jonathan Marek <jonathan@marek.ca>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      6008cd43
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_hw_lm: Fix misnaming of parameter 'ctx' · 0177aef3
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c:55: warning: Function parameter or member 'ctx' not described in '_stage_offset'
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_lm.c:55: warning: Excess function parameter 'c' description in '_stage_offset'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      0177aef3
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_encoder: Fix a few parameter/member formatting issues · cca5ff94
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:207: warning: Function parameter or member 'cur_slave' not described in 'dpu_encoder_virt'
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:207: warning: Function parameter or member 'hw_pp' not described in 'dpu_encoder_virt'
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:207: warning: Function parameter or member 'intfs_swapped' not described in 'dpu_encoder_virt'
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1445: warning: Function parameter or member 'drm_enc' not described in '_dpu_encoder_trigger_flush'
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1445: warning: Function parameter or member 'phys' not described in '_dpu_encoder_trigger_flush'
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1445: warning: Function parameter or member 'extra_flush_bits' not described in '_dpu_encoder_trigger_flush'
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1481: warning: Function parameter or member 'phys' not described in '_dpu_encoder_trigger_start'
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1564: warning: Function parameter or member 'dpu_enc' not described in '_dpu_encoder_kickoff_phys'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      cca5ff94
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_hw_catalog: Move definitions to the only place they are used · 09c7e370
      Lee Jones authored
      These tables are not large or overbearing, so moving them into the
      source file seems like the right thing to do.  The alternative is to
      use __maybe_unused, which is undesirable.
      
      Fixes the following W=1 kernel build warning(s):
      
       In file included from drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c:11:
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h:7:23: warning: ‘qcom_compressed_supported_formats’ defined but not used [-Wunused-const-variable=]
       7 | static const uint32_t qcom_compressed_supported_formats[] = {
       | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h:48:23: warning: ‘plane_formats_yuv’ defined but not used [-Wunused-const-variable=]
       48 | static const uint32_t plane_formats_yuv[] = {
       | ^~~~~~~~~~~~~~~~~
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog_format.h:17:23: warning: ‘plane_formats’ defined but not used [-Wunused-const-variable=]
       17 | static const uint32_t plane_formats[] = {
       | ^~~~~~~~~~~~~
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      09c7e370
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_hw_catalog: Remove duplicated initialisation of 'max_linewidth' · 14bcdfe4
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c:124:19: warning: initialized field overwritten [-Woverride-init]
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c:124:19: note: (near initialization for ‘sm8250_dpu_caps.max_linewidth’)
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      14bcdfe4
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_formats: Demote non-conformant kernel-doc header · 0070e6d2
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'fmt' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'a' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'r' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'g' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'b' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'e0' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'e1' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'e2' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'e3' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'uc' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'alpha' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'bp' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'flg' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'fm' not described in 'INTERLEAVED_RGB_FMT'
       drivers/gpu/drm/msm/disp/dpu1/dpu_formats.c:50: warning: Function parameter or member 'np' not described in 'INTERLEAVED_RGB_FMT'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Fritz Koenig <frkoenig@google.com>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      0070e6d2
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_hw_blk: Add one missing and remove an extra param description · dbce3d09
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c:28: warning: Function parameter or member 'hw_blk' not described in 'dpu_hw_blk_init'
       drivers/gpu/drm/msm/disp/dpu1/dpu_hw_blk.c:120: warning: Excess function parameter 'free_blk' description in 'dpu_hw_blk_put'
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      dbce3d09
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_core_perf: Fix kernel-doc formatting issues · 2785fd47
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:31: warning: Enum value 'DPU_PERF_MODE_MAX' not described in enum 'dpu_perf_mode'
       drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:34: warning: Cannot understand  * @_dpu_core_perf_calc_bw() - to calculate BW per crtc
       drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:73: warning: Function parameter or member 'kms' not described in '_dpu_core_perf_calc_clk'
       drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:73: warning: Function parameter or member 'crtc' not described in '_dpu_core_perf_calc_clk'
       drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:73: warning: Function parameter or member 'state' not described in '_dpu_core_perf_calc_clk'
       drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c:249: warning: Cannot understand  * @dpu_core_perf_crtc_release_bw() - request zero bandwidth
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: Kalyan Thota <kalyan_t@codeaurora.org>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      2785fd47
    • Rob Clark's avatar
      msm/mdp5: Fix some kernel-doc warnings · 03b6f2d6
      Rob Clark authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c:227: warning: Function parameter or member 'ctl' not described in 'mdp5_ctl_set_encoder_state'
       drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c:227: warning: Function parameter or member 'pipeline' not described in 'mdp5_ctl_set_encoder_state'
       drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c:227: warning: Function parameter or member 'enabled' not described in 'mdp5_ctl_set_encoder_state'
       drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c:227: warning: Excess function parameter 'enable' description in 'mdp5_ctl_set_encoder_state'
       drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c:529: warning: Function parameter or member 'ctl' not described in 'mdp5_ctl_commit'
       drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c:529: warning: Function parameter or member 'pipeline' not described in 'mdp5_ctl_commit'
       drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c:529: warning: Function parameter or member 'flush_mask' not described in 'mdp5_ctl_commit'
       drivers/gpu/drm/msm/disp/mdp5/mdp5_ctl.c:529: warning: Function parameter or member 'start' not described in 'mdp5_ctl_commit'
      
      Cc: Lee Jones <lee.jones@linaro.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
      03b6f2d6
  5. 25 Nov, 2020 2 commits
  6. 24 Nov, 2020 1 commit
    • Lee Jones's avatar
      drm/msm/disp/dpu1/dpu_encoder: Remove a bunch of unused variables · ff8b941a
      Lee Jones authored
      Fixes the following W=1 kernel build warning(s):
      
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function ‘dpu_encoder_virt_mode_set’:
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:981:31: warning: variable ‘num_dspp’ set but not used [-Wunused-but-set-variable]
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:976:30: warning: variable ‘topology’ set but not used [-Wunused-but-set-variable]
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function ‘_dpu_encoder_virt_enable_helper’:
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1099:26: warning: variable ‘priv’ set but not used [-Wunused-but-set-variable]
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c: In function ‘dpu_encoder_virt_disable’:
       drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c:1210:18: warning: variable ‘dpu_kms’ set but not used [-Wunused-but-set-variable]
      
      Cc: Rob Clark <robdclark@gmail.com>
      Cc: Sean Paul <sean@poorly.run>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: linux-arm-msm@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: freedreno@lists.freedesktop.org
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      ff8b941a
  7. 23 Nov, 2020 4 commits
  8. 21 Nov, 2020 2 commits
    • Rob Clark's avatar
      drm/msm/shrinker: Only iterate dontneed objs · 3edfa30f
      Rob Clark authored
      In situations where the GPU is mostly idle, all or nearly all buffer
      objects will be in the inactive list.  But if the system is under memory
      pressure (from something other than GPU), we could still get a lot of
      shrinker calls.  Which results in traversing a list of thousands of objs
      and in the end finding nothing to shrink.  Which isn't so efficient.
      
      Instead split the inactive_list into two lists, one inactive objs which
      are shrinkable, and a second one for those that are not.  This way we
      can avoid traversing objs which we know are not shrinker candidates.
      
      v2: Fix inverted logic think-o
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      3edfa30f
    • Rob Clark's avatar
      drm/msm/shrinker: We can vmap shrink active_list too · fcd371c2
      Rob Clark authored
      Just because a obj is active, if the vmap_count is zero, we can still
      tear down the vmap.
      Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
      fcd371c2