Age | Commit message (Collapse) | Author |
|
are happening though a device connection on host port.
Currently for harmony, an intergrated SMSC hub present on USB3. Because
of this device connection is present on USB3 and USB power busy hints
are always on. To avoid this, for host by default busy hints are off and
USB busy hints will be on for :
1.Bulk and isochronus transfers
2.Interrupts transfers with buffer length >= 256.
Busy hint will be on for pre-defined amount of time
and after that busy hints will be off automatically.
With this in idle state power is reduced.
Tested on : Harmony
Enumeartion is happening fine.
LAN and USB HID devices are working fine
Change-Id: Ifd653bebfb52c7702f7d24bf11ccf93e62ea0f66
Reviewed-on: http://git-master/r/915
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
NvRm Gpio driver will be wrapper on the native gpio driver such that it
will provide the same existing api and implementation will be use the
native gpio driver. In this approach, it does not need to change the
existing gpio client driver.
Tested on whistler with sdcard insert/remove, touch panel and scroll wheel.
Tested on harmony with the suspend/resume.
Change-Id: I2fa98f8f62a111a1463c1e5b1034e145eaae42a3
Reviewed-on: http://git-master/r/851
Tested-by: Ramachandrudu Kandhala <rkandhala@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
- Remove using signal.
- fix bug 664864: unable to run LP1
- see also bug 642072: Power Aware NvRM Daemon
Change-Id: I952b8aa0aa4ea0c4c289fa1d20fc0bae3a98cac7
Reviewed-on: http://git-master/r/914
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Kaz Fukuoka <kfukuoka@nvidia.com>
|
|
Separated EMC frequency low corners for LPDDR2 and DDR2. For now, kept
both limits the same as common floor before (50MHz).
Change-Id: Ieaa238f78ceb5a7f4f238ffe78c576bb7d5840b1
Reviewed-on: http://git-master/r/906
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
USB host is getting enabled when the odm usb property is set to None.
During the system initialization host enable condition was not checked properly
when Odm USB mode property is set to "NvOdmUsbModeType_None". Due to the wrong
condition, host controller is turned on and consuming the power.
Bug 665409: [whistler/android/power] - USB power consumption has increased
Tested on AP20 whistler
Change-Id: I47622e1da6ca2c9edd107df9b5e6de3953260f5c
Reviewed-on: http://git-master/r/908
Tested-by: Dara Ramesh <dramesh@nvidia.com>
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Tested-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
Integarting SMSC v1.01.06.03 (03/18/2010) LAN driver to tegra.
This new version is a power aware driver and support suspend/resume
functionality.
Bug 635375 : [AP20 \ Android] SMSC Ethernet LAN(9514) 3rd Party driver
power management in Android
Tested on : Harmony
Change-Id: I112a8d9805f3ce6fed45999130c7c8004865bb98
Change-Id: I112a8d9805f3ce6fed45999130c7c8004865bb98
Reviewed-on: http://git-master/r/884
Reviewed-by: Narendra Damahe <ndamahe@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Implement suspend/resume functionality for the tegra-sdhci driver.
Call the sdhci_suspend/resume functions which handles the power off
and re-enumeration of sd memory cards. We ignore suspend/resume
requests for all sdio devices asssuming that the individual drivers
will manage their own power.
For tegra devices, the wifi driver implements its own early suspend
model and hence is ignored by the sdhci driver.
Change-Id: I5041d314123bac958da7775ee24bd2dc1be55ab5
Change-Id: I5041d314123bac958da7775ee24bd2dc1be55ab5
Reviewed-on: http://git-master/r/852
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: Rahul Bansal <rbansal@nvidia.com>
Tested-by: Rahul Bansal <rbansal@nvidia.com>
Reviewed-by: Venkata (Muni) Anda <vanda@nvidia.com>
|
|
- when mouse is not present or connected to board,
do not register the mouse driver with EC bus driver.
- Bug 663803
Change-Id: Iec11af103c4ab00a9d01e66969fceb6161cec1e2
Reviewed-on: http://git-master/r/862
Reviewed-by: Ninad Malwade <nmalwade@nvidia.com>
Tested-by: Ninad Malwade <nmalwade@nvidia.com>
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Tested-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
AP20 pop chip is not having USB3 ID pin. Currently both pop and
non-pop whistler are using same odm query with Idpin type
as "Cable Id". Since, it is not reflecting correct Id pin type for
pop, causing the issue.
With this change based on the board type, proper id pin type is
returned as part of usb odm query for USB3. Without ID pin dynamic
detection of devices is not possible, so host functionality is
disabled for USB3 on pop boards. With this change USB3 host is
working for non-pop modules and no hang is seen with pop modules.
Bug 655520 : [AP20/Android/Whistler]: Device hangs after connecting
USB devices(mouse/keyboard).
Tested on : whistler E1109 and whistlerE1008
Change-Id: I5cd67c54756666e58cbc778da2b1015df27c14c6
Reviewed-on: http://git-master/r/795
Reviewed-by: Narendra Damahe <ndamahe@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Enabling CONFIG_REGULATOR_TEGRA on whistler for USB charging support.
Bug 631316 USB charging support in Android
Tested on: whistler/Android
Change-Id: If13169d7bb7321cf1b2806c80966e1050e39fed0
Reviewed-on: http://git-master/r/840
Reviewed-by: Ramachandrudu Kandhala <rkandhala@nvidia.com>
Tested-by: Ramachandrudu Kandhala <rkandhala@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
Utilized local timers prescaler to keep input frequency at calibration
(boot) level while CPU clock is scaled by DVFS. The local timer tick is
lowered to 2.0MHz/1.5MHz on T20/AP20 (was 250MHz/187.5MHz respectively).
Still it is better than 1MHz used as a base for jiffies counting. The
LP2 dead time is not compensated by this commit, nevertheless it should
address bug 660382 (no LP2 during video playback).
Change-Id: I9fd0e1238afa4cf1b44339bf30c37a2a84e97ae9
Reviewed-on: http://git-master/r/865
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
For proper power behavior Android expects the display to be
turned off and on in the early_suspend stages instead of
as a part of the actual suspend sequence.
Add notifications for display on/off in the nvrm power
notification interface, and call them at appropriate times.
When CONFIG_HAS_EARLYSUSPEND is not defined, continue to
notify nvrm_daemon in the power manager suspend/resume calls.
Tabify & whitespace cleanup nvrm_user.c.
Change-Id: Ie0129e0a5812352e97c95c4f323928d907782dee
Reviewed-on: http://git-master/r/866
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
To get the ird data for the gpio pin irq, it should use the
get_irq_chip_data() in place of get_irq_data(). This is because
at the time of registration, the irq data is added as the chip irq
data.
Tested on whistler.
Change-Id: Ic80d0f05fa5490ee2ca876a750daa27135e681c9
Reviewed-on: http://git-master/r/849
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
add SMP memory barriers before atomic_read and after atomic_set to
ensure that any changes to the values are properly flushed so that
they are visible to all processors in the system, since neither
operator guarantees atomicity.
change the poison flag to be a non-zero value, so that zero-filled
memory isn't improperly detected as a valid handle.
re-enable error prints for pinning & unpinning handles with no local
references, now that the performance regression-causing misuse in the
codec firmware is resolved.
Change-Id: Ibbf5f0ad48f83f5eb475afb6dec8633adba8e3ca
Reviewed-on: http://git-master/r/844
Reviewed-by: Antti Hatala <ahatala@nvidia.com>
Tested-by: Antti Hatala <ahatala@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Removed the code that brings all controllers out of reset.
Change-Id: I1c4934bd5ff08f305806c6bfc74fddb9f6d6da6a
Reviewed-on: http://git-master/r/835
Tested-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com>
Reviewed-by: Ramachandrudu Kandhala <rkandhala@nvidia.com>
Tested-by: Ramachandrudu Kandhala <rkandhala@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
since the target lp2 time is being computed directly from the OS
timer list, it can be used computed immediately prior to entering
lp2. previously, it was computed by a previous invocation of the
idle loop and stored in a static variable; which was clearly wrong
since, after the calculation, the idle loop would wfi.
move all of the lp2 logic out of the CONFIG_WAKELOCK block; the
only information wakelocks provide is an additional hint as to
whether or not entering lp2 is allowed, so this can be checked
at the top of the idle loop and non-wakelock dependent code can
handle the actual entry into LP2.
partial fix for bug 660382
Change-Id: I397c8dbc946cb3495e9b9b247d11eae782503623
Reviewed-on: http://git-master/r/846
Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Trivikram Kasivajhula <tkasivajhula@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
adding multi-touch support to the touch screen driver.
Tested with Gallery3D, Multitouch Visualizer and Multitouch Visualise test apps.
Fod Bug 653317
Change-Id: I2976ab91c06a54de4772d88c3d96d72a753205ed
Reviewed-on: http://git-master/r/834
Tested-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-by: Harry Hong <hhong@nvidia.com>
Tested-by: Harry Hong <hhong@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
this driver is no longer being used, and its continued existence
just causes confusion.
Change-Id: Ia5b4a350b6590bbd0e8914625e9e81951096fb8c
Reviewed-on: http://git-master/r/843
Reviewed-by: John Davis <jodavis@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
The power numbers were high on the VDDIO_NAND rail, when the Nand module
was not present in EMMC boot. Doing a Pullup of the unused pin groups
and tristating the pad groups in the VDDIO_NAND rail, brings down the
power from 9mW to 2mW.
Bug 630271
Tested Nand and EMMC boot up on whistler.
Change-Id: I98ac3c0ae237093b0f17552799e0beb956c735e9
Reviewed-on: http://git-master/r/822
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
pre-existing NvULowestBitSet must be exported for upcoming channel-in-kernel change
NvOsGetProcessInfo is useful for debugging. Implemented and exported.
Change-Id: I9265626bc4496589a71c6b3517af44d8571a2c2e
Reviewed-on: http://git-master/r/828
Reviewed-by: Acorn Pooley <apooley@nvidia.com>
Tested-by: Acorn Pooley <apooley@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
The usb ddk will use these trimmer values if they are specified in the
NvOdmUsbProperty. Otherwise, it will use the default values specified inside
NvDDK.
Bug 657479: USB trimmer values should not be hardcoded in the DDK
Change-Id: Idd819dc6faba63831ba5164c6c2ebd1a99567a1c
Reviewed-on: http://git-master/r/786
Tested-by: Szming Lin <stlin@nvidia.com>
Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Reviewed-by: Udaykumar Rameshchan Raval <uraval@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
Configured minimal power DRAM IO setting on entry to LP1, and restored
run-time settings on exit (bug 660887). Code clean up.
Change-Id: I1586faa497a4374741688318a88d99dc6b8717e2
Reviewed-on: http://git-master/r/836
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
KGDB uses atomic variables and busy-wait loops to co-ordinate between
multiple CPUs on an SMP system. When an exception is handled, the primary
CPU executes kgdb_handle_exception() whilst the others execute kgdb_wait.
There comes a point when the waiters are waiting for the primary CPU to finish:
/* Wait till primary CPU is done with debugging */
(1) while (atomic_read(&passive_cpu_wait[cpu]))
cpu_relax();
/* Do important KGDB stuff */
/* Signal the primary CPU that we are done: */
atomic_set(&cpu_in_kgdb[cpu], 0);
In parallel to this, the primary CPU is doing:
for (i = NR_CPUS-1; i >= 0; i--)
atomic_set(&passive_cpu_wait[i], 0);
/*
* Wait till all the CPUs have quit
* from the debugger.
*/
for_each_online_cpu(i) {
(1) while (atomic_read(&cpu_in_kgdb[i]))
cpu_relax();
}
There is a potential deadlock situation at point (1) because the previous
writes to the passive_cpu_wait variables by the primary CPU may not yet be
visible to the other CPUs [for instance, they may be sitting in the local
store buffer]. This means that the waiter CPUs will never exit the while loop
and therefore never write to the cpu_in_kgdb variables, which the primary CPU
is blocked on. Furthermore, because the primary CPU is aggressively performing
reads, the store buffer may not necessarily drain so the system will deadlock.
This deadlock has been experienced on a quad-core ARM11MPCore platform.
The following patch addresses the issue by adding a memory barrier to the
primary CPU before the polling loop, therefore forcing the previous atomic_sets
to be visible before waiting for the waiters to finish.
Cc: KGDB Mailing List <kgdb-bugreport@lists.sourceforge.net>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Will Deacon <will.deacon@arm.com>
Change-Id: I93a294896342ca0fd2df86c68d9f8790eec0576c
Reviewed-on: http://git-master/r/829
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Loaded CPU PowerGood timer on entry to LP1 with count value for 32kHz
system bus clock. Restored original count (which was set by DVFS at run
time) on LP1 exit. Reduced margin of DVFS PowerGood calculations.
Change-Id: I7f61c568dd6c81edea12b9965f7758d9bd496798
Reviewed-on: http://git-master/r/819
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
eliminate overlapping memory ranges for the root ports
reduce config accesses
Change-Id: I9eb2af226a88bcd27ee445ddee01c18663fe4449
Reviewed-on: http://git-master/r/762
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Based on profiling, observed UART Tx to be mostly waiting for
a previous DMA to be finished so that it can proceed for further
processing of data from upper layers.
Two Mmodifications are implemented as part of this commit
1. Forming a DMA request for smaller transfers and waiting for
DMA request to be finished introduced overhead. Implemented a
polling based transfers for transfers less than a certain limit.
2. Implemented a parallel activity between "DMA Buffer -> UART FIFO"
and "Application -> DMA Buffer" copies. introduced a new DMA Buffer
which can be made ready by the time DMA finishes use of another DMA
Buffer that was filled by Driver.
Bug ID: 652334
Change-Id: I30cad291553f9c0c67cb95afa67e468446f7ffd7
Reviewed-on: http://git-master/r/743
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Adding the native driver for the gpio which support the gpio chiplib
for the kernel and user space gpio client.
Tested on whister with the touch panel and scroll wheel.
Tested with the lp1 entry exit multiple times on harmony.
Change-Id: I2f0f9b8ac9ef4fa2ed35c084a713edd42f732c89
Reviewed-on: http://git-master/r/711
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Tested-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: John Davis <jodavis@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Fixed MIPI PLL power rail control that was missed by CL 5598660.
(transparent for Whistler/Harmony where MIPI PLL rail is combined with other always On PLLs).
Change-Id: Ic2e86df28e05dcd66d6b45f435bed882cf8ee7b4
Reviewed-on: http://git-master/r/811
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
The lp2 times are used to calculate dfs duty cycle via dfs_log.
Correct lp2 times are also needed to properly modify the jiffy
values.
Change-Id: I2c5c14cbe853276356c5422ae24e3a7ca07b52df
Reviewed-on: http://git-master/r/759
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
If CONFIG_PM is not selected, don't compile tegra notifier code.
Change-Id: I24f7bd5c889db8b20c73815940a8f4af9a8522b3
Reviewed-on: http://git-master/r/806
Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Removed 50MHz floor for MIPI PLL high speed output frequency. This
floor kept MIPI PLL low speed output (= high speed output / 8) above
DSI panel specification - bug 651446.
Change-Id: Id1d3314b46896cc8f6fb48d238ffed01fd6b4e4a
Reviewed-on: http://git-master/r/787
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Venkata (Muni) Anda <vanda@nvidia.com>
Tested-by: Venkata (Muni) Anda <vanda@nvidia.com>
|
|
in the process of cleaning up the implementation of do_rw so
that it could be called from both ioctl and kernel contexts,
the loop increment for source and distination addresses
was erroneously set to the element size, rather than the
provided strides.
bug 660448
Change-Id: I02e2b2b980f90a2171d811192b667883f2a3ab41
Reviewed-on: http://git-master/r/805
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Changed the registration to use the device ID same as instance.
With this change instance 0 will show up as ttyHS0 and instance 1
will show up as ttyHS1 and so on. Before this change, if the instance 0
was not used on a platform, instance 1 would have showed up as ttyHS0.
Bug 656451
Tested with Harmony.
Made sure that all nodes showup in the device list except the missing instance.
Change-Id: Ib4e04b12f16002deb899b38630de102c24e588b0
Reviewed-on: http://git-master/r/735
Reviewed-by: Ramachandrudu Kandhala <rkandhala@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
- On behalf of Gautam Moharir
- Bug 660462
Change-Id: I66e22e247ce5df6135f31c75ae91ec5d0b11e666
Reviewed-on: http://git-master/r/792
Reviewed-by: Ninad Malwade <nmalwade@nvidia.com>
Tested-by: Ninad Malwade <nmalwade@nvidia.com>
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
tegra 2 systems have a hardware errata which causes bit 20 of the
TLS register (CP15 c13, operations 2-4) to be unreliable.
in common user space threading libraries (glibc pthreads, bionic
pthreads), the value stored in this register is guaranteed to be
at least word-aligned, leaving bit 0 free.
the work-around for this hardware errata is storing bit 20 of the
user space-provided TLS value into bit 0 of the register inside
__set_tls, and restoring it in the get_tls helper.
Change-Id: I06439378edc01dc897708e3298cd91b5721c6e50
Reviewed-on: http://git-master/r/779
Reviewed-by: Trivikram Kasivajhula <tkasivajhula@nvidia.com>
Reviewed-by: Arthur Spence <aspence@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
nvmap build fails when CONFIG_TEGRA_IOVMM is not selected. add stubs
to allow that combination to work.
Change-Id: Ie7e47a987feaeffd987996d11a594b2c8551311e
Reviewed-on: http://git-master/r/785
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Change-Id: I02aa2fd9d5a4faa830e838d2705ee81058fe001d
Change-Id: I02aa2fd9d5a4faa830e838d2705ee81058fe001d
Reviewed-on: http://git-master/r/750
Reviewed-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Narendra Damahe <ndamahe@nvidia.com>
Tested-by: Narendra Damahe <ndamahe@nvidia.com>
Reviewed-by: Trivikram Kasivajhula <tkasivajhula@nvidia.com>
Tested-by: Trivikram Kasivajhula <tkasivajhula@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
This condition check width[0] == 0xf is not need based on spec
and it is causing second finger samples are ignored many times.
Fixes bug 653317
Change-Id: I2ada2732f0c4965817a0ed1dca1b6351e01d256a
Reviewed-on: http://git-master/r/769
Reviewed-by: Gary King <gking@nvidia.com>
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Tested-by: Varun Wadekar <vwadekar@nvidia.com>
|
|
If CONFIG_PM is not selected, don't compile EHCI bus suspend/resume.
Change-Id: Ia89612fa3d82dc671accc597e4d1ca05f56eaa5c
Reviewed-on: http://git-master/r/783
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
the handle alignment parameter query had an off-by-one bug in its
loop initializer which caused any carveout handle to trigger an
infinite loop. the only caller of this API was the debug EGL
driver, which used it to verify that the allocation matched
the requested alignment.
also, if the user passes NULL as the address array when pinning
multiple handles to ioctl_pinop, pin the handles and skip the
output write, rather than returning a permission error.
big thanks to antti for finding the infinite loop.
bug 660526
Change-Id: I90f819a231b5a8bef5b473252122cdbefc744efb
Reviewed-on: http://git-master/r/782
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Added support for the new Whistler PMU revision that preserves CPU
voltage across LP2 (it will allow to enable core voltage scaling on
E1109 processor boards).
Change-Id: I0724414c5148f39b3c6fa4f0d3f84963231d2520
Reviewed-on: http://git-master/r/726
Tested-by: Aleksandr Frid <afrid@nvidia.com>
Reviewed-by: Yu-Huan Hsu <yhsu@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
there appears to be a race condition which causes req to be NULL.
issue a warning and return -EINVAL in this case, rather than
dereferencing a NULL pointer
Change-Id: I46d7fdd63ec6fb09bdda18e1a1e5509af079beab
Reviewed-on: http://git-master/r/768
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Save/Restore context works only for dedicated host. Earlier it was
enabled even for OTG. This is corrected by modifying the check in
nvddk_usbphy.c. Checking for host mode instead of "IsHostMode" flag.
Bug 658225: USB host is not working on android/whistler USB port1 in OTG mode.
Tested on : Whistler USB1 OTG + USB3 host
Now OTG host is getting detected
Change-Id: Ia5a1e0744074a6486d8853ea10f6c860b3abb4f3
Reviewed-on: http://git-master/r/741
Reviewed-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com>
Tested-by: Hanumanth Venkateswa Moganty <vmoganty@nvidia.com>
Reviewed-by: Narendra Damahe <ndamahe@nvidia.com>
Tested-by: Narendra Damahe <ndamahe@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
|
|
previously, the task of managing RM-managed memory handles was split
between nvos (OS page allocation), the RM (heap management for
carveout & IRAM heaps, and handle life-time management), nvreftrack
(abnormal process termination) and nvmap (user-space read/write/map
of memory handles). this resulted in an opaque system that was wasteful
of kernel virtual address space, didn't support CPU cache attributes for
kernel mappings and couldn't fully unwind leaked handles (e.g., if the
application leaked a pinned handle the memory might never be reclaimed).
nvmap is now a full re-implementation of the RM memory manager, unifying all
of the functionality from nvreftrack, nvos, nvmap and nvrm into one
driver used by both user and kernel-space clients.
add configs to control paranoid operation. when paranoid is enabled,
every handle reference passed into the kernel is verified to actually
have been created by nvmap; furthermore, handles which are not global
(the GET_ID ioctl has not been called for it) will fail validation
if they are referenced by any process other than the one which created
them, or a super-user process (opened via /dev/knvmap).
each file descriptor maintains its own table of nvmap_handle_ref
references, so the handle value returned to each process is unique;
furthermore, nvmap_handle_ref objects track how many times they have
been pinned, to ensure that processes which abnormally terminate with
pinned handles can be unwound correctly.
as a compile-time option, fully-unpinned handles which require IOVMM
mappings may be stored in a segmented (by size) MRU (most-recently
unpinned) eviction cache; if IOVMM space is over-committed across
multiple processes, a pin operation may reclaim any or all of the IOVMM
areas in the MRU cache. MRU is used as the eviction policy since
graphics operations frequently operate cyclically, and the least-recently
used entry may be needed almost immediately if the higher-level client
starts (e.g.) rendering the next frame.
introduce a concept of "secure" handles. secure handles may only
be mapped into IOVMM space, and when unpinned their mapping in IOVMM
space will be zapped immediately, to prevent malicious processes from
being able to access the handle.
expose carveout heap attributes for each carveout heap in sysfs,
under the nvmap device with sub-device name heap-<heap name>
* total size
* free size
* total block count
* free block count
* largest block
* largest free block
* base address
* name
* heap usage bitmask
carveout heaps may be split at run-time, if sufficient memory is available
in the heap. the split heap can be (should be) assigned a different name
and usage bitmask than the original heap. this allows a large initial
carveout to be split into smaller carveouts, to reserve sections of carveout
memory for specific usages (e.g., camera and/or video clients).
add a split entry in the sysfs tree for each carveout heap, to support
run-time splitting of carveout heaps into reserved regions. format is:
<size>,<usage>,<name>
* size should be parsable with memparse (suffixes k/K and m/M are legal)
* usage is the new heap's usage bitmask
* name is the name of the new heap (must be unique)
carveout heaps are managed using a first-fit allocator with an explicit
free list, all blocks are kept in a dynamically-sized array (doubles
in size every time all blocks are exhausted); to reduce fragmentation
caused by allocations with different alignment requirements, the
allocator will compare left-justifying and right-justifying the
allocation within the first-fit block, and choose the justification
that results in the largest remaining free block (this is particularly
important for 1M-aligned split heaps).
other code which duplicated functionality subsumed by this changelist
(RM memory manager, NvOs carveout command line parser, etc.) is deleted;
implementations of the RM memory manager on top of nvmap are provided
to support backwards compatibility
bug 634812
Change-Id: Ic89d83fed31b4cadc68653d0e825c368b9c92f81
Reviewed-on: http://git-master/r/590
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
register the GART (for harmony & whistler) with IOVMM, to instantiate
the IOVMM device node.
Change-Id: I0d8eba7fd056e2c2db979abbc3ddd0bb650d4312
Reviewed-on: http://git-master/r/446
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
The sizeof parameter provided to NvOdmOsMemset() was having
the wrong value.
It can create unpredictable results if NvEcOpen() fails.
Change-Id: I19a6adabc1b8d780160a017df7b3fb03ac8c8a60
Reviewed-on: http://git-master/r/760
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
Adding new GUID for EMP M570 ULPI modem and the GUID filter in
nvodm_query_discovery. The GUID will be filtered out according to the RIL
option in odmdata.
Change-Id: I6bb2093e35d89c7945c82829f0283cf5a36b804a
Reviewed-on: http://git-master/r/713
Reviewed-by: Udaykumar Rameshchan Raval <uraval@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
The default Battery status poll period is 30 Sec.
Adding a new sysfs attribute by which this polling period
can be modified.
To view the polling period:-
cat /sys/devices/nvec/nvec_battery/status_poll_period
To modify polling period:-
echo <newvalue> > /sys/devices/nvec/nvec_battery/status_poll_period
bug 646822
Synopsis:[Harmony/android] Battery status is not updated whenever
there is any change in battery/power supply property
Change-Id:I3b17be7f01fcf91f1c268fdb36fe348ddcf5f626
Reviewed-on: http://git-master/r/742
Reviewed-by: Mayuresh Kulkarni <mkulkarni@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
cable/usb device connection
Currently on resume from LP1, though there is no adb cable/USB device connected to
USB1/USB3 then also usb busy hints are getting on. With this change on resume:
For gadget driver, if cable is not connected then busy hints made off.
For host driver, if device(s) are not connected then busy hints are off.
Code Clean-up for power improvement
Tested on : Whistler board USB1 OTG + USB3 host
Tested with all possible connection on USB1 and USB3
Change-Id: I6d210bba1264d9c0134d586d3f67ff609ba2b3fe
Reviewed-on: http://git-master/r/745
Reviewed-by: Narendra Damahe <ndamahe@nvidia.com>
Tested-by: Narendra Damahe <ndamahe@nvidia.com>
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|
|
csd_struct version on some of the cards is 4.4 cards is 3. This change
skips the check for that verison.
Change-Id: Ib44344237c99e1a52e1b3eb864e96194b090929b
Reviewed-on: http://git-master/r/739
Reviewed-by: Gary King <gking@nvidia.com>
Tested-by: Gary King <gking@nvidia.com>
|