Commit Graph

80097 Commits

Author SHA1 Message Date
Oliver Endriss
9fdd797659 V4L/DVB: ngene: Code cleanup
Remove/comment-out unused code, make some functions/declarations static.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:54 -03:00
Matthias Benesch
cf1b12f2b3 V4L/DVB: ngene: Added module parameter "one_adapter"
If parameter "one_adapter" is set, only one adapter per device will be attached.
Otherwise an adapter for every frontend will be attached.

Signed-off-by: Matthias Benesch <twoof7@freenet.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:54 -03:00
Oliver Endriss
126cd4bc5f V4L/DVB: DVB: Export dvb_ringbuffer_flush() again
Add EXPORT_SYMBOL(dvb_ringbuffer_flush) again,
replace my_dvb_ringbuffer_flush() in ngene driver.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:54 -03:00
Oliver Endriss
948a119547 V4L/DVB: ngene: Remove kernel version check for dvb_[un]register_adapter
Remove kernel version check for dvb_[un]register_adapter.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:54 -03:00
Oliver Endriss
44cdd064aa V4L/DVB: ngene: Change severity of some diagnostic messages
Changed severity of some diagnostic messages.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:54 -03:00
Oliver Endriss
236fa316ba V4L/DVB: ngene: Speed-up tuning
Remove stray mleep() which prevented fast tuning.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:54 -03:00
Roland Praml
dc35c9ae19 V4L/DVB: ngene: Fix unloading of module
Fixed unloading of module ngene.

Signed-off-by: Roland Praml <pram@gmx.de>
Signed-off-by: Matthias Benesch <twoof7@freenet.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:54 -03:00
Matthias Benesch
adc1d21eec V4L/DVB: ngene: Remove firmware debugging
Remove firmware debugging, because setting ngene_fw_debug and requesting
firmware from file causes a kernel error.

Signed-off-by: Matthias Benesch <twoof7@freenet.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:53 -03:00
Matthias Benesch
8bba2607f1 V4L/DVB: ngene: Added Media-Pointer MP-S2/CineS2 DVB-S2 Twin Tuner
Added support for nGene based Media-Pointer DVB-S2 twin tuner cards.

[mchehab@redhat.com: Fix compilation error: unknown field ‘ref_clk’]

Signed-off-by: Matthias Benesch <twoof7@freenet.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:53 -03:00
Matthias Benesch
6ed36e6670 V4L/DVB: ngene: Additional clean-up
Remove and disable unnecessary code. Disable define ONE_ADAPTER.

Signed-off-by: Matthias Benesch <twoof7@freenet.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:53 -03:00
Oliver Endriss
0027ebb73e V4L/DVB: ngene: Always use firmware loader
Always use firmware loader.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:53 -03:00
Oliver Endriss
83f3c7157e V4L/DVB: ngene: Driver compiles now
Remove LNBH21 routines, disable code which broke compilation.

Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:53 -03:00
Matthias Benesch
dae52d009f V4L/DVB: ngene: Initial check-in
Add Micronas nGene PCIe bridge driver.

The source code was provided by Micronas / Ralph Metzler,
and has been reformatted to comply with Linux Codingstyle.

Signed-off-by: Matthias Benesch <twoof7@freenet.de>
Signed-off-by: Ralph Metzler <rjkm@metzlerbros.de>
Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:53 -03:00
Janne Grunau
c22425ffa1 V4L/DVB: hdpvr: add new USB product id
Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:53 -03:00
Márton Németh
85d682b9ee V4L/DVB: hdpvr-video: cleanup signedness
The fifth parameter of usb_bulk_msg() is a pointer to signed
(see <linux/usb.h>) so also call this function with pointer to signed.

This will remove the following sparse warning (see "make C=1"):
 * warning: incorrect type in argument 5 (different signedness)
       expected int *actual_length
       got unsigned int *<noident>

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Janne Grunau <j@jannau.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:53 -03:00
Jiri Slaby
e3a0cc62c8 V4L/DVB: media: dvb/af9015, add hashes support
So as a final patch, add support for hash and one hash entry
for MSI digi vox mini II:
iManufacturer 1 Afatech
iProduct      2 DVB-T 2
iSerial       3 010101010600001

It is now handled with proper IR and key map tables.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:52 -03:00
Jiri Slaby
26c3b8b060 V4L/DVB: media: dvb/af9015, refactor remote setting
Add af9015_setup structure to hold (right now only remote) setup
of distinct receivers.

Add af9015_setup_match for matching ids against tables.

This is for easier matching different kind of ids against tables
to obtain setups. Currently module parameters and usb vendor ids
are switched into and matched against tables. Hashes will follow.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:52 -03:00
Jiri Slaby
634d2d757a V4L/DVB: media: dvb/af9015, factor out remote setting
This is just a code shuffle without functional changes. For easier
review of later changes, i.e. preparation.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:52 -03:00
Jiri Slaby
6c614044ff V4L/DVB: media: dvb/af9015, implement eeprom hashing
This will be useful for matching of IR tables later.

We read the eeprom anyway for dumping. Switch the dumping to
print_hex_dump_bytes and compute hash above that by
hash = 0;
for (u32 VAL) in (eeprom):
  hash *= GOLDEN_RATIO_PRIME_32
  hash += VAL; // while preserving endinaness

The computation is moved earlier to the flow, namely from
af9015_af9013_frontend_attach to af9015_read_config, so that
we can access the sum in af9015_read_config already.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Acked-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:52 -03:00
Kusanagi Kouichi
0b32d65cd7 V4L/DVB: cx23885: Add support for LEADTEK WinFast PxTV1200
I tested only tv and composite. Video works fine but no audio.

Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:52 -03:00
Márton Németh
b38aa09df3 V4L/DVB: hdpvr-core: make module parameters local
The default_video_input and default_audio_input module parameters are
only used inside the hdpvr-core.c file so make them static.

This will remove the following sparse warnings (see "make C=1"):
 * warning: symbol 'default_video_input' was not declared. Should it be static?
 * warning: symbol 'default_audio_input' was not declared. Should it be static?

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:52 -03:00
Richard Röjfors
ee4b9dbb83 V4L/DVB: radio: add support for SAA7706H Car Radio DSP
Initial support for the SAA7706H Car Radio DSP.

It is a I2C device and currently the mute control is supported.

When the device is unmuted it is brought out of reset and initiated using
the proposed intialisation sequence.

When muted the DSP is brought into reset state.

[akpm@linux-foundation.org: include delay.h]

Signed-off-by: Richard Röjfors <richard.rojfors@pelagicore.com>
Cc: Douglas Schilling Landgraf <dougsland@gmail.com>
Cc: Hans Verkuil <hverkuil@xs4all.nl>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:52 -03:00
Andrew Morton
08c45cd585 V4L/DVB: drivers/media/dvb/frontends/stv090x.c: fix use-uninitlalised
Mad guess.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Manu Abraham <manu@linuxtv.org>
Acked-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:51 -03:00
Andrew Morton
690c79ae7a V4L/DVB: drivers/media/dvb/frontends/stv090x.c: fix use-uninitialised
drivers/media/dvb/frontends/stv090x.c: In function 'stv090x_blind_search':
drivers/media/dvb/frontends/stv090x.c:1967: warning: 'coarse_fail' may be used uninitialized in this function

Cc: Manu Abraham <manu@linuxtv.org>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Reviewed-by: Manu Abraham <manu@linuxtv.org>
Acked-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:51 -03:00
Andrew Morton
c2312f60d7 V4L/DVB: drivers/media/video/cx18/cx18-alsa-pcm.c: fix printk warning
drivers/media/video/cx18/cx18-alsa-pcm.c: In function 'cx18_alsa_announce_pcm_data':
drivers/media/video/cx18/cx18-alsa-pcm.c:82: warning: format '%d' expects type 'int', but argument 5 has type 'size_t'

Cc: Andy Walls <awalls@radix.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:51 -03:00
Roel Kluin
407df29363 V4L/DVB: dvb: return -ENOMEM if kzalloc failed in dvb_usb_device_init()
If in a cold state and the download succeeded ret is zero, but we
should return -ENOMEM.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:51 -03:00
Magnus Alm
ca39d84d43 V4L/DVB: em28xx: fix for "Leadtek winfast tv usbii deluxe"
fix Video/Sound support "Leadtek winfast tv usbii deluxe".

Now, it is working Stereo, IR, Radio, TV, Svideo and Composite.

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:51 -03:00
Márton Németh
5d26b64432 V4L/DVB: smsir: make local variables static
Make the file local parameters static.

This will remove the following sparse warnings (see "make C=1"):
 * warning: symbol 'ir_pos' was not declared. Should it be static?
 * warning: symbol 'ir_word' was not declared. Should it be static?
 * warning: symbol 'ir_toggle' was not declared. Should it be static?

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:51 -03:00
Massimo Del Fedele
3d36f5c652 V4L/DVB: m920x: Add support for Pinnacle PCTV310e card
Adds support to Pinnacle PCTV310e hybrid tuner card, for DVB-T and
remote control, still no analog video.

[mchehab@redhat.com: fix CodingStyle issues]

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:51 -03:00
Alexander Strakh
0faf6f6b89 V4L/DVB: cafe_ccic: Fix lock imbalances
Fix lock imbalances in function device_authorization.

Signed-off-by: Alexander Strakh <strakh@ispras.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:51 -03:00
Roel Kluin
fb3ab105a5 V4L/DVB: stv0900: dereference of state->internal in fe_stv0900_error stv0900_init_internal()
state->internal allocation may fail as well as the allocation of
stv0900_first_inode or new_node->next_inode in append_internal().

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:50 -03:00
Andy Walls
6adb21c871 V4L/DVB: cx18: Add missing serialization locks to cx18-dvb
Operations that manipulates the state of the encoder or global instance flags
and variables should be serialized.  This adds some serialization locks that
have been missing from cx18-dvb.  Since the DVB part of the CX23418 doesn't
affect the encoder, no one would likely have ever noticed a race in changing
card instance variables.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:50 -03:00
Andy Walls
b3b6dc6206 V4L/DVB: cx18: Increment driver version for the addition of cx18-alsa and fixes
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:50 -03:00
Andy Walls
831f476cee V4L/DVB: cx18: Fix memory leak in cx18-alsa starting of PCM captures
The cx18_open_id is normally dynamically allocated and stored in the
filp->private_data for v4l2 file operations.  The cx18-alsa routines should
not dynamically allocate a cx18_open_id because they never store it anywhere
and never free it.  This change fixes that and plugs a memory leak.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:50 -03:00
Andy Walls
b4729dcbba V4L/DVB: cx18: Add missing serialization locking to cx18-alsa
File operations that manipulate the state of the encoder, or video or audio
subdevices or some of the stream flags need to be serialized.  Add the
serilization locks to cx18-alsa in a manner consistent with the locking for
the v4l2 file operations.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:50 -03:00
Andy Walls
83695009a4 V4L/DVB: cx18: Rename snd_cx18_mixer_lock to snd_cx18_lock and increase visibility
Rename snd_cx18_mixer_lock() to snd_cx18_lock() in anticpation of using it
in the cx18-alsa-pcm.c file routines.

Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:50 -03:00
Kusanagi Kouichi
10e43d90da V4L/DVB: cx25840: Fix composite detection
If CX25840_VIN1_CH1 and the like is used, input is not detected as composite.
Their value is 0x800000XX and CX25840_COMPONENT_ON is 0x80000200. So

   739			else if ((vid_input & CX25840_COMPONENT_ON) == 0)

this condition never be true.

Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
Reviewed-by: Andy Walls <awalls@radix.net>
Acked-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:50 -03:00
Jean-François Moine
55461f4c58 V4L/DVB: gspca - main: Change version to 2.9.0.
Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:49 -03:00
Nicolau Werneck
00e8006db5 V4L/DVB: gspca - t613: Support for LT168G sensor.
Signed-off-by: Nicolau Werneck <nwerneck@gmail.com>
Signed-off-by: Jean-François Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:49 -03:00
Jean-Francois Moine
cc2f82c22f V4L/DVB: gspca - pac7302: Change latin1 text to utf-8.
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:49 -03:00
Márton Németh
aed6f1b5fe V4L/DVB: gspca - pac7302: Add support for camera button.
Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:49 -03:00
Márton Németh
0274d42e05 V4L/DVB: gspca - main: Add input support for interrupt endpoints.
Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:49 -03:00
Jean Delvare
2abf6dd8e8 V4L/DVB: dvb/bt8xx: Clean-up init and exit functions
The init and exit functions are needlessly complex. Remove the bloat:
* Drop irrelevant/outdated comments.
* Remove useless bt878_pci_driver_registered global variable.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mauro Carvalho chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:49 -03:00
Arnaud Patard
22c859faf5 V4L/DVB: Fix VIDIOC_QBUF compat ioctl32
When using VIDIOC_QBUF with memory type set to V4L2_MEMORY_MMAP, the
v4l2_buffer buffer gets unmodified on drivers like uvc (well, only
bytesused field is modified). Then some apps like gstreamer are reusing
the same buffer later to call munmap (eg passing the buffer "length"
field as 2nd parameter of munmap).

It's working fine on full 32bits but on 32bits systems with 64bit
kernel, the get_v4l2_buffer32() doesn't copy length/m.offset values and
then copy garbage to userspace in put_v4l2_buffer32().

This has for consequence things like that in the libv4l2 logs:

libv4l2: v4l2 unknown munmap 0x2e2b0000, -2145144908
libv4l2: v4l2 unknown munmap 0x2e530000, -2145144908

The buffer are not unmap'ed and then if the application close and open
again the device, it won't work and logs will show something like:

libv4l2: error setting pixformat: Device or resource busy

The easy solution is to read length and m.offset in get_v4l2_buffer32().

Signed-off-by: Arnaud Patard <apatard@mandriva.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:49 -03:00
Márton Németh
6aba72cf76 V4L/DVB: zoran: remove variable shadowing
The loop counter j is declared twice in function error_handler().
Remove the redundant declaration.

This will remove the following sparse warning (see "make C=1"):
 * symbol 'j' shadows an earlier one

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:49 -03:00
Márton Németh
db1b72650d V4L/DVB: zoran: match parameter signedness of g_input_status
The second parameter of g_input_status operation in <media/v4l2-subdev.h>
is unsigned so also call it with unsigned paramter.

This will remove the following sparse warning (see "make C=1"):
 * incorrect type in argument 2 (different signedness)
       expected unsigned int [usertype] *status
       got int *<noident>

Signed-off-by: Márton Németh <nm127@freemail.hu>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:48 -03:00
Roel Kluin
26ee91efd9 V4L/DVB: cx23885: Wrong command printed in cmd_to_str()
The wrong command was printed for case CX2341X_ENC_SET_DNR_FILTER_MODE,
and a typo in case CX2341X_ENC_SET_PCR_ID.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Acked-By: Steven Toth <stoth@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:48 -03:00
Stefan Richter
1e4348c85a V4L/DVB: firedtv: reduce memset()s
Before each FCP transdaction, the entire 512 bytes of the FCP frame were
cleared, then values filled in.

Clear only the bytes between filled-in bytes and end of the
  - request frame, or
  - response frame if data from a larger response will be needed, or
  - whole frame if data from a variable length response will be taken.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:48 -03:00
Stefan Richter
6385c5bf98 V4L/DVB: firedtv: remove check for interrupting signal
FCP transactions as well as CMP transactions were serialized with
mutex_lock_interruptible.  It is extremely unlikly though that a signal
will arrive while a concurrent process holds the mutex.  And even if one
does, the duration of a transaction is reasonably short (1.2 seconds if
all retries time out, usually much shorter).

Hence simplify the code to plain mutex_lock.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:48 -03:00
Stefan Richter
3fb80ef3bc V4L/DVB: firedtv: do not DMA-map stack addresses
This is a portability fix and reduces stack usage.

The DMA mapping API cannot map on-stack addresses, as explained in
Documentation/DMA-mapping.txt.  Convert the two cases of on-stack packet
payload buffers in firedtv (payload of write requests in avc_write and
of lock requests in cmp_lock) to slab-allocated memory.

We use the 512 bytes sized FCP frame buffer in struct firedtv for this
purpose.  Previously it held only incoming FCP responses, now it holds
pending FCP requests and is then overwriten by an FCP response from the
tuner subunit.  Ditto for CMP lock requests and responses.  Accesses to
the payload buffer are serialized by fdtv->avc_mutex.

As a welcome side effect, stack usage of the AV/C transaction functions
is reduced by 512 bytes.

Alas, avc_register_remote_control() is a special case:  It previously
did not wait for a response.  To fit better in with the other FCP
transactions, let it wait for an interim response.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-02-26 15:10:48 -03:00