Merge pull request #279 from P33M/rpi-3.6.y

dwc_otg: fix NAK holdoff and allow on split transactions only
ALSA: bcm2835: show card and subdev creation msg only on debug

On driver probe a message showing that a card and its subdevices
have been created is shown. Probably this message is not needed
unless we have debug enabled on the driver. So, use the driver
audio_info() debug macro instead of just printk().

Also is better to use dev_err() and pr_err() instead KERN_ERR.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
ALSA: bcm2835: use a completion instead of a semaphore for sync

The kernel completion interface is a simple synchronization
mechanism that is preferable over semaphores to signal the
occurence of an event.

Semaphores are optimized for the non-contention case since
in most situations they will be available. But the wait for
completion is the opposite case since the code calling down
will wait on most cases.

So, is better to use the completion mechanism that has been
developed for this exact use case instead of semaphores.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
ALSA: bcm2835: don't use magic numbers on audio start/stop workqueue

The bcm2835 driver uses a workqueue to defer PCM playback start
and stop. Commands are passed to the function as magic numbers
so is more readable to use macro constants.

Also, while being there change the generic name "x" to "cmd"
for the var used to pass the start/stop commands.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
ALSA: bcm2835: defer bcm2835 PCM write using the workqueue

Only PCM playback and stop are deferred using a workqueue on
the ALSA bcm2835 driver. The actual writing of PCM samples
is synchronous.

This works well for the read/write transfer method since
the snd_pcm_ops .copy function pointer runs on process context.

But the snd_pcm_ops .ack function pointer used to implement
direct read/write transfer using a memory-mapped I/O, runs
with interrupts disabled. Since the Kernel to VideoCore
interface driver has to be able to sleep, PCM write has to be
deferred to in preparation to add mmap support to the driver.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
ALSA: bcm2835: add memory-mapped I/O mode for audio stream

ALSA supports two transfers methods for PCM playback: Read/Write
transfer where samples are writtern to the device using standard
read and write functions and Direct Read/Write transfers where
samples can be written directly to a mapped memory area and the
driver is signaled once this has been done.

The bcm2835 driver only supported Read/Write transfer method so
this patch adds mmap support to the driver.

The ARM CPU is not able to directly address the audio device
hardware buffer so audio samples are sent to the device using
a message passing interface (vchiq).

Since hardware buffers can't be directly mapped to user-space
memory, an intermediate buffer (using the PCM indirect API) is
needed to store the audio samples and push them to the device
through videocore.

Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Fix kernel oops in l2cap_chan_destroy. Based on https://github.com/torvalds/linux/commit/4af66c691f4e5c2db9bb00793669a548e9db1974
Merge pull request #286 from martinezjavier/rpi-3.6.y-dev

add mmap support and some cleanups to bcm2835 ALSA driver
Add quick config.

This is designed for quick compiling when developing.
No modules are needed and it includes all Pi specific drivers
VCHIQ: Use unsigned integers for unsigned values

The VCHIQ interface used signed integers for values which are
inherently unsigned. Worse, the parameter validation code treated them
as if they were unsigned, checking for overflow but not underflow.

This patch converts those integers to unsigned integers.

Thanks to Jann Horn.
mmc: suppress sdcard warnings we are happy about by default
Update bcm2708.c to use CONFIG_BCM2708_SPIDEV rather than CONFIG_SPI
Allow reboot=q on command line to set a flag that bootcode.bin can use to boot from alternate partition
Add missing ids for Netgear WNA1000N and D-Link Alpha
Merge pull request #297 from hutorny/bcm2708-spidev

Update bcm2708.c to use CONFIG_BCM2708_SPIDEV rather than CONFIG_SPI
rtl8192cu: select required config options to allow builds without other wifi modules. Thanks UrsusArctos
Add USB_PRINTER config option
Only init gpio pins of selected i2c bus
Avoid responding to unexpected I2C interrupts
dma: Allow bulk dma channel to be requested