summaryrefslogtreecommitdiff
path: root/drivers/video/tegra/host/nvhost_syncpt.c
AgeCommit message (Collapse)Author
2012-06-25video: tegra: host: add public APIs for power & syncpoint managementMayuresh Kulkarni
- add public APIs for power & sync-point management - all these APIs end with string _ext - all these APIs can be found in linux/nvhost.h - all these APIs take nvhost_device as first argument - all these APIs are based on the fact that host1x hardware driver is parent of all the host1x client driver - this allows clients of host1x which are outside host1x driver code to just include nvhost.h & use host1x driver interfaces - this also hides the implementation details of power & sync-point inside host1x driver code - move sync point ids for dc and nvavp to nvhost.h Bug 961009 Change-Id: I1a9ca074df87656c4d4bd246853e039a7850d56a Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-on: http://git-master/r/109219 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> GVS: Gerrit_Virtual_Submit
2012-06-14video: tegra: host: Parametrize host1xTerje Bergstrom
Add parameters in host1x nvhost_device on * number of sync points * number of wait bases * number of channels * number of mlocks * client managed bitmask * naming of sync points Add automatically generated headers and use symbols from them to access hardware. Move host1x device definition from generic host1x to SoC specific source files t20.c and t30.c. Bug 982965 Change-Id: Ibec84be22d75b363900d10bcbd59d4d8321d54a1 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/104974 Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
2012-06-11video: tegra: host: Abstract nvmap supportTerje Bergstrom
Abstract nvmap support to one file, and use it via function pointers from other parts of nvhost. Bug 965206 Change-Id: I4e5e7de4271e0797d117ac8210af4732b6018973 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/105665 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
2012-05-25video: tegra: host: Merge waitchk and relocationTerje Bergstrom
Job pinning and relocation already maps the gather buffers to kernel memory. Move waitchk to be done at the same time so that we do not need to re-map the memory to patch expired waits. Bug 965206 Change-Id: I23634b501a45de080200e57d3debf267b39fea38 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/104415 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com> Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
2012-05-24video: tegra: host: Improve timing of syncpt waitTerje Bergstrom
nvhost_syncpt_wait_timeout() relies on sync point interrupt to signal reaching the sync point value. With low timeout values, the resolution is not good enough and an error is returned even when the value is reached. Update syncpoint value from hardware when doing a sync point wait and do an explicit check for reaching the value even if wait returns a timeout. bug 984166 bug 986788 bug 987597 Change-Id: I640e32cdcdfa66b8977eac273dd32f62bd72abd6 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/103827 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
2012-05-17video: tegra: host: Do not panic on hardware timeoutTerje Bergstrom
nvhost panics if hardware does not respond within 30 seconds. Remove this behavior, as it causes problems in emulation and simulation. Panic should be used only to prevent corruption. Submits are now given a default timeout of 30 seconds. The clients can still override with their own timeout value. MPE doesn't provide the number of slots for context save/restore. This information is needed to be able to use the submit timeout for MPE. Bug 982946 Change-Id: I0f54d639df0fb726cc3163b317bf9c90bf56798b Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/100246 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
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-10video: tegra: host: Add syncpt trace eventsTerje Bergstrom
Add trace events for updating the syncpt value from hardware, and wait check. Change-Id: If17de153ae36c0665fe0af2f405dfe42f7fcd656 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/101524 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com> Reviewed-by: Ken Adams <kadams@nvidia.com>
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-04-05video: tegra: host: Add syncpt sysfs entriesTerje Bergstrom
Expose sync point current and max values through sysfs. Bug 957639 Change-Id: I2a3b914d404bb8d7bbed86d383c859bd8237a278 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/92778 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
2012-03-30video: tegra: host: Remove pre-check in syncpt waitTerje Bergstrom
Remove the check and debug dump for cases where we compare against an old syncpt value. Also removes an extra check that is already done by wait_event_interruptible_timeout(); Bug 941327 Change-Id: Icbaf70b04a8bd070c3fdd3467b981de11219d2b9 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/92283 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
2012-03-20video: tegra: host: Fix sync point comparisonTerje Bergstrom
Fix sync point comparison to take into account old expired values, and do proper comparison taking into account wrapping. Bug 941327 Change-Id: I70724637ba870b2e29bac695abc0ea2b968394d7 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/84808 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Ilan Aelion <iaelion@nvidia.com> Reviewed-by: Acorn Pooley <apooley@nvidia.com>
2012-03-15video: tegra: host: Replace license informationTerje Bergstrom
Replace license information in nvhost with GPLv2. Also adds copyright year 2012 in files which have been changed in 2012. Change-Id: I86e8ed27095df13d99e0250e57e244d531fdacec Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/89735 Reviewed-by: Rohan Somvanshi <rsomvanshi@nvidia.com> Tested-by: Rohan Somvanshi <rsomvanshi@nvidia.com>
2012-02-28video: tegra: host: Merge tegra_grhost and host1x devicesMayuresh Kulkarni
- tegra_grhost is a platform device that represents host1x - nvhost has device host1x which represents the same hardware - merge these two device structs - as the new struct is a nvhost_device, platform_driver is also converted into a nvhost_driver - register nvhost device before other graphics devices. this ensures that nvhost_probe() is called as soon as nvhost_driver is registered with the core. - this also ensures that nvmap is probed first, followed by nvhost, followed by tegra-dc and nvavp (if they are enabled). Change-Id: Ic420a6516a9cb20d6f481692a4db10fa6053dd90 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Signed-off-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-on: http://git-master/r/82631 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
2012-02-21video: tegra: host: incr_syncpt should not modify maxTerje Bergstrom
When user space calls NvRmChannelSyncPointIncr(), the maximum value of sync point should not be incremented unless sync point is client managed. Also prevents kernel panic if user space tries to increment beyond maximum. Instead, give debug spew and ignore. Bug 936097 Change-Id: I4dc7ed46b1e0394d41066051a47f1d7a1f08493c Reviewed-on: http://git-master/r/79957 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
2012-01-30video: tegra: host: CPU reg read to use power managementTerje Bergstrom
CPU register read did not have access to nvhost power management. Due to this only modules that were powered on previously are actually accessible via the API. This patch refactors CPU access to: * Move mutexes to sync point, as they're sync point operations * Move register address spaces to nvhost_device * Call register read with access to the respective nvhost_device * Initialize module completely at boot-up so that register reads can be done without an initialized channel. Reviewed-on: http://git-master/r/75275 Change-Id: I0db38cef7b2cd92dc64e7f55d227bdd2fdb8f752 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Signed-off-by: Varun Wadekar <vwadekar@nvidia.com> Reviewed-on: http://git-master/r/77764 Reviewed-by: Automatic_Commit_Validation_User
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-12-21video: tegra: host: Use nvhost_job for tracking submitTerje Bergstrom
When a submit arrive in kernel, package it as a new data type nvhost_job and use that for submitting to channel. That data type is used for tracking the state of the job through its lifetime. Change-Id: I0cfdb1721cc6c08efbd215917f5f46fdb7131ca0 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/67682 Reviewed-by: Simone Willett <swillett@nvidia.com> Tested-by: Simone Willett <swillett@nvidia.com>
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: Increase syncpt stuck loop countTerje Bergstrom
Increase minimum loop count when checking for stuck syncpoint, before triggering debug_dump()->BUG_ON(), to account for some lengthy context-save operations. Now increased to 15 loops * 2s wait (SYNCPT_CHECK_PERIOD) per loop. (Wait per loop may be less depending on user-specified timeout for nvhost_syncpt_wait_timeout().) Bug 834337 Change-Id: I1029b6359c1bb8e08f389c211641798fefa92d75 Reviewed-on: http://git-master/r/61412 Tested-by: Gerrit_Virtual_Submit (cherry picked from commit 5b13d80dc21855c52f53a67471453ea6e95e61f9) Reviewed-on: http://git-master/r/62370 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Rebase-Id: Rfcf833e15c597a5684a3d44e923d64ef12ec4b5a
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: Add extra syncpt debug infoTerje Bergstrom
Add extra syncpt debug info and kernel panic when device stuck waiting at syncpts. Tested by inducing syncpt stuck-wait by bypassing nvhost_syncpt- _cpu_incr. Bug 822880 Bug 820056 Bug 818058 Bug 810463 Bug 803452 Reviewed-on: http://git-master/r/60206 (cherry picked from commit e73caae974f43ac5bf30589fc3cbc1fa66df926e) Conflicts: drivers/video/tegra/host/nvhost_syncpt.h Change-Id: I648d92931cd26fddface2be557bffe8759c22753 Reviewed-on: http://git-master/r/62357 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Rebase-Id: R62d49b050f565e0a581530bf2342eb65931da9a8
2011-11-30video: tegra: host: Check for allocation failuresTerje Bergstrom
Adds checks for memory allocation failures, and proper propagation of error conditions. Adds clearing of pointers after free or unpin has been called to catch use after free. Bug 877551 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/54027 Reviewed-by: Antti Miettinen <amiettinen@nvidia.com> Reviewed-by: Hiroshi Doyu <hdoyu@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Reviewed-by: Krishna Reddy <vdumpa@nvidia.com> Tested-by: Gerrit_Virtual_Submit (cherry picked from commit bfbf2766d11a5f85781532ddce3a87b7ae762ba3) Change-Id: I04171ee5db6a42bb1689221d4f80d5f3d35e7399 Reviewed-on: http://git-master/r/57462 Rebase-Id: Rc9f43312c8b818869d746f4b73700d8b56e4569d
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-30nvhost: Move include files to kernel/includeTerje Bergstrom
To prepare for kernel modularization, nvhost include files need to be moved from mach-tegra/include to kernel/include. At the same time user space specific part is split into nvhost_ioctl.h. Bug 854182 Original-Change-Id: I3694a40d786028733310ecf5b59341282af571be Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/43211 Reviewed-by: Varun Colbert <vcolbert@nvidia.com> Tested-by: Varun Colbert <vcolbert@nvidia.com> Rebase-Id: Rc4fadf65d59ddfb5bb924e7adfccd39e86a0b2c7
2011-11-30nvhost: Do not crash if wait syncpt > maxTerje Bergstrom
If user space is waiting for a syncpt value higher than max, nvhost_wait_timeout() panics the kernel. This panic is based on the assumption that nobody should wait for sync points higher than indicated by a submit from user space. As the API has nothing to disallow waiting for future sync points not indicated by any submit, this patch removes the panic and treats this as a normal case. Bug 843238 Original-Change-Id: I367c46e42bd683f1023e7fe04e523a99ab3d666b Reviewed-on: http://git-master/r/36470 Reviewed-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Tested-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com> Rebase-Id: R18a509f85dfd657c3dcbbd7db1fa95d71113cea0
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-30nvrm: move stale wait checking into the kernelChris Johnson
The kernel now receives wait tracking data (similar to gathers and relocs) and compares the current syncpt with the threshold value. If it's old, it gets a kernel mapping and rewrites the method data to use a kernel reserved syncpt that is always 0 (so trivially pops when seen by the HW). Bug 519650 Bug 785525 Bug 803452 The waitchk implementation is also backward compatible with older user space code that didn't supply waitchk data as part of the submit. (cherry picked from commit 4069d8e67665624ad3dceb628e572980dd57acd0) (cherry picked from commit 6e4336408588e348804a62e53386acc9abc06823) (cherry picked from commit 87a9efe751716ca741caac72b9061fdfdcec540a) (cherry picked from commit 6d8d2c454e835f7cfe34371e07dac173f3153452) Original-Change-Id: I1bf4c940fefb6e251aa8c396e92631fa3cbe32df Reviewed-on: http://git-master/r/23159 Reviewed-on: http://git-master/r/30281 Reviewed-on: http://git-master/r/32669 Reviewed-by: Niket Sirsi <nsirsi@nvidia.com> Tested-by: Niket Sirsi <nsirsi@nvidia.com> Rebase-Id: Rbad4942a103de7d64d8a6a11d4a973740c56fa8e
2011-11-30[ARM] tegra: Extend the wait interface in the hostPaul Hodgson
Extend the wait interface to relay the actual resultant waited point back. Original-Change-Id: Idbaa96b186390a2383ef2cc99aefb950648a2d19 Reviewed-on: http://git-master/r/23033 Reviewed-by: Niket Sirsi <nsirsi@nvidia.com> Tested-by: Niket Sirsi <nsirsi@nvidia.com> Rebase-Id: Rd30d550f9adbd84f643201c17c61a46e80884e86
2011-11-30video: tegra: host: add additional syncpoint idPrayas Mohanty
For stereo camera, we need to read syncpoints from both the rear sensors which are on their own pixel parsers. Add an additional sw syncpoint for that. bug 787214 bug 786928 Original-Change-Id: I4dff7fa636ff548de44544f845a5a1ba0c402d6d Reviewed-on: http://git-master/r/30009 Tested-by: Prayas Mohanty <pmohanty@nvidia.com> Reviewed-by: Andrew Howe <ahowe@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: Gary Zhang <garyz@nvidia.com> Reviewed-by: Erik M Lilliebjerg <elilliebjerg@nvidia.com> Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com> Reviewed-by: Scott Williams <scwilliams@nvidia.com> Rebase-Id: R927b1c2297441f9c30afdc8c623a8299340b6771
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-30Revert "Revert "Revert "tegra: host: move stale wait checking into the kernel"""Nitin Kumbhar
This reverts commit be7b9ce20d645c2c9293441830ee33a0a5fc489f. Rebase-Id: R34033f7a7ed72aeb1e2a83ad5a09c219d3254048
2011-11-30Revert "Revert "tegra: host: move stale wait checking into the kernel""Rebecca Schultz Zavin
This reverts commit b3cc1d84d0b962fe80fc297d2e2417c3157508b6.
2011-11-30Revert "tegra: host: move stale wait checking into the kernel"Rebecca Schultz Zavin
This reverts commit 2d49bf33f3885aab293f12d54447f66e911e3226.
2011-11-30tegra: host: move stale wait checking into the kernelPrajakta Gudadhe
The kernel now receives wait tracking data (similar to gathers and relocs) and compares the current syncpt with the threshold value. If it's old, it gets a kernel mapping and rewrites the method data to use a kernel reserved syncpt that is always 0 (so trivially pops when seen by the HW). Patch has dependency to the user-space patches Submitted on behalf of: Chris Johnson <cjohnson@nvidia.com> original work by: Chris Johnson <cjohnson@nvidia.com> Change-Id: I4d4e5d3b49cab860485c4172f87247f5b4f5ea6e
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