OMAPDSS: DSSCOMP: Fix sparse warnings in gralloc
Fix sparse warning:
drivers/video/omap2/dsscomp/gralloc.c:343:11: warning: symbol 'size' shadows an earlier one
drivers/video/omap2/dsscomp/gralloc.c:309:7: originally declared here
drivers/video/omap2/dsscomp/gralloc.c:563:10: warning: symbol 't' shadows an earlier one
drivers/video/omap2/dsscomp/gralloc.c:524:22: originally declared here
Change-Id: Iedd59c2ac59ae98d81d59a76f6f0b844aecba7fe
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Fix sparse warning:
drivers/video/omap2/dsscomp/gralloc.c:343:11: warning: symbol 'size' shadows an earlier one
drivers/video/omap2/dsscomp/gralloc.c:309:7: originally declared here
drivers/video/omap2/dsscomp/gralloc.c:563:10: warning: symbol 't' shadows an earlier one
drivers/video/omap2/dsscomp/gralloc.c:524:22: originally declared here
Change-Id: Iedd59c2ac59ae98d81d59a76f6f0b844aecba7fe
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: DSSCOMP: Add MFLAG support in DSSCOMP
Descrition: This patch adds client support for dispc MFLAG feature.
Change-Id: I10d4784a1bbdd91d05fbf4b21b5780a0bd79b873
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Descrition: This patch adds client support for dispc MFLAG feature.
Change-Id: I10d4784a1bbdd91d05fbf4b21b5780a0bd79b873
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: DSSCOMP: WA: dsscomp header changes for WB support
Sync Android file system's userspace and kernel 3.4 space dsscomp
header files. Current Android file system has changes for writeback
handling. Until writeback kernel patches are available for
K3.4, this workaround patch is required.
Change-Id: Ibf7dd95de85ce05bbbde07dc55c435adce15fb46
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Sync Android file system's userspace and kernel 3.4 space dsscomp
header files. Current Android file system has changes for writeback
handling. Until writeback kernel patches are available for
K3.4, this workaround patch is required.
Change-Id: Ibf7dd95de85ce05bbbde07dc55c435adce15fb46
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS:DSSCOMP: Ignore display resolution for WB source overlay
When WB capture from an overlay in MEM2MEM mode, the captured
image may be up-scaled beyond the size of the display.
Change-Id: If292f13c2e68ca6912a4ebdc5ea84146690ac93c
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
When WB capture from an overlay in MEM2MEM mode, the captured
image may be up-scaled beyond the size of the display.
Change-Id: If292f13c2e68ca6912a4ebdc5ea84146690ac93c
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: DSSCOMP: Resolve compiler errors/warnings when CONFIG_DSSCOMP_DEBUG_LOG is not set
When CONFIG_DSSCOMP_DEBUG_LOG is not set there are two issues
Resolve compiler error:
drivers/video/omap2/dsscomp/base.c: In function 'set_dss_mgr_info':
drivers/video/omap2/dsscomp/base.c:397: error: 'alpha_only' undeclared
Resolve compiler warning:
drivers/video/omap2/dsscomp/gralloc.c: In function 'dsscomp_dbg_gralloc':
drivers/video/omap2/dsscomp/gralloc.c:541: warning: unused variable 'i'
Change-Id: I55a157b478e112c2bd8a475a821f5aff7cc571a7
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
When CONFIG_DSSCOMP_DEBUG_LOG is not set there are two issues
Resolve compiler error:
drivers/video/omap2/dsscomp/base.c: In function 'set_dss_mgr_info':
drivers/video/omap2/dsscomp/base.c:397: error: 'alpha_only' undeclared
Resolve compiler warning:
drivers/video/omap2/dsscomp/gralloc.c: In function 'dsscomp_dbg_gralloc':
drivers/video/omap2/dsscomp/gralloc.c:541: warning: unused variable 'i'
Change-Id: I55a157b478e112c2bd8a475a821f5aff7cc571a7
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: DSSCOMP: Handle inactive state in composition apply
We ignore the error due to display in inactive state during
mgr->apply. This leave the composition in applied state if
display is disabled or suspended inbetween composition apply.
On system suspend with HDMI connected compositions are still
applied even after HDMI becomes inactive( suspend state). On
resume SGX starts dumping because one composition is struck
in applied state.
This patch fixes this issue by calling mbg->blank to
clear such compositions.
Change-Id: Ib0498b97c23c129a673678517d665b1bdb462eb3
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
We ignore the error due to display in inactive state during
mgr->apply. This leave the composition in applied state if
display is disabled or suspended inbetween composition apply.
On system suspend with HDMI connected compositions are still
applied even after HDMI becomes inactive( suspend state). On
resume SGX starts dumping because one composition is struck
in applied state.
This patch fixes this issue by calling mbg->blank to
clear such compositions.
Change-Id: Ib0498b97c23c129a673678517d665b1bdb462eb3
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS : DSSCOMP : Avoid pushing content if no panel is active
Currently we push content on a blanked manager in case it is
default HDMI display. This causes a lot of logging in dsscomp call
back when we apply blank to manager.
Check added to see if number of overlay in the composition are not
zero.
In HWC we are checking if the default display is not present
we will populate the composition number of overlay as zero.
Dependencies:
This patch has dependency on HWC patch mentioned below..
http://review.omapzoom.org/#/c/26472/ - JB release
Change-Id: Icadfecb8f88adf3c6020b17d1869b5bb49b0efe6
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Currently we push content on a blanked manager in case it is
default HDMI display. This causes a lot of logging in dsscomp call
back when we apply blank to manager.
Check added to see if number of overlay in the composition are not
zero.
In HWC we are checking if the default display is not present
we will populate the composition number of overlay as zero.
Dependencies:
This patch has dependency on HWC patch mentioned below..
http://review.omapzoom.org/#/c/26472/ - JB release
Change-Id: Icadfecb8f88adf3c6020b17d1869b5bb49b0efe6
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: DSSCOMP: Switch to multiple overlay apply mechanism
Description: This patch corresponds to changes required to move to
the new apply mechanism in the DSS driver. The overlay manager keeps
track of the number of overlays requiring update & puts it into an
array before sending to the DSS2 driver.
Change-Id: Ia7d19877f2e24942933cd660d0b08aa4acfb9c53
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Conflicts:
drivers/video/omap2/dsscomp/base.c
Description: This patch corresponds to changes required to move to
the new apply mechanism in the DSS driver. The overlay manager keeps
track of the number of overlays requiring update & puts it into an
array before sending to the DSS2 driver.
Change-Id: Ia7d19877f2e24942933cd660d0b08aa4acfb9c53
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Conflicts:
drivers/video/omap2/dsscomp/base.c
OMAPDSS: DSSCOMP: Remove HDMI_ENABLE flag from dsscomp
Enable HDMI support in DSSCOMP driver. HDMI related
code was put under compile flag during dsscomp porting.
Removing the flag to have HDMI working.
Change-Id: I9c7d860de5e8f8a66307a6aeaed0c97f7cda6048
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Enable HDMI support in DSSCOMP driver. HDMI related
code was put under compile flag during dsscomp porting.
Removing the flag to have HDMI working.
Change-Id: I9c7d860de5e8f8a66307a6aeaed0c97f7cda6048
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: DSSCOMP: move device to omap plat to configure tiler1d slot
Different devices will have varying requirements on tiler resources. This
change moves the platform device registration for dsscomp to the omap
platform level so at device initialization time we can set the appropriate
Tiler1D slot size.
Get platform information from dss2 driver, instead of it being hardcoded in
dsscomp clients. DSSCOMP query platform ioctl returns the platform specific
configuration, platform_info
Change-Id: I23c310294a96b711ea5782bddf732f10cc76e758
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Different devices will have varying requirements on tiler resources. This
change moves the platform device registration for dsscomp to the omap
platform level so at device initialization time we can set the appropriate
Tiler1D slot size.
Get platform information from dss2 driver, instead of it being hardcoded in
dsscomp clients. DSSCOMP query platform ioctl returns the platform specific
configuration, platform_info
Change-Id: I23c310294a96b711ea5782bddf732f10cc76e758
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: DSSCOMP: Enable & Disable function support for overlays
Description: This patch adds support for enabling and disabling the
overlays in DSSCOMP. In earlier kernels this was handled by the enabled
flag in info structure. It has been deprecated in K3.4 & now overlay
enable & disable needs to be done manually by the omap_overlay
enable & disable functions.
Change-Id: Ic931e01ed3a384e9f32914a6f07602d4f2d7b6ca
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Conflicts:
drivers/video/omap2/dsscomp/base.c
Description: This patch adds support for enabling and disabling the
overlays in DSSCOMP. In earlier kernels this was handled by the enabled
flag in info structure. It has been deprecated in K3.4 & now overlay
enable & disable needs to be done manually by the omap_overlay
enable & disable functions.
Change-Id: Ic931e01ed3a384e9f32914a6f07602d4f2d7b6ca
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Conflicts:
drivers/video/omap2/dsscomp/base.c
OMAPDSS: DSSCOMP: Configuration changes
Added configuration changes to include all
dependencies needed by DSSCOMP and enable
DSSCOMP 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 DSSCOMP and enable
DSSCOMP by default
Change-Id: I6f7377b8caac991c046cb03ddbe1815101a5f3bd
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: DSSCOMP: New composition module
This patch implements a new DSS composition module.
DSSCOMP allows specifying a whole composition for a DSS display:
1. set overlay information for all overlays on a manager
2. reroute the overlays to the manager (overlay must be disabled
just as when using sysfs)
3. set manager information
4. optionally call manager->apply() that programs the DISPC
4. optionally do an update (after a sync call)
DSS already implements coordinated updates by separating overlay
information setting from the applicaion of those settings (which
happens only in manager->apply()). However current clients of DSS
call manager->apply() for each change, which make coordinated
change impossible.
This API also implements auto cropping of all layers to the display
region. This makes switching displays and handling display resolution
changes easier (without getting "failed to setup overlay" messages.)
DSSCOMP operates on 3 levels.
base.c contains the basic DSS operations, such as setting DSS overlay
and managers using DSSCOMP's setting structures. Theoretically,
DSSCOMP could be used via only these operations.
queue.c contains the queuing mechanism. This module maintains
compositions queued to each overlay manager (the basic DSS composition
entity). Queueing operations consist of creating a composition,
setting/getting manager/overlay information for the composition,
applying the composition to the display (which also displays it
on manually updated panels), waiting on various states of a composition.
For now the basic queuing mechanism of DSSCOMP is "queue and forget".
Therefore, it is not necessary to dequeue each frame queued. A
consequence of this methodology is that if one applies a composition
to a display, any prior unapplied compositions will be dropped.
Compositions are applied asynchronously (delayed apply) so that
they can be queued from irq context.
The queuing interface tracks which overlay is assigned to which
manager. This is done at the DSS programming level, as that is the
most reliable place to monitor overlay ownership. Nonetheless,
the device interface uses overlay information to verify overlay
ownership - which may be slightly out of sync. The user of
DSSCOMP should maintain overlay ownership to ensure flawless
sharing of overlays between managers. (E.g. should not use an
overlay on a new manager, until the overlay has been disabled on
the previous manager, and that composition has been programmed.)
Buffers must be displayable (e.g. TILER2D or physically contiguous).
device.c contains the device hooks to operating system, and the file
interface (via /dev/dsscomp's ioctls). /dev/dsscomp works on top of
the queueing mechanism.
There are 3 levels of header files.
linux/dsscomp.h: basic dsscomp structures and ioctls
plat/dsscomp.h: kernel dsscomp interface (on top of linux/dsscomp.h)
local dsscomp.h: common implementation structures and shared methods
An additional Android adaptation layer is also provided. This
sits on top of DSSCOMP and allows specifying all overlays on all
managers in a single operation as required by Android's rendering
model. Here the checking of overlays is slightly relaxed as
Android makes sure that an overlay is detached from a display
before it is attached to another one. This interface also
uses ION/TILER to remap non-contiguous buffers into contiguous
TILER1D space - so they can be displayed by DISPC.
At the Android level buffers can be specified with a set of
pages, using offsets into FBMEM (contiguous), or by referencing
prior overlays (e.g. cloning).
Note: plat/dsscomp.h defines a handle typedef that causes a
checkpatch warning. I feel that the creation of a handle typedef
is warranted.
Limitations:
- no WB support
- unsure whether to call sync on non-manual update panels
- cannot get overlay/manager information on a composition without
first having set it
Change-Id: I9e9c0fc6e5ed0bf4f077af9f755cee35d436990b
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
This patch implements a new DSS composition module.
DSSCOMP allows specifying a whole composition for a DSS display:
1. set overlay information for all overlays on a manager
2. reroute the overlays to the manager (overlay must be disabled
just as when using sysfs)
3. set manager information
4. optionally call manager->apply() that programs the DISPC
4. optionally do an update (after a sync call)
DSS already implements coordinated updates by separating overlay
information setting from the applicaion of those settings (which
happens only in manager->apply()). However current clients of DSS
call manager->apply() for each change, which make coordinated
change impossible.
This API also implements auto cropping of all layers to the display
region. This makes switching displays and handling display resolution
changes easier (without getting "failed to setup overlay" messages.)
DSSCOMP operates on 3 levels.
base.c contains the basic DSS operations, such as setting DSS overlay
and managers using DSSCOMP's setting structures. Theoretically,
DSSCOMP could be used via only these operations.
queue.c contains the queuing mechanism. This module maintains
compositions queued to each overlay manager (the basic DSS composition
entity). Queueing operations consist of creating a composition,
setting/getting manager/overlay information for the composition,
applying the composition to the display (which also displays it
on manually updated panels), waiting on various states of a composition.
For now the basic queuing mechanism of DSSCOMP is "queue and forget".
Therefore, it is not necessary to dequeue each frame queued. A
consequence of this methodology is that if one applies a composition
to a display, any prior unapplied compositions will be dropped.
Compositions are applied asynchronously (delayed apply) so that
they can be queued from irq context.
The queuing interface tracks which overlay is assigned to which
manager. This is done at the DSS programming level, as that is the
most reliable place to monitor overlay ownership. Nonetheless,
the device interface uses overlay information to verify overlay
ownership - which may be slightly out of sync. The user of
DSSCOMP should maintain overlay ownership to ensure flawless
sharing of overlays between managers. (E.g. should not use an
overlay on a new manager, until the overlay has been disabled on
the previous manager, and that composition has been programmed.)
Buffers must be displayable (e.g. TILER2D or physically contiguous).
device.c contains the device hooks to operating system, and the file
interface (via /dev/dsscomp's ioctls). /dev/dsscomp works on top of
the queueing mechanism.
There are 3 levels of header files.
linux/dsscomp.h: basic dsscomp structures and ioctls
plat/dsscomp.h: kernel dsscomp interface (on top of linux/dsscomp.h)
local dsscomp.h: common implementation structures and shared methods
An additional Android adaptation layer is also provided. This
sits on top of DSSCOMP and allows specifying all overlays on all
managers in a single operation as required by Android's rendering
model. Here the checking of overlays is slightly relaxed as
Android makes sure that an overlay is detached from a display
before it is attached to another one. This interface also
uses ION/TILER to remap non-contiguous buffers into contiguous
TILER1D space - so they can be displayed by DISPC.
At the Android level buffers can be specified with a set of
pages, using offsets into FBMEM (contiguous), or by referencing
prior overlays (e.g. cloning).
Note: plat/dsscomp.h defines a handle typedef that causes a
checkpatch warning. I feel that the creation of a handle typedef
is warranted.
Limitations:
- no WB support
- unsure whether to call sync on non-manual update panels
- cannot get overlay/manager information on a composition without
first having set it
Change-Id: I9e9c0fc6e5ed0bf4f077af9f755cee35d436990b
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: Enable OMAPFB in the kernel
Enable omapfb compilation in kernel
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Enable omapfb compilation in kernel
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: Update bit-field info for BGRA32 color format
Descrition: The bit-field info is used by the truncation logic, if
enabled, for the specific color format chosen.This patch appends the
BGRA color format & updates the corresponding bit-fields.
Change-Id: Ie78e1869d589012b604ed86a85bf1b132cbf6feb
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Descrition: The bit-field info is used by the truncation logic, if
enabled, for the specific color format chosen.This patch appends the
BGRA color format & updates the corresponding bit-fields.
Change-Id: Ie78e1869d589012b604ed86a85bf1b132cbf6feb
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: OMAPFB: Initialize all devices for default timings
If the FB device have timings then set it up as default.
Right now it is used for HDMI only.
Change-Id: I2b5116c9010befa7d612683ebec2b443bb1d5b5d
Signed-off-by: Dandawate Saket <dsaket@ti.com>
If the FB device have timings then set it up as default.
Right now it is used for HDMI only.
Change-Id: I2b5116c9010befa7d612683ebec2b443bb1d5b5d
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: Decouple DRM and FB
Fix compilation break and decouple DRM and FB.
Change-Id: I237bc0f31f7ce79760c71f2d0179451e0c547eb4
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Fix compilation break and decouple DRM and FB.
Change-Id: I237bc0f31f7ce79760c71f2d0179451e0c547eb4
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: (HACK) Double buffer for swap chain
This hack ensures OMAPFB providing sufficient size of swap chain.
Change-Id: Ic88186c2599569158a1e9bda6b579cd3ad033479
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
This hack ensures OMAPFB providing sufficient size of swap chain.
Change-Id: Ic88186c2599569158a1e9bda6b579cd3ad033479
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
OMAPDSS: OMAPFB: Fix fb initialization
Correcting the patch porting mistake.
Change-Id: Iae23c48aa5ccc34f4855cd0f90aa09685117fe67
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
--
[resolve rebase conflict]
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
Correcting the patch porting mistake.
Change-Id: Iae23c48aa5ccc34f4855cd0f90aa09685117fe67
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
--
[resolve rebase conflict]
Signed-off-by: Praneeth Bajjuri <praneeth@ti.com>
OMAPDSS: OMAPFB: return error when can't enable vsync
When device is not active we can't register VSYNC isr, but
must explicitly notify about it, so caller can handle error
and not wait for VSYNC that never happens.
Change-Id: Idc83d8bdc6b8c590fee6dd916717871455c12efd
Signed-off-by: Sergiy Kibrik <sergiy.kibrik@globallogic.com>
When device is not active we can't register VSYNC isr, but
must explicitly notify about it, so caller can handle error
and not wait for VSYNC that never happens.
Change-Id: Idc83d8bdc6b8c590fee6dd916717871455c12efd
Signed-off-by: Sergiy Kibrik <sergiy.kibrik@globallogic.com>
OMAPDSS: OMAPFB: assign DSS managers to all framebuffers
Currently all overlays set to mgr0 by default. This leaves only
one display device to omapfb_fb_init() to work with, which causes
all framebuffers to be of same resolution. Instead we assign each
overlay a different manager, thus each framebuffer is linked
to separate display.
Change-Id: I8b185e294c35cb930c774bec9f9dba69ffed2403
Signed-off-by: Sergiy Kibrik <sergiy.kibrik@globallogic.com>
Currently all overlays set to mgr0 by default. This leaves only
one display device to omapfb_fb_init() to work with, which causes
all framebuffers to be of same resolution. Instead we assign each
overlay a different manager, thus each framebuffer is linked
to separate display.
Change-Id: I8b185e294c35cb930c774bec9f9dba69ffed2403
Signed-off-by: Sergiy Kibrik <sergiy.kibrik@globallogic.com>
OMAPDSS: OMAPFB: Add BGRA32 support in FB Driver
Description: This patch adds BGRA32 color format support for FB driver
relevant to OMAP5 ES2.0 silicons,
Change-Id: I841682437f6a74d355e249431373681cbbdb8ff5
Signed-off-by: Sreenidhi Koti <sreenidhi@ti.com>
Description: This patch adds BGRA32 color format support for FB driver
relevant to OMAP5 ES2.0 silicons,
Change-Id: I841682437f6a74d355e249431373681cbbdb8ff5
Signed-off-by: Sreenidhi Koti <sreenidhi@ti.com>
OMAPDSS: OMAPFB: Select correct VSYNC IRQ based on DSS channel
Select correct VSYNC IRQ for asynchronous vsync notification
based on the DSS channel.
Current VSYNC notification supports only primary LCD panel.
To support VSYNC notification for default HDMI display this
patch adds the VSYNC IRQ selection based on the DSS channel
for default display.
Change-Id: I0594e80d4b4850c278e6bdd3b07c0cb63488be39
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Select correct VSYNC IRQ for asynchronous vsync notification
based on the DSS channel.
Current VSYNC notification supports only primary LCD panel.
To support VSYNC notification for default HDMI display this
patch adds the VSYNC IRQ selection based on the DSS channel
for default display.
Change-Id: I0594e80d4b4850c278e6bdd3b07c0cb63488be39
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: Do not suspend HDMI driver in early suspend.
Issue:
HDMI Audio can be active even if display activity
times out.
Analysis:
To save power approach to suspend panel on an
early suspend call was taken. This call of panel
suspend is done by OMAPLFB on early suspend
callback.
There is no issue in case of LCD since it doesnt
carry any audio. Also we only suspend the default
panel and not all the connected panels.
If hdmi is default display we cut HDMI clocks via
omapfb->blank call with NORMAL enum. HDMI audio
driver will close DMA only after the timeout
in userspace.
So we are voilating the expectation of HDMI audio
driver in case HDMI is default panel.
In case HDMI is default there is almost no use case
with battery power devices.
With this fix we can have an HDMI audio playback
happening when display inactivity times out
triggering early suspend.
Change-Id: I2180a20b1579bec8a3f910a5e349fb219437089a
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Issue:
HDMI Audio can be active even if display activity
times out.
Analysis:
To save power approach to suspend panel on an
early suspend call was taken. This call of panel
suspend is done by OMAPLFB on early suspend
callback.
There is no issue in case of LCD since it doesnt
carry any audio. Also we only suspend the default
panel and not all the connected panels.
If hdmi is default display we cut HDMI clocks via
omapfb->blank call with NORMAL enum. HDMI audio
driver will close DMA only after the timeout
in userspace.
So we are voilating the expectation of HDMI audio
driver in case HDMI is default panel.
In case HDMI is default there is almost no use case
with battery power devices.
With this fix we can have an HDMI audio playback
happening when display inactivity times out
triggering early suspend.
Change-Id: I2180a20b1579bec8a3f910a5e349fb219437089a
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB : Dont error if default display is ON
Dont error if default display state is already ON.
Change-Id: I25120083613f5e0ef0e2fea7a5fd26182e1e4b7e
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Dont error if default display state is already ON.
Change-Id: I25120083613f5e0ef0e2fea7a5fd26182e1e4b7e
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB : Add support for default display scaling.
Currently it is assumed that frame buffer size
is same as default panel size. With this assumption
GFX pipeline is always presented to default display FBDev.
GFX pipeline cannot scale so we cannot have a frame
buffer which is not equal to panel size (LCD | HDMI).
Updated the current logic of omapfb to pick video pipelines
in case scaling is required for FB to be presented to default
panel.
To provide FB size option is provided via command line.
e.g
omapfb.fb_opt=0,720,1280,1,640,480
each element is [fb_ix,width,height]
Change-Id: I0b546932ff9119166e123b7bf08352ca836b0842
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Currently it is assumed that frame buffer size
is same as default panel size. With this assumption
GFX pipeline is always presented to default display FBDev.
GFX pipeline cannot scale so we cannot have a frame
buffer which is not equal to panel size (LCD | HDMI).
Updated the current logic of omapfb to pick video pipelines
in case scaling is required for FB to be presented to default
panel.
To provide FB size option is provided via command line.
e.g
omapfb.fb_opt=0,720,1280,1,640,480
each element is [fb_ix,width,height]
Change-Id: I0b546932ff9119166e123b7bf08352ca836b0842
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: Asynchronous vsync notification
Enabled and disabled through new OMAPFB_ENABLEVSYNC ioctl. Events delivered
as switch events.
Change-Id: Ie473d96732c5bf2259bac6205d0295d698e6e48b
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Enabled and disabled through new OMAPFB_ENABLEVSYNC ioctl. Events delivered
as switch events.
Change-Id: Ie473d96732c5bf2259bac6205d0295d698e6e48b
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: Use omapdss_display_get_dimensions()
Use generic omapdss_display_get_dimensions() to get the panel
dimensions.
Change-Id: I33d5d19fe0a48d0dc2a90c49e3439c9bbd56074c
Signed-off-by: Lajos Molnar <lajos@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Use generic omapdss_display_get_dimensions() to get the panel
dimensions.
Change-Id: I33d5d19fe0a48d0dc2a90c49e3439c9bbd56074c
Signed-off-by: Lajos Molnar <lajos@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: Change default color format to ARGB32
Earlier the default color format of the framebuffer was xRGB24U, but SGX
is producing data in ARGB32. Also, SGX - the FB driver user - doesn't negotiate
with FB driver for the format and thus FB needs to provide ARGB32 as default
to align with SGX format.
Change-Id: I5609d633cec3104d7711d163d47dd4da803d6ff3
Signed-off-by: Mark Tyler <mark.tyler@ti.com>
Signed-off-by: Varadarajan, Charulatha <charu@ti.com>
Earlier the default color format of the framebuffer was xRGB24U, but SGX
is producing data in ARGB32. Also, SGX - the FB driver user - doesn't negotiate
with FB driver for the format and thus FB needs to provide ARGB32 as default
to align with SGX format.
Change-Id: I5609d633cec3104d7711d163d47dd4da803d6ff3
Signed-off-by: Mark Tyler <mark.tyler@ti.com>
Signed-off-by: Varadarajan, Charulatha <charu@ti.com>
OMAPDSS: OMAPFB: Switch HDMI timings & EDID handling to use fbmon
1. Change hdmi_timings to fb_videomode that contains the same
information (and more) as the private hdmi_timigs
Use fb modedb to get timings and CEA pixel ratio info.
Relaxed mode checking to allow 0.5% tolerance in the
pixel clock - as required by CEA standard.
2. Change mode lifecycle
- on HDMI power ON, first select VGA mode, as this is the universally
supported format
- before disabling HDMI, reset mode so that if starts in VGA again.
However, do not do this in hdmi_power_off, only in disable display,
so we keep the mode on suspend, as there will be no hpd event forcing
an edid read.
3. Added set_mode hook to HDMI which now implements this call.
Change-Id: Iaf0e88527ee5860fc7c8c1ac04dea1fb4bed67ff
Signed-off-by: Lajos Molnar <lajos@ti.com>
Signed-off-by: Varadarajan, Charulatha <charu@ti.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
1. Change hdmi_timings to fb_videomode that contains the same
information (and more) as the private hdmi_timigs
Use fb modedb to get timings and CEA pixel ratio info.
Relaxed mode checking to allow 0.5% tolerance in the
pixel clock - as required by CEA standard.
2. Change mode lifecycle
- on HDMI power ON, first select VGA mode, as this is the universally
supported format
- before disabling HDMI, reset mode so that if starts in VGA again.
However, do not do this in hdmi_power_off, only in disable display,
so we keep the mode on suspend, as there will be no hpd event forcing
an edid read.
3. Added set_mode hook to HDMI which now implements this call.
Change-Id: Iaf0e88527ee5860fc7c8c1ac04dea1fb4bed67ff
Signed-off-by: Lajos Molnar <lajos@ti.com>
Signed-off-by: Varadarajan, Charulatha <charu@ti.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
OMAPDSS: OMAPFB: export functions for PVR driver
Export omapfb_set_update_mode and omapfb_get_update_mode
needed by the PVR kernel modules.
Change-Id: I5b4f2feeb2c8280550df06fafa76cc1ed6ce79bf
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
Export omapfb_set_update_mode and omapfb_get_update_mode
needed by the PVR kernel modules.
Change-Id: I5b4f2feeb2c8280550df06fafa76cc1ed6ce79bf
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
OMAPDSS: OMAPFB: Export omapfb_mode_to_dss_mode.
This method is used to set up DSSCOMP structures from OMAPLFB.
Change-Id: I97506443306b3f96f246602c9d3bef065d649541
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
Signed-off-by: Lajos Molnar <molnar@ti.com>
This method is used to set up DSSCOMP structures from OMAPLFB.
Change-Id: I97506443306b3f96f246602c9d3bef065d649541
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
Signed-off-by: Lajos Molnar <molnar@ti.com>
ARCH: OMAP: FB: Omapfb_set_platform_data move
Omapfb_set_platform_data function must be moved before
the initialization or else omapfb_config will never
be set with the correct data.
Change-Id: I8366f54973fdb367cc3e47714b92216ffbe0691b
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
Omapfb_set_platform_data function must be moved before
the initialization or else omapfb_config will never
be set with the correct data.
Change-Id: I8366f54973fdb367cc3e47714b92216ffbe0691b
Signed-off-by: Arthur Philpott <arthur.philpott@ti.com>
OMAPDSS: OMAPFB : Add support for VRAM size read
Add support to read vram size set by board file.
This value is then used in to create framebuffers in
vram. If the board file doesnt set the memory region
then vram which can fit in only 1 flip chain buffer
is allocated.
Change-Id: I5c53af56eafe70ae1fba0212f2a17e66e4381c88
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Add support to read vram size set by board file.
This value is then used in to create framebuffers in
vram. If the board file doesnt set the memory region
then vram which can fit in only 1 flip chain buffer
is allocated.
Change-Id: I5c53af56eafe70ae1fba0212f2a17e66e4381c88
Signed-off-by: Dandawate Saket <dsaket@ti.com>
OMAPDSS: OMAPFB: Add support to set VRAM dynamically
Add support to set VRAM dynamically from board file
for framebuffer. This is required so that we can avoid
the commandline frequent modification to fit in
flip buffers.
Change-Id: I642fbeea35b8a08b95559c92fb591674de4a2d3b
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Add support to set VRAM dynamically from board file
for framebuffer. This is required so that we can avoid
the commandline frequent modification to fit in
flip buffers.
Change-Id: I642fbeea35b8a08b95559c92fb591674de4a2d3b
Signed-off-by: Dandawate Saket <dsaket@ti.com>
video: fbmon: fixed E-EDID SVD entry parsing
Fixed index calculation when parsing E-EDID block SVD entry
in fb_edid_add_monspecs().
Change-Id: I2947f56890affcde10b56bb50e740c6bb8abd063
Signed-off-by: Eric Laurent <elaurent@google.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Fixed index calculation when parsing E-EDID block SVD entry
in fb_edid_add_monspecs().
Change-Id: I2947f56890affcde10b56bb50e740c6bb8abd063
Signed-off-by: Eric Laurent <elaurent@google.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
video: fbmon: add HDMI detection to fbmod edid parsing
Looks for ieee registration number 0x000c03 as per HDMI spec.
CEA-861-E section D.6.8.
Change-Id: Ic2339083c9bd28cd15bb8e8a367bc8901a0045ce
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
Looks for ieee registration number 0x000c03 as per HDMI spec.
CEA-861-E section D.6.8.
Change-Id: Ic2339083c9bd28cd15bb8e8a367bc8901a0045ce
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
video: fbmon: Add support for CEA pixel ratios.
CEA defines multiple timings with dual timing ratios that cannot
be distinguished from timings parameters. Added 2 new fb flags
to specify 4:3 or 16:9 display ratios.
Also added a flag that denotes CEA formats that require repeating
pixels.
Also added VESA_MODEDB_SIZE to vesa_code definition to ensure that
the size corresponds to the actual array size.
Change-Id: I2ab6d72682173cdaabb1c13038710d370aa2d817
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
CEA defines multiple timings with dual timing ratios that cannot
be distinguished from timings parameters. Added 2 new fb flags
to specify 4:3 or 16:9 display ratios.
Also added a flag that denotes CEA formats that require repeating
pixels.
Also added VESA_MODEDB_SIZE to vesa_code definition to ensure that
the size corresponds to the actual array size.
Change-Id: I2ab6d72682173cdaabb1c13038710d370aa2d817
Signed-off-by: Lajos Molnar <molnar@ti.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
video: fbmon: add remaining modes to CEA mode database
These mode are directly from the CEA-861-E spec
Table 3 Video Format Timings Detailed Sync Information.
Change-Id: Ib46f1e9f598ed7a018cb147a71730ec9edee1229
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@ti.com>
These mode are directly from the CEA-861-E spec
Table 3 Video Format Timings Detailed Sync Information.
Change-Id: Ib46f1e9f598ed7a018cb147a71730ec9edee1229
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: Muralidhar Dixit <murali.dixit@ti.com>
Signed-off-by: Dandawate Saket <dsaket@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>