Re: [PATCH v2 1/3] media: vsp1: add premultiplied alpha support

2022-08-18 Thread Laurent Pinchart
date(struct device *dev, unsigned > int pipe_index, > rpf->mem.addr[1] = cfg->mem[1]; > rpf->mem.addr[2] = cfg->mem[2]; > > + rpf->format.flags = (cfg->premult) ? V4L2_PIX_FMT_FLAG_PREMUL_ALPHA : 0; I'll drop the parentheses when applying. Revi

Re: [PATCH 3/3] drm: rcar-du: fix DSI enable & disable sequence

2022-08-18 Thread Laurent Pinchart
CONFIG_DRM_RCAR_MIPI_DSI) > +void rcar_mipi_dsi_atomic_early_enable(struct drm_bridge *bridge, > +struct drm_atomic_state *state); > +void rcar_mipi_dsi_atomic_late_disable(struct drm_bridge *bridge); It would be nice to have a naming scheme consistent with rcar_lvds.h. That would mean rcar_mipi_dsi_clk_{enable,disable}(), or renaming the LVDS functions to match whatever name would be picked here. We could name the functions pre_enable/post_disable to show what they should really be, if it wasn't for the DRM atomic helpers calling the bridge operations at the wrong time. > +#else > +static inline void > +rcar_mipi_dsi_atomic_early_enable(struct drm_bridge *bridge, > + struct drm_atomic_state *state) > +{ > +} > + > +void rcar_mipi_dsi_atomic_late_disable(struct drm_bridge *bridge) > +{ > +} > +#endif /* CONFIG_DRM_RCAR_MIPI_DSI */ > + > +#endif /* __RCAR_MIPI_DSI_H__ */ -- Regards, Laurent Pinchart

Re: [PATCH 2/3] drm: rcar-du: Fix r8a779a0 color issue.

2022-08-18 Thread Laurent Pinchart
/* No blending. ALP and EOR are not supported */ > + pnmr &= ~(PnMR_SPIM_ALP | PnMR_SPIM_EOR); > + } > + > + pnmr |= PnMR_SPIM_TP_OFF; I'd combine this with the initial pnmr assignment. I can handle this when applying, no need to resubmit. Reviewed-by: Laurent Pinc

Re: [PATCH 1/3] drm: rcar-du: remove unnecessary include

2022-08-18 Thread Laurent Pinchart
Hi Tomi, Thank you for the patch. On Wed, Aug 17, 2022 at 04:28:01PM +0300, Tomi Valkeinen wrote: > From: Tomi Valkeinen > > rcar_du_regs.h is not needed by rcar_du_drv.c so drop the include. > > Signed-off-by: Tomi Valkeinen Reviewed-by: Laurent Pinchart > --- > dr

Re: [PATCH 1/2] drm/fourcc: Add Synaptics VideoSmart tiled modifiers

2022-08-18 Thread Laurent Pinchart
+ > +#define DRM_FORMAT_MOD_SYNA_V4H3P8 \ > + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 3, 8, 0) > + > +#define DRM_FORMAT_MOD_SYNA_V4H1_COMPRESSED \ > + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 1, 0, 1) > + > +#define DRM_FORMAT_MOD_SYNA_V4H3P8_COMPRESSED \ > + DRM_FORMAT_MOD_SYNA_MTR_LINEAR_2D(1, 3, 8, 1) > + > #if defined(__cplusplus) > } > #endif -- Regards, Laurent Pinchart

Re: [PATCH 2/2] [WIP]: media: Add Synaptics compressed tiled format

2022-08-18 Thread Laurent Pinchart
ormat { > >> #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12 > >> Y/CbCr 4:2:0 16x16 tiles */ > >> #define V4L2_PIX_FMT_NV12M_8L128 v4l2_fourcc('N', 'A', '1', '2') /* > >> Y/CbCr 4:2:0 8x128 tiles */ > >> #define V4L2_PIX_FMT_NV12M_10BE_8L128 v4l2_fourcc_be('N', 'T', '1', '2') > >> /* Y/CbCr 4:2:0 10-bit 8x128 tiles */ > >> +#define V4L2_PIX_FMT_NV12M_V4H1C v4l2_fourcc('S', 'Y', '1', '2') /* 12 > >> Y/CbCr 4:2:0 tiles */ > >> +#define V4L2_PIX_FMT_NV12M_10_V4H3P8C v4l2_fourcc('S', 'Y', '1', '0') > >> /* 12 Y/CbCr 4:2:0 10-bits tiles */ > >> > >> /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */ > >> #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 > >> BGBG.. GRGR.. */ -- Regards, Laurent Pinchart

Re: [PATCH 0/2] Add pixel formats used in Synatpics SoC

2022-08-18 Thread Laurent Pinchart
v4l2-ioctl.c | 2 ++ > include/uapi/drm/drm_fourcc.h | 49 +++ > include/uapi/linux/videodev2.h| 2 ++ > 4 files changed, 54 insertions(+) -- Regards, Laurent Pinchart

Re: [PATCH] gpu: move from strlcpy with unused retval to strscpy

2022-08-18 Thread Laurent Pinchart
Link: > https://lore.kernel.org/r/CAHk-=wgfRnXz0W3D37d01q3JFkr_i_uTL=v6a6g1ouzcprm...@mail.gmail.com/ > Signed-off-by: Wolfram Sang Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/amd/amdgpu/atom.c | 2 +- > drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c

Re: (subset) [PATCH v2 0/7] Devm helpers for regulator get and enable

2022-08-15 Thread Laurent Pinchart
Hi Stephan, On Mon, Aug 15, 2022 at 01:58:55PM -0700, Stephen Boyd wrote: > Quoting Laurent Pinchart (2022-08-15 11:52:36) > > On Mon, Aug 15, 2022 at 05:33:06PM +0100, Mark Brown wrote: > > > On Mon, Aug 15, 2022 at 06:54:45PM +0300, Laurent Pinchart wrote: > > >

Re: (subset) [PATCH v2 0/7] Devm helpers for regulator get and enable

2022-08-15 Thread Laurent Pinchart
Hi Mark, On Mon, Aug 15, 2022 at 05:33:06PM +0100, Mark Brown wrote: > On Mon, Aug 15, 2022 at 06:54:45PM +0300, Laurent Pinchart wrote: > > > - With devres, you don't have full control over the order in which > > resources will be released, which means that you can't contr

Re: (subset) [PATCH v2 0/7] Devm helpers for regulator get and enable

2022-08-15 Thread Laurent Pinchart
hey > should be sent as incremental updates against current git, existing > patches will not be replaced. > > Please add any relevant lists and maintainers to the CCs when replying > to this mail. -- Regards, Laurent Pinchart

Re: [RFC] drm/bridge: adv7533: remove dynamic lane switching from adv7533 bridge

2022-08-09 Thread Laurent Pinchart
dsi->lanes) { > - mipi_dsi_detach(dsi); > - dsi->lanes = lanes; > - ret = mipi_dsi_attach(dsi); > - if (ret) > - dev_err(>dev, "failed to change host lanes\n"); > - } > + /* > + * number of lanes cannot be changed after initialization > + * as per section 6.1 of the DSI specification. Hence filter > + * out the modes which shall need different number of lanes > + * than what was configured in the device tree. > + */ > + if (lanes != dsi->lanes) > + return MODE_BAD; > + > + return MODE_OK; > } > > int adv7533_patch_registers(struct adv7511 *adv) -- Regards, Laurent Pinchart

Re: [PATCH drm-misc-next v7 1/5] drm/fb: remove unused includes of drm_fb_cma_helper.h

2022-08-02 Thread Laurent Pinchart
nborg > Signed-off-by: Danilo Krummrich Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/arm/hdlcd_drv.c | 1 - > drivers/gpu/drm/arm/malidp_drv.c| 1 - > drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 1 - > drivers/gpu/drm/fs

Re: [PATCH 3/3] drm: rcar-du: Add DRM blend mode support

2022-07-30 Thread Laurent Pinchart
e with it. > Signed-off-by: Takanari Hayama Reviewed-by: Laurent Pinchart but I expect this patch to change based on my suggestions for 2/3. > --- > drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 17 + > 1 file changed, 17 insertions(+) > > diff --git a/drivers/gpu/

Re: [PATCH 2/3] media: vsp1: add blend mode support

2022-07-30 Thread Laurent Pinchart
tion of the plane (from 0 to number of planes minus 1) > + * @blend_mode: Pixel blend mode of the plane > */ > struct vsp1_du_atomic_config { > u32 pixelformat; > @@ -60,6 +73,7 @@ struct vsp1_du_atomic_config { > struct v4l2_rect dst; > unsigned int alpha; > unsigned int zpos; > + enum vsp1_du_blend_mode blend_mode; > }; > > /** -- Regards, Laurent Pinchart

Re: [PATCH 1/3] media: vsp1: save pixel alpha info in vsp1_rwpf

2022-07-30 Thread Laurent Pinchart
7 @@ vsp1_video_set_format(struct file *file, void *fh, struct v4l2_format *format) video->rwpf->format = format->fmt.pix_mp; video->rwpf->fmtinfo = info; + video->rwpf->pixel_alpha = info->alpha; done: mutex_unlock(>lock); I've tested that

Re: [PATCH] dt-bindings: vendor-prefixes: add Densitron

2022-07-21 Thread Laurent Pinchart
Hi Marek, On Thu, Jul 21, 2022 at 02:24:57PM +0200, Marek Vasut wrote: > On 7/21/22 07:41, Laurent Pinchart wrote: > > On Thu, Jul 21, 2022 at 05:03:27AM +0200, Marek Vasut wrote: > >> Densitron is a manufacturer of LCD panels. > >> https://www.densitron.com > >

Re: [PATCH] drm/imx/dcss: get rid of HPD warning message

2022-07-21 Thread Laurent Pinchart
t;drm/bridge_connector: enable HPD by default if > supported") > Signed-off-by: Laurentiu Palcu Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/imx/dcss/dcss-kms.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/gpu/drm/imx/dcss/dcss-kms.c >

Re: [PATCH] dt-bindings: vendor-prefixes: add Densitron

2022-07-20 Thread Laurent Pinchart
Hi Marek, Thank you for the patch. On Thu, Jul 21, 2022 at 05:03:27AM +0200, Marek Vasut wrote: > Densitron is a manufacturer of LCD panels. > https://www.densitron.com > > Signed-off-by: Marek Vasut > Cc: Guido Günther > Cc: Jagan Teki > Cc: Laurent Pinchart > Cc:

Re: [PATCH v3 2/6] dt-bindings: Use new video interface bus type macros in examples

2022-07-16 Thread Laurent Pinchart
Hi Sakari, On Sat, Jul 16, 2022 at 12:28:45PM +0300, Sakari Ailus wrote: > On Thu, Jun 16, 2022 at 01:14:06AM +0300, Laurent Pinchart wrote: > > Now that a header exists with macros for the media interface bus-type > > values, replace hardcoding numerical constants with th

[GIT PULL FOR v5.20] Miscellaneous R-Car DU fixes and enhancements

2022-07-16 Thread Laurent Pinchart
Biju Das (1): drm: rcar-du: Add num_rpf to struct rcar_du_device_info Kieran Bingham (1): drm: rcar-du: Extend CMM HDSE documentation LUU HOAI (1): drm: rcar-du: Fix Alpha blending issue on Gen3 Laurent Pinchart (2): drm: rcar-du

Re: [PATCH libdrm] util: Remove unused definitions of RED, GREEN, and BLUE

2022-07-11 Thread Laurent Pinchart
Hi Geert, Thank you for the patch. On Mon, Jul 11, 2022 at 05:56:41PM +0200, Geert Uytterhoeven wrote: > These are unused since commit edcef53685edf5fb ("modetest: Add test > pattern support for missing RGB formats"). > > Signed-off-by: Geert Uytterhoeven Reviewe

Re: [PATCH libdrm] util: Fix grey in YUV SMPTE patterns

2022-07-11 Thread Laurent Pinchart
. > > Fixes: a94ee624292bff96 ("modetest: Add SMPTE test pattern") > Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart > --- > tests/util/pattern.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tests/util/pattern.c b

Re: [PATCH v3 0/4] drm: rename CMA helpers to DMA helpers

2022-07-11 Thread Laurent Pinchart
ivers/gpu/drm/vc4/vc4_gem.c | 12 +- > > drivers/gpu/drm/vc4/vc4_irq.c | 2 +- > > drivers/gpu/drm/vc4/vc4_plane.c | 14 +- > > drivers/gpu/drm/vc4/vc4_render_cl.c | 40 +-- > > drivers/gpu/drm/vc4/vc4_txp.c | 8 +- > > drivers/gpu/drm/vc4/vc4_v3d.c | 8 +- > > drivers/gpu/drm/vc4/vc4_validate.c| 28 +- > > drivers/gpu/drm/vc4/vc4_validate_shaders.c| 2 +- > > drivers/gpu/drm/xlnx/Kconfig | 2 +- > > drivers/gpu/drm/xlnx/zynqmp_disp.c| 8 +- > > drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 8 +- > > ...rm_fb_cma_helper.h => drm_fb_dma_helper.h} | 10 +- > > include/drm/drm_gem.h | 2 +- > > ..._gem_cma_helper.h => drm_gem_dma_helper.h} | 158 - > > 147 files changed, 899 insertions(+), 899 deletions(-) > > rename drivers/gpu/drm/{drm_fb_cma_helper.c => drm_fb_dma_helper.c} (60%) > > rename drivers/gpu/drm/{drm_gem_cma_helper.c => drm_gem_dma_helper.c} > > (56%) > > rename include/drm/{drm_fb_cma_helper.h => drm_fb_dma_helper.h} (56%) > > rename include/drm/{drm_gem_cma_helper.h => drm_gem_dma_helper.h} (53%) -- Regards, Laurent Pinchart

Re: [RFC PATCH 2/3] drm/bridge: ti-sn65dsi86: fetch bpc using drm_atomic_state

2022-07-10 Thread Laurent Pinchart
pdata->dp_lanes = min(pdata->dp_lanes, max_dp_lanes); > @@ -1047,8 +1054,9 @@ static void ti_sn_bridge_atomic_enable(struct > drm_bridge *bridge, > drm_dp_dpcd_writeb(>aux, DP_EDP_CONFIGURATION_SET, > DP_ALTERNATE_SCRAMBLER_RESET_EN

Re: [RFC PATCH 3/3] drm/bridge: ti-sn65dsi86: support DRM_BRIDGE_ATTACH_NO_CONNECTOR

2022-07-10 Thread Laurent Pinchart
idge */ > + /* Attach the next bridge, We never want the next bridge to *also* > create a connector. */ s/bridge,/bridge./ I also would have wrapped this line. Reviewed-by: Laurent Pinchart > ret = drm_bridge_attach(bridge->encoder, pdata->next_bridge, > -

Re: [PATCH v2 3/4] drm/gem: rename struct drm_gem_dma_object.{paddr => dma_addr}

2022-07-06 Thread Laurent Pinchart
j->paddr, > attach->dmabuf->size); > + DRM_DEBUG_PRIME("dma_addr = %pad, size = %zu\n", _obj->dma_addr, > + attach->dmabuf->size); The second line should be aligned left, just right of the opening parenthesis. Reviewed-by: Laurent Pinchart > > return _obj->base; > } [snip] -- Regards, Laurent Pinchart

Re: [PATCH 3/3] drm/todo: remove task to rename CMA helpers

2022-07-06 Thread Laurent Pinchart
Hi Danilo, Thank you for the patch. On Tue, Jul 05, 2022 at 11:26:13PM +0200, Danilo Krummrich wrote: > Both, GEM and FB, CMA helpers were renamed to "GEM DMA" and "FB DMA", > hence the task can be removed. > > Signed-off-by: Danilo Krummrich

Re: [PATCH 2/3] drm/gem: rename GEM CMA helpers to GEM DMA helpers

2022-07-06 Thread Laurent Pinchart
e buffer > * @dev: DRM device > * @attach: DMA-BUF attachment > * @sgt: Scatter/gather table of pinned pages > * > * This function imports a scatter/gather table using > - * drm_gem_cma_prime_import_sg_table() and uses dma_buf_vmap() to get the > kernel > - * virtua

Re: [PATCH 1/3] drm/fb: rename FB CMA helpers to FB DMA helpers

2022-07-06 Thread Laurent Pinchart
PL(drm_fb_cma_get_gem_addr); > * in a plane's .atomic_update ensures that all the data in the backing > * memory have been written to RAM. > */ > -void drm_fb_cma_sync_non_coherent(struct drm_device *drm, > +void drm_fb_dma_sync_non_coherent(struct drm_device *drm, > struct drm_plane_

Re: [PATCH 0/3] drm: rename CMA helpers to DMA helpers

2022-07-06 Thread Laurent Pinchart
gpu/drm/vc4/vc4_drv.h | 18 +- > > drivers/gpu/drm/vc4/vc4_gem.c | 4 +- > > drivers/gpu/drm/vc4/vc4_plane.c | 10 +- > > drivers/gpu/drm/vc4/vc4_render_cl.c | 26 +- > > drivers/gpu/drm/vc4/vc4_txp.c | 6 +- > > drivers/gpu/drm/vc4/vc4_v3d.c | 4 +- > > drivers/gpu/drm/vc4/vc4_validate.c| 16 +- > > drivers/gpu/drm/vc4/vc4_validate_shaders.c| 2 +- > > drivers/gpu/drm/xlnx/Kconfig | 2 +- > > drivers/gpu/drm/xlnx/zynqmp_disp.c| 4 +- > > drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 8 +- > > ...rm_fb_cma_helper.h => drm_fb_dma_helper.h} | 10 +- > > include/drm/drm_gem.h | 2 +- > > ..._gem_cma_helper.h => drm_gem_dma_helper.h} | 154 - > > 146 files changed, 777 insertions(+), 790 deletions(-) > > rename drivers/gpu/drm/{drm_fb_cma_helper.c => drm_fb_dma_helper.c} (68%) > > rename drivers/gpu/drm/{drm_gem_cma_helper.c => drm_gem_dma_helper.c} > > (60%) > > rename include/drm/{drm_fb_cma_helper.h => drm_fb_dma_helper.h} (56%) > > rename include/drm/{drm_gem_cma_helper.h => drm_gem_dma_helper.h} (53%) -- Regards, Laurent Pinchart

Re: [PATCH v3 2/6] dt-bindings: Use new video interface bus type macros in examples

2022-06-27 Thread Laurent Pinchart
Hi Rob, On Mon, Jun 27, 2022 at 04:16:08PM -0600, Rob Herring wrote: > On Thu, Jun 16, 2022 at 01:14:06AM +0300, Laurent Pinchart wrote: > > Now that a header exists with macros for the media interface bus-type > > values, replace hardcoding numerical constants with the correspon

Re: [PATCH] drm/fourcc: Add formats for packed YUV 4:4:4 AVUY and XVUY permutations

2022-06-24 Thread Laurent Pinchart
On Fri, Jun 24, 2022 at 11:50:06PM +0200, Daniel Vetter wrote: > On Sat, Jun 25, 2022 at 12:37:23AM +0300, Laurent Pinchart wrote: > > Hi Daniel, > > > > On Fri, Jun 24, 2022 at 11:16:46PM +0200, Daniel Vetter wrote: > > > On Thu, Jun 16, 2022 at 09:52:10PM

Re: [PATCH] drm/fourcc: Add formats for packed YUV 4:4:4 AVUY and XVUY permutations

2022-06-24 Thread Laurent Pinchart
Hi Daniel, On Fri, Jun 24, 2022 at 11:16:46PM +0200, Daniel Vetter wrote: > On Thu, Jun 16, 2022 at 09:52:10PM +0300, Laurent Pinchart wrote: > > Add FourCCs for two missing permutations of the packed YUV 4:4:4 color > > For a second I thought this 4:4:4 is the bit packing, b

Re: [PATCH V2 2/2] drm: xlnx: dsi: Add Xilinx MIPI DSI-Tx subsystem driver

2022-06-22 Thread Laurent Pinchart
ead from a register, not parsed from DT, so the message isn't valid. > + return -EINVAL; > + } > + > + /* > + * Used as a multiplication factor for HACT based on used > + * DSI data type. > + * > + * e.g. for RGB666_L datatype and 192

Re: [PATCH V2 1/2] dt-bindings: display: xlnx: Add DSI 2.0 Tx subsystem documentation

2022-06-22 Thread Laurent Pinchart
e-endpoint = <_in>; > +}; > + }; > +}; > + > +panel@0 { > + compatible = "auo,b101uan01"; > + reg = <0>; > + port { > +panel_in: endpoint { > +remote-endpoint = <_dsi_out>; > +}; > + }; > +}; Does this example validate (with `make dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/xlnx/xlnx,dsi-tx.yaml`) without listing the panel node in the properties ? > +}; > + > +... -- Regards, Laurent Pinchart

Re: [PATCH] drm/xlnx: Fix build failure due to missing include

2022-06-21 Thread Laurent Pinchart
nfig was missing some required dependencies so > I never build tested it :/ > > Cc: Hyun Kwon > Cc: Laurent Pinchart > Reported-by: Stephen Rothwell > Fixes: 90bb087f6674 ("drm: Drop drm_blend.h from drm_crtc.h") > Signed-off-by: Ville Syrjälä Reviewed-

Re: [PATCH v2] drm: shmobile: Use backlight helper

2022-06-21 Thread Laurent Pinchart
cking whether the backlight > should be on at all, use backlight_get_brightness() which does all > this and insulates this from future changes. > > Signed-off-by: Stephen Kitt > Cc: Laurent Pinchart > Cc: Kieran Bingham > Cc: David Airlie > Cc: Daniel Vetter > Cc:

[PATCH] drm/fourcc: Add formats for packed YUV 4:4:4 AVUY and XVUY permutations

2022-06-16 Thread Laurent Pinchart
uses DRM FourCCs for pixel formats. Signed-off-by: Laurent Pinchart --- include/uapi/drm/drm_fourcc.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h index f1972154a594..399d950c53e3 100644 --- a/include/uapi/drm/drm_fourcc.h

[PATCH v3 5/6] ARM: dts: renesas: Use new media bus type macros

2022-06-15 Thread Laurent Pinchart
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 --- arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts | 11 +++ .../dts/r8a7742

[PATCH v3 6/6] ARM: dts: stm32: Use new media bus type macros

2022-06-15 Thread Laurent Pinchart
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 --- arch/arm/boot/dts/stm32429i-eval.dts | 3 ++- arch/arm/boot/dts/stm32mp157c-ev1.dts | 3

[PATCH v3 4/6] ARM: dts: omap: Use new media bus type macros

2022-06-15 Thread Laurent Pinchart
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 --- arch/arm/boot/dts/omap3-n900.dts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions

[PATCH v3 3/6] ARM: dts: freescale: Use new media bus type macros

2022-06-15 Thread Laurent Pinchart
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 --- arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion

[PATCH v3 2/6] dt-bindings: Use new video interface bus type macros in examples

2022-06-15 Thread Laurent Pinchart
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 binding examples. Signed-off-by: Laurent Pinchart --- Changes since v2: - Go back to PARALLEL Changes since v1: - Rename PARALLEL

[PATCH v3 1/6] dt-bindings: media: Add macros for video interface bus types

2022-06-15 Thread Laurent Pinchart
Add a new dt-bindings/media/video-interfaces.h header that defines macros corresponding to the bus types from media/video-interfaces.yaml. This allows avoiding hardcoded constants in device tree sources. Signed-off-by: Laurent Pinchart --- Changes since v2: - Go back to PARALLEL Changes since

[PATCH v3 0/6] dt-bindings: Add macros for video interface bus types

2022-06-15 Thread Laurent Pinchart
doesn't actually describe what is usually referred to as the parallel bus type. Patch 3/3 has been split in per-vendor patches at the request of Alexandre Torgue. Laurent Pinchart (6): dt-bindings: media: Add macros for video interface bus types dt-bindings: Use new video interface bus type

Re: [LINUX PATCH 2/2] drm: xlnx: dsi: driver for Xilinx DSI Tx subsystem

2022-06-12 Thread Laurent Pinchart
.atomic_get_input_bus_fmts = xlnx_dsi_bridge_get_input_bus_fmts, > .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, > .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, > .atomic_reset = drm_atomic_helper_bridge_reset, > }; [snip] -- Regards, Laurent Pinchart

Re: [LINUX PATCH 2/2] drm: xlnx: dsi: driver for Xilinx DSI Tx subsystem

2022-06-12 Thread Laurent Pinchart
(val, base + offset); > > +} > > + > > +static inline u32 xlnx_dsi_readl(void __iomem *base, int offset) > > +{ > > + return readl(base + offset); > > +} > > When I see implementations like this I wonder if a regmap would be > beneficial? regmap often seems overkill to me when the driver only needs plain 32-bit mmio read/write, given the overhead it adds at runtime. Is it just me ? [snip] -- Regards, Laurent Pinchart

Re: [PATCH 1/3] drm: of: Mark empty drm_of_get_data_lanes_count and drm_of_get_data_lanes_ep static

2022-06-12 Thread Laurent Pinchart
h . > Add missing comma to drm_of_get_data_lanes_count_ep() . > > Fixes: fc801750b197 ("drm: of: Add drm_of_get_data_lanes_count and > drm_of_get_data_lanes_ep") > Reported-by: kernel test robot > Signed-off-by: Marek Vasut > Cc: Andrzej Hajda > Cc: Laurent Pinch

Re: [PATCH v8 06/14] drm/bridge: imx: Add i.MX8qm/qxp display pixel link support

2022-06-10 Thread Laurent Pinchart
Hi Liu, On Fri, Jun 10, 2022 at 10:09:19AM +0800, Liu Ying wrote: > On Thu, 2022-06-09 at 12:30 +0300, Laurent Pinchart wrote: > > On Thu, Jun 09, 2022 at 02:49:23PM +0800, Liu Ying wrote: > > > This patch adds a drm bridge driver for i.MX8qm/qxp display pixel > > >

[PATCH] drm: rcar-du: Lift z-pos restriction on primary plane for Gen3

2022-06-09 Thread Laurent Pinchart
alpha channel as well. Signed-off-by: Laurent Pinchart --- drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 11 +++ 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c index 6b535abd799a..356861de17b0 100644

Re: [PATCH v8 00/14] Add some DRM bridge drivers support for i.MX8qm/qxp SoCs

2022-06-09 Thread Laurent Pinchart
devicetree/bindings/display/bridge/fsl,imx8qxp-pixel-link.yaml > create mode 100644 > Documentation/devicetree/bindings/display/bridge/fsl,imx8qxp-pxl2dpi.yaml > create mode 100644 Documentation/devicetree/bindings/mfd/fsl,imx8qxp-csr.yaml > create mode 100644 drivers/gpu/drm/bridge/imx/Kconfig > create mode 100644 drivers/gpu/drm/bridge/imx/Makefile > create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.c > create mode 100644 drivers/gpu/drm/bridge/imx/imx-ldb-helper.h > create mode 100644 drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c > create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c > create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-combiner.c > create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pixel-link.c > create mode 100644 drivers/gpu/drm/bridge/imx/imx8qxp-pxl2dpi.c -- Regards, Laurent Pinchart

Re: [PATCH v8 06/14] drm/bridge: imx: Add i.MX8qm/qxp display pixel link support

2022-06-09 Thread Laurent Pinchart
MST2_ENB; > + pl->mst_vld_ctrl = IMX_SC_C_PXL_LINK_MST2_VLD; > + pl->sync_ctrl = IMX_SC_C_SYNC_CTRL1; > + } > + > + /* disable all controls to POR default */ > + ret = imx8qxp_pixel_link_disable_all_controls(pl); > + if (ret) > + return ret; > + > + pl->next_bridge = imx8qxp_pixel_link_find_next_bridge(pl); > + if (IS_ERR(pl->next_bridge)) { > + ret = PTR_ERR(pl->next_bridge); > + if (ret != -EPROBE_DEFER) > + DRM_DEV_ERROR(dev, "failed to find next bridge: %d\n", > + ret); > + return ret; > + } > + > + platform_set_drvdata(pdev, pl); > + > + pl->bridge.driver_private = pl; > + pl->bridge.funcs = _pixel_link_bridge_funcs; > + pl->bridge.of_node = np; > + > + drm_bridge_add(>bridge); > + > + return ret; > +} > + > +static int imx8qxp_pixel_link_bridge_remove(struct platform_device *pdev) > +{ > + struct imx8qxp_pixel_link *pl = platform_get_drvdata(pdev); > + > + drm_bridge_remove(>bridge); > + > + return 0; > +} > + > +static const struct of_device_id imx8qxp_pixel_link_dt_ids[] = { > + { .compatible = "fsl,imx8qm-dc-pixel-link", }, > + { .compatible = "fsl,imx8qxp-dc-pixel-link", }, > + { /* sentinel */ } > +}; > +MODULE_DEVICE_TABLE(of, imx8qxp_pixel_link_dt_ids); > + > +static struct platform_driver imx8qxp_pixel_link_bridge_driver = { > + .probe = imx8qxp_pixel_link_bridge_probe, > + .remove = imx8qxp_pixel_link_bridge_remove, > + .driver = { > + .of_match_table = imx8qxp_pixel_link_dt_ids, > + .name = DRIVER_NAME, > + }, > +}; > +module_platform_driver(imx8qxp_pixel_link_bridge_driver); > + > +MODULE_DESCRIPTION("i.MX8QXP/QM display pixel link bridge driver"); > +MODULE_AUTHOR("Liu Ying "); > +MODULE_LICENSE("GPL v2"); > +MODULE_ALIAS("platform:" DRIVER_NAME); -- Regards, Laurent Pinchart

Re: [PATCH v8 03/14] dt-bindings: display: bridge: Add i.MX8qm/qxp pixel combiner binding

2022-06-09 Thread Laurent Pinchart
+dc0_pixel_combiner_ch0_dc0_pixel_link0: endpoint { > +remote-endpoint = > <_pixel_link0_dc0_pixel_combiner_ch0>; > + }; > +}; > +}; > + > +channel@1 { > +#address-cells = <1>; > +#size-cells = <0>; > +reg = <1>; > + > +port@0 { > +reg = <0>; > + > +dc0_pixel_combiner_ch1_dc0_dpu_disp1: endpoint { > +remote-endpoint = > <_dpu_disp1_dc0_pixel_combiner_ch1>; > +}; > +}; > + > +port@1 { > +reg = <1>; > + > +dc0_pixel_combiner_ch1_dc0_pixel_link1: endpoint { > +remote-endpoint = > <_pixel_link1_dc0_pixel_combiner_ch1>; > +}; > +}; > +}; > +}; -- Regards, Laurent Pinchart

Re: [PATCH] drm: shmobile: Use backlight helper

2022-06-08 Thread Laurent Pinchart
this and insulates this from future changes. > > > > Signed-off-by: Stephen Kitt > > Cc: Laurent Pinchart > > Cc: Kieran Bingham > > Cc: David Airlie > > Cc: Daniel Vetter > > Cc: dri-devel@lists.freedesktop.org > > --- > > drivers/gpu/drm

Re: [PATCH v2] drm: bridge: adv7511: Add check for mipi_dsi_driver_register

2022-06-02 Thread Laurent Pinchart
driver fails, mipi_dsi_driver_register > should be reverted. > > Fixes: 1e4d58cd7f88 ("drm/bridge: adv7533: Create a MIPI DSI device") > Signed-off-by: Jiasheng Jiang Reviewed-by: Laurent Pinchart > --- > Changelog: > > v1 -> v2 > > *Change 1. Add the mipi_dsi_driver_u

Re: Re: [PATCH] drm: bridge: adv7511: Add check for mipi_dsi_driver_register

2022-06-01 Thread Laurent Pinchart
On Wed, Jun 01, 2022 at 04:45:01PM +0800, Jiasheng Jiang wrote: > On Wed, Jun 01, 2022 at 02:52:00PM +0800, Laurent Pinchart wrote: > >> static int __init adv7511_init(void) > >> { > >> - if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) > >> - mipi_dsi_driver

Re: [PATCH] drm: bridge: adv7511: Add check for mipi_dsi_driver_register

2022-06-01 Thread Laurent Pinchart
return ret; > + } > > return i2c_add_driver(_driver); While at it, should this then call mipi_dsi_driver_unregister() on failure ? > } > -- > 2.25.1 > -- Regards, Laurent Pinchart

Re: [PATCH] dt-bindings: display: ingenic,jz4780-hdmi: Drop undocumented 'ddc-i2c-bus'

2022-05-25 Thread Laurent Pinchart
e example. > > Signed-off-by: Rob Herring Reviewed-by: Laurent Pinchart > --- > .../devicetree/bindings/display/bridge/ingenic,jz4780-hdmi.yaml | 1 - > 1 file changed, 1 deletion(-) > > diff --git > a/Documentation/devicetree/bindings/display/bridge/ingenic,jz4780-hdmi.y

Re: [LINUX PATCH 2/2] drm: xlnx: dsi: driver for Xilinx DSI Tx subsystem

2022-05-13 Thread Laurent Pinchart
gt; + return ret; > + > + ret = clk_bulk_prepare_enable(num_clks, dsi->clks); As this will become the only use of num_clks, I'd write ret = clk_bulk_prepare_enable(ARRAY_SIZE(xdsi_clks), dsi->clks); and drop the local variable. Same in remove(). Actually, shouldn't the driver implement runtime PM suspand and resume handlers, and enable/disable clocks there ? > + if (ret) > + goto err_clk_put; > + > + platform_set_drvdata(pdev, dsi); > + dsi->dsi_host.ops = _dsi_ops; > + dsi->dsi_host.dev = dev; > + > + ret = mipi_dsi_host_register(>dsi_host); > + if (ret) { > + dev_err(dev, "Failed to register MIPI host: %d\n", ret); > + goto err_clk_put; > + } > + > + dsi->bridge.driver_private = dsi; > + dsi->bridge.funcs = _dsi_bridge_funcs; > +#ifdef CONFIG_OF You depend on OF, so this isn't needed. > + dsi->bridge.of_node = pdev->dev.of_node; > +#endif > + > + drm_bridge_add(>bridge); > + > +err_clk_put: > + clk_bulk_put(num_clks, dsi->clks); > + > + return ret; > +} > + > +static int xlnx_dsi_remove(struct platform_device *pdev) > +{ > + struct xlnx_dsi *dsi = platform_get_drvdata(pdev); > + int num_clks = ARRAY_SIZE(xdsi_clks); > + > + mipi_dsi_host_unregister(>dsi_host); > + clk_bulk_disable_unprepare(num_clks, dsi->clks); > + clk_bulk_put(num_clks, dsi->clks); > + > + return 0; > +} > + > +static const struct of_device_id xlnx_dsi_of_match[] = { > + { .compatible = "xlnx,dsi-tx-v2.0"}, > + { } > +}; > +MODULE_DEVICE_TABLE(of, xlnx_dsi_of_match); > + > +static struct platform_driver dsi_driver = { > + .probe = xlnx_dsi_probe, > + .remove = xlnx_dsi_remove, > + .driver = { > + .name = "xlnx-dsi", > + .of_match_table = xlnx_dsi_of_match, > + }, > +}; > + > +module_platform_driver(dsi_driver); > + > +MODULE_AUTHOR("Venkateshwar Rao G "); > +MODULE_DESCRIPTION("Xilinx MIPI DSI host controller driver"); > +MODULE_LICENSE("GPL"); -- Regards, Laurent Pinchart

Re: [LINUX PATCH 1/2] dt-bindings: display: xlnx: Add DSI 2.0 Tx subsystem documentation

2022-05-13 Thread Laurent Pinchart
#address-cells = <1>; > +reg = <0>; > +mipi_dsi_in: endpoint@0 { > +reg = <0>; With a single endpoint you can drop the reg as well as the @0, and the size and address cells in the parent. > +remote-endpoint = <_disp_crtc>; > +}; > +}; > +port@1 { > +reg = <1>; > +mipi_dsi_out: endpoint { > +remote-endpoint = <_in>; > +}; > +}; > +}; > +}; -- Regards, Laurent Pinchart

Re: [PATCH] drm/bridge: cdns-dsi: Add support for pre_enable and post_enable control functions.

2022-05-11 Thread Laurent Pinchart
disable = cdns_dsi_bridge_disable, > + .pre_enable = cdns_dsi_bridge_pre_enable, > .enable = cdns_dsi_bridge_enable, > + .post_disable = cdns_dsi_bridge_post_disable, > }; > > static int cdns_dsi_attach(struct mipi_dsi_host *host, -- Regards, Laurent Pinchart

Re: [PATCH v2 1/3] drm: Remove superfluous arg when calling to drm_fbdev_generic_setup()

2022-05-02 Thread Laurent Pinchart
On Mon, May 02, 2022 at 09:28:45PM +0200, Javier Martinez Canillas wrote: > On 5/2/22 20:36, Laurent Pinchart wrote: > > On Mon, May 02, 2022 at 07:15:16PM +0200, Javier Martinez Canillas wrote: > >> On 5/2/22 18:55, Javier Martinez Canillas wrote: > >> > >&g

Re: [PATCH v2 1/3] drm: Remove superfluous arg when calling to drm_fbdev_generic_setup()

2022-05-02 Thread Laurent Pinchart
b_helper->preferred_bpp = preferred_bpp; > ... > } > > [0]: > https://elixir.bootlin.com/linux/v5.18-rc5/source/drivers/gpu/drm/drm_fb_helper.c#L2553 -- Regards, Laurent Pinchart

Re: [PATCH v2 3/3] drm: Allow simpledrm to setup its emulated FB as firmware provided

2022-05-02 Thread Laurent Pinchart
Hi Javier, On Mon, May 02, 2022 at 07:09:17PM +0200, Javier Martinez Canillas wrote: > On 5/2/22 18:17, Laurent Pinchart wrote: > > On Mon, May 02, 2022 at 05:39:00PM +0200, Javier Martinez Canillas wrote: > >> Indicate to fbdev subsystem that the registered frame

Re: [PATCH v2 3/3] drm: Allow simpledrm to setup its emulated FB as firmware provided

2022-05-02 Thread Laurent Pinchart
> > drm_WARN(dev, !dev->registered, "Device has not been registered.\n"); > @@ -2570,6 +2577,8 @@ void drm_fbdev_generic_setup(struct drm_device *dev, > unsigned int options) > preferred_bpp = 32; > fb_helper->preferred_bpp =

Re: [PATCH v2 2/3] drm/fb-helper: Rename preferred_bpp drm_fbdev_generic_setup() parameter

2022-05-02 Thread Laurent Pinchart
ers > for computing options bitfield values and getting the values respectively > > For now, only the DRM_FB_BPP option exists but other options can be added. > > Suggested-by: Thomas Zimmermann > Signed-off-by: Javier Martinez Canillas > Reviewed-by: Thomas Zimmermann > Revi

Re: [PATCH v2 1/3] drm: Remove superfluous arg when calling to drm_fbdev_generic_setup()

2022-05-02 Thread Laurent Pinchart
> > Passing the same value to the function is unnecessary. Let's cleanup that > in the two drivers that do it. This looks fine, so Reviewed-by: Laurent Pinchart but why do we have two different mechanisms to set the preferred depth ? Could we get all drivers to set dev->mode_config.

Re: [PATCH 2/3] drm/fb-helper: Rename preferred_bpp drm_fbdev_generic_setup() parameter

2022-05-02 Thread Laurent Pinchart
nt options for the emulated framebuffer device registered. > + * > + * The options must be set using DRM_FB_SET_OPTION() and obtained using > + * DRM_FB_GET_OPTION(). The options field are the following: > + * > + * * DRM_FB_BPP: bits per pixel for the device. If the field is not set, > + * @dev->

Re: [PATCH 2/2] Revert "drm: of: Lookup if child node has panel or bridge"

2022-04-29 Thread Laurent Pinchart
Hi Maxime, On Fri, Apr 29, 2022 at 05:46:45PM +0200, Maxime Ripard wrote: > On Fri, Apr 29, 2022 at 01:17:26AM +0300, Laurent Pinchart wrote: > > On Thu, Apr 28, 2022 at 02:09:42PM +0530, Jagan Teki wrote: > > > On Wed, Apr 27, 2022 at 8:04 PM Maxime Ripard wrote: > >

Re: [PATCH 2/2] Revert "drm: of: Lookup if child node has panel or bridge"

2022-04-28 Thread Laurent Pinchart
t; > > > > > > > I really don't have a clear idea of which driver would need to be > > > > switched > > > > over though. Could someone (Jagan?) let me know where it would be > > > > needed? > > > > > > sun6i_mipi_dsi > > > > It doesn't look like sun6i_mipi_dsi is using devm_drm_of_get_bridge at all? > > Correct, patch for this on the mailing list. I've lost track of how we're solving the fallout of this for v5.18. I have received a report that the original commit (80253168dbfd) also broke the rcar-du driver. Could you please provide a git branch (based on drm-fixes or drm-misc-fixes) with any patch that you plan to get merged in v5.18, to let me test them locally ? > > > exynos_drm_dsi > > > > If you reference 711c7adc4687, I don't see why we would need to switch > > it back to the old behaviour. It wasn't iterating over its child node > > before, so what does the switch to drm_of_get_bridge broke exactly? > > Exynos bindings have a child node (unlike OF-graph), the old code is > checking panel and bridge individually so it broke once switch to > devm_drm_of_get_bridge -- Regards, Laurent Pinchart

Re: [PATCH] drm/bridge: tfp410: Make tfp410_fini() return void

2022-04-28 Thread Laurent Pinchart
tform driver remove callbacks is > ignored anyway. This prepares making i2c and platform remove callbacks > return void, too. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/ti-tfp410.c | 12 +++- > 1 file chan

Re: [RFC PATCH 0/3] i915 writeback private framework

2022-04-28 Thread Laurent Pinchart
s/gpu/drm/i915/i915_pci.c | 7 +- > > drivers/gpu/drm/i915/i915_reg.h | 139 +++ > > 15 files changed, 1742 insertions(+), 3 deletions(-) create mode 100644 > > drivers/gpu/drm/i915/display/intel_wb_connector.c > > create mode 100644 drivers/gpu/drm/i915/display/intel_wb_connector.h > > create mode 100644 drivers/gpu/drm/i915/display/intel_wd.c > > create mode 100644 drivers/gpu/drm/i915/display/intel_wd.h -- Regards, Laurent Pinchart

Re: [PATCH v2 0/4] Add Toshiba Visconti AFFINE image processing accelerator driver

2022-04-27 Thread Laurent Pinchart
ti/affine/hwd_affine_reg.h > create mode 100644 drivers/soc/visconti/ipa_common.c > create mode 100644 drivers/soc/visconti/ipa_common.h > create mode 100644 drivers/soc/visconti/uapi/affine.h > create mode 100644 drivers/soc/visconti/uapi/ipa.h -- Regards, Laurent Pinchart

Re: [PATCH 2/2] Revert "drm: of: Lookup if child node has panel or bridge"

2022-04-27 Thread Laurent Pinchart
On Tue, Apr 26, 2022 at 02:54:01PM +0200, Maxime Ripard wrote: > On Tue, Apr 26, 2022 at 02:41:44PM +0200, Paul Kocialkowski wrote: > > On Tue 26 Apr 22, 14:33, Laurent Pinchart wrote: > > > On Tue, Apr 26, 2022 at 09:54:36AM +0200, Paul Kocialkowski wrote: > > > >

Re: [PATCH 2/2] Revert "drm: of: Lookup if child node has panel or bridge"

2022-04-27 Thread Laurent Pinchart
ame_eq(remote, "port") || > + of_node_name_eq(remote, "ports")) > + continue; > + > + if (!(of_node_name_eq(remote, "aux-bus") && > + of_get_child_by_name(remote, "panel"))) > + continue; > + > + goto of_find_panel_or_bridge; > + } > + > /* > * of_graph_get_remote_node() produces a noisy error message if port > * node isn't found and the absence of the port is a legit case here, > @@ -254,6 +273,8 @@ int drm_of_find_panel_or_bridge(const struct > device_node *np, > return -ENODEV; > > remote = of_graph_get_remote_node(np, port, endpoint); > + > +of_find_panel_or_bridge: > if (!remote) > return -ENODEV; -- Regards, Laurent Pinchart

Re: [PATCH v2] drm: rcar-du: Fix Alpha blending issue on Gen3

2022-04-26 Thread Laurent Pinchart
oDSPR2= 0x 0003 and DSPR3= 0x 0001 > > This patch set PnALPHAR register to 0 to avoid this issue. > > Signed-off-by: LUU HOAI > Signed-off-by: Biju Das Reviewed-by: Laurent Pinchart > --- > v1->v2: > * Updated commit description > * Updated the code comment

Re: [PATCH v5 15/19] drm/msm/dpu: initialize dpu encoder and connector for writeback

2022-04-26 Thread Laurent Pinchart
On Tue, Apr 26, 2022 at 05:11:41AM +0300, Dmitry Baryshkov wrote: > On 26/04/2022 03:32, Laurent Pinchart wrote: > > On Sun, Apr 24, 2022 at 05:32:06PM -0700, Abhinav Kumar wrote: > >> Initialize dpu encoder and connector for writeback if the > >> target

Re: [PATCH 2/2] Revert "drm: of: Lookup if child node has panel or bridge"

2022-04-26 Thread Laurent Pinchart
add one for the child node case, maybe: > drm_of_find_child_panel_or_bridge. > > I really don't have a clear idea of which driver would need to be switched > over though. Could someone (Jagan?) let me know where it would be needed? > > Are there cases where we could both expect of graph and child node? > (i.e. does the new helper also need to try via of graph?) I still think we should use OF graph uncondtionally, even in the DSI case. We need to ensure backward-compatibility, but I'd like new bindings (and thus new drivers) to always use OF graph. -- Regards, Laurent Pinchart

Re: [PATCH v5 15/19] drm/msm/dpu: initialize dpu encoder and connector for writeback

2022-04-25 Thread Laurent Pinchart
6 +718,21 @@ static int _dpu_kms_setup_displays(struct drm_device > *dev, > return rc; > } > > + /* Since WB isn't a driver check the catalog before initializing */ > + if (dpu_kms->catalog->wb_count) { > + for (i = 0; i < dpu_kms->catalog->wb_count; i++) { > + if (dpu_kms->catalog->wb[i].id == WB_2) { > + rc = _dpu_kms_initialize_writeback(dev, priv, > dpu_kms, > + > dpu_kms->catalog->wb[i].format_list, > + > dpu_kms->catalog->wb[i].num_formats); > + if (rc) { > + DPU_ERROR("initialize_WB failed, rc = > %d\n", rc); > + return rc; > + } > + } > + } > + } > + > return rc; > } > -- Regards, Laurent Pinchart

Re: [Freedreno] [PATCH v4 03/20] drm: allow real encoder to be passed for drm_writeback_connector

2022-04-25 Thread Laurent Pinchart
On Mon, Apr 25, 2022 at 10:48:07AM -0700, Abhinav Kumar wrote: > On 4/25/2022 10:32 AM, Laurent Pinchart wrote: > > On Mon, Apr 25, 2022 at 01:50:43PM +0300, Dmitry Baryshkov wrote: > >> On Sun, 24 Apr 2022 at 22:59, Laurent Pinchart wrote: > >>> On Sun, Apr 24, 202

Re: [Freedreno] [PATCH v4 03/20] drm: allow real encoder to be passed for drm_writeback_connector

2022-04-25 Thread Laurent Pinchart
On Mon, Apr 25, 2022 at 01:50:43PM +0300, Dmitry Baryshkov wrote: > On Sun, 24 Apr 2022 at 22:59, Laurent Pinchart wrote: > > On Sun, Apr 24, 2022 at 11:23:20AM -0700, Abhinav Kumar wrote: > > > On 4/24/2022 11:12 AM, Abhinav Kumar wrote: > > > > On 4/24/2022 7

Re: [PATCH] drm: rcar-du: Add setting to PnALPHAR register on Gen3

2022-04-24 Thread Laurent Pinchart
y the driver, issues related to alpha blending (such as * incorrect colors or planes being invisible) may still occur if the PnALPHAR * register has a stale value. Set the register to 0 to avoid this. */ > Here the issue they mentioned as "register is not initialized by reset" > > > > + rcar_du_plane_write(rgrp, index, PnALPHAR, 0x); I'd write 0 instead of 0x to match the rest of the driver. Would you mind sending a v2 with these changed and an expanded commit message ? > > > } > > > > > > static void rcar_du_plane_setup_format(struct rcar_du_group *rgrp, -- Regards, Laurent Pinchart

[PATCH] drm: rcar-du: Drop file name from comment header blocks

2022-04-24 Thread Laurent Pinchart
Suggested-by: Geert Uytterhoeven Signed-off-by: Laurent Pinchart --- drivers/gpu/drm/rcar-du/rcar_cmm.c | 2 +- drivers/gpu/drm/rcar-du/rcar_cmm.h | 2 +- drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 2 +- drivers/gpu/drm/rcar-du/rcar_du_crtc.h | 2 +- drivers/gpu/drm

Re: [Freedreno] [PATCH v4 03/20] drm: allow real encoder to be passed for drm_writeback_connector

2022-04-24 Thread Laurent Pinchart
Hi Abhinav, On Sun, Apr 24, 2022 at 11:23:20AM -0700, Abhinav Kumar wrote: > On 4/24/2022 11:12 AM, Abhinav Kumar wrote: > > On 4/24/2022 7:50 AM, Laurent Pinchart wrote: > >> On Fri, Apr 22, 2022 at 04:06:38PM -0700, Abhinav Kumar wrote: > >>> For some vendor d

Re: [PATCH v3 2/4] drm: rcar-du: Fix typo

2022-04-24 Thread Laurent Pinchart
l off them if we are planning to do. > > Laurent, please share your thoughts on this. Geert has a point, the file names cause issues and don't add much value. Would you like to send a patch to drop them all, to replace this one ? I can also handle it myself if you prefer. -- Regards, Laurent Pinchart

Re: [PATCH] drm: rcar-du: Add setting to PnALPHAR register on Gen3

2022-04-24 Thread Laurent Pinchart
e on Gen3. Furthermore, is this really the right fix, shouldn't we instead avoid enabling alpha-blending in PnMR on Gen3 ? > + rcar_du_plane_write(rgrp, index, PnALPHAR, 0x); > } > > static void rcar_du_plane_setup_format(struct rcar_du_group *rgrp, -- Regards, Laurent Pinchart

Re: [PATCH v4 03/20] drm: allow real encoder to be passed for drm_writeback_connector

2022-04-24 Thread Laurent Pinchart
* hardware. > + * > + * For current existing writeback users, this shall continue to be the > + * embedded encoder for the writeback connector. > + */ > + struct drm_encoder *encoder; > + > + /** > + * @internal_encoder: internal encoder used by writeback when > + * drm_writeback_connector_init() is used. > + * @encoder will be assigned to this for those cases > + * > + * This will be unused when drm_writeback_connector_init_with_encoder() > + * is used. >*/ > - struct drm_encoder encoder; > + struct drm_encoder internal_encoder; > > /** >* @pixel_formats_blob_ptr: -- Regards, Laurent Pinchart

Re: [PATCH v4 02/20] drm: introduce drm_writeback_connector_init_with_encoder() API

2022-04-24 Thread Laurent Pinchart
r and its properties > + * using the encoder which already assigned and initialized That sounds a bit convoluted to me. How about * drm_writeback_connector_init_with_encoder - Initialize a writeback connector * with a custom encoder Reviewed-by: Laurent Pinchart > + * > + * @dev: D

Re: [PATCH v4 01/20] drm: allow passing possible_crtcs to drm_writeback_connector_init()

2022-04-24 Thread Laurent Pinchart
move parenthesis where not needed > - use u32 instead of uint32_t for possible_crtcs > > Signed-off-by: Abhinav Kumar > Acked-by: Liviu Dudau > Reviewed-by: Dmitry Baryshkov Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/arm/display/komeda/komeda_wb_connector.c |

Re: [RFC 14/21] v4l: vsp1: Change VSP1 LIF linebuffer FIFO

2022-04-21 Thread Laurent Pinchart
y invest some time to upstream it. Absolutely ! I'm all for helping debugging. > Thank you for your attention and feedback. > > [1] https://github.com/renesas-rcar/linux-bsp/commit/12ea79975a10f > ("v4l: vsp1: Add underrun debug messege option") -- Regards, Laurent Pinchart

Re: [PATCH] drm: bridge: panel: Register connector if DRM device is already registered

2022-04-19 Thread Laurent Pinchart
connector->funcs->reset(connector); > > > + drm_connector_register(connector); > > > + } > > > > Reviewed-by: Jagan Teki > > Fixed typos in commit message. > > Reviewed-by: Robert Foss > > Applied to drm-misc-next Doesn't this open the door to various race conditions ? Also, what happens if the panel bridge is detached and reattached ? If I recall correctly, registering new connectors at runtime is at least partly supported for DP MST, but I'm not sure about unregistration. -- Regards, Laurent Pinchart

Re: [PATCH] drm: bridge: adv7511: Enable DRM_BRIDGE_OP_HPD based on HPD interrupt

2022-04-19 Thread Laurent Pinchart
M_BRIDGE_OP_HPD based on HPD interrupt availability, so that > it will fall back to polling, if HPD is not available. > > Signed-off-by: Biju Das Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/adv7511/adv7511_drv.c | 6 -- > 1 file changed, 4 insertions(+

Re: [PATCH v2] drm: mxsfb: Obtain bus flags from bridge state

2022-04-19 Thread Laurent Pinchart
Alexander Stein > Signed-off-by: Marek Vasut > Cc: Alexander Stein > Cc: Laurent Pinchart > Cc: Lucas Stach > Cc: Peng Fan > Cc: Robby Cai > Cc: Sam Ravnborg > Cc: Stefan Agner Reviewed-by: Laurent Pinchart > --- > V2: Add AB from Alexander > --- > driv

Re: [PATCH v2 5/7] drm: rcar-du: Factorise rcar_du_{atomic_check,modeset_init}

2022-04-15 Thread Laurent Pinchart
return 0; > > - return rcar_du_atomic_check_planes(dev, state); > + return rcdu->info->fns->du_atomic_check_planes(dev, state); > } > > static void rcar_du_atomic_commit_tail(struct drm_atomic_state *old_state) > @@ -882,7 +882,7 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu) > : 0; > > if (!rcar_du_has(rcdu, RCAR_DU_FEATURE_VSP1_SOURCE)) { > - ret = rcar_du_planes_init(rgrp); > + ret = rcdu->info->fns->du_planes_init(rgrp); > if (ret < 0) > return ret; > } > @@ -910,7 +910,7 @@ int rcar_du_modeset_init(struct rcar_du_device *rcdu) > > rgrp = >groups[hwindex / 2]; > > - ret = rcar_du_crtc_create(rgrp, swindex++, hwindex); > + ret = rcdu->info->fns->du_crtc_create(rgrp, swindex++, hwindex); > if (ret < 0) > return ret; > } -- Regards, Laurent Pinchart

Re: [PATCH v2 4/7] drm: rcar-du: Move rcar_du_output_name() to rcar_du_common.c

2022-04-15 Thread Laurent Pinchart
ev/null > +++ b/drivers/gpu/drm/rcar-du/rcar_du_common.c > @@ -0,0 +1,30 @@ > +// SPDX-License-Identifier: GPL-2.0+ > +/* > + * rcar_du_common.c -- R-Car Display Unit Common > + * > + * Copyright (C) 2013-2022 Renesas Electronics Corporation > + * > + * Contact: Laurent Pinchart

Re: [PATCH v2 3/7] drm: rcar-du: Add max_width and max_height to struct rcar_du_device_info

2022-04-15 Thread Laurent Pinchart
* The Gen3 DU uses the VSP1 for memory access, and is limited > - * to frame sizes of 8190x8190. > - */ > - dev->mode_config.max_width = 8190; > - dev->mode_config.max_height = 8190; > - } > + /* > + * The Gen3 DU uses the VSP1 for memory access, and is limited > + * to frame sizes of 8190x8190. > + */ This comment doesn't make much sense here anymore, but I think it's useful to keep the information. How about defining macros for the maximum width and height on different platforms, and moving the comment just before the macro definitions ? > + dev->mode_config.max_width = rcdu->info->max_width; > + dev->mode_config.max_height = rcdu->info->max_height; > > rcdu->num_crtcs = hweight8(rcdu->info->channels_mask); > -- Regards, Laurent Pinchart

Re: [PATCH v2 2/7] drm: rcar-du: Add num_rpf to struct rcar_du_device_info

2022-04-15 Thread Laurent Pinchart
}, > + .num_rpf = 5, > .dsi_clk_mask = BIT(1) | BIT(0), > }; > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > b/drivers/gpu/drm/rcar-du/rcar_du_drv.h > index 101f42df86ea..68c5de59d18d 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.h > +++ b/dr

Re: [PATCH v2 1/7] dt-bindings: display: renesas,du: Document r9a07g044l bindings

2022-04-15 Thread Laurent Pinchart
port@3: false > + > + required: > +- port@0 > +- port@1 > + > + renesas,vsps: > + maxItems: 1 > + > + required: > +- clock-names > +- interrupts > +- resets > +- reset-names > +- renesas,vsps > + > additionalProperties: false > > examples: -- Regards, Laurent Pinchart

Re: [PATCH v2 2/2] drm: rcar-du: Add RZ/G2L DSI driver

2022-04-15 Thread Laurent Pinchart
TP BIT(16) > + > +/* Reset Status Register */ > +#define RSTSR 0x114 > +#define RSTSR_DL0DIR BIT(15) > +#define RSTSR_DLSTPST(0xf << 8) > +#define RSTSR_SWRSTV1BIT(4) > +#define RSTSR_SWRSTIBBIT(3) > +#define RSTSR_SWRSTAPB BIT(2) > +#define RSTSR_SWRSTLPBIT(1) > +#define RSTSR_SWRSTHSBIT(0) > + > +/* Clock Lane Stop Time Set Register */ > +#define CLSTPTSETR 0x314 > +#define CLSTPTSETR_CLKKPT(x) ((x) << 24) > +#define CLSTPTSETR_CLKBFHT(x)((x) << 16) > +#define CLSTPTSETR_CLKSTPT(x)((x) << 2) > + > +/* LP Transition Time Set Register */ > +#define LPTRNSTSETR 0x318 > +#define LPTRNSTSETR_GOLPBKT(x) ((x) << 0) > + > +/* Physical Lane Status Register */ > +#define PLSR 0x320 > +#define PLSR_CLHS2LP BIT(27) > +#define PLSR_CLLP2HS BIT(26) > + > +/* Video-Input Channel 1 Set 0 Register */ > +#define VICH1SET0R 0x400 > +#define VICH1SET0R_VSEN BIT(12) > +#define VICH1SET0R_HFPNOLP BIT(10) > +#define VICH1SET0R_HBPNOLP BIT(9) > +#define VICH1SET0R_HSANOLP BIT(8) > +#define VICH1SET0R_VSTPAFT BIT(1) > +#define VICH1SET0R_VSTARTBIT(0) > + > +/* Video-Input Channel 1 Set 1 Register */ > +#define VICH1SET1R 0x404 > +#define VICH1SET1R_DLY(x)(((x) & 0xfff) << 2) > + > +/* Video-Input Channel 1 Status Register */ > +#define VICH1SR 0x410 > +#define VICH1SR_VIRDYBIT(3) > +#define VICH1SR_RUNNING BIT(2) > +#define VICH1SR_STOP BIT(1) > +#define VICH1SR_STARTBIT(0) > + > +/* Video-Input Channel 1 Pixel Packet Set Register */ > +#define VICH1PPSETR 0x420 > +#define VICH1PPSETR_DT_RGB18 (0x1e << 16) > +#define VICH1PPSETR_DT_RGB18_LS (0x2e << 16) > +#define VICH1PPSETR_DT_RGB24 (0x3e << 16) > +#define VICH1PPSETR_TXESYNC_PULSEBIT(15) > +#define VICH1PPSETR_VC(x)((x) << 22) > + > +/* Video-Input Channel 1 Vertical Size Set Register */ > +#define VICH1VSSETR 0x428 > +#define VICH1VSSETR_VACTIVE(x) (((x) & 0x7fff) << 16) > +#define VICH1VSSETR_VSPOL_LOWBIT(15) > +#define VICH1VSSETR_VSPOL_HIGH (0 << 15) > +#define VICH1VSSETR_VSA(x) (((x) & 0xfff) << 0) > + > +/* Video-Input Channel 1 Vertical Porch Set Register */ > +#define VICH1VPSETR 0x42C This is the only address written as an uppercase hex value. > +#define VICH1VPSETR_VFP(x) (((x) & 0x1fff) << 16) > +#define VICH1VPSETR_VBP(x) (((x) & 0x1fff) << 0) > + > +/* Video-Input Channel 1 Horizontal Size Set Register */ > +#define VICH1HSSETR 0x430 > +#define VICH1HSSETR_HACTIVE(x) (((x) & 0x7fff) << 16) > +#define VICH1HSSETR_HSPOL_LOWBIT(15) > +#define VICH1HSSETR_HSPOL_HIGH (0 << 15) > +#define VICH1HSSETR_HSA(x) (((x) & 0xfff) << 0) > + > +/* Video-Input Channel 1 Horizontal Porch Set Register */ > +#define VICH1HPSETR 0x434 > +#define VICH1HPSETR_HFP(x) (((x) & 0x1fff) << 16) > +#define VICH1HPSETR_HBP(x) (((x) & 0x1fff) << 0) > + > +#endif /* __RZG2L_MIPI_DSI_REGS_H__ */ -- Regards, Laurent Pinchart

<    3   4   5   6   7   8   9   10   11   12   >