V4L/DVB (9016): HVR3000/4000 Hauppauge related IR cleanups
From the author:
This patch-set fixes remote control issues I have experienced
with hauppauge drivers in Linux since the PVR-350 and now
with both a NOVA-S+ and HVR-4000. It has also been confirmed
to work with an HVR-1300 user who had exactly the same issue.
Hauppage remote controls use RC5. RC5 has a bit-field which
represents the target device. The hauppauge windows drivers
have a registry key which can enable filtering, but the linux
drivers will accept any target device in this bit field for
internal processing.
This causes problems with setups such as mythtv where remote
control key presses destined for the TV (target = 0) are
interpreted by the kernel and subsequenctly LIRC then mythtv.
Of the remote controls I have to hand (wintv black, pvr/hvr
silver) the hauppauge remotes send one of two device targets
ids, these are interpreted by the patch which then filters
out any non hauppauge addresses.
From the author:
Here is a simple patch detailing some reverse engineered
register detail lost in my latest merge. The comments
in the code refer to this register but it is never
defined. This corrects this.
V4L/DVB (9014): History update: MPEG initialization in cx24116.
Adjust MPEG initialization in cx24116 in order to accomodate different
MPEG CLK position and polarity in different cards. For example, HVR4000
uses 0x02 value, but DvbWorld & TeVii USB cards uses 0x01. Without it MPEG
stream was broken on that cards for symbol rates > 30000 kSyms/s.
Signed-off-by: Igor M. Liplianin <liplianin@me.by> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Remove the debugging sysctls.
Rolloff was broken, not it works as expected and has been tested in kaffeine.
Power related changes for the isl6421 are not implemented on the HVR4000/4000LITE.
V4L/DVB (9011): S2API: A number of cleanusp from the last 24 months.
I was given these changes by Darron Broad and Igor Liplianin and represent a series
of patches they've been making to the cx24116 driver over the last two years.
Changes for handling symbolrates >30Ksps
Tone handling changes.
Diseqc support.
Sleep support, shutting down the clocks correctly.
Cleanup on ROLL_OFF and PILOT support.
*** ST - We need to cleanup the sysclt control, this is abnormal
in a demod driver. We should work towards understanding the missing
API's and ensure we have them in S2API. ***
Steven Toth [Fri, 12 Sep 2008 04:37:37 +0000 (01:37 -0300)]
V4L/DVB (9004): S2API: Implement GET/SET handing to the demods
The frontends will be notified (if they chose) of all _get and _set commands
so they can help determine result or action. Results are now returned
to userspace correctly.
Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Steven Toth [Fri, 12 Sep 2008 02:52:32 +0000 (23:52 -0300)]
V4L/DVB (8999): S2API: Reduce demod driver complexity by using a cache sync
For demod drivers, we want a single tuning function (set_frontend) to have
access to the properly constructed dvb_frontend_parameters structure, or
the cache values - regardless of whether the legacy or new API is being used.
This cuts down on redundant code in the demod drivers and ensures the
tuning parameters are consistent regardless of the API entry type.
Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
After discussion the following changes were made:
1. Removed the typedefs in frontend.h, use structures.
2. In the frontend.h, remove the 16 command limit on the API and
switch to a flexible variable length API. For practical reasons
a #define limits this to 64, this should be discussed.
3. Changed dvb-core ioctl handing to deal with variable sequences
of commands.
tune-v0.0.3.c is required to use this API, it contains the interface changes.
Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Steven Toth [Fri, 5 Sep 2008 00:19:43 +0000 (21:19 -0300)]
V4L/DVB (8988): S2API: Allow the properties to call legacy ioctls
SET_TONE and SET_VOLTAGE were not previously implemented. Two options
existed. Either cut/paste from the previous ioctl handler into the
process_properties function, which is code duplication. Or, split
the current ioctl handler into it's two major pieces.
Piece 1, responsible for input validation and semaphore acquiring
Piece 2 the processing of the previous ioctls
and finally, a new third pieces where the array of properties
is processed, and can freely call the legacy ioctl handler without
having to re-acquire the fepriv->sem semaphore. This is a clean approach
and ensures the existing legacy ioctls are processed as they were previously
(but with an extra function call) and allows the new API to share code
without duplication.
Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Steven Toth [Thu, 4 Sep 2008 04:12:25 +0000 (01:12 -0300)]
V4L/DVB (8985): S2API: Added dvb frontend changes to support a newer tuning API
This is an experimental patch to add a new tuning mechanism for
dvb frontends. Rather than passing fixed structures across the
user/kernel boundary, which need to be revised for each new modulation
type (or feature the kernel developers want to add), this implements
a simpler message based approach, allowing fe commands to be broken
down into a series of small fixed size transactions, presented
in an array.
The goal is to avoid changing the user/kernel ABI in the future, by
simply creating new frontend commands (and sequencies of commands) that
help us add support for brand new demodulator, delivery system or
statistics related commmands.
known issues:
checkpatch voilations
feedback from various developers yet to be implemented, relating
to namespace conventions, variable length array passing conventions,
and generally some optimization.
This patch should support all existing tuning mechanisms through the
new API, as well as adding 8PSK, DVB-S2 NBC-QPSK and ISDB-T API support.
For testing and exercise purposes, see the latest tune.c tool
available from http://www.steventoth.net/linux/s2
Signed-off-by: Steven Toth <stoth@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Antti Palosaari [Mon, 15 Sep 2008 20:18:09 +0000 (17:18 -0300)]
V4L/DVB (8972): initial driver for af9015 chipset
- initial driver for the Afatech AF9015 chipset
Thanks-to: Mark Spieth <mark@digivation.com.au> Thanks-to: Lee Essen <lee.essen@nowonline.co.uk> Thanks-to: Luca Olivetti <luca@ventoso.org> Thanks-to: Andrew Leech <andrew@floppyspongeonline.com> Thanks-to: Nick Andrew <nick-linuxtv@nick-andrew.net> Thanks-to: Rafael Antoniello <rafael.antoniello@gmail.com> Thanks-to: Jarryd Beck <jarro.2783@gmail.com> Thanks-to: Jose Alberto Reguero <jareguero@telefonica.net> Thanks-to: Benjamin Larsson <banan@ludd.ltu.se> Thanks-to: Wolfgang Breyha <wbreyha@gmx.net> Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Antti Palosaari [Mon, 15 Sep 2008 18:01:52 +0000 (15:01 -0300)]
V4L/DVB (8971): initial driver for af9013 demodulator
- initial driver for the Afatech AF9013 demodulator
Signed-off-by: Antti Palosaari <crope@iki.fi>
[mchehab.redhat.com: having a global var called 'debug' is not a good idea. rename it to af9013_debug] Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Jean Delvare [Sun, 7 Sep 2008 15:49:59 +0000 (12:49 -0300)]
V4L/DVB (8956): bttv: Turn video_nr, vbi_nr and radio_nr into arrays
With video_nr, vbi_nr and radio_nr being simple integers, it is not
possible to use these parameters on a system with multiple bttv
adapters (which happens to be my case.) video_register_device() will
always fail on the second and later adapters. Turn these parameters
into arrays, as many other V4L drivers are already doing, so that they
can be used on such systems.
Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Michael Krufky [Sat, 6 Sep 2008 17:56:58 +0000 (14:56 -0300)]
V4L/DVB (8951): xc5000: dont pass devptr in xc5000_attach()
Dont pass devptr in xc5000_attach, dont store it in xc5000_priv.
This pointer is passed into the tuner_callback function, which always
expects a pointer to fe->dvb->priv or i2c_adapter->algo_data.
This prevents future possible bugs in new drivers, such as using a "devptr"
other that the standard fe->dvb->priv in a DVB driver.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Michael Krufky [Sat, 6 Sep 2008 16:54:45 +0000 (13:54 -0300)]
V4L/DVB (8950): xc5000: prevent an OOPS if analog driver is unloaded while digital is in use
Prevent an OOPS if xc5000_attach was called by tuner.ko before being called by
the DVB adapter driver. The OOPS occurs when a digital tune request is made
after tuner.ko is unloaded.
When tuner.ko is unloaded, it takes the xc5000_config structure with it.
Rather than storing a pointer to the xc5000_config structure, just store the
if_khz and tuner_callback inside the xc5000_priv internal state structure.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Sun, 7 Sep 2008 11:38:50 +0000 (08:38 -0300)]
V4L/DVB (8946): dib7000m: fix powerpc build error
The dib7000m_i2c_enumeration() function is not used by any public drivers,
however some prototype board use it. So '#if 0' for now, but don't remove it.
Thanks to Patrick Boettcher for clarifying this.
Cc: Patrick Boettcher <patrick.boettcher@desy.de> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Sat, 6 Sep 2008 18:26:44 +0000 (15:26 -0300)]
V4L/DVB (8940): saa7115: fix saa7111(a) support
The saa7111 support in saa7115.c was missing some features and did not
properly take some of the differences into account. With this patch
saa7115 can be used in the mxb driver instead of saa7111.c.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Sat, 6 Sep 2008 12:56:17 +0000 (09:56 -0300)]
V4L/DVB (8921): ivtv: fix incorrect capability and assorted sliced vbi and video out fmt fixes
- V4L2_CAP_VBI_OUTPUT is not supported by ivtv, remove it.
- ivtv_try_fmt_vid_out also needed to constrain the width/height of MPEG decoder
window sizes.
- allow empty sliced services.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Sat, 6 Sep 2008 09:34:44 +0000 (06:34 -0300)]
V4L/DVB (8917): saa7134-empress: fix changing the capture standard for non-tuner inputs
When changing the standard the saa6752hs was not updated unless the input
was the TV tuner. The saa6752hs should be updated regardless of the input.
In addition the S_STD and G_STD ioctls for the mpeg video device didn't do
anything. This is now fixed: they behave just like S_STD and G_STD on the
video0 device.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andy Walls [Thu, 4 Sep 2008 16:16:40 +0000 (13:16 -0300)]
V4L/DVB (8915): cx18: Increment u8 pointers not void pointers.
cx18: Increment u8 pointers not void pointers. Incrementing void pointers
is dubious and the real intent in cx18_memcpy_fromio() and cx18_memset_io() is
to increment by bytes, so use u8 pointers instead.
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andy Walls [Mon, 1 Sep 2008 03:40:41 +0000 (00:40 -0300)]
V4L/DVB (8914): cx18: Throttle mmio to/from the CX23418 so boards work in older systems
cx18: Throttle mmio to/from the CX23418 so boards work in older systems. The
CX23418 couldn't reliably handle mmio at the rate at which the cx18 driver was
attempting to access the chip. The PCI bridge arrangements and settings on
modern motherboards still allowed the CX23418 to work OK, but it didn't work
well on many older motherboards: mysterious I2C errors, firmware loading errors,
etc. This patch adds a throttle to *all* mmio access to the CX23418. It
defaults to a delay of 31 ns, but is adjustable by the mmio_ndelay module parm.
My HVR-1600 and Raptor PAL/SECAM card now function for analog capture on a
motherboard with an Intel 82810E Northbridge and 82801AA Southbridge.
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Andy Walls [Sat, 30 Aug 2008 19:03:44 +0000 (16:03 -0300)]
V4L/DVB (8913): cx18: Create cx18_ specific wrappers for all pci mmio accessesors.
cx18: Create cx18_ specific wrappers for all pci mmio accessesors. This is a
first step in instrumenting all CX23418 PCI bus IO, to debug problems with
accessing the CX23418's PCI memory mapped IO.
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
cx18: Correct CX23418 PCI configuration settings. The CX23418 doesn't have
I/O space registers, so there was no need to try and turn them on (the card
ignores the attempt to set the bit anyway). Also removed incorrect config
space register setting that was errantly borrowed from ivtv.
Signed-off-by: Andy Walls <awalls@radix.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Mike Isely [Mon, 1 Sep 2008 00:06:11 +0000 (21:06 -0300)]
V4L/DVB (8901): pvrusb2: Disable virtual IR device when not needed.
Disable "virtual" IR receiver on for 24xxx devices that have an
internal IR blaster. In that case there's another another IR
receiver present and to leave the virtual receiver available
just causes confusion. This means that 24xxx users will no
longer see a phantom IR chip.
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Mike Isely [Mon, 1 Sep 2008 00:02:20 +0000 (21:02 -0300)]
V4L/DVB (8900): pvrusb2: Implement cropping pass through
This builds upon the previous pvrusb2 change to more formally
implement full cropping support. This enables access from the
driver's V4L interface, and enables access to full capabilities from
sysfs as well. Note that this is only effective when in analog mode.
It also will only work when the underlying digitizer's driver (saa7115
or cx25840 depending on the hardware) also implements the appropriate
functions.
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Mike Isely [Sun, 31 Aug 2008 23:55:03 +0000 (20:55 -0300)]
V4L/DVB (8898): pvrusb2: Be able to programmatically retrieve a control's default value
The pvrusb2 control mechanism up until now has used a constant int to
hold a control's default value. This change makes it possible to
retrieve the control's default through some other means, e.g. as a
result of a query from lower level software.
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Mike Isely [Sat, 30 Aug 2008 21:11:40 +0000 (18:11 -0300)]
V4L/DVB (8895): pvrusb2: Fail gracefully if an alien USB ID is used
The driver includes an internal table specifying additional
information on a per device-type basis. This works great until
somebody tries to run-time associate another USB ID with the driver.
This change should hopefully allow the driver to fail gracefully under
such a circumstance.
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Mike Isely [Sat, 30 Aug 2008 18:11:16 +0000 (15:11 -0300)]
V4L/DVB (8894): pvrusb2: Remove BKL
The earlier change from Hans Verkuil that pushed the BKL from
video_open() down into the drivers should be unneeded for the pvrusb2
driver. This driver's implementation for open already protects its
internal structures through other means, thus the BKL is not required.
This change reverses Hans' previous change, for the pvrusb2 driver.
It probably would have been a good idea for Hans to previously have
asked for my ack before committing his change.
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Oliver Endriss [Wed, 3 Sep 2008 22:15:27 +0000 (19:15 -0300)]
V4L/DVB (8889): dvb-ttpci: Support full-ts hardware modification
Add support for the 'full-ts' hardware modification.
On full-featured cards the data throughput is limited by the hardware
design. The full-ts mod removes this bottleneck, i.e. the card is able
to deliver the complete transport stream of a transponder.
For details see http://www.escape-edv.de/endriss/dvb-full-ts-mod
Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
When the input is set to tuner and no antenna is connected, the BT848
can flood VPRES interrupts. So we don't want to enable this type of
interrupts when the input it set to tuner.
As we don't do anything when receiving such an interrupt anyway, the
easiest fix is to simply not unmask this specific interrupt.
Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Hans Verkuil [Fri, 29 Aug 2008 20:31:35 +0000 (17:31 -0300)]
V4L/DVB (8852): v4l2: use register_chrdev_region instead of register_chrdev
Replace the old register_chrdev with the more flexible register_chrdev_region.
Ensure that the release() is called when the very last chardev usage was
released, and not when the sysfs devices were removed. This should simplify
hotpluggable drivers considerably.
Tested-by: Mike Isely <isely@isely.net> Tested-by: Laurent Pinchart <laurent.pinchart@skynet.be> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Acked-by: David Ellingsworth <david@identd.dyndns.org> Reviewed-by: Hans de Goede <j.w.r.degoede@hhs.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>