22 Apr, 2008

40 commits

  • Samsung USB remotes (0419:0001) report six keys via standard HID usage pages
    (arrow keys, OK, Power). Kernel 2.6.25 maps those to input events (in addition
    to the hiddev report). The remaining 43 keys are reported via proprietary HID
    report page and therefore by hiddev only.

    Applications using hiddev and input device might process the 6 standard keys
    twice. To avoid this, the input device will be suppressed for the Samsung
    remote with a quirk entry, forcing to use the hiddev device only.

    LIRC already contains the proper support.

    Signed-off-by: Robert Schedel
    Signed-off-by: Jiri Kosina

    Robert Schedel
     
  • Jeremy Robertson reports that GTCO engineers made a mistake and we don't
    need 0x60x GTCO product ids blacklisted.

    This mostly reverts dda3fd35, but leaves PID 0x1007 intact.

    Reported-by: Jeremy Roberson
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • I have people whining about using these headers in userspace, and they have
    __KERNEL__ markings which implies they're supposed to be exported. I also
    added the required linux/types.h include to hidraw.h since it uses the __u##
    kernel types.

    Signed-off-by: Mike Frysinger
    Cc: Jiri Kosina
    Cc: Dmitry Torokhov
    Signed-off-by: Andrew Morton
    Signed-off-by: Jiri Kosina

    Mike Frysinger
     
  • WiseGroup Ltd, MP-8866 Dual Joypad needs to skip output reports,
    as it contains force-feedback output reports.

    Reported-by: Anssi Hannula
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • There is no need to keep a few years old ThrustMaster force-feedback
    driver as experimental.

    HID_FF is currently marked experimental anyway, so this is even redundant.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Logitech diNovo Mini needs DUPLICATE_USAGES quirk.

    Reported-by: Tom Horsley
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • There is a window:

    task A task B
    spin_lock_irq(&usbhid->inlock); /* Sync with error handler */
    usb_set_intfdata(intf, NULL);
    spin_unlock_irq(&usbhid->inlock);
    usb_kill_urb(usbhid->urbin);
    usb_kill_urb(usbhid->urbout);
    usb_kill_urb(usbhid->urbctrl);

    del_timer_sync(&usbhid->io_retry);
    cancel_work_sync(&usbhid->reset_work);

    if (!hid->open++) {
    res = usb_autopm_get_interface(usbhid->intf);
    if (res < 0) {
    hid->open--;
    return -EIO;
    }
    }
    if (hid_start_in(hid))

    if (hid->claimed & HID_CLAIMED_INPUT)
    hidinput_disconnect(hid);

    in which an open() to an already disconnected device will submit an URB
    to an undead device. In case disconnect() was called by an ioctl, this'll
    oops. Fix by introducing a new flag and checking it in hid_start_in().

    Signed-off-by: Oliver Neukum
    Signed-off-by: Jiri Kosina

    Oliver Neukum
     
  • This patch makes the following needlessly global functions static:
    - hid-core.c:hid_input_field()
    - usbhid/hid-quirks.c:usbhid_modify_dquirk()

    Signed-off-by: Adrian Bunk
    Signed-off-by: Jiri Kosina

    Adrian Bunk
     
  • The numbered reports need to be passed properly to hidraw (i.e. with the first
    data field indicating the report number), otherwise userspace has no idea
    about the identification of the report.

    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • This moves the misplaced rdesc quirk to the place where it belongs.

    Reported-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Add force feedback support for Logitech Rumblepad 2.

    Tested-By: Edgar Simo
    Signed-off-by: Anssi Hannula
    Signed-off-by: Jiri Kosina

    Anssi Hannula
     
  • Since only place where this is used is usbhid, move it there.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • To check paramters even if debug is disabled, convert dbg_hid
    to inline function with __attribute__(format) checking.

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Fix these sparse warnings:
    .../hid/hid-core.c:100:15: warning: incorrect type in assignment (different signedness)
    .../hid/hid-core.c:100:15: expected signed int [usertype] *value
    .../hid/hid-core.c:100:15: got unsigned int *
    by unsigned -> s32

    .../hid/hid-input-quirks.c:336:10: warning: Using plain integer as NULL pointer
    by 0 -> NULL

    .../hid/usbhid/hid-core.c:786:46: warning: incorrect type in argument 3 (different signedness)
    .../hid/usbhid/hid-core.c:786:46: expected int *max
    .../hid/usbhid/hid-core.c:786:46: got unsigned int *
    .../hid/usbhid/hid-core.c:787:47: warning: incorrect type in argument 3 (different signedness)
    .../hid/usbhid/hid-core.c:787:47: expected int *max
    .../hid/usbhid/hid-core.c:787:47: got unsigned int *
    .../hid/usbhid/hid-core.c:788:48: warning: incorrect type in argument 3 (different signedness)
    .../hid/usbhid/hid-core.c:788:48: expected int *max
    .../hid/usbhid/hid-core.c:788:48: got unsigned int *
    by int -> unsigned int

    Signed-off-by: Jiri Slaby
    Signed-off-by: Jiri Kosina

    Jiri Slaby
     
  • Currently using debug=1 with hid module prints out all sent and received
    reports to the kernel log, while in many cases we only want to see the
    report descriptors and hid-input mappings that are printed when a device
    is probed.

    Add new level debug=2, and only dump the report traffic with that level.

    Signed-off-by: Anssi Hannula
    Signed-off-by: Jiri Kosina

    Anssi Hannula
     
  • This must be the weirdest failure yet. My external disk stops processing
    the storage commands the moment it receives a GET_REPORT. The firmware
    does not crash; if I do rmmod hid, then SET-INTERFACE restores normal
    operations. Still, I cannot live without the keyboard when I want backup
    my files. Adding the NOGET quirk fixes this problem for me.

    Signed-off-by: Pete Zaitcev
    Signed-off-by: Jiri Kosina

    Pete Zaitcev
     
  • This device has reports lower logical maximum compared to the real
    usages for Zoom+ and Zoom- it emits.

    This patch bumps the values in the report descriptor up, and also
    adjusts HID_MAX_USAGE accordingly.

    Reported-by: Khelben Blackstaff
    Signed-off-by: Jiri Kosina

    Jiri Kosina
     
  • Microsoft's wireless desktop receiver (Model 1028) has a bug in the report
    descriptor -- namely, in four seperate places it uses USAGE_MIN and _MAX when
    it quite obviously doesn't intend to.

    In other words, it reports that it has pretty much _everything_ in 'consumer'
    and 'generic desktop'. And then the X evdev driver believes I have a mouse
    with 36 absolute axes and a huge pile of keys and buttons, when I in fact,
    should have zero. 255/256 in three of the cases, and 0-1024 in another.

    This patch fixes the report descriptor of this device before it enters the HID
    parser.

    Signed-off-by: Jim Duchek
    Signed-off-by: Jiri Kosina

    Jim Duchek
     
  • Many vendors highspeed devices give erroneously fullspeed interval value in
    endpoint descriptor for interrupt endpoints. This quirk fixes up that by
    recalculating the right value for highspeed device.

    At the time of hid configuration this quirk calculates which highspeed interval
    value gives same interval delay as, or next smaller then, what it would be if
    the original value would be interpreted as fullspeed value. In subsequent urbs
    that new value is used instead.

    Forming the 'hid->name' in usb_hid_config() was moved up to accommodate more
    descriptive printk reporting the fixup.

    In this patch the quirk is set for one such device: Afatech DVB-T 2 infrared
    HID-keyboard. It reports value 16 which means 4,069s in highspeed while
    obviously 16ms was intended. In this case quirk calculates new value to be 8
    which gives when interpreted as highspeed value 16ms as wanted. The behavior of
    the device was verified to be what expected both before and after the patch.

    Signed-off-by: Pekka Sarnila
    Signed-off-by: Jiri Kosina

    Pekka Sarnila
     
  • Fix build failure in hiddev_ioctl with gcc 3.2:
    http://bugzilla.kernel.org/show_bug.cgi?id=10121

    The trick is to move the handling of ioctls which need to allocate
    memory to separate functions.

    Signed-off-by: Jean Delvare
    Signed-off-by: Jiri Kosina

    Jean Delvare
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    IB/ipath: Correct capitalization "IntX" -> "INTx"
    IB/ipath: Remove tests of PCI_MSI in ipath_iba7220.c
    IB/ipath: Remove dependency on PCI_MSI || HT_IRQ
    IB/ipath: Build IBA7220 code unconditionally
    IB/ipath: Remove reference to dev->class_dev
    IB/ipath: Fix module parameter description for disable_sma
    RDMA/nes: Remove unneeded function declarations

    Fix up conflict in drivers/infiniband/hw/ipath/ipath_verbs.c (by picking
    the solution from the infiniband branch)

    Linus Torvalds
     
  • Match what the PCI specification uses.

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • The PCI MSI interface is stubbed out properly so that all the
    functions just return failure if PCI_MSI=n, so there's no reason to
    have "#ifdef CONFIG_PCI_MSI" blocks in ipath_iba7220.c.

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • Before IBA7220 support was added, the ipath driver didn't support any
    hardware unless PCI_MSI and/or HT_IRQ was enabled. However, the
    IBA7220 can generate INTx interrupts, so it makes sense to allow the
    driver to be build even if PCI_MSI=n and HT_IRQ=n.

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • The new IBA7220 code added a call to ipath_init_iba7220_funcs() that
    is compiled unconditionally, but only built the IBA7220 code if
    PCI_MSI is enabled. Fix this by building the IBA7220 file
    unconditonally.

    This fixes build breakage when PCI_MSI=n, HT_IRQ=y and
    INFINIBAND_IPATH=y reported by Ingo Molnar :

    drivers/built-in.o: In function `ipath_init_one':
    ipath_driver.c:(.devinit.text+0x1e5bc): undefined reference to `ipath_init_iba7220_funcs'

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • Commit 124b4dcb ("IB/ipath: add calls to new 7220 code and enable in
    build") inadvertently added core to set dev->class_dev.dev back into
    ib_ipath. This is completely redundant since commit 1912ffbb ("IB: Set
    class_dev->dev in core for nice device symlink"), which removed
    class_dev setting from low-level drivers, and also will break the build
    when class_dev is removed completely from struct ib_device.

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • Describe disable_sma parameter with its name rather than the internal
    ib_ipath_disable_sma variable name, so that the description shows up
    properly in modinfo.

    Signed-off-by: Paul Bolle
    Acked-by: Ralph Campbell
    Signed-off-by: Roland Dreier

    Paul Bolle
     
  • Remove redundant static declarations of functions that are defined
    before they are used in the source.

    Signed-off-by: Roland Dreier

    Roland Dreier
     
  • Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (26 commits)
    mmc: sdio_ops.c should #include "sdio_ops.h"
    mmc: proper prototypes for mmc_attach_*()
    mmc: make __mmc_release_bus() static
    sdhci: improve no card, no reset quirk
    MMC: OMAP: Do not busy wait for end of command for ever
    MMC: OMAP: Start new commands from work queue instead of irq
    MMC: OMAP: Lazy clock shutdown
    MMC: OMAP: Move failing command abortion to workqueue
    MMC: OMAP: Use tasklet instead of workqueue for cover switch notification
    MMC: OMAP: Check the get_cover_state function pointer if not set
    MMC: OMAP: Using setup_timer instead of init_timer
    MMC: OMAP: Abort stuck commands
    MMC: OMAP: General cleanup for MMC multislot support
    MMC: OMAP: Power functions modified to MMC multislot support
    MMC: OMAP: Fix timeout calculation for MMC multislot support
    MMC: OMAP: New release dma and abort xfer functions
    MMC: OMAP: Add back cover switch support
    MMC: OMAP: Introduce new multislot structure and change driver to use it
    MMC: OMAP: Remove cover switch handling to allow adding multislot support
    MMC: OMAP: Fix the BYTEBLOCK capability removal
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC]: Remove SunOS and Solaris binary support.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/juhl/trivial: (24 commits)
    DOC: A couple corrections and clarifications in USB doc.
    Generate a slightly more informative error msg for bad HZ
    fix typo "is" -> "if" in Makefile
    ext*: spelling fix prefered -> preferred
    DOCUMENTATION: Use newer DEFINE_SPINLOCK macro in docs.
    KEYS: Fix the comment to match the file name in rxrpc-type.h.
    RAID: remove trailing space from printk line
    DMA engine: typo fixes
    Remove unused MAX_NODES_SHIFT
    MAINTAINERS: Clarify access to OCFS2 development mailing list.
    V4L: Storage class should be before const qualifier (sn9c102)
    V4L: Storage class should be before const qualifier
    sonypi: Storage class should be before const qualifier
    intel_menlow: Storage class should be before const qualifier
    DVB: Storage class should be before const qualifier
    arm: Storage class should be before const qualifier
    ALSA: Storage class should be before const qualifier
    acpi: Storage class should be before const qualifier
    firmware_sample_driver.c: fix coding style
    MAINTAINERS: Add ati_remote2 driver
    ...

    Fixed up trivial conflicts in firmware_sample_driver.c

    Linus Torvalds
     
  • * 'for-2.6.26' of git://git.kernel.dk/linux-2.6-block:
    block: fix blk_register_queue() return value
    block: fix memory hotplug and bouncing in block layer
    block: replace remaining __FUNCTION__ occurrences
    Kconfig: clean up block/Kconfig help descriptions
    cciss: fix warning oops on rmmod of driver
    cciss: Fix race between disk-adding code and interrupt handler
    block: move the padding adjustment to blk_rq_map_sg
    block: add bio_copy_user_iov support to blk_rq_map_user_iov
    block: convert bio_copy_user to bio_copy_user_iov
    loop: manage partitions in disk image
    cdrom: use kmalloced buffers instead of buffers on stack
    cdrom: make unregister_cdrom() return void
    cdrom: use list_head for cdrom_device_info list
    cdrom: protect cdrom_device_info list by mutex
    cdrom: cleanup hardcoded error-code
    cdrom: remove ifdef CONFIG_SYSCTL

    Linus Torvalds
     
  • This patch removes the no longer used export of kmap_atomic_to_page.

    Signed-off-by: Adrian Bunk
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • HARD_RESET_NOW() was unused.

    And one of the few remaining cli() users.

    Signed-off-by: Adrian Bunk
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Adrian Bunk
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6:
    SELinux: one little, two little, three little whitespaces, the avc.c saga.
    SELinux: cleanup on isle selinuxfs.c
    changing whitespace for fun and profit: policydb.c
    SELinux: whitespace and formating fixes for hooks.c
    SELinux: clean up printks
    SELinux: sidtab.c whitespace, syntax, and static declaraction cleanups
    SELinux: services.c whitespace, syntax, and static declaraction cleanups
    SELinux: mls.c whitespace, syntax, and static declaraction cleanups
    SELinux: hashtab.c whitespace, syntax, and static declaraction cleanups
    SELinux: ebitmap.c whitespace, syntax, and static declaraction cleanups
    SELinux: conditional.c whitespace, syntax, and static declaraction cleanups
    SELinux: avtab.c whitespace, syntax, and static declaraction cleanups
    SELinux: xfrm.c whitespace, syntax, and static declaraction cleanups
    SELinux: nlmsgtab.c whitespace, syntax, and static declaraction cleanups
    SELinux: netnode.c whitespace, syntax, and static declaraction cleanups
    SELinux: netlink.c whitespace, syntax, and static declaraction cleanups
    SELinux: netlabel.c whitespace, syntax, and static declaraction cleanups
    SELinux: netif.c whitespace, syntax, and static declaraction cleanups

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6: (42 commits)
    PCI: Change PCI subsystem MAINTAINER
    PCI: pci-iommu-iotlb-flushing-speedup
    PCI: pci_setup_bridge() mustn't be __devinit
    PCI: pci_bus_size_cardbus() mustn't be __devinit
    PCI: pci_scan_device() mustn't be __devinit
    PCI: pci_alloc_child_bus() mustn't be __devinit
    PCI: replace remaining __FUNCTION__ occurrences
    PCI: Hotplug: fakephp: Return success, not ENODEV, when bus rescan is triggered
    PCI: Hotplug: Fix leaks in IBM Hot Plug Controller Driver - ibmphp_init_devno()
    PCI: clean up resource alignment management
    PCI: aerdrv_acpi.c: remove unneeded NULL check
    PCI: Update VIA CX700 quirk
    PCI: Expose PCI VPD through sysfs
    PCI: iommu: iotlb flushing
    PCI: simplify quirk debug output
    PCI: iova RB tree setup tweak
    PCI: parisc: use generic pci_enable_resources()
    PCI: ppc: use generic pci_enable_resources()
    PCI: powerpc: use generic pci_enable_resources()
    PCI: ia64: use generic pci_enable_resources()
    ...

    Linus Torvalds
     
  • A couple of corrections and clarifications in USB
    documentation.

    Signed-off-by: Robert P. J. Day
    Signed-off-by: Jesper Juhl

    Robert P. J. Day
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    [HWRNG] omap: Minor updates
    [CRYPTO] kconfig: Ordering cleanup
    [CRYPTO] all: Clean up init()/fini()
    [CRYPTO] padlock-aes: Use generic setkey function
    [CRYPTO] aes: Export generic setkey
    [CRYPTO] api: Make the crypto subsystem fully modular
    [CRYPTO] cts: Add CTS mode required for Kerberos AES support
    [CRYPTO] lrw: Replace all adds to big endians variables with be*_add_cpu
    [CRYPTO] tcrypt: Change the XTEA test vectors
    [CRYPTO] tcrypt: Shrink the tcrypt module
    [CRYPTO] tcrypt: Change the usage of the test vectors
    [CRYPTO] api: Constify function pointer tables
    [CRYPTO] aes-x86-32: Remove unused return code
    [CRYPTO] tcrypt: Shrink speed templates
    [CRYPTO] tcrypt: Group common speed templates
    [CRYPTO] sha512: Rename sha512 to sha512_generic
    [CRYPTO] sha384: Hardware acceleration for s390
    [CRYPTO] sha512: Hardware acceleration for s390
    [CRYPTO] s390: Generic sha_update and sha_final
    [CRYPTO] api: Switch to proc_create()

    Linus Torvalds
     
  • …l/git/jgarzik/misc-2.6

    * 'irq-cleanups-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
    [ISDN] minor irq handler cleanups
    drivers/char: minor irq handler cleanups
    [PPC] minor irq handler cleanups
    [BLACKFIN] minor irq handler cleanups
    [SPARC] minor irq handler cleanups
    ARM minor irq handler cleanup: avoid passing unused info to irq

    Linus Torvalds