summaryrefslogtreecommitdiffstats
path: root/include/linux/nvhost.h
Commit message (Collapse)AuthorAge
* video: tegra: host: LS fw gets priority in get fwAnkit Patel2021-08-02
| | | | | | | | | | | | | | | | Whenever NVDEC LS firmware pack for the soc, It will give priority to LS FW rather than NS FW. If in case of absence of LS FW It will load NS FW. Bug 200415909 Bug 200704321 Signed-off-by: Ankit Patel <anpatel@nvidia.com> Change-Id: I15f53f33d4735c25b972e1e8a394d01047f86bde Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2375549 Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2511966 Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: add freq. capping capabilityLeon Yu2020-02-07
| | | | | | | | | | | | | | | | | | | | | | | This change adds sysfs interface under acm for capping frequencies of host1x clients. It is to replace existing nvpmodel kernel driver which serves same purpose but does this in an unreliable/wrong way - bypassing host1x and grabbing parent clock handle of clients directly. With this functionality, things are put under host1x acm control and we gain more finely grained control in some cases, e.g. setting freq. cap independently for dla0 and dla1. Bug 200585348 Bug 200521935 Change-Id: I34445df1abc3656138cfde06c23ea5a4c8694d07 Signed-off-by: Leon Yu <leoyu@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2288876 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> GVS: Gerrit_Virtual_Submit
* tegra: host: t210: use per device policyKen Chang2020-01-08
| | | | | | | | | | | | | | | | | | | MLOCK feature in T210 host1x is not supported so change the resource policy for each engine to 'RESOURCE_PER_DEVICE' to serialize the taks from applications through a single channel to each hardware engine. This is with an exception on tsec which is using single channel operation. Bug 2550468 Change-Id: I166b8af286461a13e543f1da7495c34abc948241 Signed-off-by: Ken Chang <kenc@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2152237 (cherry picked from commit ff20edb0674dd9083395327a529e8674f3f70410) Reviewed-on: https://git-master.nvidia.com/r/2226976 GVS: Gerrit_Virtual_Submit Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: update T186 VIC actmon driverAaron Tian2019-10-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modify T186/T210 VIC actmon driver and wmark_active governor to address the following issues: 1. To let VIC actmon reports accurate VIC active cycle counts, set static WEIGHT_COUNT in both VIC actmon and VIC IP block. It ensures VIC actmon can capture all activity signal toggle event from VIC. The value of WEIGHT_COUNT are equal to: 4 * (max VIC freq / VIC_actmon freq) = 4 * (1024 / 19.2) ~= 213 2. Since VIC actmon reports active "VIC clock cycle" instead of "VIC actmon clock cycle", "relative loading translation" should consider current VIC clock freq. E.g., - sample_period = 80 us, VIC freq = 115.2 Mhz - 9216 cycles represents 100% loading (115.2 * 80) 3. Update upper/lower wmark settings after VIC clock scaled completed, to ensure wmark settings are equil to 0 ~ 100% loading of current freq. - Register 'get_dev_status' instance in devfreq_dev_profile, to let wmark active governor can query current device freq. - Register devfreq transition notifier in wmark_active governor. It will query current device freq. and update corresponding wmark value after VIC freq. changed. Bug 200501949 Change-Id: Ic159eb93fddc37d55b0c9649a3afcb50ed82cac2 Signed-off-by: Aaron Tian <atian@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2200520 GVS: Gerrit_Virtual_Submit Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: Set DMA masksMikko Perttunen2019-07-03
| | | | | | | | | | | | | | | | | | Set DMA masks for host1x, engines, and context devices as per the following to support over 32 bits of address space: - T210: 34 bits - T186: 40 bits - T194: 40 bits Bug 200527850 Change-Id: I1e7495bbf90a2928c17c06c2728640a036f843d7 Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Puneet Saxena <puneets@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2139215 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: nvdla, pva: add task information to fencesDmitry Antipov2019-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For NSys, we're interested in having detailed information on what task waits on a particular prefence or requests a particular postfence. This is implemented by adding two extra fields, 'task_syncpt_id' and 'task_syncpt_thresh' to 'struct nvhost_task_fence', to record the task this particular fence is associated with. To avoid race conditon in pva_submit (similar to what was fixed in 0c2065fd669926536f79fd9e8ec33f33cbdcae2e), PVA task memory management is changed to use simple kref-based scheme, much like it's done in DLA. Finally, this patch renames syncpoint fields of 'task_fence' to 'syncpt_id' and 'syncpt_thresh' to match the same field names in other events, which is intended to simplify Python scripting. JIRA DTSP-1662 JIRA DTSP-682 Bug 2568514 Signed-off-by: Dmitry Antipov <dantipov@nvidia.com> Change-Id: I4c55efcae15eb80a0d950882d6ff6e5ac706ab20 Reviewed-on: https://git-master.nvidia.com/r/1978175 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com> Reviewed-by: Shridhar Rasal <srasal@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2099982 Reviewed-by: Mitch Harwell <mharwell@nvidia.com> Tested-by: Mitch Harwell <mharwell@nvidia.com>
* eventlib: unify NVDLA/PVA fence types and add fence recordingDmitry Antipov2018-08-28
| | | | | | | | | | | | | | Bug 2170736 Change-Id: If4fdeda140bf2474a08beb2a0d7c3fc1737a1a66 Signed-off-by: Dmitry Antipov <dantipov@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1750906 Reviewed-by: Saleh Dindar <sdindar@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Colin Tracey <ctracey@nvidia.com> Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: vhost: support camera enginesDamian Halas2018-08-15
| | | | | | | | | | | | | | | | | | | | | | Add support for virtual isp, vi, nvcsi engines on t194. The guest driver will not access those engines directly. They will be powered up by rmserver upon guest connecting. Access to engines' functionality will depend on RCE. Also, merge nvhost_ioctl_t194.h to nvhost_ioctl.h to avoid inconsecutive list of ids. JIRA EVLR-2589 JIRA EVLR-2479 JIRA EVLR-2591 Change-Id: Ib78b1d43f69b37606f5c2c378cb0547bb05f282f Signed-off-by: Damian Halas <dhalas@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1761945 GVS: Gerrit_Virtual_Submit Reviewed-by: Nirav Patel <nipatel@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: enumerate pva and dla from 0Damian Halas2018-06-15
| | | | | | | | | | | | | | | | | Even if pva0 or dla0 is disabled in the device tree the dev nodes for pva1 and dla1 should be enumerated from 0. To achieve this the patch introduces families of engines and dynamically creates proper devfs_name for them. JIRA VFND-4904 Change-Id: I3c69381f212024cf9d6cb5af8c104f3ca5392863 Signed-off-by: Damian Halas <dhalas@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1743013 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: eventlib support for falconsSrikar Srimath Tirumala2018-06-15
| | | | | | | | | | | | | | | | | | | | | * Replace the VIC method for timestamp logging with generic falcon timestamping method. * Expose the new falcon timestamping method to other falcon cores. * Enable task timestamping for nvenc. Bug 200312229 JIRA HOSTX-336 JIRA HOSTX-337 Change-Id: I6724f47db0cfca2fc962a7a479a1c370f37c2e31 Signed-off-by: Srikar Srimath Tirumala <srikars@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1736581 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* host: vi: se: dc: remove bond-out checkBo Yan2018-06-08
| | | | | | | | | | | | | | bondout check is deprecated. remove it. bug 200416208 Change-Id: I16c0eedc99a9ea8add92b177dad431c90415ef90 Signed-off-by: Bo Yan <byan@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1741739 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: Remove clamping codeMikko Perttunen2018-02-27
| | | | | | | | | | | | | Remove both module clamping and CV cluster clamping code, as these operations are now performed by the BPMP firmware. Jira HOSTX-328 Change-Id: I5ea4d3483a29a65ca6fb2ab252c6e969387f20f4 Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1645319 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: clean-up include listTimo Alho2018-02-15
| | | | | | | | | | | | | | | Nothing from include file <linux/fence.h> is used by the code. Just remove it. Change-Id: I0981faf90ee6a73d00546c16d94d6cac142f58ac Signed-off-by: Timo Alho <talho@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1657412 Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> GVS: Gerrit_Virtual_Submit Tested-by: Bitan Biswas <bbiswas@nvidia.com> Reviewed-by: Bitan Biswas <bbiswas@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: Support delivering task timestamps to TSPMikko Perttunen2018-02-02
| | | | | | | | | | | | | | Falcons can measure accurate begin and end timestamps of their task execution. Capture these timestamps and deliver them using keventlib. Jira HOSTX-317 Change-Id: Ie13a4ef4975fa68ba0e02ab7dca5cfc6d989867a Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1639103 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: Capture missing eventlib infoArto Merilainen2018-01-25
| | | | | | | | | | | | | | | | | This change modifies task submission to correctly include the timestamp as part of the eventlib submit event. Bug 1996639 Change-Id: I83b6620a81ab7a9416d78c77aa80fcb165997b60 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1606289 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: Rework eventlib eventsArto Merilainen2017-12-05
| | | | | | | | | | | | | | | | This change updates eventlib events to follow the requested format: - An event is generated as part of submission - Rather than using "START" in the event identifier, the code uses "BEGIN" Bug 1996639 Change-Id: I5afc31332b0121a2287eda07f77d86304a0ba6ac Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1610037 GVS: Gerrit_Virtual_Submit Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
* video: tegra: host: Provide common falcon ISRIvan Raul Guadarrama2017-11-09
| | | | | | | | | | | | | | | | | | | | | | | | - Provide a common ISR handler for falcon based devices. This ISR prints the falcon IRQ status register, and the contents of both mailbox registers. - This common ISR also includes an "ISR handled" programming sequence, which clears the SWGEN0 status bit when after the interrupt has been processed. - Selectively setup the falcon interrupts. This is controlled by the new self_config_flcn_isr field in the nvhost_device_data struct. - Enable the common ISR handler for VIC T186. Bug 1800927 Change-Id: I9a7952ad22bf3095b4510745181bdc4990f2c156 Signed-off-by: Ivan Raul Guadarrama <iguadarrama@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1514704 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: Fix up cluster power clampsSai Gurrappadi2017-10-24
| | | | | | | | | | | | | | | | | | | | | | Some host1x clients require cluster power clamps to be applied before executing any cluster wide power sequences (eg: railgating). Currently this is implemented by client modules via pre_poweron() and prepare_poweroff(). However, things end up breaking badly if the finalize_poweron() calls for the client fail. The subsequent error paths can end up causing mismatches in the cluster clamp ref counts. Fix this by implementing cluster power clamp support explicitly in nvhost. All clamp operations therefore remain in sync. Bug 200352108 Change-Id: I70f47ed33814f25b81f17045248954468e929c73 Signed-off-by: Sai Gurrappadi <sgurrappadi@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1572791 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: read reg resources by nameAparna Das2017-10-24
| | | | | | | | | | | | | | | Implement capability to get host1x reg resources from device tree by name instead of index since index for a resource can vary between native and virtualized configurations. Jira EVLR-1571 Change-Id: I0e287e5f41af307f3503220243e6cfcd60d29d5e Signed-off-by: Aparna Das <aparnad@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1533437 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: Add eventlib supportArto Merilainen2017-10-19
| | | | | | | | | | | | | This change adds support for eventlib completion events. Eventlib is a library that is intended to interface with Tegra System Profiler to deliver information about e.g. task start and completion events. Bug 1996639 Change-Id: Ia5efcfb7ce54b7ee7822d6d5a153369b5a4ae535 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1580285 Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
* video: tegra: host: Platform specific dma mappingSai Gurrappadi2017-09-14
| | | | | | | | | | | | | | | | | Add support to let platforms override the dma data direction when mapping reloc buffers. JIRA HOSTX-265 Change-Id: I3cf7b7d48284fd0d17ab17d0b33f8c0dd86e098a Signed-off-by: Sai Gurrappadi <sgurrappadi@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1544507 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Adeel Raza <araza@nvidia.com>
* video: tegra: host: Expose pre_poweron hookSai Gurrappadi2017-08-16
| | | | | | | | | | | | | Some client modules require to run module specific code before the module reset is asserted. To that end, expose a hook to run pre_poweron code. Jira HOSTX-194 Change-Id: Icf670a8ab6b8a01536fba8407b0c101e3d49e0a4 Signed-off-by: Sai Gurrappadi <sgurrappadi@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1520242 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: export API to get syncpt refDeepak Nibade2017-07-12
| | | | | | | | | | | | | | | | Add and export new API nvhost_syncpt_get_ref_ext() to get a refcount on syncpoint Bug 200320822 Jira HOSTX-238 Change-Id: Ie86adc416ae4acf67879ee694f7a5e509bcaf47e Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: https://git-master/r/1513860 (cherry picked from commit 426efe1ade0b0faf3306ef99291159bdac6de96e) Reviewed-on: https://git-master.nvidia.com/r/1516641 GVS: Gerrit_Virtual_Submit Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
* video: tegra: host: add APIs to force idle moduleDeepak Nibade2017-06-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add below generic APIs to force a module into idle/powergated state : nvhost_module_do_idle() nvhost_module_do_unidle() Add below specific APIs for nvdec. These APIs will use device tree to get pointer to nvdec's platform device, and then use generic APIs nvdec_do_idle() nvdec_do_unidle() nvhost_module_do_idle() steps : - block all the work going to module by taking write semaphore at the beginning (read semaphore is acquired in nvhost_module_busy() which blocks new jobs) - check if module is already runtime suspended - if not, grab a runtime reference to prevent suspend in midst of sequence - wait until all other runtime references are dropped - once device is idle i.e. runtime refcount = 1, force idle by calling runtime_suspend API nvhost_module_do_unidle() steps : - if module was forced into idle, resuem it by calling runtime_resume API - put the extra refcount taken in do_idle() - release the write semaphore and unblock all queued tasks Jira HOSTX-215 Change-Id: I430e72769d8442680ce23b52ffebcaf47292bc81 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1488678 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
* video: tegra: host: Use pm_runtime_force_{suspend,resume}Mikko Perttunen2017-05-30
| | | | | | | | | | | | These functions now essentially do the same thing that was done in the hand-written implementations. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Change-Id: I852f4a6b723159b90440640b6bdcee3132b92002 Reviewed-on: http://git-master/r/1487034 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: Clamp modules across resetSai Gurrappadi2017-05-23
| | | | | | | | | | | | | | | | | On T194, SW needs to clamp the signals between host1x and the client module when the client goes through a reset sequence to prevent meta-stability of the signals between host1x and the client. Add some support that allows the clamp to be set/cleared across a module reset. Jira HOSTX-208 Change-Id: Ia58964d20ffd65299490f1dfbd788d661efa5180 Signed-off-by: Sai Gurrappadi <sgurrappadi@nvidia.com> Reviewed-on: http://git-master/r/1476616 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: add suspend/resume callbacks for modulesDeepak Nibade2017-05-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently if module is active during system/device suspend, we could see syncpoint timeouts since we disable interrupts as part Host1x suspend routine To avoid this, add below suspend/resume callbacks for modules nvhost_module_suspend() nvhost_module_resume() Suspend callback returns EBUSY if module is still active It will return success if module is already off If not, suspend will just trigger runtime_suspend routine Resume should runtime_resume module only if suspend callback called runtime_suspend Bug 200306258 Change-Id: Ic12158353305ed4b9d2903fea3f2d3adbfaed2c3 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1480685 (cherry picked from commit 264667f5f4354cfa0408d9628444077a4038aa43) Reviewed-on: http://git-master/r/1482794 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
* video: tegra: host: Separate power domain provider from ACMMikko Perttunen2017-04-12
| | | | | | | | | | | | | | | | | Move code handling nvhost power domains from ACM to a separate file, and remove powergating dependencies from ACM. This allows use of other powerdomain providers for Host1x units (except on T210 where the nvhost provider is still required for the SLCG MBIST workaround). Jira HOSTX-183 Change-Id: I2715f4061cad968307526391778338e564abd595 Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-on: http://git-master/r/1312588 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
* video: tegra: host: Disable CSI clock scaling from VIArto Merilainen2017-02-14
| | | | | | | | | | | | | | | | | | | | | | Due to hardware dependencies CSI clock is used both from VI and CSI devices. Since also scaling is enabled for both nodes, activity (e.g. closing the device node) may affect also to CSI frequency. This leads to misbheavior where CSI clock has too high frequency compared to VI clock thereby causing failures in some use cases. This change adds a flag for disabling clock scaling of individual clocks and disables CSI clock scaling from VI node. Bug 200239357 Change-Id: Id2d0baf1df7f17ad717cb74d25424622f9e802c7 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/1302683 Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> Reviewed-by: Mika Liljeberg <mliljeberg@nvidia.com> Tested-by: Mika Liljeberg <mliljeberg@nvidia.com> Reviewed-by: Deepak Nibade <dnibade@nvidia.com> GVS: Gerrit_Virtual_Submit
* video: tegra: host: Refactor power domain supportMikko Perttunen2017-01-25
| | | | | | | | | | | | | | | | | | | | | | | | Refactor generic power domain support in nvhost by separating power domain data from device data. Power domains managed by nvhost now store their data in a separately allocated struct (nvhost_pm_domain) that contains a struct generic_pm_domain instead of shoehorning data into a nondeterministic device data structure of one of its contained units. At the same time, remove nvhost_module_add_domain since it is mostly useless. The only use was applying wakeup capability for host1x; this functionality is now moved to the host1x driver itself. JIRA HOSTX-156 Bug 1852328 Change-Id: I9f3847b884e26d774609c9f576447c1dd8fecbd6 Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-on: http://git-master/r/1284186 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: add set min_val apiArun Kannan2017-01-23
| | | | | | | | | | | | | | Function to set min_val and update hardware reg. Bug 1854001 Change-Id: I48b25f6767b881e98fb6031dfab547d80acc0b1a Signed-off-by: Arun Kannan <akannan@nvidia.com> Reviewed-on: http://git-master/r/1280376 Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-by: svccoveritychecker <svccoveritychecker@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Mitch Luban <mluban@nvidia.com>
* video: tegra: host: Support shift in VM HWIDArto Merilainen2016-12-05
| | | | | | | | | | | | | | Currently we assume that all hwids are written "as is" into the VMID register. This change adds shift field to allow left-shifting the value prior writing. JIRA PVA-232 Change-Id: I884314f365cfdfa6ca12c2aa74379c886ab5d4ee Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/1252329 Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
* video: tegra: host: flcn: fix false interruptAmit Sharma (SW-Tegra)2016-11-29
| | | | | | | | | | | | | | | | | | | | | | | | | | On VDK, flcn_isr is receiving an extra false interrupt. Due to which nvhost_nvdla_flcn_isr() finds a invalid response message '0' with mailbox [0x0]. This change does following to fix the issue: - Add a host1x_readl() on THI status reg: this helps to clear the interrupt and fix spurious interrupt issue. - Also, use spinlock for module ISR to avoid any race condition in critical section. JIRA DLA-165 Change-Id: I3f8d0c8c1eb183cb4d646f6be6119dbca43aa865 Signed-off-by: Amit Sharma (SW-Tegra) <amisharma@nvidia.com> Reviewed-on: http://git-master/r/1258822 Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: Gagan Grover <ggrover@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
* include: linux: nvhost: Syncpt unit interfaceArto Merilainen2016-10-13
| | | | | | | | | | | | | | This patch adds a new variable for storing syncpoint unit interface specific structures. JIRA HOSTX-43 Change-Id: Ib8b483fddd7a0d85e604e077ac5131a422f370b9 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/1233721 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
* video: tegra: host: Replace clockgate and powergate delaysMikko Perttunen2016-08-11
| | | | | | | | | | | | | | | | | | After commit "video: tegra: host: Simplify power management by merging steps" clock gating and power gating are merged into one step, so two separate delays make no sense anymore. Replace these by one variable, autosuspend_delay, and populate it with units' prior powergate_delay value. JIRA HOSTX-98 Change-Id: Ib22860f9481f2a02641305c1c956267482dc8a0e Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Reviewed-on: http://git-master/r/1190248 GVS: Gerrit_Virtual_Submit Reviewed-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
* video: tegra: host: support setting reloc typesDeepak Nibade2016-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support to set reloc types for each relocation Add a structure nvhost_reloc_type to pass reloc type data from user space Support below types for now : NVHOST_RELOC_TYPE_DEFAULT NVHOST_RELOC_TYPE_PITCH_LINEAR NVHOST_RELOC_TYPE_BLOCK_LINEAR Support passing address of array of nvhost_reloc_type in submit arguments nvhost_submit_args In job submit path, copy this array into job structure. In do_relocs() call platform specific get_reloc_phys_addr() which will accept relocation address and reloc type, and then return appropriate relocation address Use this new address to patch the relocations Jira HOSTX-36 Change-Id: I02b610a5578c39f22d6ab30f12a0743675c5c631 Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1176978 Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
* video: tegra: host: add module intr enable supportShridhar Rasal2016-07-11
| | | | | | | | | | | | | - add support to enable module interrupt for falcon based clients Jira HOSTX-61 Change-Id: I897c04d4de8f1f7570023ce7745f760b48297bd7 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/1174797 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
* video: tegra: host: use falcon_data to falcon infoShridhar Rasal2016-07-01
| | | | | | | | | | | | | | - use 'private_data' of device data is ambiguous for holding falcon struct. - add new placeholder 'falcon_data' for it. Change-Id: I21d3043c0da07e673da2b15937504e78af0fdc46 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/1173090 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Gagan Grover <ggrover@nvidia.com> Reviewed-by: Prashant Gaikwad <pgaikwad@nvidia.com> Reviewed-by: Deepak Nibade <dnibade@nvidia.com>
* video: tegra: host: add mlock_timeout to nvhost_device_infoDamian Halas2016-06-15
| | | | | | | | | | | | Bug 200201860 Change-Id: I8cc6a6094b3c86d98ed0867d889eb9a5fd7409dc Signed-off-by: Damian Halas <dhalas@nvidia.com> Reviewed-on: http://git-master/r/1159713 (cherry picked from commit fa012f070deacacf3199139ee2cddbcd069735d1) Reviewed-on: http://git-master/r/1163512 Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Tested-by: Arto Merilainen <amerilainen@nvidia.com>
* video: tegra: host: support falcon intrruptShridhar Rasal2016-06-13
| | | | | | | | | | | | | | | | | | | | | - For facon based engine, add support for interrupt from falcon. - request irq only if flcn_isr is set. - enable and disable irq from PM calls. - in ISR, to clear interrupt: 1. set bit 6 and bit 7 of FALCON_IRQSSCLR to clear the SWGEN0 and SWGEN1 interrupt 2. set bit 0 of THI_INT_STATUS bit 0 to clear THI interrupt status Jira DLA-45 Jira HOSTX-61 Change-Id: I129ff5982cffa32004bbc0344a2bd031a67f208b Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Signed-off-by: Prashant Gaikwad <pgaikwad@nvidia.com> Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/1162694 GVS: Gerrit_Virtual_Submit Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
* video: tegra: host: implement channel_abort() during closeDeepak Nibade2016-05-11
| | | | | | | | | | | | | | | | | Call API nvhost_channel_abort() when a channel is closed and when support_abort_on_close flag is set in nvhost_device_data This API will first check if channel is mapped into context, and if it is mapped it will trigger timeout routine to clean up the channel job queue Bug 1695878 Change-Id: Id0f6c2a10005d8e8db5a5ab98d8612e1678c9d8e Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1130339 Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Tested-by: Arto Merilainen <amerilainen@nvidia.com>
* video: tegra: host: Allow disabling dev nodesArto Merilainen2016-05-10
| | | | | | | | | | | | | | | | | | Some of the devices use only in-kernel APIs for using the device and the control to the hardware should not be exposed to the userspace. This patch adds support to disable creation of the nvhost-* device nodes. JAMA PVA-16 Change-Id: I0acaf0c9507dab4e1c96805c3c3a05b55cccd6e8 Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/1143640 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Shridhar Rasal <srasal@nvidia.com>
* video: tegra: host: store data pointer for debug_dump_device callbackDeepak Nibade2016-04-15
| | | | | | | | | | | | | | | | | We currently call pdata->debug_dump_device() with NULL argument Instead of this, accept a void * arguement while registering the callback, and use this data as argument to callback Bug 200188753 Change-Id: I974f085c3393585a3dd5045b9e8fcf56c50778cb Signed-off-by: Deepak Nibade <dnibade@nvidia.com> Reviewed-on: http://git-master/r/1126796 GVS: Gerrit_Virtual_Submit Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
* video: tegra: host: Change type of nvgpu dump deviceTerje Bergstrom2016-04-08
| | | | | | | | | | | | | | | | Change data type of nvgpu dump device to void *. In nvgpu we're moving to using struct device instead of struct platform_device to add PCIe support, so we cannot pass a platform_device anymore. Also, as nvhost considers this parameter opaque and just passes it to callback, change this to void *. Change-Id: I38aac412078a3750d5222a0e05190b4947f0febe Signed-off-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-on: http://git-master/r/1121972 Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com> Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-by: Konsta Holtta <kholtta@nvidia.com> GVS: Gerrit_Virtual_Submit
* video:tegra: host:Fix compilation with CONFIG_DEBUG_FS disabledVishal Annapurve2016-03-29
| | | | | | | | | | | | | | This change fixes compilation issues with CONFIG_DEBUG_FS disabled Bug 1737085 Change-Id: I4c5e033973ba067fb7a3121d395125ee1b426290 Signed-off-by: Vishal Annapurve <vannapurve@nvidia.com> Reviewed-on: http://git-master/r/1024168 Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-by: Shridhar Rasal <srasal@nvidia.com> GVS: Gerrit_Virtual_Submit
* video: tegra: host: init devfreq governor for actmonShridhar Rasal2016-02-09
| | | | | | | | | | | - initialize and use devfreq governor only when actmon is enabled. - removes PMQoS unused notifier code Bug 200165367 Change-Id: I98777d114848d9ac04f6c2d524f4b6d7dac38a5d Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/936641
* video: tegra: host: get freq table by tuningShridhar Rasal2016-02-03
| | | | | | | | | | | | | | - if dvfs table is not available, get supported freq table by tunning in steps - Also increases size of freq table. Bug 200165367 Change-Id: Ic9df2732c3d5f769d0a06999aeb6d67bc83cd730 Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/936193 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Arto Merilainen <amerilainen@nvidia.com>
* video: tegra: host:Use master in sync_writel/readlGagan Grover2016-01-14
| | | | | | | | | | | | | | | | | | | | | | Originally host1x_sync_writel and host1x_sync_readl were taking platform device as an argument and then converting it to nvhost_master to get access to sync_aperture, which was causing more number of instructions execution and hence higher execution time (~5us). While, the calling functions directly have nvhost_master available. Passing nvhost_master directly to sync_readl/writel reduces the number of instructions and hence the execution time is reduced to < 1us (~ .5us). Bug 1650536 Change-Id: Id4e1b19d2ff9c51d19f5e659c13b95209ef34908 Signed-off-by: Gagan Grover <ggrover@nvidia.com> Reviewed-on: http://git-master/r/927643 (cherry-picked from commit 679d431d9b0aaac50934e57d7d65c4e33e1635f6) Reviewed-on: http://git-master/r/928374 Reviewed-by: Arto Merilainen <amerilainen@nvidia.com> Tested-by: Arto Merilainen <amerilainen@nvidia.com>
* video: tegra: host: Wrappers for upstream host1xArto Merilainen2015-11-19
| | | | | | | | | | | | This patch adds wrappers to use nvhost functions even if the upstream host1x driver was used. In this case the functions are re-routed to corresponding functions in the host1x driver. Bug 1698151 Change-Id: Id49ea78f925e9b14e54e67743cac42610b3ecbeb Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Reviewed-on: http://git-master/r/823638
* video: tegra: host: Support emc bandwidth managerArto Merilainen2015-10-23
| | | | | | | | | | | | | | | | | | This patch adds support for Tegra bandwidth manager. If the device has bandwidth manager configured and a clock has a bandwidth request type set, we use bandwidth manager for setting the rate. Bug 1675068 Bug 1675073 Bug 200131669 Bug 200131673 Change-Id: Ib3afeeeb157a6a7836f20147da5be08359bdc60d Signed-off-by: Arto Merilainen <amerilainen@nvidia.com> Signed-off-by: Shridhar Rasal <srasal@nvidia.com> Reviewed-on: http://git-master/r/812018 Signed-off-by: Seema Khowala <seemaj@nvidia.com> Reviewed-on: http://git-master/r/783981