[pvrusb2] New driver snapshot: pvrusb2-mci-20080831

Mike Isely isely at isely.net
Sun Aug 31 20:15:02 CDT 2008


A new pvrusb2 driver snapshot is available.  Changes include:

  (+) 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.

  (+) Plumbing added to support cropping.  Note that this will only
      work if corresponding support exists and works in cx25840.ko or
      saa7115.ko (depending on the device you have).  Credit to
      Servaas Vandenberghe for laying the groundwork for this.  Access
      is implemented for both the normal V4L ioctl interface published
      by the driver and sysfs.

  (+) Implement "def_val" in sysfs interface.  Controls already
      support default values, this makes those values visible in
      sysfs.

  (+) Detect and trap attempts to use an "alien" USB ID.  The driver
      expects a descriptor associated with the USB ID; if that
      descriptor is missing, print a message and fail.  This can
      happen if the user tries to insert a new USB ID via sysfs -
      without this change the driver can otherwise cause an oops.

  (+) Various minor tweaks to keep up with the surrounding kernel and
      v4l-dvb environment.

  (+) Add USB ID 2040:2950 - this is a really old 29xxx device.  It
      lacks and IR receiver but is otherwise functionally identical to
      the 2040:2900 device.  Since the IR detection for this device is
      a separate action anyway, we can safely alias the 2950 id to
      2900.

The first item will affect anyone using a 24xxx device which happens
to have an internal IR blaster.  Previously those users would "see"
two IR receiver devices.  One was real, the other was fake.  This
situation was the result of history; earlier 24xxx devices had an IR
receiver that was inaccessible from the internal I2C device, so the
pvrusb2 driver generated a 29xxx-looking "virtual" device on the bus
for the benefit of LIRC (or any other IR driver that could handle the
29xxx device).  However with the later 24xxx model, a newer,
different, real IR receiver was added to the I2C bus and this fake
device just became a useless distraction.  This change suppresses the
fake instance if the other receiver exists.

The "def_val" change is a new field in all the sysfs controls.  The
pvrusb2 controls have had the concept of a default value for a while
(accessed via the V4L interface).  This change makes those values
available via sysfs.

The biggest change here is the cropping support.  This comes from the
patch that Servaas Vandenberghe posted way back in May.  I've further
cleaned it up and also added a V4L interface for it.  I've also made
the underlying cropping capabilities visible to the outside as well.
ALSO, Servaas' implementation had modified the cropping top & left
parameters to be relative to the "default" rectangle.  I've removed
that, so as to be more faithful to the meanings of the values in the
underlying V4L API.  If you don't know what I'm talking about, don't
worry about it.  For others, I recommend reading the V4L API
documentation sections about cropping.  Note that what is in the
pvrusb2 driver amounts to just a pass-through.  This feature won't
actually work unless the underlying digitizer driver (cx25840 or
saa7115) supports it.  Servaas had also posted a patch for cx25840 for
this, but I haven't done anything with that part.  More effort is
needed there to get that patch into v4l-dvb.  Until that happens I
can't really test the pvrusb2 changes, beyond verifying that it seems
to be correctly passing the values through.

The last change is an interesting one.  One would think that in 3+
years of supporting this driver that I would have heard about every
PVR USB2 hardware variant that is out there.  Not true.  There's a
very old version of the device - predating even the old 29xxx series
that is so well known.  Apparently this might have been an OEM device
sold to some system vendors.  This really old device has a different
USB ID.  It also has some minor hardware differences (e.g. no IR
receiver) however the pvrusb2 driver can deal with those differences
without any extra help.  So this last change enables recognition of
the old device variant and causes the driver to treat it like a normal
29xxx device.

As usual, the pvrusb2 web site can be found at:

  http://www.isely.net/pvrusb2/pvrusb2.html

  -Mike

-- 

Mike Isely
isely @ pobox (dot) com
PGP: 03 54 43 4D 75 E5 CC 92 71 16 01 E2 B5 F5 C1 E8


More information about the pvrusb2 mailing list