Hi Kieran,
Thank you for the patch.
On Thursday, 26 April 2018 19:57:32 EEST Kieran Bingham wrote:
> Ahem - this one seems to have lost it's commit message.
>
> Apologies :)
Apart from that, this looks good to me.
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com&g
ble indentation in preparation for supporting new target
> types.
>
> Signed-off-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
and applied to my tree.
> ---
> .../bindings/display/renesas,du.t
Hi Jacopo,
On Thursday, 26 April 2018 21:40:56 EEST jacopo mondi wrote:
> On Mon, Apr 23, 2018 at 12:27:39PM +0300, Laurent Pinchart wrote:
> > On Thursday, 19 April 2018 12:31:02 EEST Jacopo Mondi wrote:
> >> Add support for storing image format information in DRM bridges wi
g plain integer as NULL pointer
> CC drivers/gpu/drm/rcar-du/rcar_du_kms.o
>
> Fixes: 3e81374e2014 ("drm: rcar-du: Support multiple sources from the same
> VSP") Signed-off-by: Kieran Bingham
> <kieran.bingham+rene...@ideasonboard.com>
Reviewed-by: Laure
legacy DT to create LVDS encoder
> nodes") Signed-off-by: Kieran Bingham
> <kieran.bingham+rene...@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
and applied to my tree.
> ---
> drivers/gpu/drm/rcar-du/rcar_du_of.c | 1 +
>
t replace
> all current use cases of drm_dev_unref() with drm_dev_put and remove
> the function itself.
>
> Coccinelle was used for mass-patching.
>
> Signed-off-by: Vaishali Thakkar <vthakkar1...@gmail.com>
I love seeing deprecated functions go.
Reviewed-by
Hi Simon,
On Monday, 23 April 2018 14:07:14 EEST Simon Horman wrote:
> On Sun, Apr 22, 2018 at 01:35:25PM +0300, Laurent Pinchart wrote:
> > The r8a7790 has three FDP1 instances.
> >
> > Signed-off-by: Laurent Pinchart
> > <laurent.pinchart+rene...@ideasonboard.co
Hi Vaishali,
On Wednesday, 25 April 2018 16:42:59 EEST Vaishali Thakkar wrote:
> On Wed, Apr 25, 2018 at 7:02 PM, Laurent Pinchart wrote:
> > On Wednesday, 25 April 2018 15:10:36 EEST Vaishali Thakkar wrote:
> >> As specified in drm_drv.c, drm_dev_unref is a c
static int rcar_du_remove(struct platform_device *pdev)
> drm_kms_helper_poll_fini(ddev);
> drm_mode_config_cleanup(ddev);
>
> - drm_dev_unref(ddev);
> + drm_dev_put(ddev);
>
> return 0;
> }
--
Regards,
Laurent Pinchart
> :-)
>
> On 2018-04-04 18:15:16 +0300, Laurent Pinchart wrote:
>
> [snip]
>
> > > +static int rcar_csi2_start(struct rcar_csi2 *priv)
> > > +{
> > > + const struct rcar_csi2_format *format;
> > > + u32 phycnt, phypll, vcdt = 0, vcdt2 = 0;
_DATA_LSB_TO_MSB (1<<5)
>
> /**
>* @bus_flags: Additional information (like pixel signal polarity) for
--
Regards,
Laurent Pinchart
thine,map = <1>;
>
> ports {
> #address-cells = <1>;
--
Regards,
Laurent Pinchart
#define MEDIA_BUS_FMT_BGR888_1X240x1013
> #define MEDIA_BUS_FMT_GBR888_1X240x1014
> #define MEDIA_BUS_FMT_RGB888_1X240x100a
> #define MEDIA_BUS_FMT_RGB888_2X12_BE 0x100b
> #define MEDIA_BUS_FMT_RGB888_2X12_LE 0x100c
> #define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG 0x1011
> +#define MEDIA_BUS_FMT_RGB888_1X7X4_SPWG_LE 0x101c
> #define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA 0x1012
> +#define MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA_LE 0x101d
> #define MEDIA_BUS_FMT_ARGB_1X32 0x100d
> #define MEDIA_BUS_FMT_RGB888_1X32_PADHI 0x100f
> #define MEDIA_BUS_FMT_RGB101010_1X30 0x1018
--
Regards,
Laurent Pinchart
gt;
> >>>> case MEDIA_BUS_FMT_RGB666_1X7X3_SPWG:
> >>>>
> >>>> case MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA:
> >>>> -mode = RCAR_LVDS_MODE_JEIDA;
> >>>> +lvds->mode = RCAR_LVDS_MODE_JEIDA;
> >>>
> >>> This is b0rken, first the mirror bit is ORed into some unknown
> >>> preexisting value, then the code falls through (without any fall
> >>> through comment, btw) and forcibly sets the mode, thus discarding the
> >>> mirror bit which was carefully ORed in.
> >>
> >> You are correct, the second assignment should have been an |= and not
> >> a plain assignment. The variable is 0ed though, as 'struct rcar_lvds
> >> *lvds' is kzalloc-ed in probe function.
> >
> > The code would be clearer if you explicitly zeroed the mode in this
> > function. Or do you rely on this function to not clobber other bits?
> > In that case apply some bit-mask.
> >
> >>>> break;
> >>>> +
> >>>> +case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG_LE:
> >>>> +lvds->mode |= RCAR_LVDS_MODE_MIRROR;
> >>>>
> >>>> case MEDIA_BUS_FMT_RGB888_1X7X4_SPWG:
> >>>> -mode = RCAR_LVDS_MODE_VESA;
> >>>> +lvds->mode = RCAR_LVDS_MODE_VESA;
> >>>
> >>> Dito.
> >>>
> >>>> break;
> >>>>
> >>>> default:
> >>>> dev_err(lvds->dev, "unsupported LVDS bus format
> >>>> 0x%04x\n",
> >>>> -info->bus_formats[0]);
> >>>> -return;
> >>>> +bus_fmt);
> >>>> }
> >>>> -
> >>>> -if (info->bus_flags & DRM_BUS_FLAG_DATA_LSB_TO_MSB)
> >>>> -mode |= RCAR_LVDS_MODE_MIRROR;
> >>>> -
> >>>> -lvds->mode = mode;
> >>>> }
> >>>>
> >>>> static void rcar_lvds_mode_set(struct drm_bridge *bridge,
--
Regards,
Laurent Pinchart
t; to find that out probably.
Yes, but that could also be left for later, when the need to support those
formats arise, especially given that include/uapi/linux/media-bus-format.h has
no 1x7x5 formats yet.
> >> + break;
> >> + default:
> >> + dev_err(thc63->dev,
> >> + "Invalid value for property \"thine,map\": %u\n", map);
> >> + return -EINVAL;
> >> + }
> >> +
> >> + drm_bridge_set_bus_formats(>bridge, _fmt, 1);
> >> +
> >> + return 0;
> >> +}
--
Regards,
Laurent Pinchart
c63->dev, "oe", GPIOD_OUT_LOW);
> @@ -166,6 +203,10 @@ static int thc63_probe(struct platform_device *pdev)
> if (ret)
> return ret;
>
> + ret = thc63_set_bus_fmt(thc63);
> + if (ret)
> + return ret;
> +
Or you could move the code to thc63_parse_dt() as you're parsing DT.
> thc63->bridge.driver_private = thc63;
> thc63->bridge.of_node = pdev->dev.of_node;
> thc63->bridge.funcs = _bridge_func;
--
Regards,
Laurent Pinchart
d confusing readers I would write it as
- thine,map: level of the MAP pin that selects the LVDS mapping mode. Shall be
<0> for low level (mapping mode 2) or <1> for high level (mapping mode 1).
Apart from that this patch looks good to me.
Reviewed-by: Laurent Pinchart <lau
he MAP pin should be then software-controlled, not set
through DT.
> >> Optional properties:
> >> - powerdown-gpios: Power down GPIO signal, pin name "/PDWN". Active low
> >>
> >> @@ -36,6 +38,7 @@ Example:
> >>vcc-supply = <_lvds_vcc>;
> >>powerdown-gpios = < 15 GPIO_ACTIVE_LOW>;
> >> + thine,map = <1>;
> >>
> >>ports {
> >>#address-cells = <1>;
--
Regards,
Laurent Pinchart
dge,
> struct drm_display_mode *adjusted_mode);
> void drm_bridge_pre_enable(struct drm_bridge *bridge);
> void drm_bridge_enable(struct drm_bridge *bridge);
> +int drm_bridge_set_bus_formats(struct drm_bridge *bridge, const u32 *fmts,
> +unsigned int num_fmts);
>
> #ifdef CONFIG_DRM_PANEL_BRIDGE
> struct drm_bridge *drm_panel_bridge_add(struct drm_panel *panel,
--
Regards,
Laurent Pinchart
Hi Kieran,
On Monday, 23 April 2018 11:59:04 EEST Kieran Bingham wrote:
> On 21/04/18 13:44, Laurent Pinchart wrote:
> > The pixel rate, as reported by the V4L2_CID_PIXEL_RATE control, must
> > include both horizontal and vertical blanking. Both the AFE and HDMI
>
Hi Geert,
On Monday, 23 April 2018 10:58:13 EEST Geert Uytterhoeven wrote:
> On Sun, Apr 22, 2018 at 12:28 PM, Laurent Pinchart wrote:
> > Commit 1d3897143815 ("[media] v4l: rcar_fdp1: add FCP dependency") fixed
> > a compilation breakage when the optional VID
The implementation of the set_fmt pad operation is identical in the
three modules. Move it to a generic helper function.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
drivers/media/platform/vsp1/vsp1_clu.c| 65 +--
drivers
entity. As
the DISCOM is only present in R-Car Gen3 VSP-D and VSP-DL instances it
is not exposed to userspace through V4L2 but controlled through the DU
driver. We can thus change this model later if needed without fear of
affecting userspace.
Signed-off-by: Laurent Pinchart <laurent.pinchart+r
Implement CRC computation configuration and reporting through the DRM
debugfs-based CRC API. The CRC source can be configured to any input
plane or the pipeline output.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
Changes since v1:
- Format the source
Add a parameter (in the form of a structure to ease future API
extensions) to the VSP atomic flush handler to pass CRC source
configuration, and pass the CRC value to the completion callback.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
drivers/gpu/drm/r
The structure is used in the API that the VSP1 driver exposes to the DU
driver. Documenting it is thus important.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
Changes since v1:
- Fixed typo
---
include/media/vsp1.h | 10 ++
1 file chang
at the
moment and could be implemented by extending the API between the VSP1
and DU drivers if needed.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
drivers/media/platform/vsp1/vsp1_drm.c | 115 -
drivers/media/platform/vsp1/vsp1
of scope for this patch.
While at it fix the file descriptions to match file names where copy and
paste error occurred.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
drivers/media/platform/vsp1/vsp1.h| 6 +-
drivers/media/platform/vsp1/vsp1
().
Resetting the crop and compose rectangles for entities that don't
support crop and compose has no adverse effect as the rectangles are
ignored anyway.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
drivers/media/platform/vsp1/vsp1_entity.c | 16 +
d
nboard.com/renesas/kms-tests.git discom
Laurent Pinchart (8):
v4l: vsp1: Use SPDX license headers
v4l: vsp1: Share the CLU, LIF and LUT set_fmt pad operation code
v4l: vsp1: Reset the crop and compose rectangles in the set_fmt helper
v4l: vsp1: Document the vsp1_du_atomic_config structure
Hello,
This patch series adds the FDP1 devices for all applicable Gen2 platforms
(H2, M2W, M2N and E2). There's no rocket science involved, the devices have
no I/O pin and need no resource other than a memory range, a functional clock
and an interrupt.
Laurent Pinchart (4):
ARM: dts: renesas
The r8a7791 has two FDP1 instances.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
arch/arm/boot/dts/r8a7791.dtsi | 18 ++
1 file changed, 18 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
The r8a7793 has two FDP1 instances.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
arch/arm/boot/dts/r8a7793.dtsi | 18 ++
1 file changed, 18 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
The r8a7794 has one FDP1 instance.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
arch/arm/boot/dts/r8a7794.dtsi | 9 +
1 file changed, 9 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index d588ef
The r8a7790 has three FDP1 instances.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
arch/arm/boot/dts/r8a7790.dtsi | 27 +++
1 file changed, 27 insertions(+)
diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a779
ombination ARCH_RENESAS && !VIDEO_RENESAS_FCP. Fix it by handling the
dependency the same way the vsp1 driver did in commit 199946731fa4
("[media] vsp1: clarify FCP dependency").
Fixes: 1d3897143815 ("[media] v4l: rcar_fdp1: add FCP dependency")
Signed-off-by: L
Indentation is odd in several places, especially when printing messages
to the kernel log. Fix it to match the usual coding style.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
drivers/media/platform/rcar_fdp1.c | 28 ++--
1 file c
indentation oddities I
have run across during development.
Geert Uytterhoeven (1):
v4l: rcar_fdp1: Change platform dependency to ARCH_RENESAS
Laurent Pinchart (2):
v4l: rcar_fdp1: Enable compilation on Gen2 platforms
v4l: rcar_fdp1: Fix indentation oddities
drivers/media/platform/Kconfig | 4
OBILE, hence use the former.
This will allow to drop ARCH_SHMOBILE on ARM and ARM64 in the near
future.
Signed-off-by: Geert Uytterhoeven <geert+rene...@glider.be>
Acked-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pi
Hi Geert,
On Saturday, 21 April 2018 11:07:11 EEST Laurent Pinchart wrote:
> On Friday, 20 April 2018 16:28:29 EEST Geert Uytterhoeven wrote:
> > The Renesas Fine Display Processor driver is used on Renesas R-Car SoCs
> > only. Since commit 9b5ba0df4ea4f940 ("ARM:
by removing the
computation and returning the incoming pixel clock rate directly.
- The AFE performs similar calculation, while it should simply return
the fixed pixel rate for analog sources, mandated by the ADV748x to be
28.63636 MHz.
Signed-off-by: Laurent Pinchart <laurent.pinchart+r
a more appropriate platform dependency
> than the legacy ARCH_SHMOBILE, hence use the former.
>
> This will allow to drop ARCH_SHMOBILE on ARM and ARM64 in the near
> future.
>
> Signed-off-by: Geert Uytterhoeven <geert+rene...@glider.be>
Acked-by: Laurent Pinchart <lau
3). As both SUPERH and ARCH_SHMOBILE are set for
> these platforms, the SUPERH dependency can be dropped.
>
> Signed-off-by: Geert Uytterhoeven <geert+rene...@glider.be>
Acked-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> ---
> drivers/video/fbdev/Kconf
Hi Geert,
Thank you for the patches.
For the whole series,
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
On Friday, 20 April 2018 16:15:39 EEST Geert Uytterhoeven wrote:
> Hi Simon, Magnus,
>
> The last Renesas ARM platform using this driver was re
The internal LVDS encoder now has DT bindings separate from the DU. Port
the device tree over to the new model.
Fixes: c6a27fa41fab ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
Fixes: bb21803ea440 ("ARM: dts: r8a7791: add soc node")
Signed-off-
The internal LVDS encoder now has DT bindings separate from the DU. Port
the device tree over to the new model.
Fixes: c6a27fa41fab ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
Fixes: 4bdb7aa7dcd0 ("ARM: dts: r8a7790: add soc node")
Signed-off-
please queue them
up as fixes for v4.17 ?
Laurent Pinchart (3):
ARM: dts: r8a7790: Convert to new LVDS DT bindings
ARM: dts: r8a7791: Convert to new LVDS DT bindings
ARM: dts: r8a7793: Convert to new LVDS DT bindings
arch/arm/boot/dts/r8a7790-lager.dts | 22 +---
arch/arm/boot/dts
The internal LVDS encoder now has DT bindings separate from the DU. Port
the device tree over to the new model.
Fixes: c6a27fa41fab ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
Fixes: bff8f8c2feb7 ("ARM: dts: r8a7793: add soc node")
Signed-off-
routing its
> RGB output to the ADV7511W HDMI encoder.
>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+rene...@ragnatech.se>
> Signed-off-by: Jacopo Mondi <jacopo+rene...@jmondi.org>
> Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> [for TH
Hi Rich,
On Monday, 9 April 2018 18:11:13 EEST Rich Felker wrote:
> On Mon, Apr 09, 2018 at 04:06:15PM +0300, Laurent Pinchart wrote:
> > On Monday, 9 April 2018 14:11:22 EEST Robin Murphy wrote:
> >> On 09/04/18 08:25, jacopo mondi wrote:
> >>> Hi Robin, Laurent,
l we know
that cpu_addr represents memory that is guaranteed to be backed by a struct
page is a good starting point. You can mention SH4 as an example of an
architecture that will crash when calling virt_to_page() in such a case, but
the fix isn't specific to SH4.
> >>> Suggested-by: Laur
Hi Simon,
On Monday, 9 April 2018 14:17:15 EEST Simon Horman wrote:
> On Fri, Apr 06, 2018 at 10:14:35PM +0300, Laurent Pinchart wrote:
> > Hello,
> >
> > This patch series fixes LVDS output support on the Lager, Koelsh, Porter
> > and Gose boards that broke in v4.17
Hi Jacopo,
On Saturday, 7 April 2018 12:45:56 EEST jacopo mondi wrote:
> On Fri, Apr 06, 2018 at 06:40:14PM +0300, Laurent Pinchart wrote:
> > Hi Jacopo,
> >
> > (CC'ing Mark Brown)
>
> Hi Mark
>
> [snip]
>
> >> Anyway, we spent enough time on nami
vers/media/platform/vsp1/vsp1_entity.c | 26 +-
> drivers/media/platform/vsp1/vsp1_entity.h | 38 +-
> drivers/media/platform/vsp1/vsp1_hgo.c | 26 +--
> drivers/media/platform/vsp1/vsp1_hgt.c| 28 +--
> drivers/media/platform/vsp1/vsp1_hsit.c | 20 +-
> drivers/media/platform/vsp1/vsp1_lif.c| 25 +-
> drivers/media/platform/vsp1/vsp1_lut.c| 77 +++--
> drivers/media/platform/vsp1/vsp1_lut.h| 1 +-
> drivers/media/platform/vsp1/vsp1_pipe.c | 11 +-
> drivers/media/platform/vsp1/vsp1_pipe.h | 7 +-
> drivers/media/platform/vsp1/vsp1_rpf.c| 183 +--
> drivers/media/platform/vsp1/vsp1_sru.c| 24 +-
> drivers/media/platform/vsp1/vsp1_uds.c| 75 ++--
> drivers/media/platform/vsp1/vsp1_uds.h| 2 +-
> drivers/media/platform/vsp1/vsp1_video.c | 82 ++---
> drivers/media/platform/vsp1/vsp1_video.h | 2 +-
> drivers/media/platform/vsp1/vsp1_wpf.c| 327 +--
> 23 files changed, 845 insertions(+), 691 deletions(-)
>
> base-commit: 8514509ba5933f4e4ade0d5d81be117f18c1ebd2
--
Regards,
Laurent Pinchart
}
> mutex_unlock(>lock);
>
> @@ -1240,6 +1247,16 @@ struct vsp1_video *vsp1_video_create(struct
> vsp1_device *vsp1, goto error;
> }
>
> + /*
> + * Utilise a body pool to cache the constant configuration of the
> + * pipeline object.
> + */
> + video->dlbs = vsp1_dl_body_pool_create(vsp1, 3, 128, 0);
> + if (!video->dlbs) {
> + ret = -ENOMEM;
> + goto error;
> + }
> +
> return video;
>
> error:
> @@ -1249,6 +1266,8 @@ struct vsp1_video *vsp1_video_create(struct
> vsp1_device *vsp1,
>
> void vsp1_video_cleanup(struct vsp1_video *video)
> {
> + vsp1_dl_body_pool_destroy(video->dlbs);
> +
> if (video_is_registered(>video))
> video_unregister_device(>video);
>
> diff --git a/drivers/media/platform/vsp1/vsp1_video.h
> b/drivers/media/platform/vsp1/vsp1_video.h index 50ea7f02205f..e84f8ee902c1
> 100644
> --- a/drivers/media/platform/vsp1/vsp1_video.h
> +++ b/drivers/media/platform/vsp1/vsp1_video.h
> @@ -43,6 +43,8 @@ struct vsp1_video {
>
> struct mutex lock;
>
> + struct vsp1_dl_body_pool *dlbs;
> + struct vsp1_dl_body *pipe_config;
> unsigned int pipe_index;
>
> struct vb2_queue queue;
--
Regards,
Laurent Pinchart
PF_VIRACT2_MST;
>
> - vsp1_wpf_write(wpf, dl, VI6_WPF_SRCRPF, srcrpf);
> + vsp1_wpf_write(wpf, dlb, VI6_WPF_SRCRPF, srcrpf);
>
> /* Enable interrupts */
> - vsp1_dl_list_write(dl, VI6_WPF_IRQ_STA(wpf->entity.index), 0);
> - vsp1_dl_list_write(dl, VI6_WPF_IRQ_ENB(wpf->entity.index),
> -VI6_WFP_IRQ_ENB_DFEE);
> + vsp1_dl_body_write(dlb, VI6_WPF_IRQ_STA(wpf->entity.index), 0);
> + vsp1_dl_body_write(dlb, VI6_WPF_IRQ_ENB(wpf->entity.index),
> +VI6_WFP_IRQ_ENB_DFEE);
Here too.
> }
[snip]
With those small issues fixed,
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
--
Regards,
Laurent Pinchart
or the sole purpose of checking whether to configure frame-related parameters
when partition == 0 makes me think that having two separate operations could
make sense.
> * @max_width: Return the max supported width of data that the entity
> can
> * process in a single operation.
> * @partition: Process the partition construction based on this
> entity's
[snip]
--
Regards,
Laurent Pinchart
262cb72139d6..77cf7137a0f2
> 100644
> --- a/drivers/media/platform/vsp1/vsp1_lut.c
> +++ b/drivers/media/platform/vsp1/vsp1_lut.c
> @@ -213,8 +213,13 @@ static void lut_configure(struct vsp1_entity *entity,
> lut->lut = NULL;
> spin_unlock_irqrestore(>lock, flags);
>
>
ated together to avoid memory
> + * fragmentation, with the header located right after the body in
> + * memory.
> + */
> + header_size = dlm->mode == VSP1_DL_MODE_HEADER
> + ? ALIGN(sizeof(struct vsp1_dl_header), 8)
> + : 0;
> +
> + dlm->pool = vsp1_dl_body_pool_create(vsp1, prealloc,
> + VSP1_DL_NUM_ENTRIES, header_size);
> + if (!dlm->pool)
> + return NULL;
>
> for (i = 0; i < prealloc; ++i) {
> struct vsp1_dl_list *dl;
>
> - dl = vsp1_dl_list_alloc(dlm);
> + dl = vsp1_dl_list_alloc(dlm, dlm->pool);
> if (!dl)
> return NULL;
>
> @@ -955,12 +838,10 @@ void vsp1_dlm_destroy(struct vsp1_dl_manager *dlm)
> if (!dlm)
> return;
>
> - cancel_work_sync(>gc_work);
> -
> list_for_each_entry_safe(dl, next, >free, list) {
> list_del(>list);
> vsp1_dl_list_free(dl);
> }
>
> - vsp1_dlm_bodies_free(dlm);
> + vsp1_dl_body_pool_destroy(dlm->pool);
> }
[snip]
--
Regards,
Laurent Pinchart
ted to have been
> initialized to diff --git a/drivers/media/platform/vsp1/vsp1_dl.h
> b/drivers/media/platform/vsp1/vsp1_dl.h index cf57f986b69a..031032e304d2
> 100644
> --- a/drivers/media/platform/vsp1/vsp1_dl.h
> +++ b/drivers/media/platform/vsp1/vsp1_dl.h
> @@ -17,6 +17,7
his call, and must not free it
> + * explicitly with vsp1_dl_body_free().
> *
> - * Fragments are only usable for display lists in header mode. Attempt to
> - * add a fragment to a header-less display list will return an error.
> + * Additional bodies are only usable for display lists in header mode.
> + * Attempting to add a body to a header-less display list will return an
> error.
> */
[snip]
With those two small issues fixed,
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
--
Regards,
Laurent Pinchart
In order to make the vsp1_du_setup_lif() easier to read, and for
symmetry with the DRM pipeline input setup, move the pipeline output
setup code to a separate function.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bin
The DRM pipeline setup code used at atomic commit time is similar to the
setup code used when enabling the pipeline. Move it to a separate
function in order to share it.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bin
The internal LVDS encoder now has DT bindings separate from the DU. Port
the device tree over to the new model.
Fixes: c6a27fa41fab ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
Fixes: 4bdb7aa7dcd0 ("ARM: dts: r8a7790: add soc node")
Signed-off-
The internal LVDS encoder now has DT bindings separate from the DU. Port
the device tree over to the new model.
Fixes: c6a27fa41fab ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
Fixes: bff8f8c2feb7 ("ARM: dts: r8a7793: add soc node")
Signed-off-
The internal LVDS encoder now has DT bindings separate from the DU. Port
the device tree over to the new model.
Fixes: c6a27fa41fab ("drm: rcar-du: Convert LVDS encoder code to bridge driver")
Fixes: bb21803ea440 ("ARM: dts: r8a7791: add soc node")
Signed-off-
both the R-Car DU
changes and the ARM DT changes for v4.17-rc1. I can rebase them on top of
v4.17-rc1 when it will be released, but I don't expect any change.
Laurent Pinchart (3):
ARM: dts: r8a7790: Convert to new LVDS DT bindings
ARM: dts: r8a7791: Convert to new LVDS DT bindings
ARM: dts
Hi Jacopo,
(CC'ing Mark Brown)
On Friday, 6 April 2018 17:25:58 EEST jacopo mondi wrote:
> On Fri, Apr 06, 2018 at 04:15:35PM +0300, Laurent Pinchart wrote:
> > On Friday, 6 April 2018 15:41:56 EEST Jacopo Mondi wrote:
> >> Document Thine THC63LVD1024 LVDS decoder de
derlund <niklas.soderlund+rene...@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> ---
> arch/arm64/boot/dts/renesas/r8a77970.dtsi | 8
> 1 file changed, 8 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/renesas/r8a77970.dtsi
>
by Daisuke Matsushita
> <daisuke.matsushita...@hitachi.com>.
>
> Signed-off-by: Vladimir Barinov <vladimir.bari...@cogentembedded.com>
> Signed-off-by: Sergei Shtylyov <sergei.shtyl...@cogentembedded.com>
> Signed-off-by: Niklas Söderlund <niklas.soderlund+rene...@ra
While at it align the endpoint name
> of the du to du_out_lvds0 which is used in other Renesas DTS files to
> describe this link.
The endpoint could be renamed in patch 3/7, but it's not a big deal.
> Signed-off-by: Niklas Söderlund <niklas.soderlund+rene...@ragnatech.se>
Reviewed-by
; arm64: dts: renesas: r8a77970: add VSPD support
> arm64: dts: renesas: r8a77970: add DU support
>
> arch/arm64/boot/dts/renesas/r8a77970-eagle.dts | 89 +++
> arch/arm64/boot/dts/renesas/r8a77970.dtsi | 73 +
> 2 files changed, 162 insertions(+)
>
--
Regards,
Laurent Pinchart
+
> + port@0 {
> + reg = <0>;
> + adv7511_in: endpoint {
> + remote-endpoint = <_out>;
> + };
> + };
>
gt;
> {
> @@ -104,3 +121,15 @@
> pinctrl-names = "default";
> status = "okay";
> };
> +
> + {
> + status = "okay";
> +
> + ports {
> + port@1 {
> + lvds0_out: endpoint {
> + remote-endpoint = <_in>;
> + };
> + };
> + };
> +};
--
Regards,
Laurent Pinchart
uot;scif0";
> @@ -93,3 +98,9 @@
>
> status = "okay";
> };
> +
> + {
> + pinctrl-0 = <_pins>;
> + pinctrl-names = "default";
These two properties should be moved to patch 7/7 too.
> + status = "okay";
> +};
There's little use for enabling the DU in DT if you have no output port
described. I'd move this to patch 6/7.
--
Regards,
Laurent Pinchart
Hi again,
On Friday, 6 April 2018 16:45:16 EEST Laurent Pinchart wrote:
> On Friday, 6 April 2018 16:08:10 EEST Jacopo Mondi wrote:
> > Enable DU for Renesas R-Car V3M Eagle board.
> >
> > Signed-off-by: Jacopo Mondi <jacopo+rene...@jmondi.org>
> > ---
>
compatible = "renesas,vsp2";
> + reg = <0 0xfea2 0 0x4000>;
You need to extend the memory region to include the V6_CLUTn_TBL* registers. I
would recommend simply extending it to 0x8000 as all other VSP instances, even
+ of_node_put(remote);
> + return -ENODEV;
> + }
> +
> + thc63->next = of_drm_find_bridge(remote);
> + if (!thc63->next) {
> + of_node_put(remote);
> + return -EPROBE_DEFER;
> +
t;
> Reviewed-by: Niklas Söderlund <niklas.soderlund+rene...@ragnatech.se>
> Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> ---
> .../bindings/display/bridge/thine,thc63lvd1024.txt | 60 +++
> 1 file changed, 60 insertions(+)
>
Hi Rob,
On Thursday, 5 April 2018 19:33:33 EEST Rob Herring wrote:
> On Mon, Apr 2, 2018 at 8:36 AM, Laurent Pinchart wrote:
> > On Tuesday, 27 March 2018 14:03:25 EEST Vladimir Zapolskiy wrote:
> >> On 03/27/2018 01:10 PM, jacopo mondi wrote:
> >>> On Tue, Ma
registers to stay close to the datasheet.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Acked-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>
---
drivers/media/platform/vsp1/Makefile | 2 +-
drivers/media/platform/vsp1/vsp1.h
Dynamic assignment of the BRU and BRS to pipelines is prone to
regressions, add messages to make debugging easier. Keep it as a
separate commit to ease removal of those messages once the code will
deem to be completely stable.
Signed-off-by: Laurent Pinchart <laurent.pinchart+r
We will soon need to return more than a boolean completion status from
the vsp1_dlm_irq_frame_end() IRQ handler. Turn the return value into a
bitfield to prepare for that. No functional change is introduced here.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.
The DRM pipeline setup code used at atomic commit time is similar to the
setup code used when enabling the pipeline. Move it to a separate
function in order to share it.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bin
The vsp1_drm_pipeline enabled field is set but never used. Remove it.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>
---
drivers/media/platform/vsp1/vsp1_drm.c | 4
drivers/media/p
.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>
---
drivers/media/platform/vsp1/vsp1_drm.c | 8
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/media/platform/vsp
To implement fully dynamic plane assignment to pipelines, we need to
reassign the BRU and BRS to the DRM pipelines in the atomic commit
handler. In preparation for this setup factor out the BRU source pad
code and call it both at LIF setup and atomic commit time.
Signed-off-by: Laurent Pinchart
from the atomic update handler.
The current implementation is RPF-specific. Make it independent of the
entity type by using the entity's pipe pointer to mark removal from the
pipeline. This will allow using the mechanism to remove BRU instances.
Signed-off-by: Laurent Pinchart <laurent.pinchart+r
, this requires reconfiguring the
other pipeline to free the BRU before processing, which can result in
frame drop on both pipelines.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>
---
d
In order to make the vsp1_du_setup_lif() easier to read, and for
symmetry with the DRM pipeline input setup, move the pipeline output
setup code to a separate function.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bin
implementation is not correct. Remove the incorrect and unneeded code.
While at it remove the outdated comment that states that entities are
not started when the LIF is setup, as they now are.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran B
Various types of objects subclassing vsp1_entity currently store a
pointer to the pipeline. Move the pointer to vsp1_entity to simplify the
code and avoid storing the pipeline in more entity subclasses later.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Re
Move the duplicated DRM pipeline configuration code to a function and
call it from vsp1_du_setup_lif() and vsp1_du_atomic_flush().
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham+rene...@ideasonboard.com>
---
d
driver. Extend the display list API to support such an
internal use of the display list.
Signed-off-by: Laurent Pinchart <laurent.pinchart+rene...@ideasonboard.com>
---
Changes since v1:
- Use the frame end status flags to report notification
- Rename the notify flag to internal
---
drivers
(), the
vsp1_du_pipeline_setup_input() function will not setup any RPF, and will
thus not setup formats on the BRU sink pads. This isn't a problem as all
inputs are disabled, and the BRU sink pads will be reconfigured from the
atomic commit handler when inputs will be enabled.
Signed-off-by: Laurent Pinchart <laurent.pinch
changelogs.
Laurent Pinchart (15):
v4l: vsp1: Don't start/stop media pipeline for DRM
v4l: vsp1: Remove unused field from vsp1_drm_pipeline structure
v4l: vsp1: Store pipeline pointer in vsp1_entity
v4l: vsp1: Use vsp1_entity.pipe to check if entity belongs to a
pipeline
v4l: vsp1
Hi Geert,
On Thursday, 5 April 2018 10:33:55 EEST Geert Uytterhoeven wrote:
> On Wed, Apr 4, 2018 at 5:26 PM, Laurent Pinchart wrote:
> > On Thursday, 29 March 2018 14:30:39 EEST Maxime Ripard wrote:
> >> On Tue, Feb 13, 2018 at 12:01:32AM +0100, Niklas Söderlund wrote:
>
details this time.
> On 26/02/18 21:45, Laurent Pinchart wrote:
> > The VSPDL variant drives two DU channels through two LIF and two
> > blenders, BRU and BRS. The DU channels thus share the five available
> > VSPDL inputs and expose them as five KMS planes.
> >
&
Hi Kieran,
On Wednesday, 4 April 2018 19:16:46 EEST Kieran Bingham wrote:
> On 26/02/18 21:45, Laurent Pinchart wrote:
> > Display list completion is already reported to the frame end handler,
> > but that mechanism is global to all display lists. In order to implement
Hi Kieran,
On Wednesday, 4 April 2018 19:15:19 EEST Kieran Bingham wrote:
> On 02/04/18 13:35, Laurent Pinchart wrote:
>
>
>
> >>> +/* Setup the output side of the pipeline (WPF and LIF). */
> >>> +static int vsp1_du_pipeline_s
201 - 300 of 2024 matches
Mail list logo