Re: [PATCH 03/39] drm: renesas: shmobile: Fix overlay plane disable

2023-06-23 Thread Laurent Pinchart
Geert Uytterhoeven Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c > b/drivers/gpu/drm/renesas/shmobile/shmob_drm_plane.c &

Re: [PATCH 04/39] drm: renesas: shmobile: Fix ARGB32 overlay format typo

2023-06-23 Thread Laurent Pinchart
efinition for the primary plane. > > Fortunately both definitions resolve to the same value, so this bug did > not cause any harm. > > Signed-off-by: Geert Uytterhoeven With the typo in the commit message fixed, Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/renesas/

Re: [PATCH 02/39] media: uapi: Add MEDIA_BUS_FMT_RGB666_2X9 variants

2023-06-23 Thread Laurent Pinchart
_LE isn't supported, I'd leave it out for now. It can be added later once a driver needs it. Reviewed-by: Laurent Pinchart > Signed-off-by: Geert Uytterhoeven > Cc: Mauro Carvalho Chehab > Cc: linux-me...@vger.kernel.org > --- > .../media/v4l/subdev-format

Re: [PATCH 01/39] dt-bindings: display: Add Renesas SH-Mobile LCDC bindings

2023-06-23 Thread Laurent Pinchart
Hi Geert, Thank you for the patch. On Thu, Jun 22, 2023 at 11:21:13AM +0200, Geert Uytterhoeven wrote: > Add device tree bindings for the LCD Controller (LCDC) found in Renesas > SuperH SH-Mobile and ARM SH/R-Mobile SOCs. > > Based on a plain text prototype by Laurent Pinchart. >

Re: [PATCH v2 3/4] drm: Remove references to removed transitional helpers

2023-06-23 Thread Laurent Pinchart
> Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart > --- > v2: > - Drop "first part" in drivers/gpu/drm/drm_plane_helper.c. > --- > drivers/gpu/drm/drm_plane_helper.c | 12 +- > include/drm/drm_crtc.h | 5

Re: [PATCH v2 2/4] drm/todo: Convert list of fbconv links to footnotes

2023-06-23 Thread Laurent Pinchart
tzimmermann/linux/tree/fbconv > - - [2] > https://gitlab.freedesktop.org/tzimmermann/linux/blob/fbconv/drivers/gpu/drm/drm_fbconv_helper.c > + .. [4] https://gitlab.freedesktop.org/tzimmermann/linux/tree/fbconv > + .. [5] > https://gitlab.freedesktop.org/tzimmermann/linux/blob/fbconv/drivers/gpu/drm/drm_fbconv_helper.c > > Contact: Thomas Zimmermann > -- Regards, Laurent Pinchart

Re: [PATCH] fbdev: sh_mobile_lcdcfb: Fix ARGB32 overlay format typo

2023-06-22 Thread Laurent Pinchart
format |= LDBBSIFR_AL_PK | LDBBSIFR_RY | LDBBSIFR_RPKF_ARGB32; Reviewed-by: Laurent Pinchart > break; > case V4L2_PIX_FMT_NV12: > case V4L2_PIX_FMT_NV21: -- Regards, Laurent Pinchart

Re: [PATCH] drm/bridge_connector: use drm_kms_helper_connector_hotplug_event()

2023-06-20 Thread Laurent Pinchart
Cc: Paul Cercueil > Cc: Laurent Pinchart > Cc: Sam Ravnborg Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/drm_bridge_connector.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_bridge_connector.c > b/drivers/gpu/drm/d

Re: [PATCH 3/3] drm/gem-dma: Unexport drm_gem_dma_vm_ops

2023-06-20 Thread Laurent Pinchart
Hi Thomas, Thank you for the patch. On Tue, Jun 20, 2023 at 02:03:23PM +0200, Thomas Zimmermann wrote: > There are no external users of drm_gem_dma_vm_ops. Unexport the symbol. > > Signed-off-by: Thomas Zimmermann Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/drm_g

Re: [PATCH 1/3] drm/rcar-du: Import buffers with GEM DMA's helpers

2023-06-20 Thread Laurent Pinchart
un-export a number of symbols > from the GEM DMA helpers. > > Signed-off-by: Thomas Zimmermann Nice simplification. Reviewed-by: Laurent Pinchart I assume you'll merge the whole series through drm-misc, please let me know if that's not correct. > --- > drivers/gpu/

Re: [PATCH] drm/bridge_connector: Handle drm_connector_init_with_ddc() failures

2023-06-19 Thread Laurent Pinchart
NULL; > struct drm_bridge *bridge, *panel_bridge = NULL; > - int connector_type; > + int connector_type, ret; With 'ret' declared on a separate line, Reviewed-by: Laurent Pinchart > > bridge_connector = kzalloc(sizeof(*bridge_connector), GFP_KERNEL); >

Re: [PATCH] MAINTAINERS: Update info for TI display drivers

2023-06-19 Thread Laurent Pinchart
Hi Tomi, Thank you for the patch. On Mon, Jun 19, 2023 at 11:23:23AM +0300, Tomi Valkeinen wrote: > Add drm-misc as the git tree for tilcdc and omapdrm. Change Tomi's email > to point to ideasonboard.com instead of kernel.org. > > Signed-off-by: Tomi Valkeinen Reviewed-by: Laur

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-15 Thread Laurent Pinchart
evice. > > I think from dt point it is correct to have single device node for > a device. even though device contains PMIC and RTC as separate functionality > With shared resources like IRQ, PINS and Clocks as at the PMIC device is the > one > exposes to this to outside world. > > > > By instating a client device, we are sharing the relevant resources to > > > RTC device driver. > > > > By instantiating a client device, you create a second struct device, which > > is the kernel abstraction of a hardware device. This shows in my opinion > > that we're dealing with two devices here, hence my recommendation of using > > two DT nodes. > > Two DT nodes is the problem. DT maintainer's don't like it, for them it is > just > one device which provides PMIC/RTC functionality. Have they followed this discussion ? > > As you've noticed, with two devices and a single DT node, pinctrl > > complains. You can hack around that by moving the pinctrl configuration > > from the PMIC DT node to another DT node, and that's one first hack. > > PMIC device expose pins and it binds the pins during probe. Since it is a > single device, > we don't need to share this to RTC device. We just need to add pinctrl > definitions > in PMIC device node. This is not a hack. > > > Then, you'll need to have two different device IDs depending on the PMIC > > version to let the RTC driver set the oscillator bit correctly, and that's > > a second hack. > > PMIC has all the information, so it can instantiate and bind with the > configuration > needed for second device. So it is not a hack. > > > A solution with two DT nodes models the hardware better and is cleaner. > > But looks like all other people are happy with single DT node. At the end of the day, it's not my driver, and not my subsystems, so I'll let you make mistakes if you're happy with them. I still strongly think it's a mistake, but I can't get everybody to do things right, can I ? :-) -- Regards, Laurent Pinchart

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-15 Thread Laurent Pinchart
t; > The last versions you posted did not have any pinctrl properties? > > > > > > By default, PMIC_INT# is not populated RZ/G2L SMARC EVK, so I haven't > > > added > > > Support for PMIC_INT# for the patches posted till date. > > > > > > Yesterday I checked with HW people, is there a way to enable PMIC_INT# > > > and they told me to do the above HW modification. > > > > > > Today I found this issue, with this modified HW and PMIC INT# enabled on > > > the DT, > > > while assigning of_node of PMIC with info.of_node. It is just a > > > coincidence. > > > > IC. > > > > So you now have two Linux devices pointing to the same DT node, > > causing pinctrl issues... > > So don't set info.of_node? ;-) > > Without of_node, devm_clk_get() and friends falls back to registered > clkdevs. So you could call clk_register_clkdev() from within the > PMIC driver, and can keep on using devm_clk_get_optional() in the > ISL1208 driver. Seriously, how many hacks are we piling ? :-) > If that fails, there's also software_node.properties, or even the good > old platform_data... -- Regards, Laurent Pinchart

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-14 Thread Laurent Pinchart
, clocks, pinctrl and IRQ properties. > So it will be represented as single node with single compatible. The chip is a single package that contains two independent devices. This is not different than bundling many IP cores in an SoC, we have one DT node per IP core, not a single DT node for the SoC. The fact that we're dealing with an external physical component here isn't relevant. > By instating a client device, we are sharing the relevant resources to > RTC device driver. By instantiating a client device, you create a second struct device, which is the kernel abstraction of a hardware device. This shows in my opinion that we're dealing with two devices here, hence my recommendation of using two DT nodes. As you've noticed, with two devices and a single DT node, pinctrl complains. You can hack around that by moving the pinctrl configuration from the PMIC DT node to another DT node, and that's one first hack. Then, you'll need to have two different device IDs depending on the PMIC version to let the RTC driver set the oscillator bit correctly, and that's a second hack. A solution with two DT nodes models the hardware better and is cleaner. -- Regards, Laurent Pinchart

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-14 Thread Laurent Pinchart
fo" as it results in pinctrl > > failure. info->platformdata and > > Client->dev.platformdata to retrieve this info?? > > Or > > I2C instantiation based on actual oscillator bit value, ie, two > i2c_device_id's > with one for setting oscillator bit and another for clearing oscillator bit > > PMIC driver parses the clock details. Based on firmware version and clock, > It instantiates either i2c_device_id with setting oscillator bit or > clearing oscillator bit. I don't like that hack. I still think that two DT nodes is the best option, I think you're trying hard to hack around a problem that is actually not a problem. -- Regards, Laurent Pinchart

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-12 Thread Laurent Pinchart
Hi Geert, On Mon, Jun 12, 2023 at 03:08:46PM +0200, Geert Uytterhoeven wrote: > On Mon, Jun 12, 2023 at 2:54 PM Laurent Pinchart wrote: > > On Mon, Jun 12, 2023 at 12:42:33PM +, Biju Das wrote: > > > > Subject: Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device AP

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-12 Thread Laurent Pinchart
On Mon, Jun 12, 2023 at 02:44:33PM +0200, Geert Uytterhoeven wrote: > On Mon, Jun 12, 2023 at 2:23 PM Laurent Pinchart wrote: > > On Mon, Jun 12, 2023 at 09:53:02AM +, Biju Das wrote: > > > Hi All, > > > > > > How do we proceed here between [1] and [2]? &

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-12 Thread Laurent Pinchart
ting "renesas,invert-xtoscb" is OK > for > the relevant maintainers?? It's fine with me at least :-) I think a property makes sense, as it describes the device. Updating the device tree in the boot loader based on auto-detection of features is also fairly common (to set the

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-12 Thread Laurent Pinchart
n"; > renesas,raa215300-pmic = <>; /* Parse the handle to get > PMIC version to check Oscillator bit is inverted or not */ This isn't nice. I would instead add a renesas,invert-xtoscb boolean property. If you don't want different DT sources for different revisions

Re: [PATCH 00/53] drm: Convert to platform remove callback returning void

2023-06-09 Thread Laurent Pinchart
remove callback returning void > drm/mediatek: Convert to platform remove callback returning void > drm/kmb: Convert to platform remove callback returning void > drm/ingenic: Convert to platform remove callback returning void > drm/imx/ipuv3: Convert to platform remove callback returning void > drm/imx/dcss: Convert to platform remove callback returning void > drm/etnaviv: Convert to platform remove callback returning void > drm/armada: Convert to platform remove callback returning void -- Regards, Laurent Pinchart

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-08 Thread Laurent Pinchart
the oscillator bit being set correctly, or is that used for the RTC only ? > > > If XIN and XOUT not connected RTC operation not possible. > > > > > > IRQ# (optional) functionality is shared between PMIC and RTC. (PMIC > > > fault for various bucks/LDOs/WDT/OTP/NVM and alarm condition). > > > > IRQs can be shared between multiple devices so this shouldn't be a > > problem. > > OK. How do we represent this IRQ in DT? You can simply reference the same IRQ from the interrupts property of different DT nodes. > > > The board, I have doesn't populate IRQ# pin. If needed some customers > > > can populate IRQ# pin and use it for PMIC fault and RTC alarm. > > > > > > Also, currently my board has PMIC rev a0 where oscillator bit is > > > inverted and internal oscillator is enabled (ie: XIN and XOUT is > > > connected to external crystal) -- Regards, Laurent Pinchart

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-06-08 Thread Laurent Pinchart
T not connected RTC operation not possible. > > IRQ# (optional) functionality is shared between PMIC and RTC. (PMIC > fault for various bucks/LDOs/WDT/OTP/NVM or alarm condition). IRQs can be shared between multiple devices so this shouldn't be a problem. > The board, I have doesn't populate IRQ# pin. If needed some customers > can populate IRQ# pin and use it for PMIC fault or RTC alarm. > > Also, currently my board has PMIC rev a0 where oscillator bit is > inverted and internal oscillator is enabled (ie: XIN and XOUT is > connected to external crystal) -- Regards, Laurent Pinchart

Re: [PATCH 1/1] drm/bridge: Silence error messages upon probe deferral

2023-06-07 Thread Laurent Pinchart
Hi Alexander, On Wed, Jun 07, 2023 at 01:26:03PM +0200, Alexander Stein wrote: > Am Dienstag, 6. Juni 2023, 17:12:29 CEST schrieb Laurent Pinchart: > > On Tue, Jun 06, 2023 at 04:48:33PM +0200, Alexander Stein wrote: > > > When -EPROBE_DEFER is returned do not raise an error, b

Re: [PATCH] drm: xlnx: zynqmp_dpsub: Add missing check for dma_set_mask

2023-06-06 Thread Laurent Pinchart
t;dev, DMA_BIT_MASK(ZYNQMP_DISP_MAX_DMA_BIT)); > + ret = dma_set_mask(dpsub->dev, DMA_BIT_MASK(ZYNQMP_DISP_MAX_DMA_BIT)); > + if (ret) > + return ret; This seems reasonable. Reviewed-by: Laurent Pinchart Tomi, would you be able to quickly test this ? > >

Re: [PATCH v9 0/8] drm: Remove usage of deprecated DRM_* macros

2023-06-06 Thread Laurent Pinchart
On Tue, Jun 06, 2023 at 11:47:50PM +0530, Siddh Raman Pant wrote: > On Tue, 06 Jun 2023 23:19:28 +0530, Laurent Pinchart wrote: > > The idea would be to include the drm_print_deprecated.h header in > > drivers that still use the deprecated macros. > > Yeah, what I meant was i

Re: [PATCH v9 8/8] drm: Remove usage of deprecated DRM_DEBUG_KMS

2023-06-06 Thread Laurent Pinchart
Hi Jani, On Wed, Jun 07, 2023 at 12:39:44AM +0300, Jani Nikula wrote: > On Tue, 06 Jun 2023, Laurent Pinchart wrote: > > On Tue, Jun 06, 2023 at 04:15:22PM +0530, Siddh Raman Pant wrote: > >> drm_print.h says DRM_DEBUG_KMS is deprecated in favor of > >> drm_dbg_kms().

Re: [PATCH v9 0/8] drm: Remove usage of deprecated DRM_* macros

2023-06-06 Thread Laurent Pinchart
On Tue, Jun 06, 2023 at 10:59:14PM +0530, Siddh Raman Pant wrote: > On Tue, 06 Jun 2023 20:35:45 +0530, Laurent Pinchart wrote: > > This is a nice series, thank you for working on that. > > > > Now that the deprecated macros are used in drivers only, would it make &

Re: [PATCH v9 5/8] drm: Remove usage of deprecated DRM_ERROR

2023-06-06 Thread Laurent Pinchart
On Tue, Jun 06, 2023 at 10:36:25PM +0530, Siddh Raman Pant wrote: > On Tue, 06 Jun 2023 20:14:52 +0530, Laurent Pinchart wrote: > > Hi Siddh, > > > > Thank you for the patch. > > Anytime :) > > > > if (!crtcs || !modes || !enabled || !offsets)

Re: [PATCH 1/1] drm/bridge: Silence error messages upon probe deferral

2023-06-06 Thread Laurent Pinchart
When not called from a probe path, dropping the message will result in a silent error, which would be hard to debug :-( > @@ -357,6 +358,7 @@ int drm_bridge_attach(struct drm_encoder *encoder, struct > drm_bridge *bridge, > DRM_ERROR("failed to attach bridge to encoder %s: %d\n", > encoder->name, ret); > #endif > + } > > return ret; > } -- Regards, Laurent Pinchart

Re: [PATCH v9 0/8] drm: Remove usage of deprecated DRM_* macros

2023-06-06 Thread Laurent Pinchart
rm/drm_modeset_helper.c| 2 +- > drivers/gpu/drm/drm_pci.c | 14 +-- > drivers/gpu/drm/drm_plane.c | 46 - > drivers/gpu/drm/drm_probe_helper.c | 39 > drivers/gpu/drm/drm_rect.c | 4 +- > drivers/gpu/drm/drm_scatter.c | 19 ++-- > drivers/gpu/drm/drm_syncobj.c | 2 +- > drivers/gpu/drm/drm_sysfs.c | 22 ++--- > drivers/gpu/drm/drm_vm.c| 45 + > include/drm/drm_print.h | 81 ++-- > 40 files changed, 480 insertions(+), 423 deletions(-) -- Regards, Laurent Pinchart

Re: [PATCH v9 8/8] drm: Remove usage of deprecated DRM_DEBUG_KMS

2023-06-06 Thread Laurent Pinchart
d\n", > + base->rev, base->bytes, base->prod_id, base->ext_count); > > /* +1 for DispID checksum */ > dispid_length = sizeof(*base) + base->bytes + 1; > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 0454

Re: [PATCH v9 6/8] drm: Remove usage of deprecated DRM_DEBUG

2023-06-06 Thread Laurent Pinchart
, "OBJ ID: %d (%d)\n", obj->id, > + kref_read(>refcount)); > kref_put(>refcount, obj->free_cb); > } > } > @@ -209,7 +210,8 @@ EXPORT_SYMBOL(drm_mode_object_put); > void drm_mode_object_get(struct drm_mode_object *obj)

Re: [PATCH v9 2/8] drm/print: Fix and add support for NULL as first argument in drm_* macros

2023-06-06 Thread Laurent Pinchart
On Tue, Jun 06, 2023 at 08:04:39PM +0530, Siddh Raman Pant wrote: > On Tue, 06 Jun 2023 19:35:12 +0530, Laurent Pinchart wrote: > > Hi Siddh, > > > > Thank you for the patch. > > Anytime :) > > > On Tue, Jun 06, 2023 at 04:15:16PM +0530, Siddh Raman P

Re: [PATCH v9 3/8] drm: Remove usage of deprecated DRM_INFO

2023-06-06 Thread Laurent Pinchart
On Tue, Jun 06, 2023 at 08:08:27PM +0530, Siddh Raman Pant wrote: > On Tue, 06 Jun 2023 19:53:22 +0530, Laurent Pinchart wrote: > > Hi Siddh, > > > > Thank you for the patch. > > Anytime :) > > > Any plan to remove it from drivers as well ? If not you shou

Re: [PATCH v9 5/8] drm: Remove usage of deprecated DRM_ERROR

2023-06-06 Thread Laurent Pinchart
gem.c b/drivers/gpu/drm/drm_gem.c > index 1a5a2cd0d4ec..e0d52e69df15 100644 > --- a/drivers/gpu/drm/drm_gem.c > +++ b/drivers/gpu/drm/drm_gem.c > @@ -101,7 +101,7 @@ drm_gem_init(struct drm_device *dev) > vma_offset_manager = drmm_kzalloc(dev, sizeof(*vma_offset_manager), >

Re: [PATCH v9 4/8] drm: Remove usage of deprecated DRM_NOTE

2023-06-06 Thread Laurent Pinchart
ier patch in this series, Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/drm_displayid.c | 2 +- > drivers/gpu/drm/drm_kms_helper_common.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/drm_displayid.c b/drivers/gpu/drm/drm_displ

Re: [PATCH v9 7/8] drm: Remove usage of deprecated DRM_DEBUG_DRIVER

2023-06-06 Thread Laurent Pinchart
(NULL, "SPI speed: %uMHz\n", spi->max_speed_hz / 100); We don't have access to a struct drm_device pointer here, but we have access to a struct device through spi_device. It's quite annoying to be forced by drm_dbg_driver() to use NULL. This isn't a regression, so I'm fine

Re: [PATCH v9 3/8] drm: Remove usage of deprecated DRM_INFO

2023-06-06 Thread Laurent Pinchart
drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > index 39d35fc3a43b..7dfb837d1325 100644 > --- a/drivers/gpu/drm/drm_pci.c > +++ b/drivers/gpu/drm/drm_pci.c > @@ -262,7 +262,7 @@ void drm_legacy_pci_exit(const struct drm_driver *driver, > } > mutex_unlock(_dev_list_lock); > } > - DRM_INFO("Module unloaded\n"); > + drm_info(NULL, "Module unloaded\n"); > } > EXPORT_SYMBOL(drm_legacy_pci_exit); > -- Regards, Laurent Pinchart

Re: [PATCH v9 2/8] drm/print: Fix and add support for NULL as first argument in drm_* macros

2023-06-06 Thread Laurent Pinchart
_debug_enabled(DRM_UT_ ## category) && __ratelimit(_)) > \ > - drm_dev_printk(drm_ ? drm_->dev : NULL, KERN_DEBUG, fmt, ## > __VA_ARGS__); \ > +#define __DRM_DEFINE_DBG_RATELIMITED(category, drm, fmt, ...) > \ > +({ \ > + static DEFINE_RATELIMIT_STATE(rs_, DEFAULT_RATELIMIT_INTERVAL, \ > + DEFAULT_RATELIMIT_BURST); \ > + \ > + if (drm_debug_enabled(DRM_UT_ ## category) && __ratelimit(_))\ > + drm_dev_printk(__drm_dev_ptr(drm), KERN_DEBUG, \ > +fmt, ## __VA_ARGS__);\ > }) > > #define drm_dbg_kms_ratelimited(drm, fmt, ...) \ -- Regards, Laurent Pinchart

Re: [PATCH v9 1/8] Revert "drm: mipi-dsi: Convert logging to drm_* functions."

2023-06-06 Thread Laurent Pinchart
ommit passed mipi_dsi_host ptr. > It worked by accident due to macro magic. > > Reported-by: Jani Nikula > Reviewed-by: Jani Nikula > Signed-off-by: Siddh Raman Pant Reviewed-by: Laurent Pinchart Any chance we could prevent this from happening by turning the macros into inline fu

Re: [PATCH v2 1/2] drm/bridge: imx: fix mixed module-builtin object

2023-06-04 Thread Laurent Pinchart
On Sun, Jun 04, 2023 at 10:45:07PM +0900, Masahiro Yamada wrote: > On Sun, Jun 4, 2023 at 10:26 PM Laurent Pinchart wrote: > > On Sun, Jun 04, 2023 at 04:57:12PM +0900, Masahiro Yamada wrote: > > > With CONFIG_DRM_IMX8QM_LDB=m and CONFIG_DRM_IMX8QXP_LDB=y (or vice > > &g

Re: [PATCH v2 2/2] drm/bridge: imx: turn imx8{qm,qxp}-ldb into single-object modules

2023-06-04 Thread Laurent Pinchart
db.c > diff --git a/drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c > b/drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c > similarity index 100% > rename from drivers/gpu/drm/bridge/imx/imx8qxp-ldb-drv.c > rename to drivers/gpu/drm/bridge/imx/imx8qxp-ldb.c -- Regards, Laurent Pinchart

Re: [PATCH v2 1/2] drm/bridge: imx: fix mixed module-builtin object

2023-06-04 Thread Laurent Pinchart
ruct drm_bridge_funcs *bridge_funcs) > @@ -204,6 +217,7 @@ void ldb_add_bridge_helper(struct ldb *ldb, > drm_bridge_add(_ch->bridge); > } > } > +EXPORT_SYMBOL_GPL(ldb_add_bridge_helper); > > void ldb_remove_bridge_helper(struct ldb *ldb) > { > @@ -219,3 +233,9 @@ void ldb_remove_bridge_helper(struct ldb *ldb) > drm_bridge_remove(_ch->bridge); > } > } > +EXPORT_SYMBOL_GPL(ldb_remove_bridge_helper); > + > +MODULE_DESCRIPTION("i.MX8 LVDS Display Bridge(LDB)/Pixel Mapper bridge > helper"); > +MODULE_AUTHOR("Liu Ying "); > +MODULE_LICENSE("GPL"); > +MODULE_ALIAS("platform:" DRIVER_NAME); Is the alias needed ? With that fixed (if needed), Reviewed-by: Laurent Pinchart -- Regards, Laurent Pinchart

Re: [PATCH v2] drm: rcar-du: Use dev_err_probe() to record cause of KMS init errors

2023-06-04 Thread Laurent Pinchart
This should have read v3. On Sun, Jun 04, 2023 at 01:49:58PM +0300, Laurent Pinchart wrote: > The (large) rcar_du_modeset_init() function can fail for many reasons, > two of two involving probe deferral. Use dev_err_probe() in those code > paths to record the cause of the probe deferral,

[PATCH v2] drm: rcar-du: Use dev_err_probe() to record cause of KMS init errors

2023-06-04 Thread Laurent Pinchart
The (large) rcar_du_modeset_init() function can fail for many reasons, two of two involving probe deferral. Use dev_err_probe() in those code paths to record the cause of the probe deferral, in order to help debugging probe issues. Signed-off-by: Laurent Pinchart --- Change since v1: - Fix

Re: [PATCH v2] drm: rcar-du: Use dev_err_probe() to record cause of KMS init errors

2023-06-04 Thread Laurent Pinchart
involving probe deferral. Use dev_err_probe() in those code > > paths to record the cause of the probe deferral, in order to help > > debugging probe issues. > > > > Signed-off-by: Laurent Pinchart > > --- > > drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c | 4 >

Re: [PATCH 1/2] drm/bridge: imx: fix mixed module-builtin object

2023-06-03 Thread Laurent Pinchart
ch->is_available = true; > + ldb_ch->np = child; > + > + ldb->available_ch_cnt++; > + } > + > + return 0; > +} > + > +static inline int ldb_find_next_bridge_helper(struct ldb *ldb) > +{ > + struct device *dev = ldb->dev; >

Re: [PATCH v2 3/3] drm/panel-simple: allow LVDS format override

2023-06-02 Thread Laurent Pinchart
+ err = -ENOMEM; > + goto free_ddc; > + } > + > + override_desc->bus_format = ret; > + override_desc->bpc = bpc; > + panel->desc = override_desc; > + } > + } > + > connector_type = desc->connector_type; > /* Catch common mistakes for panels. */ > switch (connector_type) { -- Regards, Laurent Pinchart

Re: [PATCH v2 2/3] dt-bindings: display: simple: support non-default data-mapping

2023-06-02 Thread Laurent Pinchart
e = "innolux,g101ice-l01"; > + power-supply = <_lcd_reg>; > + > + data-mapping = "jeida-24"; > + > + port { > +panel_in_lvds: endpoint { > + remote-endpoint = <_out_lvds>; > +}; > + }; > +}; > -- Regards, Laurent Pinchart

Re: [PATCH v2 1/3] dt-bindings: display: move LVDS data-mapping definition to separate file

2023-06-02 Thread Laurent Pinchart
> +$id: http://devicetree.org/schemas/display/lvds-data-mapping.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: LVDS Data Mapping > + > +maintainers: > + - Laurent Pinchart > + - Thierry Reding > + > +description: |+ > + LVDS is a physic

Re: [PATCH 2/3] drm: Remove references to removed transitional helpers

2023-06-02 Thread Laurent Pinchart
Hi Geert, On Fri, Jun 02, 2023 at 01:17:58PM +0200, Geert Uytterhoeven wrote: > On Fri, Jun 2, 2023 at 1:05 PM Laurent Pinchart wrote: > > On Fri, Jun 02, 2023 at 11:11:35AM +0200, Geert Uytterhoeven wrote: > > > The transitional helpers were removed a long time ago, but som

Re: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support

2023-06-02 Thread Laurent Pinchart
uot;, dev_name(>dev)); > > > > Use drm_info(). > > Agreed. > > > > + > > > + drm_fbdev_generic_setup(>ddev, 32); > > > + > > > + return 0; > > > + > > > +error: > > > + drm_kms_helper_poll_fini(>ddev); > > > + return ret; > > > +} [snip] > > > diff --git a/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h > > > b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h > > > new file mode 100644 > > > index ..3b84e91aa64a > > > --- /dev/null > > > +++ b/drivers/gpu/drm/renesas/rz-du/rzg2l_du_drv.h > > > @@ -0,0 +1,89 @@ [snip] > > > +enum rzg2l_du_output { > > > + RZG2L_DU_OUTPUT_DSI0, > > > + RZG2L_DU_OUTPUT_DPAD0, > > > + RZG2L_DU_OUTPUT_MAX, > > > +}; > > > + > > > +/* > > > + * struct rzg2l_du_output_routing - Output routing specification > > > + * @possible_crtcs: bitmask of possible CRTCs for the output > > > + * @port: device tree port number corresponding to this output route > > > + * > > > + * The DU has 2 possible outputs (DPAD0, DSI0). Output routing data > > > + * specify the valid SoC outputs, which CRTCs can drive the output, and > > > the type > > > + * of in-SoC encoder for the output. > > > + */ > > > +struct rzg2l_du_output_routing { > > > + unsigned int possible_crtcs; > > > + unsigned int port; > > > +}; > > > + > > > +/* > > > + * struct rzg2l_du_device_info - DU model-specific information > > > + * @channels_mask: bit mask of available DU channels > > > + * @routes: array of CRTC to output routes, indexed by output > > > (RZG2L_DU_OUTPUT_*) > > > + */ > > > +struct rzg2l_du_device_info { > > > + unsigned int channels_mask; > > > + struct rzg2l_du_output_routing routes[RZG2L_DU_OUTPUT_MAX]; > > > +}; > > > > The driver supports a single SoC, with two outputs, connected to the > > same DU channel. Do you really need to copy the rzg2l_du_device_info > > abstraction from the rcar-du driver, or could you simplify the code ? > > After adding basic support, as an optimization > will simplify the code later. Hope it is ok for you?? I'm OK with patches on top. Please don't forget about them :-) [snip] -- Regards, Laurent Pinchart

[GIT PULL FOR v6.5] drm: rcar-du: Miscellaneous changes

2023-06-02 Thread Laurent Pinchart
esas}/shmobile/shmob_drm_drv.c (100%) rename drivers/gpu/drm/{ => renesas}/shmobile/shmob_drm_drv.h (100%) rename drivers/gpu/drm/{ => renesas}/shmobile/shmob_drm_kms.c (100%) rename drivers/gpu/drm/{ => renesas}/shmobile/shmob_drm_kms.h (100%) rename drivers/gpu/drm/{ => renesas}/shmobile/shmob_drm_plane.c (100%) rename drivers/gpu/drm/{ => renesas}/shmobile/shmob_drm_plane.h (100%) rename drivers/gpu/drm/{ => renesas}/shmobile/shmob_drm_regs.h (100%) -- Regards, Laurent Pinchart

Re: [PATCH v9 RESEND 0/5] Add RZ/{G2L,G2LC} and RZ/V2L Display Unit support

2023-06-02 Thread Laurent Pinchart
; > > OK, I will do so. I've reviewed 4/5 in the meantime, but changes are > > needed, so I won't wait for v10 before applying 1/5. > > I have incorporated review comments for v9. I need to rebase my changes. > > Is the pull request being done to drm-misc-next? I've just sen

Re: [PATCH 3/3] drm: Fix references to drm_plane_helper_check_state()

2023-06-02 Thread Laurent Pinchart
exists, but is part of drm_atomic_helper_check_plane_state(). > > Signed-off-by: Geert Uytterhoeven Reviewed-by: Laurent Pinchart > --- > Interestingly, all these comments appeared only after the commit that > removed the function... > > This is against next-20230602, which does not have the >

Re: [PATCH 2/3] drm: Remove references to removed transitional helpers

2023-06-02 Thread Laurent Pinchart
> void (*atomic_update)(struct drm_plane *plane, > struct drm_atomic_state *state); > @@ -1376,9 +1371,8 @@ struct drm_plane_helper_funcs { >* has picked. See drm_atomic_helper_commit_planes() for a discussion of >* the tradeoffs and variants of plane commit helpers. >* > - * This callback is used by the atomic modeset helpers and by the > - * transitional plane helpers, but it is optional. It's intended to > - * reverse the effects of @atomic_enable. > + * This callback is used by the atomic modeset helpers, but it is > + * optional. It's intended to reverse the effects of @atomic_enable. >*/ > void (*atomic_disable)(struct drm_plane *plane, > struct drm_atomic_state *state); -- Regards, Laurent Pinchart

Re: [PATCH 1/3] drm/todo: Add atomic modesetting references

2023-06-02 Thread Laurent Pinchart
non-converted driver (again virtual HW drivers for KVM are still all > -suitable). > +suitable). The "Atomic mode setting design overview" series [2][3] at s/ / / Reviewed-by: Laurent Pinchart > +LWN.net can also be helpful. > > As part of this drivers also need t

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-05-31 Thread Laurent Pinchart
Hi Geert, On Wed, May 31, 2023 at 02:51:48PM +0200, Geert Uytterhoeven wrote: > On Wed, May 31, 2023 at 10:59 AM Laurent Pinchart wrote: > > On Mon, May 29, 2023 at 09:00:43AM +, Biju Das wrote: > > > > Subject: Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device A

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-05-31 Thread Laurent Pinchart
this function, where the caller gets the name from. > > > > > > Are you ok with these wordings? > > > > > > * This function creates and returns an I2C ancillary client whose I2C > > > address > > > * is retrieved from the platform firmware based on the given slave name. > > > If > > > * aux_device_name is not NULL, the ancillary's device parent > > > * will be set to the primary device otherwise it will be set to I2C > > > adapter. > > > > The wording is better, but this is not what you have implemented in the > > code. The name doesn't select which parent is used. > > It is the same implemented in the code. > > For the existing users, aux_device_name is NULL --> The parent is set > as "I2C adapter". > > For instantiating a "i2c client device", aux_device_name is not NULL > --> The parent is set as primary device. > > The primary device is the one instantiated the "i2c client device" using > i2c_new_ancillary_device(). > > Please correct me if anything wrong here. Before your patch: struct i2c_client *i2c_new_ancillary_device(struct i2c_client *client, const char *name, u16 default_addr) { [...] return i2c_new_dummy_device(client->adapter, addr); } struct i2c_client *i2c_new_dummy_device(struct i2c_adapter *adapter, u16 address) { struct i2c_board_info info = { I2C_BOARD_INFO("dummy", address), }; return i2c_new_client_device(adapter, ); } struct i2c_client * i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info) { struct i2c_client *client; int status; client = kzalloc(sizeof *client, GFP_KERNEL); if (!client) return ERR_PTR(-ENOMEM); client->adapter = adap; [...] client->dev.parent = >adapter->dev; [...] return client; [...] } i2c_new_ancillary_device() returns an i2c_client with client->dev.parent set to the I2C adapter device. After your patch: struct i2c_client *i2c_new_ancillary_device(struct i2c_client *client, const char *name, u16 default_addr, const char *aux_device_name) { [...] return __i2c_new_dummy_device(client->adapter, addr, aux_device_name, >dev); } static struct i2c_client *__i2c_new_dummy_device(struct i2c_adapter *adapter, u16 address, const char *name, struct device *parent) { struct i2c_board_info info = { I2C_BOARD_INFO("dummy", address), }; [...] return __i2c_new_client_device(adapter, , parent); } static struct i2c_client * __i2c_new_client_device(struct i2c_adapter *adap, struct i2c_board_info const *info, struct device *parent) { struct i2c_client *client; int status; client = kzalloc(sizeof *client, GFP_KERNEL); if (!client) return ERR_PTR(-ENOMEM); client->adapter = adap; [...] client->dev.parent = parent ? parent : >adapter->dev; [...] return client; [...] } i2c_new_ancillary_device() returns an i2c_client with client->dev.parent set to the main i2c_client device, *regardless* of the value of the aux_device_name parameter. The behaviour of i2c_new_ancillary_device() has changed for existing users. > > > * If no address is specified by the firmware default_addr is used. > > > > > > > > > > the ancillary's device parent > > > > > > > + * will be set to the primary device. > > > > > > > > > > > > This doesn't seem to match the implementation. With this patch > > > > > > the ancillary device's parent is always the primary device. Are > > > > > > you sure this won't cause any regression ? > > > > > > > > > > There is no regression as existing users only instantiate dummy > > > > > device. > > > > > > > > Sorry, I don't follow you here. Existing callers of > > > > i2c_new_ancillary_device() today get an i2c_client device whose > > > > parent is the I2C adapter. With this patch they will get an > > > > i2c_client device whose parent is the main i2c_client. That's a > > > > change in behaviour, which could cause all sorts of issues. > > > > > > Please see the patch snippet below, there is no regression. > > > > > > client->dev.parent = parent ? parent : >adapter->dev; > > > > When called from i2c_new_ancillary_device(), __i2c_new_dummy_device() as > > a non-NULL parent argument. There is no change of behaviour *for > > i2c_new_dummy_device()*, but thre is a change of behaviour *for > > i2c_new_ancillary_device()*. > > I don't think I understand what you mean. > > For existing users, i2c_new_ancillary_device(..., > aux_device_name=NULL) the behaviour is not changed. > > Could you please elaborate further? > > > > > > > And why do you need this ? > > > > > > > > > > As per Krzysztof [2], > > > > > > > > > > The DT schema allows multiple addresses for children. But we lack > > > > > implementation of parent child relationship, As parent owns the > > > > > resources. > > > > > Child device needs to parse parent node to get some resource like > > > > > clocks. > > > > > > > > > > [2] > > > > > > > > The I2C ancillary clients are not meant to be handled by separate > > > > drivers. > > > > > > Is it a Linux rule?? > > > > It's an I2C subsystem rule as far as I can tell. This is how it has been > > designed. > > Wolfram/Geert: > > Do you agree with Laurent's statement? -- Regards, Laurent Pinchart

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-05-31 Thread Laurent Pinchart
gt; > i2c_client instances for the secondary I2C addresses. Those i2c_client > > instances are not bound to a separate driver, > > Wolfram/Geert, Is it limitation from i2c? > > > so there should be no code > > that needs to look at the parent for resources. > > > > > > > If no address is specified by the firmware > > > > > + * default_addr is used. If no aux_device_name is specified by > > > > > + the firmware, it > > > > > > > > Same here regarding firmware. > > > > > > > > > + * will create an I2C dummy client. > > > > > * > > > > > * On DT-based platforms the address is retrieved from the "reg" > > property entry > > > > > * cell whose "reg-names" value matches the slave name. > > > > > @@ -1139,8 +1167,9 @@ > > EXPORT_SYMBOL_GPL(devm_i2c_new_dummy_device); > > > > > * i2c_unregister_device(); or an ERR_PTR to describe the error. > > > > > */ > > > > > struct i2c_client *i2c_new_ancillary_device(struct i2c_client > > *client, > > > > > - const char *name, > > > > > - u16 default_addr) > > > > > + const char *name, > > > > > + u16 default_addr, > > > > > + const char *aux_device_name) > > > > > { > > > > > struct device_node *np = client->dev.of_node; > > > > > u32 addr = default_addr; > > > > > @@ -1153,7 +1182,8 @@ struct i2c_client > > *i2c_new_ancillary_device(struct i2c_client *client, > > > > > } > > > > > > > > > > dev_dbg(>adapter->dev, "Address for %s : 0x%x\n", > > name, addr); > > > > > - return i2c_new_dummy_device(client->adapter, addr); > > > > > + return __i2c_new_dummy_device(client->adapter, addr, > > aux_device_name, > > > > > + >dev); > > > > > } > > > > > EXPORT_SYMBOL_GPL(i2c_new_ancillary_device); > > > > > > > > > > diff --git a/drivers/media/i2c/adv748x/adv748x-core.c > > > > > b/drivers/media/i2c/adv748x/adv748x-core.c > > > > > index 4498d78a2357..5bdf7b0c6bf3 100644 > > > > > --- a/drivers/media/i2c/adv748x/adv748x-core.c > > > > > +++ b/drivers/media/i2c/adv748x/adv748x-core.c > > > > > @@ -186,7 +186,7 @@ static int adv748x_initialise_clients(struct > > > > adv748x_state *state) > > > > > state->i2c_clients[i] = i2c_new_ancillary_device( > > > > > state->client, > > > > > adv748x_default_addresses[i].name, > > > > > - > > adv748x_default_addresses[i].default_addr); > > > > > + > > > > > adv748x_default_addresses[i].default_addr, > > > > NULL); > > > > > > > > > > if (IS_ERR(state->i2c_clients[i])) { > > > > > adv_err(state, "failed to create i2c client > > %u\n", i); > > > > diff --git > > > > > a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c index > > > > > 3d0898c4175e..63fa44c9d27c 100644 > > > > > --- a/drivers/media/i2c/adv7604.c > > > > > +++ b/drivers/media/i2c/adv7604.c > > > > > @@ -2935,7 +2935,8 @@ static struct i2c_client > > > > *adv76xx_dummy_client(struct v4l2_subdev *sd, > > > > > else > > > > > new_client = i2c_new_ancillary_device(client, > > > > > adv76xx_default_addresses[page].name, > > > > > - > > adv76xx_default_addresses[page].default_addr); > > > > > + > > adv76xx_default_addresses[page].default_addr, > > > > > + NULL); > > > > > > > > > > if (!IS_ERR(new_client)) > > > > > io_write(sd, io_reg, new_client->addr << 1); diff -- > > git > > > > > a/include/linux/i2c.h b/include/linux/i2c.h index > > > > > 13a1ce38cb0c..0ce344724209 100644 > > > > > --- a/include/linux/i2c.h > > > > > +++ b/include/linux/i2c.h > > > > > @@ -489,7 +489,8 @@ devm_i2c_new_dummy_device(struct device *dev, > > > > > struct i2c_adapter *adap, u16 addr struct i2c_client * > > > > > i2c_new_ancillary_device(struct i2c_client *client, > > > > >const char *name, > > > > > - u16 default_addr); > > > > > + u16 default_addr, > > > > > + const char *aux_device_name); > > > > > > > > > > void i2c_unregister_device(struct i2c_client *client); > > > > > -- Regards, Laurent Pinchart

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-05-31 Thread Laurent Pinchart
e *np = client->dev.of_node; > > > u32 addr = default_addr; > > > @@ -1153,7 +1182,8 @@ struct i2c_client *i2c_new_ancillary_device(struct > > > i2c_client *client, > > > } > > > > > > dev_dbg(>adapter->dev, "Address for %s : 0x%x\n", name, addr); > > > - return i2c_new_dummy_device(client->adapter, addr); > > > + return __i2c_new_dummy_device(client->adapter, addr, aux_device_name, > > > + >dev); > > > } > > > EXPORT_SYMBOL_GPL(i2c_new_ancillary_device); > > > > > > diff --git a/drivers/media/i2c/adv748x/adv748x-core.c > > > b/drivers/media/i2c/adv748x/adv748x-core.c > > > index 4498d78a2357..5bdf7b0c6bf3 100644 > > > --- a/drivers/media/i2c/adv748x/adv748x-core.c > > > +++ b/drivers/media/i2c/adv748x/adv748x-core.c > > > @@ -186,7 +186,7 @@ static int adv748x_initialise_clients(struct > > adv748x_state *state) > > > state->i2c_clients[i] = i2c_new_ancillary_device( > > > state->client, > > > adv748x_default_addresses[i].name, > > > - adv748x_default_addresses[i].default_addr); > > > + adv748x_default_addresses[i].default_addr, > > NULL); > > > > > > if (IS_ERR(state->i2c_clients[i])) { > > > adv_err(state, "failed to create i2c client %u\n", i); > > diff --git > > > a/drivers/media/i2c/adv7604.c b/drivers/media/i2c/adv7604.c index > > > 3d0898c4175e..63fa44c9d27c 100644 > > > --- a/drivers/media/i2c/adv7604.c > > > +++ b/drivers/media/i2c/adv7604.c > > > @@ -2935,7 +2935,8 @@ static struct i2c_client > > *adv76xx_dummy_client(struct v4l2_subdev *sd, > > > else > > > new_client = i2c_new_ancillary_device(client, > > > adv76xx_default_addresses[page].name, > > > - adv76xx_default_addresses[page].default_addr); > > > + adv76xx_default_addresses[page].default_addr, > > > + NULL); > > > > > > if (!IS_ERR(new_client)) > > > io_write(sd, io_reg, new_client->addr << 1); diff --git > > > a/include/linux/i2c.h b/include/linux/i2c.h index > > > 13a1ce38cb0c..0ce344724209 100644 > > > --- a/include/linux/i2c.h > > > +++ b/include/linux/i2c.h > > > @@ -489,7 +489,8 @@ devm_i2c_new_dummy_device(struct device *dev, > > > struct i2c_adapter *adap, u16 addr struct i2c_client * > > > i2c_new_ancillary_device(struct i2c_client *client, > > >const char *name, > > > - u16 default_addr); > > > + u16 default_addr, > > > + const char *aux_device_name); > > > > > > void i2c_unregister_device(struct i2c_client *client); > > > -- Regards, Laurent Pinchart

[PATCH v2] drm: rcar-du: Use dev_err_probe() to record cause of KMS init errors

2023-05-30 Thread Laurent Pinchart
The (large) rcar_du_modeset_init() function can fail for many reasons, two of two involving probe deferral. Use dev_err_probe() in those code paths to record the cause of the probe deferral, in order to help debugging probe issues. Signed-off-by: Laurent Pinchart --- drivers/gpu/drm/renesas

Re: [PATCH] drm: rcar-du: Use dev_err_probe()

2023-05-30 Thread Laurent Pinchart
Hi Geert, On Tue, May 30, 2023 at 11:38:44AM +0200, Geert Uytterhoeven wrote: > On Tue, May 30, 2023 at 11:34 AM Laurent Pinchart wrote: > > Replace manual handling of EPROBE_DEFER with dev_err_probe() to simplify > > the code. > > > > Signed-off-by: Laurent Pinchart

[PATCH] drm: rcar-du: Replace DRM_INFO() with drm_info()

2023-05-30 Thread Laurent Pinchart
drm_info() adds proper context to the kernel log message, as it receives the drm_device pointer. It is thus preferred over DRM_INFO(). Replace the latter with the former. Signed-off-by: Laurent Pinchart --- drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c | 2 +- 1 file changed, 1 insertion(+), 1

[PATCH] drm: rcar-du: Use dev_err_probe()

2023-05-30 Thread Laurent Pinchart
Replace manual handling of EPROBE_DEFER with dev_err_probe() to simplify the code. Signed-off-by: Laurent Pinchart --- drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/gpu/drm/renesas/rcar-du/rcar_du_drv.c b/drivers

Re: [PATCH v9 RESEND 0/5] Add RZ/{G2L,G2LC} and RZ/V2L Display Unit support

2023-05-29 Thread Laurent Pinchart
; > > Please let me know your preference. > > > > > > Cheers, > > > Biju > > > > > > > > > > -Original Message- > > > > From: Biju Das > > > > Sent: Monday, May 15, 2023 8:58 AM > > > > To: David Airl

Re: [PATCH v9 RESEND 4/5] drm: Add RZ/G2L DU Support

2023-05-29 Thread Laurent Pinchart
Hi Biju, Thank you for the patch. This is a partial review, because the driver is big, and because some changes in v10 will (hopefully) simplify the code and make review easier. On Tue, May 02, 2023 at 11:09:11AM +0100, Biju Das wrote: > The LCD controller is composed of Frame Compression

Re: [PATCH v9 RESEND 0/5] Add RZ/{G2L,G2LC} and RZ/V2L Display Unit support

2023-05-29 Thread Laurent Pinchart
id Airlie ; Daniel Vetter ; > > Philipp Zabel ; Geert Uytterhoeven > > ; Laurent Pinchart > > ; Kieran Bingham > > > > Cc: dri-devel@lists.freedesktop.org; linux-renesas-...@vger.kernel.org; > > Fabrizio Castro ; Prabhakar Mahadev Lad > > > > Subject: RE:

Re: [PATCH v9 RESEND 2/5] dt-bindings: display: Document Renesas RZ/G2L DU bindings

2023-05-29 Thread Laurent Pinchart
/bindings/display/renesas,rzg2l-du.yaml > @@ -0,0 +1,124 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/renesas,rzg2l-du.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +titl

Re: [PATCH v5 01/11] i2c: Enhance i2c_new_ancillary_device API

2023-05-29 Thread Laurent Pinchart
0898c4175e..63fa44c9d27c 100644 > --- a/drivers/media/i2c/adv7604.c > +++ b/drivers/media/i2c/adv7604.c > @@ -2935,7 +2935,8 @@ static struct i2c_client *adv76xx_dummy_client(struct > v4l2_subdev *sd, > else > new_client = i2c_new_ancillary_device(client, > adv76xx_default_addresses[page].name, > - adv76xx_default_addresses[page].default_addr); > + adv76xx_default_addresses[page].default_addr, > + NULL); > > if (!IS_ERR(new_client)) > io_write(sd, io_reg, new_client->addr << 1); > diff --git a/include/linux/i2c.h b/include/linux/i2c.h > index 13a1ce38cb0c..0ce344724209 100644 > --- a/include/linux/i2c.h > +++ b/include/linux/i2c.h > @@ -489,7 +489,8 @@ devm_i2c_new_dummy_device(struct device *dev, struct > i2c_adapter *adap, u16 addr > struct i2c_client * > i2c_new_ancillary_device(struct i2c_client *client, >const char *name, > - u16 default_addr); > + u16 default_addr, > + const char *aux_device_name); > > void i2c_unregister_device(struct i2c_client *client); > -- Regards, Laurent Pinchart

Re: [PATCH v2] drm: rcar-du: remove R-Car H3 ES1.* workarounds

2023-05-09 Thread Laurent Pinchart
p decided to remove upstream support > for this SoC and prevent booting it. Public users only have ES2 onwards. > > Signed-off-by: Wolfram Sang > Reviewed-by: Kieran Bingham Reviewed-by: Laurent Pinchart > --- > > This is the last ES1 bit remaining, would be awesome if it could go

Re: [PATCH 1/3] dt-bindings: display: hdmi-connector: add hdmi-pwr supply

2023-05-07 Thread Laurent Pinchart
gt; description: GPIO signal to enable DDC bus > maxItems: 1 > > + hdmi-pwr-supply: > +description: Power supply for the HDMI 5v pin connector I'd write description: Power supply for the HDMI +5V Power pin to match the HDMI specification. With that, Reviewed-by: Lau

Re: [PATCH 1/3] dt-bindings: display: hdmi-connector: add hdmi-pwr supply

2023-05-07 Thread Laurent Pinchart
ee the above > error(s), then make sure 'yamllint' is installed and dt-schema is up to > date: > > pip3 install dtschema --upgrade > > Please check and re-submit after running the above command yourself. Note > that DT_SCHEMA_FILES can be set to your schema file to speed up checking > your schema. However, it must be unset to test all examples with your schema. -- Regards, Laurent Pinchart

Re: [PATCH 3/3] drm/bridge: display-connector: handle hdmi-pwr supply

2023-05-07 Thread Laurent Pinchart
ret = regulator_enable(conn->connector_pwr); > + if (ret) { > + dev_err(>dev, "failed to enable DP PWR regulator: > %d\n", ret); > + return ret; > + } > } > > conn->bridge.funcs = _connector_bridge_funcs; -- Regards, Laurent Pinchart

Re: [PATCH 2/3] drm/bridge: display-connector: rename dp_pwr to connector_pwr

2023-05-07 Thread Laurent Pinchart
tor*connector_pwr; This makes sense, but I would shorten the name to just "pwr", "power" or "supply". The field is part of the display_connector structure, so it implicitly refers to the connector. With or without that change, Reviewed-by: Laurent Pinchart

Re: [PATCH 08/53] drm/bridge: display-connector: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/display-connector.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deletion

Re: [PATCH 09/53] drm/bridge: fsl-ldb: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/fsl-ldb.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deletions(-) >

Re: [PATCH 13/53] drm/bridge: simple-bridge: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/simple-bridge.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deletion

Re: [PATCH 16/53] drm/bridge: tfp410: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/ti-tfp410.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deletions(-

Re: [PATCH 15/53] drm/bridge: thc63lvd1024: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/thc63lvd1024.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deletion

Re: [PATCH 11/53] drm/bridge: lvds-codec: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/lvds-codec.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deletions(-)

Re: [PATCH 10/53] drm/imx/imx8*: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
onvert the imx8 drm drivers from always returning zero in the > remove callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/imx/imx8qm-ldb-drv.c | 6 ++ > drivers/gp

Re: [PATCH 35/53] drm/panel: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ially convert the drm panel drivers from always returning zero in the > remove callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/panel/panel-lvds.c | 6 ++ > drivers/gpu/drm/panel/panel-

Re: [PATCH 37/53] drm/rcar-du: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
lly convert the rcar-du drm driver from always returning zero in > the remove callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/rcar-du/rcar_cmm.c | 6 ++ > drivers/gpu/drm/rcar-du/rcar_du_d

Re: [PATCH 20/53] drm/hisilicon: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
y convert the hisilicon drm drivers from always returning zero > in the remove callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c| 6 ++ > drivers/gpu/drm/hisilic

Re: [PATCH 39/53] drm/shmobile: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/shmobile/shmob_drm_drv.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deletions(

Re: [PATCH 34/53] drm/omap: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
convert the omap drm driver from always returning zero in the > remove callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/omapdrm/dss/dispc.c | 5 ++--- > drivers/gpu/drm/omapdrm/dss/dsi.c

Re: [PATCH 07/53] drm/bridge: cdns-dsi: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/cadence/cdns-dsi-core.c | 6 ++ > 1 file changed, 2 insertions(+), 4 d

Re: [PATCH 14/53] drm/bridge: synopsys: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
convert the synopsis bridge drivers from always returning zero > in the remove callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.c | 6 ++ > drivers/gp

Re: [PATCH 12/53] drm/bridge: nwl-dsi: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/nwl-dsi.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) >

Re: [PATCH 53/53] drm/xlnx/zynqmp_dpsub: Convert to platform remove callback returning void

2023-05-07 Thread Laurent Pinchart
ly convert this driver from always returning zero in the remove > callback to the void returning variant. > > Signed-off-by: Uwe Kleine-König Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 6 ++ > 1 file changed, 2 insertions(+), 4 deleti

Re: [PATCH 1/1] drm/bridge: ti-sn65dsi83: Fix enable error path

2023-05-04 Thread Laurent Pinchart
d-off-by: Alexander Stein Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/bridge/ti-sn65dsi83.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/bridge/ti-sn65dsi83.c > b/drivers/gpu/drm/bridge/ti-sn65dsi83.c > index 75286c9afbb9..1f5c079

Re: [PATCH v8 5/5] MAINTAINERS: Add maintainer for RZ DU drivers

2023-04-24 Thread Laurent Pinchart
Hi Biju, Thank you for the patch. On Mon, Apr 24, 2023 at 05:10:24PM +0100, Biju Das wrote: > Add my self as maintainer for RZ DU drivers. > While at it, update the entries for rcar-du and shmobile. > > Signed-off-by: Biju Das Reviewed-by: Laurent Pinchart > --- >

Re: [PATCH v8 3/5] dt-bindings: display: renesas,rzg2l-du: Document RZ/V2L DU bindings

2023-04-24 Thread Laurent Pinchart
by: Rob Herring Reviewed-by: Laurent Pinchart > --- > v7->v8: > * Fixed the typo vsp2->du > * Added Rb tag from Rob as the change is trivial. > v7: > * New patch. > --- > .../devicetree/bindings/display/renesas,rzg2l-du.yaml| 9 +++-- > 1 file changed,

Re: [PATCH v8 2/5] dt-bindings: display: Document Renesas RZ/G2L DU bindings

2023-04-24 Thread Laurent Pinchart
@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/renesas,rzg2l-du.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Renesas RZ/G2L Display Unit (DU) > + > +

Re: [PATCH v8 1/5] drm: Place Renesas drivers in a separate dir

2023-04-24 Thread Laurent Pinchart
Hi Biju, Thank you for the patch. On Mon, Apr 24, 2023 at 05:10:20PM +0100, Biju Das wrote: > Create vendor specific renesas directory and move renesas drivers > to that directory. > > Signed-off-by: Biju Das Reviewed-by: Laurent Pinchart > ---

Re: [PATCH] dt-bindings: display: Fix lvds.yaml references

2023-04-18 Thread Laurent Pinchart
ricter. > > Signed-off-by: Rob Herring Reviewed-by: Laurent Pinchart > --- > .../devicetree/bindings/display/panel/advantech,idk-1110wr.yaml | 2 +- > .../devicetree/bindings/display/panel/innolux,ee101ia-01d.yaml | 2 +- > .../devicetree/bindings/display/panel/mitsubishi,aa104

Re: [PATCH v2 0/5] drm: shmobile: Fixes and enhancements

2023-04-18 Thread Laurent Pinchart
Hi Geert, On Tue, Apr 18, 2023 at 10:00:35AM +0200, Geert Uytterhoeven wrote: > On Tue, Apr 18, 2023 at 9:49 AM Laurent Pinchart wrote: > > On Mon, Apr 17, 2023 at 03:40:20PM +0200, Geert Uytterhoeven wrote: > > > Currently, there are two drivers for the LCD controller on Re

Re: [PATCH v2 0/5] drm: shmobile: Fixes and enhancements

2023-04-18 Thread Laurent Pinchart
nesas SoC platforms > > drivers/gpu/drm/shmobile/Kconfig | 4 +-- > drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 35 +++--- > drivers/gpu/drm/shmobile/shmob_drm_drv.c | 3 ++ > drivers/gpu/drm/shmobile/shmob_drm_kms.c | 9 -- > drivers/gpu/dr

<    1   2   3   4   5   6   7   8   9   10   >