OMAP: DSS2: Add picodlp panel driver

PicoDLP is a micro projector from TI.

DLP used in OMAP4 is dpp2600 (DLP Pico Projector) The DLP requires
commands to be sent over i2c for configurations. To know more about
dpp2600 commands please visit:
https://focus.ti.com/myti/docs/extranet.tsp?sectionId=403

The picodlp module consists of a dss driver and an i2c_client.

To know more please visit:
http://www.omappedia.org/wiki/PicoDLP_projector_guide

Based on original design from Mythri P K <mythripk@ti.com>

Signed-off-by: Mayuresh Janorkar <mayur@ti.com>
Signed-off-by: Mythri P K <mythripk@ti.com>
[tomi.valkeinen@ti.com: squashed commits]
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
OMAP: DSS2: PicoDLP: fix error handling in power_on

Fix two problems in PicoDLP driver's error handling on
picodlp_panel_power_on:

- If omapdss_dpi_display_enable() failed, the its error value was not
  returned
- If picodlp_i2c_init() failed, dssdev->state was erroneously set to
  OMAP_DSS_DISPLAY_ACTIVE

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
OMAP: DSS2: check for manager when enabling display

None of the DSS interface drivers check if an overlay manager is
connected to the display when the display is being enabled. This leads
to null pointer crash if the display has no manager.

This patch checks for the manager and returns an error if it is null.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

Conflicts:

	drivers/video/omap2/dss/hdmi.c
OMAP: DSS2: Don't allow moving managers away from enabled displays

If a manager is moved while attached to an enabled display, the DSS
system will be left in an inconsistent state. This will eventually cause
a kernel oops when the enabled display is disabled.

Fix this by not allowing the user to move a manager away from an enabled
display.

Signed-off-by: Daniel Morsing <daniel.morsing@gmail.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
OMAPFB: make debug message more useful

Make the debug message useful by printing the name of the device
that no associated driver could be found for.

Signed-off-by: Andy Doan <andy.doan@linaro.org>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
OMAP: OMAPFB: make omapfb start even when a display is missing a driver

Currently omapfb wants that all the display devices have a driver,
otherwise omapfb refuses to start. There's no real requirement to act
like that, and this patch will make omapfb give a warning and skip that
device.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
OMAP: DSS2: Remove "EXPERIMENTAL" from Kconfig

DSS driver has not been "experimental" for many years now, so perhaps
it's time to remove the text from Kconfig titles.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
ASoC: OMAP ABE: Use MONO_16_16 for 16-bits mono

Use MONO_16_16 format for 16-bits mono stream, which consists of two
16-bits frames in a 32-bit container. All the data formats supported
by ABE are now configured using DMA data type of 32-bits, hence DMA
parameters reset section is removed.

Change-Id: I04c8a8ac787bf04e462735e2bb68ed1a1a77c54b
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Igor Nedashkivskyi <x0153369@ti.com>

Conflicts:

	sound/soc/omap/omap-abe.c
ASoC: OMAP ABE: Add 48kHz support for VX_UL and VX_DL FEs

Add 48kHz sample rate for Voice playback and capture FE ports
which is now supported natively in ABE.

Change-Id: Ia8ee1dba4e50c322a3f7201864cb36ef799993d7
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
ASoC: SDP4430: Fix-up DMIC channels

DMic DAI driver only supports 2 channels in the ABE mode, hence hw_params
fixup is required for DMic BEs to decouple it from FE's channel count.

Change-Id: I785fab42673f6eb7a6649ef80843a7de3a785688
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
ASoC: OMAP ABE: Remove extra OPP100 transition

There is no need of doing a OPP100 transition when AESS stream
is open, required OPP is calculated based on the active audio
routes.

Change-Id: I178058827c448aa6d300724a2baeb5f44ac9a690
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>

Conflicts:

	sound/soc/omap/omap-abe-dsp.c
ASoC: OMAP ABE: Fix MM_UL format capability

MM_UL port supports up to 6 channels, 32-bits per sample, 16-bits
per sample is no longer supported hence removed from DAI capabilities.

Change-Id: I1c9940609e5f087f5df83b9a8c6261d2306512dd
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
ASoC: twl6040: VDDHF as SUPPLY widget

VDDHF external boost supply was being enabled after and disabled before
handsfree driver as a strategy for pop noise reduction. This strategy
makes handsfree driver very susceptible to overcurrent events, so the
boost supply is converted to a SUPPLY widget to enable it before and
disable it after handsfree path.

Change-Id: I608b4b0f5cb3301053869ccd2732434efe276b81
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>

Conflicts:

	sound/soc/codecs/twl6040.c
OMAP4: SDP44xx: Fix twl604x GPO used for tsp6130x NRESET

TPS6130x NRESET line is controlled by TWL604x GPO, but TWL604x's GPO
capabilities have changed and only a single GPO is supported in TWL6041.
This affects how TPS6130x reset is controlled:
- Processor boards using TWL6040 use GPO2
- Processor boards using TWL6041 use GPO (single GPO available)

Change-Id: I6a65be069aaf4f0dbe0f5c7da1660579c8956057
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
OMAP4: Tablet: Fix twl604x GPO used for tsp6130x NRESET

TPS6130x NRESET line is controlled by TWL604x GPO, but TWL604x's GPO
capabilities have changed and only a single GPO is supported in TWL6041.
This affects how TPS6130x reset is controlled:
- Processor boards using TWL6040 use GPO2
- Processor boards using TWL6041 use GPO (single GPO available)

Change-Id: I92d41f84dfad003dac66ab3e51b842944bcc16a0
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
ASoC: TWL6040: Adding Aux audio output

Adding switch controls to enable/disable audio output
throught Aux pins in codec.

Change-Id: I329c44fe95a9157d56017ac47cb4e091e87d8710
Signed-off-by: Israel Cepeda <icepeda@ti.com>
MFD: twl6040-codec: Refactor power-on verification

Refactor power-on verification which consists of checking NCPCTL,
LDOCTL and LPPLLCTL registers against expected values of successful
automatic power-up sequences.

Change-Id: I20c0693922baa6700a117881c47cbf400716446b
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
MFD: twl6040-codec: Change power-up verification policy

Automatic power-up completion result can be affected by race
conditions between the completion task itself and the READYINT
handler, leading to false power-up failures as the completion
timeout may expire before READYINT handler gets executed and
marks completion.

Instead, the first verification for a successful power-up sequence
is the expected state of NCPCTL, LDOCTL and LPPLLCTL registers.
These registers will have specific values after automatic power-up
sequence has completed.

False power-up success is still checked, this is the case where
the READYINT is received but the hardware state is not consistent
with what is known/expected after a successful sequence. Under these
circumstances, we retry automatic power-up.

Change-Id: I9f85d67a10e84564a38f7d97a78345be06ac3b16
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
ASoC: OMAP PCM: Remove combined ABE/HDMI constraint

Remove buffer bytes constraint used for ABE and HDMI in favor of
individual, separate constraints applied by each driver.

Change-Id: Ic1b0aefff6504159f36eb701b91e5e3e7c78d688
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
ALSA: pcm: export 'snd_interval_step' symbol

Export 'snd_interval_step' symbol so that ALSA drivers can use it
to add hw rules.

Change-Id: Ic7d38683a46d281db9b1a36a5d5eabdb92876153
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>