Adrian Bunk [Mon, 21 Jul 2008 19:33:48 +0000 (16:33 -0300)]
V4L/DVB (8494): make cx25840_debug static
cx25840_debug can now become static.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
roel kluin [Tue, 22 Jul 2008 00:29:46 +0000 (21:29 -0300)]
V4L/DVB (8493): mt20xx: test below 0 on unsigned lo1a and lo2a
lo1a and lo2a are unsigned ints so these tests won't work.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Devin Heitmueller [Sat, 26 Jul 2008 14:04:33 +0000 (11:04 -0300)]
V4L/DVB (8492): Add support for the ATI TV Wonder HD 600
em28xx-cards.c
em28xx-dvb.c
em28xx.h
- Add support for the ATI TV Wonder HD 600, based on a 94 email exchange and
USB traces provided by Ronnie Bailey
Thanks to Ronnie Bailey <purevw@wtxs.net> for testing the changes
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jaime Velasco Juan [Tue, 22 Jul 2008 15:28:36 +0000 (12:28 -0300)]
V4L/DVB (8491): stkwebcam: Always reuse last queued buffer
This change keeps the video stream going on when the application
is slow queuing buffers, instead of spamming dmesg and hanging.
Fixes a problem with aMSN reported by Samed Beyribey <beyribey@gmail.com>
Signed-off-by: Jaime Velasco Juan <jsagarribay@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Dean Anderson [Tue, 22 Jul 2008 17:43:27 +0000 (14:43 -0300)]
V4L/DVB (8490): s2255drv Sensoray 2255 driver fixes
This patch fixes timer issues in driver disconnect.
It also removes the restriction of one user per channel at a time.
Thanks to Oliver Neukum and Mauro Chehab for finding these issues.
Locking of video stream partly based on saa7134 driver.
Signed-off-by: Dean Anderson <dean@sensoray.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
reinhard schwab [Sat, 26 Jul 2008 13:47:00 +0000 (10:47 -0300)]
V4L/DVB (8489): add dvb-t support for terratec cinergy hybrid T usb xs
This patch adds dvbt support for the terratec cinergy hybrid T usb xsstick.
Thanks to Devin Heitmueller and Mauro Chehab for guiding me.
Signed-off-by: Reinhard Schwab <reinhard.schwab@aon.at>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Fri, 25 Jul 2008 10:39:54 +0000 (07:39 -0300)]
V4L/DVB (8488): videodev: remove some CONFIG_VIDEO_V4L1_COMPAT code from v4l2-dev.h
The video_device_create_file and video_device_remove_file functions can be
removed from v4l2-dev.h, removing the dependency on videodev.h in v4l2-dev.h.
Also removed a few more videodev.h includes that should have been videodev2.h.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Guennadi Liakhovetski [Sat, 19 Jul 2008 10:54:43 +0000 (07:54 -0300)]
V4L/DVB (8488a): Add myself as a maintainer of the soc-camera subsystem
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Fri, 25 Jul 2008 08:32:50 +0000 (05:32 -0300)]
V4L/DVB (8487): videodev: replace videodev.h includes by videodev2.h where possible
Several V4L2 drivers still included videodev.h. Fix this.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Adrian Bunk [Fri, 25 Jul 2008 07:26:31 +0000 (04:26 -0300)]
V4L/DVB (8485): v4l-dvb: remove broken PlanB driver
The PlanB driver has been broken since around May 2004. No one stepped
in to maintain it, so it is now being removed.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Acked-by: Michel Lanners <mlan@cpu.lu>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Tue, 22 Jul 2008 19:25:35 +0000 (16:25 -0300)]
V4L/DVB (8484): videodev: missed two more usages of the removed 'owner' field.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Mon, 21 Jul 2008 10:51:45 +0000 (07:51 -0300)]
V4L/DVB (8483): Remove obsolete owner field from video_device struct.
According to an old comment this should have been removed in 2.6.15.
Better late than never...
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Mon, 21 Jul 2008 05:57:38 +0000 (02:57 -0300)]
V4L/DVB (8482): videodev: move all ioctl callbacks to a new v4l2_ioctl_ops struct
All ioctl callbacks are now stored in a new v4l2_ioctl_ops struct. Drivers fill in
a const struct v4l2_ioctl_ops and video_device just contains a const pointer to it.
This ensures a clean separation between the const ops struct and the non-const
video_device struct.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Tue, 22 Jul 2008 18:50:31 +0000 (15:50 -0300)]
V4L/DVB (8479): tveeprom/ivtv: fix usage of has_ir field
has_ir was set to and compared to -1 in several cases, even though it is
an u32. ivtv also contained a FIXME for an old kernel that could be
removed.
Thanks to Roel Kluin for creating an initial patch for this. Although
I chose a different solution here it did help in pointing out the problem.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Wed, 23 Jul 2008 08:09:15 +0000 (05:09 -0300)]
V4L/DVB (8477): v4l: remove obsolete audiochip.h
Converted the last users of audiochip.h to the v4l2-chip-ident.h header
and remove the now unused audiochip.h header.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Fri, 25 Jul 2008 22:50:52 +0000 (19:50 -0300)]
V4L/DVB (8475): pvrusb2: Cosmetic macro fix (benign)
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mike Isely [Fri, 25 Jul 2008 22:35:31 +0000 (19:35 -0300)]
V4L/DVB (8474): pvrusb2: Enable IR chip on HVR-1900 class devices
The Zilog IR chip on HVR-1900 devices is held in reset when the device
initializes. We have to bring this chip out of reset before LIRC has
any chance of operating the chip. So do it.
Signed-off-by: Mike Isely <isely@pobox.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Wed, 2 Jul 2008 00:18:00 +0000 (21:18 -0300)]
V4L/DVB (8472): cx23885: SRAM changes for the 885 and 887 silicon parts.
In a previous patch I merged both memory maps into a single struct, believing
that they could be combined. We've since found problems with streaming
multiple channels on the 885. I'm restoring the multiple memory map structs
- in line with the windows driver.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Tue, 1 Jul 2008 13:43:27 +0000 (10:43 -0300)]
V4L/DVB (8471): cx23885: Reallocated the sram to avoid concurrent VIDB/C issues.
This may be cx23885 chip specific and may not work on the cx23887.
Analog and mpeg encoder streaming are still to be tested.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Tue, 1 Jul 2008 01:17:05 +0000 (22:17 -0300)]
V4L/DVB (8470): cx23885: Add DViCO HDTV7 Dual Express tuner callback support.
Ensure the correct tuner gets reset on demand.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Tue, 1 Jul 2008 00:23:50 +0000 (21:23 -0300)]
V4L/DVB (8469): cx23885: FusionHDTV7 Dual Express toggle reset.
Ensure the tuners and demods are brought in and out of reset during
driver startup.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Mon, 30 Jun 2008 23:58:38 +0000 (20:58 -0300)]
V4L/DVB (8468): cx23885: Ensure the second transport port is enabled for streaming.
It was previously disabled pending a bugfix, which has since been
resolved.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Mon, 30 Jun 2008 23:54:34 +0000 (20:54 -0300)]
V4L/DVB (8467): cx23885: Minor cleanup to the debuging output for a specific register.
Don't display the register when it's not appropriate for the specific port.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Sat, 28 Jun 2008 03:58:35 +0000 (00:58 -0300)]
V4L/DVB (8466): cx23885: Bugfix - DVB Transport cards using DVB port VIDB/TS1 did not stream.
Certain DVB cards that have demodulators on TS1/VIDB were not streaming packets.
This ensure the pin directions on PAD_CTRL are set correctly, solving the issue.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Sat, 28 Jun 2008 03:52:45 +0000 (00:52 -0300)]
V4L/DVB (8465): cx23885: Ensure PAD_CTRL is always reset to a sensible default
PAD_CTRL controls TS1 and TS2 input and output states, if the register
became corrupt the driver was never able to recover.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Steven Toth [Sat, 28 Jun 2008 03:48:18 +0000 (00:48 -0300)]
V4L/DVB (8464): cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1
With the HVR1800, trying to use video0 and video1 simultaneously caused
buffer corruption in the PCIe bridge. This fix reallocates video1
buffer locations to avoid the issue.
Signed-off-by: Steven Toth <stoth@hauppauge.com>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Andy Walls [Fri, 25 Jul 2008 18:03:08 +0000 (15:03 -0300)]
V4L/DVB (8462): cx18: Lock the aux PLL to the video pixle rate for analog captures
cx18: Lock the aux PLL to the video pixel rate for analog captures. The
datasheet for the CX25840 says this is important for MPEG encoding applications.
To ensure the PLL locking was correct, also fixed the aux PLL's multiplier to
be computed based on a precise crystal freq of 4.5 MHz/286 * 455/2 * 8 =
28636363.6363... instead of the imporperly rounded
28636363.
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Andy Walls [Wed, 23 Jul 2008 23:28:23 +0000 (20:28 -0300)]
V4L/DVB (8461): cx18: Fix 32 kHz audio sample output rate for analog tuner SIF input
cx18: Fix 32 kHz audio sample output rate for analog tuner SIF input so it
works. The AUX_PLL VCO was being operated at 196.6 MHz out of the spec'ed
200-600 MHz range. Fixed the multipler and post dividers to operate the VCO
within specification and added comments on how magic numbers are derived.
Thanks to Hans Verkuil for pointing out this interesting problem to solve.
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans de Goede [Wed, 23 Jul 2008 10:04:39 +0000 (07:04 -0300)]
V4L/DVB (8458): gspca_sonixb remove one more no longer needed special case from the code
gspca_sonixb remove one more no longer needed special case from the code
Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Andoni Zubimendi [Tue, 22 Jul 2008 11:39:24 +0000 (08:39 -0300)]
V4L/DVB (8457): gspca_sonixb remove some no longer needed sn9c103+ov7630 special cases
gspca_sonixb remove some no longer needed sn9c103+ov7630 special cases
Signed-off-by: Andoni Zubimendi <andoni.zubimendi@gmail.com>
Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans de Goede [Tue, 22 Jul 2008 10:13:21 +0000 (07:13 -0300)]
V4L/DVB (8456): gspca_sonixb remove non working ovXXXX contrast, hue and saturation ctrls
gspca_sonixb remove non working ovXXXX contrast, hue and saturation ctrls
Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans de Goede [Tue, 22 Jul 2008 10:09:33 +0000 (07:09 -0300)]
V4L/DVB (8455): gspca_sonixb sn9c103 + ov7630 autoexposure and cleanup
Andoni Zubimendi has been doing some testing with his sn9c103 cam with
ov7630 sensor, and with this patch the exposure setting and autoexposure now
work.
This patch also removes some special cases in the shared ov6650 / ov7630 code
which now are handled the same for both sensors and it adds a new special case
which stops us from changing the hsync / vsync polarity settings from their
default on the ov7630 (which we were doing as a side-effect of using the ov6650
exposure code for the ov7630).
Last this patch removes the superficial difference between the OV7630 and
OV7630_3 sensors.
Signed-off-by: Andoni Zubimendi <andoni.zubimendi@gmail.com>
Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Adrian Bunk [Tue, 22 Jul 2008 02:17:36 +0000 (23:17 -0300)]
V4L/DVB (8453): sms1xxx: dvb/siano/: cleanups
This patch contains the following cleanups:
- mark smscore_module_init() as __init
- mark smscore_module_exit as __exit
- make the following needlessly global code static:
- smscoreapi.c: struct g_smscore_notifyees
- smscoreapi.c: struct g_smscore_devices
- smscoreapi.c: struct g_smscore_deviceslock
- smscoreapi.c: struct g_smscore_registry
- smscoreapi.c: struct g_smscore_registrylock
- smscoreapi.c: smscore_module_init()
- smscoreapi.c: smscore_module_exit()
- smsdvb.c: struct g_smsdvb_clients
- smsdvb.c: struct g_smsdvb_clientslock
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Thu, 24 Jul 2008 17:37:55 +0000 (14:37 -0300)]
V4L/DVB (8451): dw2102: fix in-kernel compilation
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Thu, 24 Jul 2008 17:05:50 +0000 (14:05 -0300)]
Merge ../linux-2.6
Mauro Carvalho Chehab [Mon, 7 Jul 2008 23:04:29 +0000 (20:04 -0300)]
V4L/DVB (8234a): uvcvideo: Fix build for uvc input
Fix a bug introduced by some trouble on my -git tree that resulted on a hunk to
be lost (probably caused by some rebase).
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Linus Torvalds [Thu, 24 Jul 2008 03:39:21 +0000 (20:39 -0700)]
Merge branch 'x86/auditsc' of git://git./linux/kernel/git/frob/linux-2.6-roland
* 'x86/auditsc' of git://git.kernel.org/pub/scm/linux/kernel/git/frob/linux-2.6-roland:
i386 syscall audit fast-path
x86_64 ia32 syscall audit fast-path
x86_64 syscall audit fast-path
x86_64: remove bogus optimization in sysret_signal
Linus Torvalds [Thu, 24 Jul 2008 02:36:53 +0000 (19:36 -0700)]
Merge branch 'sched/for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip
* 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
sched: hrtick_enabled() should use cpu_active()
sched, x86: clean up hrtick implementation
sched: fix build error, provide partition_sched_domains() unconditionally
sched: fix warning in inc_rt_tasks() to not declare variable 'rq' if it's not needed
cpu hotplug: Make cpu_active_map synchronization dependency clear
cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)
sched: rework of "prioritize non-migratable tasks over migratable ones"
sched: reduce stack size in isolated_cpu_setup()
Revert parts of "ftrace: do not trace scheduler functions"
Fixed up conflicts in include/asm-x86/thread_info.h (due to the
TIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and
kernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()
introduction).
Linus Torvalds [Thu, 24 Jul 2008 01:37:44 +0000 (18:37 -0700)]
Merge branch 'cpus4096-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip
* 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (31 commits)
NR_CPUS: Replace NR_CPUS in speedstep-centrino.c
cpumask: Provide a generic set of CPUMASK_ALLOC macros, FIXUP
NR_CPUS: Replace NR_CPUS in cpufreq userspace routines
NR_CPUS: Replace per_cpu(..., smp_processor_id()) with __get_cpu_var
NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genapic_flat_64.c
NR_CPUS: Replace NR_CPUS in arch/x86/kernel/genx2apic_uv_x.c
NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/proc.c
NR_CPUS: Replace NR_CPUS in arch/x86/kernel/cpu/mcheck/mce_64.c
cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c, fix
cpumask: Use optimized CPUMASK_ALLOC macros in the centrino_target
cpumask: Provide a generic set of CPUMASK_ALLOC macros
cpumask: Optimize cpumask_of_cpu in lib/smp_processor_id.c
cpumask: Optimize cpumask_of_cpu in kernel/time/tick-common.c
cpumask: Optimize cpumask_of_cpu in drivers/misc/sgi-xp/xpc_main.c
cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/ldt.c
cpumask: Optimize cpumask_of_cpu in arch/x86/kernel/io_apic_64.c
cpumask: Replace cpumask_of_cpu with cpumask_of_cpu_ptr
Revert "cpumask: introduce new APIs"
cpumask: make for_each_cpu_mask a bit smaller
net: Pass reference to cpumask variable in net/sunrpc/svc.c
...
Fix up trivial conflicts in drivers/cpufreq/cpufreq.c manually
Linus Torvalds [Thu, 24 Jul 2008 01:34:13 +0000 (18:34 -0700)]
Merge branch 'core/softlockup-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip
* 'core/softlockup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
softlockup: fix invalid proc_handler for softlockup_panic
softlockup: fix watchdog task wakeup frequency
softlockup: fix watchdog task wakeup frequency
softlockup: show irqtrace
softlockup: print a module list on being stuck
softlockup: fix NMI hangs due to lock race - 2.6.26-rc regression
softlockup: fix false positives on nohz if CPU is 100% idle for more than 60 seconds
softlockup: fix softlockup_thresh fix
softlockup: fix softlockup_thresh unaligned access and disable detection at runtime
softlockup: allow panic on lockup
Linus Torvalds [Thu, 24 Jul 2008 01:24:08 +0000 (18:24 -0700)]
Merge branch 'devel' of /home/rmk/linux-2.6-arm
* 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (85 commits)
[ARM] pxa: add base support for PXA930 Handheld Platform (aka SAAR)
[ARM] pxa: add base support for PXA930 Evaluation Board (aka TavorEVB)
[ARM] pxa: add base support for PXA930 (aka Tavor-P)
[ARM] Update mach-types
[ARM] pxa: make littleton to use the new smc91x platform data
[ARM] pxa: make zylonite to use the new smc91x platform data
[ARM] pxa: make mainstone to use the new smc91x platform data
[ARM] pxa: make lubbock to use new smc91x platform data
[NET] smc91x: prepare SMC_USE_PXA_DMA to be specified in platform data
[NET] smc91x: prepare for SMC_IO_SHIFT to be a platform configurable variable
[NET] smc91x: add SMC91X_NOWAIT flag to platform data
[NET] smc91x: favor the use of SMC91X_USE_* instead of SMC_CAN_USE_*
[NET] smc91x: remove "irq_flags" from "struct smc91x_platdata"
[ARM] 5146/1: pxa2xx: convert all boards to call pxa2xx_transceiver_mode helper
Support for LCD on e740 e750 e400 and e800 e-series PDAs
E-series UDC support
PXA UDC - allow use of inverted GPIO for pullup
Add e350 support
Fix broken e-series build
E-series GPIO / IRQ definitions.
...
Roland McGrath [Tue, 24 Jun 2008 11:16:52 +0000 (04:16 -0700)]
i386 syscall audit fast-path
This adds fast paths for 32-bit syscall entry and exit when
TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
These paths does not need to save and restore all registers as
the general case of tracing does. Avoiding the iret return path
when syscall audit is enabled helps performance a lot.
Signed-off-by: Roland McGrath <roland@redhat.com>
Roland McGrath [Tue, 24 Jun 2008 08:13:31 +0000 (01:13 -0700)]
x86_64 ia32 syscall audit fast-path
This adds fast paths for 32-bit syscall entry and exit when
TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
These paths does not need to save and restore all registers as
the general case of tracing does. Avoiding the iret return path
when syscall audit is enabled helps performance a lot.
Signed-off-by: Roland McGrath <roland@redhat.com>
Roland McGrath [Mon, 23 Jun 2008 22:37:04 +0000 (15:37 -0700)]
x86_64 syscall audit fast-path
This adds a fast path for 64-bit syscall entry and exit when
TIF_SYSCALL_AUDIT is set, but no other kind of syscall tracing.
This path does not need to save and restore all registers as
the general case of tracing does. Avoiding the iret return path
when syscall audit is enabled helps performance a lot.
Signed-off-by: Roland McGrath <roland@redhat.com>
Roland McGrath [Tue, 24 Jun 2008 03:41:12 +0000 (20:41 -0700)]
x86_64: remove bogus optimization in sysret_signal
This short-circuit path in sysret_signal looks wrong to me.
AFAICT, in practice the branch is never taken--and if it were,
it would go wrong. To wit, try loading a module whose init
function does set_thread_flag(TIF_IRET), and see insmod crash
(presumably with a wrong user stack pointer).
This is because the FIXUP_TOP_OF_STACK work hasn't been done yet
when we jump around the call to ptregscall_common and get to
int_with_check--where it expects the user RSP,SS,CS and EFLAGS to
have been stored by FIXUP_TOP_OF_STACK.
I don't think it's normally possible to get to sysret_signal with no
_TIF_DO_NOTIFY_MASK bits set anyway, so these two instructions are
already superfluous. If it ever did happen, it is harmless to call
do_notify_resume with nothing for it to do.
Signed-off-by: Roland McGrath <roland@redhat.com>
Jean-Francois Moine [Tue, 22 Jul 2008 08:35:10 +0000 (05:35 -0300)]
V4L/DVB (8442): gspca: Remove the version from the subdrivers.
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jean-Francois Moine [Tue, 22 Jul 2008 06:45:08 +0000 (03:45 -0300)]
V4L/DVB (8441): gspca: Bad handling of start of frames in sonixj.
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Adrian Bunk [Tue, 22 Jul 2008 05:35:05 +0000 (02:35 -0300)]
V4L/DVB (8440): gspca: Makes some needlessly global functions static.
Signed-off-by: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jean-Francois Moine [Mon, 21 Jul 2008 08:42:17 +0000 (05:42 -0300)]
V4L/DVB (8438): gspca: Lack of matrix for zc3xx - tas5130c (vf0250).
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jean-Francois Moine [Sat, 19 Jul 2008 09:49:28 +0000 (06:49 -0300)]
V4L/DVB (8436): gspca: Version number only in the main driver.
The version numbers of the subrivers will be removed as these ones
will be changed for any other purpose.
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Jean-Francois Moine [Fri, 18 Jul 2008 11:46:19 +0000 (08:46 -0300)]
V4L/DVB (8435): gspca: Delay after reset for ov7660 and USB traces in sonixj.
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sun, 20 Jul 2008 23:26:54 +0000 (20:26 -0300)]
V4L/DVB (8434): Fix x86_64 compilation and move some macros to v4l2-ioctl.h
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sun, 20 Jul 2008 11:12:02 +0000 (08:12 -0300)]
V4L/DVB (8430): videodev: move some functions from v4l2-dev.h to v4l2-common.h or v4l2-ioctl.h
The functions in a header should not belong to another module. The prio functions
belong to v4l2-common.c, so move them to v4l2-common.h.
The ioctl functions belong to v4l2-ioctl.c, so create a new v4l2-ioctl.h header
and move those functions to it.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Mauro Carvalho Chehab [Sun, 20 Jul 2008 13:49:39 +0000 (10:49 -0300)]
V4L/DVB (8433): Fix macro name at z0194a.h
As reported by Hans Verkuil:
In file included from /home/v4l/master/v4l/dw2102.c:14:
/home/v4l/master/v4l/z0194a.h:93: error: 'STV0229_LOCKOUTPUT_1' undeclared here (not in a function)
This is due to some typos that were fixed on stv0299.
This patch renames it in accord with that fix.
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sun, 20 Jul 2008 09:35:02 +0000 (06:35 -0300)]
V4L/DVB (8429): videodev: renamed 'class_dev' to 'dev'
The class_dev field is a normal device, not a class device. This is very
confusing and now that the old 'dev' field has been renamed to 'parent'
we can rename 'class_dev' to just 'dev'.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sun, 20 Jul 2008 09:31:39 +0000 (06:31 -0300)]
V4L/DVB (8428): videodev: rename 'dev' to 'parent'
The field 'dev' is not the video device, but the parent of the video device.
Rename accordingly.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Hans Verkuil [Sun, 20 Jul 2008 11:43:17 +0000 (08:43 -0300)]
V4L/DVB (8427): videodev: split off the ioctl handling into v4l2-ioctl.c
videodev.c became top-heavy so all the ioctl processing has been split off
into v4l2-ioctl.c. This means videodev.c is back to its original purpose:
creating and registering v4l devices.
Since videodev.c and v4l2-ioctl.c should still remain one module (as least
for now) I also had to rename videodev.c to v4l2-dev.c to prevent a
circular dependency when building a videodev.ko module. This is not a bad
thing, since the source and header now have the same name. And the v4l2-
prefix is useful to see which sources are generic v4l2 support code.
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Linus Torvalds [Wed, 23 Jul 2008 19:04:34 +0000 (12:04 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/drzeus/mmc
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
sdhci: highmem capable PIO routines
sg: reimplement sg mapping iterator
mmc_test: print message when attaching to card
mmc: Remove Russell as primecell mci maintainer
mmc_block: bounce buffer highmem support
sdhci: fix bad warning from commit
c8b3e02
sdhci: add warnings for bad buffers in ADMA path
mmc_test: test oversized sg lists
mmc_test: highmem tests
s3cmci: ensure host stopped on machine shutdown
au1xmmc: suspend/resume implementation
s3cmci: fixes for section mismatch warnings
pxamci: trivial fix of DMA alignment register bit clearing
Linus Torvalds [Wed, 23 Jul 2008 19:03:18 +0000 (12:03 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/djbw/async_tx
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (24 commits)
I/OAT: I/OAT version 3.0 support
I/OAT: tcp_dma_copybreak default value dependent on I/OAT version
I/OAT: Add watchdog/reset functionality to ioatdma
iop_adma: cleanup iop_chan_xor_slot_count
iop_adma: document how to calculate the minimum descriptor pool size
iop_adma: directly reclaim descriptors on allocation failure
async_tx: make async_tx_test_ack a boolean routine
async_tx: remove depend_tx from async_tx_sync_epilog
async_tx: export async_tx_quiesce
async_tx: fix handling of the "out of descriptor" condition in async_xor
async_tx: ensure the xor destination buffer remains dma-mapped
async_tx: list_for_each_entry_rcu() cleanup
dmaengine: Driver for the Synopsys DesignWare DMA controller
dmaengine: Add slave DMA interface
dmaengine: add DMA_COMPL_SKIP_{SRC,DEST}_UNMAP flags to control dma unmap
dmaengine: Add dma_client parameter to device_alloc_chan_resources
dmatest: Simple DMA memcpy test client
dmaengine: DMA engine driver for Marvell XOR engine
iop-adma: fix platform driver hotplug/coldplug
dmaengine: track the number of clients using a channel
...
Fixed up conflict in drivers/dca/dca-sysfs.c manually
Linus Torvalds [Wed, 23 Jul 2008 18:59:37 +0000 (11:59 -0700)]
Merge branch 'for_linus' of git://git./linux/kernel/git/jwessel/linux-2.6-kgdb
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:
kgdb: kgdboc console poll hooks for mpsc uart
kgdb: kgdboc console poll hooks for cpm uart
kgdb, powerpc: arch specific powerpc kgdb support
kgdb: support for ARCH=arm
kgdb: remove unused HAVE_ARCH_KGDB_SHADOW_INFO config variable
Linus Torvalds [Wed, 23 Jul 2008 18:59:09 +0000 (11:59 -0700)]
Merge git://git./linux/kernel/git/bart/ide-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (60 commits)
ide: small whitespace fixes
ide: ide-cd_ioctl.c fix sparse integer as NULL pointer warnings
ide: ide-cd.c fix sparse endianness warnings
ide-cd: convert to using the new atapi_flags
ide: remove unused PC_FLAG_DRQ_INTERRUPT
ide-scsi: convert to using the new atapi_flags
ide-tape: convert to using the new atapi_flags
ide-floppy: convert to using the new atapi_flags (take 2)
ide: add per-device flags
ide: use rq->cmd instead of pc->c in atapi common code
ide-scsi: pass packet command in rq->cmd
ide-tape: pass packet command in rq->cmd
ide-tape: make room for packet command ids in rq->cmd
ide-floppy: pass packet command in rq->cmd
ide: remove pc->callback member from ide_atapi_pc
ide-scsi: use drive->pc_callback instead of pc->callback
ide-tape: use drive->pc_callback instead of pc->callback
ide-floppy: use drive->pc_callback instead of pc->callback
ide: push pc callback pointer into the ide_drive_t structure
drivers/ide/ide-tape.c: remove double kfree
...
Pavel Machek [Wed, 23 Jul 2008 17:56:02 +0000 (19:56 +0200)]
ide: small whitespace fixes
Small whitespace fixes for drivers/ide.
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Harvey Harrison [Wed, 23 Jul 2008 17:56:02 +0000 (19:56 +0200)]
ide: ide-cd_ioctl.c fix sparse integer as NULL pointer warnings
The function ide_cd_queue_pc should be checked as the bufflen arg is
dereferenced and lots of callers are passing in NULL.
drivers/ide/ide-cd_ioctl.c:124:46: warning: Using plain integer as NULL pointer
drivers/ide/ide-cd_ioctl.c:149:47: warning: Using plain integer as NULL pointer
drivers/ide/ide-cd_ioctl.c:231:46: warning: Using plain integer as NULL pointer
drivers/ide/ide-cd_ioctl.c:374:46: warning: Using plain integer as NULL pointer
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Harvey Harrison [Wed, 23 Jul 2008 17:56:02 +0000 (19:56 +0200)]
ide: ide-cd.c fix sparse endianness warnings
drivers/ide/ide-cd.c:1276:46: warning: Using plain integer as NULL pointer
drivers/ide/ide-cd.c:1298:19: warning: cast to restricted __be32
drivers/ide/ide-cd.c:1300:4: warning: cast to restricted __be32
drivers/ide/ide-cd.c:1522:14: warning: cast to restricted __le16
drivers/ide/ide-cd.c:1523:14: warning: cast to restricted __le16
drivers/ide/ide-cd.c:1525:14: warning: cast to restricted __be16
drivers/ide/ide-cd.c:1526:14: warning: cast to restricted __be16
drivers/ide/ide-cd.c:1667:37: warning: cast to restricted __be16
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Acked-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:02 +0000 (19:56 +0200)]
ide-cd: convert to using the new atapi_flags
There should be no functionality change resulting from this patch.
[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide: remove unused PC_FLAG_DRQ_INTERRUPT
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide-scsi: convert to using the new atapi_flags
Remove unused IDESCSI_PC_RQ while at it.
There should be no functionality change resulting from this patch.
[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide-tape: convert to using the new atapi_flags
There should be no functionality change resulting from this patch.
[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide-floppy: convert to using the new atapi_flags (take 2)
while at it, remove PC_FLAG_ZIP_DRIVE from the packed command flags altogether
and query the drive type through drive->atapi_flags.
v2:
ide-floppy fix.
There should be no functionality change resulting from this patch.
[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide: add per-device flags
Push device flags up into ide_drive_t.
There should be no functionality change resulting from this patch.
[bart: IDE_FLAG_* -> IDE_AFLAG_*, dev_flags -> atapi_flags]
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:01 +0000 (19:56 +0200)]
ide: use rq->cmd instead of pc->c in atapi common code
There should be no functionality change resulting from this patch.
[bart: s/HWGROUP(drive)/hwif->hwgroup/]
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide-scsi: pass packet command in rq->cmd
Make a redundant copy of the packet command bits into rq->cmd.
Later, after all drivers have been converted, it'll be
switched to use that in the common code instead of pc->c.
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide-tape: pass packet command in rq->cmd
Make a redundant copy of the packet command bits into rq->cmd. Later, after
all drivers have been converted, it'll be switched to use that in the
common code instead of pc->c. While at it, simplify ide_tape_create_rw_cmd.
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide-tape: make room for packet command ids in rq->cmd
ide-tape uses rq->cmd for special commands from the chrdev interface so move
those to byte 13 (BLK_MAX_CDB = 16) since a packet cmd is max 12 bytes.
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide-floppy: pass packet command in rq->cmd
Make a redundant copy of the packet command bits into rq->cmd.
Later, after all drivers have been converted, it'll be
switched to use that in the common code instead of pc->c.
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:56:00 +0000 (19:56 +0200)]
ide: remove pc->callback member from ide_atapi_pc
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide-scsi: use drive->pc_callback instead of pc->callback
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide-tape: use drive->pc_callback instead of pc->callback
The if-else block in the IRQ handler is only temporary so that bisect searches
don't break and it'll be removed after converting the remainder of the drivers.
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide-floppy: use drive->pc_callback instead of pc->callback
It is important that drive->pc_callback is set prior to enabling IRQs on the
device since this is called from the IRQ handler. Otherwise it hurts as I learnt
the hard way from the several "Kernel panic - not synching: Fatal exception in
interrupt" during the weekend :).
The if-else block in the IRQ handler is only temporary so that bisect searches
don't break and it'll be removed after converting the remainder of the drivers.
There should be no functionality change resulting from this patch.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Borislav Petkov [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide: push pc callback pointer into the ide_drive_t structure
Refrain from carrying the callback ptr with every packet command since the
callback function is only one anyways. ide_drive_t is probably not the most
suitable place for it right now but is the more sane solution. Besides, these
structs are going to be reorganized anyways during the generic ide rewrite.
Signed-off-by: Borislav Petkov <petkovbb@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Darren Jenkins [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
drivers/ide/ide-tape.c: remove double kfree
Coverity CID: 2336 USE_AFTER_FREE
drivers/ide/ide-tape.c ide_tape_kfree_buffer() double free's a pointer
(hint freed by an alias in first outer loop).
This patch simply removes the superfluous kfree().
Signed-off-by: Darren Jenkins <darrenrjenkins@gmailcom>
Acked-by: Borislav Petkov <petkovbb@gmail.com>
Cc: gadio@netvision.net.il
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:59 +0000 (19:55 +0200)]
ide: add ide_host_free() helper (take 2)
* Add ide_host_free() helper and convert ide_host_remove() to use it.
* Fix handling of ide_host_register() failure in ide_host_add(),
icside.c, ide-generic.c, falconide.c and sgiioc4.c.
While at it:
* Fix handling of ide_host_alloc_all() failure in ide-generic.c.
* Fix handling of ide_host_alloc() failure in falconide.c
(also return the correct error value if no device is found).
v2:
* falconide build fix. (From Stephen Rothwell)
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:58 +0000 (19:55 +0200)]
ide: allocate ide_hwif_t instances dynamically
* Allocate ide_hwif_t instances dynamically and remove ide_hwifs[].
This cuts almost ~14kB from ide-probe.o (x86-32, MAX_HWIFS == 10):
text data bss dec hex filename
9140 40 14084 23264 5ae0 drivers/ide/ide-probe.o.before
9169 40 44 9253 2425 drivers/ide/ide-probe.o.after
* Remove no longer needed ide_init_port_data() call from ide_unregister().
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:58 +0000 (19:55 +0200)]
ide: add ide_ports[]
* Add ide_ports[] table keeping pointers to all initialized ports.
* Set ide_ports[] entry for a given port in init_irq() and clear it
ide_remove_port_from_hwgroup().
* Convert init_irq() to use ide_ports[] instead of ide_hwifs[] for
grouping ports into hwgroup.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:58 +0000 (19:55 +0200)]
ide: move ide_remove_port_from_hwgroup() to ide-probe.c
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:57 +0000 (19:55 +0200)]
ide: fix IDE port slots reservation and freeing (take 2)
* Make ide_find_port_slot() return port slot index.
* Add ide_free_port_slot() helper.
* Move ide_init_port_data() call and error printk() from
ide_find_port_slot() to ide_host_alloc_all().
* Make ide_{find,free}_port_slot() take ide_cfg_mtx mutex
and convert them use ide_indexes bitmap to keep track of
reserved port slots.
* Don't set hwif->chipset in ide_host_alloc_all() as it is
no longer necessary.
v2:
* Pass the correct slot index to ide_init_port_data().
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:57 +0000 (19:55 +0200)]
ide: fix ide_host_register() return value
Fix ide_host_register() to fail only if all ports cannot be registered.
While at it:
* Use host->ports[] instead of ide_hwifs[] and remove idx[].
There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:57 +0000 (19:55 +0200)]
ide: add ide_host_add() helper
Add ide_host_add() helper which does ide_host_alloc()+ide_host_register(),
then convert ide_setup_pci_device[s](), ide_legacy_device_add() and some
host drivers to use it.
While at it:
* Fix ide_setup_pci_device[s](), ide_arm.c, gayle.c, ide-4drives.c,
macide.c, q40ide.c, cmd640.c and cs5520.c to return correct error value.
* -ENOENT -> -ENOMEM in rapide.c, ide-h8300.c, ide-generic.c, au1xxx-ide.c
and pmac.c
* -ENODEV -> -ENOMEM in palm_bk3710.c, ide_platform.c and delkin_cb.c
* -1 -> -ENOMEM in ide-pnp.c
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:57 +0000 (19:55 +0200)]
ide: add struct ide_host (take 3)
* Add struct ide_host which keeps pointers to host's ports.
* Add ide_host_alloc[_all]() and ide_host_remove() helpers.
* Pass 'struct ide_host *host' instead of 'u8 *idx' to
ide_device_add[_all]() and rename it to ide_host_register[_all]().
* Convert host drivers and core code to use struct ide_host.
* Remove no longer needed ide_find_port().
* Make ide_find_port_slot() static.
* Unexport ide_unregister().
v2:
* Add missing 'struct ide_host *host' to macide.c.
v3:
* Fix build problem in pmac.c (s/ide_alloc_host/ide_host_alloc/)
(Noticed by Stephen Rothwell).
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:56 +0000 (19:55 +0200)]
ide: add struct ide_tp_ops (take 2)
* Add struct ide_tp_ops for transport methods.
* Add 'const struct ide_tp_ops *tp_ops' to struct ide_port_info
and ide_hwif_t.
* Set the default hwif->tp_ops in ide_init_port_data().
* Set host driver specific hwif->tp_ops in ide_init_port().
* Export ide_exec_command(), ide_read_status(), ide_read_altstatus(),
ide_read_sff_dma_status(), ide_set_irq(), ide_tf_{load,read}()
and ata_{in,out}put_data().
* Convert host drivers and core code to use struct ide_tp_ops.
* Remove no longer needed default_hwif_transport().
* Cleanup ide_hwif_t from methods that are now in struct ide_tp_ops.
While at it:
* Use struct ide_port_info in falconide.c and q40ide.c.
* Rename ata_{in,out}put_data() to ide_{in,out}put_data().
v2:
* Fix missing convertion in ns87415.c.
There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:56 +0000 (19:55 +0200)]
ide: add 'config' field to hw_regs_t
Add 'config' field to hw_regs_t and use it to set hwif->config_data in
ide_init_port_hw(), then convert ide_legacy_init_one() to use hw->config.
There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:56 +0000 (19:55 +0200)]
ide-generic: probing fix
* Don't skip probing IDE port if the corresponding ide_hwifs[] slot
is already occupied.
* Remove duplicate idx[i] assignment.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:56 +0000 (19:55 +0200)]
gayle: reserve memory resources at once
* Reserve memory resources for all IDE ports at once by moving
request_mem_region() out of 'for ()' loop and always defining
GAYLE_IDEREG_SIZE to 0x2000.
* Keep memory resources even if no free IDE slots can be found
(this driver is unloadable currently).
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:56 +0000 (19:55 +0200)]
ide: filter out "default" transfer mode values in set_xfer_rate()
* Filter out "default" transfer mode values (0x00 - default PIO mode,
0x01 - default PIO mode w/ IORDY disabled) in write handler for obsoleted
/proc/ide/hd?/settings:current_speed setting.
Allowing "default" transfer mode values is a dangerous thing to do as
we don't support programming controller to the "default" transfer mode
and devices often use different values for the default and maximum PIO
mode (i.e. PIO2 default and PIO4 maximum) so the controller will stay
programmed for higher PIO mode while device will use the lower PIO mode.
There is no functionality loss as by using special IOCTLs device can
still be programmed to "default" transfer modes (it is only useful for
debugging/testing purposes anyway).
* Remove no longer needed IDE_HFLAG_ABUSE_SET_DMA_MODE host flag, it was
previously used by few host drivers to program the controller to PIO0
timings for "default" transfer mode == 0x01 (although some host drivers
would program invalid PIO timings instead).
* Cleanup ide_set_xfer_rate() and add BUG_ON().
Suggested-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:55 +0000 (19:55 +0200)]
ide: filter out invalid transfer mode values in set_xfer_rate()
Filter out invalid transfer mode values (0x02-0x07) in write handler
for obsoleted /proc/ide/hd?/settings:current_speed setting.
While at it:
* Use XFER_UDMA_6 define.
Suggested-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:55 +0000 (19:55 +0200)]
ide: remove dead Virtual DMA support
Lets remove dead Virtual DMA support for now so it doesn't clutter
core IDE code (it can be bring back when there is a need for it):
* Remove IDE_HFLAG_VDMA host flag.
* Remove ide_drive_t.vdma flag.
* cs5520.c: remove stale FIXMEs, cs5520_dma_host_set() and cs5520_dma_ops
(also there is no longer a need to set IDE_HFLAG_NO_ATAPI_DMA).
There should be no functional changes caused by this patch.
Cc: TAKADA Yoshihito <takada@mbf.nifty.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:55 +0000 (19:55 +0200)]
ide: mark hpt34x host driver as BROKEN
Alan Cox has noticed some time ago that hpt34x is broken
(http://lkml.org/lkml/2007/7/3/257):
"No the old driver doesn't even do that. It starts up. It spuriously
adjusts some non writable PCI BAR registers, prints a message about
resources being in use already then exits."
Reported-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:54 +0000 (19:55 +0200)]
ide: limit cy82c693 host driver to ALPHA
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:54 +0000 (19:55 +0200)]
ide: remove ->INB, ->OUTB and ->OUTBSYNC methods
* Remove no longer needed ->INB, ->OUTB and ->OUTBSYNC methods.
Then:
* Remove no longer used default_hwif_[mm]iops() and ide_[mm_]outbsync().
* Cleanup SuperIO handling in ns87415.c.
There should be no functional changes caused by this patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz [Wed, 23 Jul 2008 17:55:54 +0000 (19:55 +0200)]
ide: add ide_read_bcount_and_ireason() helper
Add ide_read_bcount_and_ireason() helper and use it instead of ->INB
in {cdrom_newpc,ide_pc}_intr().
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>