Sam Ravnborg [Wed, 28 Jul 2004 02:36:33 +0000 (04:36 +0200)]
kbuild: Introduce source symlink in /lib/modules/.../
Traditionally when building a kernel the source and the
output files are mixed.
When building a kernel using the O= syntax to save output
files in a separate directory a way is needed to locate
the kernel source.
The implemented solution is a new symlink 'source' being
added to /lib/modules/.../
used to locate source for an installed kernel.
The original symlink build points to the directory
containing the output files.
Please note that when the kernel is build with source and
output files mixed the two symlinks 'build' and 'source'
will point to the same directory, thus no changes
compared to before.
Two options was considered:
a) Adding a new symlink pointing to the output files "object"
=> All external modules have to specify O= to build
=> External modules grepping in .config or .h files
in include/asm needs to be updated
=> External modules that do grep in source code and
ordinary header files just works
b) Let the build symlink point to the output files and introduce a new
symlink "source" pointing to the kernel source
=> External module can be build without specifying O=
=> External modules grepping in .config or .h files
in include/asm just works
=> External modules that do grep in source code and
ordinary header files needs to be updated
Based on the above option b) is considered the least painfull alternative.
So to sum up:
- If a distro does not use separate output dir => no change
- If a distro uses separate output dir =>
- Trivial external module just builds
- Non-trivial (build-wise) external modules are probarly broken
Without this patch
- If a distro does not use separate output dir => no change
- If a distro uses separate output dir =>
- Trivial external modules had to specify O= to build,
and the directory being pointed at was not obvious
- grep in .config or include files in asm/ required
knowledge where to locate output files
Preferred syntax for building external modules are the following:
make -C /lib/modules/`uname -r`/build M=`pwd`
[Substituting 'M=...' with 'SUBDIRS=... modules' give same effect].
When the kernel is built using separate output directory the above
invocation of make will invoke the generated Makefile located in the output
directory - that again will invoke the Makefile located in the kernel
source tree root.
Patch includes contributions from:
Andreas Gruenbacher <agruen@suse.de>
Sam Ravnborg [Wed, 28 Jul 2004 01:54:53 +0000 (03:54 +0200)]
kbuild: Create Makefile in output directory if != kernel tree
When building a kernel using the O= syntax to save output
files in a separate output directory now create a small Makefile in
that same dir.
This Makefile allow one to use make in the output directory without
the hassle of going back to the kernel source tree.
The O= option is added by this Makefile stub.
Please note that the Makefile silently overwrite an old one, so changes
will be lost if modified.
If there is a need to tweak a Makefile in the output directory it is recommended
to use the filename 'makefile', which GNU Make will try first.
Sam Ravnborg [Fri, 23 Jul 2004 03:28:19 +0000 (05:28 +0200)]
kbuild: Fix up moving of modpost
A few small issues to fix the moving of modpost.
A few files was missing in the commit and one change needed.
Also bk ignored the files in their new location.
Sam Ravnborg [Fri, 23 Jul 2004 02:32:23 +0000 (04:32 +0200)]
kbuild: Less intrusive LANG override, fixes menuconfig
The locale override caused problems for some people with locale setiings
different from 'C'. make menuconfig was looking bad / unuseable.
This patch limit the override of locales to the part where we actually descend the kernel
doing the full build of the kernel.
The speed improvement is the same.
make menuconfig should now be useable for all locale settings again.
Thanks to Marcel Sebek <sebek64@post.cz> for pointing out this problem and being
paitent in testing.
Many times it would be nice to quickly package up a kernel tree you're
working on, without having to rebuild the whole thing again from a clean
source tree (like the current rpm-pkg target does). The patch below
adds an "binrpm-pkg" target which uses your existing (already built)
tree.
Modified by me to always do a make and use binrpm-pkg.
Signed-off-by: Greg Edwards <edwardsg@sgi.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
This cleans up legacy x86 binary support by introducing a new
personality bit: READ_IMPLIES_EXEC, and implements Linus' suggestion to
add the PROT_EXEC bit on the two affected syscall entry places,
sys_mprotect() and sys_mmap(). If this bit is set then PROT_READ will
also add the PROT_EXEC bit - as expected by legacy x86 binaries. The
ELF loader will automatically set this bit when it encounters a legacy
binary.
This approach avoids the problems the previous ->def_flags solution
caused. In particular this patch fixes the PROT_NONE problem in a
cleaner way (http://lkml.org/lkml/2004/7/12/227), and it should fix the
ia64 PROT_EXEC problem reported by David Mosberger. Also,
mprotect(PROT_READ) done by legacy binaries will do the right thing as
well.
the details:
- the personality bit is added to the personality mask upon exec(),
within the ELF loader, but is not cleared (see the exceptions below).
This means that if an environment that already has the bit exec()s a
new-style binary it will still get the old behavior.
- one exception are setuid/setgid binaries: these will reset the
bit - thus local attackers cannot manually set the bit and circumvent
NX protection. Legacy setuid binaries will still get the bit through
the ELF loader. This gives us maximum flexibility in shaping
compatibility environments.
- selinux also clears the bit when switching SIDs via exec().
- x86 is the only arch making use of READ_IMPLIES_EXEC currently. Other
arches will have the pre-NX-patch protection setup they always had.
I have booted an old distro [RH 7.2] and two new PT_GNU_STACK distros
[SuSE 9.2 and FC2] on an NX-capable CPU - they work just fine and all
the mapping details are right. I've checked the PROT_NONE test-utility
as well and it works as expected. I have checked various setuid
scenarios as well involving legacy and new-style binaries.
an improved setarch utility can be used to set the personality bit
manually:
David Eger [Sun, 18 Jul 2004 02:06:48 +0000 (19:06 -0700)]
[PATCH] pmac_zilog: serial minors taken failure path fix
I've tracked down the core issue giving me the oops wrt pmac_zilog.
When you have two serial drivers, (e.g. 8250 and PMAC_ZILOG) they both say
"I want to reserve X ports starting with major TTY_MAJOR and minor 64".
By the time pmac_zilog gets there, the ports it requests are already
reserved. Unfortunately, init_pmz() doesn't check for pmz_register()
failure, and so it merrily goes on to register the half-initialized
pmac_zilog driver with the power management subsystem.
This path provides a proper failure path.
Also:
Restore ppc configs now that I know people use AT Keyboards on CHRP and PReP
machines, and the zilog driver is no longer Oops'ing.
Signed-off-by: David Eger <eger@havoc.gtf.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
[PATCH] Fix i386 bootup with HIGHMEM+SLAB_DEBUG+NUMA and no real
For some reason I booted a NUMA and SLAB_DEBUG i386 kernel on a non
NUMA 512MB machine. This caused an oops at bootup in change_page_attr.
The reason was that highmem_start_start page ended up zero and
that triggered the highmem check in change_page_attr when the
slab debug code would unmap a kernel mapping.
Fix is straightforward: if there is no highmem set highmem_start_page
to max_low_pfn+1
[PATCH] Fix memory corruption at x86-64 SMP bootup
This fixes a long standing corruption bug in the x86-64 code. The SMP
trampoline would corrupt page 2, which was sometimes used for other
data. This corrupted the ioport/iomem list in some cases and causes
oopses while read /proc/iomem.
Fix is to check the correct location and don't zero it afterwards
because it gets reinitialized for the next CPU anyways.
This patch fixes a hard-to-trigger condition, where the inode is on the
inode_in_use list while it's state is dirty. In this state dirty pages are
not written back in sync() or from kupdate, only from direct page reclaim.
And this causes a livelock in balance_dirty_pages after a while.
The actual sequence of events required to get into this state is:
Alexander Viro [Fri, 16 Jul 2004 05:04:13 +0000 (22:04 -0700)]
[PATCH] sparse: beginning of iovec cleanups - infrastructure
Beginning of iovec cleanups - added two helpers (kernel_{send,recv}msg)
that do sock_sendmsg/sock_recvmsg with kvec instead of iovec; basically,
they were abstracted from earlier afs patch. They take kvec/length of
kvec as separate arguments, do set_fs(), stick kvec into msghdr and call
sock_...msg().
The next group of patches will switch network filesystems to use of kvec
for kernel data + use of these helpers. Basically, the same thing we'd
done for afs.
Alexander Viro [Fri, 16 Jul 2004 05:03:51 +0000 (22:03 -0700)]
[PATCH] misc sparse cleanups
- missing ; between default: and } in sun4setup.c
- cast of pointer to unsigned long long instead of unsigned long in
x86_64 signal.c
- missed annotations for ioctl structure in sparc64 openpromio.h
(should've been in the same patch as the rest of drivers/sbus/*
annotations)
- 0->NULL in list.h and pmdisk.c
Daniel McNeil [Fri, 16 Jul 2004 04:52:43 +0000 (21:52 -0700)]
[PATCH] mmap PROT_NONE fix for NX patch
This works around the current PROT_NONE problem from elf binaries that
do not have the PT_GNU_STACK so that the do not have execute permission.
The problem was that setting "def_flags" to include the VM_EXEC bit for
compatibility reasons would also make PROT_NONE pages executable, which
is obviously not correct.
Signed-off-by: Daniel McNeil <daniel@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Pat LaVarre [Fri, 16 Jul 2004 04:17:27 +0000 (21:17 -0700)]
[PATCH] fix cdrom mt rainier probe
Writing to RAM capable media was broken by the moving of write flag
detection from probe to drive open time. The media would stay
terminally RO due to the set_disk_ro() call.
This fixes the code to do the right thing - the detection stays at open
time (which it must, since it depends on the media), and we fail with
-EROFS if the media can't be written.
David Woodhouse [Thu, 15 Jul 2004 13:07:49 +0000 (06:07 -0700)]
[PATCH] ppc32: Fix UART initialisation on WindRiver SBC8560.
The UART tristates its IRQ output when the OUT2 bit in the MCR isn't
set. For reasons not known to civilised man, the hardware engineers
stopped it from floating by pulling it _high_ instead of low, so if
anybody requests that IRQ before OUT2 is turned on, we die in an IRQ
storm. The serial8250 driver does precisely that thing, with precisely
that effect.
ALPHA_KLUDGE_MCR was designed to fix exactly this kind of problem, so we
use it here as intended. Ideally ALPHA_KLUDGE_MCR would go away and be
replaced with something like UPF_FORCE_OUT2 and UPF_FORCE_OUT1 flags,
but now is not the time to get me started on a cleanup of everything
about serial8250 that offends me.
Just unearthed another of my warcrimes: reading a 17-page sparse file,
I mean holey file, hits the in_interrupt panic in do_exit on a current
highmem kernel (but 2.6.7 is okay). Fix mismatched preempt count from
shmem_swp_alloc's swapindex hole case by mapping an empty_zero_page.
David Woodhouse [Thu, 15 Jul 2004 19:32:25 +0000 (20:32 +0100)]
NOR flash drivers update
- Handle cached access to flash chips on supporting platforms
- Handle arrangements of chips larger than a single bus width
- Clean up the AMD/Fujitsu chip driver
- Update board 'mapping' drivers to match
- New mapping drivers for new platforms.
David Woodhouse [Thu, 15 Jul 2004 19:27:17 +0000 (20:27 +0100)]
MTD core include and device code cleanup
- Move user-visible bits from headers to include/mtd/ directory.
- Update old DiskOnChip drivers for newer hardware.
- Switch NFTL and INFTL support to work with new DiskOnChip/NAND code.
- New phram driver, reimplenting the ugly slram driver.
- Bug fixes in partitioning code
David Woodhouse [Thu, 15 Jul 2004 19:11:45 +0000 (20:11 +0100)]
NAND flash driver updates.
Update the core NAND code:
- support multiple chips
- support bad block tables
- improved generic ECC support and 'spare area' usage.
- 16-bit NAND
- Large-block NAND devices
- Renesas AG-AND devices
- M-Systems DiskOnChip devices
- Other new board support wrappers
Most of the work was done by Thomas Gleixner.
Signed-Off-By: David Woodhouse <dwmw2@infradead.org>
[PATCH] CFQ: allocation under lock, missing memset on allocation
This fixes two issues in the CFQ IO-scheduler:
o Still a bad allocation under the queue lock
o We need to clear crq after mempool_alloc(), otherwise the rbtree
pointers can contain garbage if slab poisoning is enabled. This causes
crashes on front/back merges because rb_next() returns crap.
[PATCH] ide: use "normal" handlers for "flagged" taskfiles (ide-taskfile.c)
This fixes following issues for PIO-in:
- shared PCI IRQs handling
- fail request if the last status is bad
and PIO-out:
- set hwgroup->handler/timer in prehandlers
- handle drive->unmask in prehandlers
- check for !rq->nr_sectors and DRQ_STAT bit set
- use drive->bad_wstat instead of BAD_W_STAT
[PATCH] ide: merge CONFIG_IDE_TASKFILE_IO=y|n PIO handlers together
This fixes a couple of CONFIG_IDE_TASKFILE_IO=n issues:
- check status after last sector for PIO-in transfers
- handle drive->unmask properly in PIO-out prehandlers
- use rq->[hard]_nr_sectors where appropriate
[PATCH] ide: no partial completions for PIO (CONFIG_IDE_TASKFILE_IO=y)
Don't do partial completions but instead acknowledge already transferred
sectors with verified good status on error. This allows us to complete
"good" sectors to block layer even if bio they belong to wasn't finished
and simplifies code.
drive_is_ready() reads STATUS register if CONFIG_IDEPCI_SHARE_IRQ is not
defined and ALTSTATUS register if it is defined. Therefore drive_is_ready()
in pre_task_mulout_intr() only makes sense if we can't trust STATUS register
(because we call ide_wait_stat() which reads STATUS register earlier).
Remove this "workaround" for now as it is not present in ide-disk.c
and whole multi PIO-out code (CONFIG_IDE_TASKFILE_IO=n) was buggy before.
Setup handler and output first data block directly from ->prehandler()
instead of calling ->handler(). The only change in functionality is that
we no longer check DRIVE_READY status bits (there is no need to do it).
[PATCH] ide: PIO-out fixes for ide-taskfile.c (CONFIG_IDE_TASKFILE_IO=n)
- in task_out_intr() fix off-by-1 bug and (stat & DRQ_STAT) check,
previously "if" was always true for rq->current_nr_sectors == 1
- fail request if DRQ_STAT is not set and rq->current_nr_sectors != 0
(instead of setting handler and waiting for the next IRQ) or if DRQ_STAT
is set but !rq->current_nr_sectors (in task_mulout_intr() this was OK)
- in task_mulout_intr() check also DRIVE_READY and WRERR_STAT status bits
This patch adds a /block/*/removeable sysfs attribute. A value of 1
indicates the media can change anytime. This is a hint for userland
to poll such devices for possible media changes, and leave all others alone.
There is currently no way to see if a connected usb-storage device is a
disk or a card reader. It will also show 1 for CD and ZIP drives.
It was done by Patrick Mansfield a while ago. I can probably not
sigh-off his work. ;)
[PATCH] Driver core: Fix OOPS in device_platform_unregister
Driver core: platform_device_unregister should release resources first
and only then call device_unregister, otherwise if there
are no more references to the device it will be freed and
the fucntion will try to access freed memory.
[PATCH] I2C: patch quirks.c - SMBus hidden on hp laptop
This patch unhides the SMBus on the hp nc8000 and nc6000 laptops. The
patch has been co-written by Jean Delvare and Rudolf Marek. I've only
tested this on nc8000, but it should work for the nc6000 too.
Unfortunatley, we had to little information to fix the problem described
in the reported bug below, as is probably the same problem. But if we're
very lucky it might solve it too.
http://bugzilla.kernel.org/show_bug.cgi?id=2976
Adrian Bunk [Wed, 14 Jul 2004 08:08:37 +0000 (01:08 -0700)]
[PATCH] USB: USB w9968cf compile error
On Tue, Jul 13, 2004 at 06:25:59PM -0700, Andrew Morton wrote:
>...
> All 252 patches:
>...
> bk-usb.patch
>...
This patch marks w9968cf_valid_depth as inline, although it's used
before it's defined.
gcc 3.4 therefore correctly fails with:
<-- snip -->
...
CC drivers/usb/media/w9968cf.o
drivers/usb/media/w9968cf.c: In function `w9968cf_set_picture':
drivers/usb/media/w9968cf.c:487: sorry, unimplemented: inlining failed
in call to 'w9968cf_valid_depth': function body not available
drivers/usb/media/w9968cf.c:1722: sorry, unimplemented: called from here
make[3]: *** [drivers/usb/media/w9968cf.o] Error 1
<-- snip -->
This patch moves w9968cf_valid_depth above it's first user (it also uses
two other functions to keep the ordering of functions a bit more
consistent).
Signed-off-by: Adrian Bunk <bunk@fs.tum.de> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
David Brownell [Wed, 14 Jul 2004 08:07:48 +0000 (01:07 -0700)]
[PATCH] USB: usb host side updates, mostly for suspend
This adds some of the infrastructure needed to support some more
USB capabilities:
- CONFIG_USB_SUSPEND, so Linux can put individual devices
into the USB "suspend" state. They can (sometimes) use
"remote wakeup" to resume the host; or they can each be
resumed by the host.
+ New usbcore device selective suspend/resume APIs
* Define them, as stubs for now
* Call them on the paths sysfs uses (renamed functions)
+ HCD support
* Define root hub suspend calls; delegate them to HCDs.
* OHCI and EHCI can suspend/resume root hubs that way.
* Not called yet, until suspend/resume calls exist
- CONFIG_USB_OTG, which depends on the selective suspend APIs
to allow devices to switch roles (host to peripheral, etc).
This patch just adds a few key flags in usb_bus, needed by
usbcore (during enumeration) and by HCD and OTG controllers
on OTG-capable boards.
- Related bugfix: power budgeting is supposed to place a
100mA per port (non-OTG) for bus-powered devices.
This patch changes no behavior; later patches will do that,
and they'll be smaller because of this.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Ian Abbott [Wed, 14 Jul 2004 08:07:29 +0000 (01:07 -0700)]
[PATCH] USB: ftdi_sio VID/PID updates
Greg,
This patch adds various VID/PIDs to the ftdi_sio driver that I've
accumulated from the ftdi-usb-sio-devel mailing list, and one from
the 2.4 kernel sources:
* Interbiometrics USB I/O boards VID/PIDs from 2.4 kernel (Rudolf
Gugler).
* Intrepid Control Systems ValueCAN and NeoVI VID/PIDs from Scott
Wolchok.
* Falcom Twist USB GPRS modem VID/PID from Justin Schoeman.
* Suunto Sports instrument PID from Panu Kekalainen.
Also a few minor clean-ups:
* Removed a stray PID macro constant FTDI_GUDEADS_889_PID.
* Copied the Inside Accesso VID/PID into the FT232BM ID table so
that the "combined" table is a proper union of the others (unless I've
missed something else).
* Added a comment that the OCT US101 is also rebadged as a SIIG Inc.
US2308.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
Olaf Hering [Wed, 14 Jul 2004 08:02:24 +0000 (01:02 -0700)]
[PATCH] USB: fix SN9C10[12] driver for ia64
On Sun, Jul 11, Luca Risolia wrote:
> This single patch contains some updates and cleanups for
> the W996[87]CF driver and a new experimental V4L2 driver
> for SONiX SN9C10[12] PC Camera Controllers connected to various
> image sensors. I have not divided the patch in two logical
> sub-patches becouse of two independent changes in one common
> file, KConfigure. Since this mailing list refused the patch,
> due to its size, I have uploaded it here, as
> Documentation/SubmittingPatches suggests:
I need this patch for x86_64.
CC [M] drivers/usb/media/sn9c102_core.o
In file included from drivers/usb/media/sn9c102.h:34,
from drivers/usb/media/sn9c102_core.c:43:
include/asm/rwsem.h:55: error: redefinition of `struct rw_semaphore'
In file included from drivers/usb/media/sn9c102.h:34,
from drivers/usb/media/sn9c102_core.c:43:
include/asm/rwsem.h:79:1: warning: "__RWSEM_INITIALIZER" redefined
In file included from include/linux/rwsem.h:25,
from include/asm/semaphore.h:43,
from include/linux/sched.h:18,
from include/linux/module.h:10,
from drivers/usb/media/sn9c102_core.c:21:
include/linux/rwsem-spinlock.h:49:1: warning: this is the location of the previous definition
include/asm/rwsem.h:87: warning: static declaration for `init_rwsem' follows non-static
include/asm/rwsem.h:100: warning: `__down_read' declared inline after being called
include/asm/rwsem.h:100: warning: static declaration for `__down_read' follows non-static
include/asm/rwsem.h:122: warning: `__down_read_trylock' declared inline after being called
include/asm/rwsem.h:122: warning: static declaration for `__down_read_trylock' follows non-static
include/asm/rwsem.h:146: warning: `__down_write' declared inline after being called
include/asm/rwsem.h:146: warning: static declaration for `__down_write' follows non-static
include/asm/rwsem.h:171: warning: `__down_write_trylock' declared inline after being called
include/asm/rwsem.h:171: warning: static declaration for `__down_write_trylock' follows non-static
include/asm/rwsem.h:184: warning: `__up_read' declared inline after being called
include/asm/rwsem.h:184: warning: static declaration for `__up_read' follows non-static
include/asm/rwsem.h:208: warning: `__up_write' declared inline after being called
include/asm/rwsem.h:208: warning: static declaration for `__up_write' follows non-static
include/asm/rwsem.h:233: warning: `__downgrade_write' declared inline after being called
include/asm/rwsem.h:233: warning: static declaration for `__downgrade_write' follows non-static
make[3]: *** [drivers/usb/media/sn9c102_core.o] Error 1
This involved reworking the usb_serial_debug_data() function too.
Based on a request from SuSE, and numerous user confusions with how
to enable this option. Now that all usb-serial drivers are using
module_param() it can be set from the boot command line if the drivers
are built into the kernel.
[PATCH] Updates for W99[87]CF and new SN9C10[12] driver
This single patch contains some updates and cleanups for
the W996[87]CF driver and a new experimental V4L2 driver
for SONiX SN9C10[12] PC Camera Controllers connected to various
image sensors. I have not divided the patch in two logical
sub-patches becouse of two independent changes in one common
file, KConfigure.
More informations about the SN9C10[12] can be found below in the
documentation. The driver is marked as "EXPERIMENTAL", meaning
that there are no known bugs, but further testing is necessary
before considering it stable. This the first driver using the new
SBGGR8 video format, which has been recently added to the mainline
kernel, so there are no available user application at the moment:
this is one more reason why it should be in the kernel now.
Changes in W996[87]CF:
- remove w9968cf_externaldef.h now that ovcamchip.h is in the kernel;
- mark user pointers with __user in a cleaner way to avoid sparse
warnings;
- use appropriate exclusive wait macro during open();
- replace info(), err(), warn() with dev_info(), dev_err(), dev_warn(),
pr_debug(), pr_info();
- replace usb_unlink_urb() + wait_for_completion() with usb_kill_urb();
- fix memory offsets for buffers in the chip to be used with generic
image sensors;
- 'vppmod_load', 'debug', 'specific_debug' and 'simcams' module
parameters are now writeable by default;
- fix possible race conditions between disconnect() and open();
- add automatic 'ovcamchip' module loading option with 'ovmod_load'
module parameter;
- get rid of deprecated intermodule communication routines and use the
correct module registration/unregistration approach;
- remove period at the end of kernel messages;
- fix several typos;
- use MODULE_VERSION() macro;
- other small internal cleanups;
- documentation updates.
David Brownell [Wed, 14 Jul 2004 08:00:36 +0000 (01:00 -0700)]
[PATCH] USB: usb ethernet gadget, minor fixes + basic OTG support
Update CDC Ethernet/RNDIS gadget driver to the latest:
- Basics of OTG support: providing the OTG descriptor
in each configuration (as needed). No HNP yet.
- Stop issuing partial-packet reads. There's some hardware that
only counts reads in packets, not bytes, so let's not bother.
There are still software checks to catch framing gone wild.
- Fix a small bug that crept in with a memory leak fix: after
RNDIS requests, ep0 responses would use the RNDIS completion
handler even for non-RNDIS requests.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
David Brownell [Wed, 14 Jul 2004 08:00:19 +0000 (01:00 -0700)]
[PATCH] USB: usb gadget zero, basic OTG updates
This patch teaches "gadget zero" enough about OTG to pass simple USBCV
tests, mostly by including OTG descriptors in each configuration. It
tests and reports OTG status, as reported by the USB controller driver.
It also adds an option to build gadget zero to act as the designated
OTG "HNP Test Device", which exists primarily to trigger HNP. However,
it won't currently request HNP.
Includes other minor tweaks: delete a timer on disconnect, reset
the req->zero flag, don't autoresume after disconnect.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>