Re: [PATCH 3/7] ARM: configs: imx_v6_v7: Enable DRM_DW_HDMI
On Wed, Apr 03, 2024 at 12:56:21PM +0200, Maxime Ripard wrote: > Commit 4fc8cb47fcfd ("drm/display: Move HDMI helpers into display-helper > module") turned the DRM_DW_HDMI dependency of DRM_IMX_HDMI into a > depends on which ended up disabling the driver in the defconfig. Make > sure it's still enabled. > > Fixes: 4fc8cb47fcfd ("drm/display: Move HDMI helpers into display-helper > module") > Reported-by: Mark Brown > Reported-by: Alexander Stein > Signed-off-by: Maxime Ripard Acked-by: Shawn Guo
Re: [PATCH RFC for upstream 4/4] arm64: defconfig: enable i.MX8MP ldb bridge
On Fri, Jan 26, 2024 at 09:57:26AM +0100, Yannic Moog wrote: > Enable the i.MX8MP LDB driver used for display support of the i.MX8MP > LVDS interface. > > Signed-off-by: Yannic Moog Applied, thanks!
Re: [PATCH RFC for upstream 3/4] arm64: dts: imx8mp-phyboard-pollux-rdk: add etml panel support
On Fri, Jan 26, 2024 at 09:57:25AM +0100, Yannic Moog wrote: > The imx8mp-phyboard-pollux has on-board lvds interface connections. An > edt,etml1010g3dra panel is supported for this interface. Add device tree > nodes for backlight and panel. > > Signed-off-by: Yannic Moog Applied, thanks!
Re: [PATCH 2/2] ARM: dts: imx7: add MIPI-DSI support
On Mon, Nov 27, 2023 at 05:12:29PM +0100, Roland Hieber wrote: > From: Marco Felsch > > This adds the device tree support for the MIPI-DSI block. The block can > be used as encoder for the parallel signals coming from the lcdif block. > > Signed-off-by: Marco Felsch > Signed-off-by: Roland Hieber Applied this one, thanks!
Re: [PATCH 2/2] ARM: dts: imx: add support for the ATM0700D4 panel attached to sk-imx53
On Sun, Aug 27, 2023 at 12:54:29AM +0300, Dmitry Baryshkov wrote: > The SK-ATM0700D4-Plug is an extension board (provided by the same > manufacturer, [1]) which can be connected to the SK-IMX53 panel kit. The > panel can be connected either using the RGB parallel bus or using the > LVDS connector (recommended). Add DT files describing this "shield", > both RGB and LVDS connections. > > [1] http://starterkit.ru/html/index.php?name=shop=view=64 > > Signed-off-by: Dmitry Baryshkov Applied, thanks!
Re: [PATCH v3 3/6] ARM: dts: freescale: Use new media bus type macros
On Thu, Jun 16, 2022 at 01:14:07AM +0300, Laurent Pinchart wrote: > Now that a header exists with macros for the media interface bus-type > values, replace hardcoding numerical constants with the corresponding > macros in the DT sources. > > Signed-off-by: Laurent Pinchart Applied, thanks!
Re: [PATCH v1 8/8] ARM: dts: imx6qdl-victgo: add CAN termination support
On Mon, Feb 21, 2022 at 10:53:12AM +0100, Oleksij Rempel wrote: > From: David Jander > > The gpio1 0 pin is controlling CAN termination, not USB H1 VBUS. So, > remove wrong regulator and assign this gpio to new DT CAN termination > property. > > Signed-off-by: David Jander > Signed-off-by: Oleksij Rempel Applied, thanks!
Re: [PATCH v1 7/8] ARM: dts: imx6dl-victgo: The TGO uses a lg,lb070wv8 compatible 7" display
On Mon, Feb 21, 2022 at 10:53:11AM +0100, Oleksij Rempel wrote: > From: Robin van der Gracht > > This series of devices is using lg,lb070wv8 instead of kyo,tcg121xglp. > > Signed-off-by: Robin van der Gracht > Signed-off-by: Oleksij Rempel Applied, thanks!
Re: [PATCH v1 6/8] ARM: dts: imx6dl-victgo: Add interrupt-counter nodes
On Mon, Feb 21, 2022 at 10:53:10AM +0100, Oleksij Rempel wrote: > From: Robin van der Gracht > > Interrupt counter is mainlined, now we can add missing counter nodes. > > Signed-off-by: Robin van der Gracht > Signed-off-by: Oleksij Rempel Applied, thanks!
Re: [PATCH v1 4/8] ARM: dts: imx6qdl-vicut1: update gpio-line-names for some GPIOs
On Mon, Feb 21, 2022 at 10:53:08AM +0100, Oleksij Rempel wrote: > From: David Jander > > countedX lines have different board names (YACO_x). And REV_ and BOARD_ pins > have multiple functions. So, use names exposed to the OS. > > Signed-off-by: David Jander > Signed-off-by: Oleksij Rempel Applied, thanks!
Re: [PATCH v1 3/8] ARM: dts: imx6qdl-vicut1/vicutgo: Add backlight_led node
On Mon, Feb 21, 2022 at 10:53:07AM +0100, Oleksij Rempel wrote: > From: David Jander > > backlight_led is the dimmable backlight for the rubber border on the case. It > is also used to highlight the power- and some other buttons. > > MX6QDL_PAD_SD4_DAT1__PWM3_OUT is also assigned as output for pwm3. Since > we need pwm3 for the backlight, we're forced to disable user space hardware > revision detection. The bootloader will have to supply this information > (i.e. through device tree). > > Signed-off-by: David Jander > Signed-off-by: Oleksij Rempel Applied, thanks!
Re: [PATCH v1 2/8] ARM: dts: imx6qdl-vicut1/vicutgo: Rename backlight to backlight_lcd
On Mon, Feb 21, 2022 at 10:53:06AM +0100, Oleksij Rempel wrote: > From: David Jander > > We have two backlight sources on this boards. Use more specific name for > the LCD backlight to see the difference. > > Signed-off-by: David Jander > Signed-off-by: Robin van der Gracht > Signed-off-by: Oleksij Rempel Applied, thanks!
Re: [PATCH v1 1/8] ARM: dts: imx6qdl-vicut1/vicutgo: Set default backlight brightness to maximum
On Mon, Feb 21, 2022 at 10:53:05AM +0100, Oleksij Rempel wrote: > From: David Jander > > Recover default behavior of the device and set maximal brightness > > Signed-off-by: David Jander > Signed-off-by: Oleksij Rempel Applied, thanks!
Re: [PATCH v1 5/8] ARM: dts: imx6qdl-vicut1/vicutgo: The sgtl5000 uses i2s not ac97
On Mon, Feb 21, 2022 at 10:53:09AM +0100, Oleksij Rempel wrote: > From: Robin van der Gracht > > According to Documentation/devicetree/bindings/sound/fsl,ssi.txt > 'fsl,mode' should be specified for AC97 mode only. > > The 'fsl,ssi' documentation doesn't say anything about specifying > 'sound-dai-cells' so we'll remove that as well. Hmm, what needs to be fixed is fsl,ssi binding doc, I think. Shawn > > Signed-off-by: Robin van der Gracht > Signed-off-by: Oleksij Rempel > --- > arch/arm/boot/dts/imx6dl-victgo.dts | 2 -- > arch/arm/boot/dts/imx6qdl-vicut1.dtsi | 2 -- > 2 files changed, 4 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6dl-victgo.dts > b/arch/arm/boot/dts/imx6dl-victgo.dts > index d542ddad4e32..20c7f80e5ec9 100644 > --- a/arch/arm/boot/dts/imx6dl-victgo.dts > +++ b/arch/arm/boot/dts/imx6dl-victgo.dts > @@ -591,8 +591,6 @@ { > }; > > { > - #sound-dai-cells = <0>; > - fsl,mode = "ac97-slave"; > status = "okay"; > }; > > diff --git a/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > b/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > index ec39008c0950..97ef8264947a 100644 > --- a/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > @@ -466,8 +466,6 @@ { > }; > > { > - #sound-dai-cells = <0>; > - fsl,mode = "ac97-slave"; > status = "okay"; > }; > > -- > 2.30.2 >
Re: [PATCH v1 1/8] ARM: dts: imx6qdl-vicut1/vicutgo: Set default backlight brightness to maximum
On Wed, Apr 6, 2022 at 9:23 AM Shawn Guo wrote: > > On Mon, Feb 21, 2022 at 10:53:05AM +0100, Oleksij Rempel wrote: > > From: David Jander > > > > Recover default behavior of the device and set maximal brightness > > > > Signed-off-by: David Jander > > Signed-off-by: Oleksij Rempel > > --- > > arch/arm/boot/dts/imx6dl-victgo.dts | 2 +- > > arch/arm/boot/dts/imx6qdl-vicut1.dtsi | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/arch/arm/boot/dts/imx6dl-victgo.dts > > b/arch/arm/boot/dts/imx6dl-victgo.dts > > index 227c952543d4..e6134efbfabd 100644 > > --- a/arch/arm/boot/dts/imx6dl-victgo.dts > > +++ b/arch/arm/boot/dts/imx6dl-victgo.dts > > @@ -28,7 +28,7 @@ backlight: backlight { > > pwms = < 0 500 0>; > > brightness-levels = <0 16 64 255>; > > num-interpolated-steps = <16>; > > - default-brightness-level = <1>; > > + default-brightness-level = <48>; > > Please take a look at the documentation of the property. > > default-brightness-level: > description: > The default brightness level (index into the array defined by the > "brightness-levels" property). Ah, never mind, I missed 'num-interpolated-steps' there. Shawn
Re: [PATCH v1 1/8] ARM: dts: imx6qdl-vicut1/vicutgo: Set default backlight brightness to maximum
On Mon, Feb 21, 2022 at 10:53:05AM +0100, Oleksij Rempel wrote: > From: David Jander > > Recover default behavior of the device and set maximal brightness > > Signed-off-by: David Jander > Signed-off-by: Oleksij Rempel > --- > arch/arm/boot/dts/imx6dl-victgo.dts | 2 +- > arch/arm/boot/dts/imx6qdl-vicut1.dtsi | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6dl-victgo.dts > b/arch/arm/boot/dts/imx6dl-victgo.dts > index 227c952543d4..e6134efbfabd 100644 > --- a/arch/arm/boot/dts/imx6dl-victgo.dts > +++ b/arch/arm/boot/dts/imx6dl-victgo.dts > @@ -28,7 +28,7 @@ backlight: backlight { > pwms = < 0 500 0>; > brightness-levels = <0 16 64 255>; > num-interpolated-steps = <16>; > - default-brightness-level = <1>; > + default-brightness-level = <48>; Please take a look at the documentation of the property. default-brightness-level: description: The default brightness level (index into the array defined by the "brightness-levels" property). Shawn > power-supply = <_3v3>; > enable-gpios = < 28 GPIO_ACTIVE_HIGH>; > }; > diff --git a/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > b/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > index 1ac7e13249d2..c1d06bc28c67 100644 > --- a/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > @@ -23,7 +23,7 @@ backlight: backlight { > pwms = < 0 500 0>; > brightness-levels = <0 16 64 255>; > num-interpolated-steps = <16>; > - default-brightness-level = <1>; > + default-brightness-level = <48>; > power-supply = <_3v3>; > enable-gpios = < 28 GPIO_ACTIVE_HIGH>; > }; > -- > 2.30.2 >
Re: [PATCH v3 3/5] ARM: dts: imx6qdl-vicut1: add CAN termination support
On Fri, Feb 11, 2022 at 02:30:33PM +0100, Oleksij Rempel wrote: > The gpio1 0 pin is controlling CAN termination, not USB H1 VBUS. So, > remove wrong regulator and assign this gpio to new DT CAN termnation Sigh, the typo is still there with a new version. Fixed it up and applied the series. Shawn > property. > > Signed-off-by: Oleksij Rempel > --- > arch/arm/boot/dts/imx6qdl-vicut1.dtsi | 12 ++-- > 1 file changed, 2 insertions(+), 10 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > b/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > index b9e305774fed..1ac7e13249d2 100644 > --- a/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-vicut1.dtsi > @@ -126,15 +126,6 @@ reg_3v3: regulator-3v3 { > regulator-max-microvolt = <330>; > }; > > - reg_h1_vbus: regulator-h1-vbus { > - compatible = "regulator-fixed"; > - regulator-name = "h1-vbus"; > - regulator-min-microvolt = <500>; > - regulator-max-microvolt = <500>; > - gpio = < 0 GPIO_ACTIVE_HIGH>; > - enable-active-high; > - }; > - > reg_otg_vbus: regulator-otg-vbus { > compatible = "regulator-fixed"; > regulator-name = "otg-vbus"; > @@ -212,6 +203,8 @@ IMX_AUDMUX_V2_PTCR_SYN > IMX_AUDMUX_V2_PDCR_RXDSEL(0) > { > pinctrl-names = "default"; > pinctrl-0 = <_can1>; > + termination-gpios = < 0 GPIO_ACTIVE_LOW>; > + termination-ohms = <150>; > status = "okay"; > }; > > @@ -492,7 +485,6 @@ { > }; > > { > - vbus-supply = <_h1_vbus>; > pinctrl-names = "default"; > phy_type = "utmi"; > dr_mode = "host"; > -- > 2.30.2 >
Re: [PATCH v2 2/5] ARM: dts: imx6dl-prtvt7: Add missing tvp5150 video decoder node
On Mon, Jan 31, 2022 at 11:28:38AM +0100, Oleksij Rempel wrote: > From: Robin van der Gracht > > Signed-off-by: Robin van der Gracht Please write up some commit log. Also your SoB is missing. Shawn > --- > arch/arm/boot/dts/imx6dl-prtvt7.dts | 42 + > 1 file changed, 42 insertions(+) > > diff --git a/arch/arm/boot/dts/imx6dl-prtvt7.dts > b/arch/arm/boot/dts/imx6dl-prtvt7.dts > index be7c4cb339e7..baaa6ffc4df9 100644 > --- a/arch/arm/boot/dts/imx6dl-prtvt7.dts > +++ b/arch/arm/boot/dts/imx6dl-prtvt7.dts > @@ -6,6 +6,7 @@ > /dts-v1/; > #include "imx6dl.dtsi" > #include "imx6qdl-prti6q.dtsi" > +#include > #include > #include > #include > @@ -171,6 +172,18 @@ panel_in: endpoint { > }; > }; > > + connector { > + compatible = "composite-video-connector"; > + label = "Composite0"; > + sdtv-standards = ; > + > + port { > + comp0_out: endpoint { > + remote-endpoint = <_comp0_in>; > + }; > + }; > + }; > + > reg_bl_12v0: regulator-bl-12v0 { > compatible = "regulator-fixed"; > pinctrl-names = "default"; > @@ -295,6 +308,31 @@ sgtl5000: audio-codec@a { > VDDIO-supply = <_3v3>; > VDDD-supply = <_1v8>; > }; > + > + video@5c { > + compatible = "ti,tvp5150"; > + reg = <0x5c>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; > + > + tvp5150_comp0_in: endpoint { > + remote-endpoint = <_out>; > + }; > + }; > + > + /* Output port 2 is video output pad */ > + port@2 { > + reg = <2>; > + > + tvp5151_to_ipu1_csi0_mux: endpoint { > + remote-endpoint = > <_csi0_mux_from_parallel_sensor>; > + }; > + }; > + }; > }; > > { > @@ -322,6 +360,10 @@ _di0_disp0 { > remote-endpoint = <_in>; > }; > > +_csi0_mux_from_parallel_sensor { > + remote-endpoint = <_to_ipu1_csi0_mux>; > +}; > + > { > pinctrl-names = "default"; > pinctrl-0 = <_pwm1>; > -- > 2.30.2 >
Re: [PATCH v1 4/4] ARM: dts: imx6dl: plym2m, prtvt7, victgo: make use of new resistive-adc-touch driver
On Wed, Jan 05, 2022 at 12:04:34PM +0100, Oleksij Rempel wrote: > Hi Shawn, > > sorry for the delay, I just came back to work. > > On Mon, Dec 06, 2021 at 09:06:28AM +0800, Shawn Guo wrote: > > On Mon, Nov 22, 2021 at 01:43:10PM +0100, Oleksij Rempel wrote: > > > The tsc2046 is an ADC used as touchscreen controller. To share as mach > > > code as possible, we should use it as actual ADC + virtual tochscreen > > > controller. > > > With this patch we make use of the new kernel IIO and HID infrastructure. > > > > > > Signed-off-by: Oleksij Rempel > > > > One space is enough in subject "victgo: make". > > done. > > > > --- > > > arch/arm/boot/dts/imx6dl-plym2m.dts | 55 - > > > arch/arm/boot/dts/imx6dl-prtvt7.dts | 53 --- > > > arch/arm/boot/dts/imx6dl-victgo.dts | 55 + > > > 3 files changed, 120 insertions(+), 43 deletions(-) > > > > > > diff --git a/arch/arm/boot/dts/imx6dl-plym2m.dts > > > b/arch/arm/boot/dts/imx6dl-plym2m.dts > > > index 60fe5f14666e..e2afedae85cb 100644 > > > --- a/arch/arm/boot/dts/imx6dl-plym2m.dts > > > +++ b/arch/arm/boot/dts/imx6dl-plym2m.dts > > > @@ -101,6 +101,17 @@ reg_12v0: regulator-12v0 { > > > regulator-min-microvolt = <1200>; > > > regulator-max-microvolt = <1200>; > > > }; > > > + > > > + touchscreen { > > > + compatible = "resistive-adc-touch"; > > > + io-channels = < 1>, < 3>, < 4>, < 5>; > > > + io-channel-names = "y", "z1", "z2", "x"; > > > + touchscreen-min-pressure = <64687>; > > > + touchscreen-inverted-x; > > > + touchscreen-inverted-y; > > > + touchscreen-x-plate-ohms = <300>; > > > + touchscreen-y-plate-ohms = <800>; > > > + }; > > > }; > > > > > > { > > > @@ -129,26 +140,38 @@ { > > > pinctrl-0 = <_ecspi2>; > > > status = "okay"; > > > > > > - touchscreen@0 { > > > - compatible = "ti,tsc2046"; > > > + adc: adc@0 { > > > > Isn't label name "adc" too generic? > > I do not have strong opinion about this. Currently we have no > restrictions for the node names: > Documentation/devicetree/bindings/iio/adc/ti,tsc2046.yaml > Documentation/devicetree/bindings/iio/adc/adc.yaml > > I can name it touchscreen-adc@0 or something like this. What are your > preferences? I wasn't talking about node name but label. Shawn
Re: [PATCH v1 4/4] ARM: dts: imx6dl: plym2m, prtvt7, victgo: make use of new resistive-adc-touch driver
On Mon, Nov 22, 2021 at 01:43:10PM +0100, Oleksij Rempel wrote: > The tsc2046 is an ADC used as touchscreen controller. To share as mach > code as possible, we should use it as actual ADC + virtual tochscreen > controller. > With this patch we make use of the new kernel IIO and HID infrastructure. > > Signed-off-by: Oleksij Rempel One space is enough in subject "victgo: make". > --- > arch/arm/boot/dts/imx6dl-plym2m.dts | 55 - > arch/arm/boot/dts/imx6dl-prtvt7.dts | 53 --- > arch/arm/boot/dts/imx6dl-victgo.dts | 55 + > 3 files changed, 120 insertions(+), 43 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6dl-plym2m.dts > b/arch/arm/boot/dts/imx6dl-plym2m.dts > index 60fe5f14666e..e2afedae85cb 100644 > --- a/arch/arm/boot/dts/imx6dl-plym2m.dts > +++ b/arch/arm/boot/dts/imx6dl-plym2m.dts > @@ -101,6 +101,17 @@ reg_12v0: regulator-12v0 { > regulator-min-microvolt = <1200>; > regulator-max-microvolt = <1200>; > }; > + > + touchscreen { > + compatible = "resistive-adc-touch"; > + io-channels = < 1>, < 3>, < 4>, < 5>; > + io-channel-names = "y", "z1", "z2", "x"; > + touchscreen-min-pressure = <64687>; > + touchscreen-inverted-x; > + touchscreen-inverted-y; > + touchscreen-x-plate-ohms = <300>; > + touchscreen-y-plate-ohms = <800>; > + }; > }; > > { > @@ -129,26 +140,38 @@ { > pinctrl-0 = <_ecspi2>; > status = "okay"; > > - touchscreen@0 { > - compatible = "ti,tsc2046"; > + adc: adc@0 { Isn't label name "adc" too generic? > + compatible = "ti,tsc2046e-adc"; > reg = <0>; > pinctrl-0 = <_tsc2046>; > pinctrl-names ="default"; > - spi-max-frequency = <10>; > - interrupts-extended = < 20 IRQ_TYPE_EDGE_FALLING>; > - pendown-gpio = < 20 GPIO_ACTIVE_LOW>; > + spi-max-frequency = <100>; > + interrupts-extended = < 20 IRQ_TYPE_LEVEL_LOW>; > + #io-channel-cells = <1>; > > - touchscreen-inverted-x; > - touchscreen-inverted-y; > - touchscreen-max-pressure = <4095>; > - > - ti,vref-delay-usecs = /bits/ 16 <100>; > - ti,x-plate-ohms = /bits/ 16 <800>; > - ti,y-plate-ohms = /bits/ 16 <300>; > - ti,debounce-max = /bits/ 16 <3>; > - ti,debounce-tol = /bits/ 16 <70>; > - ti,debounce-rep = /bits/ 16 <3>; > - wakeup-source; > + #address-cells = <1>; > + #size-cells = <0>; > + > + channel@1 { > + reg = <1>; > + settling-time-us = <700>; > + oversampling-ratio = <5>; > + }; Have a newline between child nodes. Shawn > + channel@3 { > + reg = <3>; > + settling-time-us = <700>; > + oversampling-ratio = <5>; > + }; > + channel@4 { > + reg = <4>; > + settling-time-us = <700>; > + oversampling-ratio = <5>; > + }; > + channel@5 { > + reg = <5>; > + settling-time-us = <700>; > + oversampling-ratio = <5>; > + }; > }; > }; > > diff --git a/arch/arm/boot/dts/imx6dl-prtvt7.dts > b/arch/arm/boot/dts/imx6dl-prtvt7.dts > index 02b53df03e6f..c361e0683973 100644 > --- a/arch/arm/boot/dts/imx6dl-prtvt7.dts > +++ b/arch/arm/boot/dts/imx6dl-prtvt7.dts > @@ -235,6 +235,17 @@ simple-audio-card,codec { > frame-master; > }; > }; > + > + touchscreen { > + compatible = "resistive-adc-touch"; > + io-channels = < 1>, < 3>, < 4>, < 5>; > + io-channel-names = "y", "z1", "z2", "x"; > + touchscreen-min-pressure = <64687>; > + touchscreen-inverted-x; > + touchscreen-inverted-y; > + touchscreen-x-plate-ohms = <300>; > + touchscreen-y-plate-ohms = <800>; > + }; > }; > > { > @@ -277,22 +288,38 @@ { > pinctrl-0 = <_ecspi2>; > status = "okay"; > > - touchscreen@0 { > - compatible = "ti,tsc2046"; > + adc: adc@0 { > + compatible = "ti,tsc2046e-adc"; > reg = <0>; > pinctrl-0 = <_tsc>; > pinctrl-names ="default"; > - spi-max-frequency = <10>; > - interrupts-extended = < 20 IRQ_TYPE_EDGE_FALLING>; > - pendown-gpio = < 20 GPIO_ACTIVE_LOW>; > - touchscreen-max-pressure = <4095>; > - ti,vref-delay-usecs = /bits/ 16 <100>; > - ti,x-plate-ohms = /bits/ 16 <800>; > -
Re: [PATCH v1 2/4] ARM: dts: imx6dl-prtvt7: Add missing tvp5150 video decoder node
On Mon, Nov 22, 2021 at 01:43:08PM +0100, Oleksij Rempel wrote: > From: Robin van der Gracht > > Signed-off-by: Robin van der Gracht > --- > arch/arm/boot/dts/imx6dl-prtvt7.dts | 40 + > 1 file changed, 40 insertions(+) > > diff --git a/arch/arm/boot/dts/imx6dl-prtvt7.dts > b/arch/arm/boot/dts/imx6dl-prtvt7.dts > index be7c4cb339e7..02b53df03e6f 100644 > --- a/arch/arm/boot/dts/imx6dl-prtvt7.dts > +++ b/arch/arm/boot/dts/imx6dl-prtvt7.dts > @@ -6,6 +6,7 @@ > /dts-v1/; > #include "imx6dl.dtsi" > #include "imx6qdl-prti6q.dtsi" > +#include > #include > #include > #include > @@ -171,6 +172,18 @@ panel_in: endpoint { > }; > }; > > + connector { > + compatible = "composite-video-connector"; > + label = "Composite0"; > + sdtv-standards = ; > + > + port { > + comp0_out: endpoint { > + remote-endpoint = <_comp0_in>; > + }; > + }; > + }; > + > reg_bl_12v0: regulator-bl-12v0 { > compatible = "regulator-fixed"; > pinctrl-names = "default"; > @@ -295,6 +308,29 @@ sgtl5000: audio-codec@a { > VDDIO-supply = <_3v3>; > VDDD-supply = <_1v8>; > }; > + > + video@5c { > + compatible = "ti,tvp5150"; > + reg = <0x5c>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + reg = <0>; Have a newline between property and child node. Shawn > + tvp5150_comp0_in: endpoint { > + remote-endpoint = <_out>; > + }; > + }; > + > + /* Output port 2 is video output pad */ > + port@2 { > + reg = <2>; > + tvp5151_to_ipu1_csi0_mux: endpoint { > + remote-endpoint = > <_csi0_mux_from_parallel_sensor>; > + }; > + }; > + }; > }; > > { > @@ -322,6 +358,10 @@ _di0_disp0 { > remote-endpoint = <_in>; > }; > > +_csi0_mux_from_parallel_sensor { > + remote-endpoint = <_to_ipu1_csi0_mux>; > +}; > + > { > pinctrl-names = "default"; > pinctrl-0 = <_pwm1>; > -- > 2.30.2 >
Re: [PATCH v2 2/2] drm/panel: Add Sony Tulip Truly NT35521 driver
On Tue, Aug 24, 2021 at 09:59:04PM +0200, Sam Ravnborg wrote: > On Tue, Aug 24, 2021 at 10:58:31AM +0800, Shawn Guo wrote: > > On Mon, Aug 09, 2021 at 01:10:08PM +0800, Shawn Guo wrote: > > > It adds a DRM panel driver for Sony Tulip Truly NT35521 5.24" 1280x720 > > > DSI panel, which can be found on Sony Xperia M4 Aqua phone. The panel > > > backlight is managed through DSI link. > > > > > > The driver is built using linux-mdss-dsi-panel-driver-generator[1], and > > > additionally modeling the 5V control GPIOs with regulators and adding > > > Backlight GPIO support. > > > > > > [1] > > > https://github.com/msm8916-mainline/linux-mdss-dsi-panel-driver-generator > > > > > > Signed-off-by: Shawn Guo > > > > Sam, Stephan, > > > > Thank you for the review comments on v1! How does v2 look to you? > > I will not have time until next week - sorry. > Please ping me if you have no feedback i one week from now. Sam, Could you help handle this patch now? Thanks! Shawn
Re: [PATCH v2 2/2] drm/panel: Add Sony Tulip Truly NT35521 driver
On Mon, Aug 09, 2021 at 01:10:08PM +0800, Shawn Guo wrote: > It adds a DRM panel driver for Sony Tulip Truly NT35521 5.24" 1280x720 > DSI panel, which can be found on Sony Xperia M4 Aqua phone. The panel > backlight is managed through DSI link. > > The driver is built using linux-mdss-dsi-panel-driver-generator[1], and > additionally modeling the 5V control GPIOs with regulators and adding > Backlight GPIO support. > > [1] https://github.com/msm8916-mainline/linux-mdss-dsi-panel-driver-generator > > Signed-off-by: Shawn Guo Sam, Stephan, Thank you for the review comments on v1! How does v2 look to you? Shawn
Re: [PATCH v34 0/3] Mainline imx6 based SKOV boards
On Wed, Aug 04, 2021 at 06:34:36AM +0200, Oleksij Rempel wrote: > changes v4: > - add vref-supply to adc@0 > - split gpio assignment for the mdio node > > changes v3: > - drop panel bindings patches, it is already in drm-misc-next > - remove some new lines > - reorder compatibles at the start of the nodes > - use lowercase for hex value > - add enable-active-high to the regulator-vcc-mmc-io and fix MMC voltage > configuration. > > changes v2: > - remove unnecessary newlines. > - change linux,wakeup to wakeup-source > - change switch@3 unit-address to @0 > - sort aliases alphabetically > > Mainline imx6 based DTs for SKOV A/S boards > > Oleksij Rempel (2): > dt-bindings: vendor-prefixes: Add an entry for SKOV A/S > dt-bindings: arm: fsl: add SKOV imx6q and imx6dl based boards > > Sam Ravnborg (1): > ARM: dts: add SKOV imx6q and imx6dl based boards Applied, thanks!
Re: [PATCH 1/2] dt-bindings: display: panel: Add Truly NT35521 panel support
On Wed, Aug 11, 2021 at 12:51:56PM -0600, Rob Herring wrote: > On Wed, Aug 04, 2021 at 04:13:51PM +0800, Shawn Guo wrote: > > The Truly NT35521 is a 5.24" 1280x720 DSI panel, and the backlight is > > managed through DSI link. > > > > Signed-off-by: Shawn Guo > > --- > > .../bindings/display/panel/truly,nt35521.yaml | 62 +++ > > 1 file changed, 62 insertions(+) > > create mode 100644 > > Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml > > > > diff --git > > a/Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml > > b/Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml > > new file mode 100644 > > index ..4727c3df6eb8 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml > > @@ -0,0 +1,62 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/panel/truly,nt35521.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Truly NT35521 5.24" 1280x720 MIPI-DSI Panel > > + > > +maintainers: > > + - Shawn Guo > > + > > +description: | > > + The Truly NT35521 is a 5.24" 1280x720 MIPI-DSI panel. The panel > > backlight > > + is managed through DSI link. > > + > > +allOf: > > + - $ref: panel-common.yaml# > > + > > +properties: > > + compatible: > > +const: truly,nt35521 > > + > > + reg: true > > + > > + reset-gpios: true > > + > > + enable-gpios: true > > + > > + pwr-positive5-gpios: > > +maxItems: 1 > > + > > + pwr-negative5-gpios: > > +maxItems: 1 > > Are these +/-5V supplies? If so, they should be modeled with > gpio-regulator perhaps unless the panel connection could only ever be > GPIOs. Hi Rob, The binding has been updated in v2 [1]. Please help review that. Thanks! Shawn [1] https://lore.kernel.org/linux-arm-msm/20210809051008.6172-2-shawn@linaro.org/T/#m587035a602b1be6c5326dcf24af01b3e8a5d2cc9 > > > + > > +required: > > + - compatible > > + - reg > > + - reset-gpios > > + - enable-gpios > > + - pwr-positive5-gpios > > + - pwr-negative5-gpios > > + > > +additionalProperties: false > > + > > +examples: > > + - | > > +#include > > + > > +dsi { > > +#address-cells = <1>; > > +#size-cells = <0>; > > + > > +panel@0 { > > +compatible = "truly,nt35521"; > > +reg = <0>; > > +reset-gpios = < 25 GPIO_ACTIVE_LOW>; > > +pwr-positive5-gpios = < 114 GPIO_ACTIVE_HIGH>; > > +pwr-negative5-gpios = < 17 GPIO_ACTIVE_HIGH>; > > +enable-gpios = < 10 GPIO_ACTIVE_HIGH>; > > +}; > > +}; > > +... > > -- > > 2.17.1 > > > >
[PATCH v2 2/2] drm/panel: Add Sony Tulip Truly NT35521 driver
It adds a DRM panel driver for Sony Tulip Truly NT35521 5.24" 1280x720 DSI panel, which can be found on Sony Xperia M4 Aqua phone. The panel backlight is managed through DSI link. The driver is built using linux-mdss-dsi-panel-driver-generator[1], and additionally modeling the 5V control GPIOs with regulators and adding Backlight GPIO support. [1] https://github.com/msm8916-mainline/linux-mdss-dsi-panel-driver-generator Signed-off-by: Shawn Guo --- drivers/gpu/drm/panel/Kconfig | 10 + drivers/gpu/drm/panel/Makefile| 1 + .../panel/panel-sony-tulip-truly-nt35521.c| 552 ++ 3 files changed, 563 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-sony-tulip-truly-nt35521.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index ef87d92cdf49..a5809eab49b2 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -502,6 +502,16 @@ config DRM_PANEL_SONY_ACX565AKM Say Y here if you want to enable support for the Sony ACX565AKM 800x600 3.5" panel (found on the Nokia N900). +config DRM_PANEL_SONY_TULIP_TRULY_NT35521 + tristate "Sony Tulip Truly NT35521 panel" + depends on GPIOLIB && OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + help + Say Y here if you want to enable support for the Sony Tulip + NT35521 1280x720 video mode panel as found on Sony Xperia M4 + Aqua phone. + config DRM_PANEL_TDO_TL070WSH30 tristate "TDO TL070WSH30 DSI panel" depends on OF diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index cae4d976c069..852ce32d58ee 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -52,6 +52,7 @@ obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7703) += panel-sitronix-st7703.o obj-$(CONFIG_DRM_PANEL_SITRONIX_ST7789V) += panel-sitronix-st7789v.o obj-$(CONFIG_DRM_PANEL_SONY_ACX424AKP) += panel-sony-acx424akp.o obj-$(CONFIG_DRM_PANEL_SONY_ACX565AKM) += panel-sony-acx565akm.o +obj-$(CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521) += panel-sony-tulip-truly-nt35521.o obj-$(CONFIG_DRM_PANEL_TDO_TL070WSH30) += panel-tdo-tl070wsh30.o obj-$(CONFIG_DRM_PANEL_TPO_TD028TTEC1) += panel-tpo-td028ttec1.o obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o diff --git a/drivers/gpu/drm/panel/panel-sony-tulip-truly-nt35521.c b/drivers/gpu/drm/panel/panel-sony-tulip-truly-nt35521.c new file mode 100644 index ..eba926c6f722 --- /dev/null +++ b/drivers/gpu/drm/panel/panel-sony-tulip-truly-nt35521.c @@ -0,0 +1,552 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright (c) 2021, Linaro Limited + * + * Generated with linux-mdss-dsi-panel-driver-generator from vendor device tree: + * Copyright (c) 2013, The Linux Foundation. All rights reserved. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +struct truly_nt35521 { + struct drm_panel panel; + struct mipi_dsi_device *dsi; + struct regulator_bulk_data supplies[2]; + struct gpio_desc *reset_gpio; + struct gpio_desc *blen_gpio; + bool prepared; + bool enabled; +}; + +static inline +struct truly_nt35521 *to_truly_nt35521(struct drm_panel *panel) +{ + return container_of(panel, struct truly_nt35521, panel); +} + +#define dsi_generic_write_seq(dsi, seq...) do { \ + static const u8 d[] = { seq }; \ + int ret;\ + ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d));\ + if (ret < 0)\ + return ret; \ + } while (0) + +static void truly_nt35521_reset(struct truly_nt35521 *ctx) +{ + gpiod_set_value_cansleep(ctx->reset_gpio, 1); + usleep_range(1000, 2000); + gpiod_set_value_cansleep(ctx->reset_gpio, 1); + usleep_range(1, 11000); + gpiod_set_value_cansleep(ctx->reset_gpio, 0); + msleep(150); +} + +static int truly_nt35521_on(struct truly_nt35521 *ctx) +{ + struct mipi_dsi_device *dsi = ctx->dsi; + struct device *dev = >dev; + int ret; + + dsi->mode_flags |= MIPI_DSI_MODE_LPM; + + dsi_generic_write_seq(dsi, 0xf0, 0x55, 0xaa, 0x52, 0x08, 0x00); + dsi_generic_write_seq(dsi, 0xff, 0xaa, 0x55, 0xa5, 0x80); + dsi_generic_write_seq(dsi, 0x6f, 0x11, 0x00); + dsi_generic_write_seq(dsi, 0xf7, 0x20, 0x00); + dsi_generic_write_seq(dsi, 0x6f, 0x01); + dsi_generic_write_seq(dsi, 0xb1, 0x21); + dsi_generic_write_seq(dsi, 0xbd, 0x01, 0xa0, 0x10, 0x08, 0x01); + dsi_generic_write_seq(dsi, 0xb8, 0x01, 0x02, 0x0c, 0x02); + dsi_generic_write_seq(dsi, 0xbb,
[PATCH v2 1/2] dt-bindings: display: Add Sony Tulip Truly NT35521 panel support
The Sony Tulip Truly NT35521 is a 5.24" 1280x720 DSI panel, which can be found on Sony Xperia M4 Aqua phone. The backlight is managed through DSI link. Signed-off-by: Shawn Guo --- .../panel/sony,tulip-truly-nt35521.yaml | 72 +++ 1 file changed, 72 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/sony,tulip-truly-nt35521.yaml diff --git a/Documentation/devicetree/bindings/display/panel/sony,tulip-truly-nt35521.yaml b/Documentation/devicetree/bindings/display/panel/sony,tulip-truly-nt35521.yaml new file mode 100644 index ..967972939598 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/sony,tulip-truly-nt35521.yaml @@ -0,0 +1,72 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/panel/sony,tulip-truly-nt35521.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Sony Tulip Truly NT35521 5.24" 1280x720 MIPI-DSI Panel + +maintainers: + - Shawn Guo + +description: | + The Sony Tulip Truly NT35521 is a 5.24" 1280x720 MIPI-DSI panel, which + can be found no Sony Xperia M4 phone. The panel backlight is managed + through DSI link. + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: +const: sony,tulip-truly-nt35521 + + reg: true + + positive5-supply: +description: Positive 5V supply + + negative5-supply: +description: Negative 5V supply + + reset-gpios: true + + enable-gpios: true + + port: true + +required: + - compatible + - reg + - positive5-supply + - negative5-supply + - reset-gpios + - enable-gpios + - port + +additionalProperties: false + +examples: + - | +#include + +dsi { +#address-cells = <1>; +#size-cells = <0>; + +panel@0 { +compatible = "sony,tulip-truly-nt35521"; +reg = <0>; +positive5-supply = <_reg>; +negative5-supply = <_reg>; +reset-gpios = < 25 GPIO_ACTIVE_LOW>; +enable-gpios = < 10 GPIO_ACTIVE_HIGH>; + +port { +panel_in: endpoint { +remote-endpoint = <_out>; +}; +}; +}; +}; +... -- 2.17.1
[PATCH v2 0/2] Add Sony Tulip Truly NT35521 panel support
It adds driver for Sony Tulip Truly NT35521 5.24" 1280x720 DSI panel, which can be found on Sony Xperia M4 Aqua phone. Changes for v2: - Add `port` node into bindings. - Re-create the driver using linux-mdss-dsi-panel-driver-generator[1]. - Rename the driver to include Sony Tulip. - Model 5V control GPIOs with regulators. - Rename Backlight GPIO as "backlight-gpios". [1] https://github.com/msm8916-mainline/linux-mdss-dsi-panel-driver-generator Shawn Guo (2): dt-bindings: display: Add Sony Tulip Truly NT35521 panel support drm/panel: Add Sony Tulip Truly NT35521 driver .../panel/sony,tulip-truly-nt35521.yaml | 72 +++ drivers/gpu/drm/panel/Kconfig | 10 + drivers/gpu/drm/panel/Makefile| 1 + .../panel/panel-sony-tulip-truly-nt35521.c| 552 ++ 4 files changed, 635 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/sony,tulip-truly-nt35521.yaml create mode 100644 drivers/gpu/drm/panel/panel-sony-tulip-truly-nt35521.c -- 2.17.1
Re: [PATCH 2/2] drm/panel: Add Truly NT35521 panel driver
On Sun, Aug 08, 2021 at 05:29:30PM +0200, Stephan Gerhold wrote: > > 2) The driver works good, if the kernel is launched via "fastboot boot". > >But if the kernel is flashed to eMMC and launched by bootloader with > >splash screen, kernel will fail to bring up the panel. After kernel > >boots up, a blank & unblank cycle can get panel work though. > > > > The problem 2) is not driver generator related. @Konrad, did you see > > it on asus-z00t-tm5p5-n35596 driver? > > > > Do you have CONFIG_DRM_MSM=y (built-in) instead of =m (module) maybe? > I think a similar issue exists on MSM8916 but it does not happen > for some reason if CONFIG_DRM_MSM=m instead of =y. Somehow having it > load later during the boot process fixes some things there. Indeed! I have CONFIG_DRM_MSM=y in my build, and changing it to module removes the problem. Thanks much for the hint, Stephan! Shawn
Re: [PATCH 2/2] drm/panel: Add Truly NT35521 panel driver
Hi Sam, On Wed, Aug 04, 2021 at 06:24:12PM +0200, Sam Ravnborg wrote: > Hi Shawn, > > see a few comments in the following. Thanks for the review comments! All of them will be addressed in v2. Shawn > On Wed, Aug 04, 2021 at 04:13:52PM +0800, Shawn Guo wrote: > > It adds a drm driver for Truly NT35521 5.24" 1280x720 DSI panel, which > > can be found on Sony Xperia M4 Aqua phone. The panel backlight is > > managed through DSI link. > > > > Signed-off-by: Shawn Guo > > --- > > drivers/gpu/drm/panel/Kconfig | 9 + > > drivers/gpu/drm/panel/Makefile | 1 + > > drivers/gpu/drm/panel/panel-truly-nt35521.c | 491 > > 3 files changed, 501 insertions(+) > > create mode 100644 drivers/gpu/drm/panel/panel-truly-nt35521.c
Re: [PATCH 2/2] drm/panel: Add Truly NT35521 panel driver
Hi Stephan, Thanks for looking at the patch! On Wed, Aug 04, 2021 at 02:09:19PM +0200, Stephan Gerhold wrote: > Hi Shawn, > > Thanks for the patch! > > On Wed, Aug 04, 2021 at 04:13:52PM +0800, Shawn Guo wrote: > > It adds a drm driver for Truly NT35521 5.24" 1280x720 DSI panel, which > > can be found on Sony Xperia M4 Aqua phone. The panel backlight is > > managed through DSI link. > > > > Signed-off-by: Shawn Guo > > --- > > drivers/gpu/drm/panel/Kconfig | 9 + > > drivers/gpu/drm/panel/Makefile | 1 + > > drivers/gpu/drm/panel/panel-truly-nt35521.c | 491 > > 3 files changed, 501 insertions(+) > > create mode 100644 drivers/gpu/drm/panel/panel-truly-nt35521.c > > > > diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig > > index ef87d92cdf49..cdc4abd5c40c 100644 > > --- a/drivers/gpu/drm/panel/Kconfig > > +++ b/drivers/gpu/drm/panel/Kconfig > > @@ -537,6 +537,15 @@ config DRM_PANEL_TPO_TPG110 > > 400CH LTPS TFT LCD Single Chip Digital Driver for up to > > 800x400 LCD panels. > > > > +config DRM_PANEL_TRULY_NT35521 > > + tristate "Truly NT35521 panel" > > I think the name "Truly NT35521" is a bit too generic. AFAIK "Truly" is > a panel vendor and the NovaTek NT35521 is the panel controller. But > there are almost certainly other Truly panels that were also combined > with a NT35521 but need a slightly different configuration. > > If you don't know more than "Truly NT35521" based on the Sony sources, > maybe do it similar to "asus,z00t-tm5p5-n35596" and use a compatible > like "sony,-truly-nt35521". Would be good to clarify the Kconfig > option here too. Sounds good! > > > + depends on OF > > + depends on DRM_MIPI_DSI > > + depends on BACKLIGHT_CLASS_DEVICE > > + help > > + Say Y here if you want to enable support for Truly NT35521 > > + 1280x720 DSI panel. > > + > > config DRM_PANEL_TRULY_NT35597_WQXGA > > tristate "Truly WQXGA" > > depends on OF > > diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile > > index cae4d976c069..3d3c98cb7a7b 100644 > > --- a/drivers/gpu/drm/panel/Makefile > > +++ b/drivers/gpu/drm/panel/Makefile > > @@ -56,6 +56,7 @@ obj-$(CONFIG_DRM_PANEL_TDO_TL070WSH30) += > > panel-tdo-tl070wsh30.o > > obj-$(CONFIG_DRM_PANEL_TPO_TD028TTEC1) += panel-tpo-td028ttec1.o > > obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o > > obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o > > +obj-$(CONFIG_DRM_PANEL_TRULY_NT35521) += panel-truly-nt35521.o > > obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o > > obj-$(CONFIG_DRM_PANEL_VISIONOX_RM69299) += panel-visionox-rm69299.o > > obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o > > diff --git a/drivers/gpu/drm/panel/panel-truly-nt35521.c > > b/drivers/gpu/drm/panel/panel-truly-nt35521.c > > new file mode 100644 > > index ..ea3cfb46be7e > > --- /dev/null > > +++ b/drivers/gpu/drm/panel/panel-truly-nt35521.c > > @@ -0,0 +1,491 @@ > > +// SPDX-License-Identifier: GPL-2.0 > > +/* > > + * Copyright (c) 2021, Linaro Limited > > + */ > > + > > +#include > > +#include > > +#include > > +#include > > + > > +#include > > + > > +#include > > +#include > > +#include > > +#include > > + > > +struct nt35521_panel { > > + struct drm_panel panel; > > + struct device *dev; > > + struct gpio_desc *rst_gpio; > > + struct gpio_desc *pwrp5_gpio; > > + struct gpio_desc *pwrn5_gpio; > > + struct gpio_desc *en_gpio; > > + bool prepared; > > + bool enabled; > > +}; > > + > > +static inline struct nt35521_panel *panel_to_nt35521(struct drm_panel > > *panel) > > +{ > > + return container_of(panel, struct nt35521_panel, panel); > > +} > > + > > +#define nt_dcs_write(seq...) > > \ > > +({ \ > > + const u8 d[] = { seq }; \ > > + if (mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)) < 0) \ > > + DRM_DEV_ERROR(dev, "dcs write buffer failed\n");\ > > +}) > > + > > +#define nt_gen_write(seq...)
Re: [PATCH 1/2] dt-bindings: display: panel: Add Truly NT35521 panel support
On Wed, Aug 04, 2021 at 06:03:54PM +0200, Sam Ravnborg wrote: > Hi Shawn, > > On Wed, Aug 04, 2021 at 04:13:51PM +0800, Shawn Guo wrote: > > The Truly NT35521 is a 5.24" 1280x720 DSI panel, and the backlight is > > managed through DSI link. > > > > Signed-off-by: Shawn Guo > > Please consider adding an optional port node, so we can use this panels > in a setup using a graph. Sure, will do in v2. > A simple port: true would do the trick. > I am aware that it may not be used today, this is a preparation for > potential future use. > > With this fixed, > Reviewed-by: Sam Ravnborg Thanks, Sam! Shawn
[PATCH 2/2] drm/panel: Add Truly NT35521 panel driver
It adds a drm driver for Truly NT35521 5.24" 1280x720 DSI panel, which can be found on Sony Xperia M4 Aqua phone. The panel backlight is managed through DSI link. Signed-off-by: Shawn Guo --- drivers/gpu/drm/panel/Kconfig | 9 + drivers/gpu/drm/panel/Makefile | 1 + drivers/gpu/drm/panel/panel-truly-nt35521.c | 491 3 files changed, 501 insertions(+) create mode 100644 drivers/gpu/drm/panel/panel-truly-nt35521.c diff --git a/drivers/gpu/drm/panel/Kconfig b/drivers/gpu/drm/panel/Kconfig index ef87d92cdf49..cdc4abd5c40c 100644 --- a/drivers/gpu/drm/panel/Kconfig +++ b/drivers/gpu/drm/panel/Kconfig @@ -537,6 +537,15 @@ config DRM_PANEL_TPO_TPG110 400CH LTPS TFT LCD Single Chip Digital Driver for up to 800x400 LCD panels. +config DRM_PANEL_TRULY_NT35521 + tristate "Truly NT35521 panel" + depends on OF + depends on DRM_MIPI_DSI + depends on BACKLIGHT_CLASS_DEVICE + help + Say Y here if you want to enable support for Truly NT35521 + 1280x720 DSI panel. + config DRM_PANEL_TRULY_NT35597_WQXGA tristate "Truly WQXGA" depends on OF diff --git a/drivers/gpu/drm/panel/Makefile b/drivers/gpu/drm/panel/Makefile index cae4d976c069..3d3c98cb7a7b 100644 --- a/drivers/gpu/drm/panel/Makefile +++ b/drivers/gpu/drm/panel/Makefile @@ -56,6 +56,7 @@ obj-$(CONFIG_DRM_PANEL_TDO_TL070WSH30) += panel-tdo-tl070wsh30.o obj-$(CONFIG_DRM_PANEL_TPO_TD028TTEC1) += panel-tpo-td028ttec1.o obj-$(CONFIG_DRM_PANEL_TPO_TD043MTEA1) += panel-tpo-td043mtea1.o obj-$(CONFIG_DRM_PANEL_TPO_TPG110) += panel-tpo-tpg110.o +obj-$(CONFIG_DRM_PANEL_TRULY_NT35521) += panel-truly-nt35521.o obj-$(CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA) += panel-truly-nt35597.o obj-$(CONFIG_DRM_PANEL_VISIONOX_RM69299) += panel-visionox-rm69299.o obj-$(CONFIG_DRM_PANEL_XINPENG_XPP055C272) += panel-xinpeng-xpp055c272.o diff --git a/drivers/gpu/drm/panel/panel-truly-nt35521.c b/drivers/gpu/drm/panel/panel-truly-nt35521.c new file mode 100644 index ..ea3cfb46be7e --- /dev/null +++ b/drivers/gpu/drm/panel/panel-truly-nt35521.c @@ -0,0 +1,491 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) 2021, Linaro Limited + */ + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include + +struct nt35521_panel { + struct drm_panel panel; + struct device *dev; + struct gpio_desc *rst_gpio; + struct gpio_desc *pwrp5_gpio; + struct gpio_desc *pwrn5_gpio; + struct gpio_desc *en_gpio; + bool prepared; + bool enabled; +}; + +static inline struct nt35521_panel *panel_to_nt35521(struct drm_panel *panel) +{ + return container_of(panel, struct nt35521_panel, panel); +} + +#define nt_dcs_write(seq...) \ +({ \ + const u8 d[] = { seq }; \ + if (mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d)) < 0) \ + DRM_DEV_ERROR(dev, "dcs write buffer failed\n");\ +}) + +#define nt_gen_write(seq...) \ +({ \ + const u8 d[] = { seq }; \ + if (mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d)) < 0) \ + DRM_DEV_ERROR(dev, "generic write buffer failed\n");\ +}) + +static void nt35521_panel_on(struct nt35521_panel *nt) +{ + struct mipi_dsi_device *dsi = to_mipi_dsi_device(nt->dev); + struct device *dev = nt->dev; + + /* Transmit data in low power mode */ + dsi->mode_flags |= MIPI_DSI_MODE_LPM; + + nt_dcs_write(0xf0, 0x55, 0xaa, 0x52, 0x08, 0x00); + nt_dcs_write(0xff, 0xaa, 0x55, 0xa5, 0x80); + nt_dcs_write(0x6f, 0x11, 0x00); + nt_dcs_write(0xf7, 0x20, 0x00); + nt_dcs_write(0x6f, 0x01); + nt_dcs_write(0xb1, 0x21); + nt_dcs_write(0xbd, 0x01, 0xa0, 0x10, 0x08, 0x01); + nt_dcs_write(0xb8, 0x01, 0x02, 0x0c, 0x02); + nt_dcs_write(0xbb, 0x11, 0x11); + nt_dcs_write(0xbc, 0x00, 0x00); + nt_dcs_write(0xb6, 0x02); + nt_dcs_write(0xf0, 0x55, 0xaa, 0x52, 0x08, 0x01); + nt_dcs_write(0xb0, 0x09, 0x09); + nt_dcs_write(0xb1, 0x09, 0x09); + nt_dcs_write(0xbc, 0x8c, 0x00); + nt_dcs_write(0xbd, 0x8c, 0x00); + nt_dcs_write(0xca, 0x00); + nt_dcs_write(0xc0, 0x04); + nt_dcs_write(0xbe, 0xb5); + nt_dcs_write(0xb3, 0x35, 0x35); + nt_dcs_write(0xb4, 0x25, 0x25); + nt_dcs_write(0xb9, 0x43, 0x43); + nt_dcs_write(0xba, 0x24, 0x24); + nt_dcs_write(0xf0, 0x55, 0xaa, 0x52, 0x08, 0x02); + nt_dcs_write(0xee, 0x03); + nt_dcs_write(0xb0, 0x00, 0xb2, 0x00, 0xb3, 0x00, 0xb6, 0x00, +
[PATCH 1/2] dt-bindings: display: panel: Add Truly NT35521 panel support
The Truly NT35521 is a 5.24" 1280x720 DSI panel, and the backlight is managed through DSI link. Signed-off-by: Shawn Guo --- .../bindings/display/panel/truly,nt35521.yaml | 62 +++ 1 file changed, 62 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml diff --git a/Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml b/Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml new file mode 100644 index ..4727c3df6eb8 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/panel/truly,nt35521.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Truly NT35521 5.24" 1280x720 MIPI-DSI Panel + +maintainers: + - Shawn Guo + +description: | + The Truly NT35521 is a 5.24" 1280x720 MIPI-DSI panel. The panel backlight + is managed through DSI link. + +allOf: + - $ref: panel-common.yaml# + +properties: + compatible: +const: truly,nt35521 + + reg: true + + reset-gpios: true + + enable-gpios: true + + pwr-positive5-gpios: +maxItems: 1 + + pwr-negative5-gpios: +maxItems: 1 + +required: + - compatible + - reg + - reset-gpios + - enable-gpios + - pwr-positive5-gpios + - pwr-negative5-gpios + +additionalProperties: false + +examples: + - | +#include + +dsi { +#address-cells = <1>; +#size-cells = <0>; + +panel@0 { +compatible = "truly,nt35521"; +reg = <0>; +reset-gpios = < 25 GPIO_ACTIVE_LOW>; +pwr-positive5-gpios = < 114 GPIO_ACTIVE_HIGH>; +pwr-negative5-gpios = < 17 GPIO_ACTIVE_HIGH>; +enable-gpios = < 10 GPIO_ACTIVE_HIGH>; +}; +}; +... -- 2.17.1
[PATCH 0/2] Add Truly NT35521 panel driver support
It adds a drm driver for Truly NT35521 5.24" 1280x720 DSI panel, which can be found on Sony Xperia M4 Aqua phone. Shawn Guo (2): dt-bindings: display: panel: Add Truly NT35521 panel support drm/panel: Add Truly NT35521 panel driver .../bindings/display/panel/truly,nt35521.yaml | 62 +++ drivers/gpu/drm/panel/Kconfig | 9 + drivers/gpu/drm/panel/Makefile| 1 + drivers/gpu/drm/panel/panel-truly-nt35521.c | 491 ++ 4 files changed, 563 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/panel/truly,nt35521.yaml create mode 100644 drivers/gpu/drm/panel/panel-truly-nt35521.c -- 2.17.1
Re: [PATCH v2 4/4] ARM: dts: add SKOV imx6q and imx6dl based boards
On Wed, Jul 14, 2021 at 06:53:49AM +0200, Oleksij Rempel wrote: > From: Sam Ravnborg > > Add SKOV imx6q/dl LT2, LT6 and mi1010ait-1cp1 boards. > > Signed-off-by: Sam Ravnborg > Signed-off-by: Søren Andersen > Signed-off-by: Juergen Borleis > Signed-off-by: Ulrich Ölmann > Signed-off-by: Michael Grzeschik > Signed-off-by: Marco Felsch > Signed-off-by: Lucas Stach > Signed-off-by: Oleksij Rempel > --- > arch/arm/boot/dts/Makefile| 5 + > arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts| 13 + > arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts| 108 > arch/arm/boot/dts/imx6q-skov-revc-lt2.dts | 36 ++ > arch/arm/boot/dts/imx6q-skov-revc-lt6.dts | 128 + > .../dts/imx6q-skov-reve-mi1010ait-1cp1.dts| 127 + > arch/arm/boot/dts/imx6qdl-skov-cpu-revc.dtsi | 54 ++ > arch/arm/boot/dts/imx6qdl-skov-cpu.dtsi | 475 ++ > 8 files changed, 946 insertions(+) > create mode 100644 arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts > create mode 100644 arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts > create mode 100644 arch/arm/boot/dts/imx6q-skov-revc-lt2.dts > create mode 100644 arch/arm/boot/dts/imx6q-skov-revc-lt6.dts > create mode 100644 arch/arm/boot/dts/imx6q-skov-reve-mi1010ait-1cp1.dts > create mode 100644 arch/arm/boot/dts/imx6qdl-skov-cpu-revc.dtsi > create mode 100644 arch/arm/boot/dts/imx6qdl-skov-cpu.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index a2389b17026a..66aef5c6526d 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -473,6 +473,8 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6dl-sabrelite.dtb \ > imx6dl-sabresd.dtb \ > imx6dl-savageboard.dtb \ > + imx6dl-skov-revc-lt2.dtb \ > + imx6dl-skov-revc-lt6.dtb \ > imx6dl-ts4900.dtb \ > imx6dl-ts7970.dtb \ > imx6dl-tx6dl-comtft.dtb \ > @@ -573,6 +575,9 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6q-sabresd.dtb \ > imx6q-savageboard.dtb \ > imx6q-sbc6x.dtb \ > + imx6q-skov-revc-lt2.dtb \ > + imx6q-skov-revc-lt6.dtb \ > + imx6q-skov-reve-mi1010ait-1cp1.dtb \ > imx6q-tbs2910.dtb \ > imx6q-ts4900.dtb \ > imx6q-ts7970.dtb \ > diff --git a/arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts > b/arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts > new file mode 100644 > index ..667b8faa1807 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts > @@ -0,0 +1,13 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +// > +// Copyright (C) 2020 Pengutronix, Ulrich Oelmann > + > +/dts-v1/; > +#include "imx6dl.dtsi" > +#include "imx6qdl-skov-cpu.dtsi" > +#include "imx6qdl-skov-cpu-revc.dtsi" > + > +/ { > + model = "SKOV IMX6 CPU SoloCore"; > + compatible = "skov,imx6dl-skov-revc-lt2", "fsl,imx6dl"; > +}; > diff --git a/arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts > b/arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts > new file mode 100644 > index ..25071c7c4e29 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts > @@ -0,0 +1,108 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +// > +// Copyright (C) 2020 Pengutronix, Ulrich Oelmann > + > +/dts-v1/; > +#include "imx6dl.dtsi" > +#include "imx6qdl-skov-cpu.dtsi" > +#include "imx6qdl-skov-cpu-revc.dtsi" > + > +/ { > + model = "SKOV IMX6 CPU SoloCore"; > + compatible = "skov,imx6dl-skov-revc-lt6", "fsl,imx6dl"; > + > + backlight: backlight { > + compatible = "pwm-backlight"; > + pinctrl-names = "default"; > + pinctrl-0 = <_backlight>; > + enable-gpios = < 23 GPIO_ACTIVE_LOW>; > + pwms = < 0 2 0>; > + brightness-levels = <0 255>; > + num-interpolated-steps = <17>; > + default-brightness-level = <8>; > + power-supply = <_24v0>; > + }; > + > + display { > + #address-cells = <1>; > + #size-cells = <0>; > + > + compatible = "fsl,imx-parallel-display"; Drop the newline and start with compatible. > + pinctrl-names = "default"; > + pinctrl-0 = <_ipu1>; > + > + port@0 { > + reg = <0>; > + > + display0_in: endpoint { > + remote-endpoint = <_di0_disp0>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + display0_out: endpoint { > + remote-endpoint = <_in>; > + }; > + }; > + }; > + > + One newline is good enough. > + panel { > + compatible = "logictechno,lttd800480070-l6wh-rt"; > + backlight = <>; > + power-supply = <_3v3>; > + > + port { > + panel_in: endpoint { > + remote-endpoint = <_out>; > + }; > + }; > + }; > +}; > + >
Re: [PATCH v2 4/4] ARM: dts: add SKOV imx6q and imx6dl based boards
On Sun, Jul 18, 2021 at 10:22:14PM +0200, Sam Ravnborg wrote: > Hi Oleksij, > On Wed, Jul 14, 2021 at 06:53:49AM +0200, Oleksij Rempel wrote: > > From: Sam Ravnborg > > The real author one these dts files are Juergen Borleis IIRC. > I made some internal refactoring / renaming which is why I thing git > says otherwise. > So onless Juergen says otherwise we should give him the author credit. > > Arnd - would it be OK if I take the bindings patches through > drm-misc-next, and then you can take the DTS files via arm-soc? Yeah, it makes sense to send panel-simple.yaml change (patch #1) via drm tree. Shawn
Re: [PATCH v1 4/4] ARM: dts: add SKOV imx6q and imx6dl based boards
On Wed, Jun 09, 2021 at 02:10:50PM +0200, Oleksij Rempel wrote: > From: Sam Ravnborg > > Add SKOV imx6q/dl LT2, LT6 and mi1010ait-1cp1 boards. > > Signed-off-by: Sam Ravnborg > Signed-off-by: Søren Andersen > Signed-off-by: Juergen Borleis > Signed-off-by: Ulrich Ölmann > Signed-off-by: Michael Grzeschik > Signed-off-by: Marco Felsch > Signed-off-by: Lucas Stach > Signed-off-by: Oleksij Rempel > --- > arch/arm/boot/dts/Makefile| 5 + > arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts| 13 + > arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts| 108 > arch/arm/boot/dts/imx6q-skov-revc-lt2.dts | 36 ++ > arch/arm/boot/dts/imx6q-skov-revc-lt6.dts | 128 + > .../dts/imx6q-skov-reve-mi1010ait-1cp1.dts| 127 + > arch/arm/boot/dts/imx6qdl-skov-cpu-revc.dtsi | 58 +++ > arch/arm/boot/dts/imx6qdl-skov-cpu.dtsi | 476 ++ > 8 files changed, 951 insertions(+) > create mode 100644 arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts > create mode 100644 arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts > create mode 100644 arch/arm/boot/dts/imx6q-skov-revc-lt2.dts > create mode 100644 arch/arm/boot/dts/imx6q-skov-revc-lt6.dts > create mode 100644 arch/arm/boot/dts/imx6q-skov-reve-mi1010ait-1cp1.dts > create mode 100644 arch/arm/boot/dts/imx6qdl-skov-cpu-revc.dtsi > create mode 100644 arch/arm/boot/dts/imx6qdl-skov-cpu.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index f8f09c5066e7..60a3ef665697 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -473,6 +473,8 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6dl-sabrelite.dtb \ > imx6dl-sabresd.dtb \ > imx6dl-savageboard.dtb \ > + imx6dl-skov-revc-lt2.dtb \ > + imx6dl-skov-revc-lt6.dtb \ > imx6dl-ts4900.dtb \ > imx6dl-ts7970.dtb \ > imx6dl-tx6dl-comtft.dtb \ > @@ -567,6 +569,9 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6q-sabresd.dtb \ > imx6q-savageboard.dtb \ > imx6q-sbc6x.dtb \ > + imx6q-skov-revc-lt2.dtb \ > + imx6q-skov-revc-lt6.dtb \ > + imx6q-skov-reve-mi1010ait-1cp1.dtb \ > imx6q-tbs2910.dtb \ > imx6q-ts4900.dtb \ > imx6q-ts7970.dtb \ > diff --git a/arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts > b/arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts > new file mode 100644 > index ..667b8faa1807 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-skov-revc-lt2.dts > @@ -0,0 +1,13 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +// > +// Copyright (C) 2020 Pengutronix, Ulrich Oelmann > + > +/dts-v1/; > +#include "imx6dl.dtsi" > +#include "imx6qdl-skov-cpu.dtsi" > +#include "imx6qdl-skov-cpu-revc.dtsi" > + > +/ { > + model = "SKOV IMX6 CPU SoloCore"; > + compatible = "skov,imx6dl-skov-revc-lt2", "fsl,imx6dl"; > +}; > diff --git a/arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts > b/arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts > new file mode 100644 > index ..25071c7c4e29 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-skov-revc-lt6.dts > @@ -0,0 +1,108 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +// > +// Copyright (C) 2020 Pengutronix, Ulrich Oelmann > + > +/dts-v1/; > +#include "imx6dl.dtsi" > +#include "imx6qdl-skov-cpu.dtsi" > +#include "imx6qdl-skov-cpu-revc.dtsi" > + > +/ { > + model = "SKOV IMX6 CPU SoloCore"; > + compatible = "skov,imx6dl-skov-revc-lt6", "fsl,imx6dl"; > + > + backlight: backlight { > + compatible = "pwm-backlight"; > + pinctrl-names = "default"; > + pinctrl-0 = <_backlight>; > + enable-gpios = < 23 GPIO_ACTIVE_LOW>; > + pwms = < 0 2 0>; > + brightness-levels = <0 255>; > + num-interpolated-steps = <17>; > + default-brightness-level = <8>; > + power-supply = <_24v0>; > + }; > + > + display { > + #address-cells = <1>; > + #size-cells = <0>; > + > + compatible = "fsl,imx-parallel-display"; > + pinctrl-names = "default"; > + pinctrl-0 = <_ipu1>; > + > + port@0 { > + reg = <0>; > + > + display0_in: endpoint { > + remote-endpoint = <_di0_disp0>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + > + display0_out: endpoint { > + remote-endpoint = <_in>; > + }; > + }; > + }; > + > + > + panel { > + compatible = "logictechno,lttd800480070-l6wh-rt"; > + backlight = <>; > + power-supply = <_3v3>; > + > + port { > + panel_in: endpoint { > + remote-endpoint = <_out>; > + }; > + }; > + }; > +}; > + > +_di0_disp0 { > + remote-endpoint = <_in>; > +}; > + > + { > +
Re: [PATCHv2 5/5] ARM: dts: imx6: Add GE B1x5v2
On Thu, Apr 29, 2021 at 12:29:53AM +0200, Sebastian Reichel wrote: > This adds device tree files for the General Electric Healthcare > (GEHC) B1x5v2 series. All models make use of Congatec's QMX6 module, > which is described in its own device tree include, so that it can > also be used by other boards. > > Signed-off-by: Sebastian Reichel > --- > arch/arm/boot/dts/Makefile| 5 + > arch/arm/boot/dts/imx6dl-b105pv2.dts | 35 ++ > arch/arm/boot/dts/imx6dl-b105v2.dts | 35 ++ > arch/arm/boot/dts/imx6dl-b125pv2.dts | 33 ++ > arch/arm/boot/dts/imx6dl-b125v2.dts | 33 ++ > arch/arm/boot/dts/imx6dl-b155v2.dts | 36 ++ > arch/arm/boot/dts/imx6dl-b1x5pv2.dtsi | 434 ++ > arch/arm/boot/dts/imx6dl-b1x5v2.dtsi | 61 +++ > arch/arm/boot/dts/imx6dl-qmx6.dtsi| 624 ++ > 9 files changed, 1296 insertions(+) > create mode 100644 arch/arm/boot/dts/imx6dl-b105pv2.dts > create mode 100644 arch/arm/boot/dts/imx6dl-b105v2.dts > create mode 100644 arch/arm/boot/dts/imx6dl-b125pv2.dts > create mode 100644 arch/arm/boot/dts/imx6dl-b125v2.dts > create mode 100644 arch/arm/boot/dts/imx6dl-b155v2.dts > create mode 100644 arch/arm/boot/dts/imx6dl-b1x5pv2.dtsi > create mode 100644 arch/arm/boot/dts/imx6dl-b1x5v2.dtsi > create mode 100644 arch/arm/boot/dts/imx6dl-qmx6.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index f8f09c5066e7..811f22ed1e37 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -515,6 +515,11 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6q-dms-ba16.dtb \ > imx6q-emcon-avari.dtb \ > imx6q-evi.dtb \ > + imx6dl-b105v2.dtb \ > + imx6dl-b105pv2.dtb \ 'p' goes before 'v'. > + imx6dl-b125v2.dtb \ > + imx6dl-b125pv2.dtb \ > + imx6dl-b155v2.dtb \ > imx6q-gk802.dtb \ > imx6q-gw51xx.dtb \ > imx6q-gw52xx.dtb \ > diff --git a/arch/arm/boot/dts/imx6dl-b105pv2.dts > b/arch/arm/boot/dts/imx6dl-b105pv2.dts > new file mode 100644 > index ..0d5be2f9471f > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-b105pv2.dts > @@ -0,0 +1,35 @@ > +// SPDX-License-Identifier: GPL-2.0 or MIT > +// > +// Device Tree Source for General Electric B105Pv2 > +// > +// Copyright 2018-2021 General Electric Company > +// Copyright 2018-2021 Collabora > + > +/dts-v1/; > +#include "imx6dl-b1x5pv2.dtsi" > + > +/ { > + model = "General Electric B105Pv2"; > + compatible = "ge,imx6dl-b105pv2", "congatec,qmx6", "fsl,imx6dl"; > + > + panel { > + compatible = "auo,g101evn010"; > + status = "okay"; Unneeded okay status. > + }; > +}; > + > + { > + touchscreen@41 { > + reg = <0x41>; We generally start property list with 'compatible'. > + compatible = "ilitek,ili251x"; > + In general, we do not use newline in middle of property list. > + pinctrl-names = "default"; > + pinctrl-0 =<_q7_gpio0>; > + interrupt-parent = <>; > + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = < 21 GPIO_ACTIVE_LOW>; > + > + touchscreen-size-x = <1280>; > + touchscreen-size-y = <800>; > + }; > +}; > diff --git a/arch/arm/boot/dts/imx6dl-b105v2.dts > b/arch/arm/boot/dts/imx6dl-b105v2.dts > new file mode 100644 > index ..72a085348304 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-b105v2.dts > @@ -0,0 +1,35 @@ > +// SPDX-License-Identifier: GPL-2.0 or MIT > +// > +// Device Tree Source for General Electric B105v2 > +// > +// Copyright 2018-2021 General Electric Company > +// Copyright 2018-2021 Collabora > + > +/dts-v1/; > +#include "imx6dl-b1x5v2.dtsi" > + > +/ { > + model = "General Electric B105v2"; > + compatible = "ge,imx6dl-b105v2", "congatec,qmx6", "fsl,imx6dl"; > + > + panel { > + compatible = "auo,g101evn010"; > + status = "okay"; > + }; > +}; > + > + { > + touchscreen@41 { > + reg = <0x41>; > + compatible = "ilitek,ili251x"; > + > + pinctrl-names = "default"; > + pinctrl-0 =<_q7_gpio0>; > + interrupt-parent = <>; > + interrupts = <2 IRQ_TYPE_EDGE_FALLING>; > + reset-gpios = < 21 GPIO_ACTIVE_LOW>; > + > + touchscreen-size-x = <1280>; > + touchscreen-size-y = <800>; > + }; > +}; > diff --git a/arch/arm/boot/dts/imx6dl-b125pv2.dts > b/arch/arm/boot/dts/imx6dl-b125pv2.dts > new file mode 100644 > index ..8fd6c8ed6750 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-b125pv2.dts > @@ -0,0 +1,33 @@ > +// SPDX-License-Identifier: GPL-2.0 or MIT > +// > +// Device Tree Source for General Electric B125Pv2 > +// > +// Copyright 2018-2021 General Electric Company > +// Copyright 2018-2021 Collabora > + > +/dts-v1/; > +#include "imx6dl-b1x5pv2.dtsi" > + > +/ { > + model = "General Electric B125Pv2"; > + compatible = "ge,imx6dl-b125pv2",
Re: [PATCH v7 0/8] mainline Plymovent M2M and BAS board
On Mon, Dec 07, 2020 at 03:09:31PM +0100, Oleksij Rempel wrote: > changes v7: > - panel-simple.yaml: fix comments and part order > - panel-simple.yaml: invent a product description for the Kyocera tcg070wvlq > panel > > changes v6: > - do more panel-simple.yaml related cleanups > > changes v5: > - rebase against latest shawngup/for-next > - add patch to fix checkpatch warning on PLYM2M dts > > changes v4: > - add PLYBAS board > - PLYM2M: add touchscreen node > - PLYM2M: add rename led nodes to led-x > > changes v3: > - use old style copyright text > > changes v2: > - fsl.yaml: reorder ply,plym2m > - imx6dl-plym2m.dts: use hyphen instead of underscore in phy-clock > > Oleksij Rempel (8): > dt-bindings: display: simple: fix alphabetical order for EDT > compatibles > dt-bindings: display: simple: add EDT compatibles already supported by > the driver > dt-bindings: display: simple: Add Kyocera tcg070wvlq panel > dt-bindings: vendor-prefixes: Add an entry for Plymovent > dt-bindings: arm: fsl: add Plymovent M2M board > ARM: dts: add Plymovent M2M board > dt-bindings: arm: fsl: add Plymovent BAS board > ARM: dts: add Plymovent BAS board Applied all, thanks. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/bridge: ti-sn65dsi86: Implement the pwm_chip
Hi Uwe, On Thu, Dec 10, 2020 at 9:05 PM Uwe Kleine-König wrote: > > > @@ -111,6 +118,8 @@ > > > > > > #define SN_LINK_TRAINING_TRIES 10 > > > > > > +#define SN_PWM_GPIO3 > > > > So this maps to the GPIO4 described in sn65dsi86 datasheet. I'm > > wondering if it's more readable to define the following SHIFT constants > > (your code), and use GPIO_MUX_GPIO4_SHIFT >> 2 where you need GPIO > > offset? > > > > #define GPIO_MUX_GPIO1_SHIFT 0 > > #define GPIO_MUX_GPIO2_SHIFT 2 > > #define GPIO_MUX_GPIO3_SHIFT 4 > > #define GPIO_MUX_GPIO4_SHIFT 6 > > > > If you agree, you may consider to integrate this patch beforehand: > > > > https://github.com/shawnguo2/linux/commit/7cde887ffb3b27a36e77a08bee3666d14968b586 > > My preferred way here would be to add a prefix for the other constants. > It (IMHO) looks nicer and > > GPIO_INPUT_SHIFT > > looks like a quite generic name for a hardware specific definition. While this looks like a reasonable argument, I also like the naming choice for these constants in the beginning for that distinction between registers and bits. And changing the names the other way around means there will be a much bigger diffstat, which I would like to avoid. I suggest let's just focus on what really matters here - keep the naming consistent, so that people do not get confused when they want to add more constants in there. Shawn > (Even if up to now there is no other code location using this name.) ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm/bridge: ti-sn65dsi86: rename GPIO register bits
From: Shawn Guo It renames GPIO register bits to drop 'SN_' prefix, so that they are consistent to other definitions - prefixing register name with 'SN_' but not for bit fields. Signed-off-by: Shawn Guo --- drivers/gpu/drm/bridge/ti-sn65dsi86.c | 26 +- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c b/drivers/gpu/drm/bridge/ti-sn65dsi86.c index f27306c51e4d..8eac9d77eba1 100644 --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -63,13 +63,13 @@ #define SN_HPD_DISABLE_REG 0x5C #define HPD_DISABLE BIT(0) #define SN_GPIO_IO_REG 0x5E -#define SN_GPIO_INPUT_SHIFT 4 -#define SN_GPIO_OUTPUT_SHIFT 0 +#define GPIO_INPUT_SHIFT 4 +#define GPIO_OUTPUT_SHIFT 0 #define SN_GPIO_CTRL_REG 0x5F -#define SN_GPIO_MUX_INPUT 0 -#define SN_GPIO_MUX_OUTPUT1 -#define SN_GPIO_MUX_SPECIAL 2 -#define SN_GPIO_MUX_MASK 0x3 +#define GPIO_MUX_INPUT0 +#define GPIO_MUX_OUTPUT 1 +#define GPIO_MUX_SPECIAL 2 +#define GPIO_MUX_MASK 0x3 #define SN_AUX_WDATA_REG(x)(0x64 + (x)) #define SN_AUX_ADDR_19_16_REG 0x74 #define SN_AUX_ADDR_15_8_REG 0x75 @@ -1035,7 +1035,7 @@ static int ti_sn_bridge_gpio_get(struct gpio_chip *chip, unsigned int offset) if (ret) return ret; - return !!(val & BIT(SN_GPIO_INPUT_SHIFT + offset)); + return !!(val & BIT(GPIO_INPUT_SHIFT + offset)); } static void ti_sn_bridge_gpio_set(struct gpio_chip *chip, unsigned int offset, @@ -1051,8 +1051,8 @@ static void ti_sn_bridge_gpio_set(struct gpio_chip *chip, unsigned int offset, val &= 1; ret = regmap_update_bits(pdata->regmap, SN_GPIO_IO_REG, -BIT(SN_GPIO_OUTPUT_SHIFT + offset), -val << (SN_GPIO_OUTPUT_SHIFT + offset)); +BIT(GPIO_OUTPUT_SHIFT + offset), +val << (GPIO_OUTPUT_SHIFT + offset)); if (ret) dev_warn(pdata->dev, "Failed to set bridge GPIO %u: %d\n", offset, ret); @@ -1069,8 +1069,8 @@ static int ti_sn_bridge_gpio_direction_input(struct gpio_chip *chip, return 0; ret = regmap_update_bits(pdata->regmap, SN_GPIO_CTRL_REG, -SN_GPIO_MUX_MASK << shift, -SN_GPIO_MUX_INPUT << shift); +GPIO_MUX_MASK << shift, +GPIO_MUX_INPUT << shift); if (ret) { set_bit(offset, pdata->gchip_output); return ret; @@ -1103,8 +1103,8 @@ static int ti_sn_bridge_gpio_direction_output(struct gpio_chip *chip, /* Set direction */ ret = regmap_update_bits(pdata->regmap, SN_GPIO_CTRL_REG, -SN_GPIO_MUX_MASK << shift, -SN_GPIO_MUX_OUTPUT << shift); +GPIO_MUX_MASK << shift, +GPIO_MUX_OUTPUT << shift); if (ret) { clear_bit(offset, pdata->gchip_output); pm_runtime_put(pdata->dev); -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/bridge: ti-sn65dsi86: Implement the pwm_chip
On Mon, Dec 07, 2020 at 10:40:22PM -0600, Bjorn Andersson wrote: > The SN65DSI86 provides the ability to supply a PWM signal on GPIO 4, > with the primary purpose of controlling the backlight of the attached > panel. Add an implementation that exposes this using the standard PWM > framework, to allow e.g. pwm-backlight to expose this to the user. > > Special thanks to Doug Anderson for suggestions related to the involved > math. > > Signed-off-by: Bjorn Andersson > --- > drivers/gpu/drm/bridge/ti-sn65dsi86.c | 202 ++ > 1 file changed, 202 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi86.c > b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > index f27306c51e4d..43c0acba57ab 100644 > --- a/drivers/gpu/drm/bridge/ti-sn65dsi86.c > +++ b/drivers/gpu/drm/bridge/ti-sn65dsi86.c > @@ -4,6 +4,7 @@ > * datasheet: https://www.ti.com/lit/ds/symlink/sn65dsi86.pdf > */ > > +#include > #include > #include > #include > @@ -14,6 +15,7 @@ > #include > #include > #include > +#include > #include > #include > > @@ -89,6 +91,11 @@ > #define SN_ML_TX_MODE_REG0x96 > #define ML_TX_MAIN_LINK_OFF 0 > #define ML_TX_NORMAL_MODE BIT(0) > +#define SN_PWM_PRE_DIV_REG 0xA0 > +#define SN_BACKLIGHT_SCALE_REG 0xA1 > +#define BACKLIGHT_SCALE_MAX 0x > +#define SN_BACKLIGHT_REG 0xA3 > +#define SN_PWM_EN_INV_REG0xA5 > #define SN_AUX_CMD_STATUS_REG0xF4 > #define AUX_IRQ_STATUS_AUX_RPLY_TOUTBIT(3) > #define AUX_IRQ_STATUS_AUX_SHORTBIT(5) > @@ -111,6 +118,8 @@ > > #define SN_LINK_TRAINING_TRIES 10 > > +#define SN_PWM_GPIO 3 So this maps to the GPIO4 described in sn65dsi86 datasheet. I'm wondering if it's more readable to define the following SHIFT constants (your code), and use GPIO_MUX_GPIO4_SHIFT >> 2 where you need GPIO offset? #define GPIO_MUX_GPIO1_SHIFT 0 #define GPIO_MUX_GPIO2_SHIFT 2 #define GPIO_MUX_GPIO3_SHIFT 4 #define GPIO_MUX_GPIO4_SHIFT 6 If you agree, you may consider to integrate this patch beforehand: https://github.com/shawnguo2/linux/commit/7cde887ffb3b27a36e77a08bee3666d14968b586 Shawn > + > /** > * struct ti_sn_bridge - Platform data for ti-sn65dsi86 driver. > * @dev: Pointer to our device. > @@ -162,6 +171,12 @@ struct ti_sn_bridge { > struct gpio_chipgchip; > DECLARE_BITMAP(gchip_output, SN_NUM_GPIOS); > #endif > +#if defined(CONFIG_PWM) > + struct pwm_chip pchip; > + boolpwm_enabled; > + unsigned intpwm_refclk; > + atomic_tpwm_pin_busy; > +#endif > }; > > static const struct regmap_range ti_sn_bridge_volatile_ranges[] = { > @@ -499,6 +514,14 @@ static void ti_sn_bridge_set_refclk_freq(struct > ti_sn_bridge *pdata) > > regmap_update_bits(pdata->regmap, SN_DPPLL_SRC_REG, REFCLK_FREQ_MASK, > REFCLK_FREQ(i)); > + > +#if defined(CONFIG_PWM) > + /* > + * The PWM refclk is based on the value written to SN_DPPLL_SRC_REG, > + * regardless of its actual sourcing. > + */ > + pdata->pwm_refclk = ti_sn_bridge_refclk_lut[i]; > +#endif > } > > static void ti_sn_bridge_set_dsi_rate(struct ti_sn_bridge *pdata) > @@ -981,6 +1004,161 @@ static int ti_sn_bridge_parse_dsi_host(struct > ti_sn_bridge *pdata) > return 0; > } > > +#if defined(CONFIG_PWM) > +static int ti_sn_pwm_pin_request(struct ti_sn_bridge *pdata) > +{ > + return atomic_xchg(>pwm_pin_busy, 1) ? -EBUSY : 0; > +} > + > +static void ti_sn_pwm_pin_release(struct ti_sn_bridge *pdata) > +{ > + atomic_set(>pwm_pin_busy, 0); > +} > + > +static struct ti_sn_bridge * > +pwm_chip_to_ti_sn_bridge(struct pwm_chip *chip) > +{ > + return container_of(chip, struct ti_sn_bridge, pchip); > +} > + > +static int ti_sn_pwm_request(struct pwm_chip *chip, struct pwm_device *pwm) > +{ > + struct ti_sn_bridge *pdata = pwm_chip_to_ti_sn_bridge(chip); > + > + return ti_sn_pwm_pin_request(pdata); > +} > + > +static void ti_sn_pwm_free(struct pwm_chip *chip, struct pwm_device *pwm) > +{ > + struct ti_sn_bridge *pdata = pwm_chip_to_ti_sn_bridge(chip); > + > + ti_sn_pwm_pin_release(pdata); > +} > + > +static int ti_sn_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm, > +const struct pwm_state *state) > +{ > + struct ti_sn_bridge *pdata = pwm_chip_to_ti_sn_bridge(chip); > + unsigned int pwm_en_inv; > + unsigned int backlight; > + unsigned int pwm_freq; > + unsigned int pre_div; > + unsigned int scale; > + int ret; > + > + if (!pdata->pwm_enabled) { > + ret = pm_runtime_get_sync(pdata->dev); > + if (ret < 0) > + return ret; > + >
Re: [PATCH] Revert "i2c: qcom-geni: Disable DMA processing on the Lenovo Yoga C630"
On Tue, Nov 24, 2020 at 12:57:43PM -0600, Bjorn Andersson wrote: > A combination of recent bug fixes by Doug Anderson and the proper > definition of iommu streams means that this hack is no longer needed. > Let's clean up the code by reverting '127068abe85b ("i2c: qcom-geni: > Disable DMA processing on the Lenovo Yoga C630")'. > > Signed-off-by: Bjorn Andersson Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/drm_vblank: use drm_warn_once() to warn undefined mode timing
On Mon, Oct 19, 2020 at 05:48:29PM +0200, Daniel Vetter wrote: > On Fri, Oct 16, 2020 at 07:46:41PM +0800, Shawn Guo wrote: > > Indeed! Adding drm_crtc_vblank_reset() into driver crtc reset hook > > removes the WARNING for me. Really appreciate your comments, Daniel! > > This should work automatically if you're using the atomic state helpers. > Please try to unify as much as possible, so you're not missing any future > bugfixes in this area. Although I thought I've completely reviewed all > drivers to fix as many as possible for this bug. Are you on some older > kernel that didn't have this? Maybe good idea to submit the bugfix in > upstream to stable, if that's the case. Yes, I'm running a 4.19 stable kernel with msm/mdp5 device. The bug was addressed (unintentionally?) by one patch that is part of the series adding Nexus 5 display support. And later on, you commit 51f644b40b4b ("drm/atomic-helper: reset vblank on crtc reset") switches the driver to use atomic state helper. Shawn [1] https://lore.kernel.org/patchwork/patch/1082564/ ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/drm_vblank: use drm_warn_once() to warn undefined mode timing
On Fri, Oct 16, 2020 at 11:30:04AM +0200, Daniel Vetter wrote: > On Fri, Oct 16, 2020 at 10:54 AM Shawn Guo wrote: > > > > On Fri, Oct 16, 2020 at 09:58:46AM +0200, Daniel Vetter wrote: > > > On Fri, Oct 16, 2020 at 9:13 AM Shawn Guo wrote: > > > > > > > > Commit 5caa0feafcc6 ("drm/vblank: Lock down vblank->hwmode more") added > > > > WARN_ON_ONCE() for atomic drivers to warn the case that vsync is enabled > > > > before a mode has been set on CRTC. This happens sometimes during the > > > > initial mode setting of a CRTC. It also happens on Android running HWC2 > > > > backed with drm_hwcomposer, where HWC2::SetVsyncEnabled could be called > > > > before the atomic mode setting on CRTC happens. > > > > > > > > In this case, there is nothing really bad to happen as kernel function > > > > returns as no-op. So using WARN() version might be overkilled, > > > > considering some user space crash reporting services may treat kernel > > > > WARNINGS as crashes. Let's drop WARN_ON_ONCE() and change > > > > drm_dbg_core() > > > > to drm_warn_once() for warning undefined mode timing. > > > > > > This indicates a bug in your driver. Please fix it there, not by > > > shutting up the core code complaining about that. Either you're > > > getting vblank timestamps when the vblank isn't set up yet > > > (drm_crtc_vblank_on/off) or there's some other race going on in your > > > driver code resulting in this. > > > > Thanks for the comment, Daniel. > > > > I'm hitting this warning on an Android running drm_hwcomposer. I'm > > indeed getting vblank timestamps request before drm_crtc_vblank_on() is > > called. I'm not sure this is a bug or race condition in the driver > > code, as both vblank timestamps and on/off requests are coming from user > > space ioctl for my case. @Sean, that means the problem is in Android > > drm_hwcomposer code? > > vblank request when the crtc is off should be rejected. Most drivers > got this wrong before I added the required drm_crtc_vblank_reset() > into atomic helpers in 51f644b40b4b ("drm/atomic-helper: reset vblank > on crtc reset") > > Please make sure you have that, and that drm_crtc_vblank_reset is run > at driver load time. If the crtc is off, vblank ioctl should be > rejected. So this is definitely not a userspace bug, still a driver > bug. In general, userspace is not allowed to do anything that results > in dmesg spam at normal log levels. Anytime that happens it's a kernel > bug. And if it's a warning in core code, it's most likely a driver bug > since the core code tends to be better debugged about these things. > But there's ofc exceptions. Indeed! Adding drm_crtc_vblank_reset() into driver crtc reset hook removes the WARNING for me. Really appreciate your comments, Daniel! Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/drm_vblank: use drm_warn_once() to warn undefined mode timing
On Fri, Oct 16, 2020 at 09:58:46AM +0200, Daniel Vetter wrote: > On Fri, Oct 16, 2020 at 9:13 AM Shawn Guo wrote: > > > > Commit 5caa0feafcc6 ("drm/vblank: Lock down vblank->hwmode more") added > > WARN_ON_ONCE() for atomic drivers to warn the case that vsync is enabled > > before a mode has been set on CRTC. This happens sometimes during the > > initial mode setting of a CRTC. It also happens on Android running HWC2 > > backed with drm_hwcomposer, where HWC2::SetVsyncEnabled could be called > > before the atomic mode setting on CRTC happens. > > > > In this case, there is nothing really bad to happen as kernel function > > returns as no-op. So using WARN() version might be overkilled, > > considering some user space crash reporting services may treat kernel > > WARNINGS as crashes. Let's drop WARN_ON_ONCE() and change drm_dbg_core() > > to drm_warn_once() for warning undefined mode timing. > > This indicates a bug in your driver. Please fix it there, not by > shutting up the core code complaining about that. Either you're > getting vblank timestamps when the vblank isn't set up yet > (drm_crtc_vblank_on/off) or there's some other race going on in your > driver code resulting in this. Thanks for the comment, Daniel. I'm hitting this warning on an Android running drm_hwcomposer. I'm indeed getting vblank timestamps request before drm_crtc_vblank_on() is called. I'm not sure this is a bug or race condition in the driver code, as both vblank timestamps and on/off requests are coming from user space ioctl for my case. @Sean, that means the problem is in Android drm_hwcomposer code? Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH] drm/drm_vblank: use drm_warn_once() to warn undefined mode timing
Commit 5caa0feafcc6 ("drm/vblank: Lock down vblank->hwmode more") added WARN_ON_ONCE() for atomic drivers to warn the case that vsync is enabled before a mode has been set on CRTC. This happens sometimes during the initial mode setting of a CRTC. It also happens on Android running HWC2 backed with drm_hwcomposer, where HWC2::SetVsyncEnabled could be called before the atomic mode setting on CRTC happens. In this case, there is nothing really bad to happen as kernel function returns as no-op. So using WARN() version might be overkilled, considering some user space crash reporting services may treat kernel WARNINGS as crashes. Let's drop WARN_ON_ONCE() and change drm_dbg_core() to drm_warn_once() for warning undefined mode timing. Signed-off-by: Shawn Guo --- drivers/gpu/drm/drm_vblank.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/drm_vblank.c b/drivers/gpu/drm/drm_vblank.c index b18e1efbbae1..5f7c4a923e8a 100644 --- a/drivers/gpu/drm/drm_vblank.c +++ b/drivers/gpu/drm/drm_vblank.c @@ -717,9 +717,9 @@ drm_crtc_vblank_helper_get_vblank_timestamp_internal( * Happens during initial modesetting of a crtc. */ if (mode->crtc_clock == 0) { - drm_dbg_core(dev, "crtc %u: Noop due to uninitialized mode.\n", -pipe); - drm_WARN_ON_ONCE(dev, drm_drv_uses_atomic_modeset(dev)); + drm_warn_once(dev, "crtc %u: Noop due to uninitialized mode.\n", + pipe); + return false; } -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 03/13] dt-bindings: arm: fsl: Fix matching Purism Librem5 phones
On Fri, Sep 04, 2020 at 04:53:02PM +0200, Krzysztof Kozlowski wrote: > All Purism Librem5 phones have three compatibles so they need their own > entry to fix dbts_check warnings like: > > arch/arm64/boot/dts/freescale/imx8mq-librem5-r2.dt.yaml: /: > compatible: ['purism,librem5r2', 'purism,librem5', 'fsl,imx8mq'] is not > valid under any of the given schemas > > arch/arm64/boot/dts/freescale/imx8mq-librem5-r2.dt.yaml: /: > compatible: ['purism,librem5r2', 'purism,librem5', 'fsl,imx8mq'] is too > long > > Signed-off-by: Krzysztof Kozlowski Applied, thanks. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 08/13] arm64: dts: imx8mm-var-som-symphony: Use newer interrupts property
On Fri, Sep 04, 2020 at 04:53:07PM +0200, Krzysztof Kozlowski wrote: > The int-gpios was deprecated in favor of generic interrupts property. > > Signed-off-by: Krzysztof Kozlowski Applied patch #8 ~ #13, thanks. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH for v5.9] ARM: dts: mxs: Replace HTTP links with HTTPS ones
On Sun, Jul 19, 2020 at 12:10:08PM +0200, Alexander A. Klimov wrote: > Rationale: > Reduces attack surface on kernel devs opening the links for MITM > as HTTPS traffic is much harder to manipulate. > > Deterministic algorithm: > For each file: > If not .svg: > For each line: > If doesn't contain `\bxmlns\b`: > For each link, `\bhttp://[^# \t\r\n]*(?:\w|/)`: > If neither `\bgnu\.org/license`, nor `\bmozilla\.org/MPL\b`: > If both the HTTP and HTTPS versions > return 200 OK and serve the same content: > Replace HTTP with HTTPS. > > Signed-off-by: Alexander A. Klimov s/mxs/imx in the subject. Otherwise: Acked-by: Shawn Guo > --- > Continuing my work started at 93431e0607e5. > See also: git log --oneline '--author=Alexander A. Klimov > ' v5.7..master > (Actually letting a shell for loop submit all this stuff for me.) > > If there are any URLs to be removed completely > or at least not (just) HTTPSified: > Just clearly say so and I'll *undo my change*. > See also: https://lkml.org/lkml/2020/6/27/64 > > If there are any valid, but yet not changed URLs: > See: https://lkml.org/lkml/2020/6/26/837 > > If you apply the patch, please let me know. > > Sorry again to all maintainers who complained about subject lines. > Now I realized that you want an actually perfect prefixes, > not just subsystem ones. > I tried my best... > And yes, *I could* (at least half-)automate it. > Impossible is nothing! :) > > > arch/arm/boot/dts/imx23-pinfunc.h | 4 ++-- > arch/arm/boot/dts/imx28-pinfunc.h | 4 ++-- > arch/arm/boot/dts/imx53-tx53-x13x.dts | 4 ++-- > arch/arm/boot/dts/mxs-pinfunc.h | 4 ++-- > include/video/imx-ipu-v3.h| 4 ++-- > 5 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/arch/arm/boot/dts/imx23-pinfunc.h > b/arch/arm/boot/dts/imx23-pinfunc.h > index 5c0f32ca3a93..f9d7eb6679de 100644 > --- a/arch/arm/boot/dts/imx23-pinfunc.h > +++ b/arch/arm/boot/dts/imx23-pinfunc.h > @@ -7,8 +7,8 @@ > * License. You may obtain a copy of the GNU General Public License > * Version 2 at the following locations: > * > - * http://www.opensource.org/licenses/gpl-license.html > - * http://www.gnu.org/copyleft/gpl.html > + * https://www.opensource.org/licenses/gpl-license.html > + * https://www.gnu.org/copyleft/gpl.html > */ > > #ifndef __DT_BINDINGS_MX23_PINCTRL_H__ > diff --git a/arch/arm/boot/dts/imx28-pinfunc.h > b/arch/arm/boot/dts/imx28-pinfunc.h > index e11f69ba0fe4..ffd5412b70ae 100644 > --- a/arch/arm/boot/dts/imx28-pinfunc.h > +++ b/arch/arm/boot/dts/imx28-pinfunc.h > @@ -7,8 +7,8 @@ > * License. You may obtain a copy of the GNU General Public License > * Version 2 at the following locations: > * > - * http://www.opensource.org/licenses/gpl-license.html > - * http://www.gnu.org/copyleft/gpl.html > + * https://www.opensource.org/licenses/gpl-license.html > + * https://www.gnu.org/copyleft/gpl.html > */ > > #ifndef __DT_BINDINGS_MX28_PINCTRL_H__ > diff --git a/arch/arm/boot/dts/imx53-tx53-x13x.dts > b/arch/arm/boot/dts/imx53-tx53-x13x.dts > index 6cdf2082c742..a34d98cf6ed4 100644 > --- a/arch/arm/boot/dts/imx53-tx53-x13x.dts > +++ b/arch/arm/boot/dts/imx53-tx53-x13x.dts > @@ -41,8 +41,8 @@ > * License. You may obtain a copy of the GNU General Public License > * Version 2 at the following locations: > * > - * http://www.opensource.org/licenses/gpl-license.html > - * http://www.gnu.org/copyleft/gpl.html > + * https://www.opensource.org/licenses/gpl-license.html > + * https://www.gnu.org/copyleft/gpl.html > */ > > /dts-v1/; > diff --git a/arch/arm/boot/dts/mxs-pinfunc.h b/arch/arm/boot/dts/mxs-pinfunc.h > index c6da987b20cb..6766292eee30 100644 > --- a/arch/arm/boot/dts/mxs-pinfunc.h > +++ b/arch/arm/boot/dts/mxs-pinfunc.h > @@ -7,8 +7,8 @@ > * License. You may obtain a copy of the GNU General Public License > * Version 2 at the following locations: > * > - * http://www.opensource.org/licenses/gpl-license.html > - * http://www.gnu.org/copyleft/gpl.html > + * https://www.opensource.org/licenses/gpl-license.html > + * https://www.gnu.org/copyleft/gpl.html > */ > > #ifndef __DT_BINDINGS_MXS_PINCTRL_H__ > diff --git a/include/video/imx-ipu-v3.h b/include/video/imx-ipu-v3.h > index 06b0b57e996c..749490e3c66e 100644 > --- a/include/video/imx-ipu-v3.h > +++ b/include/video/imx-ipu-v3.h > @@ -5,8 +5,8 @@ > * Public License. You may obtain a copy of the GNU Lesser General > * Public License Version 2.1 or later at the following locations: > * > - * http://www.opensource.org/licenses/lgpl-license.
Re: [PATCH v2] drm/atomic_helper: add a flag for duplicating drm_private_obj state
On Sat, Jun 27, 2020 at 7:53 PM Shawn Guo wrote: > > From: Shawn Guo > > The msm/mdp5 driver uses state of drm_private_obj as its global atomic > state, which keeps the assignment of hwpipe to plane. With > drm_private_obj missing from duplicate state call in context of atomic > suspend/resume helpers, mdp5 suspend works with no problem only for the > very first time. Any subsequent suspend will hit the following warning, > because hwpipe assignment doesn't get duplicated for suspend state. > > $ echo mem > /sys/power/state > [ 38.44] PM: suspend entry (deep) > [ 38.85] PM: Syncing filesystems ... done. > [ 38.114630] Freezing user space processes ... (elapsed 0.001 seconds) done. > [ 38.115912] OOM killer disabled. > [ 38.115914] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) > done. > [ 38.122170] [ cut here ] > [ 38.122212] WARNING: CPU: 0 PID: 1747 at > drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c:145 mdp5_pipe_release+0x90/0xc0 > [ 38.122215] Modules linked in: > [ 38.12] CPU: 0 PID: 1747 Comm: sh Not tainted > 4.19.107-00515-g9d5e4d7a33ed-dirty #323 > [ 38.14] Hardware name: Square, Inc. T2 Devkit (DT) > [ 38.18] pstate: 4005 (nZcv daif -PAN -UAO) > [ 38.122230] pc : mdp5_pipe_release+0x90/0xc0 > [ 38.122233] lr : mdp5_pipe_release+0x90/0xc0 > [ 38.122235] sp : 0d13b7f0 > [ 38.122236] x29: 0d13b7f0 x28: > [ 38.122240] x27: 0002 x26: 800079adce00 > [ 38.122243] x25: 800079405200 x24: > [ 38.122246] x23: 80007a78cc08 x22: 80007b1cc018 > [ 38.122249] x21: 80007b1cc000 x20: 80007b317080 > [ 38.122252] x19: 80007a78ce80 x18: 0002 > [ 38.122255] x17: x16: > [ 38.122258] x15: fff0 x14: 08c3fb48 > [ 38.122261] x13: 08cdac4a x12: 08c3f000 > [ 38.122264] x11: x10: 08cda000 > [ 38.122267] x9 : x8 : 08ce4a40 > [ 38.122269] x7 : x6 : 39ea41a9 > [ 38.122272] x5 : x4 : > [ 38.122275] x3 : x2 : c7580c109cae4500 > [ 38.122278] x1 : x0 : 0024 > [ 38.122281] Call trace: > [ 38.122285] mdp5_pipe_release+0x90/0xc0 > [ 38.122288] mdp5_plane_atomic_check+0x2c0/0x448 > [ 38.122294] drm_atomic_helper_check_planes+0xd0/0x208 > [ 38.122298] drm_atomic_helper_check+0x38/0xa8 > [ 38.122302] drm_atomic_check_only+0x3e8/0x630 > [ 38.122305] drm_atomic_commit+0x18/0x58 > [ 38.122309] __drm_atomic_helper_disable_all.isra.12+0x15c/0x1a8 > [ 38.122312] drm_atomic_helper_suspend+0x80/0xf0 > [ 38.122316] msm_pm_suspend+0x4c/0x70 > [ 38.122320] dpm_run_callback.isra.6+0x20/0x68 > [ 38.122323] __device_suspend+0x110/0x308 > [ 38.122326] dpm_suspend+0x100/0x1f0 > [ 38.122329] dpm_suspend_start+0x64/0x70 > [ 38.122334] suspend_devices_and_enter+0x110/0x500 > [ 38.122336] pm_suspend+0x268/0x2c0 > [ 38.122339] state_store+0x88/0x110 > [ 38.122345] kobj_attr_store+0x14/0x28 > [ 38.122352] sysfs_kf_write+0x3c/0x50 > [ 38.122355] kernfs_fop_write+0x118/0x1e0 > [ 38.122360] __vfs_write+0x30/0x168 > [ 38.122363] vfs_write+0xa4/0x1a8 > [ 38.122366] ksys_write+0x64/0xe8 > [ 38.122368] __arm64_sys_write+0x18/0x20 > [ 38.122374] el0_svc_common+0x6c/0x178 > [ 38.122377] el0_svc_compat_handler+0x1c/0x28 > [ 38.122381] el0_svc_compat+0x8/0x18 > [ 38.122383] ---[ end trace 24145b7d8545345b ]--- > [ 38.491552] Disabling non-boot CPUs ... > > Let's add a flag for duplicating the state of drm_private_obj and set > the flag from msm/mdp5 driver, so that the problem can be fixed while > other drivers using drm_private_obj stay unaffected. > > Signed-off-by: Shawn Guo > --- > Changes for v2: > - Add a flag to duplicate the state of drm_private_obj conditionally, >so that other drivers using drm_private_obj stay unaffected. Hi Daniel, Are you okay with this version? Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH v2] drm/atomic_helper: add a flag for duplicating drm_private_obj state
From: Shawn Guo The msm/mdp5 driver uses state of drm_private_obj as its global atomic state, which keeps the assignment of hwpipe to plane. With drm_private_obj missing from duplicate state call in context of atomic suspend/resume helpers, mdp5 suspend works with no problem only for the very first time. Any subsequent suspend will hit the following warning, because hwpipe assignment doesn't get duplicated for suspend state. $ echo mem > /sys/power/state [ 38.44] PM: suspend entry (deep) [ 38.85] PM: Syncing filesystems ... done. [ 38.114630] Freezing user space processes ... (elapsed 0.001 seconds) done. [ 38.115912] OOM killer disabled. [ 38.115914] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. [ 38.122170] [ cut here ] [ 38.122212] WARNING: CPU: 0 PID: 1747 at drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c:145 mdp5_pipe_release+0x90/0xc0 [ 38.122215] Modules linked in: [ 38.12] CPU: 0 PID: 1747 Comm: sh Not tainted 4.19.107-00515-g9d5e4d7a33ed-dirty #323 [ 38.14] Hardware name: Square, Inc. T2 Devkit (DT) [ 38.18] pstate: 4005 (nZcv daif -PAN -UAO) [ 38.122230] pc : mdp5_pipe_release+0x90/0xc0 [ 38.122233] lr : mdp5_pipe_release+0x90/0xc0 [ 38.122235] sp : 0d13b7f0 [ 38.122236] x29: 0d13b7f0 x28: [ 38.122240] x27: 0002 x26: 800079adce00 [ 38.122243] x25: 800079405200 x24: [ 38.122246] x23: 80007a78cc08 x22: 80007b1cc018 [ 38.122249] x21: 80007b1cc000 x20: 80007b317080 [ 38.122252] x19: 80007a78ce80 x18: 0002 [ 38.122255] x17: x16: [ 38.122258] x15: fff0 x14: 08c3fb48 [ 38.122261] x13: 08cdac4a x12: 08c3f000 [ 38.122264] x11: x10: 08cda000 [ 38.122267] x9 : x8 : 08ce4a40 [ 38.122269] x7 : x6 : 39ea41a9 [ 38.122272] x5 : x4 : [ 38.122275] x3 : x2 : c7580c109cae4500 [ 38.122278] x1 : x0 : 0024 [ 38.122281] Call trace: [ 38.122285] mdp5_pipe_release+0x90/0xc0 [ 38.122288] mdp5_plane_atomic_check+0x2c0/0x448 [ 38.122294] drm_atomic_helper_check_planes+0xd0/0x208 [ 38.122298] drm_atomic_helper_check+0x38/0xa8 [ 38.122302] drm_atomic_check_only+0x3e8/0x630 [ 38.122305] drm_atomic_commit+0x18/0x58 [ 38.122309] __drm_atomic_helper_disable_all.isra.12+0x15c/0x1a8 [ 38.122312] drm_atomic_helper_suspend+0x80/0xf0 [ 38.122316] msm_pm_suspend+0x4c/0x70 [ 38.122320] dpm_run_callback.isra.6+0x20/0x68 [ 38.122323] __device_suspend+0x110/0x308 [ 38.122326] dpm_suspend+0x100/0x1f0 [ 38.122329] dpm_suspend_start+0x64/0x70 [ 38.122334] suspend_devices_and_enter+0x110/0x500 [ 38.122336] pm_suspend+0x268/0x2c0 [ 38.122339] state_store+0x88/0x110 [ 38.122345] kobj_attr_store+0x14/0x28 [ 38.122352] sysfs_kf_write+0x3c/0x50 [ 38.122355] kernfs_fop_write+0x118/0x1e0 [ 38.122360] __vfs_write+0x30/0x168 [ 38.122363] vfs_write+0xa4/0x1a8 [ 38.122366] ksys_write+0x64/0xe8 [ 38.122368] __arm64_sys_write+0x18/0x20 [ 38.122374] el0_svc_common+0x6c/0x178 [ 38.122377] el0_svc_compat_handler+0x1c/0x28 [ 38.122381] el0_svc_compat+0x8/0x18 [ 38.122383] ---[ end trace 24145b7d8545345b ]--- [ 38.491552] Disabling non-boot CPUs ... Let's add a flag for duplicating the state of drm_private_obj and set the flag from msm/mdp5 driver, so that the problem can be fixed while other drivers using drm_private_obj stay unaffected. Signed-off-by: Shawn Guo --- Changes for v2: - Add a flag to duplicate the state of drm_private_obj conditionally, so that other drivers using drm_private_obj stay unaffected. drivers/gpu/drm/drm_atomic_helper.c | 22 ++ drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 7 +++ include/drm/drm_atomic.h | 11 +++ 3 files changed, 40 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 85d163f16801..4bf041730b9e 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -3140,6 +3140,7 @@ drm_atomic_helper_duplicate_state(struct drm_device *dev, struct drm_atomic_state *state; struct drm_connector *conn; struct drm_connector_list_iter conn_iter; + struct drm_private_obj *priv_obj; struct drm_plane *plane; struct drm_crtc *crtc; int err = 0; @@ -3184,6 +3185,19 @@ drm_atomic_helper_duplicate_state(struct drm_device *dev, } drm_connector_list_iter_end(_iter); + drm_for_each_privobj(priv_obj, dev) { + struct drm_private_state *priv_state; + + if (!priv_obj->needs_duplicate_state) + continue; + + priv
[PATCH] drm/atomic_helper: duplicate state for drm_private_obj
From: Shawn Guo The msm/mdp5 driver uses drm_private_obj as its global atomic state, which keeps the assignment of hwpipe to plane. With drm_private_obj missing from duplicate state call, mdp5 suspend works with no problem only for the very first time. Any subsequent suspend will hit the following warning, because hwpipe assignment doesn't get duplicated for suspend state. Adding drm_private_obj handling for duplicate state call fixes the problem. $ echo mem > /sys/power/state [ 38.44] PM: suspend entry (deep) [ 38.85] PM: Syncing filesystems ... done. [ 38.114630] Freezing user space processes ... (elapsed 0.001 seconds) done. [ 38.115912] OOM killer disabled. [ 38.115914] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. [ 38.122170] [ cut here ] [ 38.122212] WARNING: CPU: 0 PID: 1747 at drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c:145 mdp5_pipe_release+0x90/0xc0 [ 38.122215] Modules linked in: [ 38.12] CPU: 0 PID: 1747 Comm: sh Not tainted 4.19.107-00515-g9d5e4d7a33ed-dirty #323 [ 38.14] Hardware name: Square, Inc. T2 Devkit (DT) [ 38.18] pstate: 4005 (nZcv daif -PAN -UAO) [ 38.122230] pc : mdp5_pipe_release+0x90/0xc0 [ 38.122233] lr : mdp5_pipe_release+0x90/0xc0 [ 38.122235] sp : 0d13b7f0 [ 38.122236] x29: 0d13b7f0 x28: [ 38.122240] x27: 0002 x26: 800079adce00 [ 38.122243] x25: 800079405200 x24: [ 38.122246] x23: 80007a78cc08 x22: 80007b1cc018 [ 38.122249] x21: 80007b1cc000 x20: 80007b317080 [ 38.122252] x19: 80007a78ce80 x18: 0002 [ 38.122255] x17: x16: [ 38.122258] x15: fff0 x14: 08c3fb48 [ 38.122261] x13: 08cdac4a x12: 08c3f000 [ 38.122264] x11: x10: 08cda000 [ 38.122267] x9 : x8 : 08ce4a40 [ 38.122269] x7 : x6 : 39ea41a9 [ 38.122272] x5 : x4 : [ 38.122275] x3 : x2 : c7580c109cae4500 [ 38.122278] x1 : x0 : 0024 [ 38.122281] Call trace: [ 38.122285] mdp5_pipe_release+0x90/0xc0 [ 38.122288] mdp5_plane_atomic_check+0x2c0/0x448 [ 38.122294] drm_atomic_helper_check_planes+0xd0/0x208 [ 38.122298] drm_atomic_helper_check+0x38/0xa8 [ 38.122302] drm_atomic_check_only+0x3e8/0x630 [ 38.122305] drm_atomic_commit+0x18/0x58 [ 38.122309] __drm_atomic_helper_disable_all.isra.12+0x15c/0x1a8 [ 38.122312] drm_atomic_helper_suspend+0x80/0xf0 [ 38.122316] msm_pm_suspend+0x4c/0x70 [ 38.122320] dpm_run_callback.isra.6+0x20/0x68 [ 38.122323] __device_suspend+0x110/0x308 [ 38.122326] dpm_suspend+0x100/0x1f0 [ 38.122329] dpm_suspend_start+0x64/0x70 [ 38.122334] suspend_devices_and_enter+0x110/0x500 [ 38.122336] pm_suspend+0x268/0x2c0 [ 38.122339] state_store+0x88/0x110 [ 38.122345] kobj_attr_store+0x14/0x28 [ 38.122352] sysfs_kf_write+0x3c/0x50 [ 38.122355] kernfs_fop_write+0x118/0x1e0 [ 38.122360] __vfs_write+0x30/0x168 [ 38.122363] vfs_write+0xa4/0x1a8 [ 38.122366] ksys_write+0x64/0xe8 [ 38.122368] __arm64_sys_write+0x18/0x20 [ 38.122374] el0_svc_common+0x6c/0x178 [ 38.122377] el0_svc_compat_handler+0x1c/0x28 [ 38.122381] el0_svc_compat+0x8/0x18 [ 38.122383] ---[ end trace 24145b7d8545345b ]--- [ 38.491552] Disabling non-boot CPUs ... Signed-off-by: Shawn Guo --- drivers/gpu/drm/drm_atomic_helper.c | 16 1 file changed, 16 insertions(+) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 85d163f16801..024985a92156 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -3140,6 +3140,7 @@ drm_atomic_helper_duplicate_state(struct drm_device *dev, struct drm_atomic_state *state; struct drm_connector *conn; struct drm_connector_list_iter conn_iter; + struct drm_private_obj *priv_obj; struct drm_plane *plane; struct drm_crtc *crtc; int err = 0; @@ -3184,6 +3185,16 @@ drm_atomic_helper_duplicate_state(struct drm_device *dev, } drm_connector_list_iter_end(_iter); + drm_for_each_privobj(priv_obj, dev) { + struct drm_private_state *priv_state; + + priv_state = drm_atomic_get_private_obj_state(state, priv_obj); + if (IS_ERR(priv_state)) { + err = PTR_ERR(priv_state); + goto free; + } + } + /* clear the acquire context so that it isn't accidentally reused */ state->acquire_ctx = NULL; @@ -3278,6 +3289,8 @@ int drm_atomic_helper_commit_duplicated_state(struct drm_atomic_state *state, struct drm_connector_state *new_conn_state; struct drm_crtc *crtc; struct drm_crtc
Re: [PATCH v1 1/3] drm/msm: Attach the IOMMU device during initialization
On Fri, May 22, 2020 at 04:03:14PM -0600, Jordan Crouse wrote: > diff --git a/drivers/gpu/drm/msm/msm_gpummu.c > b/drivers/gpu/drm/msm/msm_gpummu.c > index 34980d8eb7ad..0ad0f848560a 100644 > --- a/drivers/gpu/drm/msm/msm_gpummu.c > +++ b/drivers/gpu/drm/msm/msm_gpummu.c > @@ -21,11 +21,6 @@ struct msm_gpummu { > #define GPUMMU_PAGE_SIZE SZ_4K > #define TABLE_SIZE (sizeof(uint32_t) * GPUMMU_VA_RANGE / GPUMMU_PAGE_SIZE) > > -static int msm_gpummu_attach(struct msm_mmu *mmu) > -{ > - return 0; > -} > - > static void msm_gpummu_detach(struct msm_mmu *mmu) > { > } > @@ -85,7 +80,6 @@ static void msm_gpummu_destroy(struct msm_mmu *mmu) > } > > static const struct msm_mmu_funcs funcs = { > - .attach = msm_gpummu_attach, > .detach = msm_gpummu_detach, > .map = msm_gpummu_map, > .unmap = msm_gpummu_unmap, > diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c > index ad58cfe5998e..e35dab5792cf 100644 > --- a/drivers/gpu/drm/msm/msm_iommu.c > +++ b/drivers/gpu/drm/msm/msm_iommu.c > @@ -66,7 +66,6 @@ static void msm_iommu_destroy(struct msm_mmu *mmu) > } > > static const struct msm_mmu_funcs funcs = { > - .attach = msm_iommu_attach, It causes an unused function warning as below. drivers/gpu/drm/msm/msm_iommu.c:26:12: warning: ‘msm_iommu_attach’ defined but not used [-Wunused-function] static int msm_iommu_attach(struct msm_mmu *mmu) ^~~~ Not sure if you will use it again in future patches though. Shawn > .detach = msm_iommu_detach, > .map = msm_iommu_map, > .unmap = msm_iommu_unmap, > @@ -76,6 +75,7 @@ static const struct msm_mmu_funcs funcs = { > struct msm_mmu *msm_iommu_new(struct device *dev, struct iommu_domain > *domain) > { > struct msm_iommu *iommu; > + int ret; > > iommu = kzalloc(sizeof(*iommu), GFP_KERNEL); > if (!iommu) > @@ -85,5 +85,11 @@ struct msm_mmu *msm_iommu_new(struct device *dev, struct > iommu_domain *domain) > msm_mmu_init(>base, dev, ); > iommu_set_fault_handler(domain, msm_fault_handler, iommu); > > + ret = iommu_attach_device(iommu->domain, dev); > + if (ret) { > + kfree(iommu); > + return ERR_PTR(ret); > + } > + > return >base; > } > diff --git a/drivers/gpu/drm/msm/msm_mmu.h b/drivers/gpu/drm/msm/msm_mmu.h > index 67a623f14319..bae9e8e67ec1 100644 > --- a/drivers/gpu/drm/msm/msm_mmu.h > +++ b/drivers/gpu/drm/msm/msm_mmu.h > @@ -10,7 +10,6 @@ > #include > > struct msm_mmu_funcs { > - int (*attach)(struct msm_mmu *mmu); > void (*detach)(struct msm_mmu *mmu); > int (*map)(struct msm_mmu *mmu, uint64_t iova, struct sg_table *sgt, > unsigned len, int prot); > -- > 2.17.1 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v1 0/3] drm/msm: Cleanups ahead of per-instance pagetables
On Fri, May 22, 2020 at 04:03:13PM -0600, Jordan Crouse wrote: > These are three cleanup and reorganization patches that were originally > part of one of my many per-instance pagetable stacks [1] [2] but make life > better in general and can stand on their own. Send them now to get them > out of my other stack and make that processs ever so easier. > > [1] https://patchwork.kernel.org/patch/11355255/ > [2] https://patchwork.kernel.org/patch/11355259/ > > Jordan Crouse (3): > drm/msm: Attach the IOMMU device during initialization > drm/msm: Refactor address space initialization > drm/msm: Update the MMU helper function APIs FWIW, on A405 with glmark2: Tested-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 2/4] ARM: dts: ims53: Group port definitions for the dvi-converter
On Thu, May 14, 2020 at 04:36:10PM +0200, Ricardo Cañuelo wrote: > Group the port definitions of the dvi-converter in a 'ports' node to > make it compliant with the ti,tfp410 binding. > > Signed-off-by: Ricardo Cañuelo s/ims53/imx53-cx9020 in subject. I fixed it up and applied the patch. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/zte: remove unneeded semicolon
On Mon, May 04, 2020 at 07:32:30PM +0800, Jason Yan wrote: > Fix the following coccicheck warning: > > drivers/gpu/drm/zte/zx_vga.c:158:2-3: Unneeded semicolon > drivers/gpu/drm/zte/zx_vga.c:171:2-3: Unneeded semicolon > drivers/gpu/drm/zte/zx_vga.c:179:2-3: Unneeded semicolon > > Signed-off-by: Jason Yan Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [Freedreno] [v2 PATCH] drivers: gpu: drm: Add MDP5 configuration for MSM8x36.
On Sat, May 09, 2020 at 12:48:10PM +0200, Konrad Dybcio wrote: > This change adds MDP5 configuration for MSM8x36-based SoCs, > like MSM8936, 8939 and their APQ variants. > The configuration is based on MSM8916's, but adds some notable > features, like ad and pp blocks, along with some register > changes. > > changes since v1: > - add an ad block > - add a second mixer @ 0x47000 > - adjust .max_width > - write a more descriptive commit message > > Signed-off-by: Konrad Dybcio Subject prefix "drm/msm/mdp5: " seems to be more idiomatic as per git log of file/folder changed here. Other than that: Reviewed-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 2/2] drm/msm/a4xx: add a405_registers for a405 device
A405 device has a different set of registers than a4xx_registers. It has no VMIDMT or XPU registers, and VBIF registers are different. Let's add a405_registers for a405 device. As adreno_is_a405() works only after adreno_gpu_init() gets called, the assignments get moved down after adreno_gpu_init(). Signed-off-by: Shawn Guo --- drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 53 +-- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c index 70de59751188..9e244982974e 100644 --- a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c @@ -445,6 +445,52 @@ static const unsigned int a4xx_registers[] = { ~0 /* sentinel */ }; +static const unsigned int a405_registers[] = { + /* RBBM */ + 0x, 0x0002, 0x0004, 0x0021, 0x0023, 0x0024, 0x0026, 0x0026, + 0x0028, 0x002B, 0x002E, 0x0034, 0x0037, 0x0044, 0x0047, 0x0066, + 0x0068, 0x0095, 0x009C, 0x0170, 0x0174, 0x01AF, + /* CP */ + 0x0200, 0x0233, 0x0240, 0x0250, 0x04C0, 0x04DD, 0x0500, 0x050B, + 0x0578, 0x058F, + /* VSC */ + 0x0C00, 0x0C03, 0x0C08, 0x0C41, 0x0C50, 0x0C51, + /* GRAS */ + 0x0C80, 0x0C81, 0x0C88, 0x0C8F, + /* RB */ + 0x0CC0, 0x0CC0, 0x0CC4, 0x0CD2, + /* PC */ + 0x0D00, 0x0D0C, 0x0D10, 0x0D17, 0x0D20, 0x0D23, + /* VFD */ + 0x0E40, 0x0E4A, + /* VPC */ + 0x0E60, 0x0E61, 0x0E63, 0x0E68, + /* UCHE */ + 0x0E80, 0x0E84, 0x0E88, 0x0E95, + /* GRAS CTX 0 */ + 0x2000, 0x2004, 0x2008, 0x2067, 0x2070, 0x2078, 0x207B, 0x216E, + /* PC CTX 0 */ + 0x21C0, 0x21C6, 0x21D0, 0x21D0, 0x21D9, 0x21D9, 0x21E5, 0x21E7, + /* VFD CTX 0 */ + 0x2200, 0x2204, 0x2208, 0x22A9, + /* GRAS CTX 1 */ + 0x2400, 0x2404, 0x2408, 0x2467, 0x2470, 0x2478, 0x247B, 0x256E, + /* PC CTX 1 */ + 0x25C0, 0x25C6, 0x25D0, 0x25D0, 0x25D9, 0x25D9, 0x25E5, 0x25E7, + /* VFD CTX 1 */ + 0x2600, 0x2604, 0x2608, 0x26A9, + /* VBIF version 0x2005*/ + 0x3000, 0x3007, 0x302C, 0x302C, 0x3030, 0x3030, 0x3034, 0x3036, + 0x3038, 0x3038, 0x303C, 0x303D, 0x3040, 0x3040, 0x3049, 0x3049, + 0x3058, 0x3058, 0x305B, 0x3061, 0x3064, 0x3068, 0x306C, 0x306D, + 0x3080, 0x3088, 0x308B, 0x308C, 0x3090, 0x3094, 0x3098, 0x3098, + 0x309C, 0x309C, 0x30C0, 0x30C0, 0x30C8, 0x30C8, 0x30D0, 0x30D0, + 0x30D8, 0x30D8, 0x30E0, 0x30E0, 0x3100, 0x3100, 0x3108, 0x3108, + 0x3110, 0x3110, 0x3118, 0x3118, 0x3120, 0x3120, 0x3124, 0x3125, + 0x3129, 0x3129, 0x340C, 0x340C, 0x3410, 0x3410, + ~0 /* sentinel */ +}; + static struct msm_gpu_state *a4xx_gpu_state_get(struct msm_gpu *gpu) { struct msm_gpu_state *state = kzalloc(sizeof(*state), GFP_KERNEL); @@ -568,13 +614,14 @@ struct msm_gpu *a4xx_gpu_init(struct drm_device *dev) gpu->perfcntrs = NULL; gpu->num_perfcntrs = 0; - adreno_gpu->registers = a4xx_registers; - adreno_gpu->reg_offsets = a4xx_register_offsets; - ret = adreno_gpu_init(dev, pdev, adreno_gpu, , 1); if (ret) goto fail; + adreno_gpu->registers = adreno_is_a405(adreno_gpu) ? a405_registers : +a4xx_registers; + adreno_gpu->reg_offsets = a4xx_register_offsets; + /* if needed, allocate gmem: */ if (adreno_is_a4xx(adreno_gpu)) { ret = adreno_gpu_ocmem_init(dev->dev, adreno_gpu, -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
[PATCH 1/2] drm/msm/a4xx: add adreno a405 support
It adds support for adreno a405 found on MSM8939. The adreno_is_a430() check in adreno_submit() needs an extension to cover a405. The downstream driver suggests it should cover the whole a4xx generation. That's why it gets changed to adreno_is_a4xx(), while a420 is not tested though. Signed-off-by: Shawn Guo --- drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 29 +- drivers/gpu/drm/msm/adreno/adreno_device.c | 11 drivers/gpu/drm/msm/adreno/adreno_gpu.c| 2 +- drivers/gpu/drm/msm/adreno/adreno_gpu.h| 5 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c index 253d8d85daad..70de59751188 100644 --- a/drivers/gpu/drm/msm/adreno/a4xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a4xx_gpu.c @@ -66,19 +66,22 @@ static void a4xx_enable_hwcg(struct msm_gpu *gpu) } } - for (i = 0; i < 4; i++) { - gpu_write(gpu, REG_A4XX_RBBM_CLOCK_CTL_MARB_CCU(i), - 0x0922); - } + /* No CCU for A405 */ + if (!adreno_is_a405(adreno_gpu)) { + for (i = 0; i < 4; i++) { + gpu_write(gpu, REG_A4XX_RBBM_CLOCK_CTL_MARB_CCU(i), + 0x0922); + } - for (i = 0; i < 4; i++) { - gpu_write(gpu, REG_A4XX_RBBM_CLOCK_HYST_RB_MARB_CCU(i), - 0x); - } + for (i = 0; i < 4; i++) { + gpu_write(gpu, REG_A4XX_RBBM_CLOCK_HYST_RB_MARB_CCU(i), + 0x); + } - for (i = 0; i < 4; i++) { - gpu_write(gpu, REG_A4XX_RBBM_CLOCK_DELAY_RB_MARB_CCU_L1(i), - 0x0001); + for (i = 0; i < 4; i++) { + gpu_write(gpu, REG_A4XX_RBBM_CLOCK_DELAY_RB_MARB_CCU_L1(i), + 0x0001); + } } gpu_write(gpu, REG_A4XX_RBBM_CLOCK_MODE_GPC, 0x0222); @@ -137,7 +140,9 @@ static int a4xx_hw_init(struct msm_gpu *gpu) uint32_t *ptr, len; int i, ret; - if (adreno_is_a420(adreno_gpu)) { + if (adreno_is_a405(adreno_gpu)) { + gpu_write(gpu, REG_A4XX_VBIF_ROUND_ROBIN_QOS_ARB, 0x0003); + } else if (adreno_is_a420(adreno_gpu)) { gpu_write(gpu, REG_A4XX_VBIF_ABIT_SORT, 0x0001001F); gpu_write(gpu, REG_A4XX_VBIF_ABIT_SORT_CONF, 0x00A4); gpu_write(gpu, REG_A4XX_VBIF_GATE_OFF_WRREQ_EN, 0x0001); diff --git a/drivers/gpu/drm/msm/adreno/adreno_device.c b/drivers/gpu/drm/msm/adreno/adreno_device.c index cb3a6e597d76..b69757383965 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_device.c +++ b/drivers/gpu/drm/msm/adreno/adreno_device.c @@ -92,6 +92,17 @@ static const struct adreno_info gpulist[] = { .gmem = SZ_1M, .inactive_period = DRM_MSM_INACTIVE_PERIOD, .init = a3xx_gpu_init, + }, { + .rev = ADRENO_REV(4, 0, 5, ANY_ID), + .revn = 405, + .name = "A405", + .fw = { + [ADRENO_FW_PM4] = "a420_pm4.fw", + [ADRENO_FW_PFP] = "a420_pfp.fw", + }, + .gmem = SZ_256K, + .inactive_period = DRM_MSM_INACTIVE_PERIOD, + .init = a4xx_gpu_init, }, { .rev = ADRENO_REV(4, 2, 0, ANY_ID), .revn = 420, diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index 1d5c43c22269..3ddbf507941c 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -459,7 +459,7 @@ void adreno_submit(struct msm_gpu *gpu, struct msm_gem_submit *submit, break; /* fall-thru */ case MSM_SUBMIT_CMD_BUF: - OUT_PKT3(ring, adreno_is_a430(adreno_gpu) ? + OUT_PKT3(ring, adreno_is_a4xx(adreno_gpu) ? CP_INDIRECT_BUFFER_PFE : CP_INDIRECT_BUFFER_PFD, 2); OUT_RING(ring, lower_32_bits(submit->cmd[i].iova)); OUT_RING(ring, submit->cmd[i].size); diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.h b/drivers/gpu/drm/msm/adreno/adreno_gpu.h index 9ff4e550e7bd..35f744834ea9 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.h +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.h @@ -202,6 +202,11 @@ static inline bool adreno_is_a4xx(struct adreno_gpu *gpu) return (gpu->revn >= 400) && (gpu->revn < 500); } +static inline int adreno_is_a405(struct adreno_gpu *gpu) +{ + return gpu->revn == 405; +} + static inline
[PATCH 0/2] Add adreno a405 GPU support
The series adds support for adreno a405 found on MSM8936/MSM8939 and APQ variants. Shawn Guo (2): drm/msm/a4xx: add adreno a405 support drm/msm/a4xx: add a405_registers for a405 device drivers/gpu/drm/msm/adreno/a4xx_gpu.c | 82 ++ drivers/gpu/drm/msm/adreno/adreno_device.c | 11 +++ drivers/gpu/drm/msm/adreno/adreno_gpu.c| 2 +- drivers/gpu/drm/msm/adreno/adreno_gpu.h| 5 ++ 4 files changed, 84 insertions(+), 16 deletions(-) -- 2.17.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drivers: gpu: drm: Add MDP5 configuration for MSM8x36 and its derivatives, such as MSM8939.
Hi Konrad, On Fri, May 01, 2020 at 10:51:59PM +0200, Konrad Dybcio wrote: > Signed-off-by: Konrad Dybcio Please write up some commit log. Since this is based on msm8x16_config, maybe document the differences from it in commit log? > --- > drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c | 70 > 1 file changed, 70 insertions(+) > > diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c > b/drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c > index e3c4c250238b7..1c7de7d6870cf 100644 > --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c > +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c > @@ -342,6 +342,75 @@ static const struct mdp5_cfg_hw msm8x16_config = { > .max_clk = 32000, > }; > > +static const struct mdp5_cfg_hw msm8x36_config = { > + .name = "msm8x36", > + .mdp = { > + .count = 1, > + .base = { 0x0 }, > + .caps = MDP_CAP_SMP | > + 0, > + }, > + .smp = { > + .mmb_count = 8, > + .mmb_size = 10240, > + .clients = { > + [SSPP_VIG0] = 1, [SSPP_DMA0] = 4, > + [SSPP_RGB0] = 7, [SSPP_RGB1] = 8, > + }, > + }, > + .ctl = { > + .count = 3, > + .base = { 0x01000, 0x01200, 0x01400 }, > + .flush_hw_mask = 0x4003, > + }, > + .pipe_vig = { > + .count = 1, > + .base = { 0x04000 }, > + .caps = MDP_PIPE_CAP_HFLIP | MDP_PIPE_CAP_VFLIP | > + MDP_PIPE_CAP_SCALE | MDP_PIPE_CAP_CSC | > + MDP_PIPE_CAP_DECIMATION, > + }, > + .pipe_rgb = { > + .count = 2, > + .base = { 0x14000, 0x16000 }, > + .caps = MDP_PIPE_CAP_HFLIP | MDP_PIPE_CAP_VFLIP | > + MDP_PIPE_CAP_DECIMATION, > + }, > + .pipe_dma = { > + .count = 1, > + .base = { 0x24000 }, > + .caps = MDP_PIPE_CAP_HFLIP | MDP_PIPE_CAP_VFLIP, > + }, > + .lm = { > + .count = 1, >From what I read on downstream 3.10 kernel, there should be two mixers just like msm8x16. qcom,mdss-mixer-intf-off = <0x00045000>; qcom,mdss-mixer-wb-off = <0x00048000>; > + .base = { 0x44000 }, > + .instances = { > + { .id = 0, .pp = 0, .dspp = 0, > + .caps = MDP_LM_CAP_DISPLAY, }, > + }, > + .nb_stages = 8, > + .max_width = 2048, It should probably be 2560 from downstream below. qcom,max-mixer-width = <2560>; > + .max_height = 0x, > + }, > + .pp = { > + .count = 1, > + .base = { 0x7 }, > + }, > + For consistency, we may want to drop this newline. And it looks like there is a .ad block on msm8x36. qcom,mdss-ad-off = <0x0079000>; > + .dspp = { > + .count = 1, > + .base = { 0x54000 }, > + }, > + .intf = { > + .base = { 0x0, 0x6a800, 0x6b000 }, > + .connect = { > + [0] = INTF_DISABLED, > + [1] = INTF_DSI, > + [2] = INTF_DSI, > + }, > + }, > + .max_clk = 36667, > +}; Need a newline here. Shawn > static const struct mdp5_cfg_hw msm8x94_config = { > .name = "msm8x94", > .mdp = { > @@ -840,6 +909,7 @@ static const struct mdp5_cfg_handler cfg_handlers_v1[] = { > { .revision = 2, .config = { .hw = _config } }, > { .revision = 3, .config = { .hw = _config } }, > { .revision = 6, .config = { .hw = _config } }, > + { .revision = 8, .config = { .hw = _config } }, > { .revision = 9, .config = { .hw = _config } }, > { .revision = 7, .config = { .hw = _config } }, > { .revision = 11, .config = { .hw = _config } }, > -- > 2.26.1 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] backlight: l4f00242t03: Convert to GPIO descriptors
On Wed, Apr 15, 2020 at 02:14:49PM +0200, Linus Walleij wrote: > This converts the l4f00242t03 backlight driver to use GPIO > descriptors and switches the two Freescale i.MX boards over > to passing descriptors instead of global GPIO numbers. > > We use the typical names "enable" and "reset" as found in > the device tree bindings for panel GPIOs. > > This saves a lot of code in the driver and makes it possible > to get rid of the platform data header altogether. > > Cc: Sascha Hauer > Cc: Anson Huang > Cc: Shawn Guo > Cc: Pengutronix Kernel Team > Cc: Fabio Estevam > Cc: NXP Linux Team > Cc: Alberto Panizzo > Signed-off-by: Linus Walleij > --- > i.MX folks: please test if you can or at least ACK so Lee > knows if this is OK for you. Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 07/11] dts: arm64: layerscape: add dma-ranges property to qoric-mc node
On Mon, Oct 14, 2019 at 12:00:25PM +0200, Nicolas Saenz Julienne wrote: > On Mon, 2019-10-14 at 16:28 +0800, Shawn Guo wrote: > > On Tue, Sep 24, 2019 at 08:12:38PM +0200, Nicolas Saenz Julienne wrote: > > > qoriq-mc's dpmacs DMA configuration is inherited from their parent node, > > > which acts a bus in this regard. So far it maked all devices as > > > dma-coherent but no dma-ranges recommendation is made. > > > > > > The truth is that the underlying interconnect has DMA constraints, so > > > add an empty dma-ranges in qoriq-mc's node in order for DT's DMA > > > configuration code to get the DMA constraints from it. > > > > > > Signed-off-by: Nicolas Saenz Julienne > > > > Updated subject prefix as 'arm64: dts: ...', and applied the patch. > > Hi Shawn, > these two patches are no longer needed. This series has been superseded by > this > patch[1] 951d48855d ('of: Make of_dma_get_range() work on bus nodes', > available > in linux-next) which fixed the issue directly in OF code. > > Sorry for the noise. Okay, thanks for letting me know. Dropped them. Shawn
Re: [PATCH 08/11] dts: arm64: layerscape: add dma-ranges property to pcie nodes
On Tue, Sep 24, 2019 at 08:12:39PM +0200, Nicolas Saenz Julienne wrote: > The bus behind the board's PCIe core has DMA addressing limitations. Add > an empty 'dma-ranges' property on all PCIe bus descriptions to inform > the OF core that a translation is due further down the line. > > Signed-off-by: Nicolas Saenz Julienne Applied, thanks.
Re: [PATCH 07/11] dts: arm64: layerscape: add dma-ranges property to qoric-mc node
On Tue, Sep 24, 2019 at 08:12:38PM +0200, Nicolas Saenz Julienne wrote: > qoriq-mc's dpmacs DMA configuration is inherited from their parent node, > which acts a bus in this regard. So far it maked all devices as > dma-coherent but no dma-ranges recommendation is made. > > The truth is that the underlying interconnect has DMA constraints, so > add an empty dma-ranges in qoriq-mc's node in order for DT's DMA > configuration code to get the DMA constraints from it. > > Signed-off-by: Nicolas Saenz Julienne Updated subject prefix as 'arm64: dts: ...', and applied the patch. Shawn > --- > > arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 1 + > arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 1 + > arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 1 + > 3 files changed, 3 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > index c676d0771762..f0d0b6145b72 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > @@ -698,6 +698,7 @@ > <0x 0x0834 0 0x4>; /* MC control > reg */ > msi-parent = <>; > iommu-map = <0 0 0>; /* This is fixed-up by > u-boot */ > + dma-ranges; > dma-coherent; > #address-cells = <3>; > #size-cells = <1>; > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi > b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi > index 7a0be8eaa84a..fd6036b7865c 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi > +++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi > @@ -340,6 +340,7 @@ > <0x 0x0834 0 0x4>; /* MC control > reg */ > msi-parent = <>; > iommu-map = <0 0 0>; /* This is fixed-up by > u-boot */ > + dma-ranges; > dma-coherent; > #address-cells = <3>; > #size-cells = <1>; > diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi > b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi > index 408e0ecdce6a..3735bb139cb2 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi > +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi > @@ -868,6 +868,7 @@ > msi-parent = <>; > /* iommu-map property is fixed up by u-boot */ > iommu-map = <0 0 0>; > + dma-ranges; > dma-coherent; > #address-cells = <3>; > #size-cells = <1>; > -- > 2.23.0 >
Re: [PATCH v2 1/2] dts: arm64: imx8mq: Enable gpu passive throttling
On Wed, Sep 11, 2019 at 07:40:35PM -0700, Guido Günther wrote: > Temperature and hysteresis were picked after the CPU. > > Signed-off-by: Guido Günther The patch prefix should be 'arm64: dts: ...' I fixed it up and applied the patch. Shawn > --- > arch/arm64/boot/dts/freescale/imx8mq.dtsi | 15 +++ > 1 file changed, 15 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8mq.dtsi > b/arch/arm64/boot/dts/freescale/imx8mq.dtsi > index 4fdd60f2c51e..5023a0e5068d 100644 > --- a/arch/arm64/boot/dts/freescale/imx8mq.dtsi > +++ b/arch/arm64/boot/dts/freescale/imx8mq.dtsi > @@ -235,12 +235,26 @@ > thermal-sensors = < 1>; > > trips { > + gpu_alert: gpu-alert { > + temperature = <8>; > + hysteresis = <2000>; > + type = "passive"; > + }; > + > gpu-crit { > temperature = <9>; > hysteresis = <2000>; > type = "critical"; > }; > }; > + > + cooling-maps { > + map0 { > + trip = <_alert>; > + cooling-device = > + < THERMAL_NO_LIMIT > THERMAL_NO_LIMIT>; > + }; > + }; > }; > > vpu-thermal { > @@ -912,6 +926,7 @@ >< IMX8MQ_CLK_GPU_AXI>, >< IMX8MQ_CLK_GPU_AHB>; > clock-names = "core", "shader", "bus", "reg"; > + #cooling-cells = <2>; > assigned-clocks = < IMX8MQ_CLK_GPU_CORE_SRC>, > < IMX8MQ_CLK_GPU_SHADER_SRC>, > < IMX8MQ_CLK_GPU_AXI>, > -- > 2.23.0.rc1 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 2/2] dt-bindings: etnaviv: Add #cooling-cells
On Mon, Sep 16, 2019 at 04:32:55PM +0200, Lucas Stach wrote: > On Mi, 2019-09-11 at 19:40 -0700, Guido Günther wrote: > > Add #cooling-cells for when the gpu acts as a cooling device. > > > > Signed-off-by: Guido Günther > > Reviewed-by: Lucas Stach Lucas, I assume you will pick it up. Shawn > > > --- > > .../devicetree/bindings/display/etnaviv/etnaviv-drm.txt | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git > > a/Documentation/devicetree/bindings/display/etnaviv/etnaviv-drm.txt > > b/Documentation/devicetree/bindings/display/etnaviv/etnaviv-drm.txt > > index 8def11b16a24..640592e8ab2e 100644 > > --- a/Documentation/devicetree/bindings/display/etnaviv/etnaviv-drm.txt > > +++ b/Documentation/devicetree/bindings/display/etnaviv/etnaviv-drm.txt > > @@ -21,6 +21,7 @@ Required properties: > > Optional properties: > > - power-domains: a power domain consumer specifier according to > >Documentation/devicetree/bindings/power/power_domain.txt > > +- #cooling-cells: : If used as a cooling device, must be <2> > > > > example: > > >
Re: [PATCH v4 13/23] drm: zte: Provide ddc symlink in vga connector sysfs directory
On Thu, Jul 11, 2019 at 01:26:40PM +0200, Andrzej Pietrasiewicz wrote: > Use the ddc pointer provided by the generic connector. > > Signed-off-by: Andrzej Pietrasiewicz Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v4 12/23] drm: zte: Provide ddc symlink in hdmi connector sysfs directory
On Thu, Jul 11, 2019 at 01:26:39PM +0200, Andrzej Pietrasiewicz wrote: > Use the ddc pointer provided by the generic connector. > > Signed-off-by: Andrzej Pietrasiewicz Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v1 10/33] drm/zte: drop use of drmP.h
On Sun, Jun 30, 2019 at 08:18:59AM +0200, Sam Ravnborg wrote: > Drop use of the deprecated drmP.h header file. > Fix fallout. > > Signed-off-by: Sam Ravnborg > Cc: Shawn Guo > Cc: David Airlie > Cc: Daniel Vetter Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 39/59] drm/zte: Drop drm_gem_prime_export/import
On Fri, Jun 14, 2019 at 10:35:55PM +0200, Daniel Vetter wrote: > They're the default. > > Aside: Would be really nice to switch the others over to > drm_gem_object_funcs. > > Signed-off-by: Daniel Vetter > Cc: Shawn Guo Acked-by: Shawn Guo > --- > drivers/gpu/drm/zte/zx_drm_drv.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c > b/drivers/gpu/drm/zte/zx_drm_drv.c > index 060ad5266bc7..ef019cad7e81 100644 > --- a/drivers/gpu/drm/zte/zx_drm_drv.c > +++ b/drivers/gpu/drm/zte/zx_drm_drv.c > @@ -44,8 +44,6 @@ static struct drm_driver zx_drm_driver = { > .dumb_create = drm_gem_cma_dumb_create, > .prime_handle_to_fd = drm_gem_prime_handle_to_fd, > .prime_fd_to_handle = drm_gem_prime_fd_to_handle, > - .gem_prime_export = drm_gem_prime_export, > - .gem_prime_import = drm_gem_prime_import, > .gem_prime_get_sg_table = drm_gem_cma_prime_get_sg_table, > .gem_prime_import_sg_table = drm_gem_cma_prime_import_sg_table, > .gem_prime_vmap = drm_gem_cma_prime_vmap, > -- > 2.20.1 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [EXT] Re: [PATCH 0/2] drm: imx: Add NWL MIPI DSI host controller support
Hi Laurentiu, On Tue, May 28, 2019 at 07:03:54AM +, Laurentiu Palcu wrote: > Hi Shawn, Lucas, > > On Tue, May 28, 2019 at 09:38:02AM +0800, Shawn Guo wrote: > > Caution: EXT Email > > > > Hi Lucas, > > > > On Mon, May 27, 2019 at 03:36:53PM +0200, Lucas Stach wrote: > > > We have been looking at how to support DCSS in mainline for a while, > > > but most of the actual work got pushed behind in schedule due to other > > > priorities. > > > > I have some time to contribute. Would you suggest how I should help > > here? > > > > 1. You guys already have something close to completion and do not need > >more hands. > > 2. You guys already have some preliminary code and can use help from > >others. > > 3. You guys haven't got anything to start with, but just some design > >principles that anyone who wants to work on it should consider. > > > > Which is the one that you want me to read? > > We're already working on clearing up the DCSS code and preparing it for > upstreaming. It should be done in the following weeks. Great! I will stay away from this then :) > The reason we've > been delaying this is because neither HDMI nor MIPI support was present > and, until these are upstream, testing DCSS would be quite impossible. Well, they have to be done one by one, and I guess DCSS should be the first one. I think it's fine to test DCSS with out-of-tree HDMI or MIPI driver which is not ready for submission yet. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 0/2] drm: imx: Add NWL MIPI DSI host controller support
Hi Lucas, On Mon, May 27, 2019 at 03:36:53PM +0200, Lucas Stach wrote: > We have been looking at how to support DCSS in mainline for a while, > but most of the actual work got pushed behind in schedule due to other > priorities. I have some time to contribute. Would you suggest how I should help here? 1. You guys already have something close to completion and do not need more hands. 2. You guys already have some preliminary code and can use help from others. 3. You guys haven't got anything to start with, but just some design principles that anyone who wants to work on it should consider. Which is the one that you want me to read? > One thing I can can say for certain is that DCSS should not be > integrated into imx-drm. It's a totally different hardware and > downstream clearly shows that it's not a good idea to cram it into imx- > drm. I haven't gone deeper into the vendor code, but from a brief looking I didn't see so many problems with integrating DCSS into imx-drm. It's not so unreasonable to take imx-drm as an imx-display-subsystem which can have multiple CRTCs. So can you please elaborate a bit on why it's really a bad idea? > Also the artificial split between hardware control in > drivers/gpu/imx/dcss and the DRM driver is just cargo-cult from the > IPU/imx-drm split. For the IPU we did it as the IPU has legs in both > DRM for the output parts and V4L2 for the input parts. As the DCSS has > no video input capabilities the driver could be simplified a lot by > moving it all into a single DRM driver. Agreed on this. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 0/2] drm: imx: Add NWL MIPI DSI host controller support
On Wed, May 08, 2019 at 07:18:27PM +0200, Guido Günther wrote: > If somebody is working on DCSS support it'd be cool to know since this I have some time slots here and will start looking at it, if no one else is already working on it. Shawn > driver is currently a component of imx-display-subsystem which will only > work out if dcss is handled like this as well. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] ARM: imx_v6_v7_defconfig: Enable CONFIG_PWM_IMX27
On Thu, Mar 21, 2019 at 10:49:03AM +0100, Uwe Kleine-König wrote: > Hello, > > On Wed, Mar 20, 2019 at 01:01:26PM +, Leonard Crestez wrote: > > Commit d80f8206905c ("pwm: imx: Split into two drivers") also adds a new > > CONFIG_PWM_IMX27 for the PWM block on recent IMX chips and we should > > enable it by default for imx. > > > > Restoring the PWM driver fixes an infinite probe loop in 5.1-rc1 on > > various imx6qdl-sabresd boards. > > > > Signed-off-by: Leonard Crestez > > Reported-by: Abel Vesa > > This is prior art: > > https://patchwork.ozlabs.org/project/linux-pwm/list/?series=85452=%2A=both > > unfortunately this didn't get an Ack by Shawn and Thierry (added to > recipients) marked it as "Not Applicable". > > Given that the driver change is in Linus Torvald's tree now (since > v5.1-rc1~38) it doesn't matter much via which tree this goes in and > Shawn's tree is the easier now. > > @Shawn: Would you please apply my patches? If you don't have them any > more, I can bounce them to you. See Yeah, just applied. Sorry for being sluggish. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v1 0/4] ARM: dts: ccimx6ulsbcpro: Add 10" AUO/Goodix LVDS panel accessory kit
On Thu, Oct 25, 2018 at 05:09:29PM +0200, Alex Gonzalez wrote: > Alex Gonzalez (4): > drm/panel: simple: Add AUO G101EVN010 panel support > ARM: dts: ccimx6ulsbcpro: Enable AUO G101EVN010 lcdif panel > ARM: imx_v6_v7_defconfig: Select TOUCHSCREEN_GOODIX > ARM: dts: ccimx6ulsbcpro: Add support for Goodix touch controller Applied #2 ~ #4, thanks. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 3/9] drm: replace "drm_dev_unref" function with "drm_dev_put"
On Thu, Nov 15, 2018 at 11:16:23PM +0100, Fernando Ramos wrote: > This patch unifies the naming of DRM functions for reference counting as > requested on Documentation/gpu/todo.rst > > Signed-off-by: Fernando Ramos > --- > drivers/gpu/drm/arc/arcpgu_drv.c | 4 ++-- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ++-- > drivers/gpu/drm/etnaviv/etnaviv_drv.c| 4 ++-- > drivers/gpu/drm/mxsfb/mxsfb_drv.c| 4 ++-- > drivers/gpu/drm/rcar-du/rcar_du_drv.c| 2 +- > drivers/gpu/drm/shmobile/shmob_drm_drv.c | 4 ++-- > drivers/gpu/drm/tve200/tve200_drv.c | 4 ++-- > drivers/gpu/drm/zte/zx_drm_drv.c | 4 ++-- We have already queued a patch [1] from Thomas Zimmermann for zx_drm_drv. Shawn [1] https://patchwork.kernel.org/patch/10615837/ ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 3/4] PCI: imx: Add multi-pd support
On Fri, Nov 16, 2018 at 12:25:41PM +, Lorenzo Pieralisi wrote: > On Mon, Oct 08, 2018 at 06:06:21PM +, Leonard Crestez wrote: > > On some chips the PCIE and PCIE_PHY blocks are in separate power domains > > which can be power-gated independently. The pci driver needs to handle > > this by keeping both domain active. > > > > This is intended for imx6sx where PCIE is in DISPLAY and PCIE_PHY in > > it's own domain. Defining the DISPLAY domain requires a way for pcie to > > keep it active or it will break when displays are off. > > > > The power-domains on imx6sx are meant to look like this: > > power-domains = <_disp>, <_pci>; > > power-domain-names = "pcie", "pcie_phy"; > > > > Signed-off-by: Leonard Crestez > > Reviewed-by: Ulf Hansson > > --- > > drivers/pci/controller/dwc/pci-imx6.c | 48 +++ > > 1 file changed, 48 insertions(+) > > I expect Shawn to pick the whole series up and therefore I am dropping > this series from the PCI tree. Lorenzo, I think the best approach is that you send patch #2 and #3 for 4.21 through PCI tree, and we will be able to apply patch #4 in 4.22 development cycle. Queuing patch #3 on IMX tree will stands a good chance for conflicts with other pci-imx6.c changes on PCI tree. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v1 0/4] ARM: dts: ccimx6ulsbcpro: Add 10" AUO/Goodix LVDS panel accessory kit
On Thu, Oct 25, 2018 at 05:09:29PM +0200, Alex Gonzalez wrote: > Alex Gonzalez (4): > drm/panel: simple: Add AUO G101EVN010 panel support > ARM: dts: ccimx6ulsbcpro: Enable AUO G101EVN010 lcdif panel > ARM: imx_v6_v7_defconfig: Select TOUCHSCREEN_GOODIX > ARM: dts: ccimx6ulsbcpro: Add support for Goodix touch controller It looks good to me. Ping me when the patch #1 gets accepted and I will apply the test then. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 4/4] ARM: dts: imx6sx: Add DISPLAY power domain support
On Wed, Oct 31, 2018 at 12:17:50PM +, Leonard Crestez wrote: > On 10/31/2018 8:12 AM, Shawn Guo wrote: > > On Mon, Oct 08, 2018 at 06:06:23PM +, Leonard Crestez wrote: > >> This was implemented in the driver but not actually defined and > >> referenced in dts. This makes it always on. > >> > >> From reference manual in section "10.4.1.4.1 Power Distribution": > >> > >> "Display domain - The DISPLAY domain contains GIS, CSI, PXP, LCDIF, > >> PCIe, DCIC, and LDB. It is supplied by internal regulator." > >> > >> The current pd_pcie is actually only for PCIE_PHY, the PCIE ip block is > >> actually inside the DISPLAY domain. Handle this by adding the pcie node > >> in both power domains. > >> > >> Signed-off-by: Leonard Crestez > > > > Applied, thanks. > > As mentioned in the cover letter this requires multi-PD support in > imx-pci to be implemented, specifically PATCH 3/4 of this series: > > https://lore.kernel.org/patchwork/patch/996810/ > > Unless that also gets merged soon via pci I expect issues in linux-next. > The patch already has reviewed-by tags so "merging it soon" is not > unreasonable. Oops, I overlooked the notes in cover-letter. Let's use the approach as suggested there - applying the dts change after all driver dependencies are landed. Patch dropped, sorry. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 4/4] ARM: dts: imx6sx: Add DISPLAY power domain support
On Mon, Oct 08, 2018 at 06:06:23PM +, Leonard Crestez wrote: > This was implemented in the driver but not actually defined and > referenced in dts. This makes it always on. > > From reference manual in section "10.4.1.4.1 Power Distribution": > > "Display domain - The DISPLAY domain contains GIS, CSI, PXP, LCDIF, > PCIe, DCIC, and LDB. It is supplied by internal regulator." > > The current pd_pcie is actually only for PCIE_PHY, the PCIE ip block is > actually inside the DISPLAY domain. Handle this by adding the pcie node > in both power domains. > > Signed-off-by: Leonard Crestez Applied, thanks. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2 1/4] soc: imx: gpc: Increase GPC_CLK_MAX to 7
On Mon, Oct 08, 2018 at 06:06:19PM +, Leonard Crestez wrote: > The DISPLAY power domain on imx6sx has 7 clocks. > > Signed-off-by: Leonard Crestez Applied, thanks. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 2/3] PCI: imx: Add multi-pd support
On Mon, Oct 01, 2018 at 11:56:17PM +0300, Leonard Crestez wrote: > On some chips the PCIE and PCIE_PHY blocks are in separate power domains > which can be power-gated independently. The driver needs to handle this > by keeping both domain active. > > This is intended for imx6sx where PCIE is in DISPMIX and PCIE_PHY in > it's own domain. Defining the DISPMIX domain requires a way for pcie to > keep it active or it will break when displays are off. > > The power-domains on imx6sx are meant to look like this: > power-domains = <_disp>, <_pci>; > power-domain-names = "pcie", "pcie_phy"; > > Signed-off-by: Leonard Crestez > Reviewed-by: Ulf Hansson > > --- > drivers/pci/controller/dwc/pci-imx6.c | 48 +++ > 1 file changed, 48 insertions(+) Bindings document fsl,imx6q-pcie.txt should probably be updated for the new power domain support. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 14/21] drm/zte: Use drm_atomic_helper_shutdown
On Thu, Oct 04, 2018 at 10:24:39PM +0200, Daniel Vetter wrote: > drm_plane_helper_disable is a non-atomic drivers only function, and > will blow up (since no one passes the locking context it needs). > > Atomic drivers which want to quiescent their hw on unload should > use drm_atomic_helper_shutdown() instead. > > Reviewed-by: Ville Syrjälä > Signed-off-by: Daniel Vetter > Cc: Shawn Guo Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [RESEND PATCH] drm/zte: Replace drm_dev_unref with drm_dev_put
On Wed, Sep 26, 2018 at 02:06:50PM +0200, Thomas Zimmermann wrote: > This patch unifies the naming of DRM functions for reference counting > of struct drm_device. The resulting code is more aligned with the rest > of the Linux kernel interfaces. > > Signed-off-by: Thomas Zimmermann > Acked-by: Shawn Guo Pushed to drm-misc-next, thanks. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] gpu: do not double put device node in zx_drm_probe
On Tue, Sep 18, 2018 at 05:19:09PM +0200, Daniel Vetter wrote: > On Mon, Aug 27, 2018 at 9:18 AM, Shawn Guo wrote: > > On Fri, Aug 17, 2018 at 10:24:06AM +0800, zhong jiang wrote: > >> for_each_available_child_of_node will get and put the node properly, > >> the following of_node_put will lead to the double put. So just > >> remove it. > >> > >> Signed-off-by: zhong jiang > > > > Acked-by: Shawn Guo > > Shawn, I'm assuming you'll push this to drm-misc-next? You're the > maintainer with commit rights after all. Just pushed to drm-misc-next. Sorry for the delay. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH 19/20] drm/zte: Use drm_fbdev_generic_setup()
On Sat, Sep 08, 2018 at 03:46:47PM +0200, Noralf Trønnes wrote: > The CMA helper is already using the drm_fb_helper_generic_probe part of > the generic fbdev emulation. This patch makes full use of the generic > fbdev emulation by using its drm_client callbacks. This means that > drm_mode_config_funcs->output_poll_changed and drm_driver->lastclose are > now handled by the emulation code. Additionally fbdev unregister happens > automatically on drm_dev_unregister(). > > The drm_fbdev_generic_setup() call is put after drm_dev_register() in the > driver. This is done to highlight the fact that fbdev emulation is an > internal client that makes use of the driver, it is not part of the > driver as such. If fbdev setup fails, an error is printed, but the driver > succeeds probing. > > Cc: Shawn Guo > Signed-off-by: Noralf Trønnes Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] gpu: do not double put device node in zx_drm_probe
On Fri, Aug 17, 2018 at 10:24:06AM +0800, zhong jiang wrote: > for_each_available_child_of_node will get and put the node properly, > the following of_node_put will lead to the double put. So just > remove it. > > Signed-off-by: zhong jiang Acked-by: Shawn Guo ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/zte: Replace drm_dev_unref with drm_dev_put
On Tue, Jul 17, 2018 at 01:11:14PM +0200, Thomas Zimmermann wrote: > This patch unifies the naming of DRM functions for reference counting > of struct drm_device. The resulting code is more aligned with the rest > of the Linux kernel interfaces. > > Signed-off-by: Thomas Zimmermann Acked-by: Shawn Guo > --- > drivers/gpu/drm/zte/zx_drm_drv.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/zte/zx_drm_drv.c > b/drivers/gpu/drm/zte/zx_drm_drv.c > index 6f4205e80378..02ae1caf6e8a 100644 > --- a/drivers/gpu/drm/zte/zx_drm_drv.c > +++ b/drivers/gpu/drm/zte/zx_drm_drv.c > @@ -122,7 +122,7 @@ static int zx_drm_bind(struct device *dev) > component_unbind_all(dev, drm); > out_unregister: > dev_set_drvdata(dev, NULL); > - drm_dev_unref(drm); > + drm_dev_put(drm); > return ret; > } > > @@ -136,7 +136,7 @@ static void zx_drm_unbind(struct device *dev) > drm_mode_config_cleanup(drm); > component_unbind_all(dev, drm); > dev_set_drvdata(dev, NULL); > - drm_dev_unref(drm); > + drm_dev_put(drm); > } > > static const struct component_master_ops zx_drm_master_ops = { > -- > 2.18.0 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v2] ARM: dts: imx6sl: Add vivante gpu nodes
On Fri, Jul 13, 2018 at 12:39:35PM +0300, Leonard Crestez wrote: > The imx6sl soc has gpu_2d and gpu_vg, no 3d support: > > etnaviv-gpu 220.gpu: model: GC320, revision: 5007 > etnaviv-gpu 2204000.gpu: model: GC355, revision: 1215 > > The IP blocks seem to be already supported. > > Signed-off-by: Leonard Crestez > Reviewed-by: Lucas Stach Applied, thanks. ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v4 6/7] ARM: dts: Add support for emtrion emCON-MX6 series
On Thu, May 03, 2018 at 12:00:06PM +0200, Türk, Jan wrote: > > > +/ { > > > + aliases { > > > + mmc0 = > > > + mmc2 = > > > + mmc1 = > > > + mmc3 = > > > + boardID = > > > > Why do you need this boardID alias? > I wanted to have a generic entry point to address the board-id on all > CPU-modules with their different SoC's resulting in different devicetree > paths. > Also as it now has the generic "gpio@3a" name, there would be no other way in > differencing the board Identifying GPIO-expander from an additionally > attached one (except platform code etc.) > With the alias every code could look up the information required over the > alias path with the same piece of code. Okay. But no uppercase please. Otherwise, you introduce the following DTC warnings (with W=1 switch) we are trying to clean up. Warning (alias_paths): /aliases: aliases property name must include only lowercase and '-' > > > > > + }; > > > _nor_flash > > > +_usdhc2 > > > +_spdif_out _spdif_in > > > +_cpi1 _cpi2 > > > + >; > > > > Again, please do not put consumer device specific pins in hog group. > > Also, it's confusing to have the same pinctrl in both hog and consumer > > device > > node, like pinctrl_nor_flash and pinctrl_usdhc2 here. > > About pinctrl_nor_flash I fully agree, that's a mistake. > pinctrl_usdhc2 is not connected on the avari, and therefore not enabled. > As told before it is added to the Hog group to force the default pinmuxing > without enabling the hardware itself. If you want to do such default pinmuxing, please do it in your firmware. We generally do not want to use hog group too much, because that makes it difficult to find out which client devices consume which pins. > > > > > > +}; > > > + { > > > + clock-frequency = <10>; > > > + pinctrl-names = "default"; > > > + pinctrl-0 = <_i2c1>; > > > + status = "okay"; > > > + > > > + rtc: rtc@68 { > > > > Is the label actually used? If yes, I would suggest a more specific name > > like > > ds1307. > Really? Why should it be a generic name for "gpio" and "pmic" but not a > generic name for an "rtc" chip? I'm talking about label not node name. That said I was suggesting something like: ds1307: rtc@68 > > > > > > + compatible = "dallas,ds1307"; > > > + reg = <0x68>; > > > + }; Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v4 6/7] ARM: dts: Add support for emtrion emCON-MX6 series
On Fri, Apr 27, 2018 at 03:24:41PM +0200, jan.tu...@emtrion.com wrote: > From: Jan Tuerk> > This patch adds support for the emtrion GmbH emCON-MX6 modules. > They are available with imx.6 Solo, Dual-Lite, Dual and Quad > equipped with Memory from 512MB to 2GB (configured by U-Boot). > > Our default developer-Kit ships with the Avari baseboard and the > EDT ETM0700G0BDH6 Display (imx6[q|dl]-emcon-avari). > > The devicetree is split into the common part providing all module > components and the basic support for all SoC versions > (imx6qdl-emcon.dtsi) and parts which are i.mx6 S|DL and D|Q relevant. > Finally the support for the avari baseboard in the developer-kit > configuration is provided by the emcon-avari dts files. > > Signed-off-by: Jan Tuerk > --- > Changes for v4: > - re-arrange the Patch-series to match the DT-submitting-patches > - Additional patch for the Documentation of the new DT-bindings > - alphabetically sort the DT > - moved duplicated Avari baseboard code into separate common file. > > arch/arm/boot/dts/Makefile | 2 + > arch/arm/boot/dts/imx6dl-emcon-avari.dts | 17 + > arch/arm/boot/dts/imx6dl-emcon.dtsi| 28 + > arch/arm/boot/dts/imx6q-emcon-avari.dts| 17 + > arch/arm/boot/dts/imx6q-emcon.dtsi | 28 + > arch/arm/boot/dts/imx6qdl-emcon-avari.dtsi | 208 > arch/arm/boot/dts/imx6qdl-emcon.dtsi | 826 > + > 7 files changed, 1126 insertions(+) > create mode 100644 arch/arm/boot/dts/imx6dl-emcon-avari.dts > create mode 100644 arch/arm/boot/dts/imx6dl-emcon.dtsi > create mode 100644 arch/arm/boot/dts/imx6q-emcon-avari.dts > create mode 100644 arch/arm/boot/dts/imx6q-emcon.dtsi > create mode 100644 arch/arm/boot/dts/imx6qdl-emcon-avari.dtsi > create mode 100644 arch/arm/boot/dts/imx6qdl-emcon.dtsi > > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index 7e2424957809..05b930da3fda 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -381,6 +381,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6dl-cubox-i-emmc-som-v15.dtb \ > imx6dl-cubox-i-som-v15.dtb \ > imx6dl-dfi-fs700-m60.dtb \ > + imx6dl-emcon-avari.dtb \ > imx6dl-gw51xx.dtb \ > imx6dl-gw52xx.dtb \ > imx6dl-gw53xx.dtb \ > @@ -442,6 +443,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6q-display5-tianma-tm070-1280x768.dtb \ > imx6q-dmo-edmqmx6.dtb \ > imx6q-dms-ba16.dtb \ > + imx6q-emcon-avari.dtb \ > imx6q-evi.dtb \ > imx6q-gk802.dtb \ > imx6q-gw51xx.dtb \ > diff --git a/arch/arm/boot/dts/imx6dl-emcon-avari.dts > b/arch/arm/boot/dts/imx6dl-emcon-avari.dts > new file mode 100644 > index ..464c82a53da3 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-emcon-avari.dts > @@ -0,0 +1,17 @@ > +// SPDX-License-Identifier: (GPL-2.0 or MIT) > +/* > + * Copyright (C) 2018 emtrion GmbH > + * Author: Jan Tuerk > + */ > + > +/dts-v1/; > +#include "imx6dl.dtsi" > +#include "imx6qdl-emcon.dtsi" > +/*Include camera2 pinmux*/ > +#include "imx6dl-emcon.dtsi" > +#include "imx6qdl-emcon-avari.dtsi" > + > +/ { > + model = "emtrion SoM emCON-MX6 Solo/Dual-Lite Avari"; > + compatible = "emtrion,emcon-mx6-avari", "fsl,imx6dl"; > +}; > diff --git a/arch/arm/boot/dts/imx6dl-emcon.dtsi > b/arch/arm/boot/dts/imx6dl-emcon.dtsi > new file mode 100644 > index ..0d86e0ecdb4d > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-emcon.dtsi > @@ -0,0 +1,28 @@ > +// SPDX-License-Identifier: (GPL-2.0 or MIT) > +/* > + * Copyright (C) 2018 emtrion GmbH > + * Author: Jan Tuerk > + */ > + > +/ { > + model = "emtrion SoM emCON-MX6 Solo/DualLite"; > + compatible = "emtrion,emcon-mx6", "fsl,imx6dl"; > +}; > + > + { > + pinctrl_cpi2: csi1grp { > + fsl,pins = < > + MX6QDL_PAD_EIM_D17__IPU1_CSI1_PIXCLK0x0b0b1 > + MX6QDL_PAD_EIM_EB3__IPU1_CSI1_HSYNC 0x1b0b1 > + MX6QDL_PAD_EIM_D29__IPU1_CSI1_VSYNC 0x1b0b1 > + MX6QDL_PAD_EIM_A17__IPU1_CSI1_DATA120x1b0b1 > + MX6QDL_PAD_EIM_D27__IPU1_CSI1_DATA130x1b0b1 > + MX6QDL_PAD_EIM_D26__IPU1_CSI1_DATA140x1b0b1 > + MX6QDL_PAD_EIM_D20__IPU1_CSI1_DATA150x1b0b1 > + MX6QDL_PAD_EIM_D19__IPU1_CSI1_DATA160x1b0b1 > + MX6QDL_PAD_EIM_D18__IPU1_CSI1_DATA170x1b0b1 > + MX6QDL_PAD_EIM_D16__IPU1_CSI1_DATA180x1b0b1 > + MX6QDL_PAD_EIM_EB2__IPU1_CSI1_DATA190x1b0b1 > + >; > + }; > +}; I'm uncomfortable with maintain two more dtsi files only for a single pinctrl entry. Instead, I would suggest you put CSI node and its pinctrl entry into imx6q/dl-emcon-avari.dts, and have CSI node refer to its pinctrl entry
Re: [PATCH v4 0/7] Add basic support for emtrion emCON-MX6 modules
On Fri, Apr 27, 2018 at 03:24:35PM +0200, jan.tu...@emtrion.com wrote: > From: Jan Tuerk> > Changes for v4: > - re-arrange the Patch-series to match the DT-submitting-patches > - Additional patch for the Documentation of the new DT-bindings > > [PATCH v4 1/7] dt-bindings: display: Document the EDT et* displays in one > file. > - no change (re-arranged 3/6 => 1/7) > > [PATCH v4 2/7] drm/panel: Add support for the EDT ETM0700G0BDH6 > - no change (re-arranged 1/6 => 2/7) > > [PATCH v4 3/7] drm/panel: Add support for the EDT ETM0700G0EDH6 > - no change (re-arranged 2/6 => 3/7) Please split the series into two, DRM driver (above) and platform part (below), to avoid posting one part over and over again with zero changes, but only because the other part needs update. Shawn > > [PATCH v4 4/7] ARM: dts: imx: Add an cpu0 label for imx6dl devices. > - no change > > [PATCH v4 5/7] dt-bindings: arm: Document emtrion emCON-MX6 bindings > - separate patch for the emtrion emCON-MX6 DT-bindings > > [PATCH v4 6/7] ARM: dts: Add support for emtrion emCON-MX6 series > - alphabetically sort the DT > - moved duplicated Avari baseboard code into separate file. > > [PATCH v4 7/7] ARM: imx_v6_v7_defconfig: Enable DA0963 PMIC support. > - unchaged ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH v3 5/6] ARM: dts: Add support for emtrion emCON-MX6 series
On Fri, Apr 20, 2018 at 02:50:52PM +0200, jan.tu...@emtrion.com wrote: > From: Jan Tuerk> > This patch adds support for the emtrion GmbH emCON-MX6 modules. > They are available with imx.6 Solo, Dual-Lite, Dual and Quad > equipped with Memory from 512MB to 2GB (configured by U-Boot). > > Our default developer-Kit ships with the Avari baseboard and the > EDT ETM0700G0BDH6 Display (imx6[q|dl]-emcon-avari). > > The devicetree is split into the common part providing all module > components and the basic support for all SoC versions > (imx6qdl-emcon.dtsi) and parts which are i.mx6 S|DL and D|Q relevant. > Finally the support for the avari baseboard in the developer-kit > configuration is provided by the emcon-avari dts files. > > Signed-off-by: Jan Tuerk > --- > Documentation/devicetree/bindings/arm/emtrion.txt | 13 + It's better to have a separate patch for bindings doc, which needs to be acknowledged by DT maintainers. > arch/arm/boot/dts/Makefile| 2 + > arch/arm/boot/dts/imx6dl-emcon-avari.dts | 224 ++ > arch/arm/boot/dts/imx6dl-emcon.dtsi | 27 + > arch/arm/boot/dts/imx6q-emcon-avari.dts | 224 ++ > arch/arm/boot/dts/imx6q-emcon.dtsi| 27 + > arch/arm/boot/dts/imx6qdl-emcon.dtsi | 838 > ++ > 7 files changed, 1355 insertions(+) > create mode 100644 Documentation/devicetree/bindings/arm/emtrion.txt > create mode 100644 arch/arm/boot/dts/imx6dl-emcon-avari.dts > create mode 100644 arch/arm/boot/dts/imx6dl-emcon.dtsi > create mode 100644 arch/arm/boot/dts/imx6q-emcon-avari.dts > create mode 100644 arch/arm/boot/dts/imx6q-emcon.dtsi > create mode 100644 arch/arm/boot/dts/imx6qdl-emcon.dtsi > > diff --git a/Documentation/devicetree/bindings/arm/emtrion.txt > b/Documentation/devicetree/bindings/arm/emtrion.txt > new file mode 100644 > index ..3ff6c6c2034d > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/emtrion.txt > @@ -0,0 +1,13 @@ > +Emtrion Devicetree Bindings > +=== > + > +emCON Series: > +- > + > +Required root node properties > + - compatible: > + - "emtrion,emcon-mx6", "fsl,imx6q", "fsl,imx6dl"; : emCON-MX6 Generic > SoM > + - "emtrion,emcon-mx6", "fsl,imx6q"; : emCON-MX6D or > emCON-MX6Q SoM > + - "emtrion,emcon-mx6-avari", "fsl,imx6q"; : emCON-MX6D or > emCON-MX6Q SoM on Avari Base > + - "emtrion,emcon-mx6", "fsl,imx6dl";: emCON-MX6S or > emCON-MX6DL SoM > + - "emtrion,emcon-mx6-avari", "fsl,imx6dl"; : emCON-MX6S or > emCON-MX6DL SoM on Avari Base > diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > index 7e2424957809..05b930da3fda 100644 > --- a/arch/arm/boot/dts/Makefile > +++ b/arch/arm/boot/dts/Makefile > @@ -381,6 +381,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6dl-cubox-i-emmc-som-v15.dtb \ > imx6dl-cubox-i-som-v15.dtb \ > imx6dl-dfi-fs700-m60.dtb \ > + imx6dl-emcon-avari.dtb \ > imx6dl-gw51xx.dtb \ > imx6dl-gw52xx.dtb \ > imx6dl-gw53xx.dtb \ > @@ -442,6 +443,7 @@ dtb-$(CONFIG_SOC_IMX6Q) += \ > imx6q-display5-tianma-tm070-1280x768.dtb \ > imx6q-dmo-edmqmx6.dtb \ > imx6q-dms-ba16.dtb \ > + imx6q-emcon-avari.dtb \ > imx6q-evi.dtb \ > imx6q-gk802.dtb \ > imx6q-gw51xx.dtb \ > diff --git a/arch/arm/boot/dts/imx6dl-emcon-avari.dts > b/arch/arm/boot/dts/imx6dl-emcon-avari.dts > new file mode 100644 > index ..2344fb9498e3 > --- /dev/null > +++ b/arch/arm/boot/dts/imx6dl-emcon-avari.dts > @@ -0,0 +1,224 @@ > +// SPDX-License-Identifier: (GPL-2.0 or MIT) > +/* Copyright (C) 2018 emtrion GmbH > + * Author: Jan Tuerk > + */ /* * Copyright ... */ > + > +/dts-v1/; > +#include "imx6dl.dtsi" > +#include "imx6qdl-emcon.dtsi" > +#include "imx6dl-emcon.dtsi" /*Include camera2 pinmux*/ /* bla bla */ > + > +/ { > + model = "emtrion SoM emCON-MX6 Solo/Dual-Lite Avari"; > + compatible = "emtrion,emcon-mx6-avari", "fsl,imx6dl"; > + > + aliases { > + mmc0 = > + mmc2 = > + mmc1 = > + mmc3 = > + }; > + > + chosen { > + stdout-path = <>; > + }; > + > + memory { The unit-address is missing. > + reg = <0x1000 0x4000>; > + }; > + > + supplies { > + compatible = "simple-bus"; > + #address-cells = <1>; > + #size-cells = <0>; DT maintainers do not like this fake container node. Please put the fixed regulator nodes directly under root with a unique name like below. reg_xxx: regulator-xxx { ... }; > + > + wallplug5p0: supply@0 { > + compatible = "regulator-fixed"; > + reg = <0>; > + regulator-name = "WALL-PLUG"; > +
Re: [PATCH v2 13/23] drm/zte: Stop consulting plane->fb
On Thu, Mar 22, 2018 at 07:40:03PM +0200, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrj...@linux.intel.com> > > We want to get rid of plane->fb on atomic drivers. Stop looking at it. Would it be more precise to use "plane->crtc" in both subject and commit log? Other than that: Acked-by: Shawn Guo <shawn...@kernel.org> > > v2: Use old_state->crtc (Maarten) > > Cc: Shawn Guo <shawn...@kernel.org> > Cc: Maarten Lankhorst <maarten.lankho...@linux.intel.com> > Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com> > --- > drivers/gpu/drm/zte/zx_plane.c | 2 +- > drivers/gpu/drm/zte/zx_vou.c | 5 +++-- > drivers/gpu/drm/zte/zx_vou.h | 3 ++- > 3 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/zte/zx_plane.c b/drivers/gpu/drm/zte/zx_plane.c > index 94545adac50d..d1931f5ea0b2 100644 > --- a/drivers/gpu/drm/zte/zx_plane.c > +++ b/drivers/gpu/drm/zte/zx_plane.c > @@ -268,7 +268,7 @@ static void zx_plane_atomic_disable(struct drm_plane > *plane, > struct zx_plane *zplane = to_zx_plane(plane); > void __iomem *hbsc = zplane->hbsc; > > - zx_vou_layer_disable(plane); > + zx_vou_layer_disable(plane, old_state); > > /* Disable HBSC block */ > zx_writel_mask(hbsc + HBSC_CTRL0, HBSC_CTRL_EN, 0); > diff --git a/drivers/gpu/drm/zte/zx_vou.c b/drivers/gpu/drm/zte/zx_vou.c > index 7491813131f3..442311d31110 100644 > --- a/drivers/gpu/drm/zte/zx_vou.c > +++ b/drivers/gpu/drm/zte/zx_vou.c > @@ -627,9 +627,10 @@ void zx_vou_layer_enable(struct drm_plane *plane) > zx_writel_mask(vou->osd + OSD_CTRL0, bits->enable, bits->enable); > } > > -void zx_vou_layer_disable(struct drm_plane *plane) > +void zx_vou_layer_disable(struct drm_plane *plane, > + struct drm_plane_state *old_state) > { > - struct zx_crtc *zcrtc = to_zx_crtc(plane->crtc); > + struct zx_crtc *zcrtc = to_zx_crtc(old_state->crtc); > struct zx_vou_hw *vou = zcrtc->vou; > struct zx_plane *zplane = to_zx_plane(plane); > const struct vou_layer_bits *bits = zplane->bits; > diff --git a/drivers/gpu/drm/zte/zx_vou.h b/drivers/gpu/drm/zte/zx_vou.h > index 97d72bfce982..5b7f84fbb112 100644 > --- a/drivers/gpu/drm/zte/zx_vou.h > +++ b/drivers/gpu/drm/zte/zx_vou.h > @@ -62,6 +62,7 @@ void zx_vou_config_dividers(struct drm_crtc *crtc, > struct vou_div_config *configs, int num); > > void zx_vou_layer_enable(struct drm_plane *plane); > -void zx_vou_layer_disable(struct drm_plane *plane); > +void zx_vou_layer_disable(struct drm_plane *plane, > + struct drm_plane_state *old_state); > > #endif /* __ZX_VOU_H__ */ > -- > 2.16.1 > ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm: zte: Fix an error handling path in 'zx_crtc_bind()'
+ Daniel On Sun, Mar 11, 2018 at 11:32:03PM +0100, Christophe JAILLET wrote: > 'ret' is known to be 0 at this point. It must be updated by the value > returned by 'clk_prepare_enable()'. > > Fixes: 0a886f59528a ("drm: zte: add initial vou drm driver") > Signed-off-by: Christophe JAILLET <christophe.jail...@wanadoo.fr> Acked-by: Shawn Guo <shawn...@kernel.org> ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] fix double ;;s in code
On Sat, Feb 24, 2018 at 09:52:27AM +0100, Pavel Machek wrote: > Hi! > > > > diff --git a/drivers/soc/imx/gpc.c b/drivers/soc/imx/gpc.c > > > index 53f7275..cfb42f5 100644 > > > --- a/drivers/soc/imx/gpc.c > > > +++ b/drivers/soc/imx/gpc.c > > > @@ -348,7 +348,7 @@ static int imx_gpc_old_dt_init(struct device *dev, > > > struct regmap *regmap, > > > if (i == 1) { > > > domain->supply = devm_regulator_get(dev, "pu"); > > > if (IS_ERR(domain->supply)) > > > - return PTR_ERR(domain->supply);; > > > + return PTR_ERR(domain->supply); > > > > > > ret = imx_pgc_get_clocks(dev, domain); > > > if (ret) > > > > > > > Considering the controversy how the changes should be merged, I'm going > > to send a separate patch just for IMX GPC driver with a reported-by-you > > tag. Thanks for catching this. > > That works for me. > > Alternatively... Andrew Morton merged the patch to his -mm tree > (thanks!), so you don't need to take any action, and it will be > eventually fixed. Okay, I'm dropping my patch from IMX tree. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] fix double ;;s in code
Hi Pavel, On Sat, Feb 17, 2018 at 10:19:55PM +0100, Pavel Machek wrote: ... > diff --git a/drivers/soc/imx/gpc.c b/drivers/soc/imx/gpc.c > index 53f7275..cfb42f5 100644 > --- a/drivers/soc/imx/gpc.c > +++ b/drivers/soc/imx/gpc.c > @@ -348,7 +348,7 @@ static int imx_gpc_old_dt_init(struct device *dev, struct > regmap *regmap, > if (i == 1) { > domain->supply = devm_regulator_get(dev, "pu"); > if (IS_ERR(domain->supply)) > - return PTR_ERR(domain->supply);; > + return PTR_ERR(domain->supply); > > ret = imx_pgc_get_clocks(dev, domain); > if (ret) > Considering the controversy how the changes should be merged, I'm going to send a separate patch just for IMX GPC driver with a reported-by-you tag. Thanks for catching this. Shawn ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel