On Tue, Mar 15, 2016 at 09:40:25AM +0900, Simon Horman wrote:
> Hi,
>
> this short series adds add fallback and r8a7792 bindings to rcar_vin.
>
> Based on media-tree/master
Hi Guennadi,
I am wondering if you could consider applying this series too.
It still applies cleanly on top of
On Tue, Mar 08, 2016 at 10:03:55AM +0900, Simon Horman wrote:
> Make use of ARCH_RENESAS in place of ARCH_SHMOBILE.
>
> This is part of an ongoing process to migrate from ARCH_SHMOBILE to
> ARCH_RENESAS the motivation for which being that RENESAS seems to be a more
> appropriate name than
Make use of ARCH_RENESAS in place of ARCH_SHMOBILE.
This is part of an ongoing process to migrate from ARCH_SHMOBILE to
ARCH_RENESAS the motivation for which being that RENESAS seems to be a more
appropriate name than SHMOBILE for the majority of Renesas ARM based SoCs.
Acked-by: Geert
Commit 54b5a749b4f3 ("[media] v4l: vsp1: Use media entity enumeration
interface") wasn't aligned with the driver coding style. Fix it by
renaming the rval variable to ret.
Furthermore shorten lines by accessing the media_device instance in a
more straightforward fashion.
Signed-off-by: Laurent
The DRM pipeline, as it runs in automatic restart mode, never sees the
pipeline state set to VSP1_PIPELINE_STOPPING or VSP1_PIPELINE_STOPPED
when running the frame end interrupt handler. We can thus skip the
checks various checks in the handler and return immediately.
Similarly the DRM frame end
Instead of embedding pipelines in the vsp1_video objects allocate them
on demand when they are needed. This fixes the streamon race condition
where pipelines objects from different video nodes could be used for the
same pipeline.
Signed-off-by: Laurent Pinchart
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_video.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/media/platform/vsp1/vsp1_video.c
b/drivers/media/platform/vsp1/vsp1_video.c
index 7cb270f57f62..102977ae1daa
This clarifies the API and prepares display list support for being used
to implement the request API.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1.h| 1 -
drivers/media/platform/vsp1/vsp1_dl.c | 264
Pass the pipe explicitly instead of retrieving it through media
entities. This decouples device state stored in the pipeline from the
active state stored in entities, preparing for dynamic pipeline
creation.
Signed-off-by: Laurent Pinchart
---
Use the pad config structure part of the vsp1_entity to store all active
pad selection rectangles. This generalizes the code to operate on pad
config structures.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c| 24
The function can only be called from a s_stream handler as it requires a
valid display list context (due to calling vsp1_uds_set_alpha() which
writes to module registers). Document the requirement.
Signed-off-by: Laurent Pinchart
---
Reuse the runtime logic to initialize the default format instead of
open-coding it. This ensures coherency between intialization and
runtime.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_video.c | 11 ++-
1 file changed,
The field takes positive values only, make it unsigned.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_dl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/platform/vsp1/vsp1_dl.c
Entities have two operations, a destroy operation stored directly in
vsp1_entity and a set_memory operation stored in a vsp1_rwpf_operations
structure. Move the two to a more generic vsp1_entity_operations
structure that will serve to implement additional operations.
Signed-off-by: Laurent
Don't restrict display list usage to the DRM pipeline, use them
unconditionally. This prepares the driver to support the request API.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_dl.c | 11 +--
Add a pad config structure field to the vsp1_entity structure and use it
to store all active pad formats. This generalizes the code to operate on
pad config structures.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c| 59
The RPF entities are located at the very beginning of pipelines, they
can't be target nodes in the Data Path Router matrix. Remove their input
ID from the routing table.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_entity.c | 10
The two structures are identical, merge them and move the result to
vsp1_rwpf.c. All rwpf pad operations can now be declared static.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_rpf.c | 12 +--
The RPF source memory pointers need to be offset to take the crop
rectangle into account. Offsets are computed in the RPF stream start,
which can happen (when using the DRM pipeline) after calling the RPF
.set_memory() operation that programs the buffer addresses.
The .set_memory() operation
Initialize the function field of all subdev entities instantiated by the
driver. This gets rids of multiple warnings printed by the media
controller core.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c | 2 ++
The vsp1_dl_list_put() function expects to be called with the display
list manager lock held. This assumption is correct for calls from within
the vsp1_dl.c file, but not for the external calls. Fix it by taking the
lock inside the function and providing an unlocked version for the
internal
The datasheet clearly states that all but a few registers can't be
modified when the device is running. Programming the alpha value in
the control set handler is thus prohibited. Program it when starting the
module instead.
This requires storing the alpha value internally as the module can be
Most of the entities can't perform scaling and implement the same frame
size enumeration function. Factorize the code into a single
implementation.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_entity.c | 52
This prepares for dynamic pipeline allocation by providing a field that
can be used to store the pipeline pointer atomically under driver
control.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_drv.c | 4 +---
The primary purpose of those functions is to build the pipeline, rename
them to make this clearer.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_video.c | 18 +-
1 file changed, 9 insertions(+), 9 deletions(-)
Commit f7234138f14c ("v4l2-subdev: replace v4l2_subdev_fh by
v4l2_subdev_pad_config") introduced lots of 80 characters per line
violations. Fix them.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c | 12
The datasheet clearly states that all but a few registers can't be
modified when the device is running. Programming the background color
in the control set handler is thus prohibited. Program it when starting
the module instead.
This requires storing the background color value internally as the
Modules write register values to the active display list pointed to by
the pipeline. In order to support preparing display lists ahead of time,
pass them explicitly to all configuration functions.
Signed-off-by: Laurent Pinchart
---
The flag is set but never read, remove it.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c| 2 --
drivers/media/platform/vsp1/vsp1_entity.c | 23 ---
drivers/media/platform/vsp1/vsp1_entity.h | 6
The control handler set operations don't program the hardware anymore,
there's thus no need to call them when starting the stream.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c| 5 +
Synchronize the userspace LUT setup with the pipeline operation by using
a display list fragment to store LUT data.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_lut.c | 31 ++-
Each WPF can process display lists independently, move the manager to
the WPF to reflect that and prepare for display list support for non-DRM
pipelines.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_dl.c | 37
The datasheet clearly states that all but a few registers can't be
modified when the device is running. Programming the intensity
parameters in the control set handler is thus prohibited. Program it
when starting the module instead.
This requires storing the intensity value internally as the
Those modules were left out of display list integration as they're not
used by the DRM pipeline. To prepare for display list support in non-DRM
pipelines use the module write API to set registers.
Signed-off-by: Laurent Pinchart
---
The LUT set format handler overrides the requested format by mistake.
Fix it.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_lut.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/platform/vsp1/vsp1_lut.c
Remove the HAS_LUT flag in the corresponding device information entry.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/platform/vsp1/vsp1_drv.c
Move the pipeline initialization and cleanup functions to prepare for
the next commit. No functional code change is performed here.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_video.c | 266 +++
1
Make the Z-order of planes configurable by assigning RPFs to BRU inputs
dynamically based on the Z-order position.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_drm.c | 180 +++-
Most of the entities can't perform format conversion and implement the
same media bus enumeration function. Factorize the code into a single
implementation.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c| 26
The functions are void, make the declaration match the definition.
Signed-off-by: Laurent Pinchart
---
include/media/vsp1.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/media/vsp1.h b/include/media/vsp1.h
index
All entities implement the same get pad format handler, factorize it
into a common function.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c| 19 +--
drivers/media/platform/vsp1/vsp1_entity.c | 25
The VSP1 DRM API is declared in , not . Fix
it. This also reverts commit 18922936dc28 ("[media] vsp1_drm.h: add
missing prototypes") that added the same declarations in a different
header file.
Signed-off-by: Laurent Pinchart
---
The Gen3 RPF includes an alpha multiplier that can both multiply the
alpha channel by a fixed global alpha value, and multiply the pixel
components to convert the input to premultiplied alpha.
As alpha premultiplication is available in the BRU for both Gen2 and
Gen3 we handle it there and use the
Display lists can operate in header or headerless mode. The headerless
mode is only available on WPF0, to be used with the display engine. All
other WPF instances can only use display lists in header mode.
Implement support for header mode to prepare for display list usage on
WPFs other than 0.
The subdev s_stream operation is abused as a generic way to setup
modules at every frame. Move the code out to a new VSP1 entity configure
operation.
Most modules now have an empty s_stream operation that can be removed.
The only exception is the WPF module that needs to perform hardware
Display lists support up to 8 bodies but we currently use a single one.
To support preparing display lists for large look-up tables, add support
for multi-body display lists.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_dl.c |
Make sure display list usage is correctly disabled by always setting up
the corresponding registers, including when the display list feature
isn't used.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_dl.c | 7 +++
Don't duplicate the code in every module driver, centralize it in a
single place.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c| 21 +++--
drivers/media/platform/vsp1/vsp1_entity.c | 31
Fix a typo that stored the try compose rectangle in the crop rectangle.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1_bru.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git
This allows getting rid of the vsp1_device::use_dl field.
Signed-off-by: Laurent Pinchart
---
drivers/media/platform/vsp1/vsp1.h| 12
drivers/media/platform/vsp1/vsp1_dl.c | 5 +
drivers/media/platform/vsp1/vsp1_dl.h |
Turn the custom formats initialization function into a standard
pad::init_cfg handler and use it in subdevs instead of initializing
formats in the subdev open handler.
This makes the subdev open handler empty, so remove it.
Signed-off-by: Laurent Pinchart
Hello,
This patch series contains all the pending vsp1 driver improvements for v4.6.
In particular, it enables display list usage in non-DRM pipelines (24/51) and
adds support for multi-body display lists (48/51) and the R-Car Gen3 RPF alpha
multiplier (50/51) and Z-order control (51/51).
The
From: Laurent Pinchart
Add a new subdev operation to initialize a subdev pad config array, and
a helper function to allocate and initialize the array. This can be used
by bridge drivers to implement try format based on subdev pad
operations.
Signed-off-by: Laurent
The subdev core code currently rely on the subdev open handler to
initialize the file handle's pad configuration, even though subdevs now
have a pad operation dedicated for that purpose.
As a first step towards migration to init_cfg, call the operation
operation in the subdev core open
Add composer, format converter and scaler functions, as well as generic
video processing to be used when no other processing function is
applicable.
Signed-off-by: Laurent Pinchart
---
Documentation/DocBook/media/v4l/media-types.xml | 34
Commit c38077d39c7e ("[media] media-device: get rid of the spinlock")
introduced a deadlock in the MEDIA_IOC_ENUM_LINKS ioctl handler.
Revert the broken commit as well as another that has been merged on top, and
let's implement a proper fix instead of half-baked hacks this time.
[ 2760.127749]
This reverts commit 44ff16d0b7ccb4c872de7a53196b2d3f83089607.
Signed-off-by: Laurent Pinchart
---
drivers/media/media-device.c | 117 -
drivers/media/usb/au0828/au0828-core.c | 3 +-
This reverts commit c38077d39c7eb84f031b072eab8009acfff57134 that
introduced a deadlock.
[ 2760.127749] INFO: task media-ctl:954 blocked for more than 120 seconds.
[ 2760.131867] Not tainted 4.5.0+ #357
[ 2760.134622] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this
On Wednesday 16 Mar 2016 09:04:02 Mauro Carvalho Chehab wrote:
> Right now, the lock schema for media_device struct is messy,
> since sometimes, it is protected via a spin lock, while, for
> media graph traversal, it is protected by a mutex.
>
> Solve this conflict by always using a mutex.
>
>
On 03/24/2016 08:59 PM, Mauro Carvalho Chehab wrote:
> Currently, cdev is embedded inside media_devnode. This causes
> a problem with the fs core, as __fput() will try to release
> its access by calling cdev_put():
>
> [ 399.653545] BUG: KASAN: use-after-free in media_release+0xe1/0xf0 [media]
Currently, cdev is embedded inside media_devnode. This causes
a problem with the fs core, as __fput() will try to release
its access by calling cdev_put():
[ 399.653545] BUG: KASAN: use-after-free in media_release+0xe1/0xf0 [media] at
addr 88036a9ba4e0
[ 399.653550] Read of size 8 by task
Hi Vladimir,
On 2016-03-24 15:24, Vladimir Zapolskiy wrote:
> On 24.03.2016 13:05, Peter Rosin wrote:
>> On 2016-03-24 10:50, Vladimir Zapolskiy wrote:
>>> On 05.01.2016 17:57, Peter Rosin wrote:
@@ -196,21 +195,21 @@ static int i2c_arbitrator_probe(struct
platform_device *pdev)
Hello Hans Verkuil,
The patch 1f3375e0b257: "[media] tw9910: init priv->scale and update
standard" from Jun 15, 2015, leads to the following static checker
warning:
drivers/media/i2c/soc_camera/tw9910.c:536 tw9910_s_std()
warn: odd binop '0x0 & 0xc'
On 03/23/2016 05:24 PM, Sakari Ailus wrote:
Hi Jacek,
On Tue, Mar 22, 2016 at 10:36:05AM +0100, Jacek Anaszewski wrote:
Hi Sakari,
On 03/21/2016 01:07 AM, Sakari Ailus wrote:
Hi Jacek,
On Thu, Feb 18, 2016 at 02:14:40PM +0100, Jacek Anaszewski wrote:
Hi Sakari,
On 02/18/2016 01:09 PM,
Hi Peter,
On 24.03.2016 13:05, Peter Rosin wrote:
> Hi Vladimir,
>
> On 2016-03-24 10:50, Vladimir Zapolskiy wrote:
>> Hi Peter,
>>
>> On 05.01.2016 17:57, Peter Rosin wrote:
>>> From: Peter Rosin
>>>
>>> The initial core mux structure starts off small with only the parent
>>>
Em Thu, 24 Mar 2016 13:54:57 +0200
Laurent Pinchart escreveu:
> On Thursday 24 Mar 2016 08:38:40 Mauro Carvalho Chehab wrote:
> > Em Thu, 24 Mar 2016 10:50:06 +0200 Laurent Pinchart escreveu:
> > > Hello,
> > >
> > > This patch series adds an obj_type field
On Thursday 24 Mar 2016 08:38:40 Mauro Carvalho Chehab wrote:
> Em Thu, 24 Mar 2016 10:50:06 +0200 Laurent Pinchart escreveu:
> > Hello,
> >
> > This patch series adds an obj_type field to the media entity structure. It
> > is a resend of v5 with the MEDIA_ENTITY_TYPE_INVALID type replaced by
> >
Em Thu, 24 Mar 2016 10:50:06 +0200
Laurent Pinchart escreveu:
> Hello,
>
> This patch series adds an obj_type field to the media entity structure. It
> is a resend of v5 with the MEDIA_ENTITY_TYPE_INVALID type replaced by
> MEDIA_ENTITY_TYPE_BASE to
Em Thu, 24 Mar 2016 10:24:44 +0200
Laurent Pinchart escreveu:
> On Wednesday 23 Mar 2016 16:27:46 Mauro Carvalho Chehab wrote:
> > struct media_devnode is currently embedded at struct media_device.
> >
> > While this works fine during normal usage, it leads to
During the review process, a regression was intoduced in the
circular buffer write pointer management. This means that wp
doesn't get managed properly once the buffer becomes full.
Signed-off-by: Peter Griffin
---
drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c |
Hi Mauro,
This series includes a few fixes for the c8sectpfe Linux dvb demux driver.
The first fixes a bug introduced in the review process to the circular
buffer WP management. The second re-works the firmware loading code to not
rely on the CONFIG_FW_LOADER_USER_HELPER_FALLBACK which was
c8sectpfe driver relied on CONFIG_FW_LOADER_USER_HELPER_FALLBACK option
for loading its xp70 firmware. A previous commit removed this Kconfig
option, as it is apparently harmful, but did not update the driver
code which relied on it.
This patch reworks the firmware loading into the start_feed
Signed-off-by: Peter Griffin
---
drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c
b/drivers/media/platform/sti/c8sectpfe/c8sectpfe-core.c
Hi Vladimir,
On 2016-03-24 10:50, Vladimir Zapolskiy wrote:
> Hi Peter,
>
> On 05.01.2016 17:57, Peter Rosin wrote:
>> From: Peter Rosin
>>
>> The initial core mux structure starts off small with only the parent
>> adapter pointer, which all muxes have, and a priv pointer for
Hi Mauro,
On Wed, Mar 23, 2016 at 04:27:42PM -0300, Mauro Carvalho Chehab wrote:
> The first three patches in this series are simple cleanup patches.
> No functional changes.
>
> The final patch fixes a longstanding bug at the Media Controller framework:
> it prevents race conditions when the
Hi Peter,
On 05.01.2016 17:57, Peter Rosin wrote:
> From: Peter Rosin
>
> The initial core mux structure starts off small with only the parent
> adapter pointer, which all muxes have, and a priv pointer for mux
> driver private data.
>
> Add i2c_mux_alloc function to unify the
All users of is_media_entity_v4l2_io() (the exynos4-is, omap3isp,
davince_vpfe and omap4iss drivers and the v4l2-mc power management code)
use the function to check whether entities are video_device instances,
either to ensure they can cast the entity to a struct video_device, or
to count the
Code that processes media entities can require knowledge of the
structure type that embeds a particular media entity instance in order
to cast the entity to the proper object type. This needs is shown by the
presence of the is_media_entity_v4l2_io and is_media_entity_v4l2_subdev
functions.
The
Hello,
This patch series adds an obj_type field to the media entity structure. It
is a resend of v5 with the MEDIA_ENTITY_TYPE_INVALID type replaced by
MEDIA_ENTITY_TYPE_BASE to identify media entity instances not embedded in
another structure.
Cc: Kyungmin Park
Cc:
On Wednesday 23 Mar 2016 16:27:45 Mauro Carvalho Chehab wrote:
> The comment there is not pertinent.
>
> Fixes: 44ff16d0b7cc ("media-device: use kref for media_device instance")
> Signed-off-by: Mauro Carvalho Chehab
> Suggested-by: Laurent Pinchart
On Wednesday 23 Mar 2016 16:27:43 Mauro Carvalho Chehab wrote:
> Only MEDIA_IOC_ENUM_LINKS32 require an special logic when
> userspace is 32 bits and Kernel is 64 bits.
>
> For the rest, media_device_ioctl() will do the right thing,
> and will return -ENOIOCTLCMD if the ioctl is unknown.
>
>
On Wednesday 23 Mar 2016 16:27:46 Mauro Carvalho Chehab wrote:
> struct media_devnode is currently embedded at struct media_device.
>
> While this works fine during normal usage, it leads to a race
> condition during devnode unregister. the problem is that drivers
> assume that, after calling
On Wednesday 23 Mar 2016 14:29:35 Mauro Carvalho Chehab wrote:
> Em Wed, 23 Mar 2016 17:41:44 +0200 Laurent Pinchart escreveu:
> > On Wednesday 23 Mar 2016 12:17:30 Mauro Carvalho Chehab wrote:
> >> Em Wed, 23 Mar 2016 15:57:10 +0100 Hans Verkuil escreveu:
> >>> On 03/23/2016 03:45 PM, Laurent
On Wednesday 23 Mar 2016 13:47:42 Mauro Carvalho Chehab wrote:
> Em Wed, 23 Mar 2016 18:17:38 +0200 Sakari Ailus escreveu:
> > On Wed, Mar 23, 2016 at 12:00:59PM -0300, Mauro Carvalho Chehab wrote:
> >> Em Wed, 23 Mar 2016 15:05:41 +0100 Hans Verkuil escreveu:
> >>> On 03/23/2016 11:35 AM, Mauro
84 matches
Mail list logo