Vlad Yasevich [Wed, 21 Feb 2007 10:06:19 +0000 (02:06 -0800)]
[SCTP]: Strike the transport before updating rto.
Once we reach a point where we exceed the max.path.retrans, strike the
transport before updating the rto. This will force transport switch at
the right time, instead of 1 retransmit too late.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Vlad Yasevich [Wed, 21 Feb 2007 10:06:04 +0000 (02:06 -0800)]
[SCTP]: Fix connection hang/slowdown with PR-SCTP
The problem that this patch corrects happens when all of the following
conditions are satisfisfied:
1. PR-SCTP is used and the timeout on the chunks is set below RTO.Max.
2. One of the paths on a multihomed associations is brought down.
In this scenario, data will expire within the rto of the initial
transmission and will never be retransmitted. However this data still
fills the send buffer and is counted against the association as outstanding
data. This causes any new data not to be sent and retransmission to not
happen.
The fix is to discount the abandoned data from the outstanding count and
peers rwnd estimation. This allows new data to be sent and a retransmission
timer restarted. Even though this new data will most likely expire within
the rto, the timer still counts as a strike against the transport and forces
the FORWARD-TSN chunk to be retransmitted as well.
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Michael Chan [Wed, 21 Feb 2007 07:25:40 +0000 (23:25 -0800)]
[TG3]: TSO workaround fixes.
1. Add race condition check after netif_stop_queue(). tg3_tx() runs
without netif_tx_lock and can race with tg3_start_xmit_dma_bug() ->
tg3_tso_bug().
2. Firmware TSO in 5703/5704/5705 also have the same TSO limitation,
i.e. they cannot handle TSO headers bigger than 80 bytes. Rename
TG3_FL2_HW_TSO_1_BUG to TG3_FL2_TSO_BUG and set this flag on
these chips as well.
3. Update version to 3.74.
Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Joe Jin [Tue, 20 Feb 2007 09:30:15 +0000 (01:30 -0800)]
[IPV6]: Adjust inet6_exit() cleanup sequence against inet6_init()
This patch for adjust inet6_exit() to inverse sequence to inet6_init().
At ipv6_init, it first create proc_root/net/dev_snmp6 entry by call
ipv6_misc_proc_init(), then call addrconf_init() to create the corresponding
device entry at this directory, but at inet6_exit, ipv6_misc_proc_exit()
called first, then call addrconf_init().
Signed-off-by: Joe Jin <joe.jin@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Noriaki TAKAMIYA [Tue, 20 Feb 2007 09:08:41 +0000 (01:08 -0800)]
[IPSEC]: More fix is needed for __xfrm6_bundle_create().
Fixed to set fl_tunnel.fl6_src correctly in xfrm6_bundle_create().
Signed-off-by: Noriaki TAKAMIYA <takamiya@po.ntts.co.jp> Acked-by: Masahide NAKAMURA <nakam@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Marcel Holtmann [Sat, 17 Feb 2007 22:58:57 +0000 (23:58 +0100)]
[Bluetooth] Make use of device_move() for RFCOMM TTY devices
In the case of bound RFCOMM TTY devices the parent is not available
before its usage. So when opening a RFCOMM TTY device, move it to
the corresponding ACL device as a child. When closing the device,
move it back to the virtual device tree.
Marcel Holtmann [Sat, 17 Feb 2007 22:58:53 +0000 (23:58 +0100)]
[Bluetooth] Add open and close callbacks for HID device
The open and close callbacks for the HID device are not optional, but
for the Bluetooth HID report mode support it is enough to add empty
dummy callbacks.
move_native_irqs tries to do the right thing when migrating irqs
by disabling them. However disabling them is a software logical
thing, not a hardware thing. This has always been a little flaky
and after Ingo's latest round of changes it is guaranteed to not
mask the apic.
So this patch fixes move_native_irq to directly call the mask and
unmask chip methods to guarantee that we mask the irq when we
are migrating it. We must do this as it is required by
all code that call into the path.
Since we don't know the masked status when IRQ_DISABLED is
set so we will not be able to restore it. The patch makes the code
just give up and trying again the next time this routing is called.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Acked-by: Suresh Siddha <suresh.b.siddha@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[PATCH] x86_64 irq: Safely cleanup an irq after moving it.
The problem: After moving an interrupt when is it safe to teardown
the data structures for receiving the interrupt at the old location?
With a normal pci device it is possible to issue a read to a device
to flush all posted writes. This does not work for the oldest ioapics
because they are on a 3-wire apic bus which is a completely different
data path. For some more modern ioapics when everything is using
front side bus delivery you can flush interrupts by simply issuing a
read to the ioapic. For other modern ioapics emperical testing has
shown that this does not work.
So it appears the only reliable way to know the last of the irqs from an
ioapic have been received from before the ioapic was reprogrammed is to
received the first irq from the ioapic from after it was reprogrammed.
Once we know the last irq message has been received from an ioapic
into a local apic we then need to know that irq message has been
processed through the local apics.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[PATCH] x86_64 irq: Add constants for the reserved IRQ vectors.
For the ISA irqs we reserve 16 vectors. This patch adds constants for
those vectors and modifies the code to use them. Making the code a
little clearer and making it possible to move these vectors in the future.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
The code in io_apic.c and in i8259.c currently hardcode the same
vector for the timer interrupt so there is no reason for a special
assignment for the timer as the setup for the i8259 already takes care
of this.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Currently assign_irq_vector works mostly by side effect and returns
the results of it's changes to the caller. Which makes for a lot of
arguments to pass/return and confusion as to what to do if you need
the status but you aren't calling assign_irq_vector.
This patch stops returning values from assign_irq_vector that can be
retrieved just as easily by examining irq_cfg, and modifies the
callers to retrive those values from irq_cfg when they need them.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[PATCH] x86_64 irq: Begin consolidating per_irq data in structures.
Currently the io_apic.c has several parallel arrays for different
kinds of data that can be know about an irq. The parallel arrays
make the code harder to maintain and make it difficult to remove
the static limits on the number of the number of irqs.
This patch pushes irq_data and irq_vector into a irq_cfg array and
updates the code to use it.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[PATCH] x86_64 irq: Use NR_IRQS not NR_IRQ_VECTORS
NR_IRQ_VECTORS is currently a compatiblity define set to NR_IRQs.
This patch updates the users of NR_IRQ_VECTORS to use NR_IRQs instead
so that NR_IRQ_VECTORS can be removed.
There is still shared code with arch/i386 that uses NR_IRQ_VECTORS
so we can't remove the #define just yet :(
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[PATCH] x86_64 irq: In __DO_ACTION perform the FINAL action for every entry.
If we have an irq that comes from multiple io_apic pins the FINAL action
(which is io_apic_sync or nothing) needs to be called for every entry or
else if the two pins come from different io_apics we may not wait until
after the action happens on the io_apic.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[PATCH] x86_64 irq: Simplfiy the set_affinity logic.
For some reason the code has been picking TARGET_CPUS when asked to
set the affinity to an empty set of cpus. That is just silly it's
extra work. Instead if there are no cpus to set the affinity to we
should just give up immediately. That is simpler and a little more
intuitive.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Currently we have two routines that do practically the same thing
setup_IO_APIC_irq and io_apic_set_pci_routing. This patch makes
setup_IO_APIC_irq the common factor of these two previous routines.
For setup_IO_APIC_irq all that was needed was to pass the trigger
and polarity to make the code a proper subset of io_apic_set_pci_routing.
Hopefully consolidating these two routines will improve maintenance
there were several differences that simply appear to be one routine
or the other getting it wrong.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This patch replaces all instances of "set_native_irq_info(irq, mask)"
with "irq_desc[irq].affinity = mask". The latter form is clearer
uses fewer abstractions, and makes access to this field uniform
accross different architectures.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Uwe Bugla reports that he cannot mount a floppy drive any more, and Jiri
Slaby bisected it down to this commit.
Benjamin LaHaise also points out that this is a big hot-path, and that
interrupt delivery while idle is very common and should not go through
all these expensive gyrations.
Fix up conflicts in arch/i386/kernel/apic.c and arch/i386/kernel/irq.c
due to other unrelated irq changes.
* master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
[CIFS] One line missing from previous commit
[CIFS] mtime bounces from local to remote when cifs nocmtime i_flags overwritten
[CIFS] fix &&/& typo in cifs_setattr()
As Thomas Gleixner reports:
"e1000 is not working anymore. ifup fails permanentely.
ADDRCONF(NETDEV_UP): eth0: link is not ready
nothing else"
The broken commit was identified with "git bisect".
Auke Kok says:
"I think we need to drop this now. The report that says that this
*fixes* something might have been on regular interrupts only. I
currently suspect that it breaks all MSI interrupts, which would make
sense if I look a the code. Very bad indeed."
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com> Acked-by: Auke Kok <auke-jan.h.kok@intel.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This also meant that a new bunch of IR bytes that were previously lost
are now received, which allowed me to better understand how the MSP430
chip works. Unfortunately it also means that the current driver gets
some assumptions wrong and might generate double keypresses for one IR
command.
The attached patch fixes this by throwing away the repeat bytes and by
associating the correct command and device bytes.
Signed-off-by: David Härdeman <david@hardeman.nu> Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Marcel Siegert [Tue, 13 Feb 2007 12:46:55 +0000 (09:46 -0300)]
V4L/DVB (5244): Dvbdev: fix illegal re-usage of fileoperations struct
Arjan van de Ven <arjan@infradead.org> reported an illegal re-usage of
the fileoperations struct if more than one dvb device (e.g. frontend) is
present.
This patch fixes this issue.
It allocates a new fileoperations struct each time a device is
registered and copies the default template fileops.
Chris Rankin [Tue, 6 Feb 2007 23:29:07 +0000 (20:29 -0300)]
V4L/DVB (5178): Avoid race when deregistering the IR control for dvb-usb
The work item function is dvb_usb_read_remote_control():
INIT_WORK(&d->rc_query_work, dvb_usb_read_remote_control, d);
and the last piece of work it does is:
schedule_delayed_work(&d->rc_query_work,msecs_to_jiffies(d->props.rc_interval));
Hence you need to call "cancel_rearming_delayed_work()" and not
"cancel_delayed_work()", correct? I certainly haven't seen this oops
reoccur since I applied this patch.
Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Antti Palosaari [Sat, 27 Jan 2007 19:41:35 +0000 (16:41 -0300)]
V4L/DVB (5240): Qt1010: use i2c_gate_ctrl where appropriate
This patch adds calls to i2c_gate_ctrl in the qt1010 dvb tuner module,
while removing the temporary hack in au6610 and gl861.
Tested successfully against fi-Oulu frequencies with
MSI Megasky 580 GL861 and Sigmatek DVB-110 AU6610.
Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Antti Palosaari [Sun, 21 Jan 2007 18:56:10 +0000 (15:56 -0300)]
V4L/DVB (5237): Dvb: add new qt1010 tuner module
gl861: (MSI Megasky)
- hack for enable ZL10353 / QT1010 I2C gate
- use new QT1010 module instead of old code
au6610: (Sigmatek DVB-110)
- hack for enable ZL10353 / QT1010 I2C gate
- use new QT1010 module instead of old code
Tested successfully with au6610 and gl861 devices against fi-Yllas
frequencies. Now it locks perfectly with both devices.
There is a "hack" to enable probable i2c gate in zl10535
demodulator. QT1010 doesn't respond to any i2c messages before we
write 0x1a to demodulator register 0x62. In my understanding this
should be fixed to demodulator code.
Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Antti Palosaari [Sun, 5 Nov 2006 19:05:38 +0000 (16:05 -0300)]
V4L/DVB (5236): Initial support for Sigmatek DVB-110 DVB-T
This patch adds driver for Sigmatek DVB-110 USB DVB-T stick. Stick has based
on hardware of Qtuantek QT1010 tuner, Zarlink ZL10353 (Intel CE 6353)
demodulator and Alcor Micro AU6610 DVB-T USB controller. HW is rather similar
as used in MSI Megasky GL861.
Currently, the driver works only in USB 2.0. In my understanding USB 1.1 is
also supported by hw but I cannot test it due to lack of USB 1.1 port. Device
supports only isochronous mode transfers. There is also eeprom in usb
controller(at least in address range 0x80 - 0xbf) for storing data, eg.
firmware. Anyway, firmware loading is not used / required by the device.
There seems to be at least one unknown I2C device in address 0xa0, probably
remote control or GPIO. Windows drivers reads registers from 0x00 to 0x07
from this unknown address.
Driver is based on gl861 module. Tuner has a lot of problems to lock with
megasky qt1010 module with this hardware with some broadcasting standards.
Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jan Nijs [Sat, 7 Oct 2006 19:29:54 +0000 (16:29 -0300)]
V4L/DVB (5233): Gl861: correct address of the bulk endpoint
The megasky 580 based on gl861 has three endpoints:
- 0x81 BULK/ISOC IN MPEG2 TS
- 0x83 INT IN remote control receiver
- 0x02 BULK OUT bulk control endpoint
It doesn't look like the bulk endpoint is used, but better to
have the correct one in the config.
Signed-off-by: Jan Nijs <jan.nijs@scarlet.be> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jan Nijs [Sat, 7 Oct 2006 04:25:53 +0000 (01:25 -0300)]
V4L/DVB (5232): Gl861: correct oops when loading module
This patch moves the DVB_USB_IS_AN_I2C_ADAPTER flag from the adapter
properties to the device properties.
Without this patch I get an OOPS when the gl861 driver tries to
access any registers.
Signed-off-by: Jan Nijs <jan.nijs@scarlet.be> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Tue, 3 Oct 2006 20:19:30 +0000 (17:19 -0300)]
V4L/DVB (5229): Gl861: use qt1010_tuner_attach function from qt1010.h
The gl861_tuner_attach function is not specific to this device.
This patch removes gl861_tuner_attach, and replaces it with
qt1010_tuner_attach from the qt1010 header file.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Carl Lundqvist [Tue, 3 Oct 2006 20:09:30 +0000 (17:09 -0300)]
V4L/DVB (5221): Dvb-usb: initial support for MSI Mega Sky 580 DVB-T based on GL861
This patch adds support for MSI Mega Sky 580 / GL861 DVB-T USB2.0
Except for the 2 lines added to zl10353.c, zl10353_reset_attach needs
to be changed. If I read the code correctly setting parallel_ts will
take care of the 3rd byte, but the 2nd byte needs to be 0x0b instead
of 0x03 too. I guess these changes needs to be done only for this
device, not sure how to do that.
The zl10353 changes have been split apart from this patch, into the next
patch, soon to follow.
Signed-off-by: Carl Lundqvist <comabug@gmail.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Implement trl nominal rate calculation to Zarlink ZL10353 demod,
based on calculation used in Zarlink MT352.
This adds support for 6 and 8MHz bandwidth transponders.
Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Chris Pascoe [Sat, 10 Feb 2007 13:17:57 +0000 (10:17 -0300)]
V4L/DVB (5215): Experimental support for signal strength/BER/uncorrectable count
After studying many hours worth of register dumps of MT352 and ZL10353 fed
with identically damaged RF signals I have made an educated guess at which
registers contain the AGC level, bit error rate and uncorrectable error
count values.
Implement the IOCTLs that return these values to userspace.
Signed-off-by: Chris Pascoe <c.pascoe@itee.uq.edu.au> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Thu, 8 Feb 2007 05:02:53 +0000 (02:02 -0300)]
V4L/DVB (5212): Pvrusb2: Be more forgiving about encoder firmware size
The pvrusb2 driver previously rejected encoder firmware whose size was
not a multiple of 8192. But this is a false check because it's
possible to find cx23416 firmware whose size doesn't conform to this
limit. So change the firmware loader implementation to be more
forgiving of the image size.
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Herbert Poetzl [Thu, 8 Feb 2007 17:32:43 +0000 (14:32 -0300)]
V4L/DVB (5208): Kthread API conversion for dvb_frontend and av7110
dvb kernel_thread to kthread API port.
It is running fine here, including module load/unload and software suspend
(which doesn't work as expected with or without this patch :).
I didn't convert the dvb_ca_en50221 as I do not have such an interface, but
if the conversion process is fine with the v4l-dvb maintainers, it should not
be a problem to send a patch for that too ... Acked-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Herbert Poetzl <herbert@13thfloor.at> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Schimek [Wed, 7 Feb 2007 12:15:01 +0000 (09:15 -0300)]
V4L/DVB (5204): Change videodev2.h licence to dual GPL/BSD
videodev2.h contains just the V4L2 API structs and defines.
By allowing this header file to be dual GPL/BSD will enable sharing
userspace apps between Linux and *BSD systems. It will also allow developing
newer BSD licensed drivers that can be shared on Linux and *BSD.
It should be noticed that most of the current V4L drivers, and v4l core
itself are GPL only. This won't be changed by this patch.
Signed-off-by: Michael H. Schimek <mschimek@gmx.at> Signed-off-by: Gerd Hoffmann <kraxel@suse.de> Signed-off-by: Bill Dirks <bill@thedirks.org> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Martin Rubli <mrubli@gmx.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Ahmed S. Darwish [Thu, 15 Feb 2007 00:57:42 +0000 (22:57 -0200)]
V4L/DVB (5202): DVB: Use ARRAY_SIZE macro when appropriate
Use ARRAY_SIZE macro already defined in kernel.h
Signed-off-by: Ahmed S. Darwish <darwish.07@gmail.com> Acked-by: Manu Abraham <manu@linuxtv.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Andrew Morton [Wed, 7 Feb 2007 00:51:14 +0000 (21:51 -0300)]
V4L/DVB (5196): VIDEO_BUF depends on PCI
m68k allmodconfig:
drivers/media/video/video-buf.c: In function 'videobuf_queue_pci':
drivers/media/video/video-buf.c:396: error: 'pci_map_sg' undeclared (first use in this function)
drivers/media/video/video-buf.c:396: error: (Each undeclared identifier is reported only once
drivers/media/video/video-buf.c:396: error: for each function it appears in.)
drivers/media/video/video-buf.c:399: error: 'pci_dma_sync_sg_for_cpu' undeclared (first use in this function)
drivers/media/video/video-buf.c:401: error: 'pci_unmap_sg' undeclared (first use in this function)
drivers/media/video/video-buf.c: In function 'videobuf_pci_dma_map': Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
V4L/DVB (5193): Remove the unused kernel config option VIDEO_VIDEOBUF
Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Oliver Endriss [Fri, 2 Feb 2007 22:12:53 +0000 (19:12 -0300)]
V4L/DVB (5188): Add separate configuration data for subsystem 0x13c2:0x1012
Fixed problem reported by Teemu Suikki:
After a device with subsystem 0x13c2:0x1012 has been installed,
devices with subsystem id 0x13c2:0x1011 did not work anymore.
Reason:
The driver for 0x13c2:0x1012 modified shared configuration data.
Fix:
Use separate configuration data for those devices.
Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sat, 3 Feb 2007 09:35:07 +0000 (06:35 -0300)]
V4L/DVB (5183): Fix CC handling in VIDIOC_INT_G_VBI_DATA
When capturing a 60 Hz input the internal field ID is inverted. The
VIDIOC_INT_G_VBI_DATA didn't take that into account and so returned
XDS instead of CC and vice versa.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sat, 3 Feb 2007 06:23:44 +0000 (03:23 -0300)]
V4L/DVB (5182): Remove #if 0 section from videodev2.h
Remove a section containing basically ideas for future sliced VBI standards.
This can be resurrected should any of this be actually implemented. For now
it only pollutes this header file.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sat, 3 Feb 2007 06:19:14 +0000 (03:19 -0300)]
V4L/DVB (5181): Sliced VBI API no longer marked experimental.
The Sliced VBI API is no longer marked experimental. Introduced in 2.6.14
and with only a single modification in 2.6.19 I think we can consider this
API to be solid.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Support 64 bit register IDs internally. Only allow root access to
this API (for both set and get). Note that actual 64 bit access only
becomes possible once the definition for v4l2_register is updated, but
this change clears the way for it from the viewpoint of the pvrusb2
driver.
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Sun, 28 Jan 2007 18:38:55 +0000 (15:38 -0300)]
V4L/DVB (5172): Pvrusb2: Control protocol cleanup
Several special-case FX2 commands were being issued through
pvr2_write_u16() and pvr2_write_8(), but there's really nothing
special case about them. These date from a very early time in the
driver development. This patch removes these functions and replaces
their use with calls to pvr2_send_request.
Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Michael Krufky [Mon, 22 Jan 2007 05:17:55 +0000 (02:17 -0300)]
V4L/DVB (5169): Pvrusb2: Use macro names for FX2 commands
This is a maintainability cleanup; use nice names for all the FX2
commands instead of raw bytes. This way we can easily find where we
issue FX commands.
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Trent Piepho [Wed, 31 Jan 2007 02:26:01 +0000 (23:26 -0300)]
V4L/DVB (5166): Remove obsolete alias defines of CONFIG_* settings
The out of tree v4l-dvb build system didn't always override the kernel's
configuration settings with v4l-dvb's settings correctly. To work around
this, makefiles would define some new macro based on the setting of a
config variable. e.g. the pwc Makefile would define CONFIG_PWC_DEBUG if
CONFIG_USB_PWC_DEBUG (which is defined via Kconfig) was set.
The v4l-dvb build system should now always override correctly, and this
is no longer necessary. This patch gets ride of these extra defines and
just uses the CONFIG_* settings directly.
Trent Piepho [Wed, 31 Jan 2007 02:25:46 +0000 (23:25 -0300)]
V4L/DVB (5164): Compat: Handle input_register_device() change and some others
input_register_device() was changed to return an error code instead of
being void in 2.6.15. Handle it with a macro wrapper in config.h. For
this to work, linux/input.h must be included before config.h. This
required some trivial header re-ordering in budget-ci.c and ttusb_dec.c.
In kernel 2.6.15-rc1 a helper function called setup_timer() was added to
linux/timer.h. Add to compat.h, but require that linux/timer.h be
included first to give the definition of struct timer_list.
A new 4GB DMA zone, __GFP_DMA32, was added in 2.6.15-rc2. Alias it to
__GFP_DMA on older kernels.
Handle another 2.6.15 "input_dev->dev to input_dev->cdev.dev" change for
some recently added code in cinergyT2.c.
Trent Piepho [Wed, 31 Jan 2007 02:25:41 +0000 (23:25 -0300)]
V4L/DVB (5163): Add checks for CAP_SYS_ADMIN to VIDIOC_DBG_G_REGISTER
Before, root privileges were only needed to set hardware registers, not
to read them. On some hardware, reading from the wrong place at the
wrong time can hang the machine. So, to be consistent, root privileges
are required to read registers on all hardware.
Trent Piepho [Wed, 31 Jan 2007 01:47:18 +0000 (22:47 -0300)]
V4L/DVB (5162): Change VIDIOC_DBG_[SG]_REGISTER ioctls' reg address to 64 bits
Maybe someday there will be a device with a register address space >
32-bits, or maybe an i2c device which uses a protocol > 4 bytes long to
address its registers.