Re: [PATCH v1 3/3] drm/stm: Add STM32 DSI host driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 05/15/2017 04:03 PM, Philippe CORNU wrote:
Hi Neil,
Many thanks for your comments.

The PHY part of the MIPI DSI is the main difference between all chipsets
based on the Synopsys DesignWare MIPI DSI.
There is no "generic DSI PHY interface" and that is probably why all soc
vendors have implemented their own drivers (RockChip, NXP/Freescale,
HiSilicon and now STM32).

We don't really need a generic DSI PHY interface to ensure we use a common
bridge driver. We need to do what's been done in the DW HDMI bridge driver.
The dw_hdmi_plat_data struct contains phy ops, which can be used to abstract
vendor PHYs.


Regarding creating a "generic dw MIPI DSI bridge" as the recent dw hdmi
bridge, several attempts have been done in the past but without success:
* Liu Ying from Freescale in February 2015
(https://lkml.org/lkml/2015/2/12/38).
* Chris Zhong from Rockchip in November 2015
(http://www.mail-archive.com/linux-kernel@xxxxxxxxxxxxxxx/msg1024586.html).

We can't have 3 almost identical DW MIPI DSI implementations in the kernel.
You'll need to separate out the vendor specific PHY pieces into ops (like
it's done in the DW HDMI) and post a bridge driver for this.

You don't need to convert the existing rockhip and hisilicon implementations
into bridge drivers. We can CC the authors of the rockchip and hisil so that
they can adapt to the bridge driver too.

Thanks,
Archit


The Rockchip driver looks nice and is updated regularly.
So, instead of creating a new driver for the STM32 family, we decided to
use Rockchip’s in our own drm/stm directory and replace the
Rockchip-specific PHY by the STM32.

Comments are welcome :-)
Many thanks,
Philippe


On 05/15/2017 10:22 AM, Neil Armstrong wrote:
On 05/12/2017 04:56 PM, Philippe CORNU wrote:
This mipi dsi host driver is based on the Rockchip version of the
Synopsys Designware mipi dsi driver (rockchip/dw-mipi-dsi.c)
modified for the stm32 family:
- replace Rockchip digital & phy specific extensions with stm32's ones.
- add a bridge

Signed-off-by: Philippe CORNU <philippe.cornu@xxxxxx>
---
 drivers/gpu/drm/stm/Kconfig       |    7 +
 drivers/gpu/drm/stm/Makefile      |    2 +
 drivers/gpu/drm/stm/dw-mipi-dsi.c | 1197 +++++++++++++++++++++++++++++++++++++
 3 files changed, 1206 insertions(+)
 create mode 100644 drivers/gpu/drm/stm/dw-mipi-dsi.c

diff --git a/drivers/gpu/drm/stm/Kconfig b/drivers/gpu/drm/stm/Kconfig
index 2c4817f..0007789 100644
--- a/drivers/gpu/drm/stm/Kconfig
+++ b/drivers/gpu/drm/stm/Kconfig
@@ -14,3 +14,10 @@ config DRM_STM
 	  STMicroelectronics STM32 MCUs.
 	  To compile this driver as a module, choose M here: the module
 	  will be called stm-drm.
+
+config DRM_STM_DSI
+	tristate "MIPI DSI support for STMicroelectronics SoC"
+	depends on DRM_STM
+	select DRM_MIPI_DSI
+	help
+	  Choose this option for MIPI DSI support on STMicroelectronics SoC.
diff --git a/drivers/gpu/drm/stm/Makefile b/drivers/gpu/drm/stm/Makefile
index e114d45..e448a93 100644
--- a/drivers/gpu/drm/stm/Makefile
+++ b/drivers/gpu/drm/stm/Makefile
@@ -4,4 +4,6 @@ stm-drm-y := \
 	drv.o \
 	ltdc.o

+obj-$(CONFIG_DRM_STM_DSI) += dw-mipi-dsi.o
+
 obj-$(CONFIG_DRM_STM) += stm-drm.o
diff --git a/drivers/gpu/drm/stm/dw-mipi-dsi.c b/drivers/gpu/drm/stm/dw-mipi-dsi.c
new file mode 100644
index 0000000..4b7f7b9
--- /dev/null
+++ b/drivers/gpu/drm/stm/dw-mipi-dsi.c


Hi Philippe,

First question, why couldn't this be transformed as a bridge driver along the Synopsys DW-HDMI driver ?

Neil

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel


--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux