Commit Graph

21545 Commits

Author SHA1 Message Date
Mike Isely 293b5d94eb V4L/DVB (5087): Pvrusb2: Fix sizeof() calculation foul-up
This bug caused uninitalized data to be returned during a G_TUNER status poll.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:40 -02:00
Mike Isely 11fc76c9a8 V4L/DVB (5086): Pvrusb2: Fix missing break statement on VIDIOC_S_TUNER
The lack of a break statement in the handling of VIDIOC_S_TUNER caused
errors to result.  Fixed.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:39 -02:00
Mike Isely 8433544ea9 V4L/DVB (5085): Pvrusb2: trace print added
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:39 -02:00
Mike Isely 644afdb9cc V4L/DVB (5084): Pvrusb2: Stop hardcoding frequency ranges
Rather than hardcoding frequency ranges everywhere, rely on
VIDIOC_G_TUNER results wherever we can.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:39 -02:00
Mike Isely 7c74e57e6f V4L/DVB (5083): Pvrusb2: Remove automodeswitch control
The automodeswitch control was a feature that enable automatic radio /
tv switching based on the selected frequency.  However since frequency
ranges can overlap and also since apparently in some cases it's
possible for the same frequency range to be both tv and radio in a
specific region, then this feature can't safely work.  So it's removed.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:38 -02:00
Mike Isely fe23a2809d V4L/DVB (5082): Pvrusb2: Slight debug printing efficiency fixup
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:38 -02:00
Mike Isely 18103c57b0 V4L/DVB (5081): Pvrusb2: VIDIOC_G_TUNER cleanup
Clean up use of VIDIOC_G_TUNER; we now correctly gather info from all
the I2C client modules.  Also abide by V4L2_TUNER_CAP_LOW
appropriately.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:38 -02:00
Mike Isely af78a48b69 V4L/DVB (5080): Pvrusb2: Allow streaming from /dev/radioX
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:37 -02:00
Mike Isely 4b85dee6a0 V4L/DVB (5079): Pvrusb2: Use kzalloc instead of kmalloc+memset pairs
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:37 -02:00
Mike Isely 6710fb868b V4L/DVB (5078): Pvrusb2: It's safe to kfree() a null pointer
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:37 -02:00
Michael Schimek e5bd0260e7 V4L/DVB (5077): Bttv cropping support
Adds the missing VIDIOC_CROPCAP, G_CROP and S_CROP ioctls, permitting 
applications to capture or overlay a subsection of the picture or to 
extend the capture window beyond active video, into the VBI area and the 
horizontal blanking. VBI capturing can start and end on any line, 
including the picture area, and apps can capture different lines of each 
field and single fields.
For compatibility with existing applications, the open() function
resets the cropping and VBI capturing parameters and a VIDIOC_S_CROP
call is necessary to actually enable cropping. 
Regrettably in PAL-M, PAL-N, PAL-Nc and NTSC-JP mode the maximum image 
width will increase from 640 and 768 to 747 and 923 pixels respectively.
Like the VBI changes however, this should only affect applications which 
depend on former driver limitations, such as never getting more than 640 
pixels regardless of the requested width. 
Also, new freedoms require additional checks for conflicts and some 
applications may not expect an EBUSY error from the VIDIOC_QBUF and 
VIDIOCMCAPTURE ioctls. These errors should be rare though.
So far, the patch has been tested on a UP machine with a bt878 in PAL-
BGHI and NTSC-M mode using xawtv, tvtime, mplayer/mencoder, zapping/
libzvbi and these tools: http://zapping.sf.net/bttv-crop-test.tar.bz2
I'd be grateful about comments or bug reports.

Signed-off-by: Michael H. Schimek <mschimek@gmx.at>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:36 -02:00
Alexey Dobriyan 13071f0a58 V4L/DVB (5076): Cpia.c: buffer overflow
If assigned minor is 10 or greater, terminator will be put beyound the end.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:35 -02:00
Mike Isely c74e006268 V4L/DVB (5059): Pvrusb2: Be smarter about mode restoration
Switch back to the previous input selection when the radio device is
closed - but only do that if the current input selection is still the
radio (i.e. it appears that it hasn't been messed with).

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:35 -02:00
Mike Isely cdef8bd8c6 V4L/DVB (5058): Pvrusb2: bug fix involving switch into radio mode
When the input is switched by opening /dev/radioX, we must also commit
that change into the driver core.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:35 -02:00
Mike Isely 16eb40d37d V4L/DVB (5057): Pvrusb2: Stream configuration cleanups
Clean up and tighten logic involving stream configuration.  This
mainly involves changes to pvrusb2-v4l2.c, where we better clarify how
we use the stream configuration enum and implement a cleaner means to
control streaming for a given device node.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:34 -02:00
Mike Isely f13ed249ed V4L/DVB (5056): Pvrusb2: Fix cut/paste bug in auto_mode_switch control
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:34 -02:00
Mike Isely 7a4a3770dd V4L/DVB (5054): Pvrusb2: cosmetic comment tweak
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:34 -02:00
Mike Isely 139eecf94c V4L/DVB (5053): Pvrusb2: Change default volume to something sane
The default volume of 65535 is too high.  Make is something smaller.
Note that this _only_ changes the default value.  Specifically, there
are no scaling or other more intrusive changes here.  I'm just sick of
constantly having to reduce the volume every time I plug in and test
the device!  (And unfortunately we can't do a better fix like scaling
the volume so that 65535 makes sense because doing so will screw up
any app - like MythTV - which expects the old scaling.)  Too bad V4L
controls don't have better defined ranges.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:34 -02:00
Mike Isely 62f5fdace7 V4L/DVB (5052): Pvrusb2: Remove stream claiming hack from /dev/radio
Trying to temporarily check that the stream is not claimed during open
of the radio device is at best a race condition.  What's to stop
another app from claiming the stream anyway the instant after the
check is done?  The implementation for this was dicey anyway.  So it's
removed.  The only "price" for this is that if /dev/radioX is opened
while streaming video, then the video stream is just going to switch
to radio mode anyway.  If a user does this, he gets what he expects...

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:33 -02:00
Mike Isely 1bde02891b V4L/DVB (5051): Pvrusb2: Better radio versus tv frequency handling
Separate track radio versus tv frequency so that when we switch modes
we can also switch to a sane frequency appropriate for the mode.  Also
implement logic to automate mode switching in certain cases.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:33 -02:00
Mike Isely 5549f54f46 V4L/DVB (5050): Pvrusb2: Newer frequency range checking
Implement new method for doing integer range checking, so that we can
more intelligently range-check radio and tv ranges at once.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:33 -02:00
Mike Isely 2083230084 V4L/DVB (5049): Pvrusb2: Enable radio mode for 24xxx devices
These changes implement correct audio routing for radio mode on a
24xxx device.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:32 -02:00
Mike Isely c0e69315ed V4L/DVB (5048): Pvrusb2: v4l2 API implementation frequency tweaks
Report and set correctly converted frequency to/from a V4L2 app.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:32 -02:00
Mike Isely f1382122ab V4L/DVB (5047): Pvrusb2: Fix tuning calculation when in radio mode
Frequency units in V4L2 are apparently different when in radio mode
compared to tv mode.  Why?  Who knows.  This change adapts the driver
appropriately - so that internally we always only deal in Hz and don't
have to muck with craziness like this.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:32 -02:00
Mike Isely 5a8a0a1642 V4L/DVB (5046): Pvrusb2: Fix tuner frequency calculation
A conversion from Hz to V4L frequency units was accidentally removed
by an earlier change.  Restore it.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:31 -02:00
Mike Isely 0f0f257b7b V4L/DVB (5045): Pvrusb2: Fix heap corruption introduced by radio mods
We can't allocate v4l device structures in a block, since the v4l core
governs when each device actually gets freed.  This bug was introduced
as part of the core radio implementation.  Fix it.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:31 -02:00
Mike Isely 5e6862cefe V4L/DVB (5044): Pvrusb2: Allow overriding vbi and radio device minor numbers
Support specification of vbi and radio device minor numbers in a
manner similar to the video device minor number.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:29 -02:00
Mike Isely f5156b06ac V4L/DVB (5043): Pvrusb2: video standard broadcast fix for radio mode
Ensure we don't accidentally broadcast the standard while in radio mode.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:24 -02:00
Mike Isely 98752102dc V4L/DVB (5042): Pvrusb2: Make units uniform when tracking tuning frequency
The initial radio implementation used different units for tuning when
in radio mode.  This changes everything to Hz.

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:24 -02:00
Mike Isely 8079384eeb V4L/DVB (5041): Pvrusb2: Use separate enumeration for get/store of minor number
Use separate enum for get/store of minor number; we want pvr2_config
to go away eventually and since it really means something different,
don't use it here

Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:24 -02:00
Mike Isely fd5a75fe00 V4L/DVB (5040): Pvrusb2: Use enumeration for minor number get / store code
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:23 -02:00
Pantelis Koukousoulas ae2b9e25fd V4L/DVB (5039): Pvrusb2: Implement /dev/radioX
The "main" V4L2 interface patch. This is yet very incomplete, incorrect and
probably inappropriate for inclusion as-is, but at least with this I 'm able
to tune and play radio through a V4L2 program (pvr-radio.c, a "thumb" version
of ivtv-radio.c with just the essentials).

Therefore, it kinda gives an idea of what is needed to support this, hm,
interface (partly used also by e.g., kradio). Please point out any mistakes
on this code. I 'm sure I 'm messing up some struct initialization somewhere
but currently I 'm too lazy to actually think this through until I complete
the functionality (e.g., handle the VIDIOC_S_STD, ENUMINPUT, etc ioctls
appropriately).

Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:23 -02:00
Pantelis Koukousoulas 99cfdf5cc6 V4L/DVB (5038): Pvrusb2: Implement stream claim checking function
Add (and expose) a new function, pvr2_channel_check_stream_no_lock(), in
pvrusb2-context.c. This is hopefully the last V4L2 interface related patch
to change anything outside pvrusb2-v4l2.c.

We need this to implement the open() for the radio device. The reason is
that within the *enter_context() section of open() we need to ensure nobody
is streaming and if we cannot, we should cleanup after ourselves and return
 -EBUSY. We cannot just use claim_stream() because:

   1) That would cause a deadlock trying to re-acquire the context lock
   2) We only need to ensure that nobody is streaming. We don't need to
      actually acquire the stream.

Again, this is a kinda ugly patch. Feel free to improve.

Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:23 -02:00
Pantelis Koukousoulas 2fdf3d9c94 V4L/DVB (5037): Pvrusb2: Implement multiple minor device number handling
This is the first patch in preparation of the V4L2/IVTV radio interface.
It does away with the assumption of only one minor per device. It also
adds a file to show the radio minor as well. This can be useful for a
program like pvr-radio.c (when it grows up), since this way it can search
for the minor of the /dev/radioX device it opened and use the video minor
of the same driver instance to get to the actual stream.

The implementation looks kinda ugly. Feel free to improve (that is the
reason behind separate patches anyway).

Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:22 -02:00
Pantelis Koukousoulas 6fcb5b3ef7 V4L/DVB (5036): Pvrusb2: Fix for min/max control value checking
In the previous patch we exploited the get_{min,max}_value facility to adjust
min/max allowable frequencies on the fly, depending on tuner mode.

Unfortunately, this facility was not used inside the *sym_to_val() function
that translates what we echo to sysfs, which means we got an -ERANGE despite
asking for a frequency between what we read to be min/max.
This patch corrects this small omission.

Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:22 -02:00
Pantelis Koukousoulas 25d8527a44 V4L/DVB (5035): Pvrusb2: Enable radio mode round #2
This is the logic that:
  a) Ensures /sys/class/pvrusb2/sn-*/ctl_frequency/{max,min}_val are
     "automagically" reset to sane values on each mode change.

  b) Allows tuning to a radio frequency by something like:
     echo `perl -e "print int(94.9*16000 + 0.5)"` \
       > /sys/class/pvrusb2/sn-*/ctl_input/cur_val


The trick was to take advantage of the already existing .get_{min,max}_value
function pointers in pvr2_ctrl, to "dynamically override" the hardcoded values
for min/max frequency at runtime.

For a moment I thought to dispose of the hardcoded MIN/MAX_FREQ and use the
hirange/lowrange fields of the v4l2_tuner struct instead, but then I see that
tuner-core.c kinda hardcodes these as well, so I decided to not bother.

Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:22 -02:00
Pantelis Koukousoulas 275b2e283b V4L/DVB (5034): Pvrusb2: Enable radio mode round #1
This is the logic that supports switching modes via e.g.,
  echo radio > /sys/class/pvrusb2/sn-*/ctl_input/cur_val.

To do the mode switching we need to:
a) broadcast AUDC_SET_RADIO and
b) issue the CX2341X_ENC_MUTE_VIDEO command to the encoder. 

The first is done by adding a new pvr2_i2c_op and having it trigger on 
input change, the second by adding this command in pvr2_encoder_start() 
and requesting an encoder restart on input change by setting 
stale_subsys_mask appropriately. 

The clues about AUDC_SET_RADIO and CX2341X_ENC_MUTE_VIDEO were kindly 
provided by Hans Verkuil on the pvrusb2 mailing list. The idea to 
implement mode switching this way (on input change) is due to Mike Isely.

Why AUDC_SET_RADIO/VIDIOC_S_STD are used for switching? I can 't be sure, 
but I think this can be traced to a cornell student being the first to 
implement radio support in ivtv "as a different standard". I think the 
rest just evolved from there (it 's in the ivtv ML archives).

Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:21 -02:00
Mauro Carvalho Chehab 0b60051286 V4L/DVB (5074): Some fixes at stream waitqueue on vivi
There are several potential troubles on vivi waitqueue code:
- Watchdog timer should be reset at every received frame;
- Watchdog timer should be reset at the beginning of vivi_thread();
- Checks for errors when creating a newer thread with kernel_thread();
- Wake up vivi_thread() after creating it.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:21 -02:00
Mauro Carvalho Chehab df3a710458 V4L/DVB (5073): Fix OOPS on some waitqueue conditions
If for some reason vivi_thread() fails, vivi will suffer an OOPS at
thread stop code, since waitqueue wouldn't be properly initializated.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:21 -02:00
Ville-Pekka Vainio ae1942c571 V4L/DVB (5070): Budget-ci: add support for the Technotrend 1500 bundled remote
The keymap is based on a previous patch by Jussi Kukkonen.
This remote is identified by subsystem_device id 0x1010.

Signed-off-by: Ville-Pekka Vainio <vpivaini@cs.helsinki.fi>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:20 -02:00
Mauro Carvalho Chehab 43db48d3d2 V4L/DVB (5068): Fix authorship references
Bill Dirks asked me to update his entries at kernel files, since
he change his e-mail.
I've also updated a few web broken links or obsolete info to the curent
sites where V4L drivers and API are being discussed currently.

CC: Bill Dirks <bill@thedirks.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:20 -02:00
Luca Risolia 2656312724 V4L/DVB (5064): ET61X251 driver updates.
- Implement audio ioctl's and VIDIOC_ENUM_FRAMESIZES
- Documentation updates
- Generic improvements

Signed-off-by: Luca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:20 -02:00
Luca Risolia 7e3a066070 V4L/DVB (5063): ZC0301 driver updates.
- Implement audio ioctl's and VIDIOC_ENUM_FRAMESIZES
- Documentation updates
- Generic improvements

Signed-off-by: Luca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:19 -02:00
Luca Risolia f327ebbd00 V4L/DVB (5062): SN9C102 driver updates
- Add support for SN9C105 and SN9C120
- Add some more USB device identifiers
- Add support for OV7660
- Implement audio ioctl's and VIDIOC_ENUM_FRAMESIZES
- Add preliminary support for 0x0c45/0x6007
- Documentation updates
- Generic improvements
Signed-off-by: Luca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:19 -02:00
Michael Krufky 19790db00b V4L/DVB (5061): Bt8xx: add support for Ultraview DVB-T Lite
Ultraview DVB-T Lite is a clone of DViCO FusionHDTV DVB-T Lite

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:19 -02:00
Dwaine Garden de6a1b8edc V4L/DVB (5032): Improves some USBVision info messages
Replaces the info statements with printk(KERN_INFO statements.
This will cut down on the useless information which is showing up
 in the kernel messages log file.

Signed-off-by: Dwaine P. Garden <DwaineGarden@rogers.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:18 -02:00
Dmitry Torokhov c190495681 V4L/DVB (5025): Cleanup: switch to using msecs_to_jiffies() on bttv
PS.: Part of the changes at the original patch were removed due to the changes
done at commit 52c14e794f6ce345343a6b8fc98ea4e0ba2dfce4

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:18 -02:00
Mariusz Kozlowski cededbfcbc V4L/DVB (5028): Tvmixer module_put cleanup
Removes redundant argument check for module_put()

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:18 -02:00
Mariusz Kozlowski ac32898930 V4L/DVB (5027): Cpia module_put cleanup
No need for redundant argument check for module_put()

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:17 -02:00
Mariusz Kozlowski 22071a42a1 V4L/DVB (5026): Pvrusb2-hdw kfree cleanup
Removes redundant argument check for kfree().

Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl>
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:17 -02:00
Adrian Bunk 4a06b538d6 V4L/DVB (5018): Make usbvision_rvfree() static
usbvision_rvfree() can now become static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:16 -02:00
Adrian Bunk c408a6f673 V4L/DVB (5017): DVB: fix compile error
This patch fixes the following compile error:
<--  snip  -->
...
  LD      drivers/media/video/built-in.o
drivers/media/video/saa7134/built-in.o:(.data+0x85ec): multiple definition of `ir_rc5_remote_gap'
drivers/media/video/bt8xx/built-in.o:(.data+0x734c): first defined here
drivers/media/video/saa7134/built-in.o:(.data+0x85f0): multiple definition of `ir_rc5_key_timeout'
drivers/media/video/bt8xx/built-in.o:(.data+0x7350): first defined here
make[4]: *** [drivers/media/video/built-in.o] Error 1
<--  snip  -->
Since this variables were needlessly global, this patch implements the
trivial fix of making them static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:16 -02:00
Juan Pablo Sormani c36c459a55 V4L/DVB (5015): Add support for more Encore TV cards
Signed-off-by: Juan Pablo Sormani <sorman@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:16 -02:00
Mauro Carvalho Chehab 95efa03bd6 V4L/DVB (5012a): Remove some unused code from kernel mainstream
There are some long time unused code under some media driver source files. 
There's no need of keeping it at mainstream.
Those unused code will remain available at V4L/DVB master tree and also at
kernel history.

Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:15 -02:00
Tobias Klauser d9bdf77296 V4L/DVB (5011): DVB: Remove unneeded void * casts in ttpci/av7110
The patch removes unneeded void * casts for the following (void *) pointers:
- struct file: private_data
- struct dvb_device: priv
- struct dvb_demux: priv
- struct dvb_adapter: priv
The patch also contains some whitespace and coding style cleanups in the
relevant areas.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:15 -02:00
Antti Seppälä 9d85d776cb V4L/DVB (4999): [PATCH] Cablestar2 support
This patch changes the initialization of alps tdee4 tuner in
flexcop-fe-tuner.c to match what is used in the old driver that was
written specifically for Cablestar cards by Patrick Boettcher. This
patch should make Cablestar2 work again with recent dvb drivers without
breaking other stv0297 based cards.

Signed-off-by: Antti Seppala <ajhseppa@niksula.hut.fi>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:15 -02:00
Mario Rossi e3ab2fdd3f V4L/DVB (4998): [PATCH] DIB3000MC and NOVA T USB2 #2
Second part of the patch to make the autosearch work again with DiB3000P/MC.

Signed-off-by: Mario Rossi <mariofutire@googlemail.com>
Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:14 -02:00
Steven Walter d1158f469c V4L/DVB (4989): Saa7134: add support for the Encore ENL-TV
Add a board definition for the Encore ENL-TV card, and
adds its PCI subdevice to the ID table.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:14 -02:00
Hans Verkuil 75558ab92d V4L/DVB (4986): Removed unimplemented cx2341x API commands
The commands CX2341X_DEC_SET_AUDIO_OUTPUT, CX2341X_DEC_SET_AV_DELAY and
CX2341X_ENC_SET_3_2_PULLDOWN are not implemented in the Conexant firmware.
So these commands are removed. This also means that the V4L2_CID_MPEG_VIDEO_PULLDOWN
control in cx2341x.c and pvrusb2-hdw.c is removed.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:13 -02:00
Hermann Pitton 8387c66c7f V4L/DVB (4962): Add the Composite over S-Video input on the Asus P7131 Dual
This makes a second CVBS input available.

Signed-off-by: Hermann Pitton <hermann-pitton@arcor.de>
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:12 -02:00
Hermann Pitton 9160723ed6 V4L/DVB (4961): Add support for the ASUS P7131 remote control
Besides adding the board specific code, this patch moves
the RC5 decoding code from bt8xx to ir-functions.c to make it available 
for all drivers.

Signed-off-by: Marc Fargas <telenieko.telenieko.com>
Signed-off-by: Hermann Pitton <hermann-pitton@arcor.de>
Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-02-21 13:34:12 -02:00
Jean Delvare f1d2120487 [PATCH] i810fb: fix i810_check_params section mismatch
WARNING: drivers/video/i810/i810fb.o - Section mismatch: reference
to .init.data: from .text between 'i810_check_params' (at offset
0x1123) and 'encode_fix'

yres cannot be declared __devinitdata as it is used in
i810_check_params(), which isn't __devinit.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Acked-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:16 -08:00
Ben Dooks 5fc404e47b [PATCH] fb: SM501 framebuffer driver
Driver for the Silicon Motion SM501 multifunction device framebuffer
subsystem.

This driver supports both the CRT and LCD panel heads, with some simple
acceleration for the cursor plotting and support for screen panning.  There
is no current support for bitblt/drawing engines, which should be added at
a later date.

This has been tested on a number of configurations, including PCI and
generic-bus, on PPC, ARM and SH4

[akpm@linux-foundation.org: fix warnings]
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Vincent Sanders <vince@arm.linux.org.u.>
Acked-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:16 -08:00
Harald Welte d23c6c21af [PATCH] spi_s3c2410_gpio.c spi mode 2 and 3 support
Add transfer modes 2 and 3 to the S3C24XX gpio SPI driver

Signed-off-by: Harald Welte <laforge@openmoko.org>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:16 -08:00
David Brownell bb2d1c36c7 [PATCH] SPI controller build/warning fixes
The signature of the per-device cleanup() routine changed to remove its
const-ness.  Three new SPI controller drivers now need that change, to
eliminate build warnings.

This also fixes a build bug with atmel_spi on AT91 systems.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:16 -08:00
Jean Delvare 0bb92e6cd3 [PATCH] parport_pc: fix parport_pc_probe_port section warning
WARNING: drivers/parport/parport_pc.o - Section mismatch: reference
to .init.text: from .text between 'parport_pc_probe_port' (at offset
0x14f7) and 'parport_pc_unregister_port'

parport_dma_probe() cannot be declared __devinit as it is called
from parport_pc_probe_port() which isn't.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:16 -08:00
Adrian Bunk d5c1682f9f [PATCH] drivers/isdn/gigaset/: build asyncdata.o into the gigaset module
LD      drivers/isdn/gigaset/built-in.o
drivers/isdn/gigaset/ser_gigaset.o: In function `gigaset_m10x_send_skb':
(.text+0xe50): multiple definition of `gigaset_m10x_send_skb'
drivers/isdn/gigaset/usb_gigaset.o:(.text+0x0): first defined here
drivers/isdn/gigaset/ser_gigaset.o: In function `gigaset_m10x_input':
(.text+0x1121): multiple definition of `gigaset_m10x_input'
drivers/isdn/gigaset/usb_gigaset.o:(.text+0x2d1): first defined here
make[4]: *** [drivers/isdn/gigaset/built-in.o] Error 1

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:16 -08:00
David Brownell 5d4675a811 [PATCH] at91_rtc updates
Various bug fixes to the at91rm9200 RTC:

 - alarm:  setalarm() should pay attention to the "enabled" flag

 - init:  cleaner handling of the wakeup flags, which cpu init should
   really have set up.  Doing it here is just a workaround.

 - linkage:  since the at91_rtc driver probe() routine is in the init
   section, it should use platform_driver_probe() instead of leaving
   that pointer around in the driver struct after init section removal.

 - linkage:  likewise, remove() belongs in the exit section.

Among other things, the init and alarm changes ensure that this driver
handles the new sysfs "wakealarm" attribute properly.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:15 -08:00
David Brownell 32b49da46c [PATCH] rtc-sa1100 rtc_wklarm.enabled bugfixes
Some rtc-sa1100 bugfixes:

 - The read_alarm() method reports the rtc_wkalrm.enabled field properly.
   This patch is already in the handhelds.org tree.

 - And the set_alarm() method now handles that flag correctly, rather than
   making mismatched {en,dis}able_irq_wake() calls, which trigger runtime
   warning messages.  (Those calls are best made in suspend/resume methods.)

Note that while this SA1100/PXA RTC is fully capable of waking those ARM
processors from sleep states, that mechanism isn't properly supported on
either processor family, or in this driver.  Some boards have board-specific
PM glue providing partial workarounds for the weak generic PM support.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:15 -08:00
Dave Jones c066332fb1 [PATCH] loosen dependancy on rtc cmos
This option is useful for all of the X86 subarchs afaik (and especially
X86_GENERICARCH).

Signed-off-by: Dave Jones <davej@redhat.com>
Acked-by: David Brownell <david-b@pacbell.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:15 -08:00
Thomas Koeller cc79aa9d28 [PATCH] 8250: Fix GCC4 signed/unsigned mismatch warning
Signed-off-by: Thomas Koeller <thomas.koeller@baslerweb.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:15 -08:00
Randy Dunlap 23cac8debc [PATCH] tty: use NULL for ptrs
Fix sparse warning in tty_io:
drivers/char/tty_io.c:1536:34: warning: Using plain integer as NULL pointer

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:14 -08:00
Ben Dooks b6d6454fdb [PATCH] mfd: SM501 core driver
This driver provides the core functionality of the SM501, which is a
multi-function chip including two framebuffers, video acceleration, USB,
and many other peripheral blocks.

The driver exports a number of entries for the peripheral drivers to use.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Vincent Sanders <vince@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:14 -08:00
Miguel Ojeda 34173a4aad [PATCH] cfag12864b: fix crash when built-in and no parport present
The problem comes when ks0108/cfag12864b are built-in and no parallel port is
present.  ks0108_init() is called first, as it should be, but fails to load
(as there is no parallel port to use).

After that, cfag12864b_init() gets called, without knowing anything about
ks0108 failed, and calls ks0108_writecontrol(), which dereferences an
uninitialized pointer.

Init order is OK, I think.  The problem is how to stop cfag12864b_init() being
called if ks0108 failed to load.  modprobe does it for us, but, how when
built-in?

Signed-off-by: Miguel Ojeda Sandonis <maxextreme@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:14 -08:00
Alexey Dobriyan ae6b95d4d8 [PATCH] mwave: interesting flags savings
Flags from spin_lock_irqsave() are saved into global variable and restored
from it.  My gut feeling this is very racy.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:14 -08:00
Gerhard Dirschl 91e4ee381d [PATCH] pktcdvd: Correctly set cmd_len field in pkt_generic_packet
Fixes http://bugzilla.kernel.org/show_bug.cgi?id=7810 - a silly
copy-paste bug introduced by the latest change.

Signed-off-by: Gerhard Dirschl <gd@spherenet.de>
Cc: Peter Osterlund <petero2@telia.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:14 -08:00
Andrew Morton b446b60e4e [PATCH] rework reserved major handling
Several people have reported failures in dynamic major device number handling
due to the recent changes in there to avoid handing out the local/experimental
majors.

Rolf reports that this is due to a gcc-4.1.0 bug.

The patch refactors that code a lot in an attempt to provoke the compiler into
behaving.

Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:13 -08:00
Ralf Baechle 7b8f850beb [PATCH] Fix build errors if bitop functions are do {} while macros
If one of clear_bit, change_bit or set_bit is defined as a do { } while (0)
function usage of these functions in parenthesis like

  (foo_bit(23, &var))

while be expaned to something like

  (do { ... } while (0)}).

resulting in a build error.  This patch removes the useless parenthesis.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 17:10:12 -08:00
Linus Torvalds 91aa69315e Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (21 commits)
  natsemi: Support Aculab E1/T1 PMXc cPCI carrier cards
  natsemi: Add support for using MII port with no PHY
  skge: race with workq and RTNL
  Replace local random function with random32()
  s2io: RTNL and flush_scheduled_work deadlock
  8139too: RTNL and flush_scheduled_work deadlock
  sis190: RTNL and flush_scheduled_work deadlock
  r8169: RTNL and flush_scheduled_work deadlock
  [PATCH] ieee80211softmac: Fix setting of initial transmit rates
  [PATCH] bcm43xx: OFDM fix for rev 1 cards
  [PATCH] bcm43xx: Fix for 4311 and 02/07/07 specification changes
  [PATCH] prism54: correct assignment of DOT1XENABLE in WE-19 codepaths
  [PATCH] zd1211rw: Readd zd_addr_t cast
  [PATCH] bcm43xx: Fix for oops on resume
  [PATCH] bcm43xx: Ignore ampdu status reports
  [PATCH] wavelan: Use ARRAY_SIZE macro when appropriate
  [PATCH] hostap: Use ARRAY_SIZE macro when appropriate
  [PATCH] misc-wireless: Use ARRAY_SIZE macro when appropriate
  [PATCH] ipw2100: Use ARRAY_SIZE macro when appropriate
  [PATCH] bcm43xx: Janitorial change - remove two unused variables
  ...
2007-02-20 10:26:46 -08:00
Linus Torvalds a5527c6a58 Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight
* 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight:
  backlight: Remove bogus SYSFS dependency
  backlight: simplify corgi_bl locking
  backlight: Separate backlight properties from backlight ops pointers
  backlight: Clean up pmac_backlight handling
  backlight: Improve backlight selection for fbdev drivers
  backlight: Rework backlight/fb interaction simplifying, lots
  backlight: Remove unneeded backlight update_status calls
  backlight: Remove uneeded update_status call from chipsfb.c
  backlight/fbcon: Add FB_EVENT_CONBLANK
  backlight: Fix Kconfig entries
  backlight: Remove uneeded nvidia set_power calls
  backlight: Convert semaphore -> mutex
  backlight: Fix external uses of backlight internal semaphore
  backlight: Minor code cleanups for hp680_bl.c
  backlight: Minor code cleanups for corgi_bl.c
  backlight: Remove excessive (un)likelys
  backlight: Remove unneeded owner field
  backlight: Fix error handling
  backlight: Add Frontpath ProGear HX1050+ driver
  backlight: Add maintainer entry
2007-02-20 10:17:32 -08:00
Linus Torvalds d7f786e065 Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  [NET] Eliminate user-selectable CONFIG_MV643XX_ETH_[012]
  [MIPS] Drop __init from init_8259A()
  [MIPS] Fix Kconfig typo bug
  [MIPS] Fix double signal on trap and break instruction
  [MIPS] sigset_32 has been made redundand by compat_sigset_t.
  [MIPS] emma2rh: Remove needless <asm/i8259.h> inclusion.
  [MIPS] Add MTD device support for Cobalt
2007-02-20 10:14:29 -08:00
Geert Uytterhoeven e5717c48ed [PATCH] tty_register_driver: Remove incorrect and superfluous cast
tty_register_driver: Remove incorrect and superfluous cast (expected and passed
types are both const char *)

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-20 10:13:45 -08:00
Dale Farnsworth f00a3ec4d4 [NET] Eliminate user-selectable CONFIG_MV643XX_ETH_[012]
Remove the use of CONFIG_MV643XX_ETH_[012] variables on most platforms.
Instead, platform-specific code enables the ports supported by the
hardware.  After this patch, these config variables are only used in
arch/ppc, so also move them from drivers/net/Kconfig to arch/ppc/Kconfig.

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Acked-by: Jeff Garzik <jeff@garzik.org>
Cc: Paul Mackerras <paulus@samba.org>
2007-02-20 17:11:55 +00:00
Yoichi Yuasa c316eb1eee [MIPS] Add MTD device support for Cobalt
This patch has added MTD device support for Cobalt.
Moreover, removes old type FlashROM support.

Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2007-02-20 17:11:55 +00:00
Jeff Garzik 6606e17a7f Merge branch 'upstream-jgarzik' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream 2007-02-20 11:28:42 -05:00
Mark Brown 6aab44475a natsemi: Support Aculab E1/T1 PMXc cPCI carrier cards
Aculab E1/T1 PMXc cPCI carrier card cards present a natsemi on the cPCI
bus with an oversized EEPROM using a direct MII<->MII connection with no
PHY.  This patch adds a new device table entry supporting these cards.

Signed-Off-By: Mark Brown <broonie@sirena.org.uk>

Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-20 11:18:13 -05:00
Mark Brown 68c90166e4 natsemi: Add support for using MII port with no PHY
This patch provides code paths which allow the natsemi driver to use the
external MII port on the chip but ignore any PHYs that may be attached to it.
The link state will be left as it was when the driver started and can be
configured via ethtool.  Any PHYs that are present can be accessed via the MII
ioctl()s.

This is useful for systems where the device is connected without a PHY
or where either information or actions outside the scope of the driver
are required in order to use the PHYs.

Signed-Off-By: Mark Brown <broonie@sirena.org.uk>

Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-20 11:18:13 -05:00
Stephen Hemminger 208491d8f9 skge: race with workq and RTNL
If a workqueue function that needs RTNL is running when skge_down
is called then a deadlock is possible. Fix by only clearing the timer,
and handling the flush_scheduled_work on removal. This work queue is only
ever used for the old fiber based boards.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-20 11:18:13 -05:00
Ralf Baechle 8b5b467181 Replace local random function with random32()
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-20 11:18:13 -05:00
Francois Romieu 22747d6b41 s2io: RTNL and flush_scheduled_work deadlock
Mantra: don't use flush_scheduled_work with RTNL held.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-20 11:18:13 -05:00
Francois Romieu 83cbb4d257 8139too: RTNL and flush_scheduled_work deadlock
Your usual dont-flush_scheduled_work-with-RTNL-held stuff.

It is a bit different here since the thread runs permanently
or is only occasionally kicked for recovery depending on the
hardware revision.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-20 11:18:12 -05:00
Francois Romieu c014f6c8f8 sis190: RTNL and flush_scheduled_work deadlock
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-20 11:18:12 -05:00
Francois Romieu eb2a021c47 r8169: RTNL and flush_scheduled_work deadlock
flush_scheduled_work() in net_device->close has a slight tendency
to deadlock with tasks on the workqueue that hold RTNL.

rtl8169_close/down simply need the recovery tasks to not meddle
with the hardware while the device is going down.

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-02-20 11:18:12 -05:00
Richard Purdie 8f27489d11 backlight: Remove bogus SYSFS dependency
Remove a bogus SYSFS dependency from the backlight class

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2007-02-20 12:27:25 +00:00
Richard Purdie 40f5a0ce25 backlight: simplify corgi_bl locking
Now update_status has locking, we can remove the mutex from corgi_bl.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2007-02-20 09:26:54 +00:00
Richard Purdie 599a52d126 backlight: Separate backlight properties from backlight ops pointers
Per device data such as brightness belongs to the indivdual device
and should therefore be separate from the the backlight operation
function pointers. This patch splits the two types of data and
allows simplifcation of some code.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2007-02-20 09:26:53 +00:00
Richard Purdie 321709c599 backlight: Clean up pmac_backlight handling
Move the setting/unsetting of pmac_backlight into the
backlight core instead of doing it in each driver.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2007-02-20 09:26:40 +00:00
James Simmons e0e34ef7f0 backlight: Improve backlight selection for fbdev drivers
Improve backlight selection for fbdev drivers

Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2007-02-20 08:38:46 +00:00
Richard Purdie 37ce69a57f backlight: Rework backlight/fb interaction simplifying, lots
fb_info->bl_mutex is badly thought out and the backlight class doesn't
need it if the framebuffer/backlight register/unregister order is
consistent, particularly after the backlight locking fixes.

Fix the drivers to use the order:

backlight_device_register()
register_framebuffer()
unregister_framebuffer()
backlight_device_unregister()

and turn bl_mutex into a lock for the bl_curve data only.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2007-02-20 08:38:46 +00:00
Richard Purdie b5c6916b31 backlight: Remove unneeded backlight update_status calls
The backlight core listens for blanking events and triggers a
backlight_update_status call so these extra calls are not
needed and can be removed.

Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
2007-02-20 08:38:46 +00:00