Commit graph

519490 commits

Author SHA1 Message Date
Mauro Carvalho Chehab
0f16290e6f [media] DocBook: move FE_GET_PROPERTY to its own xml file
That helps the xref logic at the Makefile to point to the
right place. Also, it becomes more organized and easier to
maintain if each ioctl have its own xml file.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 09:28:57 -03:00
Mauro Carvalho Chehab
09c3b4a0af [media] DocBook: Rename ioctl xml files
for the xml files describing ioctls, use the same nomenclature
as on V4L2: the ioctl name, in lower case, using - instead of _.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 09:27:55 -03:00
Mauro Carvalho Chehab
55d4423a2d [media] DocBook: Fix false positive undefined ioctl references
The new code that detects undocumented ioctls hits some false
positives:

This one is not documented, nor it should, as this is
there just to reserve namespace:

	Warning: can't find reference for VIDIOC_RESERVED ioctl

But those are already documented together with other ioctls:

	Warning: can't find reference for VIDIOC_UNSUBSCRIBE_EVENT ioctl
	Warning: can't find reference for FE_GET_PROPERTY ioctl
	Warning: can't find reference for VIDIOC_SUBDEV_G_EDID ioctl
	Warning: can't find reference for VIDIOC_SUBDEV_S_EDID ioctl
	Warning: can't find reference for VIDIOC_SUBDEV_S_DV_TIMINGS ioctl
	Warning: can't find reference for VIDIOC_SUBDEV_G_DV_TIMINGS ioctl
	Warning: can't find reference for VIDIOC_SUBDEV_QUERY_DV_TIMINGS ioctl

So, we need to just be sure to point to the right documentation.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 09:25:20 -03:00
Mauro Carvalho Chehab
3246c385f3 [media] DocBook: remove duplicated ioctl from v4l2-subdev
Those ioctls are already parsed. No need to explicitly add
them.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:43:30 -03:00
Mauro Carvalho Chehab
87e4d63748 [media] DocBook: Improve xref check for undocumented ioctls
There are several badly documented undocumented ioctls.
Currently, it just generates an empty link. Instead of doing that,
only add references to the ones that exists, and add a warning
for all references that weren't found.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:42:59 -03:00
Mauro Carvalho Chehab
c569eb707a [media] DocBook: Add xref links for DTV propeties
Create xref links for all DTV properties and link the frontend.h
to each. Also use them at the DVB frontent API example.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:41:27 -03:00
Mauro Carvalho Chehab
e4aa18d33c [media] DocBook: Improve the description of the properties API
Make the text clearer about what the properties API does.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:40:09 -03:00
Mauro Carvalho Chehab
277dfcb4e0 [media] DocBook: Merge FE_SET_PROPERTY/FE_GET_PROPERTY ioctl description
Instead of having two refentries, merge them into just one,
like what's done with other similar ioctls at V4L2 side.

That makes the entry cleaner and will allow to add the associated
structures together with the refentry.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:37:26 -03:00
Mauro Carvalho Chehab
c130d88b01 [media] DocBook: fix xref to the FE open() function
Instead of going to the V4L2 open(), use the xref to the
proper place at the frontend ioctls that were already
reformatted.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:37:05 -03:00
Mauro Carvalho Chehab
ffec8bceac [media] DocBook: rewrite FE_GET_PROPERTY/FE_SET_PROPERTY to use the std way
Use the standard way of documenting ioctls for FE_GET_PROPERTY
and FE_SET_PROPERTY.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:36:03 -03:00
Mauro Carvalho Chehab
56599d4196 [media] DocBook: move DVB properties to happen earlier at the document
The DVBv5 API uses DVB properties as the main way to set the frontend
and collect statistics. Move the definition to happen earlier, in
order to reflect its importance.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:34:47 -03:00
Mauro Carvalho Chehab
5b233e1a91 [media] DocBook: improve documentation for FE_READ_STATUS
Move the ioctl and enum fe_status to a separate xml file and
put it into a better format.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:33:50 -03:00
Mauro Carvalho Chehab
002563e991 [media] DocBook: move FE_GET_INFO to a separate xml file
Keeping everything altogether makes harder to reorganize the
DocBook. So, move the FE_GET_INFO ioctl and the associated structures
into a separate file.

No functional changes.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:32:49 -03:00
Mauro Carvalho Chehab
bb38c5474e [media] DocBook: reformat FE_GET_INFO ioctl documentation
The DVB part of the docbook has a completely different format
than the V4L2 part, as it was written as a separate document.

As the V4L2 documentation is on better shape, and its format
allows adding more information, let's use it for FE_GET_INFO
and gradually update the non-legacy DVB ioctls using the new
format.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:30:53 -03:00
Mauro Carvalho Chehab
97f411d917 [media] dvb: split enum from typedefs at frontend.h
Using typedefs is already bad enough, but doing it together
with enum declaration is even worse.

Also, it breaks the scripts at DocBook that would be generating
reference pointers for the enums.

Well, we can't get rid of typedef right now, but let's at least
declare it on a separate line, and let the scripts to generate
the cross-reference, as this is needed for the next DocBook
patches.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:29:27 -03:00
Mauro Carvalho Chehab
a8d3e4b4d9 [media] DocBook: move DVBv3 frontend bits to a separate section
Although the recommended usage is the DVBv5 API calls, the
documentation doesn't make it clear about what's the recommended
calls and what's legacy.

So, move the legacy API bits to a separate xml, putting them into
a new section.

Please notice that more changes are needed, since some of the
bits there are cross-referenced elsewhere.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:28:28 -03:00
Mauro Carvalho Chehab
ee072ed7e3 [media] DocBook: Improve DVB frontend description
The DVB frontend API got bitrotten. Update it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:26:05 -03:00
Mauro Carvalho Chehab
0b0f1a0056 [media] DocBook: fix emphasis at the DVB documentation
Currently, it is using 'role="tt"', but this is not defined at
the DocBook 4.5 spec. The net result is that no emphasis happens.

So, replace them to bold emphasis.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:26:05 -03:00
Mauro Carvalho Chehab
a1ef3eeabe [media] DocBook: add drawing with a typical media device
An illustration of what's considered a typical media device
may help people to better understand the contents of the media
infrastructure API docbook. So, add it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:25:19 -03:00
Mauro Carvalho Chehab
9f67bc5203 [media] DocBook: add a note about the ALSA API
The Docbook mistakenly makes to believe that all needed APIs for
media devices are there. Add a note there pointing that some
sub-devices are actually be controlled via ALSA API.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:14:42 -03:00
Mauro Carvalho Chehab
39b9ce2c6c [media] DocBook: Update DVB supported standards at introduction
The list of standards at the media docbook is incomplete, and it
is mentioning that the DVB-S2 & friends is "currently being updated".
That's wrong, as such update occurred back in 2008.

So, provide a more complete list of supported standards and add
a reference to the actual list.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:13:20 -03:00
Jemma Denson
bf8de2d38a [media] cx24120: Assume ucb registers is a counter
The ucblocks register is probably a counter and not a rate; assume
it is so and change the calculations as required.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-30 08:12:39 -03:00
Antti Palosaari
2a80f29642 [media] dvb-core: fix 32-bit overflow during bandwidth calculation
Frontend bandwidth calculation overflows on very high DVB-S/S2
symbol rates. Use mult_frac() macro in order to keep calculation
correct.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 14:01:46 -03:00
Mauro Carvalho Chehab
13b019bbd1 [media] e4000: Fix rangehigh value
As reported by smatch:

drivers/media/tuners/e4000.c:287:32: warning: constant 2208000000 is so big it is long long
drivers/media/tuners/e4000.c:287:32: warning: decimal constant 2208000000 is between LONG_MAX and ULONG_MAX. For C99 that means long long, C90 compilers are very likely to produce unsigned long (and a warning) here
drivers/media/tuners/e4000.c:287:3: warning: this decimal constant is unsigned only in ISO C90
   .rangehigh  =  2208000000,
   ^

Cc: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:53:33 -03:00
Antti Palosaari
c7861bb048 [media] e4000: implement V4L2 subdevice tuner and core ops
Implement V4L2 subdevice tuner and core ops. After that this driver
is hybrid driver implementing both V4L2 and DVB ops.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:49:27 -03:00
Antti Palosaari
f8b9b871f8 [media] e4000: various small changes
* Rename device state from 's' to 'dev'.
* Move single include to driver private header.
* Change error handling type of each function to one I tend use
nowadays.
* Remove dummy register write from init. Even Windows driver does this
multiple times remove it as I have never seen any I2C errors.
* Define I2C client pointer for each function and use it.
* Do not clean tuner ops during driver remove - not needed.
* Disable sysfs device bind / unbind. We are not allowed manually
bind / unbind device from the driver currently.
* Rename some other variables.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:48:31 -03:00
Antti Palosaari
0e3a71c374 [media] e4000: revise synthesizer calculation
Update synthesizer calculation to model I prefer nowadays. It is
mostly just renaming some variables to ones I think are most standard.
Also add 'schematic' of synthesizer following my current understanding.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:46:13 -03:00
Dan Carpenter
e4d131d392 [media] rtl2832_sdr: cleanup some set_bit() calls
This code works fine but static checkers complain.  The test_bit()
function takes the bit number and not a mask.  Then the other issue is
that we were using USB_STATE_URB_BUF which is BIT(0) instead of URB_BUF.
Also we were open coding that instead of using the test/clear/set_bit()
functions.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:45:15 -03:00
Hans Verkuil
85756a069c [media] cobalt: add new driver
The cobalt device is a PCIe card with 4 HDMI inputs (adv7604) and a
connector that can be used to hook up an adv7511 transmitter or an
adv7842 receiver daughterboard.

This device is used within Cisco but is sadly not available outside
of Cisco. Nevertheless it is a very interesting driver that can serve
as an example of how to support HDMI hardware and how to use the popular
adv devices.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:44:01 -03:00
Hans Verkuil
48519838cc [media] adv7604/adv7842: replace FMT_CHANGED by V4L2_DEVICE_NOTIFY_EVENT
This makes it easier for the bridge driver to just passthrough such
events to the corresponding device node.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:41:30 -03:00
jean-michel.hautbois@vodalys.com
17e484686b [media] v4l2-subdev: allow subdev to send an event to the v4l2_device notify function
All drivers use custom notifications, in particular when source changes.
The bridge only has to map the subdev that sends it to whatever video node it is connected to.

Signed-off-by: Jean-Michel Hautbois <jean-michel.hautbois@vodalys.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:40:02 -03:00
Hans Verkuil
ce0eff016f [media] vb2: allow requeuing buffers while streaming
vb2_buffer_done() already allows STATE_QUEUED, but currently only when not
streaming. It is useful to allow it while streaming as well, as this makes
it possible for drivers to requeue buffers while waiting for a stable
video signal.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:38:32 -03:00
Hans Verkuil
f888ae7e6a [media] adv7842: Make output format configurable through pad format operations
Replace the dummy video format operations by pad format operations that
configure the output format.

Copied from the adv7604 driver.

Note: while arch/blackfin/mach-bf609/boards/ezkit.c uses adv7842_platform_data
this source has not been updated because it is broken since the very
beginning. It depends on a struct adv7842_output_format that does not
exist.

And besides that gcc has no support for bf609 so nobody can compile it
except by installing a toolchain from ADI.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Cc: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 13:37:36 -03:00
Patrick Boettcher
71df673132 [media] cx24120: fix minor checkpatch-error
Remove multiple blank likes.

Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 09:04:02 -03:00
Jemma Denson
c9adafa3b2 [media] cx24120: Update comment & fix typo
These state vars are used for more than just ber calculation, also
fix typo.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 09:03:41 -03:00
Jemma Denson
e3f2f63e8c [media] cx24120: Check for lock before updating BER & UCB
BER & UCB aren't available unless we're locked; don't update dvbv5
stats when not locked and mark these counters as unavailable.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 09:03:15 -03:00
Jemma Denson
80e9710b34 [media] cx24120: Convert ucblocks to dvbv5 stats
DVBv3 is a legacy API. Drivers should use DVBv5, in order to support
modern applications. So, implement UCB using dvbv5.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 09:02:46 -03:00
Jemma Denson
fc44328478 [media] cx24120: Convert read_ber to retrieve from cache
Instead of reading BER again for DVBv3 call, use the value from the cache.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 09:02:10 -03:00
Jemma Denson
ddcb252e41 [media] cx24120: Add in dvbv5 stats for bit error rate
DVBv3 is a legacy API. Drivers should use DVBv5, in order to support
modern applications. So, implement BER using dvbv5.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-20 09:00:51 -03:00
Mauro Carvalho Chehab
ec8fe6c925 [media] cx24120: constify static data
Use const on the static data, as gcc may optimize better the
code. Also, would prevent that some code would override the
data there.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
2015-05-20 08:54:41 -03:00
Mauro Carvalho Chehab
5b8bc802e7 [media] cx24120: declare cx24120_init() as static
drivers/media/dvb-frontends/cx24120.c:1182:5: warning: no previous prototype for 'cx24120_init' [-Wmissing-prototypes]
 int cx24120_init(struct dvb_frontend *fe)
     ^

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
2015-05-20 08:54:37 -03:00
Mauro Carvalho Chehab
65b01665a9 [media] cx24120: don't initialize a var that won't be used
As reported by smatch:
drivers/media/dvb-frontends/cx24120.c: In function 'cx24120_message_send':
drivers/media/dvb-frontends/cx24120.c:368:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
  int ret, ficus;
      ^

The values written by cx24120 are never checked. So, remove the
check here too. That's said, the best would be to do the reverse,
but globally: to properly handle the error codes.

Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
2015-05-20 08:54:29 -03:00
Jemma Denson
5c0a1c28c0 [media] cx24120: Complete modfec_table
Add in all the likely values for setting fec on tuning. Some values
yet to be tested but very likely to be correct.
In the very unlikely event that these are wrong tuning with
FEC_AUTO will still work.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-19 08:01:47 -03:00
Jemma Denson
cf4f811479 [media] b2c2: Reset no_base_addr on skystarS2 attach failure
If set, all the other drivers reset no_base_addr on failure to
attach - git commit for this being added to some of them seems to
be eccd15aad7

This driver has been floating around outside the mainline for so
long it hasn't had this fix, so add it in.

Whilst here tidy surrounding code to fix style issues.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-18 17:48:13 -03:00
Jemma Denson
4133601c31 [media] cx24120: More tidying in cx24120_init
Remove reg1 by refactoring for loops
Change ret into an int as it's only used for return values now,
and remove reset_result by using ret instead.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-18 17:47:49 -03:00
Jemma Denson
1668797d17 [media] cx24120: Tidy cx24120_init
Use reg instead of ret for all calls to readreg, remove ret_EA
as it doesn't need to be a separate var anymore.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-18 17:47:23 -03:00
Jemma Denson
92443cdb23 [media] cx24120: Remove unneccesary assignments in cx24120_init
Probably a remnant of this driver being reverse engineered,
cx24120_init assigned ret on each call to writereg - they're not
used for anything so remove them to clear up the codebase.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-18 17:45:58 -03:00
Jemma Denson
2f3f07fbe2 [media] cx24120: Tidy up calls to dev_dbg
Remove __func__ from calls to dev_dbg as dynamic debug can add in
the function name anyway.
Remove debug call in dvbv3 read_signal_strength as userspace has
this value anyway.
Reword some strings to make them simpler / more obvious.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-18 17:45:34 -03:00
Jemma Denson
3b5eb504fe [media] cx24120: Move CNR to DVBv5 stats
Better to report CNR via DVBv5 stats, as scale can be used.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-18 17:44:57 -03:00
Jemma Denson
7c95e25e38 [media] cx24120: Fix disecq_send_burst command
Previous version of this driver had a memset before every call
to cmd. This meant the default value of cmd.arg[1] was zero unless
burst is set. Make sure it remains zero.
Also fe_sec_mini_cmd_t is an enum, so test against it.

Signed-off-by: Jemma Denson <jdenson@gmail.com>
Signed-off-by: Patrick Boettcher <patrick.boettcher@posteo.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-05-18 17:44:13 -03:00