android-sdk/kernel-video.git
7 years agoomap: displays: Makefile: Changing the build-order for fpdlink panel driver dss
Somnath Mukherjee [Wed, 26 Feb 2014 04:53:22 +0000 (10:23 +0530)]
omap: displays: Makefile: Changing the build-order for fpdlink panel driver

Changing the build order to make sure the Serlink and Deserlink driver
init gets completed before the LG101 Panel driver. This is to ensure
the probe of ser/deser drivers happen before the LG101 panel driver.

Change-Id: I2c1e600cd4964ec1e23371d5755d1a1a4fa8d433
Signed-off-by: Somnath Mukherjee <somnath@ti.com>
Conflicts:

drivers/video/omap2/displays/Makefile

7 years agoMerge branch 'dss' of git://git.ti.com/android-sdk/kernel-video into dss
srinivas pulukuru [Fri, 28 Feb 2014 23:27:40 +0000 (17:27 -0600)]
Merge branch 'dss' of git://git.ti.com/android-sdk/kernel-video into dss

7 years agoomapdss: TFCS panel: fix pixel clock polarity
Subramaniam Chanderashekarapuram [Mon, 10 Feb 2014 21:20:34 +0000 (15:20 -0600)]
omapdss: TFCS panel: fix pixel clock polarity

Fixed the pixel clock polarity so that the HSYNC and VSYNC
are driven on rising edge of pixel clock. For this panel
the HSYNC and VSYNC should be drivern on the rising edge
and not on the falling edge of the clock.

Change-Id: Ib01edb3f5a19907ff37d0f55af51447dc2a5c3b3
Signed-off-by: Subramaniam Chanderashekarapuram <subramaniam.ca@ti.com>
7 years agoOMAPDSS: DSS_DPLL: fix mux ctrl bits for selecting DPLL_VIDEO2
srinivas pulukuru [Thu, 30 Jan 2014 06:28:10 +0000 (00:28 -0600)]
OMAPDSS: DSS_DPLL: fix mux ctrl bits for selecting DPLL_VIDEO2

Mux ctrl bits for selecting DPLL_VIDEO2 for DSI1_C_CLK1_SELECTION
for LCD3 fclk needs to be reversed for CTRL_CORE_DSS_PLL_CONTROL.
start bit should be 8 and end bit should be 7.

Change-Id: I976bc1393ad0a9b9c099f7225c783e820107768b
Signed-off-by: srinivas pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DSS: Base address for Tiler2D specific access can be 0 for 8bit mode
srinivas pulukuru [Thu, 19 Dec 2013 07:00:21 +0000 (01:00 -0600)]
OMAPDSS: DSS: Base address for Tiler2D specific access can be 0 for 8bit mode

for tiler2D specific address for 8bit mode access,
the base address can be 0 for the first frame.
DSS currently errors out if base address is 0.
Add a check to allow base address to be 0 in case
of 8bit color format.

Change-Id: I9c2a11ab6dffdaff831604c7038aa58b2aa56449
Signed-off-by: srinivas pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DSS: add parameter display_id to omap_dss_device
srinivas pulukuru [Wed, 13 Nov 2013 09:42:49 +0000 (03:42 -0600)]
OMAPDSS: DSS: add parameter display_id to omap_dss_device

update omap_dss_device to reflect the display_id's being set
in dts file to identify the displays instead of using the
order of declaration in dtsi file

Change-Id: I306a72f84e93795d49ede61aa77757887bb16af8
Signed-off-by: srinivas pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DISPC: update CTRL_CORE_SMA_SW_1 register while updating DISPC_POL_FREQ1
alaganraj [Mon, 18 Nov 2013 14:11:19 +0000 (19:41 +0530)]
OMAPDSS: DISPC: update CTRL_CORE_SMA_SW_1 register while updating DISPC_POL_FREQ1

As per TRM, Pixel clock control on/off (onoff), Rise/Fall control (rf) and
Invert pixel clock control (ipc) bits of  DISPC_POL_FREQ1 register must match
corresponding bits in CTRL_CORE_SMA_SW_1 register.

Change-Id: I4b238eb0df3799ae8af1beb6e512a89277bc0b2f
Signed-off-by: alaganraj <alaganraj.s@ti.com>
7 years agoOMAPDSS: Allow timings for non-lcd0 managers to be programmed
Sundar Raman [Tue, 12 Nov 2013 15:33:56 +0000 (09:33 -0600)]
OMAPDSS: Allow timings for non-lcd0 managers to be programmed

Fixed a bug in the display skip init logic which was not allowing
hdmi and lcd2 timings to be programmed. Added a check to only
skip lcd0 timing programming.

Change-Id: Ib8e54671b99030652f75efb00dfdc26e3515b5a2
Signed-off-by: Sundar Raman <sunds@ti.com>
7 years agoOMAPDSS: Restore dss clock configuration for display skip init case
Sundar Raman [Tue, 12 Nov 2013 15:45:41 +0000 (09:45 -0600)]
OMAPDSS: Restore dss clock configuration for display skip init case

DSS clock configuration is required for overlay scaling function
to work correctly. Restore this logic and disable only the pm
runtime enable logic which was causing a hang during display
skip init case.

Change-Id: I2665733371eb23f64436a41df090be7d6decaa7e
Signed-off-by: Sundar Raman <sunds@ti.com>
7 years agoOMAPDSS: Restore dpi clock configuration for display skip init case
Sundar Raman [Tue, 12 Nov 2013 00:27:48 +0000 (18:27 -0600)]
OMAPDSS: Restore dpi clock configuration for display skip init case

Configuration of DISPC functional clock is essential for HDMI
to work correctly. Hence allow the DPI pll locking and config
to override remote processor display configuration.
Additionally ignore the check for dpll enabled if skip init
flag is set since the remote processor would have turned on
the dpll.

Change-Id: I79923fc3930c26474f1e40249c6597534feee7a8
Signed-off-by: Sundar Raman <sunds@ti.com>
7 years agoOMAPDSS: tfcs9700: adapt panel driver for early camera preview use-case
Sundar Raman [Sat, 26 Oct 2013 04:20:51 +0000 (23:20 -0500)]
OMAPDSS: tfcs9700: adapt panel driver for early camera preview use-case

Make changes to detect and not configure panel when early camera
preview use-case is ongoing.

Change-Id: I6197882f791f574d0c70092388398c0c3dc7ce38
Signed-off-by: Sundar Raman <sunds@ti.com>
7 years agoOMAPDSS: Adapt DSS driver for early camera use-case
Sundar Raman [Sat, 26 Oct 2013 04:14:55 +0000 (23:14 -0500)]
OMAPDSS: Adapt DSS driver for early camera use-case

This patch adds support for early camera use-case in
dss. The remote processor uses VID3_ENDWINDOW interrupt
for frame completion whereas the kernel dss driver uses
VSYNC. Additional changes are done to the dss driver
to ensure that the remote processor's irq flags are not
reset inadvertently.

A new config CONFIG_EARLYCAMERA is introduced and all
changes are made under it.

Change-Id: Ie53b632ea695dde8bf1d4ed109b443bbee24c6d0
Signed-off-by: Sundar Raman <sunds@ti.com>
7 years agoOMAPDSS: Adapt DSS driver for skipping initialization during bootup
Sundar Raman [Sat, 26 Oct 2013 04:14:55 +0000 (23:14 -0500)]
OMAPDSS: Adapt DSS driver for skipping initialization during bootup

Leverage the detection methods for display skip during init
and conditionally configure dss, dispc, dpi and overlay managers.

Change-Id: Ie0d0cde6f251ef85383e48e8a989cd77fee36739
Signed-off-by: Sundar Raman <sunds@ti.com>
7 years agoOMAPDSS: Add methods for skipping display initialization
Sundar Raman [Sat, 26 Oct 2013 04:06:51 +0000 (23:06 -0500)]
OMAPDSS: Add methods for skipping display initialization

Adds methods to handle skipping display initialization during
kernel bootup for cases where the display is pre-initialized by
either the remote processor or u-boot.

The skip_init flag is set from the dts file. This allows the
init code to be skipped. If this is initialized to 0, the kernel
does all the usual display initialization procedures.

Change-Id: I91d3e10cdb9ae5a2b8a46ba6f4b1eb82acead702
Signed-off-by: Sundar Raman <sunds@ti.com>
7 years agoOMAPDSS: Add support to override the display ID
Dandawate Saket [Tue, 22 Oct 2013 21:27:12 +0000 (14:27 -0700)]
OMAPDSS: Add support to override the display ID

Add support in DTSI file to override the display ID for various
devices. It is the resposibility of the board file to make sure
all the display devices have unique display id. Also we cannot
switch between override mode for one device vs automatic generation
mode for another device since there is a possiblity of display id
duplication.

Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: DSSPLL: Add support for LCD3 manager
Dandawate Saket [Sun, 6 Oct 2013 22:14:57 +0000 (15:14 -0700)]
OMAPDSS: DSSPLL: Add support for LCD3 manager

Add support for LCD3 manager in VID PLL. Selection
of clock was not proper sequence and HS diver muz
was not set. Note HS diver bits are not documented
in TRM.

Change-Id: Id411151ed4330c22a52876df92ef74ae1baf3a9b
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: DISPC: Add support for LCD3 manager
Dandawate Saket [Sun, 6 Oct 2013 22:13:17 +0000 (15:13 -0700)]
OMAPDSS: DISPC: Add support for LCD3 manager

Add support for LCD3 manager for interrupt registration and
update feature database.

Change-Id: Ia268ef19794c24a1aca1ab0bc24be23a03e2b2a1
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: Panel: Update generic dpi panel to support DTS model
Dandawate Saket [Sun, 6 Oct 2013 21:42:16 +0000 (14:42 -0700)]
OMAPDSS: Panel: Update generic dpi panel to support DTS model

Update generic dpi driver to understand DTS structure make
appropriate panel driver instance.

Change-Id: I5422a703f7ec00787c3d558f9b50ac94b653ad51
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: DSS: Add DSS WB support
srinivas pulukuru [Tue, 15 Oct 2013 05:42:47 +0000 (00:42 -0500)]
OMAPDSS: DSS: Add DSS WB support

Add DSS WB support

Change-Id: Ia3292b17ccce48cdaa1fe45d389db690ac84926d
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
7 years agoDISPC: Add force 1D tiled mode support
srinivas pulukuru [Wed, 18 Sep 2013 13:17:06 +0000 (08:17 -0500)]
DISPC: Add force 1D tiled mode support

 Descrition: omap5 es2.0 silicon allows 1d accesses to tiled regions. This is
 done to allow skipping multiple lines in tiled address space.

 the ddma of es1.0 silicon generates ocp bus error upon trying to do 1d access
 in tiled address space. This limitation is removed in es2.0 silicon by adding
 a new bit field FORCE1DTILEDMODE which allows the ddma to do 1d access in tiled
 address space.

 This patch adds framework support for accessing this new bit field. The actual
 implementation of this feature is application specific and is not part of this
 patch.

Change-Id: I528883ba8ac94508a7269841cb56f99ad53b6602
Signed-off-by: Sreenidhi Koti <sreenidhi@ti.com>
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DISPC: Errata ID: i631: Wrong Access In 1D Burst For YUV4:2:0-NV12 Format
srinivas pulukuru [Mon, 10 Jun 2013 18:38:12 +0000 (13:38 -0500)]
OMAPDSS: DISPC: Errata ID: i631: Wrong Access In 1D Burst For YUV4:2:0-NV12 Format

Errata DESCRIPTION:
When in YUV4:2:0 format in 1D burst, the DISPC DMA skips lines when fetching Chroma sampling.

WORKAROUND:
If YUV4:2:0-1D burst is required:
Set DISPC_VIDp_ATTRIBUTES[22]DOUBLESTRIDE to 0x0 and
DISPC_VIDp_ATTRIBUTES[13:12]ROTATION to 0x1 or 0x3

Change-Id: I8cb408418be35850ec48e01f9d23da8f182901c9
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DISPC: Protect the dispc error worker from NULL pointer
srinivas pulukuru [Wed, 18 Sep 2013 19:08:09 +0000 (14:08 -0500)]
OMAPDSS: DISPC: Protect the dispc error worker from NULL pointer

 With HDMI default display the mgr and mgr->device will be NULL
 which causes a panic.
 Protect against dereferencing a NULL pointer

Change-Id: If61266229ce762842dd21f3cbfe61d82b3b51b72
Author: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DISPC: gracefully disable overlay at error
srinivas pulukuru [Tue, 17 Sep 2013 20:39:59 +0000 (15:39 -0500)]
OMAPDSS: DISPC: gracefully disable overlay at error

Disable overlay via ovl->disable() interface, which will
properly set flags in cache and GO bits for managers.
This allows overlay user to re-enable it on next frame,
thus recovering from FIFO underflows.

Author: Sergiy Kibrik <sergiy.kibrik@globallogic.com>
Change-Id: Iafeea91196efae82e81b41c637848accd80c07d6
Signed-off-by: Sergiy Kibrik <sergiy.kibrik@globallogic.com>
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DISPC: set preload to high threshold to avoid FIFO underflow
srinivas pulukuru [Mon, 16 Sep 2013 16:59:34 +0000 (11:59 -0500)]
OMAPDSS: DISPC: set preload to high threshold to avoid FIFO underflow

set preload to high threshold to avoid FIFO underflow in HDMI

Change-Id: Ia21692755cc5fa1f7d829ee6faf6ce93ac1388ab
Signed-off-by: srinivas pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DSS: enable dispc_clk_source selection from HDMI
srinivas pulukuru [Thu, 17 Oct 2013 16:35:54 +0000 (11:35 -0500)]
OMAPDSS: DSS: enable dispc_clk_source selection from HDMI

 enable dispc_clk_source selection from HDMI

Change-Id: I969ed6809904a73b68272369568c3595fefc1e3e
Signed-off-by: srinivas pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DISPC: Remove reduntant code for passing plane info
srinivas pulukuru [Mon, 23 Sep 2013 04:00:17 +0000 (23:00 -0500)]
OMAPDSS: DISPC: Remove reduntant code for passing plane info

overlay id is being retrived from overlay that was not initialized during probe.
This will cause NULL pointer exception when accessing the ovl->id
directly when initializing the DISPC without initializing the
overlas/managers during probe.

overlays/managers are being initialized during probe with a call
to omapdss_compat_init(). This call is being made from dsscomp or omapfb
probe. if either of these components are not used by the rendering engine
then it will cause NULL pointer exception when accessing overlays frmo DISPC.

Change-Id: I2c98aa5de4f3bf2a4ea6206f0f605d24343e9996
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DSS: Fix file permissions from 755 to 644
Praneeth Bajjuri [Fri, 6 Sep 2013 21:55:38 +0000 (16:55 -0500)]
OMAPDSS: DSS: Fix file permissions from 755 to 644

Fix file permission back to 644 on dss/apply.c

caused by
commit ad56f9294f1a75e63bfad1f6b85135f0a8a6b582
OMAPDSS: DSS: Fix null pointer crash in DSS

Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
7 years agoOMAPDSS: DISPC: remove revision check on arbitration
Sergiy Kibrik [Wed, 31 Jul 2013 19:45:47 +0000 (14:45 -0500)]
OMAPDSS: DISPC: remove revision check on arbitration

Move code that turns arbitration on to be logically close
to MFLAG setting and dispose of OMAP5 revisions checks,
   as all OMAP5 revisions have MFLAG support, so prioritizing
   their GFX planes is redundant.

Change-Id: Ief0b203bc8966a5d810b71a94a76395758950024
Signed-off-by: Sergiy Kibrik <sergiy.kibrik@globallogic.com>
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DISPC: Add support for global MFLAG feature
Sreenidhi Koti [Wed, 31 Jul 2013 19:16:48 +0000 (14:16 -0500)]
OMAPDSS: DISPC: Add support for global MFLAG feature

Description: DSS generates real time and non real time traffic (read and write).
Real time traffic can not be stalled. FIFO overflow/underflow can occur in case
of real time traffic. MFLAG mechanisum can dynamically increase the priority of
DISPC real time traffic when required based on the fullness of the DISPC
DMA buffers (read and write buffers).

Programmable buffer thresholds are used to indicate when MFLAG shall be generated.
MFLAG is provided to L3 and used to grant OCP requests. It is implemented for all
DMA buffers (gfx, video1, video2, video3 and write-back).

Set mflag start signal at the beginning of each frame

Change-Id: I89e5ec9eff1ee533da44de429a0a4f670f1f8ef2
Signed-off-by: Sreenidhi Koti <sreenidhi@ti.com>
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
7 years agoOMAPDSS: DISPC : Enable GFX pipeline arbitration
Dandawate Saket [Wed, 31 Jul 2013 17:42:44 +0000 (12:42 -0500)]
OMAPDSS: DISPC : Enable GFX pipeline arbitration

Issue:
Framebuffer width selected as 1080p or higher on OMAP5
is causing underflows when pushed on to 1080@60fps HD
TV.

GFX pipeline is always presented with largest ARGB 32 bit
buffers vs other pipes. Also we see issue more often when
SGX is used to do composition instead of overlays. In this
case GFX BW requirement to fetch scale and compose is higher
for each composition than via DSS. This is because DSS does
these on the fly in its pipelines saving BW.

Fix
Enable GFX pipeline arbitration to avoid underflows
seen due to high BW requirements.

Current fix is applicable for omap5xxx.

Change-Id: I88602159625fe412cf4ee1c47aa454a8c8648a71
Signed-off-by: Srinivas Pulukuru <srinivas.pulukuru@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: DISPC: Force L3_2 CD to NOSLEEP when dispc module is active
Devaraj Rangasamy [Mon, 15 Apr 2013 18:17:43 +0000 (13:17 -0500)]
OMAPDSS: DISPC: Force L3_2 CD to NOSLEEP when dispc module is active

It has been identified that L3_2 CD is idling and not responding to the traffic
initiated by initiators. As per errata i740 worakaround, ISS-L3_2 noidle
constraint should be in place when ISS is effective.

But random hangs are observed if DSS-L3_2 is not enabled, and this patch is
a temporary workaround till actual issue is rootcaused and fixed.

Change-Id: Ida7e4d38916b6ef1a3ff429bca24d6b252d923cd
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
7 years agoOMAPDSS: DSS: Fix for mask query in manager blank api
Sunita Nadampalli [Mon, 13 May 2013 17:25:34 +0000 (12:25 -0500)]
OMAPDSS: DSS: Fix for mask query in manager blank api

Change-Id: I8978cc1f80451b62bd06f8297471e077b677f5e0
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
7 years agoOMAPDSS: DSS: Fix for setting up the overlay channel
Sunita Nadampalli [Thu, 9 May 2013 18:57:14 +0000 (13:57 -0500)]
OMAPDSS: DSS: Fix for setting up the overlay channel

Change-Id: If0c0fb65d56c70e0ab2c009a7bb858e7802ca6bd
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
7 years agoOMAPDSS: DSS: fix for zorder checking logic
Sunita Nadampalli [Thu, 9 May 2013 18:25:56 +0000 (13:25 -0500)]
OMAPDSS: DSS: fix for zorder checking logic

while validating the configuration, check zorder for
only the active/enabled overlays.

Change-Id: I72005b79a37d715bd46eff419afc5db271352f94
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
7 years agoOMAPDSS: DSS: Fix for DSS num_managers check in callbacks
Sunita Nadampalli [Thu, 9 May 2013 17:26:04 +0000 (12:26 -0500)]
OMAPDSS: DSS: Fix for DSS num_managers check in callbacks

Change-Id: If608ff9b9a8eac971ce25c94afdafa1200d08680
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
7 years agoOMAPDSS: DSS: Fix for DSS manager IRQ mask ordering
Sunita Nadampalli [Thu, 9 May 2013 17:19:40 +0000 (12:19 -0500)]
OMAPDSS: DSS: Fix for DSS manager IRQ mask ordering

Change-Id: If455e68a2ecea3c01f5465d568c7998d1158667a
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
7 years agoOMAPDSS: DSS: Enable dsscomp callbacks from apply IRQ
Sunita Nadampalli [Thu, 9 May 2013 17:16:02 +0000 (12:16 -0500)]
OMAPDSS: DSS: Enable dsscomp callbacks from apply IRQ

Change-Id: Id0f7c29d2511cd99feba4825c96a6be0ad5eb75c
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
7 years agoOMAPDSS: DSS: Add callback for tracking overlay/manager changes
Sunita Nadampalli [Thu, 9 May 2013 17:13:38 +0000 (12:13 -0500)]
OMAPDSS: DSS: Add callback for tracking overlay/manager changes

This patch is based on the original patch existing on K3.0 & K3.1.
This patch has been modified from the original patch-set to fit
into the new manager->apply() logic developed for K3.4 DSS2 driver.

The callback states have been added to the manager and overlay
private data structure, which were previously present in the
overlay/manager cache structure.  Callbacks is provided for both
shadow_info_dirty & extra_shadow_info_dirty in case of overlays.

This patch allows tracking when a particular overlay or manager
change has taken place, and when it is eclipsed (no longer used).

Change-Id: Ib43267c1a08da985e3c38a911302ea3720e605e4
Signed-off-by: Lajos Molnar<lajos@ti.com>
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
7 years agoOMAPDSS: DSS: Fix null pointer crash in DSS
Dandawate Saket [Mon, 6 May 2013 10:14:10 +0000 (03:14 -0700)]
OMAPDSS: DSS: Fix null pointer crash in DSS

In case we are missing dss device declaration we
are currently crashing wiht NULL pointer.

Adding check for NULL pointer

Change-Id: Id6eb29df4318f8e03b7bbb5927b073a241639a41
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: DSS: Initialize manager blank api.
Dandawate Saket [Wed, 24 Apr 2013 07:25:28 +0000 (00:25 -0700)]
OMAPDSS: DSS: Initialize manager blank api.

Manager blank api was implemented but not initialized in the
manager variable. This was causing the notifier to crash during
early suspend.

Change-Id: I73451c8837ce307762cdbf846449fc9ee64ca763
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: DISPC: errata i740 fix: force L3_1 CD to NOSLEEP when dispc module is active
Devaraj Rangasamy [Mon, 15 Apr 2013 18:08:43 +0000 (13:08 -0500)]
OMAPDSS: DISPC: errata i740 fix: force L3_1 CD to NOSLEEP when dispc module is active

It has been identified that L3_1 CD is idling and not responding to the traffic
initiated by DSS.  The Workaround suggested by Hardware team is to keep the
L3_1 CD in NO_SLEEP mode, when DSS is active.  Once DSS module is switched to
idle mode, put L3_1 CD to HW_AUTO.

OMAP4,5 ERRATUM i740: Mstandby and disconnect protocol issue
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Change-Id: Ia0499ad3ff0cabbc3ae25300407f1d7c6b9fa921
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: DSS: Invoke dsscomp callbacks for manually updated displays
Sergiy Kibrik [Tue, 2 Apr 2013 14:20:01 +0000 (09:20 -0500)]
OMAPDSS: DSS: Invoke dsscomp callbacks for manually updated displays

This allows callback states logic to correctly handle
DSS_COMPLETION_RELEASED state.

Change-Id: Ief11a2f654bf7b4d3e6fc6e2e28f4647418e7bd7
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
7 years agoOMAPDSS: DSS: Add support for simultaneous multiple overlay updates
Sreenidhi Koti Ananda Rao [Tue, 2 Apr 2013 13:37:47 +0000 (08:37 -0500)]
OMAPDSS: DSS: Add support for simultaneous multiple overlay updates

Description: The current apply mechanism in DSS enables/disables
one overlay at a time, in order to have FIFO merge work. There is
no provision of updating multiple overlays in one shot, which is
the most probable use-case with clinets like DSSCOMP and HLOS
like Android.

In DSSCOMP, each composition may consist of multiple overlays,
some of them need enabling & some may need to be disabled. We
need to update this entire info in one single dispc_go, so all
the layers get refreshed together.

This patch adds support for taking multiple overlays info &
updating it in one shot. The overlay manager gets the overlays
info in an array that needs to be updated together.

Change-Id: Ia04e7c0c0e7e310037f5a0e507d28bb585e3ea7e
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoOMAPDSS: DSS: Added Callback functionality to DSS
Arthur Philpott [Wed, 10 Apr 2013 21:19:15 +0000 (16:19 -0500)]
OMAPDSS: DSS: Added Callback functionality to DSS

Implemented the callback functionality in the DSS
driver needed for DSSCOMP to keep track of the state
of the DSS.

Change-Id: I0569da8af96d92fcb8b7f189c0e3e29626b52249
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
7 years agoomap2plus_defconfig: regulator: ti-avs-class0: enable AVS class 0
Praneeth Bajjuri [Thu, 11 Jul 2013 22:04:44 +0000 (17:04 -0500)]
omap2plus_defconfig: regulator: ti-avs-class0: enable AVS class 0

This patch is to enable regulator TI AVS Class 0

Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
7 years agoARM: DRA7: board-generic: Modify the machine name
Praneeth Bajjuri [Thu, 11 Jul 2013 21:26:09 +0000 (16:26 -0500)]
ARM: DRA7: board-generic: Modify the machine name

Changing the machine name to "Jacinto6 evm board".

This is needed to populate the correct device name to sdk.

Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
7 years agoASoC: davinci: fix sample rotation
Daniel Mack [Thu, 16 May 2013 13:25:01 +0000 (15:25 +0200)]
ASoC: davinci: fix sample rotation

McASP serial audio engine needs different rotation values on TX and RX
channels. Commit dde109fb462 ("ASoC: McASP: Fix data rotation for
playback. Enables 24bit audio playback") changed the calculation to fix
the playback format, but broke the capture stream by doing it for both
TXFMT and RXFMT.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@vger.kernel.org [3.9 only]
7 years agoASoC: McASP: Fix receive clock polarity in DAIFMT_NB_NF mode.
Marek Belisko [Fri, 3 May 2013 05:37:36 +0000 (07:37 +0200)]
ASoC: McASP: Fix receive clock polarity in DAIFMT_NB_NF mode.

According documentation bit ACLKRPOL is set to 0 (receiver samples data
on falling edge) and when set to 1 (receiver samples data on rising edge).

I2S data are always sampled on falling edge and valid during rising edge
of bit clock. So in case of capture data transmitter sample data on falling
edge and macsp must read then on rising edge.

Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoASoC: McASP: Add pins output direction for rx clocks when configured in CBS_CFS format
Marek Belisko [Fri, 26 Apr 2013 12:38:11 +0000 (14:38 +0200)]
ASoC: McASP: Add pins output direction for rx clocks when configured in CBS_CFS format

When McASP is bit clock and frame clock master enable pin output for rx clocks.

Signed-off-by: Marek Belisko <marek.belisko@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoASoC: davinci-mcasp: Add Support BCLK-to-LRCLK ratio for TDM modes
Michal Bachraty [Fri, 19 Apr 2013 13:28:44 +0000 (15:28 +0200)]
ASoC: davinci-mcasp: Add Support BCLK-to-LRCLK ratio for TDM modes

For TDM mode, BCLK-to-LCLK ratio is computed as (tdm_slots) x (word_length).
I2S mode is only subset of TDM mode with specific tdm_slots = 2 channels.
Also bclk_lrclk_ratio can be greater than 255, therefore u16 need to be used.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Acked-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoASoC: davinci-pcm, davinci-mcasp: Clean up active_serializers
Michal Bachraty [Fri, 19 Apr 2013 13:28:03 +0000 (15:28 +0200)]
ASoC: davinci-pcm, davinci-mcasp: Clean up active_serializers

As pointed of by Vaibhav, commit message: "ASoC: davinci-mcasp: Add support for multichannel playback"
number of active serializers can be hidden into fifo_level variable, which is set in davimci-mcasp.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoASoC: davinci-mcasp: don't overwrite DIT settings
Yegor Yefremov [Thu, 4 Apr 2013 14:13:20 +0000 (16:13 +0200)]
ASoC: davinci-mcasp: don't overwrite DIT settings

Channel size settings will be made at the end of
davinci_mcasp_hw_params() routine and thus overwrite frame
format settings made for DIT mode. This patch fixes this issue
by taking op_mode into account. Tested with official PSP 3.2
kernel and sii9022a HDMI transmitter.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Tested-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoASoC: davinci-mcasp: don't configure AFSX direction in DIT mode
Yegor Yefremov [Thu, 4 Apr 2013 14:13:19 +0000 (16:13 +0200)]
ASoC: davinci-mcasp: don't configure AFSX direction in DIT mode

AFSX won't be used in DIT mode. The related pins are AHCLKX and
the data pins.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Acked-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Tested-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoASoC: davinci-mcasp: clean up davinci_hw_common_param()
Daniel Mack [Fri, 8 Mar 2013 13:19:38 +0000 (14:19 +0100)]
ASoC: davinci-mcasp: clean up davinci_hw_common_param()

As pointed of by Vaibhav, commit 2952b27e2 ("ASoC: davinci-mcasp:
Add support for multichannel playback") duplicated the logic of
counting the active serializers. That can be avoided by shifting
the code around a bit.

Also, drop two unused defines introduced by the same commit.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Vaibhav Bedia <vaibhav.bedia@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoASoC: davinci-mcasp: Add support for multichannel playback
Michal Bachraty [Thu, 28 Feb 2013 15:07:08 +0000 (16:07 +0100)]
ASoC: davinci-mcasp: Add support for multichannel playback

Davinci McASP has support for I2S multichannel playback.
For I2S playback/receive, each serializer is capable to play 2 channels
(L/R) audio data.Serializer function (Playback-receive-none) is configured
in DT, depending on hardware specification. It is possible to play less
channels than configured in DT. For that purpose,only specific number of
active serializers are enabled. McASP FIFO need to have DMA transfer Bcnt
set to number of enabled serializers, otherwise no data are transfered to
McASP and Alsa generates "DMA/IRQ playback write error (DMA or IRQ trouble?)"
error. For TDM mode, McASP is capable to play or receive 32 channels for one
serializer. McAsp has support for max 16 serializer, therefore max channels
is 32 * 8.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Tested-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoASoC: McASP: Fix data rotation for playback. Enables 24bit audio playback
Michal Bachraty [Fri, 18 Jan 2013 09:17:00 +0000 (10:17 +0100)]
ASoC: McASP: Fix data rotation for playback. Enables 24bit audio playback

u32 rotate = (32 - word_length) / 4;
This implementation is wrong, but it works only for 16, or 32 bit audio data.
(rotation for 16 or 32 bit is same as in code I present) Mcasp rotated data in
4 bits (max value 0x7)and then masks them . That data are sended to i2s bus.
For 24 bit or 20 bit or other data formats, this code rotates data badly and
you hear somethink like noise.  You need to use
u32 rotate = (word_length / 4) & 0x7;
to proper data rotation.

Signed-off-by: Michal Bachraty <michal.bachraty@streamunlimited.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
7 years agoMerge branch 'ti-linux-3.8.y' of git://git.ti.com/ti-linux-kernel/ti-linux-kernel...
Praneeth Bajjuri [Wed, 12 Jun 2013 22:58:09 +0000 (17:58 -0500)]
Merge branch 'ti-linux-3.8.y' of git://git.ti.com/ti-linux-kernel/ti-linux-kernel into p-ti-linux-3.8.y

* 'ti-linux-3.8.y' of git://git.ti.com/ti-linux-kernel/ti-linux-kernel:
  ARM: OMAP4+: omap2plus_defconfig: Enable audio via TWL6040 as module
  ASoC: OMAP4+: AESS: aess_mem: Activate AESS for memory/register access
  ARM: dts: OMAP5: AESS: Fix AESS L3 Interconnect address
  ASoC: OMAP: ABE: Pick working ABE support from LDC audio branch

Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
7 years agoMerge branch 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel...
Dan Murphy [Wed, 12 Jun 2013 19:21:38 +0000 (14:21 -0500)]
Merge branch 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree into ti-linux-3.8.y

TI-Feature: omap5_audio_video_base
TI-Tree: git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree.git
TI-Branch: omap5_audio_video-3.8.y

* 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree:
  ARM: OMAP4+: omap2plus_defconfig: Enable audio via TWL6040 as module
  ASoC: OMAP4+: AESS: aess_mem: Activate AESS for memory/register access
  ARM: dts: OMAP5: AESS: Fix AESS L3 Interconnect address
  ASoC: OMAP: ABE: Pick working ABE support from LDC audio branch

Conflicts:
arch/arm/configs/omap2plus_defconfig

Signed-off-by: Dan Murphy <dmurphy@ti.com>
7 years agoARM: OMAP4+: omap2plus_defconfig: Enable audio via TWL6040 as module
Peter Ujfalusi [Wed, 10 Apr 2013 09:08:00 +0000 (11:08 +0200)]
ARM: OMAP4+: omap2plus_defconfig: Enable audio via TWL6040 as module

Boards supported upstream all use TWL6040 as audio codec, enable the common
ASoC machine driver by default for them.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
7 years agoASoC: OMAP4+: AESS: aess_mem: Activate AESS for memory/register access
Jyri Sarha [Mon, 3 Jun 2013 15:23:28 +0000 (18:23 +0300)]
ASoC: OMAP4+: AESS: aess_mem: Activate AESS for memory/register access

Force AESS to be active when its memories or registers are accessed.

Without this patch changing some mixer settings when AESS is not
active causes AXI-error interrupts on OMAP5 uEVM.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
7 years agoMerge branch 'ti-linux-3.8.y' of git://git.ti.com/ti-linux-kernel/ti-linux-kernel...
Praneeth Bajjuri [Mon, 10 Jun 2013 21:20:56 +0000 (16:20 -0500)]
Merge branch 'ti-linux-3.8.y' of git://git.ti.com/ti-linux-kernel/ti-linux-kernel into p-ti-linux-3.8.y

* 'ti-linux-3.8.y' of git://git.ti.com/ti-linux-kernel/ti-linux-kernel: (443 commits)
  TI-Integration: ARM: OMAP2+: Fix merege by restoring omap_mcasp_init() call
  omapdss: TFCS panel: Check for successful TLC driver registration before using it
  omapdss: DSS DPLLs: Ignore PLL_PWR_STATUS on DRA7
  ARM: DRA7: dts: Add the sdma dt node and corresponding dma request lines for mmc
  ARM: dra7: dts: Add a fixed regulator node needed for eMMC
  arm/dts: dra7: Add ldo regulator for mmc1
  arm/dts: dra7: Add mmc controller nodes and board data
  ARM: DRA: hwmod: Correct the dma line names for mmc
  arch: arm: configs: Add support for DRA7 evm in omap2plus_defconfig
  arm: dts: dra7-evm: Add pinmux configs needed for display
  HACK: pinctrl: pinctrl single: Make pinctrl-single init early
  OMAPDSS:HDMI: Change PLL calculations
  omapdss: hdmi: fix deepcolor mode configuration
  ARM: dts: DRA7x: Add DMM bindings
  omapdrm: hack: Assign managers/channel to outputs in a more trivial way
  gpu: drm: omap: Use bitmaps for placement
  drm/omap: Fix and improve crtc and overlay manager correlation
  drm/omap: fix modeset_init if a panel doesn't satisfy omapdrm requirements
  drm/omap: Take a fb reference in omap_plane_update()
  drm/omap: move out of staging
  ...

Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
7 years agoARM: dts: OMAP5: AESS: Fix AESS L3 Interconnect address
Jyri Sarha [Mon, 10 Jun 2013 12:41:34 +0000 (15:41 +0300)]
ARM: dts: OMAP5: AESS: Fix AESS L3 Interconnect address

OMAP543x_ES2.0_Public_TRM from May 2013 has this same bug too, but the
right address is 490f1000. Also the bit-wise match to MPU private
access looks better this way.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
7 years agoASoC: OMAP: ABE: Pick working ABE support from LDC audio branch
Jyri Sarha [Thu, 2 May 2013 13:18:05 +0000 (16:18 +0300)]
ASoC: OMAP: ABE: Pick working ABE support from LDC audio branch

After this commit the content of sound/soc/omap matches to commit
0769a881 in git://gitorious.org/omap-audio/linux-audio.git with
following exceptions:

These commits not found from LDC tree are not overwritten:
ASoC: omap-abe-core: Call driver_deffered_probe_trigger only if built in
ASoC: OMAP: HDMI: Add support for DT boot
ASoC: HDMI: CPU-DAI: Correct typo
ASoC: OMAP: HDMI: Add config support for OMAP5

These commits from LDC tree are not included:
ASoC: omap: Check regulator enable for DAC on Pandora
ASoC: tlv320aic3x: Convert mic bias to a supply widget
ASoC: omap-pcm: No need to set constraint at open time

This commit is needed to bring the working ABE support from LDC audio
tree to LCPD AV-tree. The history of the old LCPD AV-tree does not
match LDC audio tree history (the "same" commits had different
content) so merge was not possible and this hackish commit was
needed.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
7 years agoTI-Integration: ARM: OMAP2+: Fix merege by restoring omap_mcasp_init() call ti2013.04.02
Jyri Sarha [Tue, 14 May 2013 22:31:34 +0000 (22:31 +0000)]
TI-Integration: ARM: OMAP2+: Fix merege by restoring omap_mcasp_init() call

Restore omap_mcasp_init() call that was lost in 1b891dcc-merge. McASP
device needs to be present for ABE TWL6040 probe to complete.

Signed-off-by: Jyri Sarha <jsarha@ti.com>
7 years agoMerge branch 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel...
Dan Murphy [Wed, 5 Jun 2013 14:19:38 +0000 (09:19 -0500)]
Merge branch 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree into ti-linux-3.8.y

TI-Feature: omap5_audio_video_base
TI-Tree: git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree.git
TI-Branch: omap5_audio_video-3.8.y

* 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree:
  omapdss: TFCS panel: Check for successful TLC driver registration before using it
  omapdss: DSS DPLLs: Ignore PLL_PWR_STATUS on DRA7

Signed-off-by: Dan Murphy <dmurphy@ti.com>
7 years agoomapdss: TFCS panel: Check for successful TLC driver registration before using it
Archit Taneja [Wed, 5 Jun 2013 11:03:54 +0000 (16:33 +0530)]
omapdss: TFCS panel: Check for successful TLC driver registration before using it

The TFCS panel driver internally uses the TLC brightness controller/gpio chip
to configure the panel. The TLC i2c driver is registered first following the
registration of the omapdss TFCS panel driver.

Currently, the TFCS panel driver can regsiter successfully even if the TLC
driver isn't probed successfully. Add a check in the TFCS driver probe if the
TLC i2c client device has a valid driver attached to it.

This removes the crash seen on Vayu evm when the LCD daughter card isn't
connected to the main Vayu CPU board.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoomapdss: DSS DPLLs: Ignore PLL_PWR_STATUS on DRA7
Archit Taneja [Wed, 5 Jun 2013 05:46:53 +0000 (11:16 +0530)]
omapdss: DSS DPLLs: Ignore PLL_PWR_STATUS on DRA7

There is a Vayu bug(VAYU-BUG02893) which prevents the correct update of
PLL_PWR_STATUS when the power state of DPLL_VIDEO1/2 is changed. Currently, the
driver reports the error but still proceeds ahead. Modify the code such that we
don't read the buggy field at all and adds a small delay for the power state to
change.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoMerge branch 'sdmmc-dra-linux-3.8.y' of git://git.ti.com/~balajitk/ti-linux-kernel...
Dan Murphy [Tue, 4 Jun 2013 13:53:37 +0000 (08:53 -0500)]
Merge branch 'sdmmc-dra-linux-3.8.y' of git://git.ti.com/~balajitk/ti-linux-kernel/omap-hsmmc into ti-linux-3.8.y

TI-Feature: J6-sd-mmc
TI-Tree: git://git.ti.com/~balajitk/ti-linux-kernel/omap-hsmmc into ti-linux-3.8.y
TI-Branch: sdmmc-dra-linux-3.8.y

* 'sdmmc-dra-linux-3.8.y' of git://git.ti.com/~balajitk/ti-linux-kernel/omap-hsmmc:
  ARM: DRA7: dts: Add the sdma dt node and corresponding dma request lines for mmc

Signed-off-by: Dan Murphy <dmurphy@ti.com>
7 years agoARM: DRA7: dts: Add the sdma dt node and corresponding dma request lines for mmc
Rajendra Nayak [Tue, 4 Jun 2013 10:32:01 +0000 (16:02 +0530)]
ARM: DRA7: dts: Add the sdma dt node and corresponding dma request lines for mmc

Without these the DMA engine adapted MMC driver will not function because of
the missing DMA information.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Balaji T K <balajitk@ti.com>
7 years agoMerge branch 'sdmmc-dra-linux-3.8.y' of git://git.ti.com/~balajitk/ti-linux-kernel...
Dan Murphy [Fri, 31 May 2013 20:19:19 +0000 (15:19 -0500)]
Merge branch 'sdmmc-dra-linux-3.8.y' of git://git.ti.com/~balajitk/ti-linux-kernel/omap-hsmmc into ti-linux-3.8.y

TI-Feature: J6-sd-mmc
TI-Tree: git://git.ti.com/~balajitk/ti-linux-kernel/omap-hsmmc into ti-linux-3.8.y
TI-Branch: sdmmc-dra-linux-3.8.y

* 'sdmmc-dra-linux-3.8.y' of git://git.ti.com/~balajitk/ti-linux-kernel/omap-hsmmc:
  ARM: dra7: dts: Add a fixed regulator node needed for eMMC
  arm/dts: dra7: Add ldo regulator for mmc1
  arm/dts: dra7: Add mmc controller nodes and board data
  ARM: DRA: hwmod: Correct the dma line names for mmc

Signed-off-by: Dan Murphy <dmurphy@ti.com>
7 years agoARM: dra7: dts: Add a fixed regulator node needed for eMMC
Rajendra Nayak [Fri, 31 May 2013 14:14:28 +0000 (19:44 +0530)]
ARM: dra7: dts: Add a fixed regulator node needed for eMMC

add dummy fixed regulator for eMMC vmmc-supply node

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Balaji T K <balajitk@ti.com>
7 years agoarm/dts: dra7: Add ldo regulator for mmc1
Balaji T K [Tue, 30 Apr 2013 10:52:08 +0000 (16:22 +0530)]
arm/dts: dra7: Add ldo regulator for mmc1

Add ldo1 as vmmc supply for mmc1

Signed-off-by: Balaji T K <balajitk@ti.com>
7 years agoarm/dts: dra7: Add mmc controller nodes and board data
Balaji T K [Tue, 30 Apr 2013 10:52:07 +0000 (16:22 +0530)]
arm/dts: dra7: Add mmc controller nodes and board data

Add dra mmc related device tree data.

Signed-off-by: Balaji T K <balajitk@ti.com>
7 years agoARM: DRA: hwmod: Correct the dma line names for mmc
Sricharan R [Fri, 31 May 2013 14:10:11 +0000 (19:40 +0530)]
ARM: DRA: hwmod: Correct the dma line names for mmc

The dma request line names are specifed by respective dma request
numbers, instead of the signal functionality name. This is different
from the previous dma_requests naming convention for older socs and
breaks those drivers which uses sdma. Changing this here for mmc.

Should be fixed in the auto gen scripts.

Signed-off-by: Sricharan R <r.sricharan@ti.com>
7 years agoMerge branch 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel...
Dan Murphy [Fri, 31 May 2013 11:44:18 +0000 (06:44 -0500)]
Merge branch 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree into ti-linux-3.8.y

TI-Feature: omap5_audio_video_base
TI-Tree: git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree.git
TI-Branch: omap5_audio_video-3.8.y

* 'omap5_audio_video-3.8.y' of git://git.ti.com/~a0393947/ti-linux-kernel/audio-video-linux-feature-tree: (28 commits)
  arch: arm: configs: Add support for DRA7 evm in omap2plus_defconfig
  arm: dts: dra7-evm: Add pinmux configs needed for display
  HACK: pinctrl: pinctrl single: Make pinctrl-single init early
  OMAPDSS:HDMI: Change PLL calculations
  omapdss: hdmi: fix deepcolor mode configuration
  ARM: dts: DRA7x: Add DMM bindings
  omapdrm: hack: Assign managers/channel to outputs in a more trivial way
  gpu: drm: omap: Use bitmaps for placement
  drm/omap: Fix and improve crtc and overlay manager correlation
  drm/omap: fix modeset_init if a panel doesn't satisfy omapdrm requirements
  drm/omap: Take a fb reference in omap_plane_update()
  drm/omap: move out of staging
  Revert "gpu: drm: omap: Use bitmaps for placement"
  omapdss: hdmi: Add an i2c adapter node as a possible DT phandle
  HACK: omapdss: HDMI hacks for DRA7x
  omapdss: hdmi: Add support for DRA7xx SoCs
  HACK: omap_hwmod: enable DESHDCP clock before DSS module is enabled
  arm: dra7-evm dts: Add lcd panel support
  gpio: pcf857x: Convert to DT mode
  omapdss: displays: Add tfcs9700 DPI panel driver
  ...

Conflicts:
arch/arm/boot/dts/omap5-sevm.dts
arch/arm/boot/dts/omap5-uevm.dts
arch/arm/boot/dts/omap5.dtsi
arch/arm/configs/omap2plus_defconfig
arch/arm/mach-omap2/omap_hwmod_33xx_data.c

Signed-off-by: Dan Murphy <dmurphy@ti.com>
7 years agoarch: arm: configs: Add support for DRA7 evm in omap2plus_defconfig
Archit Taneja [Thu, 30 May 2013 05:25:33 +0000 (10:55 +0530)]
arch: arm: configs: Add support for DRA7 evm in omap2plus_defconfig

Add CONFIGs in omap2plus_defconfig so that DRA7 evm boots up straight away.
This involved adding CONFIG for a PCF io expander and DPI driver specific to
DRA7x.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoarm: dts: dra7-evm: Add pinmux configs needed for display
Archit Taneja [Thu, 30 May 2013 15:51:07 +0000 (21:21 +0530)]
arm: dts: dra7-evm: Add pinmux configs needed for display

DSS requires pinmux configurations for the VOUT1 DPI lines and I2C2 as it
controls a PCF 8575 IO expander needed by the HDMI level shifter.

Add pinmux configurations for them.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoHACK: pinctrl: pinctrl single: Make pinctrl-single init early
Archit Taneja [Thu, 30 May 2013 11:39:05 +0000 (17:09 +0530)]
HACK: pinctrl: pinctrl single: Make pinctrl-single init early

Change pinctrl-single driver's initcall level from module initcall to arch
initcall. This prevents dependent drivers not supporting deferred probe
mechanism from failing.

This is done for omapdss which doesn't support deferred probe yet. Deferred
probe for omapdss is complicated as init order between omapdss and it's users
(omapfb or omapdrm) is important, and deferred probe complicates that.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoOMAPDSS:HDMI: Change PLL calculations
Andy Gross [Wed, 29 May 2013 07:38:06 +0000 (13:08 +0530)]
OMAPDSS:HDMI: Change PLL calculations

This patch modifies the algorithms used to determine the correct PLL
settings for the HDMI TMDS output.  Instead of using fixed REGM2 values
we search for a valid combination of REGN, REGM, REGM2 that satisfy the
constraints for the requested frequency.

The computation involves looping through the values of REGN and trying to
find an adequate REGM and REGM2 (if applicable).  This results in the lowest
value for REGN that will satisfy the frequency request.

This patch also modifies the API used for the hdmi_compute_pll function.
If a valid PLL combination cannot be found, we return an error back to the
caller.

Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoomapdss: hdmi: fix deepcolor mode configuration
Archit Taneja [Mon, 6 May 2013 15:36:06 +0000 (17:36 +0200)]
omapdss: hdmi: fix deepcolor mode configuration

The hdmi driver supports deep color modes. However, there is a specific check
which doesn't allow 1080p timings or higher to be shown 36 bit deep color mode.

The more generic check would be to check if the pixel clock in a deep color mode
is less than the maximum pixel clock the TV overlay manager can support for the
given OMAP. Make this change.

Also, make sure that hdmi.dssdev is assigned by the end of probe, this param is
needed by the deepcolor sysfs attribute file.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoARM: dts: DRA7x: Add DMM bindings
Archit Taneja [Mon, 6 May 2013 08:37:54 +0000 (10:37 +0200)]
ARM: dts: DRA7x: Add DMM bindings

Add Dynamic Memory Manager (DMM) bindings for DRA7x device.

Signed-off-by: Archit Taneja <archit@ti.com>
Conflicts:

arch/arm/boot/dts/dra7.dtsi

7 years agoomapdrm: hack: Assign managers/channel to outputs in a more trivial way
Archit Taneja [Mon, 6 May 2013 08:38:33 +0000 (10:38 +0200)]
omapdrm: hack: Assign managers/channel to outputs in a more trivial way

3.8 kernel doesn't have 'dispc_channel' field for omapdss outputs, do a simple
assignment of channels for outputs for now.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agogpu: drm: omap: Use bitmaps for placement
Andy Gross [Thu, 2 May 2013 11:23:59 +0000 (13:23 +0200)]
gpu: drm: omap: Use bitmaps for placement

Modified Tiler placement to utilize bitmaps for bookkeeping and
all placement algorithms.  This resulted in a substantial savings
in time for all Tiler reservation and free operations.  Typical
savings are in the range of 28% decrease in time taken with larger
buffers showing a 80%+ decrease.

Signed-off-by: Andy Gross <andy.gross@ti.com>
7 years agodrm/omap: Fix and improve crtc and overlay manager correlation
Archit Taneja [Tue, 26 Mar 2013 13:45:19 +0000 (19:15 +0530)]
drm/omap: Fix and improve crtc and overlay manager correlation

The omapdrm driver currently takes a config/module arg to figure out the number
of crtcs it needs to create. We could create as many crtcs as there are overlay
managers in the DSS hardware, but we don't do that because each crtc eats up
one DSS overlay, and that reduces the number of planes we can attach to a single
crtc.

Since the number of crtcs may be lesser than the number of hardware overlay
managers, we need to figure out which overlay managers to use for our crtcs. The
current approach is to use pipe2chan(), which returns a higher numbered manager
for the crtc.

The problem with this approach is that it assumes that the overlay managers we
choose will connect to the encoders the platform's panels are going to use,
this isn't true, an overlay manager connects only to a few outputs/encoders, and
choosing any overlay manager for our crtc might lead to a situation where the
encoder cannot connect to any of the crtcs we have chosen. For example, an
omap5-panda board has just one hdmi output. If num_crtc is set to 1, with the
current approach, pipe2chan will pick up the LCD2 overlay manager, which cannot
connect to the hdmi encoder at all. The only manager that could have connected
to hdmi was the TV overlay manager.

Therefore, there is a need to choose our overlay managers keeping in mind the
panels we have on that platform. The new approach iterates through all the
available panels, creates encoders and connectors for them, and then tries to
get a suitable overlay manager to create a crtc which can connect to the
encoders.

We use the dispc_channel field in omap_dss_output to retrieve the desired
overlay manager's channel number, we then check whether the manager had already
been assigned to a crtc or not. If it was already assigned to a crtc, we assume
that out of all the encoders which intend use this crtc, only one will run at a
time. If the overlay manager wan't assigned to a crtc till then, we create a
new crtc and link it with the overlay manager.

This approach just looks for the best dispc_channel for each encoder. On DSS HW,
some encoders can connect to multiple overlay managers. Since we don't try
looking for alternate overlay managers, there is a greater possibility that 2
or more encoders end up asking for the same crtc, causing only one encoder to
run at a time.

Also, this approach isn't the most optimal one, it can do either good or bad
depending on the sequence in which the panels/outputs are parsed. The optimal
way would be some sort of back tracking approach, where we improve the set of
managers we use as we iterate through the list of panels/encoders. That's
something left for later.

Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
7 years agodrm/omap: fix modeset_init if a panel doesn't satisfy omapdrm requirements
Archit Taneja [Tue, 26 Mar 2013 13:45:18 +0000 (19:15 +0530)]
drm/omap: fix modeset_init if a panel doesn't satisfy omapdrm requirements

modeset_init iterates through all the registered omapdss devices and has some
initial checks to see if the panel has a driver and the required driver ops for
it to be usable by omapdrm.

The function bails out from modeset_init if a panel doesn't meet the
requirements, and stops the registration of the future panels and encoders which
come after it, that isn't the correct thing to do, we should go through the rest
of the panels. Replace the 'return's with 'continue's.

Signed-off-by: Archit Taneja <archit@ti.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
7 years agodrm/omap: Take a fb reference in omap_plane_update()
Archit Taneja [Tue, 9 Apr 2013 12:26:00 +0000 (15:26 +0300)]
drm/omap: Take a fb reference in omap_plane_update()

When userspace calls SET_PLANE ioctl, drm core takes a reference of the fb and
passes control to the update_plane op defined by the drm driver.

In omapdrm, we have a worker thread which queues framebuffers objects received
from update_plane and displays them at the appropriate time.

It is possible that the framebuffer is destoryed by userspace between the time
of calling the ioctl and apply-worker being scheduled. If this happens, the
apply-worker holds a pointer to a framebuffer which is already destroyed.

Take an extra refernece/unreference of the fb in omap_plane_update() to prevent
this from happening. A reference is taken of the fb passed to update_plane(),
the previous framebuffer (held by plane->fb) is unreferenced. This will prevent
drm from destroying the framebuffer till the time it's unreferenced by the
apply-worker.

This is in addition to the exisitng reference/unreference in update_pin(),
which is taken for the scanout of the plane's current framebuffer, and an
unreference the previous framebuffer.

Signed-off-by: Archit Taneja <archit@ti.com>
Reviewed-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
7 years agodrm/omap: move out of staging
Rob Clark [Mon, 11 Feb 2013 17:43:09 +0000 (12:43 -0500)]
drm/omap: move out of staging

Now that the omapdss interface has been reworked so that omapdrm can use
dispc directly, we have been able to fix the remaining functional kms
issues with omapdrm.  And in the mean time the PM sequencing and many
other of that open issues have been solved.  So I think it makes sense
to finally move omapdrm out of staging.

Signed-off-by: Rob Clark <robdclark@gmail.com>
7 years agoRevert "gpu: drm: omap: Use bitmaps for placement"
Archit Taneja [Thu, 2 May 2013 09:19:29 +0000 (11:19 +0200)]
Revert "gpu: drm: omap: Use bitmaps for placement"

This reverts commit 2857ec212485e407354d03be48cf00f03437c098.

7 years agoomapdss: hdmi: Add an i2c adapter node as a possible DT phandle
Archit Taneja [Tue, 30 Apr 2013 12:08:29 +0000 (14:08 +0200)]
omapdss: hdmi: Add an i2c adapter node as a possible DT phandle

The hdmi driver supports reading edid either via HDMI IP's ddc in the case
of omap4. We support a bitbanged gpio i2c mode for omap5. For Vayu, the pins
muxed with HDMI IP's ddc are the I2C2 lines, so we provide a mode where we allow
the i2c adapter to be passed as a phandle by DT.

Add a DT node for hdmi similar to that as of omap5-uevm. The difference on Vayu
evm is that it the hdmi ddc lines are the I2C2 line instead of bitbanged gpio
lines. There is a also a PCF level shifter on I2C2 which is used to drive LS_OE
and CT_HPD pins in the TPS level shifter. The HPD gpio is connected directly to
a Vayu GPIO bank.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoHACK: omapdss: HDMI hacks for DRA7x
Archit Taneja [Tue, 30 Apr 2013 16:50:29 +0000 (18:50 +0200)]
HACK: omapdss: HDMI hacks for DRA7x

- Vayu evm has a demux which decides whether i2c2 lines go to the hdmi level
shifter(and finally to the panel) or if they are in their normal state(where
i2c2 is connected to many slaves, one of which is a gpio expander to configure
the LS_OE and CT_HPD pins of the level shifter). This demux is controlled by
a mcasp based gpio. There is no mcasp-gpio driver, neither there is a clean
way to represent such a pin in DT. So the bit is toggled as a hack in the
hdmi driver itself.

- On DRA7x, hdmi phy state transition checks are failing even though hdmi phy is
transitioning correctly, ignore the phy transition checks for now.

These need to be cleaned up later.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoomapdss: hdmi: Add support for DRA7xx SoCs
Archit Taneja [Mon, 22 Apr 2013 13:19:17 +0000 (18:49 +0530)]
omapdss: hdmi: Add support for DRA7xx SoCs

DRA7xx DSS has the same HDMI IP as OMAP5, add OMAPDSS version checks where
necessary.

HDMI DPLL on DRA7xx can be accessed via DSS address space only when
DSS_PLL_CONTROL in controle module is configured correctly. Do this
configuration here. This is hacky and should be moved to somewhere in the
prcm driver.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoHACK: omap_hwmod: enable DESHDCP clock before DSS module is enabled
Archit Taneja [Tue, 16 Apr 2013 06:05:21 +0000 (11:35 +0530)]
HACK: omap_hwmod: enable DESHDCP clock before DSS module is enabled

enable DESHDCP clock very early in omap_hwmod_setup_all to make sure it's set
before DSS hwmods are setup. Find a better way to do this.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoarm: dra7-evm dts: Add lcd panel support
Archit Taneja [Tue, 30 Apr 2013 12:02:45 +0000 (14:02 +0200)]
arm: dra7-evm dts: Add lcd panel support

Add DT nodes for the dpi lcd panel and the TLC i2c client.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agogpio: pcf857x: Convert to DT mode
Archit Taneja [Mon, 22 Apr 2013 09:13:59 +0000 (14:43 +0530)]
gpio: pcf857x: Convert to DT mode

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoomapdss: displays: Add tfcs9700 DPI panel driver
Archit Taneja [Tue, 16 Apr 2013 10:14:37 +0000 (15:44 +0530)]
omapdss: displays: Add tfcs9700 DPI panel driver

TFCS9700 is a 800x480 DPI LCD panel found on the Vayu display daughter card.
The card also contains an i2c brightness controller/gpio expander(TLCxxxx) which
drives a pwm signal for the panel and also provides some gpios to configure some
of the panel pins.

Add the DPI panel driver as an omapdss driver, and add the i2c controller as a
client driver in the same file for now. In the longer run, we would have a
separate mfd driver for the TLC chip.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoarm: dra7 dtsi: add DSS DT node
Archit Taneja [Tue, 30 Apr 2013 11:55:34 +0000 (13:55 +0200)]
arm: dra7 dtsi: add DSS DT node

Add a DT node for DSS, this is similar to the DT nodes in omap4/5, the only
difference is that there are multpiple instances of DPI, and they match with
the dra7xx-dpi driver.

Signed-off-by: Archit Taneja <archit@ti.com>
Conflicts:

arch/arm/boot/dts/dra7.dtsi

7 years agoomapdss: Add a DPI driver for DRA7xx SoC
Archit Taneja [Thu, 4 Apr 2013 12:09:35 +0000 (17:39 +0530)]
omapdss: Add a DPI driver for DRA7xx SoC

Create a DPI driver for DRA7xx DSS, the only difference it has compared to the
OMAP DPI driver is that it uses dss core DPLLs as an alternative clock source
and not the DSI PLLs.

These drivers can be merged later on when DSI PLL code is made more generic and
is moved to dss core.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoomapdss: dpi: create common DPI ops for panel drivers
Archit Taneja [Mon, 18 Mar 2013 08:50:08 +0000 (14:20 +0530)]
omapdss: dpi: create common DPI ops for panel drivers

This allows panel drivers to be independent of the underlying DPI IP, i.e,
whether it's OMAP DPI or DRA DPI.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoomapdss: features: Add a dss_features struct for DRA7xx SoC
Archit Taneja [Thu, 4 Apr 2013 12:07:31 +0000 (17:37 +0530)]
omapdss: features: Add a dss_features struct for DRA7xx SoC

Add a new features struct for DRA7xx. The connections between outputs and
managers in DRA7xx differ a lot from OMAP5, so we add a new feat struct for it.

Signed-off-by: Archit Taneja <archit@ti.com>
7 years agoomapdss: Add dss dplls to dss family
Archit Taneja [Fri, 5 Apr 2013 06:10:06 +0000 (11:40 +0530)]
omapdss: Add dss dplls to dss family

DRA7x has video DPLLs similar to that of the DSI PLLs on OMAP. However, they
aren't a part of DSI, and belong to the DSS core/ DSS family of registers. Tie
the video DPLLs to the dss core platform device.

Borrow the code from DSI to power on, configure and lock the PLLs. The apis
provided will be used by the DRA7x DPI driver to get a desired pixel clock.

Signed-off-by: Archit Taneja <archit@ti.com>