summaryrefslogtreecommitdiff
path: root/linux
AgeCommit message (Collapse)Author
2007-11-20xc2028: rework firmware (re)loading processChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Define a list of valid "firmware types" for each combination of BASE, DTV and SCODEs. By masking the appropriate firmware bits off we can just use one "type" for the firmware searching and also flag when we are looking for a BASE, DTV or SCODE type firmware. This makes it much easier to track if we need to change device modes or flash an individual firmware part. Add a structure to remember what firmware properties we have. This contains the currently loaded/wanted base firmware (type), video std (id), video std requested (std_req), scode file and number in use. Incorporate said structure into the tuner private data. When checking whether the current firmware needs to be reloaded, first figure out exactly what "type" of firmware we want (base, std and scode), and then proceed to load the appropriate matching base, std-specific and scode records iff there are any changes required. This removes guesswork from the process because we no longer need to individually code a check for every tuning parameter's interactions. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: allow selection of D2633 firmwareChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Add a bit to select D2633 DTV firmware to struct xc2028_ctrl, so that it can be enabled via .set_config. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: use correct offset into scode firmwareChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> When validating and loading SCODE firmware we need to take into account the two-byte size header before each entry. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: use best match instead of first partial match during firmware selectionChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Rather than picking the first video standard firmware that supports any of the standards that the user has requested, try to select one that supports as many of them as possible. This improves the likelihood that the firmware we select will support the user's desired TV standard. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: don't duplicate max_len in privChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> There is no need to duplicate the max_len field from the ctrl structure in the private data. If we use it directly from priv->ctrl, we can memcpy the structure (apart from strings) to reduce maintenance as it grows. Enforce a minimum max_len length of 8 data bytes (+ 1 address byte) as seems to be required by the tuner. Also, use kstrdup instead of open coding the string duplication. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: correct tuner offset for 7MHz DTVChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> 7MHz bandwidth DVB-T needs an adjusted offset at the PLL to ensure the IF output is correctly centered. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: correctly select 8MHz firmwareChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> We were using priv->bandwidth to select the base firmware to load, not the requested bandwidth value, oops. Also, 7MHz Digital TV needs 8MHz base firmware loaded. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: correct divisor lengthChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> The frequency divisor should only be four bytes long. Also, display the frequency and divisor correctly in the debug output. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: firmware loading cleanupChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Hold the private lock over set_config and set priv->firm_size to 0 after a failed firmware load to prevent firmware accidentally being freed on us. Clean up the firmware load/error messages somewhat and rename priv->version to priv->firm_version to make it clear which "version" it is. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: add missing breakChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Add break to stop us from following the default failure path even upon success. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: protect device listChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Protect refcount changes and modifications to xc2028_list with a mutex. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: v4l2_std_id needs to be long long to display completelyChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Cast v4l2_std_id variables to unsigned long long so they will printk properly. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: error messages missing whitespaceChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Fix some missing spaces in errors that may be emitted during attach failure. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: make register reads atomicChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Issuing register reads as a separate address write and data read transactions means that other I2C activity could occur in between and state could get out of sync. Issue both the write and read in a single transaction so that the i2c layer can prevent other users accessing the bus until we are complete. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: fix inverted logic in audio standard checkChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> strcasecmp returns 0 on match, not true. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19xc2028: eliminate i2c macro side-effectsChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> The I2C macros have side effects and send_seq could cause a return from a function with a mutex held. Change them to behave like real functions. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19zl10353: calculate input frequency register instead of using hardcoded valueChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Now we know the zl10353's correct ADC clock, we can calculate the input frequency registers correctly instead of just blindly setting them. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19zl10353: fix default adc_clock and TRL nominal rate calculationChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> The default adc_clock for the zl10353 is different from what was originally thought to be the case and the TRL nominal rate formula was incorrect as a result. Use a better (and hopefully now correct) formula. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19zl10353: Improve support for boards without a tuner on secondary i2cChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Issue FSM_GO instead of TUNER_GO if there is no tuner attached to the secondary i2c bus. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19CXUSB: handle write then read from different addressChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> The path to perform a read immediately after a write was not checking that the address being read from was the same as the one that was written. Handling this case correctly should mean that we now can handle more than two i2c messages at a time. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19CXUSB: support only-read i2c requestsChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Any i2c read request that was not immediately preceded by a write request was incorrectly taking the write path. Add the capability to handle individual read requests. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19CXUSB: i2c transfer failure notificationChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> The i2c master_xfer routine should return a negative result if not all transfers completed successfully. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-11-19CXUSB: return control message transfer result to callerChris Pascoe
From: Chris Pascoe <c.pascoe@itee.uq.edu.au> Callers to cxusb_ctrl_msg currently do not receive any indication that their transfer failed. Return the true return code from dvb_usb_generic_{rw,write}. Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-23Fix radio entry for MSI @nyware masterMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Thanks to Serge Kolotylo for his help Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-22bttv: Update initial image size when set via V4L1 VIDIOCMCAPTURETrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The V4L1 spec says that the image size should be with with VIDIOCSWIN before requesting buffers with VIDIOCGMBUF and capturing into them with VIDIOCMCAPTURE. But it seems that many apps don't do this. They set the size using the fields in the VIDIOCMCAPTURE ioctl. The driver doesn't know what size to capture until it actually starts to capture. In particular, it doesn't know what size to capture until it has already mmap the captured buffers. Which is quite stupid. Why V4L1 has size and format fields for VIDIOCMCAPTURE I have no idea. Many drivers don't support this, including those using v4l1-compat. The bttv does, which is probably the only reason such broken software is so prevalent. But, the driver doesn't adjust its idea of what size is being captured when it is set this way. If you try to query the driver's current setting with v4l2-ctl, it won't be correct. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-10-22bttv: SPICT ioctl doesn't work with vlcTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The bttv driver instists that the depth specified in the call to VIDIOCSPICT match the pixel format specified in the same call. vlc doesn't set the depth field, which makes the SPICT ioctl always fail. The V4L1 standard is not clear on how most operation are supposed to work, and this is no exception. The depth field would appear to be entirely redundant, as the pixel format specifies a specific depth. It could be that this field was only meant for output from the *G*PICT ioctl and should be ignored in *S*PICT. This is in fact what the v4l1-compat wrapper does. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-10-22ivtv: yuv interlace mode changeHans Verkuil
From: Ian Armstrong <ian@iarmst.demon.co.uk> Interlace mode selection code moved into the frame setup phase, so it's now run before the frame is loaded into a hardware buffer. Given that it can affect how a new frame is displayed, it was a bit stupid running it after the frame was already visible. A few stray interlace related variables which were linked to individual frames have now been moved into the yuv_frame_info struct. This means that all variables linked to a specific frame are in the same place & not scattered. Minor code reformatting in areas touched by the above changes. Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-10-21ivtv: Remove unnecessary register updateHans Verkuil
From: Ian Armstrong <ian@iarmst.demon.co.uk> To reduce the number of display register accesses, the yuv code keeps track of the current video settings. Should there be a change in any single parameter, it will update the associated display registers to ensure everything is displayed correctly. The existing check also looks at the field order for the video. This is not required, since field reversal does not require any display register changes. This patch removes the field order from the check. Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-10-21ivtv: yuv frame parameter fixHans Verkuil
From: Ian Armstrong <ian@iarmst.demon.co.uk> Inadvertently missed a line when converting code to new hardware buffering method. In some circumstances, this would lead to a frame being displayed using parameters belonging to another frame. Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-10-20ivtv: ivtv_yuv_prep_frame breakup and yuv hardware buffer changesHans Verkuil
From: Ian Armstrong <ian@iarmst.demon.co.uk> ivtv_yuv_prep_frame is split in smaller code blocks. Modified yuv buffer handling on the PVR350 itself. We now cycle through all 8 hardware buffers. With this patch in place, driver behaviour should remain unchanged from the existing release. Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-10-19Add support for changing TEA5767_PLLREF_ENABLE via configMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-19From: Mauro Carvalho Chehab <mchehab@infradead.org>Mauro Carvalho Chehab
Add preliminary support for radio on CX88_BOARD_MSI_TVANYWHERE_MASTER Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-18Adds the capability of configuring tea5767 supportMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> tea5767 has several possible configurations. Before the patch, the driver were assuming the more common configuration. However, some newer cards, like MSI @nyware Master requires other configurations, like de-activating a gpio port and changing chip Xtal. This patch adds the capability of altering device configuration at runtime. This may also be used later to activate some features like auto-mute when signal is weak. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-18Replace TDA9887_SET_CONFIG by TUNER_SET_CONFIGMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Currently, the only tuner-specific device that allows special configurations is tda9887. However, tea5767 also may require some special configurations (for example, to specify a different Xtal freq). This patch replaces TDA9887_SET_CONFIG by a more generic internal ioctl (TUNER_SET_CONFIG). The newer one allows specifying what tuner is appliable to a configuration set, and allows an arbitrary configuration struct. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-18saa7134: fix NULL dereference at suspend time for cards without IR receiverMauro Carvalho Chehab
Calling saa7134_ir_stop at suspend is no good idea for saa7134 cards without remote control. Signed-off-by: Matthias Schwarzott <zzam@gentoo.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-18merge: http://www.linuxtv.org/hg/~hverkuil/ivtv-compatMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-18 patch which improves GotView Saa7135 remote controlMauro Carvalho Chehab
From: Pedro <roginovicci@nm.ru> improve GoTView PCI7135 remote control working under linux. Acked-by: Hermann Pitton <hermann-pitton@arcor.de> Acked-by: Nickolay V. Shmyrev <nshmyrev@yandex.ru> Signed-off-by: Eugene M. Roginskii <roginovicci@nm.ru> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17ivtvfb: Removal of the 'osd_compat' module option.Hans Verkuil
From: Ian Armstrong <ian@iarmst.demon.co.uk> Due to changes in the core ivtv driver as of release 1.0, the osd_compat module option has been rendered obsolete. This patch removes the option and all code associated with it. Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-10-16ivtv: ivtv yuv stream handling changeHans Verkuil
From: Ian Armstrong <ian@iarmst.demon.co.uk> Currently the yuv output stream buffer is divided into blocks whose size depend on the broadcast standard selected during the driver init phase. However, the standard can be changed after the init phase. This effectively breaks the yuv output stream handler, since it relies on the different yuv planes being block aligned. This patch changes the setup, so that the block size is always the same. The decoder dma function has been modified to cope with the fact that the second yuv plane may no longer be block aligned. The start of the yuv frame must still be at the beginning of a block, so the stream write function has also been modified to ensure this is always true. Also, the stream write function will now initiate a yuv dma transfer as soon as a full frame is ready. It will not wait until the current write request has completed, or the stream buffer becomes full. Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2007-10-11DiB0700-device: Using 1.10 firmwarePatrick Boettcher
From: Patrick Boettcher <pb@linuxtv.org> As for most of the users the 1.10 firmware is an improvement we should use this firmware always now. Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
2007-10-17synchronize dst.c with kernel versionMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17backport commit 7eff2e7a8b65c25920207324e56611150eb1cd9aMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original Description: Author: Kay Sievers <kay.sievers@vrfy.org> Date: Tue Aug 14 15:15:12 2007 +0200 Driver core: change add_uevent_var to use a struct This changes the uevent buffer functions to use a struct instead of a long list of parameters. It does no longer require the caller to do the proper buffer termination and size accounting, which is currently wrong in some places. It fixes a known bug where parts of the uevent environment are overwritten because of wrong index calculations. Many thanks to Mathieu Desnoyers for finding bugs and improving the error handling. CC: Mike Isely <isely@isely.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17synchronizes with the latest version of i2c-id.hMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17backport commit 64a6f9500d8e8a8e1b1adc2120e56cc88df5727fMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original description: Author: Al Viro <viro@ftp.linux.org.uk> Date: Sun Oct 14 19:35:30 2007 +0100 signedness: module_param_array nump argument ... should be unsigned int kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17backport changeset 13bcd5d0e21e3ca726965371ada8ff6c64af288fMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original description: Author: Al Viro <viro@ftp.linux.org.uk> Date: Sat Oct 13 08:25:24 2007 +0100 v4l: copy_to_user() is not a good method name Breaks on any target that has copy_to_user() defined as a non-trivial macro. kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17backport changeset c1017a4cdb68ae5368fbc9ee42c77f1f5dca8916Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original description: Author: Jaroslav Kysela <perex@perex.cz> Date: Mon Oct 15 09:50:19 2007 +0200 [ALSA] Changed Jaroslav Kysela's e-mail from perex@suse.cz to perex@perex.cz Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17Make it backward compatible with kernels <2.6.24Mauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17backport changeset 3be27d37c257fa5f99363f9c8e06e405cbad712eMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original description: i2c: Remove NOP i2c_algorithm.algo_control() methods This removes NOP implementations of i2c_algorithm.algo_control. With this change, there are no implementations of this hook in the kernel.org tree ... that hook seems about ripe to remove. kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17backport changeset 3b04ddde02cf1b6f14f2697da5c20eca5715017fMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original description: [NET]: Move hardware header operations out of netdevice. Since hardware header operations are part of the protocol class not the device instance, make them into a separate object and save memory. kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-10-17backport changeset 7e7654a92a5a75a350cc3458389bc76273498f6aMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Original description: cdev: remove unneeded setting of cdev names struct cdev does not need the kobject name to be set, as it is never used. This patch fixes up the few places it is set. kernel-sync: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>