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>
The 608 MHz table entry would incorrectly produce a 760 MHz
clock for input clocks of 12 MHz, 13 MHz, or 26 MHz.
Change-Id: I6755fdde88f0851770490818dc2e5e1e2d512f20
Signed-off-by: Colin Cross <ccross@android.com>
Fuses must be initialized before clocks, so clocks can
determine the maximum cpu frequency. Clocks must be
initialized before DMA, so DMA can enable the clock.
Once DMA is initialized, all fuses accesses must go
through DMA to avoid a hardware bug.
Change-Id: Id1f58e4f43152ec19000e02f2d1ea45abf141f9c
Signed-off-by: Colin Cross <ccross@android.com>
There is a dependency loop between fuses, clocks, and APBDMA.
If dma is enabled, fuse reads must go through APBDMA to avoid
corruption due to a hw bug. APBDMA requires a clock to be
enabled. Clocks must read a fuse to determine allowable cpu
frequencies.
Separate out the fuse DMA initialization, and allow the fuse
read and write functions to be called without using DMA before
the DMA initialization has been completed. Access to the fuses
before APBDMA is initialized won't hit the hardware bug because
nothing else can be using DMA.
Change-Id: Ib5cb0f346488f2869e8314c5f3b24fd86873f4c3
Signed-off-by: Colin Cross <ccross@android.com>
Protect suspend/resume functions behind #ifdef CONFIG_PM. This
prevents a compile error with CONFIG_PM turned off.
Signed-off-by: Allen Martin <amartin@nvidia.com>
Signed-off-by: Colin Cross <ccross@android.com>
Protect irq suspend/resume functions behind #ifdef CONFIG_PM.
This prevents a link error if CONFIG_PM is turned off.
Signed-off-by: Allen Martin <amartin@nvidia.com>
Signed-off-by: Colin Cross <ccross@android.com>
Protect the bus suspend/resume functions behind #ifdef CONFIG_PM.
This prevents a compile error if CONFIG_PM is turned off.
Signed-off-by: Allen Martin <amartin@nvidia.com>
Signed-off-by: Colin Cross <ccross@android.com>
tegra2 hangs if fuse registers are accessed during an apb dma
operation. war is to use apb dma to read/write fuse registers
instead.
Change-Id: I4d99a1ad56115c0d73e9cd0679cf38f70f922f3d
Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
-- Add support for contnuous single-buffered DMA
-- Remove PIO support
-- Added suspend and resume functionality
Signed-off-by: Scott Peterson <speterson@nvidia.com>
Signed-off-by: Iliyan Malchev <malchev@google.com>
Enable 16 bit packed fifo format mode to work avoid
channel swapping when dma underrun occurs.
Added suspend/resume functionality so spdif registers
are restored.
Change-Id: Id80e7903b81fd3b3b84af08dba40196121eb6cb7
Signed-off-by: Iliyan Malchev <malchev@google.com>
Tegra host controller will time the resume operation to clear the bit
when the port control state switches to HS or FS Idle. This behavior
is different from EHCI where the host controller driver is required
to set this bit to a zero after the resume duration is timed in the
driver.
Poll PORT_SUSPEND bit till the suspend is completed. Write PORT_RESUME to 0
to clear PORT_SUSPEND bit.
Disable disconnect detection during resume.
Change-Id: I30a45dc7e7a87773a93c128877d0f0827e5d44b7
Signed-off-by: Jay Cheng <jacheng@nvidia.com>
The length of the mod_locks array is NV_HOST1X_NB_MLOCKS, not
NV_HOST1X_SYNCPT_NB_PTS.
Change-Id: Ibce054bb8a168f2b83646745f2b62cd282b8ff9d
Signed-off-by: Robert Morell <rmorell@nvidia.com>
Acked-by: Erik Gilling <konkers@android.com>
This fixes incorrect colors drawn by clients such as fbconsole. As
described by skeletonfb's fb_setcolreg: "The values supplied have a 16
bit magnitude which needs to be scaled in this function for the
hardware."
Tested with both r8g8b8 and r5g6b5 pixel depths and fbconsole.
Change-Id: Ie3c3579502ddab8843a8a4dc7049c6efaa5d0ac1
Signed-off-by: Robert Morell <rmorell@nvidia.com>
Acked-by: Erik Gilling <konkers@android.com>
- Added "single buffer continuous DMA" mode in addition to the
"double buffer continuous DMA" mode that is already implemented
- Changed the queuing of next buffer to be more flexible for
continuous DMA. It can now get in-flight right after a transfer
starts, or whenever the client enqueues a buffer.
Signed-off-by: Iliyan Malchev <malchev@google.com>
Program PTC bits as NORMAL_OP is enough when resume.
Change-Id: I229eb3ef2ebaff72d023179502ec7a8904e87682
Signed-off-by: Jay Cheng <jacheng@nvidia.com>
If the console_sem was held while the system was rebooted, the messages
in the temporary logbuffer would not have propogated to all the console
drivers.
This force releases the console sem if it failed to be acquired.
Change-Id: I6eba9d744ef41209d26328a17c7ae19c32d6e8cb
Signed-off-by: Dima Zavin <dima@android.com>
Adjust pinmux on disable in order to save power/leakage
Change-Id: I65b642c128a780aa8932205052ccee199e4c41bf
Signed-off-by: James Wylder <james.wylder@motorola.com>
Signed-off-by: Erik Gilling <konkers@android.com>
Also hold the mutex for longer on cleanup, while deleting
the libs nvmap client. Not strictly necessary...
Change-Id: I4dfdb065211571338053a16bacc2e5412c26ae77
Signed-off-by: Dima Zavin <dima@android.com>
For now just includes the existing ports, the peer owners,
and the port and peer state.
Change-Id: I2c6b603ca02dc48acc1c763380ff0f1cb66f482b
Signed-off-by: Dima Zavin <dima@android.com>
USB_WAKE_ON_CNNT_EN_DEV is only valid when USB controller is in device mode.
Also only one of USB_WAKE_ON_CNNT_EN_DEV and USB_WAKE_ON_DISCON_EN_DEV bits
can be set at any one time.
Change-Id: I76d7fcf73e6ab8fa1610ec4264060c44b221775c
Signed-off-by: Jay Cheng <jacheng@nvidia.com>