summaryrefslogtreecommitdiff
path: root/include/drm
AgeCommit message (Collapse)Author
2021-11-08Merge remote-tracking branch 'fscl/5.4-2.3.x-imx' into toradex_5.4-2.3.x-imxDenys Drozdov
2021-08-04Merge tag 'v5.4.136' into 5.4-2.3.x-imxAndrey Zhizhikin
This is the 5.4.136 stable release Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
2021-07-28drm: Return -ENOTTY for non-drm ioctlsCharles Baylis
commit 3abab27c322e0f2acf981595aa8040c9164dc9fb upstream. drm: Return -ENOTTY for non-drm ioctls Return -ENOTTY from drm_ioctl() when userspace passes in a cmd number which doesn't relate to the drm subsystem. Glibc uses the TCGETS ioctl to implement isatty(), and without this change isatty() returns it incorrectly returns true for drm devices. To test run this command: $ if [ -t 0 ]; then echo is a tty; fi < /dev/dri/card0 which shows "is a tty" without this patch. This may also modify memory which the userspace application is not expecting. Signed-off-by: Charles Baylis <cb-kernel@fishzet.co.uk> Cc: stable@vger.kernel.org Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/YPG3IBlzaMhfPqCr@stando.fishzet.co.uk Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-05-05Merge commit '28910e01c43d9735f06fddbeaa42df3e112d1b3e' into ↵Marcel Ziswiler
toradex_5.4-2.3.x-imx This basically contains NXP BSP Patch L5.4.70_2.3.2 plus kernel.org v5.4.115 from https://github.com/Freescale/linux-fslc/tree/5.4-2.3.x-imx. Related-to: ELB-3958 Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2021-04-27MLK-24491: drm: bridge: cdns: Add support of i2c-over-auxJulien Jayat
Port the i2c over aux feature from 4.19.35 to the 5.4.x kernel. Add the the i2c read/write functions. The i2c features in the FW have been introduced in version 1.0.62. Signed-off-by: Julien Jayat <julien.jayat@nxp.com> Signed-off-by: Oliver Brown <oliver.brown@nxp.com> (cherry picked from commit b6181a1aea9ade244efb2ca001e14adb5cbe23eb) Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
2021-01-27drm/imx/hdp: implement optional regular ddc/edid i2c bus handlingMarcel Ziswiler
Implement optional regular DDC/EDID I2C bus handling which may be enabled via ddc-i2c-bus device tree property. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> (cherry picked from commit f667720d9df76c54962d135f94ec4c28cee75ec0) Conflicts: drivers/gpu/drm/imx/hdp/imx-hdp.c drivers/gpu/drm/imx/hdp/imx-hdp.h Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Conflicts: drivers/gpu/drm/bridge/cadence/cdns-hdmi-core.c include/drm/bridge/cdns-mhdp.h Fixed an implementation of ddc/edid bus in cdns_hdmi_connector_detect() Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
2021-01-11Merge tag 'v5.4.80' into 5.4-2.3.x-imxAndrey Zhizhikin
This is the 5.4.80 stable release Conflicts (manual resolve): - arch/arm64/boot/dts/freescale/imx8mn.dtsi: Fix minor merge conflict where commit [8381af1b684c] in stable tree removed one blank line. - drivers/net/can/flexcan.c: Fix merge fuzz during integration of stable commit [4c0a778fcf7b5]. Signed-off-by: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
2020-11-24iommu/vt-d: Move intel_iommu_gfx_mapped to Intel IOMMU headerAndy Shevchenko
[ Upstream commit c7eb900f5f45eeab1ea1bed997a2a12d8b5907bc ] Static analyzer is not happy about intel_iommu_gfx_mapped declaration: .../drivers/iommu/intel/iommu.c:364:5: warning: symbol 'intel_iommu_gfx_mapped' was not declared. Should it be static? Move its declaration to Intel IOMMU header file. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com> Link: https://lore.kernel.org/r/20200828161212.71294-1-andriy.shevchenko@linux.intel.com Signed-off-by: Joerg Roedel <jroedel@suse.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-26MLK-24916-3: drm: bridge: synopsys: Add HBR support for gp audioShengjiu Wang
Only non_pcm, 32bit, 192kHz, 8channel streams be recognized as HBR streams. In order to support this feature, need to enhance the API in dw-hdmi driver. The test command is: $iecset -c 4 audio off $aplay -Dhw:4 -r 192000 -c 8 -f S32_LE out_put.spd.iec958 $iecset -c 4 audio on Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
2020-10-08Merge tag 'v5.4.70' into imx_5.4.yJason Liu
* tag 'v5.4.70': (3051 commits) Linux 5.4.70 netfilter: ctnetlink: add a range check for l3/l4 protonum ep_create_wakeup_source(): dentry name can change under you... ... Conflicts: arch/arm/mach-imx/pm-imx6.c arch/arm64/boot/dts/freescale/imx8mm-evk.dts arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts drivers/crypto/caam/caamalg.c drivers/gpu/drm/imx/dw_hdmi-imx.c drivers/gpu/drm/imx/imx-ldb.c drivers/gpu/drm/imx/ipuv3/ipuv3-crtc.c drivers/mmc/host/sdhci-esdhc-imx.c drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c drivers/net/ethernet/freescale/enetc/enetc.c drivers/net/ethernet/freescale/enetc/enetc_pf.c drivers/thermal/imx_thermal.c drivers/usb/cdns3/ep0.c drivers/xen/swiotlb-xen.c sound/soc/fsl/fsl_esai.c sound/soc/fsl/fsl_sai.c Signed-off-by: Jason Liu <jason.hui.liu@nxp.com>
2020-08-31MLK-24611-2: drm: bridge: cdns: Add callback function for plug/unplug eventShengjiu Wang
cdns-hdmi-core exports a function cdns_hdmi_set_plugged_cb so platform device can register the callback implement hook_plugged_cb to register callback function for hdmi cable plug/unplug event. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Sandor Yu <Sandor.yu@nxp.com>
2020-08-31drm: bridge: dw-hdmi: Report connector status using callbackCheng-Yi Chiang
Allow codec driver register callback function for plug event. The callback registration flow: dw-hdmi <--- hw-hdmi-i2s-audio <--- hdmi-codec dw-hdmi-i2s-audio implements hook_plugged_cb op so codec driver can register the callback. dw-hdmi exports a function dw_hdmi_set_plugged_cb so platform device can register the callback. When connector plug/unplug event happens, report this event using the callback. Make sure that audio and drm are using the single source of truth for connector status. Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org> Link: https://lore.kernel.org/r/20191028071930.145899-2-cychiang@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
2020-08-11drm/drm_fb_helper: fix fbdev with sparc64Sam Ravnborg
[ Upstream commit 2a1658bf922ffd9b7907e270a7d9cdc9643fc45d ] Recent kernels have been reported to panic using the bochs_drm framebuffer under qemu-system-sparc64 which was bisected to commit 7a0483ac4ffc ("drm/bochs: switch to generic drm fbdev emulation"). The backtrace indicates that the shadow framebuffer copy in drm_fb_helper_dirty_blit_real() is trying to access the real framebuffer using a virtual address rather than use an IO access typically implemented using a physical (ASI_PHYS) access on SPARC. The fix is to replace the memcpy with memcpy_toio() from io.h. memcpy_toio() uses writeb() where the original fbdev code used sbus_memcpy_toio(). The latter uses sbus_writeb(). The difference between writeb() and sbus_memcpy_toio() is that writeb() writes bytes in little-endian, where sbus_writeb() writes bytes in big-endian. As endian does not matter for byte writes they are the same. So we can safely use memcpy_toio() here. Note that this only fixes bochs, in general fbdev helpers still have issues with mixing up system memory and __iomem space. Fixing that will require a lot more work. v3: - Improved changelog (Daniel) - Added FIXME to fbdev_use_iomem (Daniel) v2: - Added missing __iomem cast (kernel test robot) - Made changelog readable and fix typos (Mark) - Add flag to select iomem - and set it in the bochs driver Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reported-by: kernel test robot <lkp@intel.com> Tested-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Cc: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: sparclinux@vger.kernel.org Link: https://patchwork.freedesktop.org/patch/msgid/20200709193016.291267-1-sam@ravnborg.org Link: https://patchwork.freedesktop.org/patch/msgid/20200725191012.GA434957@ravnborg.org Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-07-24MLK-24427-3: drm: mhdp: Backporting code change from linux-nxpSandor Yu
Backporting code change from linux-nxp code base. -Rename cdns-mhdp-common.h to cdns-mhdp.h -Remove drm_dp_link_power_up/down functions. -Remove cdns-mhdp-cbs.h -Replace struct drm_dp_link with variable rate and num_lanes. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> Reviewed-by: Robby Cai <robby.cai@nxp.com>
2020-06-19Merge tag 'v5.4.47' into imx_5.4.yJason Liu
* tag 'v5.4.47': (2193 commits) Linux 5.4.47 KVM: arm64: Save the host's PtrAuth keys in non-preemptible context KVM: arm64: Synchronize sysreg state on injecting an AArch32 exception ... Conflicts: arch/arm/boot/dts/imx6qdl.dtsi arch/arm/mach-imx/Kconfig arch/arm/mach-imx/common.h arch/arm/mach-imx/suspend-imx6.S arch/arm64/boot/dts/freescale/imx8qxp-mek.dts arch/powerpc/include/asm/cacheflush.h drivers/cpufreq/imx6q-cpufreq.c drivers/dma/imx-sdma.c drivers/edac/synopsys_edac.c drivers/firmware/imx/imx-scu.c drivers/net/ethernet/freescale/fec.h drivers/net/ethernet/freescale/fec_main.c drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c drivers/net/phy/phy_device.c drivers/perf/fsl_imx8_ddr_perf.c drivers/usb/cdns3/gadget.c drivers/usb/dwc3/gadget.c include/uapi/linux/dma-buf.h Signed-off-by: Jason Liu <jason.hui.liu@nxp.com>
2020-05-19MLK-24065-3: drm: bridge: cadence: use the lane mapping from dt when setting ↵Sergey Zhuravlevich
host capabilities Signed-off-by: Sergey Zhuravlevich <zhurxx@gmail.com> Acked-by: Sandor Yu <sandor.yu@nxp.com> Tested-By: Sandor Yu <sandor.yu@nxp.com>
2020-05-10drm/bridge: analogix_dp: Split bind() into probe() and real bind()Marek Szyprowski
[ Upstream commit 83a196773b8bc6702f49df1eddc848180e350340 ] Analogix_dp driver acquires all its resources in the ->bind() callback, what is a bit against the component driver based approach, where the driver initialization is split into a probe(), where all resources are gathered, and a bind(), where all objects are created and a compound driver is initialized. Extract all the resource related operations to analogix_dp_probe() and analogix_dp_remove(), then call them before/after registration of the device components from the main Exynos DP and Rockchip DP drivers. Also move the plat_data initialization to the probe() to make it available for the analogix_dp_probe() function. This fixes the multiple calls to the bind() of the DRM compound driver when the DP PHY driver is not yet loaded/probed: [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations exynos-drm exynos-drm: bound 14400000.fimd (ops fimd_component_ops [exynosdrm]) exynos-drm exynos-drm: bound 14450000.mixer (ops mixer_component_ops [exynosdrm]) exynos-dp 145b0000.dp-controller: no DP phy configured exynos-drm exynos-drm: failed to bind 145b0000.dp-controller (ops exynos_dp_ops [exynosdrm]): -517 exynos-drm exynos-drm: master bind failed: -517 ... [drm] Exynos DRM: using 14400000.fimd device for DMA mapping operations exynos-drm exynos-drm: bound 14400000.fimd (ops hdmi_enable [exynosdrm]) exynos-drm exynos-drm: bound 14450000.mixer (ops hdmi_enable [exynosdrm]) exynos-drm exynos-drm: bound 145b0000.dp-controller (ops hdmi_enable [exynosdrm]) exynos-drm exynos-drm: bound 14530000.hdmi (ops hdmi_enable [exynosdrm]) [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). Console: switching to colour frame buffer device 170x48 exynos-drm exynos-drm: fb0: exynosdrmfb frame buffer device [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on minor 1 ... Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Andy Yan <andy.yan@rock-chips.com> Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> Signed-off-by: Andrzej Hajda <a.hajda@samsung.com> Link: https://patchwork.freedesktop.org/patch/msgid/20200310103427.26048-1-m.szyprowski@samsung.com Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-05-07MLK-23905-1 drm/bridge: Add fsl imx ldb supportLiu Ying
This patch adds Freescale i.MX LVDS display bridge driver. The driver would add a common drm bridge which can be attached to platform specific LDB encoder drivers. Signed-off-by: Liu Ying <victor.liu@nxp.com> Reviewed-by: Sandor Yu <Sandor.yu@nxp.com>
2020-04-29MLK-23642-1: drm: bridge: cadence: support HBR and 6 channelShengjiu Wang
Support HBR and 6 channel. For HBR, it only support compressed bitstream, sample rate is 192kHz, and 8 channels. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
2020-03-08Merge tag 'v5.4.24' into imx_5.4.yJason Liu
Merge Linux stable release v5.4.24 into imx_5.4.y * tag 'v5.4.24': (3306 commits) Linux 5.4.24 blktrace: Protect q->blk_trace with RCU kvm: nVMX: VMWRITE checks unsupported field before read-only field ... Signed-off-by: Jason Liu <jason.hui.liu@nxp.com> Conflicts: arch/arm/boot/dts/imx6sll-evk.dts arch/arm/boot/dts/imx7ulp.dtsi arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi drivers/clk/imx/clk-composite-8m.c drivers/gpio/gpio-mxc.c drivers/irqchip/Kconfig drivers/mmc/host/sdhci-of-esdhc.c drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c drivers/net/can/flexcan.c drivers/net/ethernet/freescale/dpaa/dpaa_eth.c drivers/net/ethernet/mscc/ocelot.c drivers/net/ethernet/stmicro/stmmac/stmmac_main.c drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c drivers/net/phy/realtek.c drivers/pci/controller/mobiveil/pcie-mobiveil-host.c drivers/perf/fsl_imx8_ddr_perf.c drivers/tee/optee/shm_pool.c drivers/usb/cdns3/gadget.c kernel/sched/cpufreq.c net/core/xdp.c sound/soc/fsl/fsl_esai.c sound/soc/fsl/fsl_sai.c sound/soc/sof/core.c sound/soc/sof/imx/Kconfig sound/soc/sof/loader.c
2020-02-13LF-794 gpu: cdn: imx8qm: Add firmware loading supportAbel Vesa
This allows the HDP i.MX8QM driver to load the firmware on init and resume. In order to have backward compatibility, if there is no firmware-name property defined in the hdmi node, the driver probing sequence skips the firmware loading. Also, if u-boot has loaded already a firmware, we run with that but when probing the driver, the request_firmware_nowait is used to locate and keep safe the firmware for when suspend/resume happens. This leads to 4 possible scenarios: 1. u-boot loads the firmware, the kernel driver finds the firmware when rootfs is mounted. This is the most desirable scenario. Also this is the only scenario that allows the hdmi to work after resume. 2. u-boot loads the firmware, the kernel driver _doesn't_ find the firmware in rootfs. If there is no suspend ever happening, the kernel driver will keep using the firmware that was loaded by u-boot. On the first suspend/resume, the firmware is lost because the HDMI IP gets powered down. 3. u-boot doesn't load the firmare, the kernel driver probing tries to load the firmware, assuming this is available (see CONFIG_EXTRA_FIRMWARE). 4. u-boot doesn't load the firmware and the kernel driver is not able to find it either. The probing fails and there is no HDMI available in linux. Signed-off-by: Abel Vesa <abel.vesa@nxp.com> Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
2020-01-19MLK-23250-10: drm: imx: hdmi: Add iMX8MP hdmi driverSandor Yu
Add iMX8MP hdmi driver. Basci hdmi video function is working. EDID function is working. HPD basic working but not stable enough for stress test, may not work in some TVs. HDMI GP audio function added. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> Reviewed-by: Robby Cai <robby.cai@nxp.com>
2019-12-31drm: mst: Fix query_payload ack reply structSean Paul
[ Upstream commit 268de6530aa18fe5773062367fd119f0045f6e88 ] Spec says[1] Allocated_PBN is 16 bits [1]- DisplayPort 1.2 Spec, Section 2.11.9.8, Table 2-98 Fixes: ad7f8a1f9ced ("drm/helper: add Displayport multi-stream helper (v0.6)") Cc: Lyude Paul <lyude@redhat.com> Cc: Todd Previte <tprevite@gmail.com> Cc: Dave Airlie <airlied@redhat.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: dri-devel@lists.freedesktop.org Reviewed-by: Lyude Paul <lyude@redhat.com> Signed-off-by: Sean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190829165223.129662-1-sean@poorly.run Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-25LF-568-2: drm: gpu: bridge: cdns: Add force mode set flagSandor Yu
In DRM framework, when hdmi/dp cable plugout/plugin in the same HDMI sink, because the video mode is same, DRM will not call mode_set. But for HDMI 2.0 sink the SCDC configurate will lost, and DP sink linktraning status will lost too after cable plugout then plugin. Currently, hdmi/dp driver will call mode_set function in HPD thread, But the mode_set function is called out of DRM framework, and it have chance to fail. In the patch add force_mode_set flag, set the crtc_state->mode_changed to force drm call mode_set when cable plugin. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-12-03LF-296: drm: mhdp: build mhdp sub-modules into one driver moduleSandor Yu
mhdp kernel driver support build as module. All mhdp sub-modules are built into one driver module. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> Reviewed-by: Robby Cai <robby.cai@nxp.com> (cherry picked from commit f516f7769a52fdda185920a89efa3de9a1ddb9e8)
2019-12-02Merge remote-tracking branch 'origin/display/hdp' into display/nextDong Aisheng
* origin/display/hdp: (32 commits) LF-94: drm: hdmi: imx: Add hdmi phy video mode valid function drm: hdmi: imx8: fix wrong hdmi type with non-SCDC HDMI sinks Revert "drm/imx/hdp: fix issue with non-SCDC HDMI sinks" drm/imx/hdp: fix issue with non-SCDC HDMI sinks drm: imx: mhdp: Adjustment core rate of DP TX CTRL for LS1028A ...
2019-12-02Merge remote-tracking branch 'origin/display/drm' into display/nextDong Aisheng
* origin/display/drm: (8 commits) drm/fourcc: add a 10bits fully packed variant of NV12 drm/fourcc: add modifier for vivante compressed tiled layout MLK-17368-1 drm: add fourcc codes for Verisilicon tiled formats MLK-16290 drm: Add drm_of_component_probe_with_match() helper MLK-15110-1 drm/fourcc: Add Amphion tiled layout format modifier ...
2019-11-29LF-94: drm: hdmi: imx: Add hdmi phy video mode valid functionSandor Yu
Add hdmi phy video mode valid function to filter the video modes. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com> Reviewed-by: Robby Cai <robby.cai@nxp.com>
2019-11-27drm: imx: mhdp: Adjustment core rate of DP TX CTRL for LS1028AWen He
This Display TX CTRL clock should be ACLK/4, update it to align with the specification. Signed-off-by: Wen He <wen.he_1@nxp.com> Reviewed-by: Sandor Yu <sandor.yu@nxp.com>
2019-11-25drm/imx/hdp: add hdr10 metadata propertyLaurentiu Palcu
The HDR_OUTPUT_METADATA property is needed in order for userspace to instruct the sink to switch to HDR10 mode. Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
2019-11-25drm: mhdp: add mutex lock to mhdp register access functionSandor Yu
Add muxtex lock to mhdp registers access functions that could avoid race condition between cec thread and hdmi video. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-11-25drm: bridge: cdns dp: Remove link rate/lanes set by device treeSandor Yu
Get the link rate and lanes from sink device. Remove user specific set by device tree. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-11-25drm: bridge: cadence: Add support for periodically poll the connectorWen He
Normally, DP/HDMI PHY use HPD_IRQ to monitor the connector connection status, but LS1028A doesn't support HPD_IRQ signals response. This patch allows periodically poll the connector for connection and disconnection. Signed-off-by: Wen He <wen.he_1@nxp.com>
2019-11-25drm: bridge: cadence: move struct imx_mhdp_device to drm/imxSandor Yu
move struct imx_mhdp_device to drm/imx folder. change the base address name from regs to regs_base. add mhdp bus access function. uniform variable name. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-11-25drm: bridge: cadence: Add CEC driver for cdns mhdp hdmiSandor Yu
Add cec driver for cdns mhdp hdmi. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-11-25drm: bridge: cadence: Add mhdp audio driverSandor Yu
Move mhdp audio driver to cadence folder. Add audio info-frame set function for hdmi tx audio. The driver suppoer both HDMI and DP audio. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-11-25drm: bridge: cadence: Add new api functionsSandor Yu
Add variable lane_mapping for hdmi. Add new API function cdns_mhdp_bus_read/cdns_mhdp_bus_write, cdns_mhdp_get_fw_clk and cdns_mhdp_infoframe_set. Adjust some API function interface. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-11-25drm: bridge: Add Cadence DP/HDMI core driverSandor Yu
Add HDMI and DP core driver. Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-11-25drm: bridge: add Cadence MHDP HDMI/DP APISandor Yu
Changes made in the low level driver (cdn-dp-reg.*): - moved it to from drivers/gpu/drm/rockchip to drivers/gpu/drm/bridge/cadence/cdns-mhdp-common.c and include/drm/bridge/cdns-mhdp-common.h - functions for sending/receiving commands are now public - added functions for reading registers and link training adjustment Changes made in RK's driver (cdn-dp-core.*): - Moved audio_info and audio_pdev fields from cdn_dp_device to cdns_mhdp_device structure. Signed-off-by: Quentin Schulz<quentin.schulz@free-electrons.com> Signed-off-by: Piotr Sroka <piotrs@cadence.com> Signed-off-by: Damian Kos <dkos@cadence.com> Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
2019-11-25MLK-21150-4 drm/bridge: sec-dsim: a general way to compute PLL PMSFancy Fang
A fixed PLL PMS setting for attached panel is obviously not enough for any other mipi panel which needs a different PLL output clock frequency, and besides, for the CEA-861 standard display modes, the 'pll_pms' table also can not cover all the modes requirements. So a general way is created to solve this problem which can provide an optimum solution to output a PLL bit clock to match the request frequency in a maximum degree and also satisfy the input clock and intermediate clocks limit according to the PLL specification. Signed-off-by: Fancy Fang <chen.fang@nxp.com>
2019-11-25MLK-19317-1 drm/bridge: sec-dsim: add missing 'ctrail' assignmentFancy Fang
In the macro 'DSIM_DPHY_TIMING' definition, the field 'clk_trail' assignment to 'ctrail' is missing which certainly needs to be added. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit f2818410d3d8d3b09002a85b593cee192d60bb06)
2019-11-25MLK-19252-6 drm/bridge: sec-dsim: improve DPHY TIMING configsFancy Fang
The SEC provides a table to guide the DPHY TIMINGS config based on the PLL output bit clock frequency for DSIM. So create the table which is used by SEC LN14LPP DPHY with HS Timing v1.2 and this table will be used by the SEC DSIM Bridge driver to help to config the corresponding DPHY Timings correctly for each display mode. Along with the table, a DPHY TIMING table entry 'compare' method is implemented for the binary search when lookup the suitable DPHY TIMING entry. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit eb899b434be6127db26c370bf200d8072eaf01c4) (cherry picked from commit 3b23233dafd65d6ea8c1fa12e8992c58ebc412bc)
2019-11-25MLK-19252-1 drm/bridge: sec-dsim: move PLL check to DSIM EncoderFancy Fang
Defer the PLL output check to the SEC DSIM Encoder's atomic check from SEC DSIM Bridge's mode_fixup(), since in the attached DSI device Bridge's mode_fixup(), it may change the data lanes number, and this change is done after the SEC DSIM Bridge's mode_fixup(). And the DSIM Encoder's atomic check is the ideal place to do this PLL check, since it happens after all the Bridges' mode_fixup() done. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit c9bce66fed982383dde189c428d4c2ee2c2fc623) (cherry picked from commit ead3666313e552296da7e7b5094579b47dbdc364)
2019-11-25MLK-18535-7 drm/bridge: sec-dsim: add bridge driver supportFancy Fang
This is the abstracted bridge driver for Samsung MIPI DSIM controller. This driver only foucses on the DSIM controller itself configurations and never care about any config about the platforms. So it can be shared by different platforms without any modifications. Signed-off-by: Fancy Fang <chen.fang@nxp.com>
2019-11-25MLK-16290 drm: Add drm_of_component_probe_with_match() helperLiu Ying
A component master may have both OF based and non-OF based components to be bound with. This patch adds a helper drm_of_component_probe_with_match() similar to drm_of_component_probe() so that the new helper may get an additional provided match pointer(contains match entries for non-OF based components) to support this case. Tested-by: Meng Mingming <mingming.meng@nxp.com> Signed-off-by: Liu Ying <victor.liu@nxp.com> (cherry picked from commit c3cad7223488638ab56c20b2c29345487857bc5f)
2019-11-06drm/shmem: Add docbook comments for drm_gem_shmem_object madvise fieldsRob Herring
Add missing docbook comments to madvise fields in struct drm_gem_shmem_object which fixes these warnings: include/drm/drm_gem_shmem_helper.h:87: warning: Function parameter or member 'madv' not described in 'drm_gem_shmem_object' include/drm/drm_gem_shmem_helper.h:87: warning: Function parameter or member 'madv_list' not described in 'drm_gem_shmem_object' Fixes: 17acb9f35ed7 ("drm/shmem: Add madvise state and purge helpers") Reported-by: Sean Paul <sean@poorly.run> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Maxime Ripard <mripard@kernel.org> Cc: David Airlie <airlied@linux.ie> Cc: Daniel Vetter <daniel@ffwll.ch> Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Sean Paul <sean@poorly.run> Link: https://patchwork.freedesktop.org/patch/msgid/20191101153754.22803-1-robh@kernel.org
2019-11-06drm/atomic: fix self-refresh helpers crtc state dereferenceRob Clark
drm_self_refresh_helper_update_avg_times() was incorrectly accessing the new incoming state after drm_atomic_helper_commit_hw_done(). But this state might have already been superceeded by an !nonblock atomic update resulting in dereferencing an already free'd crtc_state. TODO I *think* this will more or less do the right thing.. althought I'm not 100% sure if, for example, we enter psr in a nonblock commit, and then leave psr in a !nonblock commit that overtakes the completion of the nonblock commit. Not sure if this sort of scenario can happen in practice. But not crashing is better than crashing, so I guess we should either take this patch or rever the self-refresh helpers until Sean can figure out a better solution. Fixes: d4da4e33341c ("drm: Measure Self Refresh Entry/Exit times to avoid thrashing") Cc: Sean Paul <seanpaul@chromium.org> Signed-off-by: Rob Clark <robdclark@chromium.org> [seanpaul fixed up some checkpatch warns] Signed-off-by: Sean Paul <seanpaul@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20191104173737.142558-1-robdclark@gmail.com
2019-09-19drm: Measure Self Refresh Entry/Exit times to avoid thrashingSean Paul
Currently the self refresh idle timer is a const set by the crtc. This is fine if the self refresh entry/exit times are well-known for all panels used on that crtc. However panels and workloads can vary quite a bit, and a timeout which works well for one doesn't work well for another. In the extreme, if the timeout is too short we could get in a situation where the self refresh exits are taking so long we queue up a self refresh entry before the exit commit is even finished. This patch changes the idle timeout to a moving average of the entry times + a moving average of exit times + the crtc constant. This patch was tested on rockchip, with a kevin CrOS panel the idle delay averages out to about ~235ms (35 entry + 100 exit + 100 const). On the same board, the bob panel idle delay lands around ~340ms (90 entry + 150 exit + 100 const). WRT the dedicated mutex in self_refresh_data, it would be nice if we could rely on drm_crtc.mutex to protect the average times, but there are a few reasons why a separate lock is a better choice: - We can't rely on drm_crtc.mutex being held if we're doing a nonblocking commit - We can't grab drm_crtc.mutex since drm_modeset_lock() doesn't tell us whether the lock was already held in the acquire context (it eats -EALREADY), so we can't tell if we should drop it or not - We don't need such a heavy-handed lock for what we're trying to do, commit ordering doesn't matter, so a point-of-use lock will be less contentious Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Sean Paul <seanpaul@chromium.org> Link to v1: https://patchwork.freedesktop.org/patch/msgid/20190917200443.64481-2-sean@poorly.run Link: https://patchwork.freedesktop.org/patch/msgid/20190918200734.149876-2-sean@poorly.run Changes in v2: - Migrate locking explanation from comment to commit msg (Daniel) - Turf constant entry delay and multiply the avg times by 2 (Daniel)
2019-09-19drm: Fix kerneldoc and remove unused struct member in self_refresh helperSean Paul
Artifacts of previous revisions. Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Sean Paul <seanpaul@chromium.org> Link to v1: https://patchwork.freedesktop.org/patch/msgid/20190917200443.64481-1-sean@poorly.run Link: https://patchwork.freedesktop.org/patch/msgid/20190918200734.149876-1-sean@poorly.run Changes in v2: - None
2019-09-18drm/atomic: Rename crtc_state->pageflip_flags to async_flipDaniel Vetter
It's the only flag anyone actually cares about. Plus if we're unlucky, the atomic ioctl might need a different flag for async flips. So better to abstract this away from the uapi a bit. Reviewed-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Reviewed-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Cc: Michel Dänzer <michel@daenzer.net> Cc: Alex Deucher <alexdeucher@gmail.com> Cc: Adam Jackson <ajax@redhat.com> Cc: Sean Paul <sean@poorly.run> Cc: David Airlie <airlied@linux.ie> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> Cc: Maxime Ripard <maxime.ripard@bootlin.com> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Cc: Leo Li <sunpeng.li@amd.com> Cc: Harry Wentland <harry.wentland@amd.com> Cc: David Francis <David.Francis@amd.com> Cc: Mario Kleiner <mario.kleiner.de@gmail.com> Cc: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> Cc: Ben Skeggs <bskeggs@redhat.com> Cc: "Christian König" <christian.koenig@amd.com> Cc: Ilia Mirkin <imirkin@alum.mit.edu> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20190903190642.32588-3-daniel.vetter@ffwll.ch