Ian Campbell [Thu, 21 Feb 2008 21:03:45 +0000 (13:03 -0800)]
xen: Implement getgeo for Xen virtual block device.
The below implements the getgeo hook for Xen block devices. Extracted
from the xen-unstable tree where it has been used for ages.
It is useful to have because it allows things like grub2 (used by the
Debian installer images) to work in a guest domain without having to
sprinkle Xen specific hacks around the place.
Signed-off-by: Ian Campbell <ijc@hellion.org.uk> Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Pavel Emelyanov [Thu, 21 Feb 2008 07:57:45 +0000 (10:57 +0300)]
Wrap buffers used for rpc debug printks into RPC_IFDEBUG
Sorry for the noise, but here's the v3 of this compilation fix :)
There are some places, which declare the char buf[...] on the stack
to push it later into dprintk(). Since the dprintk sometimes (if the
CONFIG_SYSCTL=n) becomes an empty do { } while (0) stub, these buffers
cause gcc to produce appropriate warnings.
Wrap these buffers with RPC_IFDEBUG macro, as Trond proposed, to
compile them out when not needed.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Acked-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Anton Vorontsov [Thu, 21 Feb 2008 20:30:58 +0000 (23:30 +0300)]
ehci-fsl: add PPC_MPC837x to default y
This patch converts USB_EHCI_FSL config option into the verbose
bool, so we'll able to select it for other freescale processors
with built-in EHCI controller.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Cc: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Anton Vorontsov [Thu, 21 Feb 2008 19:49:13 +0000 (22:49 +0300)]
USB: POWERPC: ehci: fix ppc build
Currently, this setup:
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_HCD_PPC_OF=y
Will fail to build:
CC drivers/usb/host/ehci-hcd.o
drivers/usb/host/ehci-hcd.c:1018:2: error: #error "missing bus glue for ehci-hcd"
make[3]: *** [drivers/usb/host/ehci-hcd.o] Error 1
ehci-hcd.c actually contains OF_PLATFORM_DRIVER glue, so error is bogus.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Alan Stern [Wed, 20 Feb 2008 19:15:58 +0000 (14:15 -0500)]
USB: usb-storage: don't access beyond the end of the sg buffer
This patch (as1035) fixes a bug in usb_stor_access_xfer_buf() (the bug
was originally found by Boaz Harrosh): The routine must not attempt to
write beyond the end of a scatter-gather list or beyond the number of
bytes requested. It also fixes up the formatting of a few comments
and similar whitespace issues.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Alan Stern [Wed, 20 Feb 2008 17:10:04 +0000 (12:10 -0500)]
USB: quirks and unusual_devs entry for Actions flash drive
This patch (as1033) adds a quirks entry and an unusual_devs entry for
the Actions Semiconductor flash drive. This device has a 64-byte
string descriptor, which it doesn't terminate with a 0-length packet.
Oddly enough, the reporter's logs show that when the device was
plugged in at boot time, it changes its behavior completely -- it uses
a different product ID, product string descriptor, and bDeviceClass.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
USB: usb-storage: unusual_devs entry for Oracom MP3 player
This patch (as1034) was written by Leonid Petrov, reported by Robert
Spitzenpfeil, and updated by me. It adds an unusual_devs entry with
the IGNORE_RESIDUE flag for the Oracom MP3 player. Together with the
change to the Get-Max-LUN routine in as1032, it makes the player usable.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Phil Dibowitz <phil@ipom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Kevin Lloyd [Thu, 14 Feb 2008 21:35:16 +0000 (13:35 -0800)]
USB: serial: move zte MF330 from sierra to option
Move the Onda H600/ZTE MF33 device from the sierra driver to the option
driver.
The reason it was moved is because the sierra driver is starting to support
more and more sierra proprietary features, so it makes more sense to keep
sierra only devices in there.
Signed-off-by: Kevin Lloyd <klloyd@sierrawireless.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Jan Altenberg [Tue, 19 Feb 2008 00:44:50 +0000 (01:44 +0100)]
USB: gadget: queue usb USB_CDC_GET_ENCAPSULATED_RESPONSE message
commit 0cf4f2de0a0f4100795f38ef894d4910678c74f8 introduced a bug, which
prevents sending an USB_CDC_GET_ENCAPSULATED_RESPONSE message. This
breaks the RNDIS initialization (especially / only Windoze machines
dislike this behavior...).
Signed-off-by: Benedikt Spranger <b.spranger@linutronix.de> Signed-off-by: Jan Altenberg <jan.altenberg@linutronix.de> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Alan Stern [Wed, 13 Feb 2008 15:45:28 +0000 (10:45 -0500)]
USB: usb-storage: don't clear-halt when Get-Max-LUN stalls
This patch (as1032) removes the Clear-Halt calls in
usb_stor_Bulk_max_lun(). Evidently some devices (such as the Oracom
MP3 player) really don't like to receive these requests when their
bulk endpoints aren't halted.
The only reason for adding them originally was to get an ancient
ZIP-100 drive to work. But since this device has only a single LUN,
we don't need to send it a Get-Max-LUN request at all. Adding an
unusual_devs entry for the ZIP-100 with the SINGLE_LUN flag set will
cause this step to be skipped.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
David Brownell [Sat, 2 Feb 2008 10:36:53 +0000 (02:36 -0800)]
USB: fix previous sparse fix which was incorrect
The previous fix for a "sparse" warning in ehci_urb_dequeue() was
incorrect. After rescheduling interrupt transfers it returned the
URB's completion status, not status for the dequeue operation itself.
This patch resolves that issue, cleans up the code in the reschedule
path, and shrinks the object code by a dozen bytes.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Oliver Neukum [Fri, 1 Feb 2008 12:58:52 +0000 (13:58 +0100)]
USB: Sane memory allocation in option driver
The option driver
- violates DMA coherency rules
- allocates ~16500 bytes in one chunk
This patch splits out the buffers and uses __get_free_page() to avoid
higher order allocations.
Kenji Kaneshige [Thu, 21 Feb 2008 06:24:16 +0000 (15:24 +0900)]
PCI: Fix wrong reference counter check for proc_dir_entry
Fix wrong counter check for proc_dir_entry in pci_proc_detach_device().
The pci_proc_detach_device() returns with -EBUSY before calling
remove_proc_entry() if the reference counter of proc_dir_entry is not
0. But this check is wrong and pci_proc_detach_device() always fails
because the reference counter of proc_dir_entry is initialized with 1
at creating time and decremented in remove_proc_entry(). This bug
cause strange behaviour as followings:
Peer Chen [Tue, 5 Feb 2008 07:50:13 +0000 (23:50 -0800)]
PCI: quirks: set 'En' bit of MSI Mapping for devices onHT-based nvidia platform
According to HT spec, to get message interrupt from devices mapped to HT
interrupt message, the 'En' bit of MSI Mapping capability need to be set.
The patch do this setting in quirks code for the devices on HT-based nvidia
platform.
[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Andy Currid <acurrid@nvidia.com> Signed-off-by: Peer Chen <pchen@nvidia.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Andrew Morton [Tue, 5 Feb 2008 07:35:48 +0000 (23:35 -0800)]
PCI: drivers/pcmcia/i82092.c: fix up after pci_bus_region changes
drivers/pcmcia/i82092.c: In function 'i82092aa_set_mem_map':
drivers/pcmcia/i82092.c:650: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'resource_size_t'
drivers/pcmcia/i82092.c:650: warning: format '%lx' expects type 'long unsigned int', but argument 4 has type 'resource_size_t'
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Gary Hade [Wed, 6 Feb 2008 23:43:05 +0000 (15:43 -0800)]
PCI: hotplug: acpiphp_ibm: Remove get device information
drivers/pci/hotplug/acpiphp_ibm.c:ibm_find_acpi_device() is not
large enough to accommodate data returned by the _CID method
executed from acpi_get_object_info().
This patch eliminates the problem by letting ACPI code
(instead of driver code) determine and obtain a correctly
sized buffer.
Signed-off-by: Gary Hade <garyhade@us.ibm.com> Signed-off-by: Kristen Carlson Accardi <kristen.c.accardi@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
sys_create_file takes a "struct attrbute *" not a "struct kobj_addribute *".
arch/powerpc/platforms/pseries/power.c: In function 'apo_pm_init':
arch/powerpc/platforms/pseries/power.c:78: warning: passing argument 2 of 'sysfs_create_file' from incompatible pointer type
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Paul Mackerras <paulus@au.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Cornelia Huck [Mon, 18 Feb 2008 16:04:25 +0000 (17:04 +0100)]
Driver core: Fix error handling in bus_add_driver().
- If the allocation of ->priv fails, the reference on the bus
must be dropped.
- If adding the kobject fails, kobject_put must be called to
clean things up.
Randy Dunlap [Mon, 18 Feb 2008 21:09:03 +0000 (13:09 -0800)]
driver-core: fix kernel-doc function parameters
Fix drivers/base/ missing kernel-doc parameters:
Warning(linux-2.6.24-git12//drivers/base/driver.c:133): No description found for parameter 'drv'
Warning(linux-2.6.24-git12//drivers/base/driver.c:133): No description found for parameter 'kobj'
Warning(linux-2.6.24-git12//drivers/base/driver.c:133): No description found for parameter 'fmt'
Warning(linux-2.6.24-git12//drivers/base/power/main.c:530): No description found for parameter 'state'
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Balaji Rao [Fri, 8 Feb 2008 19:22:40 +0000 (00:52 +0530)]
cpufreq: fix kobject reference count handling
The cpufreq core should not take an extra kobject reference count for no
reason, and then refuse to release it. This has been reported as
keeping machines from properly powering down all the way.
Signed-off-by: Balaji Rao <balajirrao@gmail.com> Cc: Dave Jones <davej@codemonkey.org.uk> Cc: Yi Yang <yi.y.yang@intel.com> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Frans Pop <elendil@planet.nl> Cc: Yinghai Lu <yhlu.kernel@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
slabinfo: fall back from /sys/kernel/slab to /sys/slab
I keep running upstream and mm kernels and the location of the slab
directory is different since upstream still uses /sys/slab. This patch
makes slabinfo check /sys/slab if /sys/kernel/slab is not there. Makes
slabinfo work on any kernel.
Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
David Teigland [Thu, 21 Feb 2008 19:39:57 +0000 (13:39 -0600)]
dlm: fix rcom_names message to self
The recent patch to validate data lengths in rcom_names messages
failed to account for fake messages a node directs to itself before
ever sending it. In this case we need to fill in the message length
in the header for the validation code to use.
Signed-off-by: David Teigland <teigland@redhat.com>
Stefan Richter [Wed, 20 Feb 2008 20:10:06 +0000 (21:10 +0100)]
firewire: fix NULL pointer deref. and resource leak
By supplying ioctl()s in the wrong order, a userspace client was able to
trigger NULL pointer dereferences. Furthermore, by calling
ioctl_create_iso_context more than once, new contexts could be created
without ever freeing the previously created contexts.
Thanks to Anders Blomdell for the report.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Holger Macht [Thu, 14 Feb 2008 12:40:34 +0000 (13:40 +0100)]
ACPI: Do not pass NULL to acpi_get_handle() when looking for _EJD
When trying to get the acpi_handle from an acpi_buffer, pass
ACPI_ROOT_OBJECT instead of NULL to acpi_get_handle(). This fixes the
detection of dock dependent bays.
Signed-off-by: Holger Macht <hmacht@suse.de> Tested-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
Olof Johansson [Thu, 21 Feb 2008 02:34:43 +0000 (13:34 +1100)]
[POWERPC] pasemi: Remove warning in mpic_pasemi_msi.c
Remove warning:
arch/powerpc/sysdev/mpic_pasemi_msi.c: In function 'pasemi_msi_setup_msi_irqs':
arch/powerpc/sysdev/mpic_pasemi_msi.c:135: warning: 'addr' is used uninitialized in this function
Turns out addr wasn't even used, it's a leftover from the u3msi code.
Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
Olof Johansson [Thu, 21 Feb 2008 02:25:54 +0000 (13:25 +1100)]
[POWERPC] pasemi: Register i2c devices at boot
Setup i2c_board_info based on device tree contents. This has to be
a device_initcall since we need PCI to be probed by the time we
run it, but before the actual driver is initialized.
Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
Sam Ravnborg [Sun, 17 Feb 2008 12:23:03 +0000 (13:23 +0100)]
ACPI: fix section mismatch in acpi_pci_root_add
Fix following warning:
WARNING: vmlinux.o(.text+0x550e85): Section mismatch in reference from the function acpi_pci_root_add() to the function .devinit.text:pci_acpi_scan_root()
acpi_pci_root_add uses a __devinit annotated function and
it looks like annotating it __devinit too is the correct fix.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Len Brown <len.brown@intel.com>
Sam Ravnborg [Sun, 17 Feb 2008 12:22:54 +0000 (13:22 +0100)]
acer-wmi: fix section mismatch warnings
Fix following warnings:
WARNING: vmlinux.o(.text+0x672615): Section mismatch in reference from the function acer_platform_remove() to the function .exit.text:acer_backlight_exit()
WARNING: vmlinux.o(.devinit.text+0x1e859): Section mismatch in reference from the function acer_platform_probe() to the function .init.text:acer_led_init()
WARNING: vmlinux.o(.devinit.text+0x1e878): Section mismatch in reference from the function acer_platform_probe() to the function .init.text:acer_backlight_init()
Remove __exit annotation from acer_backlight_exit(). We cannot reference
a __exit annotated function from non __exit functions.
acer_led_init() and acer_backlight_init() where both annotated __init but
used from a __devinit function. This would result in an oops should
gcc drop their inlining and the module are hot plugged.
Fix by annotating acer_led_init() and acer_backlight_init() __devinit.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Carlos Corbacho <carlos@strangeworlds.co.uk> Signed-off-by: Len Brown <len.brown@intel.com>
Sam Ravnborg [Sun, 17 Feb 2008 12:22:48 +0000 (13:22 +0100)]
ACPI: fix section mismatch in processor_core.c:acpi_processor_hotplug_notify
Fix following warning:
WARNING: vmlinux.o(.text+0x55586c): Section mismatch in reference from the function acpi_processor_hotplug_notify() to the function .cpuinit.text:acpi_processor_start()
acpi_processor_hotplug_notify() may safely reference __cpuinit
stuff as it ids defined inside an ACPI_HOTPLUG_CPU block.
So annotate it __ref to silence the warning.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Len Brown <len.brown@intel.com>
Adrian Bunk [Sun, 3 Feb 2008 21:55:18 +0000 (22:55 +0100)]
PM: Make suspend_device() static
suspend_device() can become static.
Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Len Brown <len.brown@intel.com>
Make hibernation work with CONFIG_DEBUG_PAGEALLOC set on x86, by
checking if the pages to be copied are marked as present in the
kernel mapping and temporarily marking them as present if that's not
the case. No functional modifications are introduced if
CONFIG_DEBUG_PAGEALLOC is unset.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Len Brown <len.brown@intel.com>
Ming Lin [Thu, 21 Feb 2008 07:01:30 +0000 (02:01 -0500)]
ACPI: fix build warning
CC drivers/acpi/executer/exregion.o
drivers/acpi/executer/exregion.c: In function
‘acpi_ex_pci_config_space_handler’:
drivers/acpi/executer/exregion.c:369: attention : passing argument 3 of
‘acpi_os_read_pci_configuration’ from incompatible pointer type
Linus Torvalds [Thu, 21 Feb 2008 03:56:23 +0000 (19:56 -0800)]
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
libata: fix kernel-doc parameter warning
sata_mv: remove iounmap in mv_platform_remove and use devm_iomap
ata: fix sparse warning in libata.h
libata: implement libata.force module parameter
sata_mv: use hpriv->base instead of the host->iomap
sata_mv: Define module alias for platform device
ata: fix sparse warnings in pata_legacy.c
Linus Torvalds [Thu, 21 Feb 2008 03:55:09 +0000 (19:55 -0800)]
Remove empty file remnants that were left in the tree by mistake
Noted by various people (Sam, Jeff, Roland..)
Commit 58b7983d15a422d9616bdc4e245d5c31dfaefbe2 intended to remove the
xfs "Makefile-linux-2.6" file, but it was mistakenly still left in the
tree as a empty file, and would cause git to correctly complain about a
tracked file being removed after a "make distclean" (which removes empty
files as garbage).
And the asm-x86/desc_64.h file was supposed to be removed by commit c81c6ca45a69478c7877b729af1942d2b80ef582, but instead stayed around
containing just a single newline.
David Miller [Sat, 16 Feb 2008 00:08:59 +0000 (16:08 -0800)]
ath5k: Fix build warnings on some 64-bit platforms.
'u64' is not necessarily 'unsigned long long'
drivers/net/wireless/ath5k/base.c: In function 'ath5k_beacon_update_timers':
drivers/net/wireless/ath5k/base.c:2130: warning: format '%llx' expects type 'long long unsigned int', but argument 4 has type 'u64'
drivers/net/wireless/ath5k/base.c:2130: warning: format '%llx' expects type 'long long unsigned int', but argument 5 has type 'u64'
drivers/net/wireless/ath5k/base.c: In function 'ath5k_intr':
drivers/net/wireless/ath5k/base.c:2391: warning: format '%llx' expects type 'long long unsigned int', but argument 6 has type 'u64'
Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Jiri Slaby [Fri, 15 Feb 2008 20:58:52 +0000 (21:58 +0100)]
WDEV, ath5k, don't return int from bool function
sparse sees int -> bool cast as an error:
hw.c:3754:10: warning: cast truncates bits from constant value (ffffffea becomes 0)
Fix it by converting the rettype to int and check appropriately.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: Nick Kossifidis <mickflemm@gmail.com> Cc: Luis R. Rodriguez <mcgrof@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Jiri Slaby [Fri, 15 Feb 2008 20:58:51 +0000 (21:58 +0100)]
WDEV: ath5k, fix lock imbalance
Omitted lock causes sparse warning
drivers/net/wireless/ath5k/base.c:1682:1: warning: context imbalance in 'ath5k_tasklet_rx' - different lock contexts for basic block
Add the lock to the guilty fail path.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Acked-by: Nick Kossifidis <mickflemm@gmail.com> Cc: Luis R. Rodriguez <mcgrof@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This patch updates the HDQ driver not to export omap_hdq_get, omap_hdq_put
and omap_hdq_break fns,use them internally in the driver.Remove the unused
function omap_hdq_reset.
Signed-off-by: Madhusudhan Chikkature<madhu.cr@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Tony Lindgren [Mon, 18 Feb 2008 20:16:00 +0000 (12:16 -0800)]
I2C: Fix unhandled fault in i2c-omap controller
If an I2C interrupt happens between disabling interface clock
and functional clock, the interrupt handler will produce an
external abort on non-linefetch error when trying to access
driver registers while interface clock is disabled.
This patch fixes the problem by saving and disabling i2c-omap
interrupt before turning off the clocks. Also disable functional
clock before the interface clock as suggested by Paul Walmsley.
Patch also renames enable/disable_clocks functions to unidle/idle
functions. Note that the driver is currently not taking advantage
of the idle interrupts. To use the idle interrupts, driver would
have to enable interface clock based on the idle interrupt
and dev->idle flag.
Cc: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Klaus Pedersen [Fri, 15 Feb 2008 21:31:45 +0000 (23:31 +0200)]
tsc2301 - Move SPI data buffer to GFP_KERNEL memory
Because the dma_map_single() on ARM only flushes and invalidates
the cache-lines occupied by the transfer buffer, care should be
taken not to touch memory that share the same cache-lines before
starting the DMA transfer.
Signed-off-by: Klaus Pedersen <klaus.k.pedersen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Daniel Stone [Fri, 15 Feb 2008 21:31:44 +0000 (23:31 +0200)]
tsc2301 - Add optional keypad name via platform data
Allow the keypad device name to be customised via platform data.
Signed-off-by: Daniel Stone <daniel.stone@nokia.com> Signed-off-by: Klaus Pedersen <klaus.k.pedersen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Klaus Pedersen [Fri, 15 Feb 2008 21:31:41 +0000 (23:31 +0200)]
tsc2301 - correct the handling of the keyb_int interrupt
This patch fixes the "geiger" sound that was generated when
touching the touchscreen and pressing a key at the same time.
The error was the use of the keyb_int interrupt line as a
shortcut to see if any keys were pressed, that doesn't work.
With the tsc2301 it is essential that the keypad status is read
soon after the interrupt arrive - otherwise you will occasionally
read the keyboard status while the keys are still being de-bounced
(nothing).
Signed-off-by: Klaus Pedersen <klaus.k.pedersen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Klaus Pedersen [Fri, 15 Feb 2008 21:31:40 +0000 (23:31 +0200)]
tsc2301 - switch to using input_dev->dev.parent
From similar drivers (Dmitry Torokhov <dtor@mail.ru>):
In preparation for struct class_device -> struct device input
core conversion, switch to using input_dev->dev.parent when
specifying device position in sysfs tree.
Signed-off-by: Klaus Pedersen <klaus.k.pedersen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Klaus Pedersen [Fri, 15 Feb 2008 21:31:39 +0000 (23:31 +0200)]
tsc2301 - add coordinate average filter
To get good touchscreen results filtering is essential.
The filter does 2 things - it removes "bad" measurements,
and it uses average to smooth the coordinates.
Use the HW-filter in the tsc2301 to remove high frequency
noise (from backlight). Using 8 sample average is very
efficient.
Another source of noise is the screen, but that generates
low freq noise and thus require a SW filter. Using 4
coordinate history average is efficient.
Signed-off-by: Klaus Pedersen <klaus.k.pedersen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Klaus Pedersen [Fri, 15 Feb 2008 21:31:38 +0000 (23:31 +0200)]
tsc2301 - correct the handling of the DAV interrupt
The tsc2301 is not like the ads7846! The tsc2301 does
all converting, timing and filtering autonomously.
The chip works by measuring each channel multiple times and
the average of those values is stored in the corresponding
register before it processes the next channel.
Reading the X,Y,Z1,Z2 registers asynchronously to DAV interrupt
results in subtle errors.
For example instead of drawing (fast) diagonal lines you will
draw "staircases".
Signed-off-by: Klaus Pedersen <klaus.k.pedersen@nokia.com> Signed-off-by: Tony Lindgren <tony@atomide.com>