summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/host/debug.c
AgeCommit message (Collapse)Author
2012-05-11video: tegra: host: move chip_support out of nvhost_masterMayuresh Kulkarni
- 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
2012-05-04video: tegra: host: Clean up includesTerje Bergstrom
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>
2012-03-23video: tegra: host: use bus_for_each_dev for channel debug outputMayuresh Kulkarni
- 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>
2012-02-23video: tegra: host: Dump client managed sync pointsTerje Bergstrom
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>
2012-01-12video: tegra: host: Move device data to nvhost_deviceTerje Bergstrom
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>
2011-11-30video: tegra: host: Add syncpt and cmdbuf to traceTerje Bergstrom
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
2011-11-30video: tegra: host: Enhance FIFO/GATHER debug_dumpTerje Bergstrom
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
2011-11-30video: tegra: host: Add waitbases to debug outputTerje Bergstrom
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
2011-11-30video: tegra: host: Prevent panic in debug outputTerje Bergstrom
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
2011-11-30nvhost: Modularize ACM codeTerje Bergstrom
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
2011-11-30video: tegra: host: fix checkpatch.pl issuesKen Adams
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
2011-11-30video: tegra: nvhost: add submit timeout supportChris Johnson
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
2011-11-30video: tegra: host: 3d clock scalingIlan Aelion
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
2011-11-30video: tegra: refactor for multiple chip supportKen Adams
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
2011-11-30video: tegra: host: No S_IWGRP permission for sysfs attrbsManoj Gangwal
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
2011-11-30arm: tegra: nvhost: Add debugfs entry for null GPU kickoffJanne Hellsten
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
2011-11-30ARM: tegra: Use proper type for physical addressesScott Williams
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
2011-11-30video: tegra: host: Renovate debug codeAndrew Howe
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
2011-11-30video: tegra: host: Revert previous mergeKishore Kumar Kunche
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
2011-11-30[ARM/tegra] nvhost: Merge NVIDIA changes into Google's nvhostAndrew Howe
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
2011-11-30video: tegra: add HOST1_SYNC regs to nvhost_debug_show dumpChris Johnson
Change-Id: I48cccf5b0df768b9cfc774803f3945f4806a62ac
2011-11-30video: tegra: cleanup debug syncpt outputChris Johnson
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>
2011-11-30video: tegra: dump host state when timing out on suspendErik Gilling
Change-Id: I718fb071ac74f5a051a7d5b9fcdd782163ed48b6 Signed-off-by: Erik Gilling <konkers@android.com>
2011-11-30video: tegra: dump current pushbuffer from channel debuggerMichael I. Gold
Signed-off-by: Erik Gilling <konkers@android.com> Change-Id: Ia14a2bad23ae1c6401755d413ffdc32c9f35b0fd
2011-11-30video: tegra: fix host1x command decoding debug printsErik Gilling
Signed-off-by: Erik Gilling <konkers@android.com> Change-Id: Ia0073a4e679174fc7e9ca6ff0b67973980c6af97
2011-11-30video: tegra: host1x driverGary King
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