add apis to use the hardware arbitration semaphores in order
to share hardware modules between kernel drivers and AVP
firmware (e.g., the BSEA (audio bitstream) engine and
AES block)
Change-Id: I500ef0797223bc702151ad14e0e2156f50644a2a
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
This was causing the Onkyo TXNR708 to drop out audio.
Change-Id: I9b9fd782d39d60c3207ea140a94d074b1338c7fa
Signed-off-by: Erik Gilling <konkers@android.com>
PORT_SUSPEND bit will be cleared by the host controller when PORT_RESUME
change to 0.
Change-Id: I94a72f51be1cebee414f11ace89a7e8b3249278d
Signed-off-by: Jay Cheng <jacheng@nvidia.com>
scan_periodic is called with irq disabled. Merged Alan Stern's patch
to reduce the overhead of scan_periodic:
http://article.gmane.org/gmane.linux.usb.general/37441
Here is a patch which ought to reduce the overhead of the loop. It
avoids doing the expensive call to qh_completions() more than once
for each qh.
Change-Id: I218c75a1ce21edd3d58c7e8abd3e7f75880b6ad0
Signed-off-by: Benoit Goby <benoit@android.com>
Call the clock's round_rate op, if it exists, before setting
dvfs rate. Ensures dvfs is set to the rate the clock will
be at after the later call to set_rate.
Change-Id: I4c8e85991238492adc3c37aed57c7269f3b41a2c
Signed-off-by: Colin Cross <ccross@android.com>
A struct nvmap_handle may be shared by multiple clients. If the
original client (the handle "owner") is destroyed, but the handle is
still referenced by other clients, h->owner points to freed memory. To
prevent this, clear h->owner when the owner frees its reference to that
struct nvmap_handle.
Change-Id: I54722091568ce2058f5988e5f6e00e68605a8100
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
Fix the way the total number of carveout allocations is
managed per client.
Change-Id: I3e12e2a98a74cafc1f4c51a48e3c3c549e930160
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
-- release can take a long time
Releasing the out file handles can take a long time, because
we wait for a stop completion that may never arrive.
-- fix possible dma list corruption
If things have gone wrong and a "wait_till_stopped()" times
out, prevent list corrption in the DMA by dequeing any
queued requests.
Signed-off-by: Iliyan Malchev <malchev@google.com>
Added syncpoints reset to host initialization, to synchronize h/w state
with shadow variables.
Change-Id: Ia0a3a644dc5b30ef98158906bcc96954d1c613ff
Author: Alex Frid <afrid@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Added nvhost device resume function, and moved syncpoints restoration
here from run-time power_host() control. Respectively added syncpoints
saving to nvhost suspend procedure. This change is required, since
power_host() has no way to account for display advancing syncpoints
after they have been already saved.
Change-Id: I2b5452dd4512c7ea16532d28a2d2894ab88929ca
Author: Alex Frid <afrid@nvidia.com>
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Fixed a possible null pointer exception when an endpoint gets
disabled while a request is being enqueued in parallel.
Unmap the request buffer if we fail to enqueue the request.
Change-Id: If94cc278c2e6ab58adcf170511e676348365f3f9
Signed-off-by: Benoit Goby <benoit@android.com>
-- Leave I2S running during underflow, for a couple of reasons.
First, the I2S buffers a few samples, and if we get a new write
before those samples are flushed, we will keep continuous audio
Second, we burn CPU time stopping and restarting the HW
frequently.
-- Fix TEGRA_AUDIO_IN/OUT_GET/SET_NUM_BUFS, was causing DMA to
read/write to null HW address.
Signed-off-by: Iliyan Malchev <malchev@google.com>
"Interrupt during enqueue" happens periodically when the
DMA is almost starving. This happens under certain not-
uncommon scenarios.
Signed-off-by: Iliyan Malchev <malchev@google.com>
The previous version of dvfs handled requirements between two
different voltage rails by using two sets of dvfs tables, one
for each rail. That method fails for vdd_aon, which must be
within 170 mV of vdd_core.
Instead, have each dvfs clock only set the voltage rail that
it directly depends on, and add a relationship system to the
voltage rails. When the voltage changes on one rail, it calls
update on all the rails that depend on it. The dependent rails
compare the new voltage of the original rail to their own
voltage, and update their own voltage as necessary.
Change-Id: I17b30a61c7c0c01e44702ab486238789abd47330
Signed-off-by: Colin Cross <ccross@android.com>
Write a dummy value to EMC_MRW_0 to allow
clock frequency changes after lp0.
Change-Id: I2218967eaf9698eef6dcfe2e3edd89fbce2ebf1a
Signed-off-by: James Wylder <james.wylder@motorola.com>
Definitions for 11.2896MHz and 12.288MHz were incorrect. These
frequencies can be still requested through pll_a_out0.
Signed-off-by: Iliyan Malchev <malchev@google.com>