Since 2017, there is an space reserved for userspace API,
created by changeset 1d596dee38 ("docs: Create a user-space API guide").
As the media subsystem was one of the first subsystems to use
Sphinx, until this patch, we were keeping things on a separate
place.
Let's just use the new location, as having all uAPI altogether
will likely make things easier for developers.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
With all the plumbing in place, let's just add the separate dedicated
receive buffers to handle notifications that can arrive asynchronously
from the platform firmware to OS.
Also add one check to see if the platform supports any receive channels
before allocating the receive buffers: since those buffers are optionally
supported though, the whole xfer initialization is also postponed to be
able to check for their existence in advance.
Link: https://lore.kernel.org/r/20200327143438.5382-2-cristian.marussi@arm.com
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
[Changed parameters in __scmi_xfer_info_init()]
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
If this header is include twice, it will generate loads of compile
time error with the following below error pattern. It was reported by
0day kbuild robot on a branch pushed with double inclusion by accident.
This is based on the similar change in linux/scmi_protocol.h
error: conflicting types for ‘...’
note: previous declaration of ‘...’ was here
error: redefinition of ‘...’
Add a header include guard just in case.
Link: https://lore.kernel.org/r/20200403171018.1230-2-sudeep.holla@arm.com
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
If this header is include twice, it will generate loads of compile
time error with the following below error pattern. It was reported by
0day kbuild robot on a branch pushed with double inclusion by accident.
error: conflicting types for ‘...’
note: previous declaration of ‘...’ was here
error: redefinition of ‘...’
Add a header include guard just in case.
Link: https://lore.kernel.org/r/20200403171018.1230-1-sudeep.holla@arm.com
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
The scmi protocol core driver checks for the channel availability
before evaluating the shmem property. If the individual protocols
don't have separate channel assigned to them, the channel alloted
for the BASE protocol is reused automatically.
Therefore there is no need to check for the shmem property in the
parent node if it is absent in the child protocol node.
Link: https://lore.kernel.org/r/20200327163654.13389-5-sudeep.holla@arm.com
Tested-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
In order to support multiple SMC/HVC transport channels with associated
shared memory, it is better to maintain the mutex per channel instead of
existing global one.
Move the smc_mutex into the scmi_smc structure and also rename it to
shmem_lock which is more appropriate for it's use.
Link: https://lore.kernel.org/r/20200327163654.13389-2-sudeep.holla@arm.com
Tested-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Use the value of "arm,smc-id" property from the device tree as the first
argument for SMCCC call leaving all the other arguments as zero for now.
There is no Rx, only Tx because of smc/hvc not support Rx.
Link: https://lore.kernel.org/r/1583673879-20714-3-git-send-email-peng.fan@nxp.com
Signed-off-by: Peng Fan <peng.fan@nxp.com>
[sudeep.holla: reworded commit log/subject and fixed !HAVE_ARM_SMCCC build]
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
This file contains both driver develompent documentation and
userspace API.
Split on two, as they're usually read by different audiences.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This file contains both driver develompent documentation and
userspace API.
Split on two, as they're usually read by different audiences.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This file contains both driver develompent documentation and
userspace API.
Split on two, as they're usually read by different audiences.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This file contains both driver develompent documentation and
userspace API.
Split on two, as they're usually read by different audiences.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This file contains both driver develompent documentation and
userspace API.
Split on two, as they're usually read by different audiences.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
There are two places inside this file that points to the
cx2341x documentation, with was split into two. Looking
at changeset dcc0ef8820
("V4L/DVB (10442): cx18: Fixes for enforcing when Encoder Raw VBI params can be set")
with added those comments, it was originally pointing to:
Documentation/video4linux/cx2341x/fw-encoder-api.txt
Well, the firmware details went to
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This file contains both driver develompent documentation
(basically, firmware documentation) and IVTV-specific
documentation about VBI and raw formats, focused on uAPI
development.
Split on two, as they're usually read by different audiences.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This file contains both admin and development stuff. Split on
two, as they're usually read by different audiences.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This file contains both admin and development stuff. Split on
two, as they're usually read by different audiences.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Instead of placing both info from admin PoV and uAPI at the
same place, split into two separate documents.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
The ci.rst file contains two parts: the first one describing
how to use the CA high level interface; the second one with
uAPI internals.
Split this on two separate files, adding the uAPI bits
to the DVB ca.rst configuration.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
In order to be able to better organize the subsystem, split the
cpia2 information on two files: one user-facing and another one
from Kernel development PoV.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
As the entire soc_camera driver is on staging to be removed
soon, let's place there its documentation too.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
While making the menu invisible seemed a good idea, there's
a drawback: when the menu is not visible, it is not parsing
the "default" dependency.
So, instead, let's just avoid the items at the menu to be
prompted, by using the "prompt ... if" construction.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Right now, there are I2C drivers that don't depend on
camera support before and after those.
Move the camera support drivers to the end, and add
a notice at the "endif", in order to make easier to
maintain and to avoid adding extra dependencies at
the other i2c/*/Kconfig files.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
After this change, the menu is displayed like above.
1) When filtering is not active:
--- Multimedia support
[ ] Filter devices by their types
[*] Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)
Media core support --->
Video4Linux options --->
Media controller options --->
Digital TV options --->
HDMI CEC options --->
Media drivers --->
2) When filtering is active:
--- Multimedia support
[*] Filter devices by their types
[*] Autoselect ancillary drivers (tuners, sensors, i2c, spi, frontends)
Media device types --->
Video4Linux options --->
Media controller options --->
Digital TV options --->
HDMI CEC options --->
Media drivers --->
The per-API menu will only be displayed if the corresponding
core support is enabled.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Advanced and embedded users know what to do, so, by default,
they will likely want to be able to open the entire set of
Kconfig media options.
Normal "poor" users usually needs more help when setting
stuff, so let's open an more simplified version to them by
default.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Let's place the sub-driver-autoselection option just below
the device filtering one, as it also controls a filter menu,
with is not even visible if !EXPERT && !EMBEDDED.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
That should make easier for people setting the media
subsystem config options, as they'll be split by the
type of functionality that will be enabled.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Let's place the main API selections at the media/Kconfig file,
as this way we can better organize things.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This option is part of V4L2 API extra functionality set.
Move it to be at the v4l2-core/Kconfig, where it belongs,
cleaning the main Kconfig file.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
In order to cleanup the main media Kconfig, move the DVB-core
specific options to dvb-core/Kconfig.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
There's no need to have the CEC definitions inside the
media Kconfig, as the Kconfig parser doesn't require
symbols to be declared before their usages.
With that, the main Kconfig menu becomes cleaner.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
As per a tester feedback, add an option to report when
the drivers are filtered at the Kconfig menu.
Cc: Helen Koike <helen.koike@collabora.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
The per-device option selection is a feature that some
developers love, while others hate...
So, let's make both happy by making it optional.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
The media subsystem has hundreds of driver-specific options.
The *_SUPPORT config options work as a sort of filter,
allowing to reduce its complexity for users that won't
want to dig into thousands of options they don't need.
Yet, it the filtering options are becoming large. So, let's
place it on a sub-menu.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
The comments before some of the drivers support look
weird, because their Kconfig have their own "comment"
directive inside it. So, rearrange them to make it
look a little nicer for the ones with are not too
familiar with the media system.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
There are lots of drivers that only work when the media controller
and/or the V4L2 subdev APIs are present.
Right now, someone need to first enable those APIs before
using those drivers.
Well, ideally, drivers, should, instead *optionally*
depend on it, in order for PC camera drivers to be able to use
them, but nowadays most drivers are UVC cameras, with don't
require a sensor driver.
So, be it.
Let's instead make them select the MEDIA_CONTROLLER and the
SUBDEV API, in order to make easier for people to be able
of enabling them.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
All modern Linux distributions nowadays use udev or some
alternative (like systemd). So, it makes sense to change
the default to use dynamic minors.
Please notice that this default doesn't enable any code.
It just changes the dvb-core behavior.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Most of media Kconfig/Makefile files already has SPDX,
but there are a few ones still missing. Add it to them.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
There are some long-time mistakes related to build test
drivers, with regards to depends on/select. Also, as we
now want to build any test driver without needing to
enable anything else, change the logic in order to properly
filter them.
Please notice that the PCI skeleton is somewhat an
exception, as it requires to select *both* SAMPLES and
MEDIA_TEST_SUPPORT. I almost changed it to be either one,
but decided to keep it as-is, as this is something that
we don't really need to be included on any distribution.
The only reason for someone to build it is for COMPILE_TEST
purposes.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Right now, if one has an hybrid TV card, it has to select
both analog and digital TV support, as otherwise the needed
core support won't be selected.
Change the logic to auto-select the core support for those
drivers, as this is a way more intuitive.
It should be noticed that, as now both DVB_CORE and VIDEO_DEV
defaults depends on selecting a hybrid cards, we had to remove
the explicit dependencies there, in order to avoid circular
dependencies.
That requires some tricks:
1) the prompt should not be not visible when an hybrid card
is selected, as the user shold not change it.
2) When a media hybrid device is selected, the modular
option for DVB_CORE and VIDEO_DEV will follow the
MEDIA_SUPPORT dependency, as we can't have a core
built with "y" with a driver built as module.
Note: while here, moved two pure V4L2 PCI drivers out of the
"hybrid" part of config and consider pvrusb2 as an hybrid
device.
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>