s3c2410_udc: 2440 dual packet workaround

This is a patch that seems to make the USB hangs on the S3C2440 go away.
At least a good amount of ping torture didn't make them come back so far.

The issue is that, if there are several back-to-back packets, sometimes no
interrupt is generated for one of them. This seems to be caused by the
mysterious dual packet mode, which the USB hardware enters automatically
if the endpoint size is half that of the FIFO. (On the 2440, this is the
normal situation for bulk data endpoints.)

There is also a timing factor in this. I think what happens is that the USB
hardware automatically sends an acknowledgement if there is only one packet
in the FIFO (the FIFO has space for two). If another packet arrives before
the host has retrieved and acknowledged the previous one, no interrupt is
generated for that second one.

However, there may be an indication. There is one undocumented bit (none
of the 244x manuals document it), OUT_CRS1_REG[1], that seems to be set
suspiciously often when this condition occurs. There is also
CLR_DATA_TOGGLE, OUT_CRS1_REG[7], which may have a function related to
this. (The Samsung manual is rather terse on that, as usual.)

This needs to be examined further. For now, the patch seems to do the
trick.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Add delay to fix apollo wakeup on EB600
Fix AC97 clock control bit

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
Prepare GPIO pins for suspend mode

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: Adjust battery driver

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: Fix keyboard driver

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
Apollo FB: add possibility to define board specific send_data_fast function

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: add fast data transfer function for apollo

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: init gpio pins and clocks

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: set default apollo defio timeout to 50ms

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: add mmc_set_power function

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: disable nand driver

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: add proper poweroff gpio pin

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
EB600: add uda134x driver (doesn't work yet)

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
Update EB600 defconfig

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
Apply MMC_BLOCK_DEFERRED_RESUME patches from android kernel

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
Add keyboard driver for EB600 derivate Dztep V5

Signed-off-by: Alexander Kerner <lunohod@openinkpot.org>
Wrong color depth after wakeup on some PVI-6001 fixed
Signed-off-by: Alexandr Tsidaev <a.tsidaev@gmail.com>