Merge remote branch 'gs-common/android-2.6.39' into ics-2.6.39

* gs-common/android-2.6.39:
  net: wireless: bcmdhd: Allow 80211_HT capability
  net: wireless: bcmdhd: Fix improper band handling
  net: wireless: bcmdhd: Update to version 5.90.195.53
net: wireless: bcmdhd: Set MMC_PM_KEEP_POWER flag on suspend

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Avoid turning radio UP twice on start

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Fix filtering setting in case of P2P

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Merge remote branch 'xoom-github/ics-2.6.39' into ics-2.6.39

* xoom-github/ics-2.6.39: (152 commits)
  arm: tegra: stingray: Enable CMD23 for Toshiba EMMC, remove BFS
  MMC: Toshiba eMMC: allow use of CMD23 ops on Toshiba EMMC devices
  net: wireless: bcmdhd: Avoid turning radio UP twice on start
  netfilter: xt_qtaguid: start tracking iface rx/tx at low level
  netfilter: xt_IDLETIMER: Add new netlink msg type
  arm: tegra: stingray: make CFQ iosched the default
  net: wireless: bcmdhd: Set MMC_PM_KEEP_POWER flag on suspend
  mmc: core: clear MMC_PM_KEEP_POWER flag on resume
  net: wireless: bcmdhd: Update to Version 5.90.195.61
  MMC: Adjust unaligned write accesses.
  MMC: Toshiba eMMC - Split 8K-unaligned accesses
  Revert "mmc: core: clear MMC_PM_KEEP_POWER flag on resume"
  MMC: Adjust unaligned write accesses.
  mmc: atmel-mci: correct data timeout computation
  mmc: sdhci-esdhc-imx: fix for mmc cards on i.MX5
  mmc: core: check for zero length ioctl data
  mmc: sd: Fix SDR12 timing regression
  mmc: sdhci: Fix tuning timer incorrect setting when suspending host
  mmc: core: Fix voltage select in DDR mode
  ARM: 7220/1: mmc: mmci: Fixup error handling for dma
  ...
net: wireless: bcmdhd: Fix filtering setting in case of P2P

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
cpufreq: interactive: restart above_hispeed_delay at each hispeed load

Change-Id: I2e5b91d45e8806b0ab94ca2301ed671c9af9ab13
Signed-off-by: Todd Poynor <toddpoynor@google.com>
net: wireless: bcmdhd: Change singal pending return value from -110 to -4

- ETIMEDOUT is interpreted as FW is not responding,
  so return EINTR instead

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Fix WARN_ON(!res->pub.channel)

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Check return value from dhd_dev_init_ioctl()

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Ignore signal_pending() while waiting in IOCTL

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Change singal pending return value from -110 to -4

- ETIMEDOUT is interpreted as FW is not responding,
  so return EINTR instead

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Fix WARN_ON(!res->pub.channel)

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Check return value from dhd_dev_init_ioctl()

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
net: wireless: bcmdhd: Ignore signal_pending() while waiting in IOCTL

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Merge remote-tracking branch 'common-partner/linux-bcm43xx-2.6.39' into android-2.6.39

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
mmc: queue: let host controllers specify maximum discard timeout

Some host controllers will not operate without a hardware
timeout that is limited in value.  However large discards
require large timeouts, so there needs to be a way to
specify the maximum discard size.

A host controller driver may now specify the maximum discard
timeout possible so that max_discard_sectors can be calculated.

However, for eMMC when the High Capacity Erase Group Size
is not in use, the timeout calculation depends on clock
rate which may change.  For that case Preferred Erase Size
is used instead.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
mmc: block: add member in mmc queue struct to hold request data

The way the request data is organized in the mmc queue struct, it only
allows processing of one request at a time.  This patch adds a new struct
to hold mmc queue request data such as sg list, request, blk request and
bounce buffers, and updates any functions depending on the mmc queue
struct. This prepares for using multiple active requests in one mmc queue.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
(cherry picked from commit 97868a2bdfc2fc79a987b64f1611034b56a3f8c4)
mmc: core: add non-blocking mmc request function

Previously there has only been one function mmc_wait_for_req()
to start and wait for a request. This patch adds:

 * mmc_start_req() - starts a request wihtout waiting
   If there is on ongoing request wait for completion
   of that request and start the new one and return.
   Does not wait for the new command to complete.

This patch also adds new function members in struct mmc_host_ops
only called from core.c:

 * pre_req - asks the host driver to prepare for the next job
 * post_req - asks the host driver to clean up after a completed job

The intention is to use pre_req() and post_req() to do cache maintenance
while a request is active. pre_req() can be called while a request is
active to minimize latency to start next job. post_req() can be used after
the next job is started to clean up the request. This will minimize the
host driver request end latency. post_req() is typically used before
ending the block request and handing over the buffer to the block layer.

Add a host-private member in mmc_data to be used by pre_req to mark the
data. The host driver will then check this mark to see if the data is
prepared or not.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
(cherry picked from commit aa8b683a7d392271ed349c6ab9f36b8c313794b7)

Conflicts:

	include/linux/mmc/host.h
mmc: block: add a block request prepare function

Break out code from mmc_blk_issue_rw_rq to create a block request prepare
function. This doesn't change any functionallity. This helps when handling
more than one active block request.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Venkatraman S <svenkatr@ti.com>
Tested-by: Sourav Poddar <sourav.poddar@ti.com>
Tested-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
(cherry picked from commit 54d49d77628bed77e5491b8a2a1158a492843a19)

Conflicts:

	drivers/mmc/card/block.c