<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers, branch tegra-9.12.7</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>[nvmap] fix strided read/write loop increment</title>
<updated>2010-03-08T22:13:22+00:00</updated>
<author>
<name>Gary King</name>
<email>gking@nvidia.com</email>
</author>
<published>2010-03-08T22:08:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4646176e2e325e692423dfbee0f07f88210f36f1'/>
<id>4646176e2e325e692423dfbee0f07f88210f36f1</id>
<content type='text'>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra: Commenting the error prints for memory pin/Unpin functions</title>
<updated>2010-03-08T17:59:55+00:00</updated>
<author>
<name>Ninad Malwade</name>
<email>nmalwade@nvidia.com</email>
</author>
<published>2010-03-08T06:18:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3cb112b319306cd993cb421577035c03be05723a'/>
<id>3cb112b319306cd993cb421577035c03be05723a</id>
<content type='text'>
- On behalf of Gautam Moharir
- Bug 660462

Change-Id: I66e22e247ce5df6135f31c75ae91ec5d0b11e666
Reviewed-on: http://git-master/r/792
Reviewed-by: Ninad Malwade &lt;nmalwade@nvidia.com&gt;
Tested-by: Ninad Malwade &lt;nmalwade@nvidia.com&gt;
Reviewed-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- On behalf of Gautam Moharir
- Bug 660462

Change-Id: I66e22e247ce5df6135f31c75ae91ec5d0b11e666
Reviewed-on: http://git-master/r/792
Reviewed-by: Ninad Malwade &lt;nmalwade@nvidia.com&gt;
Tested-by: Ninad Malwade &lt;nmalwade@nvidia.com&gt;
Reviewed-by: Varun Wadekar &lt;vwadekar@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra: EHCI bus suspend/resume requires CONFIG_PM</title>
<updated>2010-03-05T21:55:32+00:00</updated>
<author>
<name>Scott Williams</name>
<email>scwilliams@nvidia.com</email>
</author>
<published>2010-03-05T18:46:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bc646f81bff16fbb813977d9b926b04a32acf8ce'/>
<id>bc646f81bff16fbb813977d9b926b04a32acf8ce</id>
<content type='text'>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[nvmap] handle NULL return for pin multiple, fix infinite loop</title>
<updated>2010-03-05T19:04:19+00:00</updated>
<author>
<name>Gary King</name>
<email>gking@nvidia.com</email>
</author>
<published>2010-03-05T18:41:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e017a62d01aa6c7d0253b15182669295f000fa03'/>
<id>e017a62d01aa6c7d0253b15182669295f000fa03</id>
<content type='text'>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[usb mass storage] return -EINVAL on NULL request</title>
<updated>2010-03-05T04:20:10+00:00</updated>
<author>
<name>Gary King</name>
<email>gking@nvidia.com</email>
</author>
<published>2010-03-04T02:20:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ed986ab741c8c035c605ce4392d793d9ad72f5ae'/>
<id>ed986ab741c8c035c605ce4392d793d9ad72f5ae</id>
<content type='text'>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nvmap: implement nvmap as a full memory manager driver</title>
<updated>2010-03-04T21:22:21+00:00</updated>
<author>
<name>Gary King</name>
<email>GKing@nvidia.com</email>
</author>
<published>2010-02-05T00:55:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8e5965dc0524ef93c2ed4718a6356060bc07b38b'/>
<id>8e5965dc0524ef93c2ed4718a6356060bc07b38b</id>
<content type='text'>
previously, the task of managing RM-managed memory handles was split
between nvos (OS page allocation), the RM (heap management for
carveout &amp; 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-&lt;heap name&gt;
 * 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:
 &lt;size&gt;,&lt;usage&gt;,&lt;name&gt;
 * 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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
previously, the task of managing RM-managed memory handles was split
between nvos (OS page allocation), the RM (heap management for
carveout &amp; 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-&lt;heap name&gt;
 * 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:
 &lt;size&gt;,&lt;usage&gt;,&lt;name&gt;
 * 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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>nvec_battery:Adding a new sysfs attribute "status_poll_period"</title>
<updated>2010-03-04T04:36:17+00:00</updated>
<author>
<name>Sachin Nikam</name>
<email>snikam@nvidia.com</email>
</author>
<published>2010-03-03T05:45:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=96001b6484efac68ec3d8dda2c3aea84156f00a2'/>
<id>96001b6484efac68ec3d8dda2c3aea84156f00a2</id>
<content type='text'>
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 &lt;newvalue&gt; &gt; /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 &lt;mkulkarni@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;newvalue&gt; &gt; /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 &lt;mkulkarni@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra usb: Making USB busy hints off on resume, when there is no adb</title>
<updated>2010-03-04T03:56:49+00:00</updated>
<author>
<name>sgadagottu</name>
<email>sgadagottu@nvidia.com</email>
</author>
<published>2010-03-03T14:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=17f12ae875e3afedaaaca474b46d3ccd5150bea0'/>
<id>17f12ae875e3afedaaaca474b46d3ccd5150bea0</id>
<content type='text'>
           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 &lt;ndamahe@nvidia.com&gt;
Tested-by: Narendra Damahe &lt;ndamahe@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
           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 &lt;ndamahe@nvidia.com&gt;
Tested-by: Narendra Damahe &lt;ndamahe@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Proper fix for commit I5c6914ef8906eed80cba15249b0760d71e3d0255</title>
<updated>2010-03-03T04:42:01+00:00</updated>
<author>
<name>Venkata(Muni) Anda</name>
<email>vanda@nvidia.com</email>
</author>
<published>2010-03-03T02:44:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7a44e354c4cf1f369978efe679e7be888a7b47a4'/>
<id>7a44e354c4cf1f369978efe679e7be888a7b47a4</id>
<content type='text'>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra udc: Add USB charger support</title>
<updated>2010-03-03T04:00:25+00:00</updated>
<author>
<name>Venkat Moganty</name>
<email>vmoganty@nvidia.com</email>
</author>
<published>2010-02-26T08:36:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c45cca3c944ab8bcfca4d87f66ba0f8fb4693f85'/>
<id>c45cca3c944ab8bcfca4d87f66ba0f8fb4693f85</id>
<content type='text'>
Adding support for usb charger detection and setting the charging current
limit through the regulator for drawing the vbus current.

Bug 631316 USB charging support in Android
Tested on: whistler/Android

Change-Id: Ib73ac660d1546fbbdc0ed19ca0f25e04b3676886
Reviewed-on: http://git-master/r/693
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Adding support for usb charger detection and setting the charging current
limit through the regulator for drawing the vbus current.

Bug 631316 USB charging support in Android
Tested on: whistler/Android

Change-Id: Ib73ac660d1546fbbdc0ed19ca0f25e04b3676886
Reviewed-on: http://git-master/r/693
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
