ARM: dts: DRA7/OMAP5: reserve carveout buffers & fix carveout size
Carveout buffers were initialized but not reserved for
DRA7. This patch adds the missing memreserves without
which there could be data corruption in highmem region.
In addition, the carveout size for TILER secure heap was programmed
wrongly to 96MB whereas it should have been 81 MB. This patch
fixes this and re-adjusts the carveout base addresses.
Change-Id: I151bd37f089aa7fbf590035ea4f612f1da12f53a
Signed-off-by: Sundar Raman <a0393242@ti.com>
Carveout buffers were initialized but not reserved for
DRA7. This patch adds the missing memreserves without
which there could be data corruption in highmem region.
In addition, the carveout size for TILER secure heap was programmed
wrongly to 96MB whereas it should have been 81 MB. This patch
fixes this and re-adjusts the carveout base addresses.
Change-Id: I151bd37f089aa7fbf590035ea4f612f1da12f53a
Signed-off-by: Sundar Raman <a0393242@ti.com>
gpu: ion: fix omap_ion_share_fd_to_buffers api
the output value from ion_share_dma_buf is a dma buf fd
buffers array was filled mistakenly as the code was ported
from k3.4 where the equivalent function ion_share used to
return pointer to ion_buffer. updated the code to upref
using ion_share_dma_buf() and get the handle to buffer using
ion_handle_buffer().
Change-Id: I3bb39f918a9dde8ee78ffa3adcab447589295fdf
Signed-off-by: Sundar Raman <a0393242@ti.com>
the output value from ion_share_dma_buf is a dma buf fd
buffers array was filled mistakenly as the code was ported
from k3.4 where the equivalent function ion_share used to
return pointer to ion_buffer. updated the code to upref
using ion_share_dma_buf() and get the handle to buffer using
ion_handle_buffer().
Change-Id: I3bb39f918a9dde8ee78ffa3adcab447589295fdf
Signed-off-by: Sundar Raman <a0393242@ti.com>
gpu: ion: omap: add checks for carveout addresses and sizes
This patch adds sanity checks on the carveout and size parameters
read from the device tree file and returns error. It also checks
if the device tree is populated and returns error accordingly.
Change-Id: Ic1f4e9d7c5f7e9361d9fe922544f9dbc105d99c3
Signed-off-by: Sundar Raman <a0393242@ti.com>
This patch adds sanity checks on the carveout and size parameters
read from the device tree file and returns error. It also checks
if the device tree is populated and returns error accordingly.
Change-Id: Ic1f4e9d7c5f7e9361d9fe922544f9dbc105d99c3
Signed-off-by: Sundar Raman <a0393242@ti.com>
gpu: ion: omap: Fix TILER secure heap base address
Access to ION TILER buffers were resulting in data aborts
because of incorrect heap base address initialization.
The omap_ion_heap_tiler_base variable was not being
initialized. With this patch the ION tests pass.
Change-Id: Ic072767a5b70b1eab37caf0a7fadb96f1da97b34
Signed-off-by: Sundar Raman <a0393242@ti.com>
Access to ION TILER buffers were resulting in data aborts
because of incorrect heap base address initialization.
The omap_ion_heap_tiler_base variable was not being
initialized. With this patch the ION tests pass.
Change-Id: Ic072767a5b70b1eab37caf0a7fadb96f1da97b34
Signed-off-by: Sundar Raman <a0393242@ti.com>
gpu: ion: omap: re-populate flags parameters into buffer
Since the flags function param of omap_tiler_heap_allocate
is used to pass the omap_tiler_info struct, pass the
actual flags param from the client inside omap_tiler_info
struct and re-populate it into the buffer struct.
Change-Id: I06f3b6125c2760f7b4bcc7f174458139d80ec000
Signed-off-by: Sundar Raman <a0393242@ti.com>
Since the flags function param of omap_tiler_heap_allocate
is used to pass the omap_tiler_info struct, pass the
actual flags param from the client inside omap_tiler_info
struct and re-populate it into the buffer struct.
Change-Id: I06f3b6125c2760f7b4bcc7f174458139d80ec000
Signed-off-by: Sundar Raman <a0393242@ti.com>
ION: Add ion support for DRA7
Add ion support for DRA7
Change-Id: Iee1b8ca1f0de6ca7d4e3ea5d2cc1dcccf803239b
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Add ion support for DRA7
Change-Id: Iee1b8ca1f0de6ca7d4e3ea5d2cc1dcccf803239b
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: Fix compilation warnings
Fix type casting compilation warning.
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Fix type casting compilation warning.
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: Enable ion for compilation
Enable ion for compilation
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Enable ion for compilation
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: Fix compilation error for ion
Tiler driver has been moved from staging folder to gpu/drm.
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Tiler driver has been moved from staging folder to gpu/drm.
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: Decouple DMM from DRM driver
DMM/Tiler needs to be a separate driver. This patch decouples
the two drivers from one another and makes the DMM/Tiler a
viable standalone driver.
Change-Id: I7cbd43374fd04ae6565fbc42b8e3f381cab7b624
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
DMM/Tiler needs to be a separate driver. This patch decouples
the two drivers from one another and makes the DMM/Tiler a
viable standalone driver.
Change-Id: I7cbd43374fd04ae6565fbc42b8e3f381cab7b624
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: Decouple DMM from DRM driver
DMM/Tiler needs to be a separate driver. This patch decouples
the two drivers from one another and makes the DMM/Tiler a
viable standalone driver.
Change-Id: I7cbd43374fd04ae6565fbc42b8e3f381cab7b624
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
DMM/Tiler needs to be a separate driver. This patch decouples
the two drivers from one another and makes the DMM/Tiler a
viable standalone driver.
Change-Id: I7cbd43374fd04ae6565fbc42b8e3f381cab7b624
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
gpu: ion: Tiler functionality added
Tiler functionality added for the DSSCOMP module.
Change-Id: I1dd69d6176cf29bc557aec28a5903eb1788338c1
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Tiler functionality added for the DSSCOMP module.
Change-Id: I1dd69d6176cf29bc557aec28a5903eb1788338c1
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: Removed multiple occurence of sita from Makefile
After Decoupling the DMM TILER driver from DRM the
extra occurence of sita had to be removed.
Change-Id: Iaeebf52c6874bfa5204dfb5aad0a4a40c33e51f2
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
After Decoupling the DMM TILER driver from DRM the
extra occurence of sita had to be removed.
Change-Id: Iaeebf52c6874bfa5204dfb5aad0a4a40c33e51f2
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
gpu: ion: Tiler functionality added
Tiler functionality added for the DSSCOMP module
Change-Id: I1dd69d6176cf29bc557aec28a5903eb1788338c1
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Tiler functionality added for the DSSCOMP module
Change-Id: I1dd69d6176cf29bc557aec28a5903eb1788338c1
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: Configuration changes
Added configuration changes to include all
dependencies needed by Tiler and enable by default
Change-Id: I6f7377b8caac991c046cb03ddbe1815101a5f3bd
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Added configuration changes to include all
dependencies needed by Tiler and enable by default
Change-Id: I6f7377b8caac991c046cb03ddbe1815101a5f3bd
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: Fixes for ion_alloc_tiler
1) New ION does not allow len=0. Workaround by passing size as -1
2) New ION calls map_dma as part of ion_alloc. This does not work well
for ion_alloc_tiler because the map_dma requires tiler_info to be present
as part of priv_virt. Workaround by passing tiler_info ptr to flags and
insert it into priv_virt field in heap allocate api
3) Misc fixes for allocation and sg list
Change-Id: I90336f8b741d6d8f523fbb15223dbb651b672b06
Signed-off-by: Sundar Raman <a0393242@ti.com>
1) New ION does not allow len=0. Workaround by passing size as -1
2) New ION calls map_dma as part of ion_alloc. This does not work well
for ion_alloc_tiler because the map_dma requires tiler_info to be present
as part of priv_virt. Workaround by passing tiler_info ptr to flags and
insert it into priv_virt field in heap allocate api
3) Misc fixes for allocation and sg list
Change-Id: I90336f8b741d6d8f523fbb15223dbb651b672b06
Signed-off-by: Sundar Raman <a0393242@ti.com>
ion: gpu: cleanup: remove unnecessary tracking of sg_table
Change-Id: I27b421b493d5102825b66c87b4ddeac5060712fb
Signed-off-by: Sundar Raman <a0393242@ti.com>
Change-Id: I27b421b493d5102825b66c87b4ddeac5060712fb
Signed-off-by: Sundar Raman <a0393242@ti.com>
gpu: ion: Fix linking issue after enabling ion
Fix linking issue with ion.
Change-Id: I294fcd865d1cd9ca7b9ae3fc7441debb380e2fb9
Signed-off-by: Sundar Raman <a0393242@ti.com>
Fix linking issue with ion.
Change-Id: I294fcd865d1cd9ca7b9ae3fc7441debb380e2fb9
Signed-off-by: Sundar Raman <a0393242@ti.com>
gpu: ion: Migration to device tree
Adding support to move to device tree module introduced in kernel K3.8
Change-Id: I6c55e0f21ad92e731afbe9d1e264042362994c0e
Signed-off-by: Sundar Raman <a0393242@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Adding support to move to device tree module introduced in kernel K3.8
Change-Id: I6c55e0f21ad92e731afbe9d1e264042362994c0e
Signed-off-by: Sundar Raman <a0393242@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
gpu: ion: omap: Rename OMAP_ION_HEAP_SYSTEM_HEAP enum
Rename OMAP_ION_HEAP_SYSTEM_HEAP to OMAP_ION_HEAP_SYSTEM
Change-Id: I5ce8e22ed3616099d99d721ac2326d6f60062e6d
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
Rename OMAP_ION_HEAP_SYSTEM_HEAP to OMAP_ION_HEAP_SYSTEM
Change-Id: I5ce8e22ed3616099d99d721ac2326d6f60062e6d
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
gpu: ion: omap: Add OMAP_ION_HEAP_SYSTEM_HEAP enum
So that it can be used for compiling the PVR driver, even though
the system heap won't actually be used.
Change-Id: I790e6e1245d7a4e1ec031fb314e0498cc6170897
Signed-off-by: David Schleef <ds@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
So that it can be used for compiling the PVR driver, even though
the system heap won't actually be used.
Change-Id: I790e6e1245d7a4e1ec031fb314e0498cc6170897
Signed-off-by: David Schleef <ds@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
gpu: ion: omap: add apis to register and export ion buffers from a pvr fd
Exporting omap_ion_register_pvr_export through ion. This is needed since
PVR is built as a module as the abstraction uses an exported function
pointer.
omap_ion_share_fd_to_buffers api is added which retrieves the ion handles
from the pvr fd and calls ion_share on the ion handles to return the
shared buffers. The requestor can then call ion_import using its own ion
client to get its own ion handles.
Note that this functionality is intended to be reworked majorly as part of
gralloc's migration to dma buf functionality in new ION framework.
Change-Id: I89fd1aedadd26c3c6561f784cfd3316afd4fe389
Signed-off-by: Sundar Raman <a0393242@ti.com>
Exporting omap_ion_register_pvr_export through ion. This is needed since
PVR is built as a module as the abstraction uses an exported function
pointer.
omap_ion_share_fd_to_buffers api is added which retrieves the ion handles
from the pvr fd and calls ion_share on the ion handles to return the
shared buffers. The requestor can then call ion_import using its own ion
client to get its own ion handles.
Note that this functionality is intended to be reworked majorly as part of
gralloc's migration to dma buf functionality in new ION framework.
Change-Id: I89fd1aedadd26c3c6561f784cfd3316afd4fe389
Signed-off-by: Sundar Raman <a0393242@ti.com>
gpu: ion: export needed functions for PVR SGX
Make ion symbols visible to kernel modules. The SGX DDK
in modular form requires these symbols to be exported.
The reason for the code movement of ion structs is due to
EXPORT_SYMBOL’s requirement that the storage size of all
function parameters is known. This is so that the kernel can
sanity-check the size of data structures at module load time.
Ported to 3.8 ION by Sundar Raman<sunds@ti.com>
Change-Id: I52a4136ed47d83097c4c76e384ce11cd80ef3858
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
Make ion symbols visible to kernel modules. The SGX DDK
in modular form requires these symbols to be exported.
The reason for the code movement of ion structs is due to
EXPORT_SYMBOL’s requirement that the storage size of all
function parameters is known. This is so that the kernel can
sanity-check the size of data structures at module load time.
Ported to 3.8 ION by Sundar Raman<sunds@ti.com>
Change-Id: I52a4136ed47d83097c4c76e384ce11cd80ef3858
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
Signed-off-by: Sundar Raman <sunds@ti.com>
gpu: ion: Add omap support to ion
Add omap support to ion
Porting from K3.4 to 3.8 by Sundar Raman<sunds@ti.com>
Change-Id: If4c3cf0ebd8216babdd2ed95bf1b51254744f3a8
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
Signed-off-by: Lakshman Gowda <lakshman79@ti.com>
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Varadarajan, Charulatha <charu@ti.com>
Signed-off-by: Raman, Sundar <sunds@ti.com>
Add omap support to ion
Porting from K3.4 to 3.8 by Sundar Raman<sunds@ti.com>
Change-Id: If4c3cf0ebd8216babdd2ed95bf1b51254744f3a8
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
Signed-off-by: Lakshman Gowda <lakshman79@ti.com>
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Varadarajan, Charulatha <charu@ti.com>
Signed-off-by: Raman, Sundar <sunds@ti.com>
Merge branch 'p-ti-linux-3.8.y-video' into p-ti-android-3.8.y-video
* p-ti-linux-3.8.y-video:
OMAPDSS: DISPC: Force L3_2 CD to NOSLEEP when dispc module is active
OMAPDSS: DSS: Fix for mask query in manager blank api
OMAPDSS: DSS: Fix for setting up the overlay channel
OMAPDSS: DSS: fix for zorder checking logic
OMAPDSS: DSS: Fix for DSS num_managers check in callbacks
OMAPDSS: DSS: Fix for DSS manager IRQ mask ordering
OMAPDSS: DSS: Enable dsscomp callbacks from apply IRQ
OMAPDSS: DSS: Add callback for tracking overlay/manager changes
OMAPDSS: DSS: Fix null pointer crash in DSS
OMAPDSS: DSS: Initialize manager blank api.
OMAPDSS: DISPC: errata i740 fix: force L3_1 CD to NOSLEEP when dispc module is active
OMAPDSS: DSS: Invoke dsscomp callbacks for manually updated displays
OMAPDSS: DSS: Add support for simultaneous multiple overlay updates
OMAPDSS: DSS: Added Callback functionality to DSS
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
* p-ti-linux-3.8.y-video:
OMAPDSS: DISPC: Force L3_2 CD to NOSLEEP when dispc module is active
OMAPDSS: DSS: Fix for mask query in manager blank api
OMAPDSS: DSS: Fix for setting up the overlay channel
OMAPDSS: DSS: fix for zorder checking logic
OMAPDSS: DSS: Fix for DSS num_managers check in callbacks
OMAPDSS: DSS: Fix for DSS manager IRQ mask ordering
OMAPDSS: DSS: Enable dsscomp callbacks from apply IRQ
OMAPDSS: DSS: Add callback for tracking overlay/manager changes
OMAPDSS: DSS: Fix null pointer crash in DSS
OMAPDSS: DSS: Initialize manager blank api.
OMAPDSS: DISPC: errata i740 fix: force L3_1 CD to NOSLEEP when dispc module is active
OMAPDSS: DSS: Invoke dsscomp callbacks for manually updated displays
OMAPDSS: DSS: Add support for simultaneous multiple overlay updates
OMAPDSS: DSS: Added Callback functionality to DSS
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
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>
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>
OMAPDSS: DSS: Fix for mask query in manager blank api
Change-Id: I8978cc1f80451b62bd06f8297471e077b677f5e0
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Change-Id: I8978cc1f80451b62bd06f8297471e077b677f5e0
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
OMAPDSS: DSS: Fix for setting up the overlay channel
Change-Id: If0c0fb65d56c70e0ab2c009a7bb858e7802ca6bd
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Change-Id: If0c0fb65d56c70e0ab2c009a7bb858e7802ca6bd
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
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>
while validating the configuration, check zorder for
only the active/enabled overlays.
Change-Id: I72005b79a37d715bd46eff419afc5db271352f94
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
OMAPDSS: DSS: Fix for DSS num_managers check in callbacks
Change-Id: If608ff9b9a8eac971ce25c94afdafa1200d08680
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Change-Id: If608ff9b9a8eac971ce25c94afdafa1200d08680
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
OMAPDSS: DSS: Fix for DSS manager IRQ mask ordering
Change-Id: If455e68a2ecea3c01f5465d568c7998d1158667a
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Change-Id: If455e68a2ecea3c01f5465d568c7998d1158667a
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
OMAPDSS: DSS: Enable dsscomp callbacks from apply IRQ
Change-Id: Id0f7c29d2511cd99feba4825c96a6be0ad5eb75c
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
Change-Id: Id0f7c29d2511cd99feba4825c96a6be0ad5eb75c
Signed-off-by: Sunita Nadampalli <sunitan@ti.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
This allows callback states logic to correctly handle
DSS_COMPLETION_RELEASED state.
Change-Id: Ief11a2f654bf7b4d3e6fc6e2e28f4647418e7bd7
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
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>
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>
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>
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>
defconfig: android: 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>
This patch is to enable regulator TI AVS Class 0
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
defconfig: android: disable low level debugging
reverting patch:
commit 4c16ade16d1637936a8643a40321429ef2a381b2
android: defconfig: Enable early printk for low level debug
and applying across both dra7 and omap5 android defconfigs
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
reverting patch:
commit 4c16ade16d1637936a8643a40321429ef2a381b2
android: defconfig: Enable early printk for low level debug
and applying across both dra7 and omap5 android defconfigs
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
defconfig: android: have seperate platform configurations
splitting product platform configuration seperately for
DRA7 and OMAP5
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
splitting product platform configuration seperately for
DRA7 and OMAP5
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
Merge branch 'p-ti-linux-3.8.y' into p-ti-android-3.8.y
* p-ti-linux-3.8.y:
omap2plus_defconfig: regulator: ti-avs-class0: enable AVS class 0
ARM: DRA7: board-generic: Modify the machine name
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
* p-ti-linux-3.8.y:
omap2plus_defconfig: regulator: ti-avs-class0: enable AVS class 0
ARM: DRA7: board-generic: Modify the machine name
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
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>
This patch is to enable regulator TI AVS Class 0
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
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>
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>
Merge branch 'p-ti-linux-3.8.y' into p-ti-android-3.8.y
* p-ti-linux-3.8.y:
ASoC: davinci: fix sample rotation
ASoC: McASP: Fix receive clock polarity in DAIFMT_NB_NF mode.
ASoC: McASP: Add pins output direction for rx clocks when configured in CBS_CFS format
ASoC: davinci-mcasp: Add Support BCLK-to-LRCLK ratio for TDM modes
ASoC: davinci-pcm, davinci-mcasp: Clean up active_serializers
ASoC: davinci-mcasp: don't overwrite DIT settings
ASoC: davinci-mcasp: don't configure AFSX direction in DIT mode
ASoC: davinci-mcasp: clean up davinci_hw_common_param()
ASoC: davinci-mcasp: Add support for multichannel playback
ASoC: McASP: Fix data rotation for playback. Enables 24bit audio playback
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
* p-ti-linux-3.8.y:
ASoC: davinci: fix sample rotation
ASoC: McASP: Fix receive clock polarity in DAIFMT_NB_NF mode.
ASoC: McASP: Add pins output direction for rx clocks when configured in CBS_CFS format
ASoC: davinci-mcasp: Add Support BCLK-to-LRCLK ratio for TDM modes
ASoC: davinci-pcm, davinci-mcasp: Clean up active_serializers
ASoC: davinci-mcasp: don't overwrite DIT settings
ASoC: davinci-mcasp: don't configure AFSX direction in DIT mode
ASoC: davinci-mcasp: clean up davinci_hw_common_param()
ASoC: davinci-mcasp: Add support for multichannel playback
ASoC: McASP: Fix data rotation for playback. Enables 24bit audio playback
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
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]
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]
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
android: defconfig: Enable early printk for low level debug
Enable low level debug option with early printk
This will give more debug log.
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
Enable low level debug option with early printk
This will give more debug log.
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
android: defconfig: update kernel cmdline
update kernel cmdline with androidboot.console specification
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
update kernel cmdline with androidboot.console specification
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
android: defconfig: Enable Android kernel features
This patch is to enable android kernel options/features.
Enabled:
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_LOGGER=y
CONFIG_ANDROID_TIMED_OUTPUT=y
CONFIG_ANDROID_TIMED_GPIO=y
CONFIG_ANDROID_LOW_MEMORY_KILLER=y
CONFIG_ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES=y
CONFIG_ANDROID_INTF_ALARM_DEV=y
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
This patch is to enable android kernel options/features.
Enabled:
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_LOGGER=y
CONFIG_ANDROID_TIMED_OUTPUT=y
CONFIG_ANDROID_TIMED_GPIO=y
CONFIG_ANDROID_LOW_MEMORY_KILLER=y
CONFIG_ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES=y
CONFIG_ANDROID_INTF_ALARM_DEV=y
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
android: defconfig: Fork out omap2plus_defconfig to android_omap_defconfig
This is Re-instated initial version of android_omap_defconfig
Exactly same as omap2plus_defconfig synched from
git: http://git.ti.com/cgit/cgit.cgi/ti-linux-kernel/ti-linux-kernel.git
branch: ti-linux-3.8.y
commit id: 4f116c97e84d0a35f29977a6f4d1e3dd9e438eae
Android configs will be added on top of this.
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
This is Re-instated initial version of android_omap_defconfig
Exactly same as omap2plus_defconfig synched from
git: http://git.ti.com/cgit/cgit.cgi/ti-linux-kernel/ti-linux-kernel.git
branch: ti-linux-3.8.y
commit id: 4f116c97e84d0a35f29977a6f4d1e3dd9e438eae
Android configs will be added on top of this.
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
Merge branch 'p-ti-linux-3.8.y' into p-ti-android-3.8.y
* p-ti-linux-3.8.y:
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>
* p-ti-linux-3.8.y:
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>
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>
* '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>
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>
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>
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>
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>
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>
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>
Merge branch 'p-ti-linux-3.8.y' into p-ti-android-3.8.y
* p-ti-linux-3.8.y: (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>
* p-ti-linux-3.8.y: (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>
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>
* '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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
arm/dts: dra7: Add ldo regulator for mmc1
Add ldo1 as vmmc supply for mmc1
Signed-off-by: Balaji T K <balajitk@ti.com>
Add ldo1 as vmmc supply for mmc1
Signed-off-by: Balaji T K <balajitk@ti.com>
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>
Add dra mmc related device tree data.
Signed-off-by: Balaji T K <balajitk@ti.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
Add Dynamic Memory Manager (DMM) bindings for DRA7x device.
Signed-off-by: Archit Taneja <archit@ti.com>
Conflicts:
arch/arm/boot/dts/dra7.dtsi
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Revert "gpu: drm: omap: Use bitmaps for placement"
This reverts commit 2857ec212485e407354d03be48cf00f03437c098.
This reverts commit 2857ec212485e407354d03be48cf00f03437c098.
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>
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>
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>
- 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>
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>
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>
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>
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>
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>
Add DT nodes for the dpi lcd panel and the TLC i2c client.
Signed-off-by: Archit Taneja <archit@ti.com>
gpio: pcf857x: Convert to DT mode
Signed-off-by: Archit Taneja <archit@ti.com>
Signed-off-by: Archit Taneja <archit@ti.com>