summaryrefslogtreecommitdiff
path: root/include/linux/nvhost.h
AgeCommit message (Collapse)Author
2015-02-10video: tegra: host: Never release firmwareArto Merilainen
Firmwares are currently released at the time we close the channel device node. This causes unexpected side effects in cases where the finalize_poweron is called only once to get the device booted during the first time the device is accessed. This patch fixes the issue by not releasing the firmware after it has once loaded. Bug 200033244 Change-Id: I8fc6748846e56ac0cc347feb170b239533a47252 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/495220 (cherry-picked from commit 69bce0a17ad1e5457cfce0d66f6e1b4add7e9820) Reviewed-on: http://git-master/r/670671 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Matthew Pedro <mapedro@nvidia.com>
2014-05-12video: tegra: host: Export subdomain registrationArto Merilainen
This far the subdomain registration has been allowed for drivers that use nvhost_acm framework. However, gk20a handles its own power domain bu it needs to register it as a subdomain of host1x. This patch exports necessary functionality in public header. Bug 200003112 Change-Id: Ie3457345c101329cadac4ef8aa71e448629a419b Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/407542 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-04-23video: tegra: host: add syncpt get/free ioctlsDeepak Nibade
Add below two new ioctls for client managed syncpts: 1) NVHOST_IOCTL_CHANNEL_GET_CLIENT_MANAGED_SYNCPOINT To provide a client managed syncpt to user space 2) NVHOST_IOCTL_CHANNEL_FREE_CLIENT_MANAGED_SYNCPOINT To free a client managed syncpt from user space Bug 1482249 Bug 1305024 Change-Id: Ie9376c761024f2ad6e8a35633017153ca5cc8fe7 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/394158 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-04-23video: tegra: host: interface for error notifyShridhar Rasal
Implement interface to notify user space when errors. Bug 1469448 Change-Id: Id59e312ed69dcd11672ca5d1c2b71fde21972b94 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/395164 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-04-23video: tegra: host: Extend VIC into common flcn drvTerje Bergstrom
Extend VIC driver into a common Falcon driver and rename it to flcn. Change-Id: Ic4d8c39e2ac1e7ac571746d7cf1ff8d8d34621d4 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/288780 Reviewed-by: Ken Adams <kadams@nvidia.com>
2014-04-10video: tegra: host: multi channels per deviceShridhar Rasal
- Add support to have multiple channels per device. - set max number of channels that can be assigned to device in platform data. - On channel open request assign new channel to device till max number of channel count. - suspend all assigned channels on device disable clk. - un-map all channels on device release callback. Bug 1259844 Bug 1436477 Change-Id: Ibc1de8b036cde238b292e1ffa660dc2a796f65e8 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/387096 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-04-10video: tegra: host: ioctl to set fence nameDeepak Nibade
Add ioctl NVHOST_IOCTL_CTRL_SYNC_FENCE_SET_NAME to set name for a sync fence Bug 1473041 Change-Id: Iabc1c472f6fddc87dac75d3a37b75a83a834dc1e Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/391271 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-04-08video: tegra: host: re-enable dynamic channel mapShridhar Rasal
This reverts commit 3cc76ad71851437c8f5d4d5b27a8df392e95a53b also fix issues seen in kernel_submit : - Re-use put/getchannel only for channel ref-counting - Make put/getchannel calls atomic - Move device init/deinit to channel map/unmap - Move keepalive checks to map/unmap - Uses channel bitmap in circular way to avoid race - Remove legacy alloc/free channel callbacks - Remove static reference to hw channel - Free channels and list on nvhost remove Bug 1259844 Change-Id: I2be58540370cb7b8a42e72c64ae9cb4588faafd8 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/381310 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-04-01video: tegra: host: unregister char device regionBryan Wu
Char device region needs to be released when we unloaded module, otherwise it cause allocation failure and kernel oops. Bug 1490541 Change-Id: Ib95aef54f90d4f743c208f497db1ed69873cf13d Signed-off-by: Bryan Wu <pengw@nvidia.com> Reviewed-on: http://git-master/r/389972 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-04-01video: tegra: host: Remove Tegra11 supportTerje Bergstrom
Remove support for T114 and its units 2D and 3D. Remove user settable context switching. Change-Id: If3e194fe1907ccde1ca0537a549da35a366637b0 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/390120
2014-04-01video: tegra: host: Remove powerup_resetTerje Bergstrom
Make T114 3D driver perform the bootup reset by itself and remove the generic powerup reset. Change-Id: Ife95d2cdef8370daa9a5ddff02fd9b5c9f115c11 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/375978 Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com> Tested-by: Juha Tukkinen <jtukkinen@nvidia.com>
2014-04-01video: tegra: host: Remove 3D register readTerje Bergstrom
Change-Id: Ic176da5d95657f8b6f36922824449b8e189221e4 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/375977 Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com> Tested-by: Juha Tukkinen <jtukkinen@nvidia.com>
2014-03-26Revert "video: tegra: host: hard-code syncpts for t114"Deepak Nibade
This reverts commit 1bf4f9a5e3334756dc789dfc9408e5c64b121f59. Commit "1bf4f9a" was hard coding some syncpts and was needed to support T114 on dev-kernel Since now T114 support is removed from dev-kernel/main branch, this change can be reverted Bug 1305024 Change-Id: I5ff5f1190b700fb168b59b6fcff0ec5d66844861 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/384265 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-25video: tegra: host: gk20a: Don't use private nvhost headersArto Merilainen
This patch modifies the code so that private nvhost headers are never included inside the gk20a driver. The public header is still used and hence this patch leaves some dependencies against nvhost driver. Change-Id: I599930b379af7679a0cdc06a0b5632024503f8e3 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/383710 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-25video: tegra: host: Move vpr functions to gk20aArto Merilainen
Currently, vpr prototypes are defined inside nvhost.h but the correct place for the headers is inside gk20a.h. This patch makes the necessary modifications to the headers. Change-Id: I779e242d36402102a5bb39440dd6d6d455937fc3 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/381426 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-25video: tegra: host: Publish sync APIArto Merilainen
Currently, nvhost sync objects are considered private and they are defined inside nvhost private headers. However, we may need to access the internal data of the nvhost sync objects (hw syncpoint id and threshold) as the hardware allows using this data directly from also other devices. Change-Id: I18dafd9d805ee85e9aa67cad91feb8a7f20950da Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/378344 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-25video: tegra: host: Extend syncpoint APIArto Merilainen
This patch extends syncpoint API to support some commonly used functions. In addition, this patch modifies the current API so that it does not require giving the host1x client device but it allows giving also host1x device pointer directly. Change-Id: Ie3ea53b0faaaa8209639a41f7c375b025b3a277e Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/378343 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-25video: tegra: host: Support external syncpt cbsArto Merilainen
This far the nvhost driver has published interface for waiting syncpoint values synchronously, however, we have need to do similar waiting asynchronously (i.e. trigger event when certain syncpoint value has been reached). This patch adds public function nvhost_intr_register_notifier() that allows registering callbacks. Change-Id: I3e8a12fad229b264a2ace5bb7f4726e17c90f112 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/378342 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-19video: tegra: host: hard-code syncpts for t114Deepak Nibade
- hard code syncpts for gr3d, gr2d and syncpt no. 17 for T114 - this is to maintain user space dependency on hard-coded syncpts - syncpt no. 17 is wrongly used by some of the graphics tests which require this syncpt to be reserved as client_managed syncpt - keep this hard-coded part for t114 under #ifdef CONFIG_ARCH_TEGRA_11x_SOC Bug 1305024 Change-Id: I18dc36018ca5cb95a191dd6f3eaa145d90391608 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/381961 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-19video: tegra: host: remove static syncpt mappingsDeepak Nibade
remove static mappings of syncpt ids, syncpt names, and client managed syncpts Bug 1305024 Change-Id: I7e297d2bf4c438fc030937f8bdca39068a83d285 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/381960 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-19video: tegra: host: implement dynamic synptDeepak Nibade
- implement dynamic syncpoint assignment framework - provide API nvhost_get_syncpt_client_managed() to get client managed syncpt which is requested by display, avp, and tegra_camera drivers - provide API nvhost_get_syncpt_host_managed() for host managed syncpts - this API is used by host1x clients and gpu - provide API nvhost_free_syncpt() to free a syncpt - both client managed and host managed APIs call nvhost_get_syncpt() to find a free syncpt and reserve it - remove static syncpt mappings from nvhost_device_data of all clients - keep VBLANK syncpts hard-coded until we resolve the conflicts with hard coded syncpt increments from bootloader Bug 1305024 Change-Id: I02fdfd81d62d215cbb98f4b3f2695bd745fe2402 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/381954 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-18video: tegra: host: remove unused functionShridhar Rasal
nvhost_syncpt_read_ext is replaced by nvhost_syncpt_read_ext_check So removing un-used function Bug 1469913 Change-Id: Ibf2194cacf73f71573024ff737466f56c946b226 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/382926 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Sachin Nikam <snikam@nvidia.com>
2014-03-17video: tegra: host: add syncpt_read_ext_check protoShridhar Rasal
- add new prototype nvhost_syncpt_read_ext_check to differenciate between error and return value. - add new func to read syncpoint val and for error check Bug 1469913 Change-Id: Icd13a741992154177eedcd71e6e65f80025ab03f Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/375431 Reviewed-by: Jon Mayo <jmayo@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-03-07video: tegra: host: gk20a: Implement debug ifaceArto Merilainen
This patch adds debug interface implementation inside gk20a. As part of the process, this patch separates debug dump facilities from the nvhost driver. Bug 1468086 Change-Id: I8bb6eb90117e8f2fcda86d3936aafce9bc86b271 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/376650 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-02-25video: tegra: host: Revert dynamic syncpt patchesShridhar Rasal
With dynamic syncpoint allocation ap_systemsw fails intermittently for TN8. so reverting series of dynamic syncpoint patches. Bug 1305024 Bug 1467163 Revert "video: tegra: host: add pbdma syncpoint headers" commit 62efc18329c5da0e6dc90f088c145e1099213f20. Revert "video: tegra: host: print syncpt id in debug spew" commit c918cc4494008fe764e746142060d896436a1d3c. Revert "video: tegra: host: remove static from get_syncpt_name()" commit c098ce933738d892bbeba003ab35505c4b7d7951. Revert "video: tegra: host: remove unused variable" commit a4dad0592c95165e8366ebe939367a1ece2cb9b9. Revert "video: tegra: host: Hardcode AVP sync point" commit 8da84e56de66f20806cb706ee005f263ca5e213f. Revert "video: tegra: host: hard-code syncpts for t114" commit 410536f668a62d94603bc3287efaef3dcffb1226. Revert "video: tegra: host: remove static syncpt mappings" commit 4cee1d17b01019cc122acf21604d4f01ac6f7474. Revert "media: tegra_camera: use dynamic syncpts" commit eae55c8e4cbb65e3ed1a8c8ef8150d8a6ba938bf. Revert "video: tegra: dc: use dynamic syncpt" commit 03d7c261ceb62bf1eb93cae48aaa84881d6de5b9. Revert "video: tegra: host: use dynamic syncpt for hwctx" commit 03136f549f54a26d77987f3751bf12d202614372. Revert "video: tegra: host: implement dynamic synpt" commit 6c2d1b43e51f2e0424b793c9da1c25adf63ea569. Change-Id: I19a63e812680b7521bed3c1188858b2165a88c89 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/374169 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-02-24video: tegra: host: move AS device nodeShridhar Rasal
To make dynamic channel mapping easier, moving address space node to nvhost_device_data. Bug 1259844 Change-Id: I36f30e97441d26216c5536bb2bc160a9d9afc3d7 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/367105 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-02-20video: tegra: host: Remove ext_stat from scalingArto Merilainen
This far we have delivered minimum frequency, maximum frequency and the last event type in private_data field for the governor. All these fields are already available in some other format so it makes no sense to duplicate this information. This patch makes necessary modifications to remove dependency to ext_stat structure. Bug 1454499 Change-Id: I076aaeb0b9204b810f345ab03b648e238cdab3ff Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/365422 Reviewed-by: Hiroshi Doyu <hdoyu@nvidia.com> Tested-by: Hiroshi Doyu <hdoyu@nvidia.com>
2014-02-19video: tegra: host: Remove dbg_node and prof_nodeLauri Peltonen
nvhost never creates these nodes, the gk20a does internally. Bug 1434573 Change-Id: I8dc48287b2d1cd150ae78b30aaf225fcdf9fdb31 Signed-off-by: Lauri Peltonen <lpeltonen@nvidia.com> Reviewed-on: http://git-master/r/353300 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-by: Hiroshi Doyu <hdoyu@nvidia.com> Tested-by: Hiroshi Doyu <hdoyu@nvidia.com>
2014-02-17video: tegra: host: remove unused variableDeepak Nibade
Variable 'syncpt_base' (per device syncpt base) in struct nvhost_device_data is now unused since we moved to dynamic syncpt assignment. Hence remove it. Bug 1305024 Change-Id: I57e77da5867b14db3e5f768215400513bf12b452 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/368273 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Sachin Nikam <snikam@nvidia.com>
2014-02-16video: tegra: host: Hardcode AVP sync pointTerje Bergstrom
Return AVP sync point as hard coded. Bug 1305024 Change-Id: I727c896ac97d7a6e7a527dc18f1de86a87f169e3 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/368075 Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Tested-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2014-02-13video: tegra: host: hard-code syncpts for t114Deepak Nibade
- hard code syncpts for gr3d, gr2d and syncpt no. 17 for T114 - this is to maintain user space dependency on hard-coded syncpts - syncpt no. 17 is wrongly used by some of the graphics tests which require this syncpt to be reserved as client_managed syncpt - keep this hard-coded part for t114 under #ifdef CONFIG_ARCH_TEGRA_11x_SOC Bug 1305024 Change-Id: I08eeb0acb6c85569f354c0233cc127362b4c0d8d Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/365977 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-02-13video: tegra: host: remove static syncpt mappingsDeepak Nibade
remove static mappings of syncpt ids, syncpt names, and client managed syncpts Bug 1305024 Change-Id: Ie457462e621e1fb39b484872fcf7556824fedc67 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/360966 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-02-13video: tegra: host: implement dynamic synptDeepak Nibade
- implement dynamic syncpoint assignment framework - provide API nvhost_get_syncpt_client_managed() to get client managed syncpt which is requested by display, avp, and tegra_camera drivers - provide API nvhost_get_syncpt_host_managed() for host managed syncpts - this API is used by host1x clients and gpu - provide API nvhost_free_syncpt() to free a syncpt - both client managed and host managed APIs call nvhost_get_syncpt() to find a free syncpt and reserve it - remove static syncpt mappings from nvhost_device_data of all clients - keep VBLANK syncpts hard-coded until we resolve the conflicts with hard coded syncpt increments from bootloader Bug 1305024 Change-Id: I403aa3f246de190707764fcac6ae295ff5f738f0 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/360963 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-02-06video: tegra: host: Survive failing pm_runtime_get_syncTerje Bergstrom
Do not crash if pm_runtime_get_sync() fails. Change-Id: Ifb1e271fc7ccc22f3679d9643eab77506c0f9fbc Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/363789
2014-02-04video: tegra: host: QoS triggers postscaleArto Merilainen
For some devices we use QoS to define the minimum required frequency. As this mechanism bypasses totally devfreq and the usual device profile, we need to trigger postscale callback also in these cases to ensure that i.e. EMC is scaled correctly at the same time. Bug 1441874 Change-Id: I33545101157b015db240bfe9bb8a5c404469803c Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/362487 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-02-04video: tegra: host: move client device nodeShridhar Rasal
For dynamic channel mapping, when ref_count is zero, it is unclear to which device channel maps to. So moving channel device node to nvhost_device_data from nvhost_channel. Bug 1259844 Change-Id: I402d0b6ac4dcf72260f94e5ed387174fcfe0d2ab Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/360061 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2014-01-30video: tegra: host: Export nvhost_vpr_info_fetch()Hiroshi Doyu
Introduce a new function to let gk20a fetch VRP info. Bug 1409861 Change-Id: I6151d3439d22c0460fedfa7b5083beb1bf684580 Signed-off-by: Hiroshi Doyu <hdoyu@nvidia.com> Signed-off-by: Vandana Salve <vsalve@nvidia.com> Reviewed-on: http://git-master/r/353277
2013-12-18video: tegra: host: Use host1x_readl/writelTerje Bergstrom
Introduce one set of functions to read/write host1x and host1x client registers, and remove redundant ones. Change-Id: I42ac706ec6c6f030175d0ee1d6a343ccaa7b7143 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/345613
2013-12-17video: tegra: host: fix gk20a error handlingKirill Artamonov
Implement handling for gk20a semaphore_timeout, illegal_notify. Report correct gk20a error codes to userspace drivers using error notification interface. Remove incorrectly done engine reset from non-mmu error handlers. These errors already trigger mmu fault and engine reset is part of mmu fault recovery. Don't skip reset if gk20a_gr_isr() handles several interrupt flags. bug 1402282 bug 1355640 Signed-off-by: Kirill Artamonov <kartamonov@nvidia.com> Change-Id: I622a26ccd1fb5efd1344083e3c1ffc0a79d7f8e4 Reviewed-on: http://git-master/r/336286 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2013-12-03video: tegra: host: add kernel sync_fence i/fRakesh Iyer
Add support for sync_fence interface for kernel modules. Bug 1356564. Change-Id: I851ac2e8abcc29d512ce4caf52ece502832f8742 Signed-off-by: Rakesh Iyer <riyer@nvidia.com> Reviewed-on: http://git-master/r/336298 Reviewed-by: Jon Mayo <jmayo@nvidia.com> Tested-by: Jon Mayo <jmayo@nvidia.com>
2013-10-30video: tegra: host: Initialize as only for GPUTerje Bergstrom
Create as devices only for units that support as. At the moment that is only gk20a. Bug 1389581 Change-Id: I7e6f9fbdf2ce1fb35cb07cd6c4c46a85247914e8 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/304717 Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com> Tested-by: Juha Tukkinen <jtukkinen@nvidia.com>
2013-10-23video: tegra: host: add slave_initialized flagBryan Wu
A slave platform_device will be registered when we initialize the master device. But if modprobe to init master device again, it will try to initialize slave platform device again then oops happens. And if we registered a platform_device in kernel, we normally don't release it. So introduce a flag of nvhost_device_data to indicate the status of slave and skip the slave init. Bug 1377330 Change-Id: Ia4dfe6f8046952e2642343d23e39a14b6eb021b4 Signed-off-by: Bryan Wu <pengw@nvidia.com> Reviewed-on: http://git-master/r/289326 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
2013-10-20video: tegra: host: Implement error notificationKirill Artamonov
Implement interface to pass gk20a error notification to userspace. bug 1297417 bug 1232244 Change-Id: If271a6f9c464e7b558de119d9746a7382d09fd62 Signed-off-by: Kirill Artamonov <kartamonov@nvidia.com> Reviewed-on: http://git-master/r/299476 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
2013-10-14video: tegra: host: Clock gate keepalive deviceTerje Bergstrom
Change behavior of keepalive to allow clock gating, but prevent power/rail gating. Change-Id: Ia3e832daad77a0049992374a4e3cfe9f87cce663 Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/288828 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>
2013-10-03video: tegra: gk20a profiler interfaceKen Adams
Framework for gk20a gpu profiler interface. Bug 1228597 Change-Id: Id34614d59193e81c9f8ab9ed8ae173b38de71bb7 Signed-off-by: Ken Adams <kadams@nvidia.com> (cherry picked from commit 9ff625237d1615f2b99c49e0f7b06f9f18e8b615) Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
2013-10-03video: tegra: host: Add a flag to mark 3d EDP devArto Merilainen
We used actmon property to indicate whether the current device is the gpu for edp. However, this is now incorrect as both VIC and MSENC have actmons and gk20a has no actmon. This patch adds a separate flag to indicate that the device should be used as a GPU EDP device. Change-Id: I0c8c5cfc215788b923c4f9b20b7afed8f2d44129 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/280182 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Tested-by: Terje Bergstrom <tbergstrom@nvidia.com> (cherry picked from commit ce45f8227377693388bb0a8cff1eef9a3c6cba2c) Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
2013-10-03misc: tegra-throughput: Use notifiersArto Merilainen
We used to deliver this information by calling directly a function inside nvhost_pod. This is not suitable for our needs as we want to be able to use the same governor with several different (graphics) devices in the same system. This patch modifies tegra-throughput to use notifier chain for delivering information about changed throughput hint. Bug 1364804 Change-Id: Ifce1c84ae68cdcf54b00402efa80aee0b220bc9e Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> (cherry picked from commit 9f10cf7082055f81c201ab5f5574c2f8fe8c6795) Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
2013-10-03video: tegra: host: Support linear EMC scalingArto Merilainen
Some units have strict linear relationship between unit clock and required memory bandwidth, however, currently automatic EMC relationship computation expects a non-linear relationship. This patch adds a flag to nvhost device data to indicate if the EMC should be scaled based using linear relationship. Bug 1364804 Change-Id: I68fbb06de33fdeeb1c0e3c6b1db1f69c99e0e14e Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> (cherry picked from commit 9897a5854b24a48d0acace8e4371cdefa44253a4) Signed-off-by: Ajay Nandakumar <anandakumarm@nvidia.com>
2013-09-27video: tegra: host: module debugger frameworkKen Adams
Framework and implementation of a gk20a debugger/profiler session interface. Adds work toward optimized handling of context patch write sequences. These introduce cpu map/unmap operations and gpu l2 invaliates. Unless we take care to coalesce them they occur *per write*. Change-Id: I8afc11a6f6782b80996404acbd01bffe9653ebdd Signed-off-by: Ken Adams <kadams@nvidia.com> Reviewed-on: http://git-master/r/274416
2013-09-16video: tegra: host: Alloc iomem before module initTerje Bergstrom
Allocate and request IOMEM resources for all clients before calling nvhost_module_init(). Also moves setting of callbacks to the SoC specific file. Bug 1355069 Change-Id: Ic7483dba969be8e5e985d5abbba11393afdc2a2d Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/271960 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com>