linux-stable/drivers/phy
Liu Ying c92bd51313 phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
[ Upstream commit 3153fa38e3 ]

According to the comment of the function phy_mipi_dphy_get_default_config(),
it uses minimum D-PHY timings based on MIPI D-PHY specification.  They are
derived from the valid ranges specified in Section 6.9, Table 14, Page 41
of the D-PHY specification (v1.2).  The table 14 explicitly mentions that
the minimum T-LPX parameter is 50 nanoseconds and the minimum TA-SURE
parameter is T-LPX nanoseconds.  Likewise, the kernel doc of the 'lpx' and
'ta_sure' members of struct phy_configure_opts_mipi_dphy mentions that
the minimum values are 50000 picoseconds and @lpx picoseconds respectively.
Also, the function phy_mipi_dphy_config_validate() checks if cfg->lpx is
less than 50000 picoseconds and if cfg->ta_sure is less than cfg->lpx,
which hints the same minimum values.

Without this patch, the function phy_mipi_dphy_get_default_config()
wrongly sets cfg->lpx to 60000 picoseconds and cfg->ta_sure to 2 * cfg->lpx.
So, let's correct them to 50000 picoseconds and cfg->lpx respectively.

Note that I've only tested the patch with RM67191 DSI panel on i.MX8mq EVK.
Help is needed to test with other i.MX8mq, Meson and Rockchip platforms,
as I don't have the hardwares.

Fixes: dddc97e823 ("phy: dphy: Add configuration helpers")
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Kishon Vijay Abraham I <kishon@ti.com>
Cc: Vinod Koul <vkoul@kernel.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Guido Günther <agx@sigxcpu.org>
Signed-off-by: Liu Ying <victor.liu@nxp.com>
Link: https://lore.kernel.org/r/20220216071257.1647703-1-victor.liu@nxp.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-08 14:40:24 +02:00
..
allwinner
amlogic
broadcom phy: usb: Leave some clocks running during suspend 2022-02-23 12:01:05 +01:00
cadence phy: cadence: Sierra: Fix error return code in cdns_sierra_phy_probe() 2021-06-16 12:01:45 +02:00
freescale
hisilicon
intel phy: intel: Fix for warnings due to EMMC clock 175Mhz change in FIP 2021-07-20 16:05:46 +02:00
lantiq phy: lantiq: rcu-usb2: wait after clock enable 2021-03-04 11:38:24 +01:00
marvell phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y, unconditionally 2021-05-14 09:50:13 +02:00
mediatek phy: phy-mtk-tphy: Fix some resource leaks in mtk_phy_init() 2021-06-23 14:42:48 +02:00
motorola
mscc
qualcomm phy: qcom-snps: Correct the FSEL_MASK 2021-11-18 14:04:20 +01:00
ralink
renesas
rockchip
samsung
socionext phy: uniphier-usb3ss: fix unintended writing zeros to PHY register 2022-01-27 10:54:08 +01:00
st
tegra
ti phy: ti: Fix missing sentinel for clk_div_table 2022-02-16 12:54:30 +01:00
xilinx phy: xilinx: zynqmp: Fix bus width setting for SGMII 2022-02-16 12:54:23 +01:00
Kconfig phy: USB_LGM_PHY should depend on X86 2021-03-04 11:38:13 +01:00
Makefile
phy-core-mipi-dphy.c phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure}) 2022-04-08 14:40:24 +02:00
phy-core.c
phy-lgm-usb.c
phy-lpc18xx-usb-otg.c
phy-pistachio-usb.c
phy-xgene.c