* [PATCH v8 0/3] drm/lsdc: add drm driver for loongson display controller
@ 2022-02-16 18:17 Sui Jingfeng
2022-02-16 18:17 ` [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node Sui Jingfeng
2022-02-16 18:17 ` [PATCH v8 3/3] MAINTAINERS: add maintainers for DRM LSDC driver Sui Jingfeng
0 siblings, 2 replies; 10+ messages in thread
From: Sui Jingfeng @ 2022-02-16 18:17 UTC (permalink / raw)
To: Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin,
Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring,
Thomas Bogendoerfer, Dan Carpenter, Krzysztof Kozlowski,
Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Jiaxun Yang,
Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, Li Yi,
suijingfeng
Cc: linux-mips, linux-kernel, devicetree, dri-devel, Joe Perches,
Maxime Ripard, Randy Dunlap, kernel test robot
There is a display controller in loongson's LS2K1000 SoC and LS7A1000
bridge chip, it is a PCI device in those chips. It has two display
pipes but with only one hardware cursor. Each way has a DVO interface
which provide RGB888 signals, vertical & horizontal synchronisations,
data enable and the pixel clock. Each CRTC is able to scanout from
1920x1080 resolution at 60Hz. The maxmium resolution is 2048x2048
according to the hardware spec. Loongson display controllers are simple
which require scanout buffers to be physically contiguous.
For LS7A1000/LS7A2000 bridge chip, the DC is equipped with a dedicated
video ram which is typically 64MB or more. In this case, VRAM helper
based driver is intend to be used. While LS2K1000 is a SoC, only system
memory is available. Therefore CMA helper based driver is intend to be
used. It is possible to use VRAM helper based solution by carving out
part of system memory as VRAM though.
For LS7A1000, there are 4 dedicated GPIOs whose control register is
located at the DC register space, They are used to emulate two way i2c.
One for DVO0, another for DVO1. LS2K1000 and LS2K0500 SoC don't have such
GPIO hardwared, they grab i2c adapter from other module, either general
purpose GPIO emulated i2c or hardware i2c adapter.
+------+ +-----------------------------------+
| DDR4 | | +-------------------+ |
+------+ | | PCIe Root complex | LS7A1000 |
|| MC0 | +--++---------++----+ |
+----------+ HT 3.0 | || || |
| LS3A4000 |<-------->| +---++---+ +--++--+ +---------+ +------+
| CPU |<-------->| | GC1000 | | LSDC |<-->| DDR3 MC |<->| VRAM |
+----------+ | +--------+ +-+--+-+ +---------+ +------+
|| MC1 +---------------|--|----------------+
+------+ | |
| DDR4 | +-------+ DVO0 | | DVO1 +------+
+------+ VGA <--|ADV7125|<--------+ +-------->|TFP410|--> DVI/HDMI
+-------+ +------+
The above picture give a simple usage of LS7A1000, note that the encoder
is not necessary adv7125 or tfp410, other candicate encoders can be
ch7034b, sil9022 and ite66121 lt8618 etc.
v2: fixup warnings reported by kernel test robot
v3: fix more grammar mistakes in Kconfig reported by Randy Dunlap and give
more details about lsdc.
v4:
1) Add dts required and explain why device tree is required.
2) Give more description about lsdc and vram helper base driver.
3) Fix warnings reported by kernel test robot.
4) Introduce stride_alignment member into struct lsdc_chip_desc, the
stride alignment is 256 bytes for ls7a1000, ls2k1000 and ls2k0500.
But ls7a2000 improve it to 32 bytes, for extend the support for the
device on coming.
v5:
1) using writel and readl replace writeq and readq, to fix kernel test
robot report build error on other archtecture
2) set default fb format to XRGB8888 at crtc reset time.
3) fix typos.
v6:
1) Explain why we are not switch to drm dridge subsystem on ls2k1000.
2) Explain why tiny drm driver is not suitable for us.
3) Give a short description of the trival dirty uppdate implement based
on CMA helper.
4) code clean up
v7:
1) Remove select I2C_GPIO and I2C_LS2X in Kconfig, it is not ready now
2) Licensing issues are fixed suggested by Krzysztof Kozlowski.
3) lsdc_pixpll_print() is removed, part of it move to debugfs.
4) Set prefer_shadow to true if vram based driver is in using.
5) Replace double blank lines with single line in all files
6) Verbose cmd line parameter is replaced with drm_dbg()
7) All warnnings reported by ./scripts/checkpatch.pl --strict are fixed
8) Get edid from dtb support is removed as suggested by Maxime Ripard
9) Fix typos and various improvement
v8:
1) Drop damage update implement and its command line.
2) Drop DRM_LSDC_VRAM_DRIVER config option as suggested by Maxime.
3) Deduce DC's identification from its compatible property.
4) Drop the indroduction of board specific dts.
5) Add documention about the display controller device node.
Below is a brief introduction of loongson's CPU, bridge chip and SoC.
LS2K1000 is a double core 1.0Ghz mips64r2 compatible SoC[1]. LS7A1000 is
a bridge chip made by Loongson corporation which act as north and/or south
bridge of loongson's desktop and server level processor. It is equivalent
to AMD RS780E+SB710 or something like that. More details can be read from
its user manual[2].
This bridge chip is typically use with LS3A3000, LS3A4000 and LS3A5000 cpu.
LS3A3000 is 4 core 1.45gHz mips64r2 compatible cpu.
LS3A4000 is 4 core 1.8gHz mips64r5 compatible cpu[3].
LS3A5000 is 4 core 2.5gHz loongarch cpu[4].
Nearly all loongson cpu has the hardware maintain the cache coherency,
except for early version of ls2k1000 or ls3a2000. This is the most distinct
feature from other Mips cpu.
[1] https://wiki.debian.org/InstallingDebianOn/Lemote/Loongson2K1000
[2] https://loongson.github.io/LoongArch-Documentation/Loongson-7A1000-usermanual-EN.html
[3] https://ee-paper.com/loongson-3a4000-3b4000-motherboard-products-are-compatible-with-uos-system/
[4] https://loongson.github.io/LoongArch-Documentation/Loongson-3A5000-usermanual-EN.html
[5] https://github.com/loongson-community/pmon
Reported-by: Joe Perches <joe@perches.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reported-by: Krzysztof Kozlowski <krzk@kernel.org>
Reported-by: Maxime Ripard <maxime@cerno.tech>
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: suijingfeng <suijingfeng@loongson.cn>
Signed-off-by: Sui Jingfeng <15330273260@189.cn>
suijingfeng (3):
drm/lsdc: add drm driver for loongson display controller
MIPS: Loongson64: dts: update the display controller device node
MAINTAINERS: add maintainers for DRM LSDC driver
.../loongson/loongson,display-controller.yaml | 114 +++
.../display/loongson/loongson-drm.txt | 16 +
MAINTAINERS | 9 +
.../boot/dts/loongson/loongson64-2k1000.dtsi | 8 +
arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +-
drivers/gpu/drm/Kconfig | 2 +
drivers/gpu/drm/Makefile | 1 +
drivers/gpu/drm/lsdc/Kconfig | 21 +
drivers/gpu/drm/lsdc/Makefile | 13 +
drivers/gpu/drm/lsdc/lsdc_connector.c | 334 +++++++++
drivers/gpu/drm/lsdc/lsdc_connector.h | 38 +
drivers/gpu/drm/lsdc/lsdc_crtc.c | 341 +++++++++
drivers/gpu/drm/lsdc/lsdc_drv.c | 699 ++++++++++++++++++
drivers/gpu/drm/lsdc/lsdc_drv.h | 209 ++++++
drivers/gpu/drm/lsdc/lsdc_encoder.c | 54 ++
drivers/gpu/drm/lsdc/lsdc_i2c.c | 198 +++++
drivers/gpu/drm/lsdc/lsdc_i2c.h | 40 +
drivers/gpu/drm/lsdc/lsdc_irq.c | 60 ++
drivers/gpu/drm/lsdc/lsdc_irq.h | 20 +
drivers/gpu/drm/lsdc/lsdc_plane.c | 526 +++++++++++++
drivers/gpu/drm/lsdc/lsdc_pll.c | 580 +++++++++++++++
drivers/gpu/drm/lsdc/lsdc_pll.h | 90 +++
drivers/gpu/drm/lsdc/lsdc_regs.h | 202 +++++
23 files changed, 3577 insertions(+), 5 deletions(-)
create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml
create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt
create mode 100644 drivers/gpu/drm/lsdc/Kconfig
create mode 100644 drivers/gpu/drm/lsdc/Makefile
create mode 100644 drivers/gpu/drm/lsdc/lsdc_connector.c
create mode 100644 drivers/gpu/drm/lsdc/lsdc_connector.h
create mode 100644 drivers/gpu/drm/lsdc/lsdc_crtc.c
create mode 100644 drivers/gpu/drm/lsdc/lsdc_drv.c
create mode 100644 drivers/gpu/drm/lsdc/lsdc_drv.h
create mode 100644 drivers/gpu/drm/lsdc/lsdc_encoder.c
create mode 100644 drivers/gpu/drm/lsdc/lsdc_i2c.c
create mode 100644 drivers/gpu/drm/lsdc/lsdc_i2c.h
create mode 100644 drivers/gpu/drm/lsdc/lsdc_irq.c
create mode 100644 drivers/gpu/drm/lsdc/lsdc_irq.h
create mode 100644 drivers/gpu/drm/lsdc/lsdc_plane.c
create mode 100644 drivers/gpu/drm/lsdc/lsdc_pll.c
create mode 100644 drivers/gpu/drm/lsdc/lsdc_pll.h
create mode 100644 drivers/gpu/drm/lsdc/lsdc_regs.h
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node 2022-02-16 18:17 [PATCH v8 0/3] drm/lsdc: add drm driver for loongson display controller Sui Jingfeng @ 2022-02-16 18:17 ` Sui Jingfeng 2022-02-16 18:44 ` Jiaxun Yang ` (2 more replies) 2022-02-16 18:17 ` [PATCH v8 3/3] MAINTAINERS: add maintainers for DRM LSDC driver Sui Jingfeng 1 sibling, 3 replies; 10+ messages in thread From: Sui Jingfeng @ 2022-02-16 18:17 UTC (permalink / raw) To: Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Krzysztof Kozlowski, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Jiaxun Yang, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, Li Yi, suijingfeng Cc: linux-mips, linux-kernel, devicetree, dri-devel From: suijingfeng <suijingfeng@loongson.cn> The display controller is a pci device, its PCI vendor id is 0x0014 its PCI device id is 0x7a06. 1) In order to let the lsdc kms driver to know which chip the DC is contained in, we add different compatible for different chip. 2) Add display controller device node for ls2k1000 SoC Signed-off-by: suijingfeng <suijingfeng@loongson.cn> Signed-off-by: Sui Jingfeng <15330273260@189.cn> --- .../loongson/loongson,display-controller.yaml | 114 ++++++++++++++++++ .../display/loongson/loongson-drm.txt | 16 +++ .../boot/dts/loongson/loongson64-2k1000.dtsi | 8 ++ arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +- 4 files changed, 140 insertions(+), 5 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt diff --git a/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml new file mode 100644 index 000000000000..64d8364b50ab --- /dev/null +++ b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml @@ -0,0 +1,114 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/pci0014,7a06.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Loongson LS7A2000/LS7A1000/LS2K1000/LS2K0500 Display Controller Device Tree Bindings + +maintainers: + - Sui Jingfeng <suijingfeng@loongson.cn> + +description: |+ + + Loongson display controllers are simple which require scanout buffers + to be physically contiguous. LS2K1000/LS2K0500 is a SOC, only system + memory is available. LS7A1000/LS7A2000 is bridge chip which is equipped + with a dedicated video ram which is 64MB or more. + + For LS7A1000, there are 4 dedicated GPIOs whose control register is + located at the DC register space. They are used to emulate two way i2c, + One for DVO0, another for DVO1. + + LS2K1000 and LS2K0500 SoC grab i2c adapter from other module, either + general purpose GPIO emulated i2c or hardware i2c in the SoC. + + LSDC has two display pipes, each way has a DVO interface which provide + RGB888 signals, vertical & horizontal synchronisations, data enable and + the pixel clock. LSDC has two CRTC, each CRTC is able to scanout from + 1920x1080 resolution at 60Hz. Each CRTC has two FB address registers. + + LSDC's display pipeline have several components as below description, + + The display controller in LS7A1000: + ___________________ _________ + | -------| | | + | CRTC0 --> | DVO0 ----> Encoder0 ---> Connector0 ---> | Monotor | + | _ _ -------| ^ ^ |_________| + | | | | | -------| | | + | |_| |_| | i2c0 <--------+-------------+ + | -------| + | DC IN LS7A1000 | + | _ _ -------| + | | | | | | i2c1 <--------+-------------+ + | |_| |_| -------| | | _________ + | -------| | | | | + | CRTC1 --> | DVO1 ----> Encoder1 ---> Connector1 ---> | Panel | + | -------| |_________| + |___________________| + + Simple usage of LS7A1000 with LS3A4000 CPU: + + +------+ +-----------------------------------+ + | DDR4 | | +-------------------+ | + +------+ | | PCIe Root complex | LS7A1000 | + || MC0 | +--++---------++----+ | + +----------+ HT 3.0 | || || | + | LS3A4000 |<-------->| +---++---+ +--++--+ +---------+ +------+ + | CPU |<-------->| | GC1000 | | LSDC |<-->| DDR3 MC |<->| VRAM | + +----------+ | +--------+ +-+--+-+ +---------+ +------+ + || MC1 +---------------|--|----------------+ + +------+ | | + | DDR4 | +-------+ DVO0 | | DVO1 +------+ + +------+ VGA <--|ADV7125|<--------+ +-------->|TFP410|--> DVI/HDMI + +-------+ +------+ + + The display controller in LS2K1000/LS2K0500: + ___________________ _________ + | -------| | | + | CRTC0 --> | DVO0 ----> Encoder0 ---> Connector0 ---> | Monotor | + | _ _ -------| ^ ^ |_________| + | | | | | | | | + | |_| |_| | +------+ | + | <---->| i2c0 |<---------+ + | DC IN LS2K1000 | +------+ + | _ _ | +------+ + | | | | | <---->| i2c1 |----------+ + | |_| |_| | +------+ | _________ + | -------| | | | | + | CRTC1 --> | DVO1 ----> Encoder1 ---> Connector1 ---> | Panel | + | -------| |_________| + |___________________| + +properties: + compatible: + enum: + - loongson,ls7a2000-dc + - loongson,ls7a1000-dc + - loongson,ls2k1000-dc + - loongson,ls2k0500-dc + + reg: + maxItems: 1 + + interrupts: + minItems: 1 + +required: + - compatible + - reg + - interrupts + +additionalProperties: false + +examples: + - | + lsdc: dc@6,1 { + compatible = "loongson,ls7a1000-dc"; + reg = <0x3100 0x0 0x0 0x0 0x0>; + interrupts = <28 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&pic>; + }; + +... + diff --git a/Documentation/devicetree/bindings/display/loongson/loongson-drm.txt b/Documentation/devicetree/bindings/display/loongson/loongson-drm.txt new file mode 100644 index 000000000000..46417e0e34ba --- /dev/null +++ b/Documentation/devicetree/bindings/display/loongson/loongson-drm.txt @@ -0,0 +1,16 @@ +Loongson display controller +=========================== + +Required properties: +- compatible: Should be "loongson,display-subsystem" or "loongson,ls-fb" +- reg: should be register base and length +- interrupts: Should contain the cores interrupt line + +example: + +lsdc: dc@0x400c0000 { + compatible = "loongson,display-subsystem", "loongson,ls-fb"; + reg = <0x400c0000 0x00010000>; + interrupt-parent = <&icu>; + interrupts = <36>; +}; diff --git a/arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi b/arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi index 768cf2abcea3..47f6ff4c3e8a 100644 --- a/arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi +++ b/arch/mips/boot/dts/loongson/loongson64-2k1000.dtsi @@ -209,6 +209,14 @@ gpu@5,0 { interrupt-parent = <&liointc0>; }; + lsdc: dc@6,0 { + compatible = "loongson,ls2k1000-dc"; + + reg = <0x3000 0x0 0x0 0x0 0x0>; + interrupts = <28 IRQ_TYPE_LEVEL_LOW>; + interrupt-parent = <&liointc0>; + }; + pci_bridge@9,0 { compatible = "pci0014,7a19.0", "pci0014,7a19", diff --git a/arch/mips/boot/dts/loongson/ls7a-pch.dtsi b/arch/mips/boot/dts/loongson/ls7a-pch.dtsi index 2f45fce2cdc4..b34426142453 100644 --- a/arch/mips/boot/dts/loongson/ls7a-pch.dtsi +++ b/arch/mips/boot/dts/loongson/ls7a-pch.dtsi @@ -160,11 +160,8 @@ gpu@6,0 { interrupt-parent = <&pic>; }; - dc@6,1 { - compatible = "pci0014,7a06.0", - "pci0014,7a06", - "pciclass030000", - "pciclass0300"; + lsdc: dc@6,1 { + compatible = "loongson,ls7a1000-dc"; reg = <0x3100 0x0 0x0 0x0 0x0>; interrupts = <28 IRQ_TYPE_LEVEL_HIGH>; -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node 2022-02-16 18:17 ` [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node Sui Jingfeng @ 2022-02-16 18:44 ` Jiaxun Yang 2022-02-16 19:05 ` Sui Jingfeng 2022-02-17 8:42 ` Krzysztof Kozlowski 2022-02-17 16:39 ` Rob Herring 2 siblings, 1 reply; 10+ messages in thread From: Jiaxun Yang @ 2022-02-16 18:44 UTC (permalink / raw) To: Sui Jingfeng, Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Krzysztof Kozlowski, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, Li Yi, suijingfeng Cc: linux-mips, linux-kernel, devicetree, dri-devel 在 2022/2/16 18:17, Sui Jingfeng 写道: > From: suijingfeng <suijingfeng@loongson.cn> > > The display controller is a pci device, its PCI vendor id is 0x0014 > its PCI device id is 0x7a06. > > 1) In order to let the lsdc kms driver to know which chip the DC is > contained in, we add different compatible for different chip. > > 2) Add display controller device node for ls2k1000 SoC > > Signed-off-by: suijingfeng <suijingfeng@loongson.cn> > Signed-off-by: Sui Jingfeng <15330273260@189.cn> > --- > .../loongson/loongson,display-controller.yaml | 114 ++++++++++++++++++ > .../display/loongson/loongson-drm.txt | 16 +++ ^ Is loongson-drm.txt intentional? It seems irrelevant.... Thanks. > .../boot/dts/loongson/loongson64-2k1000.dtsi | 8 ++ > arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +- > 4 files changed, 140 insertions(+), 5 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml > create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt [...] - Jiaxun ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node 2022-02-16 18:44 ` Jiaxun Yang @ 2022-02-16 19:05 ` Sui Jingfeng 0 siblings, 0 replies; 10+ messages in thread From: Sui Jingfeng @ 2022-02-16 19:05 UTC (permalink / raw) To: Jiaxun Yang Cc: Sui Jingfeng, Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Krzysztof Kozlowski, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, Li Yi, linux-mips, linux-kernel, devicetree, dri-devel Oh,sorry for that. This is what i am write for our downstream 4.19.190 kernel,I write it long time ago. It shouldn’t be included in this patch set. Please ignore that, I will remove it at next version. I am sorry introduce “bug” again. 发自我的iPhone > 在 2022年2月17日,上午2:44,Jiaxun Yang <jiaxun.yang@flygoat.com> 写道: > > > >> 在 2022/2/16 18:17, Sui Jingfeng 写道: >> From: suijingfeng <suijingfeng@loongson.cn> >> >> The display controller is a pci device, its PCI vendor id is 0x0014 >> its PCI device id is 0x7a06. >> >> 1) In order to let the lsdc kms driver to know which chip the DC is >> contained in, we add different compatible for different chip. >> >> 2) Add display controller device node for ls2k1000 SoC >> >> Signed-off-by: suijingfeng <suijingfeng@loongson.cn> >> Signed-off-by: Sui Jingfeng <15330273260@189.cn> >> --- >> .../loongson/loongson,display-controller.yaml | 114 ++++++++++++++++++ >> .../display/loongson/loongson-drm.txt | 16 +++ > ^ Is loongson-drm.txt intentional? > It seems irrelevant.... > > Thanks. >> .../boot/dts/loongson/loongson64-2k1000.dtsi | 8 ++ >> arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +- >> 4 files changed, 140 insertions(+), 5 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml >> create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt > [...] > - Jiaxun ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node 2022-02-16 18:17 ` [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node Sui Jingfeng 2022-02-16 18:44 ` Jiaxun Yang @ 2022-02-17 8:42 ` Krzysztof Kozlowski 2022-02-17 11:07 ` Sui Jingfeng 2022-02-17 16:39 ` Rob Herring 2 siblings, 1 reply; 10+ messages in thread From: Krzysztof Kozlowski @ 2022-02-17 8:42 UTC (permalink / raw) To: Sui Jingfeng, Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Jiaxun Yang, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, Li Yi, suijingfeng Cc: linux-mips, linux-kernel, devicetree, dri-devel On 16/02/2022 19:17, Sui Jingfeng wrote: > From: suijingfeng <suijingfeng@loongson.cn> > > The display controller is a pci device, its PCI vendor id is 0x0014 > its PCI device id is 0x7a06. > > 1) In order to let the lsdc kms driver to know which chip the DC is > contained in, we add different compatible for different chip. > > 2) Add display controller device node for ls2k1000 SoC > > Signed-off-by: suijingfeng <suijingfeng@loongson.cn> > Signed-off-by: Sui Jingfeng <15330273260@189.cn> > --- > .../loongson/loongson,display-controller.yaml | 114 ++++++++++++++++++ > .../display/loongson/loongson-drm.txt | 16 +++ Please split dt-bindings from other changes into a separate patch, which should be first in the series. > .../boot/dts/loongson/loongson64-2k1000.dtsi | 8 ++ > arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +- > 4 files changed, 140 insertions(+), 5 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml > create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt > > diff --git a/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml > new file mode 100644 > index 000000000000..64d8364b50ab > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml > @@ -0,0 +1,114 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/pci0014,7a06.yaml# The file name looks different than ID. Does this pass `make dt_binding_check` validation? > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Loongson LS7A2000/LS7A1000/LS2K1000/LS2K0500 Display Controller Device Tree Bindings > + > +maintainers: > + - Sui Jingfeng <suijingfeng@loongson.cn> > + > +description: |+ > + > + Loongson display controllers are simple which require scanout buffers > + to be physically contiguous. LS2K1000/LS2K0500 is a SOC, only system > + memory is available. LS7A1000/LS7A2000 is bridge chip which is equipped > + with a dedicated video ram which is 64MB or more. > + > + For LS7A1000, there are 4 dedicated GPIOs whose control register is > + located at the DC register space. They are used to emulate two way i2c, > + One for DVO0, another for DVO1. > + > + LS2K1000 and LS2K0500 SoC grab i2c adapter from other module, either > + general purpose GPIO emulated i2c or hardware i2c in the SoC. > + > + LSDC has two display pipes, each way has a DVO interface which provide > + RGB888 signals, vertical & horizontal synchronisations, data enable and > + the pixel clock. LSDC has two CRTC, each CRTC is able to scanout from > + 1920x1080 resolution at 60Hz. Each CRTC has two FB address registers. > + > + LSDC's display pipeline have several components as below description, > + > + The display controller in LS7A1000: > + ___________________ _________ > + | -------| | | > + | CRTC0 --> | DVO0 ----> Encoder0 ---> Connector0 ---> | Monotor | > + | _ _ -------| ^ ^ |_________| > + | | | | | -------| | | > + | |_| |_| | i2c0 <--------+-------------+ > + | -------| > + | DC IN LS7A1000 | > + | _ _ -------| > + | | | | | | i2c1 <--------+-------------+ > + | |_| |_| -------| | | _________ > + | -------| | | | | > + | CRTC1 --> | DVO1 ----> Encoder1 ---> Connector1 ---> | Panel | > + | -------| |_________| > + |___________________| > + > + Simple usage of LS7A1000 with LS3A4000 CPU: > + > + +------+ +-----------------------------------+ > + | DDR4 | | +-------------------+ | > + +------+ | | PCIe Root complex | LS7A1000 | > + || MC0 | +--++---------++----+ | > + +----------+ HT 3.0 | || || | > + | LS3A4000 |<-------->| +---++---+ +--++--+ +---------+ +------+ > + | CPU |<-------->| | GC1000 | | LSDC |<-->| DDR3 MC |<->| VRAM | > + +----------+ | +--------+ +-+--+-+ +---------+ +------+ > + || MC1 +---------------|--|----------------+ > + +------+ | | > + | DDR4 | +-------+ DVO0 | | DVO1 +------+ > + +------+ VGA <--|ADV7125|<--------+ +-------->|TFP410|--> DVI/HDMI > + +-------+ +------+ > + > + The display controller in LS2K1000/LS2K0500: > + ___________________ _________ > + | -------| | | > + | CRTC0 --> | DVO0 ----> Encoder0 ---> Connector0 ---> | Monotor | > + | _ _ -------| ^ ^ |_________| > + | | | | | | | | > + | |_| |_| | +------+ | > + | <---->| i2c0 |<---------+ > + | DC IN LS2K1000 | +------+ > + | _ _ | +------+ > + | | | | | <---->| i2c1 |----------+ > + | |_| |_| | +------+ | _________ > + | -------| | | | | > + | CRTC1 --> | DVO1 ----> Encoder1 ---> Connector1 ---> | Panel | > + | -------| |_________| > + |___________________| > + > +properties: > + compatible: > + enum: > + - loongson,ls7a2000-dc > + - loongson,ls7a1000-dc > + - loongson,ls2k1000-dc > + - loongson,ls2k0500-dc > + > + reg: > + maxItems: 1 > + > + interrupts: > + minItems: 1 You need also maxItems. If you have only one interrupt, then just maxItems:1. > + > +required: > + - compatible > + - reg > + - interrupts > + > +additionalProperties: false > + > +examples: > + - | > + lsdc: dc@6,1 { node name should be generic: "display-controller" The unit address does not look like matching the reg property. Is this how it suppose to be? > + compatible = "loongson,ls7a1000-dc"; > + reg = <0x3100 0x0 0x0 0x0 0x0>; > + interrupts = <28 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-parent = <&pic>; > + }; > + > +... Best regards, Krzysztof ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node 2022-02-17 8:42 ` Krzysztof Kozlowski @ 2022-02-17 11:07 ` Sui Jingfeng 0 siblings, 0 replies; 10+ messages in thread From: Sui Jingfeng @ 2022-02-17 11:07 UTC (permalink / raw) To: Krzysztof Kozlowski, Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Jiaxun Yang, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, Li Yi, suijingfeng Cc: linux-mips, linux-kernel, devicetree, dri-devel On 2022/2/17 16:42, Krzysztof Kozlowski wrote: >> .../boot/dts/loongson/loongson64-2k1000.dtsi | 8 ++ >> arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +- >> 4 files changed, 140 insertions(+), 5 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml >> create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt >> >> diff --git a/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml >> new file mode 100644 >> index 000000000000..64d8364b50ab >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml >> @@ -0,0 +1,114 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id:http://devicetree.org/schemas/display/pci0014,7a06.yaml# > The file name looks different than ID. Does this pass `make > dt_binding_check` validation? > I run make dt_binding_check, it say 'dt-doc-validate' not found! Ensure dtschema python package is installed and in your PATH. Current PATH is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin make[1]: *** [Documentation/devicetree/bindings/Makefile:12: check_dtschema_version] Error 1 make: *** [Makefile:1398: dt_binding_check] Error 2 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node 2022-02-16 18:17 ` [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node Sui Jingfeng 2022-02-16 18:44 ` Jiaxun Yang 2022-02-17 8:42 ` Krzysztof Kozlowski @ 2022-02-17 16:39 ` Rob Herring 2022-02-21 1:35 ` Sui Jingfeng 2 siblings, 1 reply; 10+ messages in thread From: Rob Herring @ 2022-02-17 16:39 UTC (permalink / raw) To: Sui Jingfeng Cc: Dan Carpenter, Roland Scheidegger, Maxime Ripard, Sam Ravnborg, suijingfeng, Li Yi, Andrey Zhizhikin, Jiaxun Yang, linux-mips, dri-devel, Thomas Zimmermann, devicetree, David Airlie, Daniel Vetter, Krzysztof Kozlowski, David S . Miller, Christian Gmeiner, Qing Zhang, Zack Rusin, linux-kernel, Rob Herring, Maarten Lankhorst, Thomas Bogendoerfer, Lucas Stach, Ilia Mirkin On Thu, 17 Feb 2022 02:17:11 +0800, Sui Jingfeng wrote: > From: suijingfeng <suijingfeng@loongson.cn> > > The display controller is a pci device, its PCI vendor id is 0x0014 > its PCI device id is 0x7a06. > > 1) In order to let the lsdc kms driver to know which chip the DC is > contained in, we add different compatible for different chip. > > 2) Add display controller device node for ls2k1000 SoC > > Signed-off-by: suijingfeng <suijingfeng@loongson.cn> > Signed-off-by: Sui Jingfeng <15330273260@189.cn> > --- > .../loongson/loongson,display-controller.yaml | 114 ++++++++++++++++++ > .../display/loongson/loongson-drm.txt | 16 +++ > .../boot/dts/loongson/loongson64-2k1000.dtsi | 8 ++ > arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +- > 4 files changed, 140 insertions(+), 5 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml > create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: ./Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml: $id: relative path/filename doesn't match actual path or filename expected: http://devicetree.org/schemas/display/loongson/loongson,display-controller.yaml# Error: Documentation/devicetree/bindings/display/loongson/loongson,display-controller.example.dts:22.30-31 syntax error FATAL ERROR: Unable to parse input tree make[1]: *** [scripts/Makefile.lib:378: Documentation/devicetree/bindings/display/loongson/loongson,display-controller.example.dt.yaml] Error 1 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:1398: dt_binding_check] Error 2 doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/patch/1593886 This check can fail if there are any dependencies. The base for a patch series is generally the most recent rc1. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node 2022-02-17 16:39 ` Rob Herring @ 2022-02-21 1:35 ` Sui Jingfeng 0 siblings, 0 replies; 10+ messages in thread From: Sui Jingfeng @ 2022-02-21 1:35 UTC (permalink / raw) To: Rob Herring Cc: Dan Carpenter, Roland Scheidegger, Maxime Ripard, Sam Ravnborg, suijingfeng, Li Yi, Andrey Zhizhikin, Jiaxun Yang, linux-mips, dri-devel, Thomas Zimmermann, devicetree, David Airlie, Daniel Vetter, Krzysztof Kozlowski, David S . Miller, Christian Gmeiner, Qing Zhang, Zack Rusin, linux-kernel, Rob Herring, Maarten Lankhorst, Thomas Bogendoerfer, Lucas Stach, Ilia Mirkin On 2022/2/18 00:39, Rob Herring wrote: > On Thu, 17 Feb 2022 02:17:11 +0800, Sui Jingfeng wrote: >> From: suijingfeng <suijingfeng@loongson.cn> >> >> The display controller is a pci device, its PCI vendor id is 0x0014 >> its PCI device id is 0x7a06. >> >> 1) In order to let the lsdc kms driver to know which chip the DC is >> contained in, we add different compatible for different chip. >> >> 2) Add display controller device node for ls2k1000 SoC >> >> Signed-off-by: suijingfeng <suijingfeng@loongson.cn> >> Signed-off-by: Sui Jingfeng <15330273260@189.cn> >> --- >> .../loongson/loongson,display-controller.yaml | 114 ++++++++++++++++++ >> .../display/loongson/loongson-drm.txt | 16 +++ >> .../boot/dts/loongson/loongson64-2k1000.dtsi | 8 ++ >> arch/mips/boot/dts/loongson/ls7a-pch.dtsi | 7 +- >> 4 files changed, 140 insertions(+), 5 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml >> create mode 100644 Documentation/devicetree/bindings/display/loongson/loongson-drm.txt >> > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' > on your patch (DT_CHECKER_FLAGS is new in v5.13): > > yamllint warnings/errors: > > dtschema/dtc warnings/errors: > ./Documentation/devicetree/bindings/display/loongson/loongson,display-controller.yaml: $id: relative path/filename doesn't match actual path or filename > expected: http://devicetree.org/schemas/display/loongson/loongson,display-controller.yaml# > Error: Documentation/devicetree/bindings/display/loongson/loongson,display-controller.example.dts:22.30-31 syntax error > FATAL ERROR: Unable to parse input tree > make[1]: *** [scripts/Makefile.lib:378: Documentation/devicetree/bindings/display/loongson/loongson,display-controller.example.dt.yaml] Error 1 > make[1]: *** Waiting for unfinished jobs.... > make: *** [Makefile:1398: dt_binding_check] Error 2 > > doc reference errors (make refcheckdocs): > > See https://patchwork.ozlabs.org/patch/1593886 > > This check can fail if there are any dependencies. The base for a patch > series is generally the most recent rc1. > > If you already ran 'make dt_binding_check' and didn't see the above > error(s), then make sure 'yamllint' is installed and dt-schema is up to > date: > > pip3 install dtschema --upgrade > > Please check and re-submit. > Ok, I know that now, thank for you point it to me. ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v8 3/3] MAINTAINERS: add maintainers for DRM LSDC driver 2022-02-16 18:17 [PATCH v8 0/3] drm/lsdc: add drm driver for loongson display controller Sui Jingfeng 2022-02-16 18:17 ` [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node Sui Jingfeng @ 2022-02-16 18:17 ` Sui Jingfeng 2022-02-17 8:43 ` Krzysztof Kozlowski 1 sibling, 1 reply; 10+ messages in thread From: Sui Jingfeng @ 2022-02-16 18:17 UTC (permalink / raw) To: Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Krzysztof Kozlowski, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Jiaxun Yang, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, Li Yi, suijingfeng Cc: linux-mips, linux-kernel, devicetree, dri-devel From: suijingfeng <suijingfeng@loongson.cn> Signed-off-by: suijingfeng <suijingfeng@loongson.cn> Signed-off-by: Sui Jingfeng <15330273260@189.cn> --- MAINTAINERS | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index ea3e6c914384..3f5e13a6358b 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6453,6 +6453,15 @@ T: git git://anongit.freedesktop.org/drm/drm-misc F: drivers/gpu/drm/lima/ F: include/uapi/drm/lima_drm.h +DRM DRIVERS FOR LOONGSON +M: Sui Jingfeng <suijingfeng@loongson.cn> +L: dri-devel@lists.freedesktop.org +S: Maintained +W: https://www.loongson.cn/ +T: git git://anongit.freedesktop.org/drm/drm-misc +F: drivers/gpu/drm/lsdc/ +F: Documentation/devicetree/bindings/display/loongson/ + DRM DRIVERS FOR MEDIATEK M: Chun-Kuang Hu <chunkuang.hu@kernel.org> M: Philipp Zabel <p.zabel@pengutronix.de> -- 2.25.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v8 3/3] MAINTAINERS: add maintainers for DRM LSDC driver 2022-02-16 18:17 ` [PATCH v8 3/3] MAINTAINERS: add maintainers for DRM LSDC driver Sui Jingfeng @ 2022-02-17 8:43 ` Krzysztof Kozlowski 0 siblings, 0 replies; 10+ messages in thread From: Krzysztof Kozlowski @ 2022-02-17 8:43 UTC (permalink / raw) To: Sui Jingfeng, Maxime Ripard, Thomas Zimmermann, Roland Scheidegger, Zack Rusin, Christian Gmeiner, David Airlie, Daniel Vetter, Rob Herring, Thomas Bogendoerfer, Dan Carpenter, Andrey Zhizhikin, Sam Ravnborg, David S . Miller, Jiaxun Yang, Lucas Stach, Maarten Lankhorst, Ilia Mirkin, Qing Zhang, Li Yi, suijingfeng Cc: linux-mips, linux-kernel, devicetree, dri-devel On 16/02/2022 19:17, Sui Jingfeng wrote: > From: suijingfeng <suijingfeng@loongson.cn> > > Signed-off-by: suijingfeng <suijingfeng@loongson.cn> > Signed-off-by: Sui Jingfeng <15330273260@189.cn> > --- > MAINTAINERS | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/MAINTAINERS b/MAINTAINERS > index ea3e6c914384..3f5e13a6358b 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -6453,6 +6453,15 @@ T: git git://anongit.freedesktop.org/drm/drm-misc > F: drivers/gpu/drm/lima/ > F: include/uapi/drm/lima_drm.h > > +DRM DRIVERS FOR LOONGSON > +M: Sui Jingfeng <suijingfeng@loongson.cn> > +L: dri-devel@lists.freedesktop.org > +S: Maintained > +W: https://www.loongson.cn/ > +T: git git://anongit.freedesktop.org/drm/drm-misc > +F: drivers/gpu/drm/lsdc/ > +F: Documentation/devicetree/bindings/display/loongson/ > + Did you run checkpatch? Best regards, Krzysztof ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-02-21 1:35 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-02-16 18:17 [PATCH v8 0/3] drm/lsdc: add drm driver for loongson display controller Sui Jingfeng 2022-02-16 18:17 ` [PATCH v8 2/3] MIPS: Loongson64: dts: update the display controller device node Sui Jingfeng 2022-02-16 18:44 ` Jiaxun Yang 2022-02-16 19:05 ` Sui Jingfeng 2022-02-17 8:42 ` Krzysztof Kozlowski 2022-02-17 11:07 ` Sui Jingfeng 2022-02-17 16:39 ` Rob Herring 2022-02-21 1:35 ` Sui Jingfeng 2022-02-16 18:17 ` [PATCH v8 3/3] MAINTAINERS: add maintainers for DRM LSDC driver Sui Jingfeng 2022-02-17 8:43 ` Krzysztof Kozlowski
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).