Sam Ravnborg [Wed, 23 Jan 2008 20:13:50 +0000 (21:13 +0100)]
kbuild: simplified warning report in modpost
Refactor code so the warning report function
does nothing else than reporting warnings.
As a side effect some other code paths were cleaned
up by this.
Sam Ravnborg [Mon, 21 Jan 2008 20:31:44 +0000 (21:31 +0100)]
kbuild: introduce new option to enhance section mismatch analysis
Setting the option DEBUG_SECTION_MISMATCH will
report additional section mismatch'es but this
should in the end makes it possible to get rid of
all of them.
Sam Ravnborg [Sun, 20 Jan 2008 19:07:28 +0000 (20:07 +0100)]
Use separate sections for __dev/__cpu/__mem code/data
Introducing separate sections for __dev* (HOTPLUG),
__cpu* (HOTPLUG_CPU) and __mem* (MEMORY_HOTPLUG)
allows us to do a much more reliable Section mismatch
check in modpost. We are no longer dependent on the actual
configuration of for example HOTPLUG.
This has the effect that all users see much more
Section mismatch warnings than before because they
were almost all hidden when HOTPLUG was enabled.
The advantage of this is that when building a piece
of code then it is much more likely that the Section
mismatch errors are spotted and the warnings will be
felt less random of nature.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Greg KH <greg@kroah.com> Cc: Randy Dunlap <randy.dunlap@oracle.com> Cc: Adrian Bunk <bunk@kernel.org>
Sam Ravnborg [Sun, 13 Jan 2008 21:21:31 +0000 (22:21 +0100)]
kbuild: introduce blacklisting in modpost
Change the logic in modpost so we identify all the
bad combinations of sections that refer to other
sections.
Compared to the previous approach we are much less
dependent on knowledge of what additional sections
the tool chain uses and thus we can keep the false
positives low.
The implmentation is changed to use a table based
lookup and we now check all combinations in first
pass so we no longer need separate passes for init
and exit sections.
Tested that the same warnings are generated for
an allyesconfig build without CONFIG_HOTPLUG.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Randy Dunlap <randy.dunlap@oracle.com> Cc: Adrian Bunk <bunk@kernel.org>
Sam Ravnborg [Fri, 18 Jan 2008 20:04:34 +0000 (21:04 +0100)]
kbuild: try harder to find symbol names in modpost
The relocation record sometimes contained an address
which was not an exactly match for a symbol.
Implment some simple logic such that if there
is a symbol within 20 bytes of the address contained
in the relocation record then print the name of this
symbol.
With this change modpost could find symbol names
for the remaining .init.text symbols in my
allyesconfig build for x86_64.
Randy Dunlap [Mon, 14 Jan 2008 23:18:31 +0000 (15:18 -0800)]
kbuild: minor scripts/decodecode update
Remove the tmp file when exiting. Noticed by Arjan van de Ven.
Catch mktemp failure and exit with message.
Trap kill or other signals and exit cleanly.
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Roman Zippel [Mon, 14 Jan 2008 03:50:54 +0000 (04:50 +0100)]
kconfig: environment symbol support
Add the possibility to import a value from the environment into kconfig
via the option syntax. Beside flexibility this has the advantage
providing proper dependencies.
Documented the options syntax.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Roman Zippel [Mon, 14 Jan 2008 03:50:23 +0000 (04:50 +0100)]
kconfig: explicitly introduce expression list
Rename E_CHOICE to E_LIST to explicitly add support for expression
lists. Add a helper macro expr_list_for_each_sym to more easily iterate
over the list.
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Jan Beulich [Fri, 11 Jan 2008 09:09:00 +0000 (09:09 +0000)]
kbuild: scripts/mkmakefile: dynamic determination of output directory
Rather than fixing the output directory in the generated Makefile,
determine it from the placement of Makefile. This allows moving
the build tree around or accessing it through different mount paths.
(The lastword definition is a compatibility one for make prior to 3.81;
newer make will simply ignore it and use the [faster] built-in.)
Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Sam Ravnborg [Fri, 11 Jan 2008 18:17:15 +0000 (19:17 +0100)]
kbuild: clean up modpost.c
akpm complained about overly long lines in modpost.c and
when started additional style issues were fixed:
o Updated my copyright
o Removed unneeded {}
o Drop assignments in if ()
o Spaces around operators
o Break long lines
o locate * near variable not type
o Fix a format specifier for sizeof()
o Corrected placement of '{' and '}'
o spaces to tabs (but use tabs only for indention)
modpost.c is not checkpatch clean. Readability were favoured
on top of checkpatch compliance.
But checkpatch were used to find additional stuff to clean up.
Ladislav Michl [Wed, 9 Jan 2008 15:36:19 +0000 (16:36 +0100)]
kconfig: use C89 random functions in conf.c
rand and srand functions conform also to C89 in addition to POSIX.1-2001,
which makes them a bit more portable (work also on MinGW host). Linux man
page also says:
"The versions of rand() and srand() in the Linux C Library use the same
random number generator as random() and srandom()".
* Use C89 conformant functions rand() and srand()
Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org>
Jan Engelhardt [Thu, 3 Jan 2008 22:33:44 +0000 (23:33 +0100)]
kconfig: allow overriding symbols
Allow config variables in .config to override earlier ones in the same
file. In other words,
# CONFIG_SECURITY is not defined
CONFIG_SECURITY=y
will activate it. This makes it a bit easier to do
cat original-config myconfig myconfig2 ... >.config;
and run *config as expected.
Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org> Cc: Randy Dunlap <randy.dunlap@oracle.com>
Ladislav Michl [Mon, 17 Dec 2007 18:07:41 +0000 (19:07 +0100)]
kconfig: make kconfig MinGW friendly
Kconfig is powerfull tool. So powerfull that more and more software
projects are using it for configuration. So instead of fixing some of
them one by one, lets fix it in kernel and wait for sync.
This work was originaly done for PTXdist - GPL licensed build system for
userlands and cross-compilers, but it will not hurt kernel kconfig
either. PTXdist menuconfig now works on Windows linked with PDCurses and
compiled using MinGW - there is no termios and signals.
* Do not include <sys/wait.h> and <signal.h> (comes from times when
lxdialog was separate process)
* Do not mess with termios directly and let curses tell screen size.
Comment to commit c8dc68ad0fbd934e78e913b8a8d7b45945db4930 says
check for screen size could be removed later, but because it didn't
happen for more than year I left it here as well.
* Save cursor position added by Sam
Signed-off-by: Ladislav Michl <ladis@linux-mips.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org>
Theodore Ts'o [Sat, 3 Nov 2007 01:53:01 +0000 (21:53 -0400)]
kbuild: fix false positive -dirty tag caused by make-kpkg
make-kpkg modifies scripts/package/Makefile and deletes
scripts/package/builddeb as part of its build process. Ignore these
changes so the tree isn't marked as -dirty, when it is just an
artifact of make-kpkg. (make-kpkg clean restores the files to their
original state, and these helper scripts won't affect the final
compiled kernel in any way.)
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Theodore Ts'o [Sat, 3 Nov 2007 01:53:00 +0000 (21:53 -0400)]
kbuild: fix scripts/setlocalversion to avoid erroneous -dirty tag
If git's index file is out of date, and some files have been touched
such that their timestamp doesn't what is in the index, "git
diff-index HEAD" may show that a particular file is dirty, when in
fact it really isn't. Running "git update-index" will update the
index to avoid these false positives.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Theodore Ts'o [Sat, 3 Nov 2007 01:52:59 +0000 (21:52 -0400)]
kbuild: change CONFIG_LOCALVERSION_AUTO to use a git-describe-ish format
Change the automatic local version to have the form -nnnnn-gSHA1SUMID,
where 'nnnnn' is the number of commits since the last tag (i.e.,
2.6.21-rc7). This makes it much more likely that the package names created
for the kernel will look "newer" to a package manager.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Andreas Mohr [Sat, 17 Nov 2007 20:51:25 +0000 (21:51 +0100)]
kbuild: eradicate bashisms in scripts/patch-kernel
Make the patch-kernel shell script sufficiently compatible with POSIX
shells, i.e., remove bashisms from scripts/patch-kernel.
This means that it now also works on dash 0.5.3-5
and still works on bash 3.1dfsg-8.
Full changelog:
- replaced non-standard "==" by standard "="
- replaced non-standard "source" statement by POSIX "dot" command
- use leading ./ on mktemp filename to force the tempfile to a local
directory, so that the search path is not used
- replace bash syntax to remove leading dot by similar POSIX syntax
- added missing (optional/not required) $ signs to shell variable names
Signed-off-by: Andreas Mohr <andi@lisas.de> Acked-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
WANG Cong [Wed, 2 Jan 2008 05:55:33 +0000 (13:55 +0800)]
FS: Remove dead code
Remove dead code in smbfs makefile.
Cc: Al Viro <viro@www.linux.org.uk> Cc: Tim Shimmin <xfs-masters@oss.sgi.com> Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
WANG Cong [Tue, 1 Jan 2008 13:41:08 +0000 (21:41 +0800)]
INFINIBAND: Remove 'TOPDIR' from Makefiles
This patch removes TOPDIR from infiniband Makefile and delete
one include statement pointing to a non-existing directory
Cc: Roland Dreier <rolandd@cisco.com> Cc: Sean Hefty <mshefty@ichips.intel.com> Cc: Hal Rosenstock <hal.rosenstock@gmail.com> Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Sam Ravnborg [Tue, 1 Jan 2008 12:40:28 +0000 (13:40 +0100)]
kbuild: fix installing external modules
Eric Sandeen <sandeen@redhat.com> reported:
Installing external modules is supposed to put them in some path
under /lib/modules/<version>/extra/subdir/, but this change:
http://linux.bkbits.net:8080/linux-2.6/?PAGE=cset&REV=1.1982.9.23
makes them go under /lib/modules/<version>/extrasubdir
(for example, make M=fs/ext3 modules_install puts ext3.ko in
/lib/modules/<version>/extrafs/ext3.ko)
This was the case only when specifying a trailing slash to M=..
Fixed by removing trailing slash if present so
we correctly match dir part of target.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Eric Sandeen <sandeen@redhat.com>
Robert P. J. Day [Mon, 31 Dec 2007 13:58:38 +0000 (14:58 +0100)]
A few corrections to include/linux/Kbuild
auxvec.h, i2c-dev.h and vt.h *should* be unifdef'ed i2o-dev.h does not need
unifdef'ing
Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Cc: David Woodhouse <dwmw2@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Mike Frysinger [Sat, 10 Nov 2007 14:32:20 +0000 (09:32 -0500)]
kbuild: fixup genksyms usage/getopt
The usage does not mention the "-a,--arch" or "-T,--dump-types" options, so
add them. The calls to getopt() seem to mention options that no longer exist
(some "k" and "p" thingy) but omits the "h" option which means using '-h'
actually triggers the error code path, so update those as well.
Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Aron Griffis [Wed, 28 Nov 2007 21:55:44 +0000 (16:55 -0500)]
kbuild: support mercurial in setlocalversion
This represents mercurial changesets similarly to git. For untagged
revisions, append the changeset id. If there are uncommitted changes,
append -dirty. For example, -hgc60016ba6237-dirty
Signed-off-by: Aron Griffis <aron@hp.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Andres Salomon [Mon, 17 Dec 2007 06:34:58 +0000 (01:34 -0500)]
kconfig: use getopt() in conf.c for handling command line arguments
Switch from doing our own parsing of command line arguments to
using getopt(3) to do it. Aside from simplifying things, this allows us to
specify multiple arguments; the old code could only accept two arguments
(input_mode and kconfig name).
Note some subtle changes:
- The argument '-?' is no longer supported.
- '-h' is not treated as an error, so output goes to stdout, and we
exit with '0'.
- There is no compatibility checking amongst arguments; the last option
will simply override earlier options. For example, 'conf -n -y foo'
is perfectly valid now (input_mode will be set_yes). Previously, that
would have been an error ("can't find file -y").
Signed-off-by: Andres Salomon <dilinger@debian.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Cc: Roman Zippel <zippel@linux-m68k.org>
Andi Kleen [Thu, 22 Nov 2007 02:43:10 +0000 (03:43 +0100)]
kbuild: fix a buffer overflow in modpost
When passing an file name > 1k the stack could be overflowed.
Not really a security issue, but still better plugged. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Andi Kleen [Thu, 22 Nov 2007 02:43:09 +0000 (03:43 +0100)]
kbuild: fix format string warnings in modpost
Fix wrong format strings in modpost exposed by the previous patch.
Including one missing argument -- some random data was printed instead. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Tejun Heo [Fri, 7 Dec 2007 12:04:30 +0000 (21:04 +0900)]
kbuild: implement modules.order
When multiple built-in modules (especially drivers) provide the same
capability, they're prioritized by link order specified by the order
listed in Makefile. This implicit ordering is lost for loadable
modules.
When driver modules are loaded by udev, what comes first in
modules.alias file is selected. However, the order in this file is
indeterministic (depends on filesystem listing order of installed
modules). This causes confusion.
The solution is two-parted. This patch updates kbuild such that it
generates and installs modules.order which contains the name of
modules ordered according to Makefile. The second part is update to
depmod such that it generates output files according to this file.
Note that both obj-y and obj-m subdirs can contain modules and
ordering information between those two are lost from beginning.
Currently obj-y subdirs are put before obj-m subdirs.
Sam Ravnborg cleaned up Makefile modifications and suggested using awk
to remove duplicate lines from modules.order instead of using separate
C program.
Signed-off-by: Tejun Heo <htejun@gmail.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Cc: Bill Nottingham <notting@redhat.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Jon Masters <jonathan@jonmasters.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Johannes Berg [Wed, 24 Oct 2007 22:08:48 +0000 (15:08 -0700)]
kernel-doc: new P directive for DOC: sections
The !P directive includes the contents of a DOC: section
given by title, e.g.
!Pfilename Title of the section
Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Johannes Berg [Wed, 24 Oct 2007 22:08:48 +0000 (15:08 -0700)]
kernel-doc: use no-doc option
When asked by a template to include all functions from a file,
it will also include DOC: sections wreaking havoc in the generated
docbook file. This patch makes it use the new -no-doc-sections
flag for kernel-doc to avoid this.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Johannes Berg [Wed, 24 Oct 2007 22:08:48 +0000 (15:08 -0700)]
kernel-doc: process functions, not DOC:
This flag is necessary for the next patch for docproc to output
only the functions and not DOC: sections when a function list
is requested.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Johannes Berg [Wed, 24 Oct 2007 22:08:48 +0000 (15:08 -0700)]
kernel-doc: single DOC: selection
Currently, DOC: sections are always output even if only a single
function is requested, fix this and also make it possible to just
output a single DOC: section by giving its title as the function
name to output.
Also fixes docbook XML well-formedness for sections with examples.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Johannes Berg [Wed, 24 Oct 2007 22:08:48 +0000 (15:08 -0700)]
kernel-doc: init kernel version
The kernel-doc script triggers a perl warning when invoked
without KERNELVERSION in the environment, rather make it use
the string "unknown kernel version" instead.
Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (197 commits)
sh: add spi header and r2d platform data V3
sh: update r7780rp interrupt code
sh: remove consistent alloc stuff from the machine vector
sh: use declared coherent memory for dreamcast pci ethernet adapter
sh: declared coherent memory support V2
sh: Add support for SDK7780 board.
sh: constify function pointer tables
sh: Kill off -traditional for linker script.
cdrom: Add support for Sega Dreamcast GD-ROM.
sh: Kill off hs7751rvoip reference from arch/sh/Kconfig.
sh: Drop r7780rp_defconfig, use r7780mp_defconfig as kbuild default.
sh: Kill off dead HS771RVoIP board support.
sh: r7785rp: Fix up DECLARE_INTC_DESC() arg mismatch.
sh: r7785rp: Hook up the rest of the HL7785 FPGA IRQ vectors.
sh: r2d - enable sm501 usb host function
sh: remove voyagergx
sh: r2d - add lcd planel timings to sm501 platform data
sh: Add OHCI and UDC platform devices for SH7720.
sh: intc - remove default interrupt priority tables
sh: Correct pte size mismatch for X2 TLB.
...
Linus Torvalds [Mon, 28 Jan 2008 21:52:20 +0000 (08:52 +1100)]
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (24 commits)
HID: ADS/Tech Radio si470x needs blacklist entry
HID: Logitech Extreme 3D needs NOGET quirk
HID: Refactor MS Presenter 8K key mapping
HID: MS Presenter mapping for PID 0x0701
HID: Support Samsung IR remote
HID: fix compilation of hidbp drivers without usbhid
HID: Blacklist the Gretag-Macbeth Huey display colorimeter
HID: the `bit' in hidinput_mapping_quirks() is an out parameter
HID: remove redundant WARN_ON()s in order not to scare users
HID: force hiddev creation for SONY PS3 controller
HID: Use hid blacklist in usbmouse/usbkbd
HID: proper handling of MS 4k and 6k devices
HID: remove unused variable in quirk event handler
HID: hid-input quirk for BTC 8193
HID: separate hid-input event quirks from generic code
HID: refactor mapping to input subsystem for quirky devices
HID: Microsoft Wireless Optical Desktop 3.0 quirk
HID: Add support for Logitech Elite keyboards
HID: add full support for Genius KB-29E
HID: fix a potential bug in pointer casting
...
Linus Torvalds [Mon, 28 Jan 2008 21:51:05 +0000 (08:51 +1100)]
Merge branch 'sg' of git://git.kernel.dk/linux-2.6-block
* 'sg' of git://git.kernel.dk/linux-2.6-block:
SG: work with the SCSI fixed maximum allocations.
SG: Convert SCSI to use scatterlist helpers for sg chaining
SG: Move functions to lib/scatterlist.c and add sg chaining allocator helpers
Tobias Lorenz [Sun, 27 Jan 2008 21:19:22 +0000 (22:19 +0100)]
HID: ADS/Tech Radio si470x needs blacklist entry
This patch adds blacklist entries in hid-quirks.c to let the usbhid driver
ignore the si470x radio devices. They are now handled by the new radio-si470x
driver.
Jan Kiszka [Mon, 14 Jan 2008 12:08:27 +0000 (13:08 +0100)]
HID: Refactor MS Presenter 8K key mapping
Following the suggestion of Jonas, this patch maps the special keys of
the MS Presenter 8000 to targets that should allow for better re-mapping
according to individual use cases (i.e. I avoided hard-wiring to
standard keys). This time I also included the last missing key event
(switching back from presentation mode).
The optimal Xmodmap customization for using the Presenter with
OpenOffice now looks like this for me:
keycode 175 = Escape
keycode 179 = F5
keysym XF86Forward = Right
keysym XF86Back = Left
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Robert Schedel [Tue, 25 Dec 2007 23:57:40 +0000 (00:57 +0100)]
HID: Support Samsung IR remote
Samsung USB remotes (0419:0001) are rejected by kernel 2.6.23, because the
report descriptor from the remote contains a 48 bit HID report field. HID 1.11
states: Fields may span at most 4 bytes.
This patch, based on 2.6.23, fixes this by modifying the internal report
descriptor in hid-quirks.c. Additional user space support (e.g. LIRC) is
required to fetch the information from the hiddev interface.
The burden to reconstruct the data is moved into userspace (lirc through hiddev).
There is no need to set HID_QUIRK_HIDDEV quirk, as the device has also output
applications, which trigger the creation of hiddev device automatically.
Signed-off-by: Robert Schedel <r.schedel@yahoo.de> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Nicolas Mailhot [Sun, 16 Dec 2007 17:16:43 +0000 (18:16 +0100)]
HID: Blacklist the Gretag-Macbeth Huey display colorimeter
The Gretag-Macbeth Huey display colorimeter claims to be an HID device but
isn't. As a result the linux HID device will claim it, preventing FLOSS
software like Argyll CMS from talking to it.
Jiri Kosina [Fri, 30 Nov 2007 10:12:58 +0000 (11:12 +0100)]
HID: remove redundant WARN_ON()s in order not to scare users
The WARN_ON() in implement() and extract() spit out stacktraces and
a lot of other information that might make users think that there is
something seriously wrong with the system. WARN_ON() should not be
deliberately triggerable by userspace application, which these can be.
Usually this WARN_ON() triggers when hid2hci utility is sending the
data that don't correspond to the device's report descriptor.
Bastien Nocera [Wed, 28 Nov 2007 15:34:53 +0000 (16:34 +0100)]
HID: force hiddev creation for SONY PS3 controller
The device is not discoverable, and needs to be poked to set its master, the
Bluetooth device it will try to connect to when the "Home" button is pressed
without a cable plugged in.
Using libusb means disconnecting the device from its driver to get the report
descriptor. Using hiddev, we can poke it without relinquishing control over it,
so when you plug it in, it would still work as a pad.
This could be then used by sixpair program, after it is rewritten to use
hiddev instead of libusb.
Jiri Kosina [Mon, 26 Nov 2007 12:18:00 +0000 (13:18 +0100)]
HID: hid-input quirk for BTC 8193
BTC 8193 keyboard handles its scrollwheel in very non-standard way.
It produces two non-standard usages for scrolling up and down, in
both cases with postive value equaling to 1. We handle this by temporary
mapping, which we then catch in quirk event handler, and remap to
negative HWHEEL even in order to introduce correct behavior.
Also the button requires special mapping, as it triggers standard-violating
usage code.
Reported in kernel.org bugzilla #9385
Reported-by: Kir Kolyshkin <kir@sacred.ru> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Kosina [Fri, 23 Nov 2007 12:16:02 +0000 (13:16 +0100)]
HID: separate hid-input event quirks from generic code
This patch separates also the hid-input quirks that have to be
applied at the time the event occurs, so that the generic code
handling HUT-compliant devices is not messed up by them too much.
Jiri Kosina [Thu, 22 Nov 2007 14:18:18 +0000 (15:18 +0100)]
HID: refactor mapping to input subsystem for quirky devices
Currently, the handling of mapping between hid and input for devices
that don't conform to HUT 1.12 specification is very messy -- no per-device
handling, no blacklists, conditions on idVendor and idProduct placed
all over the code.
This patch moves all the device-specific input mapping to a separate
file, and introduces a blacklist-style handling for non-standard
device-specific mappings.
Drew Fisher [Sun, 18 Nov 2007 11:29:56 +0000 (12:29 +0100)]
HID: Microsoft Wireless Optical Desktop 3.0 quirk
Make the Microsoft Wireless Optical Desktop 3.0 work as a mouse.
Microsoft Wireless Optical Desktop 3.0 doesn't properly describe its interface
class. Specifically, since it doesn't mark the second interface as a mouse
(bInterfaceSubclass = 0), it doesn't get HID_QUIRK_NOGET applied to the
interface, and then acts broken when polled.
Jiri Kosina [Wed, 14 Nov 2007 11:13:26 +0000 (12:13 +0100)]
HID: add full support for Genius KB-29E
Genius KB-29E has broken report descriptor, which causes some of the
Consumer usages to appear incorrectly as Button usages. We fix it by
fixing the report descriptor before it is being parsed.
Also a few of the keys violate the HUT standard, so they need a special
handling. They currently fall into "Reserved" range as per HUT 1.12.
Li Zefan [Wed, 14 Nov 2007 10:31:05 +0000 (11:31 +0100)]
HID: fix a potential bug in pointer casting
Don't directly cast list_head * to foo *, this works only when list
is the first member of struct foo, and we should not make the assumption
how members are ordered in the structure.
i.e. struct *f = (struct *f)pos will work if:
struct foo {
struct list_head list;
int i;
};
but will fail if:
struct foo {
int i;
struct list_head list;
}
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>