Re: [PATCH v3 2/3] dt-bindings: usb-connector: Add reference to graph schema

2020-11-11 Thread Laurent Pinchart
Hi Rob, Thank you for the patch. On Mon, Nov 02, 2020 at 02:36:55PM -0600, Rob Herring wrote: > Now that we have a graph schema, reference it from the usb-connector > schema. > > Signed-off-by: Rob Herring Reviewed-by: Laurent Pinchart > --- > v3: new patch > >

Re: [PATCH v3 1/3] dt-bindings: Convert graph bindings to json-schema

2020-11-11 Thread Laurent Pinchart
be required. Should we set additionalProperties: false here ? > + > + ports: > +type: object > +description: | > + If there is more than one port node or 'reg' property present in port > + nodes then '#address-cells' and '#size-cells' properties are re

Re: [PATCH v2 2/7] media: uvcvideo: Move guid to entity

2020-11-05 Thread Laurent Pinchart
, 16); > + break; > + case UVC_VC_PROCESSING_UNIT: > + memcpy(entity->guid, uvc_processing_guid, 16); > + break; > + } Given that the GUID is set in uvc_parse_vendor_control() and uvc_parse_standard_control() for extension units, I'm wo

Re: [PATCH v1 00/18] Refactor fw_devlink to significantly improve boot time

2020-11-05 Thread Laurent Pinchart
s after the fw_devlink initialization, so I can still report results. Before your series: [0.743065] cpuidle: using governor menu [ 13.350259] No ATAGs? With your series applied: [ 0.722670] cpuidle: using governor menu [1.135859] No ATAGs? That's a very clear improveme

Re: [PATCH 08/19] gpu: drm: omapdrm: dss: dsi: Rework and remove a few unused variables

2020-11-05 Thread Laurent Pinchart
warning: variable ‘dw’ set but not > used [-Wunused-but-set-variable] > > Cc: Tomi Valkeinen > Cc: David Airlie > Cc: Daniel Vetter > Cc: Laurent Pinchart > Cc: dri-de...@lists.freedesktop.org > Signed-off-by: Lee Jones Reviewed-by: Laurent Pinchart > --- >

Re: [PATCH] media: i2c: mt9p031: Remove redundant null check before clk_disable_unprepare

2020-11-04 Thread Laurent Pinchart
Hi Xu Wang, Thank you for the patch. On Wed, Nov 04, 2020 at 09:29:48AM +, Xu Wang wrote: > Because clk_disable_unprepare() already checked NULL clock parameter, > so the additional check is unnecessary, just remove it. > > Signed-off-by: Xu Wang Reviewed-by: Laurent Pinchar

Re: [PATCH v2 1/7] media: uvcvideo: Use pr_cont() macro

2020-11-04 Thread Laurent Pinchart
media/usb/uvc/uvc_ctrl.c > +++ b/drivers/media/usb/uvc/uvc_ctrl.c > @@ -6,6 +6,8 @@ > * Laurent Pinchart (laurent.pinch...@ideasonboard.com) > */ > > +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt > + > #include > #include > #include > @@

Re: [PATCH 1/6] media: uvcvideo: Add UVC_CTRL_FLAG_ENTITY_GET_INFO

2020-11-04 Thread Laurent Pinchart
Hi Ricardo, On Wed, Nov 04, 2020 at 12:48:25PM +0100, Ricardo Ribalda wrote: > On Wed, Nov 4, 2020 at 12:10 PM Laurent Pinchart wrote: > > On Thu, Oct 22, 2020 at 03:37:48PM +0200, Ricardo Ribalda wrote: > > > This flag allows controls to get their properties from an entity

Re: [PATCH 6/6] media: uvcvideo: Handle IRQs from the privacy_pin

2020-11-04 Thread Laurent Pinchart
No need for a blank line. And it looks like the local irq variable should be introduced in this patch, not in the previous one. I think I'd squash this with 5/6. > + if (irq == -EPROBE_DEFER) > + return -EPROBE_DEFER; > + > + if (irq < 0) > + return

Re: [PATCH 5/6] media: uvcvideo: Implement UVC_GPIO_UNIT

2020-11-04 Thread Laurent Pinchart
05b6a9 100644 > --- a/drivers/media/usb/uvc/uvcvideo.h > +++ b/drivers/media/usb/uvc/uvcvideo.h > @@ -6,6 +6,7 @@ > #error "The uvcvideo.h header is deprecated, use linux/uvcvideo.h instead." > #endif /* __KERNEL__ */ > > +#include > #include > #include > #include > @@ -37,6 +38,7 @@ > (UVC_ENTITY_IS_TERM(entity) && \ > ((entity)->type & 0x8000) == UVC_TERM_OUTPUT) > > +#define UVC_GPIO_UNIT 0x7ffe I'd name this UVC_EXT_GPIO_UNIT. > > /* > * GUIDs > @@ -351,6 +353,12 @@ struct uvc_entity { > u8 *bmControls; > u8 *bmControlsType; > } extension; > + > + struct { > + u8 bControlSize; > + u8 *bmControls; > + struct gpio_desc *gpio_privacy; > + } gpio; > }; > > u8 bNrInPins; -- Regards, Laurent Pinchart

Re: [PATCH 4/6] media: uvcvideo: Add Privacy control based on EXT_GPIO

2020-11-04 Thread Laurent Pinchart
xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01} > + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01} This belongs to the previous patch. > > #define UVC_GUID_FORMAT_MJPEG \ > { 'M', 'J', 'P', 'G', 0x00, 0x00, 0x10, 0x00, \ -- Regards, Laurent Pinchart

Re: [PATCH 3/6] media: uvcvideo: Add UVC_GUID_EXT_GPIO_CONTROLLER

2020-11-04 Thread Laurent Pinchart
ll internal. > +#define UVC_GUID_EXT_GPIO_CONTROLLER \ > + {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, \ I assume the last value was meant to be 0xff ? > + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01} > > #define UVC_GUID_FORMAT_MJPEG \ > { 'M', 'J', 'P', 'G', 0x00, 0x00, 0x10, 0x00, \ -- Regards, Laurent Pinchart

Re: [PATCH 2/6] media: uvcvideo: Add UVC_CTRL_FLAG_ENTITY_GET_CUR

2020-11-04 Thread Laurent Pinchart
inux/uvcvideo.h > +++ b/include/uapi/linux/uvcvideo.h > @@ -32,6 +32,7 @@ > #define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8) > /* Entity queries */ > #define UVC_CTRL_FLAG_ENTITY_GET_INFO(1 << 9) > +#define UVC_CTRL_FLAG_ENTITY_GET_CUR (1 << 10) > > #define UVC_CTRL_FLAG_GET_RANGE \ > (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \ -- Regards, Laurent Pinchart

Re: [PATCH 1/6] media: uvcvideo: Add UVC_CTRL_FLAG_ENTITY_GET_INFO

2020-11-04 Thread Laurent Pinchart
ux/uvcvideo.h > @@ -30,6 +30,8 @@ > #define UVC_CTRL_FLAG_AUTO_UPDATE(1 << 7) > /* Control supports asynchronous reporting */ > #define UVC_CTRL_FLAG_ASYNCHRONOUS (1 << 8) > +/* Entity queries */ > +#define UVC_CTRL_FLAG_ENTITY_GET_INFO(1 << 9) > > #define UVC_CTRL_FLAG_GET_RANGE \ > (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \ -- Regards, Laurent Pinchart

Re: [PATCH v2] drm/bridge: tpd12s015: Fix irq registering in tpd12s015_probe

2020-11-02 Thread Laurent Pinchart
use the IRQ. If it doesn't (gpiod_to_irq > returns an error), it gets polled via detect(). > > Fixes: cff5e6f7e83f ("drm/bridge: Add driver for the TI TPD12S015 HDMI level > shifter") > Signed-off-by: YueHaibing Reviewed-by: Laurent Pinchart > --- > v2: Add

Re: [PATCH v2 3/4] drm/bridge: ti-sn65dsi86: Read EDID blob over DDC

2020-11-02 Thread Laurent Pinchart
Hi Stephen, On Mon, Nov 02, 2020 at 09:38:12AM -0800, Stephen Boyd wrote: > Quoting Doug Anderson (2020-11-02 08:06:14) > > On Sun, Nov 1, 2020 at 11:21 AM Laurent Pinchart wrote: > > > On Thu, Oct 29, 2020 at 06:17:37PM -0700, Stephen Boyd wrote: > &g

Re: [PATCH v2 3/4] drm/bridge: ti-sn65dsi86: Read EDID blob over DDC

2020-11-01 Thread Laurent Pinchart
Hi Stephen, Thank you for the patch. On Thu, Oct 29, 2020 at 06:17:37PM -0700, Stephen Boyd wrote: > Use the DDC connection to read the EDID from the eDP panel instead of > relying on the panel to tell us the modes. > > Reviewed-by: Douglas Anderson > Cc: Laurent Pinchart >

Re: [PATCH v6 1/2] dt-bindings: display: himax,hx8837: Add Himax HX8837 bindings

2020-11-01 Thread Laurent Pinchart
ed, > +dcon_rgb_in: endpoint { > +remote-endpoint = <_rgb_out>; > + }; > +}; > + > +port@1 { > +reg = <0x01>; > +dcon_gettl_out: endpoint { > +remote-endpoint = <_dettl_in>; > +}; > +}; > +}; > +}; > +}; It's customary to end bindings with ... (not sure why though, given that it seems to work find without) -- Regards, Laurent Pinchart

Re: [RFC PATCH v3 9/9] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows

2020-10-29 Thread Laurent Pinchart
Hi Andy, On Fri, Oct 30, 2020 at 12:22:15AM +0200, Andy Shevchenko wrote: > On Thu, Oct 29, 2020 at 11:29:30PM +0200, Laurent Pinchart wrote: > > On Thu, Oct 29, 2020 at 10:26:56PM +0200, Andy Shevchenko wrote: > > > On Thu, Oct 29, 2020 at 10:21 PM Laurent Pinchart wrote: >

Re: [RFC PATCH v3 9/9] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows

2020-10-29 Thread Laurent Pinchart
On Thu, Oct 29, 2020 at 10:26:56PM +0200, Andy Shevchenko wrote: > On Thu, Oct 29, 2020 at 10:21 PM Laurent Pinchart wrote: > > On Mon, Oct 26, 2020 at 06:10:50PM +0200, Andy Shevchenko wrote: > > > On Sat, Oct 24, 2020 at 12:37:02PM +0300, Laurent Pinchart wrote: > >

Re: [RFC PATCH v3 9/9] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows

2020-10-29 Thread Laurent Pinchart
Hi Andy, On Mon, Oct 26, 2020 at 06:10:50PM +0200, Andy Shevchenko wrote: > On Sat, Oct 24, 2020 at 12:37:02PM +0300, Laurent Pinchart wrote: > > On Sat, Oct 24, 2020 at 09:50:07AM +0100, Dan Scally wrote: > > > On 24/10/2020 02:24, Laurent Pinchart wrote: > > > >

Re: [RFC PATCH v3 9/9] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows

2020-10-29 Thread Laurent Pinchart
Hi Andy, On Mon, Oct 26, 2020 at 06:05:49PM +0200, Andy Shevchenko wrote: > On Mon, Oct 26, 2020 at 08:20:14AM +, Dan Scally wrote: > > On 24/10/2020 23:36, Laurent Pinchart wrote: > > > On Sat, Oct 24, 2020 at 11:28:06PM +0100, Daniel Scally wrote: > > >>

Re: [RFC PATCH v3 9/9] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows

2020-10-24 Thread Laurent Pinchart
Hi Dan, On Sat, Oct 24, 2020 at 11:28:06PM +0100, Daniel Scally wrote: > On 24/10/2020 10:37, Laurent Pinchart wrote: > > > >>> I wonder if we could avoid depending on the I2C device being created by > >>> getting the fwnode from adev, and setting ->secon

Re: [RFC PATCH v3 7/9] ipu3-cio2: Check if pci_dev->dev's fwnode is a software_node in cio2_parse_firmware() and set FWNODE_GRAPH_DEVICE_DISABLED if so

2020-10-24 Thread Laurent Pinchart
Hi Dan, On Sat, Oct 24, 2020 at 05:33:32PM +0100, Dan Scally wrote: > On 24/10/2020 15:29, Sakari Ailus wrote: > > On Sat, Oct 24, 2020 at 03:39:55AM +0300, Laurent Pinchart wrote: > >> On Wed, Oct 21, 2020 at 01:49:10AM +0300, Sakari Ailus wrote: > >>> On Tue, Oc

Re: [RFC PATCH v3 9/9] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows

2020-10-24 Thread Laurent Pinchart
Hi Daniel, On Sat, Oct 24, 2020 at 09:50:07AM +0100, Dan Scally wrote: > On 24/10/2020 02:24, Laurent Pinchart wrote: > > > On Mon, Oct 19, 2020 at 11:59:03PM +0100, Daniel Scally wrote: > >> Currently on platforms designed for Windows, connections between CIO2 and > >

Re: [RFC PATCH v3 9/9] ipu3-cio2: Add functionality allowing software_node connections to sensors on platforms designed for Windows

2020-10-23 Thread Laurent Pinchart
2_queues_exit(struct cio2_device *cio2) > static int cio2_pci_probe(struct pci_dev *pci_dev, > const struct pci_device_id *id) > { > + struct fwnode_handle *endpoint; > struct cio2_device *cio2; > int r; > > + /* > + * On some platforms no connections to sensors are defined in firmware, > + * if the device has no endpoints then we can try to build those as > + * software_nodes parsed from SSDB. > + * > + * This may EPROBE_DEFER if supported devices are found defined in ACPI > + * but not yet ready for use (either not attached to the i2c bus yet, > + * or not done probing themselves). Why do we need for the I2C devices to be probed, isn't it enough to have them created ? > + */ > + > + endpoint = fwnode_graph_get_next_endpoint(dev_fwnode(_dev->dev), > NULL); > + if (!endpoint) { > + r = cio2_bridge_build(pci_dev); > + if (r) > + return r; > + } > + > cio2 = devm_kzalloc(_dev->dev, sizeof(*cio2), GFP_KERNEL); > if (!cio2) > return -ENOMEM; > @@ -1825,6 +1843,9 @@ static void cio2_pci_remove(struct pci_dev *pci_dev) > { > struct cio2_device *cio2 = pci_get_drvdata(pci_dev); > > + if (is_software_node(dev_fwnode(_dev->dev))) > + cio2_bridge_burn(pci_dev); > + > media_device_unregister(>media_dev); > v4l2_async_notifier_unregister(>notifier); > v4l2_async_notifier_cleanup(>notifier); > diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2.h > b/drivers/media/pci/intel/ipu3/ipu3-cio2.h > index 549b08f88..80a081d7e 100644 > --- a/drivers/media/pci/intel/ipu3/ipu3-cio2.h > +++ b/drivers/media/pci/intel/ipu3/ipu3-cio2.h > @@ -436,4 +436,13 @@ static inline struct cio2_queue > *vb2q_to_cio2_queue(struct vb2_queue *vq) > return container_of(vq, struct cio2_queue, vbq); > } > > +#if IS_ENABLED(CONFIG_CIO2_BRIDGE) > + int cio2_bridge_build(struct pci_dev *cio2); > + void cio2_bridge_burn(struct pci_dev *cio2); No need for an extra indentation level, neither here, not below. > +#else > + NO need for this blank line. > + int cio2_bridge_build(struct pci_dev *cio2) { return 0; } > + void cio2_bridge_burn(struct pci_dev *cio2) { } > +#endif > + > #endif -- Regards, Laurent Pinchart

Re: [RFC PATCH v3 7/9] ipu3-cio2: Check if pci_dev->dev's fwnode is a software_node in cio2_parse_firmware() and set FWNODE_GRAPH_DEVICE_DISABLED if so

2020-10-23 Thread Laurent Pinchart
returns true. */ bool fwnode_device_is_available(const struct fwnode_handle *fwnode) { + if (!fwnode_has_op(fwnode, device_is_available)) + return true; return fwnode_call_bool_op(fwnode, device_is_available); } EXPORT_SYMBOL_GPL(fwnode_device_is_available); -- Regards, Laurent Pinchart

Re: [RFC PATCH v3 6/9] ipu3-cio2: Rename ipu3-cio2.c to allow module to be built from multiple sources files retaining ipu3-cio2 name

2020-10-23 Thread Laurent Pinchart
bly been mistaken by focussing quite a bit on drivers/gpu/drm/ in the past few years). -core.c wins over both though :-) Anyway, enough bikeshedding, with the newline fixed, Reviewed-by: Laurent Pinchart > diff --git a/drivers/media/pci/intel/ipu3/ipu3-cio2.c > b/drivers/media/pci/intel

Re: [RFC PATCH v3 5/9] ipu3-cio2: Add T: entry to MAINTAINERS

2020-10-23 Thread Laurent Pinchart
y Reviewed-by: Laurent Pinchart > --- > Changes in v3: > - patch introduced. > > MAINTAINERS | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/MAINTAINERS b/MAINTAINERS > index 43a025039..5d768d5ad 100644 > --- a/MAINTAINERS > +++ b/MAINTAINE

Re: [PATCH v5 0/5] Add r8a77965 DRIF support

2020-10-21 Thread Laurent Pinchart
de 100644 Documentation/devicetree/bindings/media/renesas,drif.yaml -- Regards, Laurent Pinchart

Re: [PATCH v3 4/5] media: dt-bindings: media: renesas,drif: Add r8a77965 support

2020-10-13 Thread Laurent Pinchart
; > Signed-off-by: Fabrizio Castro Reviewed-by: Laurent Pinchart > --- > v2->v3: > * New patch > > Documentation/devicetree/bindings/media/renesas,drif.yaml | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/Documentation/devicetree/bindings/media/renesas,dri

Re: [patch 2/4] media: omap3isp: Remove misleading comment

2020-10-13 Thread Laurent Pinchart
e() "Context: in_interrupt()" is > therefore as useful as "Context: unknown'. Remove it. > > Signed-off-by: Thomas Gleixner > Cc: Mauro Carvalho Chehab > Cc: Laurent Pinchart > Cc: linux-me...@vger.kernel.org Reviewed-by: Laurent Pinchart > --- > drivers/media

Re: [PATCH v3 1/3] dt-bindings: media: atmel: csi2dc: add bindings for microchip csi2dc

2020-10-10 Thread Laurent Pinchart
"scck"; > + > +port@0 { > + reg = <0>; /* must be 0, first child port */ > + csi2dc_in: endpoint { /* input from IDI interface */ > + remote-endpoint = <_out>; > + }; > +}; > + > +port@1 { > +#address-cells = <1>; > +#size-cells = <0>; > +reg = <1>; /* must be 1, second child port */ > +csi2dc_out: endpoint@2 { > +reg = <2>; /* virtual channel identifier */ > +remote-endpoint = <_in>; /* output to sensor > controller */ > +}; > +}; > +}; > + > +... -- Regards, Laurent Pinchart

Re: [PATCH v2 09/17] mm: Add unsafe_follow_pfn

2020-10-10 Thread Laurent Pinchart
:( It took 4 years for RDMA to undo the uAPI > > breakage caused by a security fix for something that was a 15 years > > old bug. > > Yeah we have a bunch of these on the drm side too. Some of them are > really just "you have to upgrade userspace", and there's no real fix > for the security nightmare without that. -- Regards, Laurent Pinchart

Re: [PATCH v2 09/17] mm: Add unsafe_follow_pfn

2020-10-10 Thread Laurent Pinchart
his way, instead of broken an > > > > userspace API that it is there since 1991. > > > > > > It has happened before :( It took 4 years for RDMA to undo the uAPI > > > breakage caused by a security fix for something that was a 15 years > > > old bug. > > > > Yeah we have a bunch of these on the drm side too. Some of them are > > really just "you have to upgrade userspace", and there's no real fix > > for the security nightmare without that. > > I think we need to phase out such userspace indeed. The Kconfig symbol > allows enabling the unsafe functionality for anyone who still needs > it, so I think it's not entirely a breakage. -- Regards, Laurent Pinchart

Re: OpRegion conflicts for Skylake LPSS

2020-10-09 Thread Laurent Pinchart
quot; ACPI design, but unless someone has a better idea, without knowing how this was intended to be handled, we will only keep speculating without moving forward. On Wed, Oct 07, 2020 at 03:35:05AM +0300, Laurent Pinchart wrote: > On Fri, Oct 02, 2020 at 03:26:55PM +0300, Laurent Pinchart wrot

Re: OpRegion conflicts for Skylake LPSS

2020-10-06 Thread Laurent Pinchart
On Fri, Oct 02, 2020 at 03:26:55PM +0300, Laurent Pinchart wrote: > On Fri, Oct 02, 2020 at 01:35:12PM +0300, Andy Shevchenko wrote: > > On Fri, Oct 02, 2020 at 01:10:23AM +0300, Laurent Pinchart wrote: > > > On Mon, May 02, 2016 at 01:35:01PM +0300, Mika Westerberg wrote: >

Re: [PATCH v2 5/5] media: mt9p031: Fix corrupted frame after restarting stream

2020-10-05 Thread Laurent Pinchart
Hi Stefan, On Mon, Oct 05, 2020 at 11:28:21AM +0200, Stefan Riedmüller wrote: > On 02.10.20 02:05, Laurent Pinchart wrote: > > On Wed, Sep 30, 2020 at 12:51:33PM +0200, Stefan Riedmueller wrote: > >> From: Dirk Bender > >> > >> To prevent corrupted frames af

Re: [PATCH v1] of: platform: Batch fwnode parsing in the init_machine() path

2020-10-02 Thread Laurent Pinchart
Hi Saravana, On Fri, Oct 02, 2020 at 12:56:30PM -0700, Saravana Kannan wrote: > On Fri, Oct 2, 2020 at 11:35 AM 'Grygorii Strashko' via kernel-team wrote: > > On 02/10/2020 21:27, Laurent Pinchart wrote: > > > On Fri, Oct 02, 2020 at 10:58:55AM -0700, Saravana Kannan wrote: &g

Re: [PATCH v1] of: platform: Batch fwnode parsing in the init_machine() path

2020-10-02 Thread Laurent Pinchart
Hi Saravana, On Fri, Oct 02, 2020 at 10:58:55AM -0700, Saravana Kannan wrote: > On Fri, Oct 2, 2020 at 10:55 AM Laurent Pinchart wrote: > > On Fri, Oct 02, 2020 at 10:51:51AM -0700, Saravana Kannan wrote: > > > On Fri, Oct 2, 2020 at 7:08 AM Rob Herring wrote: > > > &g

Re: [PATCH v1] of: platform: Batch fwnode parsing in the init_machine() path

2020-10-02 Thread Laurent Pinchart
of_platform_default_populate() seems to be the most > common path. For other cases, I think we just need to call > fw_devlink_pause/resume() wherever the top level devices are added for > the first time. As I said in the other email, we can't add > fw_devlink_pause/resume() by default to of_platform_populate(). > > Do you have other ideas for achieving "call fw_devlink_pause/resume() > only when top level devices are added for the first time"? I'm not an expert in this domain, but before investigating it, would you be able to share a hack patch that implements this (in the most simple way) to check if it actually fixes the delays I experience on my system ? -- Regards, Laurent Pinchart

Re: OpRegion conflicts for Skylake LPSS

2020-10-02 Thread Laurent Pinchart
Hi Andy, On Fri, Oct 02, 2020 at 01:35:12PM +0300, Andy Shevchenko wrote: > On Fri, Oct 02, 2020 at 01:10:23AM +0300, Laurent Pinchart wrote: > > Hi Mika, > > > > Reviving an old thread. > > Very old :-) > > > On Mon, May 02, 2016 at 01:35:01PM +0300, Mika

Re: [PATCH] arm64: dts: zynqmp: Fix pcie ranges description

2020-10-01 Thread Laurent Pinchart
4, 0, > 3758096384, 0, 268435456, 1124073472, 6, 0, 6, 0, 2, 0] is too long I would keep the error message unwrapped as it's a bit confusing to read, even if it exceeds the normal 72 columns limit of commit messaged. > Signed-off-by: Michal Simek Reviewed-by: Laurent Pinchart > --- > >

Re: [PATCH v2 3/5] media: mt9p031: Implement [gs]_register debug calls

2020-10-01 Thread Laurent Pinchart
Hi Stefan, On Thu, Oct 01, 2020 at 10:56:24AM +0200, Stefan Riedmüller wrote: > On 30.09.20 13:38, Laurent Pinchart wrote: > > On Wed, Sep 30, 2020 at 12:51:31PM +0200, Stefan Riedmueller wrote: > >> From: Enrico Scholz > >> > >> Implement g_register and s_reg

Re: [PATCH v2 5/5] media: mt9p031: Fix corrupted frame after restarting stream

2020-10-01 Thread Laurent Pinchart
estart */ > + val &= ~MT9P031_FRAME_PAUSE_RESTART_SET; Same here, I think you can simply write MT9P031_FRAME_PAUSE_RESTART_SET. > + ret = mt9p031_write(client, MT9P031_FRAME_RESTART, val); > + if (ret < 0) > + return ret; > + > return mt9p031_pll_enable(mt9p031); > } > -- Regards, Laurent Pinchart

Re: [PATCH v2 2/5] media: mt9p031: Read back the real clock rate

2020-10-01 Thread Laurent Pinchart
-by: Enrico Scholz > Signed-off-by: Stefan Riedmueller Reviewed-by: Laurent Pinchart > --- > No changes in v2 > --- > drivers/media/i2c/mt9p031.c | 9 ++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/i2c/mt9p031.c b/driver

Re: [PATCH v2 1/5] media: mt9p031: Add support for 8 bit and 10 bit formats

2020-10-01 Thread Laurent Pinchart
Hi Stefan, On Thu, Oct 01, 2020 at 11:07:00AM +0200, Stefan Riedmüller wrote: > On 30.09.20 13:42, Laurent Pinchart wrote: > > On Wed, Sep 30, 2020 at 12:51:29PM +0200, Stefan Riedmueller wrote: > >> From: Christian Hemp > >> > >> Aside from 12 bit m

Re: [PATCH v1] of: platform: Batch fwnode parsing in the init_machine() path

2020-10-01 Thread Laurent Pinchart
@@ static int __init of_platform_default_populate_init(void) > } > > /* Populate everything else. */ > - fw_devlink_pause(); > of_platform_default_populate(NULL, NULL, NULL); > - fw_devlink_resume(); > > return 0; > } -- Regards, Laurent Pinchart

Re: OpRegion conflicts for Skylake LPSS

2020-10-01 Thread Laurent Pinchart
dows appears to have proper support for configurating this touchpad > > in PS/2 mode, which is unfortunately an ALPS devices). > > > > Looking at the DSDT it seems that enabling the I2C interface may require > > the help of the embedded controller, the state of which is exposed in > > the DSDT through a mysteriously-named SDS1 field. It looks like this > > field could take on a number of values which identify a variety of > > different touchpads. Given that it looks like GPIO pin states may be > > determined by the value of this field I'm a bit reluctant to go fiddling > > around with it. > > > > I do wish that firmware weren't such a nightmare. > > +1 -- Regards, Laurent Pinchart

Re: [PATCH v2 1/5] media: mt9p031: Add support for 8 bit and 10 bit formats

2020-09-30 Thread Laurent Pinchart
mt9p031->format.code = MEDIA_BUS_FMT_SGRBG12_1X12; > + if (mt9p031->model == MT9P031_MODEL_MONOCHROME) { > + mt9p031->fmts = mt9p031_monochrome_fmts; > + mt9p031->num_fmts = ARRAY_SIZE(mt9p031_monochrome_fmts); > + } else { > + mt9p031->fmts = mt9p031_color_fmts; > + mt9p031->num_fmts = ARRAY_SIZE(mt9p031_color_fmts); > + } > + mt9p031->format.code = mt9p031_find_datafmt(mt9p031, 0); > > mt9p031->format.width = MT9P031_WINDOW_WIDTH_DEF; > mt9p031->format.height = MT9P031_WINDOW_HEIGHT_DEF; -- Regards, Laurent Pinchart

Re: [PATCH v2 3/5] media: mt9p031: Implement [gs]_register debug calls

2020-09-30 Thread Laurent Pinchart
> struct v4l2_subdev_fh *fh) > > static const struct v4l2_subdev_core_ops mt9p031_subdev_core_ops = { > .s_power= mt9p031_set_power, > +#ifdef CONFIG_VIDEO_ADV_DEBUG > + .s_register = mt9p031_s_register, > + .g_register = mt9p031_g_register, > +#endif > }; > > static const struct v4l2_subdev_video_ops mt9p031_subdev_video_ops = { -- Regards, Laurent Pinchart

Re: [PATCH RFT/RFC v2 00/47] staging: media: bring back zoran driver

2020-09-28 Thread Laurent Pinchart
rs/staging/media/zoran/TODO > > create mode 100644 drivers/staging/media/zoran/videocodec.c > > create mode 100644 drivers/staging/media/zoran/videocodec.h > > create mode 100644 drivers/staging/media/zoran/zoran.h > > create mode 100644 drivers/staging/media/zoran/zoran_card.c > > create mode 100644 drivers/staging/media/zoran/zoran_card.h > > create mode 100644 drivers/staging/media/zoran/zoran_device.c > > create mode 100644 drivers/staging/media/zoran/zoran_device.h > > create mode 100644 drivers/staging/media/zoran/zoran_driver.c > > create mode 100644 drivers/staging/media/zoran/zr36016.c > > create mode 100644 drivers/staging/media/zoran/zr36016.h > > create mode 100644 drivers/staging/media/zoran/zr36050.c > > create mode 100644 drivers/staging/media/zoran/zr36050.h > > create mode 100644 drivers/staging/media/zoran/zr36057.h > > create mode 100644 drivers/staging/media/zoran/zr36060.c > > create mode 100644 drivers/staging/media/zoran/zr36060.h -- Regards, Laurent Pinchart

Re: [PATCH v2] ARM: dts: r8a7742-iwg21d-q7: Add LCD support

2020-09-27 Thread Laurent Pinchart
Hi Prabhakar, On Sun, Sep 27, 2020 at 02:01:50PM +0100, Lad, Prabhakar wrote: > On Mon, Aug 24, 2020 at 1:48 AM Laurent Pinchart wrote: > > On Thu, Aug 13, 2020 at 03:00:41PM +0100, Lad Prabhakar wrote: > > > The iwg21d comes with a 7" capacitive touch screen, ther

Re: [PATCH v2 1/3] MAINTAINERS: Add Fabrizio Castro to Renesas DRIF

2020-09-23 Thread Laurent Pinchart
On Sun, Sep 20, 2020 at 12:22:14PM +0100, Ramesh Shanmugasundaram wrote: > Hi Fabrizio, > > > > > Renesas are expanding their DRIF support and offering, > > I'll be the internal maintainer for DRIF. > > > > Signed-off-by: Fabrizio Castro > > Rev

Re: [GIT RFC PULL rcu/urgent] Fix rcu-tasks compilation warning

2020-09-21 Thread Laurent Pinchart
On Mon, Sep 21, 2020 at 01:35:34PM -0700, Paul E. McKenney wrote: > On Mon, Sep 21, 2020 at 12:46:22PM -0700, Linus Torvalds wrote: > > On Mon, Sep 21, 2020 at 12:37 PM Paul E. McKenney > > wrote: > > > > > > This bug was reported by Laurent Pinchart (CCed), >

Re: [PATCH] rcu-tasks: Fix compilation warning with !CONFIG_TASKS_RCU and CONFIG_TINY_RCU

2020-09-21 Thread Laurent Pinchart
On Mon, Sep 21, 2020 at 12:37:18PM -0700, Paul E. McKenney wrote: > On Thu, Sep 17, 2020 at 04:24:16PM -0700, Paul E. McKenney wrote: > > On Fri, Sep 18, 2020 at 01:26:41AM +0300, Laurent Pinchart wrote: > > > Hi Paul, > > > > > > On Tue, Aug 25, 2020 at 09:1

Re: [PATCH v2 09/13] dt-bindings: pinctrl: include common schema in GPIO controllers

2020-09-18 Thread Laurent Pinchart
Hi Krzysztof, On Fri, Sep 18, 2020 at 10:19:25AM +0200, Krzysztof Kozlowski wrote: > On Thu, 17 Sep 2020 at 22:12, Laurent Pinchart wrote: > > On Thu, Sep 17, 2020 at 06:52:57PM +0200, Krzysztof Kozlowski wrote: > > > Include the common GPIO schema in GPIO controllers to

Re: [PATCH v2 01/13] dt-bindings: gpio: add common schema for GPIO controllers

2020-09-18 Thread Laurent Pinchart
Hi Krzysztof, On Fri, Sep 18, 2020 at 09:52:57AM +0200, Krzysztof Kozlowski wrote: > On Thu, 17 Sep 2020 at 22:10, Laurent Pinchart wrote: > > On Thu, Sep 17, 2020 at 06:52:49PM +0200, Krzysztof Kozlowski wrote: > > > Convert parts of gpio.txt bindings into common dtsc

Re: [PATCH] rcu-tasks: Fix compilation warning with !CONFIG_TASKS_RCU and CONFIG_TINY_RCU

2020-09-17 Thread Laurent Pinchart
Hi Paul, On Tue, Aug 25, 2020 at 09:16:29AM -0700, Paul E. McKenney wrote: > On Tue, Aug 25, 2020 at 06:22:49PM +0300, Laurent Pinchart wrote: > > On Tue, Aug 25, 2020 at 08:02:22AM -0700, Paul E. McKenney wrote: > > > On Sun, Aug 23, 2020 at 06:04:05AM +0300, Laur

Re: [PATCH v2 02/13] dt-bindings: gpio: include common schema in GPIO controllers

2020-09-17 Thread Laurent Pinchart
niphier-gpio.yaml > +++ b/Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml > @@ -9,6 +9,9 @@ title: UniPhier GPIO controller > maintainers: >- Masahiro Yamada > > +allOf: > + - $ref: gpio-common.yaml# > + > properties: >$nodename: > pattern: "^gpio@[0-9a-f]+$" > diff --git a/Documentation/devicetree/bindings/gpio/xylon,logicvc-gpio.yaml > b/Documentation/devicetree/bindings/gpio/xylon,logicvc-gpio.yaml > index a36aec27069c..0e4581241b3f 100644 > --- a/Documentation/devicetree/bindings/gpio/xylon,logicvc-gpio.yaml > +++ b/Documentation/devicetree/bindings/gpio/xylon,logicvc-gpio.yaml > @@ -23,6 +23,9 @@ description: | >- EN_VEE (power control) mapped to index 7 >- V_EN (power control) mapped to index 8 > > +allOf: > + - $ref: gpio-common.yaml# > + > properties: >$nodename: > pattern: "^gpio@[0-9a-f]+$" -- Regards, Laurent Pinchart

Re: [PATCH v2 09/13] dt-bindings: pinctrl: include common schema in GPIO controllers

2020-09-17 Thread Laurent Pinchart
a combined Pin and GPIO >controller. > diff --git a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml > b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml > index 72877544ca78..28b861362ba0 100644 > --- a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml > +++ b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml > @@ -56,6 +56,9 @@ properties: > patternProperties: >'^gpio@[0-9a-f]*$': > type: object > +allOf: > + - $ref: /schemas/gpio/gpio-common.yaml# > + > properties: >gpio-controller: true >'#gpio-cells': -- Regards, Laurent Pinchart

Re: [PATCH v2 01/13] dt-bindings: gpio: add common schema for GPIO controllers

2020-09-17 Thread Laurent Pinchart
= <18>; > +gpio-reserved-ranges = <0 4>, <12 2>; > +gpio-line-names = "MMC-CD", "MMC-WP", "VDD eth", "RST eth", "LED R", > + "LED G", "LED B", "Col A", "Col B", "Col C", "Col > D", > + "Row A", "Row B", "Row C", "Row D", "NMI button", > + "poweroff", "reset"; > +}; > + > + - | > +gpio-controller@1400 { > +compatible = "fsl,qe-pario-bank-a", "fsl,qe-pario-bank"; > +reg = <0x1400 0x18>; > +gpio-controller; > +#gpio-cells = <2>; > + > +line-b-hog { > +gpio-hog; > +gpios = <6 0>; > +input; > +line-name = "foo-bar-gpio"; > +}; > +}; -- Regards, Laurent Pinchart

Re: [PATCH RESEND v3 0/5] media: uvcvideo: Fix race conditions

2020-09-17 Thread Laurent Pinchart
o device is unregistered > > drivers/media/usb/uvc/uvc_ctrl.c | 11 ++ > drivers/media/usb/uvc/uvc_driver.c | 12 ++ > drivers/media/usb/uvc/uvc_queue.c | 32 +-- > drivers/media/usb/uvc/uvc_v4l2.c | 45 > -- > drivers/media/usb/uvc/uvcvideo.h | 1 + > 5 files changed, 93 insertions(+), 8 deletions(-) -- Regards, Laurent Pinchart

Re: [PATCH 7/7] media: usb: uvc: no need to check return value of debugfs_create functions

2020-09-17 Thread Laurent Pinchart
Hi Greg, On Thu, Sep 17, 2020 at 02:34:26PM +0200, Greg Kroah-Hartman wrote: > On Thu, Sep 17, 2020 at 03:25:50PM +0300, Laurent Pinchart wrote: > > On Wed, Aug 19, 2020 at 02:47:19AM +0300, Laurent Pinchart wrote: > > > On Tue, Aug 18, 2020 at 03:36:08PM +0200, Greg K

Re: [PATCH 7/7] media: usb: uvc: no need to check return value of debugfs_create functions

2020-09-17 Thread Laurent Pinchart
Hi Greg, On Wed, Aug 19, 2020 at 02:47:19AM +0300, Laurent Pinchart wrote: > Hi Greg, > > Thank you for the patch. > > On Tue, Aug 18, 2020 at 03:36:08PM +0200, Greg Kroah-Hartman wrote: > > When calling debugfs functions, there is no need to ever check the > > retu

Re: [PATCH 1/2] media: i2c: Add driver for the Analog Devices ADDI9036 ToF front-end

2020-09-17 Thread Laurent Pinchart
!= V4L2_SEL_TGT_CROP) > > > > > + return -EINVAL; > > > > > + > > > > > + sel->r = *addi9036_get_pad_crop(addi9036, cfg, sel->pad, > > > > > sel->which); > > > > > + > > > > > + return 0; > > > > > +} > > > > > + > > > > > +static int addi9036_s_stream(struct v4l2_subdev *subdev, int enable) > > > > > +{ > > > > > + struct addi9036 *addi9036 = to_addi9036(subdev); > > > > > + > > > > > + dev_dbg(addi9036->dev, "stream %d\n", enable); > > > > > + > > > > > + return 0; > > > > > +} > > > > > + > > > > > +static const struct v4l2_subdev_core_ops addi9036_core_ops = { > > > > > + .s_power= addi9036_s_power, > > > > > +}; > > > > > + > > > > > +static const struct v4l2_subdev_video_ops addi9036_video_ops = { > > > > > + .s_stream = addi9036_s_stream, > > > > > +}; > > > > > + > > > > > +static const struct v4l2_subdev_pad_ops addi9036_subdev_pad_ops = { > > > > > + .init_cfg = addi9036_entity_init_cfg, > > > > > + .enum_mbus_code = addi9036_enum_mbus_code, > > > > > + .enum_frame_size= addi9036_enum_frame_size, > > > > > + .get_fmt= addi9036_get_format, > > > > > + .set_fmt= addi9036_set_format, > > > > > + .get_selection = addi9036_get_selection, > > > > > +}; > > > > > + > > > > > +static const struct v4l2_subdev_ops addi9036_subdev_ops = { > > > > > + .core = _core_ops, > > > > > + .video = _video_ops, > > > > > + .pad= _subdev_pad_ops, > > > > > +}; > > > > > + > > > > > +static int addi9036_probe(struct i2c_client *client) > > > > > +{ > > > > > + struct device *dev = >dev; > > > > > + struct fwnode_handle *endpoint; > > > > > + struct addi9036 *addi9036; > > > > > + int ret; > > > > > + > > > > > + dev_dbg(dev, "%s: i2c addr = 0x%x\n", __func__, client->addr); > > > > > + > > > > > + addi9036 = devm_kzalloc(dev, sizeof(struct addi9036), > > > > > GFP_KERNEL); > > > > > + if (!addi9036) > > > > > + return -ENOMEM; > > > > > + > > > > > + addi9036->dev = dev; > > > > > + > > > > > + addi9036->regmap = devm_regmap_init_i2c(client, > > > > > + > > > > > _i2c_regmap_config); > > > > > + if (IS_ERR(addi9036->regmap)) { > > > > > + dev_err(dev, "Error initializing i2c regmap\n"); > > > > > + return PTR_ERR(addi9036->regmap); > > > > > + } > > > > > + > > > > > + mutex_init(>power_lock); > > > > > + > > > > > + endpoint = fwnode_graph_get_next_endpoint(dev_fwnode(dev), > > > > > NULL); > > > > > + if (!endpoint) { > > > > > + dev_err(dev, "endpoint node not found\n"); > > > > > + return -EINVAL; > > > > > + } > > > > > + > > > > > + ret = v4l2_fwnode_endpoint_parse(endpoint, >ep); > > > > > + if (ret < 0) { > > > > > + dev_err(dev, "parsing endpoint node failed\n"); > > > > > + return ret; > > > > > + } > > > > > + fwnode_handle_put(endpoint); > > > > > + > > > > > + if (addi9036->ep.bus_type != V4L2_MBUS_CSI2_DPHY) { > > > > > + dev_err(dev, "invalid bus type, must be MIPI CSI2\n"); > > > > > + return -EINVAL; > > > > > + } > > > > > + > > > > > + addi9036->rst_gpio = gpiod_get_optional(dev, "reset", > > > > > GPIOD_OUT_HIGH); > > > > > + if (IS_ERR(addi9036->rst_gpio)) { > > > > > + dev_info(dev, "Unable to get \"reset\" gpio\n"); > > > > > + return PTR_ERR(addi9036->rst_gpio); > > > > > + } > > > > > + > > > > > + v4l2_ctrl_handler_init(>ctrls, 4); > > > > > + > > > > > + addi9036->pixel_rate = v4l2_ctrl_new_std(>ctrls, > > > > > + _ctrl_ops, > > > > > + V4L2_CID_PIXEL_RATE, > > > > > + 1, INT_MAX, 1, 1); > > > > > + addi9036->link_freq = v4l2_ctrl_new_int_menu(>ctrls, > > > > > + _ctrl_ops, > > > > > + V4L2_CID_LINK_FREQ, > > > > > + ARRAY_SIZE( > > > > > + > > > > > link_freq_tbl) - 1, > > > > > + 0, link_freq_tbl); > > > > > + if (addi9036->link_freq) > > > > > + addi9036->link_freq->flags |= V4L2_CTRL_FLAG_READ_ONLY; > > > > > + > > > > > + addi9036->set_chip_config = > > > > > v4l2_ctrl_new_custom(>ctrls, > > > > > + > > > > > _ctrl_chip_config, > > > > > + NULL); > > > > > + > > > > > + addi9036->reg_read = v4l2_ctrl_new_custom(>ctrls, > > > > > + > > > > > _ctrl_reg_read, > > > > > + NULL); > > > > > + > > > > > + addi9036->sd.ctrl_handler = >ctrls; > > > > > + > > > > > + if (addi9036->ctrls.error) { > > > > > + dev_err(dev, "%s: control initialization error %d\n", > > > > > + __func__, addi9036->ctrls.error); > > > > > + ret = addi9036->ctrls.error; > > > > > + goto free_ctrl; > > > > > + } > > > > > + > > > > > + v4l2_i2c_subdev_init(>sd, client, > > > > > _subdev_ops); > > > > > + addi9036->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; > > > > > + addi9036->pad.flags = MEDIA_PAD_FL_SOURCE; > > > > > + addi9036->sd.dev = >dev; > > > > > + addi9036->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; > > > > > + > > > > > + ret = media_entity_pads_init(>sd.entity, 1, > > > > > >pad); > > > > > + > > > > > + if (ret < 0) { > > > > > + dev_err(dev, "could not register media entity\n"); > > > > > + goto free_ctrl; > > > > > + } > > > > > + > > > > > + ret = addi9036_s_power(>sd, true); > > > > > + if (ret < 0) { > > > > > + dev_err(dev, "could not power up addi9036\n"); > > > > > + goto free_entity; > > > > > + } > > > > > + > > > > > + dev_info(dev, "addi9036 detected at address 0x%02x\n", > > > > > client->addr); > > > > > + > > > > > + ret = addi9036_s_power(>sd, false); > > > > > + if (ret < 0) { > > > > > + dev_err(dev, "could not power down addi9036\n"); > > > > > + goto free_entity; > > > > > + } > > > > > + > > > > > + addi9036_entity_init_cfg(>sd, NULL); > > > > > + > > > > > + ret = v4l2_async_register_subdev(>sd); > > > > > + if (ret < 0) > > > > > + dev_err(dev, "could not register v4l2 device\n"); > > > > > + > > > > > + return 0; > > > > > + > > > > > +free_entity: > > > > > + media_entity_cleanup(>sd.entity); > > > > > +free_ctrl: > > > > > + v4l2_ctrl_handler_free(>ctrls); > > > > > + mutex_destroy(>power_lock); > > > > > + > > > > > + return ret; > > > > > +} > > > > > + > > > > > +static int addi9036_remove(struct i2c_client *client) > > > > > +{ > > > > > + struct v4l2_subdev *sd = i2c_get_clientdata(client); > > > > > + struct addi9036 *addi9036 = to_addi9036(sd); > > > > > + > > > > > + v4l2_async_unregister_subdev(>sd); > > > > > + media_entity_cleanup(>sd.entity); > > > > > + if (addi9036->rst_gpio) > > > > > + gpiod_put(addi9036->rst_gpio); > > > > > + v4l2_ctrl_handler_free(>ctrls); > > > > > + mutex_destroy(>power_lock); > > > > > + > > > > > + return 0; > > > > > +} > > > > > + > > > > > +static const struct i2c_device_id addi9036_id[] = { > > > > > + { "addi9036", 0 }, > > > > > + {} > > > > > +}; > > > > > +MODULE_DEVICE_TABLE(i2c, addi9036_id); > > > > > + > > > > > +static const struct of_device_id addi9036_of_match[] = { > > > > > + { .compatible = "adi,addi9036" }, > > > > > + { /* sentinel */ } > > > > > +}; > > > > > +MODULE_DEVICE_TABLE(of, addi9036_of_match); > > > > > + > > > > > +static struct i2c_driver addi9036_i2c_driver = { > > > > > + .driver = { > > > > > + .of_match_table = addi9036_of_match, > > > > > + .name = "addi9036", > > > > > + }, > > > > > + .probe_new = addi9036_probe, > > > > > + .remove = addi9036_remove, > > > > > + .id_table = addi9036_id, > > > > > +}; > > > > > + > > > > > +module_i2c_driver(addi9036_i2c_driver); > > > > > + > > > > > +MODULE_DESCRIPTION("Analog Devices ADDI9036 Camera Driver"); > > > > > +MODULE_AUTHOR("Bogdan Togorean"); > > > > > +MODULE_LICENSE("GPL v2"); > > > > > diff --git a/include/uapi/linux/v4l2-controls.h > > > > > b/include/uapi/linux/v4l2- controls.h > > > > > index 62271418c1be..f88b56479bc1 100644 > > > > > --- a/include/uapi/linux/v4l2-controls.h > > > > > +++ b/include/uapi/linux/v4l2-controls.h > > > > > @@ -198,6 +198,12 @@ enum v4l2_colorfx { > > > > > */ > > > > > #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + > > > > > 0x10c0) > > > > > > > > > > +/* > > > > > + * The base for the addi9036 driver controls. > > > > > + * We reserve 16 controls for this driver. > > > > > + */ > > > > > +#define V4L2_CID_USER_ADDI9036_BASE (V4L2_CID_USER_BASE + 0x10e0) > > > > > + > > > > > /* MPEG-class control IDs */ > > > > > /* The MPEG controls are applicable to all codec controls > > > > > * and the 'MPEG' part of the define is historical */ -- Regards, Laurent Pinchart

Re: [PATCH v2 0/3] Document r8a77990 DRIF support

2020-09-16 Thread Laurent Pinchart
| 3 +- > 3 files changed, 273 insertions(+), 178 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/media/renesas,drif.txt > create mode 100644 Documentation/devicetree/bindings/media/renesas,drif.yaml -- Regards, Laurent Pinchart

Re: [PATCH v6 0/2] PHY: Add new PHY attribute max_link_rate

2020-09-16 Thread Laurent Pinchart
On Wed, Sep 16, 2020 at 10:57:46PM +0530, Sekhar Nori wrote: > On 16/09/20 6:13 PM, Vinod Koul wrote: > > On 16-09-20, 15:18, Laurent Pinchart wrote: > >> Hi Sekhar, > >> > >> On Wed, Sep 16, 2020 at 01:11:17PM +0530, Sekhar Nori wrote: > >>

Re: [PATCH v6 0/2] PHY: Add new PHY attribute max_link_rate

2020-09-16 Thread Laurent Pinchart
> Can you please add these patches on an immutable branch/tag when you are > ready to apply them - will try to see if we can use it to get the > DisplayPort driver merged in v5.10 too. > > Hi Laurent, any other ideas on managing the dependency? I think that will work fine. -- Regards, Laurent Pinchart

Re: [PATCH] drm: rcar-du: add missing put_device() call in rcar_du_vsp_init()

2020-09-15 Thread Laurent Pinchart
e driver is unloaded. The way to handle cleanup in DRM is through drmm_add_action() nowadays, and I think we could thus simply replace the change above with a cleanup action that is run both in the error path and at driver remove. I'll post a proposal in a reply to this e-mail. -- Regards, Laurent Pinchart

Re: [PATCH v6 2/2] phy: cadence-torrent: Set Torrent PHY attributes

2020-09-15 Thread Laurent Pinchart
Hi Swapnil, Thank you for the patch. On Fri, Sep 11, 2020 at 08:18:34AM +0200, Swapnil Jakhade wrote: > Set Torrent PHY attributes bus_width, max_link_rate and mode > for DisplayPort. > > Signed-off-by: Swapnil Jakhade > Acked-by: Kishon Vijay Abraham I Reviewed-by: L

Re: [PATCH v6 1/2] phy: Add new PHY attribute max_link_rate

2020-09-15 Thread Laurent Pinchart
Swapnil Jakhade > Acked-by: Kishon Vijay Abraham I Reviewed-by: Laurent Pinchart > --- > include/linux/phy/phy.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h > index bcee8eba62b3..e435bdb0bab3 100644 > --- a/

Re: [PATCH 1/3] MAINTAINERS: Add Fabrizio Castro to Renesas DRIF

2020-09-15 Thread Laurent Pinchart
-ceu.h > > MEDIA DRIVERS FOR RENESAS - DRIF > M: Ramesh Shanmugasundaram > +M: Fabrizio Castro > L: linux-me...@vger.kernel.org > L: linux-renesas-...@vger.kernel.org > S: Supported -- Regards, Laurent Pinchart

Re: [PATCH] drm: Kconfig: Update description for DRM_RCAR_DW_HDMI config

2020-09-15 Thread Laurent Pinchart
ere. I'd propose The rcar_dw_hdmi driver is also used on Renesas RZ/G2 SoCs. Update the Kconfig entry description to reflect this. Reviewed-by: Laurent Pinchart If you're fine with that, there's no need to resubmit the patch. > Signed-off-by: Lad Prabhakar > Reviewed-by: Chris Paterson &g

Re: [PATCH] media: Kconfig: Update help description VIDEO_RENESAS_FCP config

2020-09-15 Thread Laurent Pinchart
On Wed, Sep 16, 2020 at 12:26:08AM +0300, Laurent Pinchart wrote: > Hi Prabhakar, > > Thank you for the patch. > > On Fri, Sep 11, 2020 at 11:10:46AM +0100, Lad Prabhakar wrote: > > rcar-fcp driver is also used on Renesas RZ/G2 SoC's, update the same > > I'm not sure

Re: [PATCH] media: Kconfig: Update help description VIDEO_RENESAS_FCP config

2020-09-15 Thread Laurent Pinchart
as RZ/G2 SoCs. Update the Kconfig entry description to reflect this. Reviewed-by: Laurent Pinchart If you're fine with that, there's no need to resubmit the patch. > to reflect help description for VIDEO_RENESAS_FCP config. > > Signed-off-by: Lad Prabhakar > Reviewed-by: Chris Paterso

Re: [PATCH 1/2] media: i2c: Add driver for the Analog Devices ADDI9036 ToF front-end

2020-09-15 Thread Laurent Pinchart
(IS_ERR(addi9036->regmap)) { > > > + dev_err(dev, "Error initializing i2c regmap\n"); > > > + return PTR_ERR(addi9036->regmap); > > > + } > > > + > > > + mutex_init(>power_lock); > > > + > > > + endpoint = fwnode_graph_get_next_endpoint(dev_fwnode(dev), NULL); > > > + if (!endpoint) { > > > + dev_err(dev, "endpoint node not found\n"); > > > + return -EINVAL; > > > + } > > > + > > > + ret = v4l2_fwnode_endpoint_parse(endpoint, >ep); > > > + if (ret < 0) { > > > + dev_err(dev, "parsing endpoint node failed\n"); > > > + return ret; > > > + } > > > + fwnode_handle_put(endpoint); > > > + > > > + if (addi9036->ep.bus_type != V4L2_MBUS_CSI2_DPHY) { > > > + dev_err(dev, "invalid bus type, must be MIPI CSI2\n"); > > > + return -EINVAL; > > > + } > > > + > > > + addi9036->rst_gpio = gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); > > > + if (IS_ERR(addi9036->rst_gpio)) { > > > + dev_info(dev, "Unable to get \"reset\" gpio\n"); > > > + return PTR_ERR(addi9036->rst_gpio); > > > + } > > > + > > > + v4l2_ctrl_handler_init(>ctrls, 4); > > > + > > > + addi9036->pixel_rate = v4l2_ctrl_new_std(>ctrls, > > > + _ctrl_ops, > > > + V4L2_CID_PIXEL_RATE, > > > + 1, INT_MAX, 1, 1); > > > + addi9036->link_freq = v4l2_ctrl_new_int_menu(>ctrls, > > > + _ctrl_ops, > > > + V4L2_CID_LINK_FREQ, > > > + ARRAY_SIZE( > > > + link_freq_tbl) - 1, > > > + 0, link_freq_tbl); > > > + if (addi9036->link_freq) > > > + addi9036->link_freq->flags |= V4L2_CTRL_FLAG_READ_ONLY; > > > + > > > + addi9036->set_chip_config = v4l2_ctrl_new_custom(>ctrls, > > > + _ctrl_chip_config, > > > + NULL); > > > + > > > + addi9036->reg_read = v4l2_ctrl_new_custom(>ctrls, > > > + _ctrl_reg_read, > > > + NULL); > > > + > > > + addi9036->sd.ctrl_handler = >ctrls; > > > + > > > + if (addi9036->ctrls.error) { > > > + dev_err(dev, "%s: control initialization error %d\n", > > > + __func__, addi9036->ctrls.error); > > > + ret = addi9036->ctrls.error; > > > + goto free_ctrl; > > > + } > > > + > > > + v4l2_i2c_subdev_init(>sd, client, _subdev_ops); > > > + addi9036->sd.flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; > > > + addi9036->pad.flags = MEDIA_PAD_FL_SOURCE; > > > + addi9036->sd.dev = >dev; > > > + addi9036->sd.entity.function = MEDIA_ENT_F_CAM_SENSOR; > > > + > > > + ret = media_entity_pads_init(>sd.entity, 1, >pad); > > > + > > > + if (ret < 0) { > > > + dev_err(dev, "could not register media entity\n"); > > > + goto free_ctrl; > > > + } > > > + > > > + ret = addi9036_s_power(>sd, true); > > > + if (ret < 0) { > > > + dev_err(dev, "could not power up addi9036\n"); > > > + goto free_entity; > > > + } > > > + > > > + dev_info(dev, "addi9036 detected at address 0x%02x\n", client->addr); > > > + > > > + ret = addi9036_s_power(>sd, false); > > > + if (ret < 0) { > > > + dev_err(dev, "could not power down addi9036\n"); > > > + goto free_entity; > > > + } > > > + > > > + addi9036_entity_init_cfg(>sd, NULL); > > > + > > > + ret = v4l2_async_register_subdev(>sd); > > > + if (ret < 0) > > > + dev_err(dev, "could not register v4l2 device\n"); > > > + > > > + return 0; > > > + > > > +free_entity: > > > + media_entity_cleanup(>sd.entity); > > > +free_ctrl: > > > + v4l2_ctrl_handler_free(>ctrls); > > > + mutex_destroy(>power_lock); > > > + > > > + return ret; > > > +} > > > + > > > +static int addi9036_remove(struct i2c_client *client) > > > +{ > > > + struct v4l2_subdev *sd = i2c_get_clientdata(client); > > > + struct addi9036 *addi9036 = to_addi9036(sd); > > > + > > > + v4l2_async_unregister_subdev(>sd); > > > + media_entity_cleanup(>sd.entity); > > > + if (addi9036->rst_gpio) > > > + gpiod_put(addi9036->rst_gpio); > > > + v4l2_ctrl_handler_free(>ctrls); > > > + mutex_destroy(>power_lock); > > > + > > > + return 0; > > > +} > > > + > > > +static const struct i2c_device_id addi9036_id[] = { > > > + { "addi9036", 0 }, > > > + {} > > > +}; > > > +MODULE_DEVICE_TABLE(i2c, addi9036_id); > > > + > > > +static const struct of_device_id addi9036_of_match[] = { > > > + { .compatible = "adi,addi9036" }, > > > + { /* sentinel */ } > > > +}; > > > +MODULE_DEVICE_TABLE(of, addi9036_of_match); > > > + > > > +static struct i2c_driver addi9036_i2c_driver = { > > > + .driver = { > > > + .of_match_table = addi9036_of_match, > > > + .name = "addi9036", > > > + }, > > > + .probe_new = addi9036_probe, > > > + .remove = addi9036_remove, > > > + .id_table = addi9036_id, > > > +}; > > > + > > > +module_i2c_driver(addi9036_i2c_driver); > > > + > > > +MODULE_DESCRIPTION("Analog Devices ADDI9036 Camera Driver"); > > > +MODULE_AUTHOR("Bogdan Togorean"); > > > +MODULE_LICENSE("GPL v2"); > > > diff --git a/include/uapi/linux/v4l2-controls.h > > > b/include/uapi/linux/v4l2- controls.h > > > index 62271418c1be..f88b56479bc1 100644 > > > --- a/include/uapi/linux/v4l2-controls.h > > > +++ b/include/uapi/linux/v4l2-controls.h > > > @@ -198,6 +198,12 @@ enum v4l2_colorfx { > > > */ > > > #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + > > > 0x10c0) > > > > > > +/* > > > + * The base for the addi9036 driver controls. > > > + * We reserve 16 controls for this driver. > > > + */ > > > +#define V4L2_CID_USER_ADDI9036_BASE (V4L2_CID_USER_BASE + > > > 0x10e0) > > > + > > > /* MPEG-class control IDs */ > > > /* The MPEG controls are applicable to all codec controls > > > * and the 'MPEG' part of the define is historical */ -- Regards, Laurent Pinchart

Re: [PATCH 3/3] media: dt-bindings: media: renesas,drif: Add r8a77990 support

2020-09-15 Thread Laurent Pinchart
y: Fabrizio Castro Reviewed-by: Laurent Pinchart > --- > Documentation/devicetree/bindings/media/renesas,drif.yaml | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/Documentation/devicetree/bindings/media/renesas,drif.yaml > b/Documentation/devicetree/bindings/media/re

Re: [PATCH 2/3] media: dt-bindings: media: renesas,drif: Convert to json-schema

2020-09-15 Thread Laurent Pinchart
On Tue, Sep 15, 2020 at 08:36:39PM +0300, Laurent Pinchart wrote: > Hi Fabrizio, > > Thank you for the patch. > > On Tue, Sep 15, 2020 at 02:12:15PM +0100, Fabrizio Castro wrote: > > Convert the Renesas DRIF bindings to DT schema and update > > MAINTAINERS accor

Re: [PATCH 2/3] media: dt-bindings: media: renesas,drif: Convert to json-schema

2020-09-15 Thread Laurent Pinchart
nded together are enabled, > + the zeroth channel is selected as primary-bond. This channels accepts > + properties common to all the members of the bond. > + * When only one of the bonded channels need to be enabled, the property > + "renesas,bonding" or &

Re: [PATCH v3 3/3] media: v4l: xilinx: Add Xilinx UHD-SDI Rx Subsystem driver

2020-09-14 Thread Laurent Pinchart
Hi Hans, On Thu, Sep 10, 2020 at 12:22:28PM +0200, Hans Verkuil wrote: > On 26/08/2020 16:10, Nicolas Dufresne wrote: > > Le mercredi 19 août 2020 à 19:56 +0300, Laurent Pinchart a écrit : > >> Hi Vishal, > >> > >> (Hans, there's a question for you below) >

Re: [PATCH v3] media: rcar-vin: Enable YDS bit depending on bus_width and data_shift

2020-09-14 Thread Laurent Pinchart
Hi Niklas, On Tue, Sep 15, 2020 at 02:01:40AM +0200, Niklas Söderlund wrote: > On 2020-09-15 02:45:32 +0300, Laurent Pinchart wrote: > > On Sun, Sep 13, 2020 at 07:16:08PM +0100, Lad Prabhakar wrote: > > > Enable YDS bit if bus_width and data_shift is set to

Re: [PATCH v2] media: rcar-vin: Update crop and compose settings for every s_fmt call

2020-09-14 Thread Laurent Pinchart
n->format = f->fmt.pix; > - > - fmt_rect.top = 0; > - fmt_rect.left = 0; > - fmt_rect.width = vin->format.width; > - fmt_rect.height = vin->format.height; > - > - v4l2_rect_map_inside(>crop, _rect); > - v4l2_rect_map_inside(>compose, _

Re: [PATCH v3] media: rcar-vin: Enable YDS bit depending on bus_width and data_shift

2020-09-14 Thread Laurent Pinchart
BUS_VSYNC_ACTIVE_LOW)) > + if (!(vin->parallel->bus.flags & V4L2_MBUS_VSYNC_ACTIVE_LOW)) > dmr2 |= VNDMR2_VPS; > > /* Data Enable Polarity Select */ > - if (vin->parallel->mbus_flags & V4L2

Re: [PATCH v2] pinctrl: sh-pfc: r8a7790: Add VIN1-B and VIN2-G pins, groups and functions

2020-09-14 Thread Laurent Pinchart
8g), > > > SH_PFC_PIN_GROUP(vin2_sync), > > > SH_PFC_PIN_GROUP(vin2_field), > > > SH_PFC_PIN_GROUP(vin2_clkenb), > > > @@ -4784,10 +4886,19 @@ static const char * const vin1_groups[] = { > > > "vin1_data10", > > > "vin1_data8", > > > "vin1_data4", > > > + "vin1_data24_b", > > > + "vin1_data20_b", > > > + "vin1_data18_b", > > > + "vin1_data16_b", > > > + "vin1_data12_b", > > > + "vin1_data10_b", > > > + "vin1_data8_b", > > > > Missing vin1_data4_b. > > > > > "vin1_sync", > > > + "vin1_sync_b", > > > "vin1_field", > > > "vin1_clkenb", > > > "vin1_clk", > > > + "vin1_clk_b", > > > }; > > > > > > static const char * const vin2_groups[] = { > > > > The rest looks good to me. -- Regards, Laurent Pinchart

Re: [PATCH 1/2] media: i2c: Add driver for the Analog Devices ADDI9036 ToF front-end

2020-09-10 Thread Laurent Pinchart
6_s_power(>sd, true); > + if (ret < 0) { > + dev_err(dev, "could not power up addi9036\n"); > + goto free_entity; > + } > + > + dev_info(dev, "addi9036 detected at address 0x%02x\n", client->addr); > + > + ret = addi9036_s_power(>sd, false); > + if (ret < 0) { > + dev_err(dev, "could not power down addi9036\n"); > + goto free_entity; > + } > + > + addi9036_entity_init_cfg(>sd, NULL); > + > + ret = v4l2_async_register_subdev(>sd); > + if (ret < 0) > + dev_err(dev, "could not register v4l2 device\n"); > + > + return 0; > + > +free_entity: > + media_entity_cleanup(>sd.entity); > +free_ctrl: > + v4l2_ctrl_handler_free(>ctrls); > + mutex_destroy(>power_lock); > + > + return ret; > +} > + > +static int addi9036_remove(struct i2c_client *client) > +{ > + struct v4l2_subdev *sd = i2c_get_clientdata(client); > + struct addi9036 *addi9036 = to_addi9036(sd); > + > + v4l2_async_unregister_subdev(>sd); > + media_entity_cleanup(>sd.entity); > + if (addi9036->rst_gpio) > + gpiod_put(addi9036->rst_gpio); > + v4l2_ctrl_handler_free(>ctrls); > + mutex_destroy(>power_lock); > + > + return 0; > +} > + > +static const struct i2c_device_id addi9036_id[] = { > + { "addi9036", 0 }, > + {} > +}; > +MODULE_DEVICE_TABLE(i2c, addi9036_id); > + > +static const struct of_device_id addi9036_of_match[] = { > + { .compatible = "adi,addi9036" }, > + { /* sentinel */ } > +}; > +MODULE_DEVICE_TABLE(of, addi9036_of_match); > + > +static struct i2c_driver addi9036_i2c_driver = { > + .driver = { > + .of_match_table = addi9036_of_match, > + .name = "addi9036", > + }, > + .probe_new = addi9036_probe, > + .remove = addi9036_remove, > + .id_table = addi9036_id, > +}; > + > +module_i2c_driver(addi9036_i2c_driver); > + > +MODULE_DESCRIPTION("Analog Devices ADDI9036 Camera Driver"); > +MODULE_AUTHOR("Bogdan Togorean"); > +MODULE_LICENSE("GPL v2"); > diff --git a/include/uapi/linux/v4l2-controls.h > b/include/uapi/linux/v4l2-controls.h > index 62271418c1be..f88b56479bc1 100644 > --- a/include/uapi/linux/v4l2-controls.h > +++ b/include/uapi/linux/v4l2-controls.h > @@ -198,6 +198,12 @@ enum v4l2_colorfx { > */ > #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0) > > +/* > + * The base for the addi9036 driver controls. > + * We reserve 16 controls for this driver. > + */ > +#define V4L2_CID_USER_ADDI9036_BASE (V4L2_CID_USER_BASE + 0x10e0) > + > /* MPEG-class control IDs */ > /* The MPEG controls are applicable to all codec controls > * and the 'MPEG' part of the define is historical */ > -- > 2.28.0 > -- Regards, Laurent Pinchart

Re: [PATCH] drm: mxsfb: check framebuffer pitch

2020-09-08 Thread Laurent Pinchart
Agner wrote: > >>>> On 2020-09-07 20:18, Daniel Vetter wrote: > >>>>> On Mon, Sep 07, 2020 at 07:17:12PM +0300, Laurent Pinchart wrote: > >>>>>> Hi Stefan, > >>>>>> > >>>>>> Thank you for the patch. > &g

Re: [PATCH] drm/bridge/tc358775: Fixes bus formats read

2020-09-08 Thread Laurent Pinchart
as no information > > > > > wrt CPADHI or for loosely packed > > > > > > > > > > static const u32 tc_lvds_in_bus_fmts[] = { > > > > > MEDIA_BUS_FMT_RGB565_1X16, > > > > > MEDIA_BUS_FMT_RGB666_1X18, > >

Re: [PATCH] drm: mxsfb: check framebuffer pitch

2020-09-08 Thread Laurent Pinchart
On Tue, Sep 08, 2020 at 10:48:55AM +0200, Daniel Vetter wrote: > On Tue, Sep 08, 2020 at 11:18:25AM +0300, Tomi Valkeinen wrote: > > On 08/09/2020 10:55, Stefan Agner wrote: > > > On 2020-09-07 20:18, Daniel Vetter wrote: > > >> On Mon, Sep 07, 2020 at 07:17:12PM

Re: [PATCH v2] drm: mxsfb: check framebuffer pitch

2020-09-08 Thread Laurent Pinchart
erspace to handle the issue correctly. > > Signed-off-by: Stefan Agner Reviewed-by: Laurent Pinchart > --- > drivers/gpu/drm/mxsfb/mxsfb_drv.c | 21 - > 1 file changed, 20 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.

Re: [PATCH] drm: mxsfb: check framebuffer pitch

2020-09-07 Thread Laurent Pinchart
; I'd turn this into a dev_dbg(), printing error messages to the kernel log in response to user-triggered conditions is a bit too verbose and could flood the log. Wouldn't it be best to catch this issue when creating the framebuffer ? > + return -EINVAL; > + } > + > + return 0; > } > > static void mxsfb_plane_primary_atomic_update(struct drm_plane *plane, -- Regards, Laurent Pinchart

Re: [PATCH 4/5] dt-bindings: display/bridge: nwl-dsi: Document fsl,clock-drop-level property

2020-09-05 Thread Laurent Pinchart
nded, looking at this patch I have no idea what this does and how to compute the value that should be set. > patternProperties: >"^panel@[0-9]+$": > type: object -- Regards, Laurent Pinchart

Re: [PATCH v3 1/2] media: i2c: ov772x: Add support for BT656 mode

2020-09-04 Thread Laurent Pinchart
On Fri, Sep 04, 2020 at 11:21:04AM +0300, Sakari Ailus wrote: > > > > > On Fri, Sep 04, 2020 at 09:55:53AM +0200, Jacopo Mondi wrote: > > > > > > On Fri, Sep 04, 2020 at 04:20:00AM +0300, Laurent Pinchart wrote: > > > > > > > Hi Prabhakar, >

Re: [PATCH v3 1/2] media: i2c: ov772x: Add support for BT656 mode

2020-09-04 Thread Laurent Pinchart
Hello, On Fri, Sep 04, 2020 at 11:21:04AM +0300, Sakari Ailus wrote: > On Fri, Sep 04, 2020 at 09:55:53AM +0200, Jacopo Mondi wrote: > > On Fri, Sep 04, 2020 at 04:20:00AM +0300, Laurent Pinchart wrote: > > > On Mon, Aug 24, 2020 at 08:04:05PM +0100, Lad Prabhakar wrote: &

Re: [PATCH v3] media: uvcvideo: Convey full colorspace information to V4L2

2020-09-03 Thread Laurent Pinchart
return V4L2_XFER_FUNC_DEFAULT; /* Reserved */ > +} > + > +static enum v4l2_ycbcr_encoding uvc_ycbcr_enc(const u8 matrix_coefficients) > +{ > + /* V4L2 currently does not currently have definitions for all Same here. Reviewed-by: Laurent Pinchart > + * possible

Re: [PATCH v9 2/3] drm: bridge: Add support for Cadence MHDP8546 DPI/DP bridge

2020-09-03 Thread Laurent Pinchart
ed on EDID, fbdev is created with 1920x1200. Link > training is done, which > has the CR issue, and because of that the actual mode that we get is > 1280x960. I get a proper > picture here, so far so good. > > Then if I run kmstest, it only allows 1280x960 as the link doesn't support > higher modes (that's ok). > It the does link training and gets a 4 lane link, and enables 1280x960. But > the picture is not ok. > > If I then exit kmstest, it goes back to fbdev, but now that picture is broken > also. > > Running kmstest again gives me 1920x1200 (as the link has been 4 lane now), > and the picture is fine. > > I think the above suggests that the driver is not properly updating all the > registers based on the > new mode and link. I tried adding cdns_mhdp_validate_mode_params() call to > cdns_mhdp_atomic_enable(), so that tu-size etc will be calculated, but that > did not fix the problem. -- Regards, Laurent Pinchart

Re: [PATCH] media: rcar-vin: Update crop and compose settings for every s_fmt call

2020-09-03 Thread Laurent Pinchart
us either adjust or reset the crop and selection rectangles. The specification isn't clear on which behaviour should be implemented, the only related text is "Sub-devices that scale frames using variable scaling factors should reset the scale factors to default values when sink pads formats are modified. If the 1:1 scaling ratio is supported, this means that source pads formats should be reset to the sink pads formats." I would recommend resetting as the default behaviour. In any case, adjustements are needed to ensure that the configuration remains valid. -- Regards, Laurent Pinchart

Re: [PATCH v2] media: rcar-vin: Add support to select data pins for YCbCr422-8bit input

2020-09-03 Thread Laurent Pinchart
Hi Prabhakar, On Tue, Aug 11, 2020 at 06:40:58PM +0100, Lad, Prabhakar wrote: > On Tue, Aug 11, 2020 at 12:41 PM Laurent Pinchart wrote: > > On Fri, Aug 07, 2020 at 09:20:36PM +0100, Lad, Prabhakar wrote: > > > On Wed, Aug 5, 2020 at 1:35 PM Laurent Pinchart wrote: > >

Re: [PATCH v3 2/2] media: i2c: ov772x: Add test pattern control

2020-09-03 Thread Laurent Pinchart
ret = priv->hdl.error; > diff --git a/include/media/i2c/ov772x.h b/include/media/i2c/ov772x.h > index a1702d420087..65e6f8d2f4bb 100644 > --- a/include/media/i2c/ov772x.h > +++ b/include/media/i2c/ov772x.h > @@ -12,6 +12,7 @@ > /* for flags */ > #define OV772X_FLAG_VFLIP(1 << 0) /* Vertical flip image */ > #define OV772X_FLAG_HFLIP(1 << 1) /* Horizontal flip image */ > +#define OV772X_FLAG_TEST_PATTERN (1 << 2) /* Test pattern */ > > /* > * for Edge ctrl -- Regards, Laurent Pinchart

Re: [PATCH v3 1/2] media: i2c: ov772x: Add support for BT656 mode

2020-09-03 Thread Laurent Pinchart
error path and in remove(). On the other hand, not setting .bus_type and letting the parse() function determine the but type automatically is also deprecated, and I don't think forcing drivers to call v4l2_fwnode_endpoint_alloc_parse() once for each bus type until one succeeds is a good API. As

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