msm_fb: display: increase mdp_max_clk
ASoC: msm7x27A: Add mmap support for playback

Change-Id: I5a7eaa519b8146d2697b3c65ea1a08a3c8feacb3
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>
Signed-off-by: Phani Kumar Allada <pallad@codeaurora.org>
ASoc: msm: Add support for slimbus shared channel.

Previously, DSP used to setup the data path towards the
codec via slimbus. Now, the data path setup is broken into
two parts - one half of the path setup between apps to slimbus
and the other half from DSP. This configuration mode is
required to reduce overflow or underflow errors. Also this is
required to handle a configuration where mdm can talk
directly to codec.

Change-Id: Ic9f20b8a2f8a8eb355c07565ec80ec947a7a7337
Signed-off-by: Bharath Ramachandramurthy <bramacha@codeaurora.org>

Conflicts:

	sound/soc/codecs/wcd9310.c

Conflicts:

	sound/soc/msm/msm-dai-q6.c
slimbus: Support more than 1 clients to use a channel

There is a possibility that 2 or more clients can use the same
channel, one as producer and the other(s) as sink.
The slim_query_ch API gives the ability for a client to specify
channel number it needs to use.
Reference counting is used to make sure channel is not deallocated
until the last caller deallocates it.
Another counter (def) is used to keep track of channel definition and
removal. Channel definition is sent to hardware when the producer
and/or consumer(s) connects ports to the channel. Channel is only
removed when all clients indicate they want to remove channel.

Change-Id: Ic5084680419e16ee238d2e62c02e5430170b387d
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
slimbus: Provide separate APIs to connect source and sink ports

Source and sink ports for a channel may be connected from different
clients.
Multiple sink ports and 1 source port can be connected to a channel.
Ports are freed/zeroed when channel is removed.

Change-Id: I165bb9db4fb43a9a884ea14ffed08f8d11b65c39
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
slim: msm: Support multiple satellites per MSM controller

Supporting multiple satellites per 1 controller enables communication
with more than 1 ADSP on target. There may be upto 2 ADSPs that MSM
controller driver needs to communicate with.

Change-Id: I9de96341ba0eee9da69bb48dc6d276374773633f
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
slim: msm: Enable satellite clients to request for specific channel

Since slimbus framework now supports clients to request a specific
channel number, channel number may be different than channel handle.
Channel numbers can range from 0-255 and channel handles returned by
slimbus framework may not be same as channel number. (e.g. if there
are 32 channel resources and the first channel number requested is
120, then it may get channel resource 24.)
This will enable 2 satellite clients (one as producer and one as
consumer) to connect to a specific channel.

Change-Id: I294c4d433daea15bc633dfea8a1e0648ccff3234
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
slim_msm: Initialize controller before clk_get is called.

Controller device name is initialzied in add_numbered_controller.
Make sure that's done before clk_get is called so that clk_get is
called with correct device name.

Change-Id: Ieace43accbb3cf8c37068dbc06067dfb76d67d36
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
ASoC: msm8960: Add the amix control to configure AUX PCM rate

There are use cases that 16kHz sample rate AUX PCM needed
besides 8kHz. Add the amix control so that the AUX PCM
sample rate can be configured by application.

Change-Id: If453283d51cbde14a77b6b40b39643e415fef302
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
ASoc: msm: Add fix for Unsupported Proxy backend sample rates.

- AFE does not support sampling rate 44.1k
- This fix addresses the issue by setting backend proxy device
  sampling rate to 48k.

Change-Id: I4cd1ac6566d3230fa16fd70d99b8e758d8c606ad
CRs-fixed: 374556
Signed-off-by: Jayasena Sangaraboina <jsanga@codeaurora.org>

Conflicts:

	sound/soc/msm/apq8064.c
	sound/soc/msm/msm8960.c
ASoC: msm: Add the kcontrol support different I2S audio format

A new AFE command AFE_PORT_CMD_I2S_CFG is added to the QDSP
to support multiple audio formats in I2S/MI2S interface which
include L-PCM, compressed, L-PCM packed in IEC-60958, and
compressed audio packed in IEC-60958. With these options,
it makes the I2S/MI2S easier to interface with various devices
such as audio codec, HDMI, and SPDIF. The change is to provide
the kcontrol so that the application can configure the MI2S/I2S
AFE interface to meet the implementation.

Change-Id: I3d34bc47af6f3d5213b1d45b4cf0687854370030
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
ASoC: msm: Add support for stubbed hostless voice driver.

Stubbed hostless voice driver added to support use cases where
APQ QDSP6 voice module is not needed for voice calls.

Change-Id: I676726e6c704f1ee4cb078ed1b475a38afb8dc12
Signed-off-by: Neema Shetty <nshetty@codeaurora.org>

Conflicts:

	sound/soc/msm/msm-dai-fe.c
	sound/soc/msm/msm-pcm-routing.c
ASoC: msm: Add support for voice over Bluetooth

Add support for Slimbus channels between external modem and APQ.
These channels transfer voice packets to/from the modem to the
BT stack on APQ.

Change-Id: I48bd5248104719574fbc6cf52edfb92cff79bff9
Signed-off-by: Neema Shetty <nshetty@codeaurora.org>

Conflicts:

	arch/arm/mach-msm/board-8064.c
	arch/arm/mach-msm/devices-8064.c
	arch/arm/mach-msm/devices.h
	sound/soc/msm/apq8064.c
	sound/soc/msm/msm-dai-q6.c
	sound/soc/msm/msm-pcm-routing.c
ASoC: msm: qdsp6: Add new AFE API supported by q6

Add new I2S AFE API command to q6 to support multiple
audio formats to I2S port including L-PCM, compressed,
L-PCM packed in IEC-60958, and compressed in IEC-60958.

Change-Id: Ia4a902d750a62bd183f45d1d72359596822be6dd
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
ASoC: msm: Add MI2S TX CPU driver

Add MI2S TX CPU driver which configures QDSP6 AFE to start MI2S
TX port.

Change-Id: I3949a58aa7c6f47bee1019397e2b29ff0a7edd9c
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>
ASOC: msm: Modify debug messages and conditional checks

Modify debug messages, remove deprecated functions,
proper handling of local pointers, check valid range
of values in conditional checks, check array boundaries
in conditions

Change-Id: I0b20297261727143ec3099599274916404007463
Signed-off-by: Bharath Ramachandramurthy <bramacha@codeaurora.org>
Signed-off-by: Swaminathan Sathappan <Swami@codeaurora.org>

Conflicts:

	arch/arm/mach-msm/qdsp6v2/amrwb_in.c
	arch/arm/mach-msm/qdsp6v2/rtac.c
	sound/soc/msm/qdsp6/q6adm.c
ASoC: msm: Update the audio clock lookup table and clk_get() method

Some of the osr and bit clocks for different devices share the same
clock names. In order to identify the clocks with the same name, a new
clock scheme is implemented which requires to add the device IDs to
the clock lookup table.

The change includes to add the device IDs in the lookup table to the
audio clocks for msm and update clk_get() function call to pass both device
ID and the clock name to get the corresponding clock.

Change-Id: I4c2608169c5a17044e6db90b7a9a917b407f8a82
Signed-off-by: Kuirong Wang <kuirongw@codeaurora.org>

Conflicts:

	arch/arm/mach-msm/clock-8960.c
	arch/arm/mach-msm/clock-9615.c
	sound/soc/msm/apq8064.c
	sound/soc/msm/msm-dai-q6.c
	sound/soc/msm/msm8960.c
ASoC: msm: rtac.c - fix mismerge
ASoC: msm: Migrate audio drivers to new clock apis.

Use the split clock APIs to do low latency actions (enable/disable)
frequently.  Use the high latency functions (prepare/unprepare)
sparingly to help performance.
Using these split apis instead of the 2 current APIs, allows the
clock driver to perform the slow steps with a mutex lock held and
removes the need to busy wait for the slow steps to finish.

Change-Id: Ic5b89183e86e788397be50d7b6f1d798c13ff417
Signed-off-by: Asish Bhattacharya <asishb@codeaurora.org>

Conflicts:

	sound/soc/msm/apq8064.c
	sound/soc/msm/mdm9615.c
	sound/soc/msm/mpq8064.c
ASoC: msm: enhance MI2S CPU driver for bi-directional support

MI2S block has 4 serial data lines. They can be configured to
either Rx or TX direction. Existing driver only supports uni-direction
data transfer. Instead of registering two CPU DAIs for Tx and Rx direction,
update CPU DAI driver to register bi-directional CPU DAIs as Tx and Rx
share same bit clock and word select. Channel min and max of DAI depends
on Rx and Tx serial data line configuration passed as platform data.

Change-Id: I327999a4b84252121f54f91bd6451eebde4919ca
Signed-off-by: Patrick Lai <plai@codeaurora.org>

Conflicts:

	arch/arm/mach-msm/clock-8960.c
	arch/arm/mach-msm/devices-8064.c
	sound/soc/msm/mpq8064.c