summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/cx18
AgeCommit message (Collapse)Author
2008-11-12merge: http://linuxtv.org/hg/~awalls/cx18-bugfixMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-11-09cx18: Fix unitialized variable problem upon APU firmware file read failureAndy Walls
From: Andy Walls <awalls@radix.net> If APU firmware file read failed, the jump vector to the APU was undefined and the APU would be started executing garbage. Fix uninitialized variable to be an infinite loop for the APU, but also bail out before even starting the APU. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-09cx18: Prevent CX23418 from clearing it's outgoing ack interrupts to driverAndy Walls
From: Andy Walls <awalls@radix.net> When the CX23418 CPU unit sent out an ack interrupt to the linux driver, it also received that interrupt and cleared the flag before the linux driver could see what the interrupt was for. This fix prevents the CPU from receiving an IRQ for it's own outgoing ack's to the linux driver. This fix is critical now that the linux driver doesn't poll but relies on these ack interrupts. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-08cx18: Minor fixes to APU firmware load processAndy Walls
From: Andy Walls <awalls@radix.net> Use the APU fw start address from rom file instead of a hardcoded entry vector. Fixed cx18_setup_page() calls to use the correct APU image load addresses. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-08cx18: Further changes to improve mailbox protocol integrity & performnceAndy Walls
From: Andy Walls <awalls@radix.net> All waits for cx18 mailbox API commands are now uninterruptable. Added code to collect mailbox ack statistics. Tweaked timeouts based on collected stats and video vertical frame and field rates. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-07cx18: Improve handling of outgoing mailboxes detected to be busyAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Improve handling of outgoing mailboxes detected to be busy. When encountering a busy mailbox, sleep instead of polling, and wait for interrupt or timeout. If the mailbox is still busy, force it free. When sending commands, make sure we never create a situation where we mark the mailbox busy upon sending, and ensure we always have a method to cleanly recover from a busy mailbox. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-05cx18: Roll driver version number due to significant changesAndy Walls
From: Andy Walls <awalls@radix.net> Driver interrupt and mailbox handling has change significantly. Time for a roll to v1.0.2. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-05cx18: Add outgoing mailbox mutexes and check for ack via waitq vs pollAndy Walls
From: Andy Walls <awalls@radix.net> Add mutexes to ensure exclusive access for outgoing driver to CX23418 mailboxes. Also wait on a waitq for mailbox acknowledgement from the CX23418 instead of polling. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-05cx18: Use default kernel work queue; fix streaming flag for work handlerAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Use default kernel work queue; fix streaming flag for work handler. Eliminate cx18 specific work queue and use the kernel default work queue. Fixed the F_STREAMING_FLAG for the TS stream so cx18_dvb_work_handler() can know when it is not safe to send MDLs to the firmware. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-04cx18: Move DVB buffer transfer handling from irq handler to work_queueAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Move DVB buffer transfer handling from irq handler to work_queue thread. In order to properly lock the epu2cpu mailbox for driver to CX23418 commands, the DVB/TS buffer handling needs to be moved from the IRQ handler and IRQ context to a work queue. This work_queue implmentation is strikingly similar to the ivtv implementation - for better or worse. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-04cx18: Use correct Mailbox IRQ Ack values and misc IRQ handling cleanupAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Use correct Mailbox IRQ Ack values and misc IRQ handling cleanup. The SCB field definitions for Ack IRQ's for mailboxes were inconsistent with the bitmasks being loaded into those SCB fields and the SW2 Ack IRQ handling logic. Renamed fields in SCB to make things consistent and did misc IRQ handling cleanups: removing legacy ivtv dma_reg_lock, HPU IRQ flags, etc. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-02cx18: Fix PLL freq computation for debug displayAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Fix PLL freq computation for debug display. The code to compute the PLL freq from register values was storing an intermediate 56 bit result in a 32 bit type, causing a nonsense value to be displayed. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-02cx18: Reduce number of mmio read retriesAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Reduce number of mmio read retries to improve performance. Experiments have shown 2 things: read retries never improve the result of a suspect mmio read from the CX23418 (the result stays all 0xff's), and that most of the suspected read failures are actually proper reads of values that should be all 0xff's. This change reduces the number of read retries and keeps the count separate from write retries. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-02cx18: Fix write retries for registers that always change - part 3.Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Fix write retries for registers that always change - part 3. Fix the io for the rest of the registers that will often not read back the value just written. Modified register readback checks to make sure the intended effect was achieved without constantly rewriting the registers. The one outstanding register remaining is 0xc72014 CX18_AUDIO_ENABLE, whose behavior on writes I have yet to determine. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-11-01cx18: Mark CX18_CPU_DE_RELEASE_MDL as a slow API callAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Mark CX18_CPU_DE_RELEASE_MDL as a slow API call. Give the encoder time to complete the MDL release before destroying the encoder internal task. This avoids an encoder lockup on the next digital capture and error messages about buffers being returned for an inactive encoder task handle. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-31cx18: Fix write retries for registers that always change - part 2.Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Fix write retries for registers that always change - part 2. Some registers, especially interrupt related ones, will never read back the value just written. Modified interrupt register readback checks to make sure the intended effect was achieved. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-25cx18: Disable write retries for registers that always change - part 1.Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Disable write retries for registers that always change - part 1. Interrupt related registers will likely not read back the value we just wrote. Disable retries for these registers for now to avoid accidently discarding interrupts. More intelligent read back verification criteria are needed for these and other registers (e.g. GPIO line registers), which will be addressed in subsequent changes. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-25cx18: Remove redundant block scope variable in cx18_probe() for sparseAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Remove redundant block scope variable in cx18_probe() to eliminate sparse build warning. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-18backport commit 1a651a00e20fd4997f0b91258f6f95b7d96edcd9Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Author: Harvey Harrison <harvey.harrison@gmail.com> byteorder: remove direct includes of linux/byteorder/swab[b].h A consolidated implementation will provide this generically through asm/byteorder, remove direct includes to avoid breakage when the changeover to the new implementation occurs. kernel-sync: Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-10-18cx18: Don't mask many real init error codes by mapping them to ENOMEMAndy Walls
From: Andy Walls <awalls@radix.net> Changes to let error return codes bubble up to the user visible error message on card initialization. A number of them were being remapped to ENOMEM when no memory or array resource shortage existed. That hampered diagnosis of user trouble reports. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-18cx18: Add __iomem address space qualifier to cx18_log_*_retries() argumentAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Add __iomem address space qualifier to cx18_log_*_retries() addr argument to clean up sparse build warnings. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-18cx18: Fix memory leak on card initialization failureAndy Walls
From: Andy Walls <awalls@radix.net> On error exit, the cx18_probe() function did not use the proper entry in cx18_cards[] with kfree() when card init failed; leaking memory. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-09-08cx18/ivtv: add 'PCI:' prefix to bus_info.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Suggested by Martin Dauskardt. This is conform what the other drivers do. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-10-11merge: http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-devMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-10-04cx18: Fix warning message for DMA done notification for inactive stream.Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Fix warning message for DMA done notification for inactive stream. The warning message would always gripe that the radio stream was to blame, which was misleading and wrong (/dev/radioN nodes never transfer data). Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-04cx18: Add entries for the Leadtek PVR2100 and Toshiba Qosmio DVB-T/AnalogAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Add entries for the Leadtek PVR2100 and Toshiba Qosmio DVB-T/Analog capture cards. Both cards are hybrids cards, but no digital capture functionality has been added yet. These entries are a first guess at the card entries to get analog working, given the information available. Terry Wu <terrywu at leadtek.com.tw> provided a pointer to information for the PVR2100. Martin Juhl <mj at casalogic.dk>, an owner of the Toshiba DVB-T/Analog tuner card, provided the DDR timing information from his Windows inf file. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-10-04v4l: disconnect kernel number from minorHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The v4l core creates four different video devices (video, vbi, radio, vtx) and each has its own range of minor numbers. However, modern devices keep increasing the number of devices that they need so a maximum of 64 video devices will not be enough in the future. In addition this scheme makes it very hard to add new device types. This patch disconnects the kernel number allocation (e.g. video0, video1, etc.) from the actual minor number (just pick the first free minor). This allows for much more flexibility in the future. However, it does require the use of udev. For those who cannot use udev a new CONFIG option was created that changes the allocation scheme back to the old behavior. Thanks to Greg KH for suggesting this approach during the 2008 LPC. In addition, several bugs were fixed in the ivtv and cx18 drivers: these drivers try to allocate specific kernel numbers but that scheme contained a bug which caused what should have been e.g. video17 to appear as e.g. video2. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-10-03cx18: Up the version to 1.0.1Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Up the version to 1.0.1. This will make it easy to tell if retries of MMIO access are implemented or not in trouble reports. First course of action for I2C and other initialization problem reports will be to have user upgrade to v1.0.1 of driver. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-09-28cx18: Add default behavior of checking and retrying PCI MMIO accessesAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Add default behavior of checking and retrying PCI MMIO accesses. The concept of checking and retrying PCI MMIO accesses for better reliability in older motherboards was suggested by Steve Toth <stoth@linuxtv.org>. This change implements MMIO retries and the retry_mmio module parameter that is enabled by default. Limited experiments have shown this is more reliable than the mmio_ndelay parameter. mmio_ndelay has insignificant effect with retries enabled. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-09-12convert tuner drivers to use dvb_frontend->callbackMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Priority: normal Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2008-09-10merge: http://www.linuxtv.org/hg/~hverkuil/v4l-dvb-cleanupsMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-09-08merge: http://linuxtv.org/hg/~awalls/v4l-dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-09-06cx18: Set mmio throttling delay default to 0 nsec.Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Set mmio throttling delay default to 0 nsec. Not doing so makes analog tuner audio not work on some mahcines. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-09-06cx18: fix sparse warningsHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-09-06cx18/ivtv: fix check of window boundaries for VIDIOC_S_FMTHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> It was possible to set out-of-bounds windows sizes, this is now fixed. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-09-06cx18: Fix tuner audio input for Compro H900 cardsHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Earlier fixes to get the tuner audio working correctly broke the audio on the Compro VideoMate H900 cards. This is now fixed. Priority: high Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-09-05merge: http://linuxtv.org/hg/~awalls/v4l-dvbMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@redhat.com> Fixed a trivial conflict between a janitor's patch from Hans Verkuil and Andy patch series. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-09-04cx18: Increment u8 pointers not void pointers.Andy Walls
From: Andy Walls <awalls@radix.net> 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. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-31cx18: Throttle mmio to/from the CX23418 so boards work in older systemsAndy Walls
From: Andy Walls <awalls@radix.net> 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. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-30cx18: Create cx18_ specific wrappers for all pci mmio accessesors.Andy Walls
From: Andy Walls <awalls@radix.net> 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. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-29cx18: Correct CX23418 PCI configuration settings.Andy Walls
From: Andy Walls <awalls@radix.net> 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. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-23cx18: Have CX23418 release buffers at end of capture.Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Have CX23418 release buffers at end of capture. The CX23418 reuses task handles so we need to have it release the buffers associated with a task handle at the end of a capture. If we don't, buffer ids used for one type of stream in the driver (MPEG, TS, PCM), could be used for another type of stream by the CX23418, if a previously used handle is assigned to a different type of stream. The driver would drop valid buffers when this happened. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-23cx18: Fix cx18_find_handle() and add error checkingAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Fix cx18_find_handle() and add error checking. cx18_find_handle() did not find a good task handle and would use the invalid task handle under common conditions. Added a define for the invalid task handle and added error checking as well. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-22cx18: Convert cx18_queue buffers member to atomic_tAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Convert cx18_queue buffers member to atomic_t. This allows safe concurrent access to check if a queue has data without having to acquire the queue spinlock. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-22cx18: Remove redundant struct cx18_queue length member.Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Remove redundant struct cx18_queue length member. It can be trivially computed from queue->buffers * stream->buf_size, if ever really needed. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-22cx18: get rid of ununsed buffers stolen fieldAndy Walls
From: Andy Walls <awalls@radix.net> cx18: get rid of ununsed buffers stolen field. It's an unused holdover from ivtv. Priority: normal Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-22cx18: Simplify queue flush logic to prevent oops in cx18_flush_queues()Andy Walls
From: Andy Walls <awalls@radix.net> cx18: Simplify queue flush logic to prevent oops in cx18_flush_queues(). If accounting of a queue is in error, logic borrowed from ivtv will cause an oops when flushing the queues for a stream. This change greatly simplifies the queue flush logic, and sets the queue back to sane defaults on a flush. Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-08-17cx18: Add missing lock for when the irq handler manipulates the queuesAndy Walls
From: Andy Walls <awalls@radix.net> cx18: Add missing lock for when the irq handler manipulates the queues. This was a potential source of stream queue corruption. Also changed the name of cx18_queue_find_buf() to cx18_queue_get_buf_irq(). Priority: high Signed-off-by: Andy Walls <awalls@radix.net>
2008-07-27remove select's of FW_LOADERMauro Carvalho Chehab
From: Adrian Bunk <bunk@kernel.org> After commit d9b19199e4894089456aaad295023263b5225c1a (always enable FW_LOADER unless EMBEDDED=y) we can remove the FW_LOADER select's and corresponding dependencies on HOTPLUG. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-26v4l2-dev: remove unused type and type2 field from video_deviceHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The type and type2 fields were unused and so could be removed. Instead add a vfl_type field that contains the type of the video device. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>