06 Dec, 2009
40 commits
-
Signed-off-by: Michael Krufky
Signed-off-by: Mauro Carvalho Chehab -
This changes adds IR Rx keypress input event handling to the CX23885 module.
This change specifically only adds input handling for IR devices implemented as
v4l2_subdevices, using only the pulse width mode (for now), and only with
RC-5 remotes. The V4L-DVB infrastructure is missing too much to support RC-6
mode 6A as used in many media center remotes. The grey Hauppauge RC-5 remote
and HVR-1850 IR receiver work now.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
Add integrated IR subdevice interrupt and notification handling. This is in
preparation of input keypress handling changes for the cx23885 module.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
This change completes the v4l2_subdev implementation for IR receive for the
IR controller built into the CX23888.This changes almost completes the IR transmit side also, but doesn't. Instead
notes in the comments describe what needs to be done for IR Tx to work in the
subdevice implementation.The current Tx behavior is skeletal and benign. If left alone, it does nothing.
It will only ever generate a Tx interrupt on Tx init by a caller or when the
tx_write() method is called. The ISR, when called, will then disable the Tx
FIFO service interrupt.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
Add v4l2_subdev_ir_ops and IR notify defines for v4l2_device. This change
is specifically needed at this time to support the integrated IR controller in
the CX2388[58] chips.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
The prior mechanism wasn't reliable with the cx23887. This new mechanism
tests correctly against cx23885, 7 and 8 based products.Signed-off-by: Steven Toth
Signed-off-by: Mauro Carvalho Chehab -
For the IR controller on the CX23888 to work for the HVR-1850 and in
general, the A/V core must be initialized to get the VID_CLK going.
The VID_CLK is the timing reference for the CX23888's integrated
IR controller.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
The SYS and AUX PLLs need to be initialized to different values based on
the chip: CX23885, CX23887, CX23888, as each uses a different crystal
frequency: 28.6363 MHz, 25.0 MHz, 50.0 MHz.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
Separate out the set_audclk_freq() function into separate functions for the
four families of cores. These cores all use slightly different sample clock
schemes and may be assuming slightly (+/- 3 Hz) different reference frequencies.
The code resuse was not worth the maintenance and testing headache of have all
chips use the same function peppered with conditional logic.Added comments on how PLL and SRC parameters values are computed. Fixed a few
bugs related to the shared code having a large number of conditional statements.
Noted inconsistencies with FIXME in the comments.This is done in preparation for getting the CX2388[578] PLL/clock setting logic
cleaned up for CX23888 analog video and IR (which need the VID PLL set right).Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
Change logic to check for various chip or core families to inline functions.
Checks for specific chips should be made against the state->id field now. This
is in preparation for chip/core specific code for setting up PLLs for the
CX2388[578] family of cores, that all run with different crystal frequencies.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
Add improved logic to detect the exact CX2388[578] A/V core that is being
probed. Also cleaned up detection and logging for CX2310[12], CX2583[67],
and CX2584[0123] cores and chips.Also added code to identify a CX2388[578] A/V decoder core that is not
responding properly. Typical symptoms include registers 0x00-0xff
responding properly but all other registers returning the same value
(0x13 and 0x5 have been observed). This state will cause proper detection of
'885 vs. '887 vs. '888 to fail and the chip won't respond to get configured
properly anyway. I have no method of reseting the core to a working state at
this time; but I didn't try too hard to work one out either. The problem
likely only occurs in development. I suspect configuring the SYS PLL VCO to
oscillate too slowly (286.3 MHz?) before post divide may be the root cause,
when encountered.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
This change adds a skeletal implementation of a v4l2_subdevice to provide
encapsulation and abstraction of the CX23888's integrated consumer infrared
controller. This change also instantiates the cx23888_ir subdev for the
HVR-1850 which has IR hardware physically wired up to a CX23888.The cx23888_ir subdev code is being written with long-term objectives to:
1. port it to the cx25840 module for the CX2584x, CX2583x, CX23885, & CX231xx
IR controllers
2. possibly port it to the cx18 module for the CX23418 IR controller
3. have the IR subdevice accessed abstractly in the cx23885 module, so the
driver can ignore the difference between the CX23885 and CX23888.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
This changes corrects the ioctl() operations for both the CX2388[578] analog
video and MPEG video device nodes to properly and consistently support
VIDIOC_G_CHIP_IDENT, VIDIOC_DBG_G_REGISTER and VIDIOC_DBG_S_REGISTER ioctl()s.This caused some ioctl() support routines to be broken out into a separate
source file.Now v4l2-dbg can be used to manipulate CX2388[578] and CX23417 registers
including the CX2388[57] functions handled by the cx25840 module.This was done in anticipation of developing a new v4l2_subdev for the
integrated IR controller of the CX23888.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
Add identifiers for CX2388[578] chips, CX2310[012] chips, integrated
A/V decoders cores, integrated IR controller core, and the CX23417
MPEG encoder. The cx23885 module and cx25840 module will use these
identifiers in upcoming changes.Signed-off-by: Andy Walls
Signed-off-by: Mauro Carvalho Chehab -
The board support has been validated by the user, so get rid of the warning
that shows up on board load.Signed-off-by: Devin Heitmueller
Signed-off-by: Mauro Carvalho Chehab -
Dmitri's patch for the Behold X7 didn't use the #define I had setup for
XC5000_RADIO_FM1, so cut over to using that instead of "1".Signed-off-by: Devin Heitmueller
Signed-off-by: Mauro Carvalho Chehab -
Add support for the digital side of the Behold X7
Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov
Signed-off-by: Devin Heitmueller
Signed-off-by: Mauro Carvalho Chehab -
Make analog audio, dvb and the remote work on a Terratec Cinergy Hybrid
XS (em2882).Note by djh: Thanks go out fo Andrej Suligoi for his contribution in providing
and testing pretty much the exact same patch as provided by Uros. Between
the two of them, they got all the core functionality working for the device.Cc: Andrej Suligoi
Signed-off-by: Uroš Vampl
Signed-off-by: Devin Heitmueller
Signed-off-by: Mauro Carvalho Chehab -
Seems that the reference design used for the KWorld 2800d switched from the
em2860 to em2862, so we need to add the new USB id (and the i2c hash remains
so all we need is the default em2862 id.Thanks to Ian Young for reporting the issue and testing the fix.
Cc: Ian Young
Signed-off-by: Devin Heitmueller
Signed-off-by: Mauro Carvalho Chehab -
Remove hard-coded definition of the xc5000 FM radio input, making it a
parameter passed in when doing the attach call.Signed-off-by: Devin Heitmueller
Signed-off-by: Mauro Carvalho Chehab -
Add FM radio for the xc5000 silicon tuner chip.
Signed-off-by: Beholder Intl. Ltd. Dmitry Belimov
Signed-off-by: Devin Heitmueller
Signed-off-by: Mauro Carvalho Chehab -
Set radio frequency only upon success.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Simplify device warnings.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Preserve radio state during suspend/resume.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Fix behavior of set_stereo function.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Ensure the radio is initialized to a consistent state.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Remove device initialization from open/close.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Fix portential use after free.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Remove device removed indicator
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Simplify locking in ioctl callbacks.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Simplify access to amradio_device.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Remove unnecessary local variable.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Simplify error paths in usb probe callback.
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
simplify video_device allocation
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Implement proper locking
Signed-off-by: David Ellingsworth
Acked-by: Alexey Klimov
Signed-off-by: Douglas Schilling Landgraf
Signed-off-by: Mauro Carvalho Chehab -
Looks like eeprom IR mode byte value 0x04 means there is remote
which should be polled. Patch enables polling also in case of 0x04.Signed-off-by: Antti Palosaari
Signed-off-by: Mauro Carvalho Chehab -
Support for MSI DIGIVOX mini III remote.
Thanks to Aleksandr V. Piskunov
Thanks to RomanCc: Aleksandr V. Piskunov
Cc: Roman
Signed-off-by: Antti Palosaari
Signed-off-by: Mauro Carvalho Chehab -
Add missing LeadTek Y04G0051 remote buttons.
Thanks to Matthew SkinnerCc: Matthew Skinner
Signed-off-by: Antti Palosaari
Signed-off-by: Mauro Carvalho Chehab -
Signed-off-by: Antti Palosaari
Signed-off-by: Mauro Carvalho Chehab