Age | Commit message (Collapse) | Author |
|
- currently, nvhost_master holds the reference to struct
chip_support
- the struct chip_support hides the chip specific implementation
for channel submit, cdma, push buffer operations etc. so
it exposed all the internal structures through nvhost_master
- move chip_support to be a part of nvhost_bus since it only has
function pointers to chip specific api implementations
- nvhost_master is host1x device specific private data so
ideally it should not hold reference to chip specifics
Bug 871237
Change-Id: I4f3f48ee5fc47a90288d110ea8eef905150275a0
Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
Reviewed-on: http://git-master/r/94421
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
GVS: Gerrit_Virtual_Submit
|
|
Clean up #includes. Replace #includes with forward declarations where
possible, and remove extraneous #includes.
Bug 871237
Change-Id: I6942e0c632b42ad7009589ebdd78def88ae4baa4
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/99046
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
|
|
- this patch uses the iterrator bus API to print the channel
status on debug-fs output
- it is the first step for removal nvhost_master holding
pointers to all the channels
Bug 871237
Change-Id: I2eaf8f0124512f1bc1ea9bbbe71d2c112b1947d2
Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
Reviewed-on: http://git-master/r/91676
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
|
|
Change sync point debug dump filtering so that client managed sync
points are added to output.
Remove also an infinite loop when sync point value goes beyond maximum.
Debug dump calls t20_syncpt_update_min, which should not call debug
dump again.
Change-Id: I086a3c21d6171d083e5254e7a34b1582e38a3e49
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/84940
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
|
|
Move all device data from nvhost_channeldesc, nvhost_moduledesc and
nvhost_module to nvhost_device. nvhost_devices are also assigned into
a hierarchy to prepare for implementation of runtime power management.
Change-Id: I1e18daae8fe538086cd1f453d316e0f73e9d7d92
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/72844
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
Reviewed-on: http://git-master/r/74560
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Tested-by: Varun Wadekar <vwadekar@nvidia.com>
|
|
Add sync point information and contents of command buffers to ftrace
output.
Change-Id: Ie30e2208da3f76315e6d706c841190eff22dd09d
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/66072
Tested-by: Gerrit_Virtual_Submit
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Rebase-Id: Rcb8cda3b5720036e28b112558baa0f4d2b37a7a8
|
|
Enhance nvhost_debug_dump() output, as follows:
- Swap FIFO and GATHER dump so that even if GATHER dump blows out
seq_printf 1k buffer, we still have FIFO information;
- Write FIFO signature pattern (0xd???d???) to indirect save input
data to help pinpoint FIFO position within debug dumps;
- Prevent long data sequences from blowing out the seq_printf 1k
buffer, by limiting such sequences to 64 words.
Change-Id: I83f6118f8af14a6c46fd1080c03b718a7a3bc66c
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/62424
(cherry picked from commit cb37e4212b78546411b33b32044f30feb0579b86)
Reviewed-on: http://git-master/r/63788
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Rebase-Id: R39329ae8eb252ced3da604e4f33c272e26921d27
|
|
Add listing of wait bases and their values to debug output.
Reviewed-on: http://git-master/r/60389
(cherry picked from commit 16afc5516433d4a66d838c5a339ab8c07f4b42fa)
Change-Id: I70a82944cb39e65ce409169d5aa00bafb343a9b6
Reviewed-on: http://git-master/r/62369
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Rebase-Id: R505b4dcfd6912e99ac44ec938f8be1b1574b2b05
|
|
Add locking and checking for error codes to the output of
tegra_host/status debugfs entry, and clearing of freed memory.
Bug 840976
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/60231
(cherry picked from commit 811a722b7fe3e21357a8aa7b6cfb8b9f552b7de7)
Conflicts:
drivers/video/tegra/host/t20/cdma_t20.c
Change-Id: Ic6984b704c1a5c0cb940090688641bf1fbc6b568
Reviewed-on: http://git-master/r/62360
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R61c642424e674b141291d02479d11339e4b1cd95
|
|
Refactor nvhost_acm.c so that module specific code can be separated from
generic code:
* Module clock and power op descriptions added to channelmap table
* New module busy/idle interface added
* 3D clock scaling for Tegra3 moved behind the module busy/idle API
* 3D power off code moved to 3dctx where it belongs
* Module power on API removed as there were no users
* Get/Set rate moved to Tegra3 specific file
Bug 870791
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/51275
Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
(cherry-picked from ebea06768d9c9d351a7d1c8dc6499c97f2f5002d)
Change-Id: I5857c7db4bbf936a694239a4a3493f2cb95426a1
Reviewed-on: http://git-master/r/56268
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: Reaccd277c8f4fe12a4f7453cc4e787334122a3b8
|
|
The only warnings left are one for
"./nvhost_cdma.c: 609: WARNING: consider using a completion"
and all "over 80 char line" warnings.
Change-Id: I5aa113dac1deb60570c326976baba96386b041ec
Reviewed-on: http://git-master/r/53842
Reviewed-by: Ken Adams <kadams@nvidia.com>
Tested-by: Ken Adams <kadams@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Jeff Smith <jsmith@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Rebase-Id: R83200f349310910a04705d0f7a94d8163e0666fe
|
|
In this change, nvhost_cdma starts a timer (if a timeout is specified
in the userctx), for the buffer at the head of the sync_queue that has
not reached its syncpt threshold.
If the timeout fires, nvhost_cdma initiates a channel / module reset.
It then detects up to where in the sync_queue it stopped execution
(based on the current HW syncpt value).
For any remaining uncompleted buffers in the context, nvhost_cdma NOPs
the entry and CPU incrs the syncpt to where it should be had it completed.
If one of the sync_queue entries belongs to another context, it still
does the syncpt incrs for this context, but via the PB as a GATHER opcode,
At the end, CDMA is restarted, so buffers are refetched (either with
NOP slots, or GATHERs to incr syncpts). This appears as though the
buffer has completed (and the associated resources released).
For testing, debugfs entries have been added under /d/tegra_nvhost
force_timeout_val - set the timeout value, in ms
force_timeout_channel - channel ID, were timeouts checks occur
force_timeout_pid - process ID to set the userctx
The idea is to set the timeout_val, then the timeout_channel (e.g. for
3D, the channel ID is 1) and then the process ID, gotten from running
adb shell ps.
Bug 625545
Original-Change-Id: I659e9255f1105f3439ce23e9169a19739b83ea52
Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-on: http://git-master/r/42655
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R89759c129e2db8f7dbf83a6066fc29947f95cc27
|
|
Adds support for 3d clock scaling based on the 3d module idle
time percentage.
Original-Change-Id: I4d3a70d372b9a8bd6f999e71e135fcd35673e18f
Reviewed-on: http://git-master/r/41250
Tested-by: Ilan Aelion <iaelion@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Rebase-Id: R64b86250fce24e3b43d70ffd316e9de518eb24ba
|
|
Original-Change-Id: Ia203886a3b013612b4159393ff43a25a313d1ece
Reviewed-on: http://git-master/r/35911
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R01b763362c13e09111f60700c3d3a7d2a9a3fc1c
|
|
Removing write permission for Group and others for sysfs:
"null_kickoff_pid" attribute as CTS test "android.permission
.cts.FileSystemPermissionTest#testAllFilesInSysAreNotWritable"
requires it as non-writable.
Bug 828100
Original-Change-Id: Ifa2ee439a63f0503bf10f10f3cf31cd7c91c2842
Reviewed-on: http://git-master/r/39367
Tested-by: Manoj Gangwal <mgangwal@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Rebase-Id: Rd386df89e37ba55d9157bc71237175d0b6fa6f6b
|
|
Add a debugfs entry for enabling/disabling GPU null kickoff of
graphics submits on a per process basis.
Restructure existing tegra_host debugfs node by making the existing
tegra_host file a directory and moving the status query under its own
status node. Thus the file system structure changes from:
/sys/kernel/debug/tegra_host - status
to
/sys/kernel/debug/tegra_host/status - status
/sys/kernel/debug/tegra_host/null_kickoff_pid - null GPU ctl
Bug 826513
Original-Change-Id: Id7ccbce1bb9e53c6e3b036d10f23563fab6bf481
Reviewed-on: http://git-master/r/32765
Reviewed-by: Janne Hellsten <jhellsten@nvidia.com>
Tested-by: Janne Hellsten <jhellsten@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Reviewed-by: Daniel Willemsen <dwillemsen@nvidia.com>
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Rebase-Id: R8bfacafbd0a74cddf33cded06331e52b53564156
|
|
Original-Change-Id: I158d2be97c795313e7e74ce9fb4ec0bdc7d95496
Reviewed-on: http://git-master/r/27559
Tested-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Hiro Sugawara <hsugawara@nvidia.com>
Reviewed-by: Jin Qian <jqian@nvidia.com>
Reviewed-by: Kaz Fukuoka <kfukuoka@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Original-Change-Id: I0ff198daa548ed2837f7fb1794013bf0adf7e5a1
Rebase-Id: R83df5f3b5104183bfe774d8eed8ce94427c9b7fc
|
|
Bring in changes to enable dumping the debug state
to the kernel log (used when module suspend times out).
Rewrote debug code to get that working more cleanly (no 16K buffer).
Refactored & cleaned up debug code to make it easier to understand.
Original-Change-Id: I22db36a627bfb1815a46866dfe23a5d3aa693edc
Reviewed-on: http://git-master/r/24157
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Tested-by: Scott Williams <scwilliams@nvidia.com>
Original-Change-Id: I92d7dcc4ede088179a5a1bca982fdfba1eeb3553
Rebase-Id: Ra013bf33c1002d2e37a7c97b7d4b441ad51f7211
|
|
The proper host driver patches will follow, based on the
pre-merge state.
also includes:
[ARM]: tegra: host disable MPE auto power gate
Fixes Random CRC failures on T30.
Original-Change-Id: Ib42b8efc30d9e8910934bb9350e8170c9096e614
Reviewed-on: http://git-master/r/18663
Original-Change-Id: I985bfbef277db4d533b67ee674db41d4a8daa18a
Reviewed-on: http://git-master/r/24296
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Tested-by: Scott Williams <scwilliams@nvidia.com>
Original-Change-Id: Iec8ea27d5648b7f9f8ac51f2aca79b5e7cf44879
Rebase-Id: Rcfb56b73d820c182354e6b91afa219148e4000b0
|
|
Google's 2.6.36 nvhost driver branched from NVIDIA's 2.6.32 nvhost at some
point before it was actually committed to 2.6.32, but the former's
original commit included some fixes that were added to the latter after
that. Confusing... Also Google's version has some changes that we like
so they will remain, but that makes merging difficult.
Anyway, this commit brings the rest of our 2.6.32 changes into 2.6.36
and cleans it up a bit. It might be nicer to break this up into a load
of smaller commits but it turned out to be very difficult to do that.
Original-Change-Id: I828b624b089b811d6130173e55258da8f52a5cc2
Reviewed-on: http://git-master/r/12563
Tested-by: Jussi Rasanen <jrasanen@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Tested-by: Wei Sun <wsun@nvidia.com>
Original-Change-Id: I72fbcff16ec6df62cc7299052a84b91db252c8d1
Rebase-Id: Rb3aa29f2ecbecf889bbc6ccf7d0b26925f7b94fb
|
|
Change-Id: I48cccf5b0df768b9cfc774803f3945f4806a62ac
|
|
In debug prints for stuck WAITs differentiate WAIT_SYNCPT
vs. WAIT_SYNCPT_BASE and fix some build warnings.
Change-Id: Ia47375614c676a9f93216fbfaaf6856c3df42e2e
Signed-off-by: Chris Johnson <cwj@nvidia.com>
|
|
Change-Id: I718fb071ac74f5a051a7d5b9fcdd782163ed48b6
Signed-off-by: Erik Gilling <konkers@android.com>
|
|
Signed-off-by: Erik Gilling <konkers@android.com>
Change-Id: Ia14a2bad23ae1c6401755d413ffdc32c9f35b0fd
|
|
Signed-off-by: Erik Gilling <konkers@android.com>
Change-Id: Ia0073a4e679174fc7e9ca6ff0b67973980c6af97
|
|
the graphics and display hardware on tegra SoCs is accessed
through a command DMA front-end called host1x
host driver clients place commands into memory objects called
streams, and submit a stream on one of 8 channels: the assignment
of streams-to-channels depends on the hardware module(s) programmed
by the stream: for example, all streams which program the 3D
hardware are submitted on channel 1.
the host1x hardware includes two synchronization primitives to
allow command streams to synchronize access to memory or to
hardware engines shared across channels (e.g. the 2D blitter):
sync points and module mutexes. both primitives can also be
used to synchronize with the CPU.
the host1x driver performs power management for all modules
behind the host block: once a module is idle (i.e., the
last stream which accesses it has completed, indicated by
a syncpoint) and has remained idle for an extended period
of time, the module's clock (and power gate island, if the
module is uniquely power-gated) is disabled, and will be
automatically re-enabled when a new stream is submitted for
that module.
includes channel debugging support originally implemented
by Erik Gilling <konkers@google.com>
Original Author: Antti Hatala <ahatala@nvidia.com>
Signed-off-by: Gary King <gking@nvidia.com>
Change-Id: Idf0ecc8e7710f3839903a9fbfbe5650990a96b2c
|