<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/include, 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: 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>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>
<entry>
<title>f_mass_storage: allow platform to set bulk buffer size</title>
<updated>2010-02-13T02:35:19+00:00</updated>
<author>
<name>Gary King</name>
<email>gking@nvidia.com</email>
</author>
<published>2010-02-13T02:35:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3f2d6f61dbe70cb8bed9a7e69c2a9b6adae874a5'/>
<id>3f2d6f61dbe70cb8bed9a7e69c2a9b6adae874a5</id>
<content type='text'>
add a field to the android_usb_platform_data structure to allow platforms
to specify the size of the bulk transfer buffer; if unspecified, default
to the BULK_BUFFER_SIZE defined by f_mass_storage.c (previously defined as
4KiB).

on harmony (tegra 2), performance of a class 10 SD card mounted
as USB mass storage through this gadget has been measured to increase
from ~7MB/sec read to ~17MB/sec read by increasing the buffer size
from 4KiB to 16KiB.

Change-Id: I0da025f1317506cbd3257fe697a9297b0516d9e9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
add a field to the android_usb_platform_data structure to allow platforms
to specify the size of the bulk transfer buffer; if unspecified, default
to the BULK_BUFFER_SIZE defined by f_mass_storage.c (previously defined as
4KiB).

on harmony (tegra 2), performance of a class 10 SD card mounted
as USB mass storage through this gadget has been measured to increase
from ~7MB/sec read to ~17MB/sec read by increasing the buffer size
from 4KiB to 16KiB.

Change-Id: I0da025f1317506cbd3257fe697a9297b0516d9e9
</pre>
</div>
</content>
</entry>
<entry>
<title>mmc: add 'enable' and 'disable' methods to mmc host</title>
<updated>2010-02-10T11:44:53+00:00</updated>
<author>
<name>Deepesh Gujarathi</name>
<email>dgujarathi@nvidia.com</email>
</author>
<published>2010-02-03T13:08:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2f375ca2a494481c7ae57ed892f699f1e7fa4d71'/>
<id>2f375ca2a494481c7ae57ed892f699f1e7fa4d71</id>
<content type='text'>
MMC hosts that support power saving can use the 'enable' and 'disable'
methods to exit and enter power saving states.  An explanation of their
use is provided in the comments added to include/linux/mmc/host.h.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@nokia.com&gt;
Acked-by: Matt Fleming &lt;matt@console-pimps.org&gt;
Cc: Ian Molton &lt;ian@mnementh.co.uk&gt;
Cc: "Roberto A. Foglietta" &lt;roberto.foglietta@gmail.com&gt;
Cc: Jarkko Lavinen &lt;jarkko.lavinen@nokia.com&gt;
Cc: Denis Karpov &lt;ext-denis.2.karpov@nokia.com&gt;
Cc: Pierre Ossman &lt;pierre@ossman.eu&gt;
Cc: Philip Langdale &lt;philipl@overt.org&gt;
Cc: "Madhusudhan" &lt;madhu.cr@ti.com&gt;
Cc: &lt;linux-mmc@vger.kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

Conflicts:

	drivers/mmc/core/core.c
	include/linux/mmc/host.h

tegra: cherry picked patch 8ea926b22e2d13238e4d65d8f61c48fe424e6f4f

Change-Id: 	Iaaaaecd00452760a9bcea43f41af97bcbccef058
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MMC hosts that support power saving can use the 'enable' and 'disable'
methods to exit and enter power saving states.  An explanation of their
use is provided in the comments added to include/linux/mmc/host.h.

Signed-off-by: Adrian Hunter &lt;adrian.hunter@nokia.com&gt;
Acked-by: Matt Fleming &lt;matt@console-pimps.org&gt;
Cc: Ian Molton &lt;ian@mnementh.co.uk&gt;
Cc: "Roberto A. Foglietta" &lt;roberto.foglietta@gmail.com&gt;
Cc: Jarkko Lavinen &lt;jarkko.lavinen@nokia.com&gt;
Cc: Denis Karpov &lt;ext-denis.2.karpov@nokia.com&gt;
Cc: Pierre Ossman &lt;pierre@ossman.eu&gt;
Cc: Philip Langdale &lt;philipl@overt.org&gt;
Cc: "Madhusudhan" &lt;madhu.cr@ti.com&gt;
Cc: &lt;linux-mmc@vger.kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

Conflicts:

	drivers/mmc/core/core.c
	include/linux/mmc/host.h

tegra: cherry picked patch 8ea926b22e2d13238e4d65d8f61c48fe424e6f4f

Change-Id: 	Iaaaaecd00452760a9bcea43f41af97bcbccef058
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "tegra: Add 1-wire bus master driver for Tegra SOCs" into android-tegra-2.6.29</title>
<updated>2010-02-05T19:00:45+00:00</updated>
<author>
<name>Gary King</name>
<email>gking@nvidia.com</email>
</author>
<published>2010-02-05T19:00:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=70596967537090788100027f0e0bf8eae9db39b4'/>
<id>70596967537090788100027f0e0bf8eae9db39b4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra: Add 1-wire bus master driver for Tegra SOCs</title>
<updated>2010-02-05T04:32:12+00:00</updated>
<author>
<name>Hoang Pham</name>
<email>HoPham@nvidia.com</email>
</author>
<published>2010-02-05T04:32:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=394c6535f18005ca80336b1b7128b488243e0381'/>
<id>394c6535f18005ca80336b1b7128b488243e0381</id>
<content type='text'>
Fix logic pinmux config select
Change-Id: I49f8c399d57455c85ed373a66db6696cdd997bec
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix logic pinmux config select
Change-Id: I49f8c399d57455c85ed373a66db6696cdd997bec
</pre>
</div>
</content>
</entry>
<entry>
<title>mm: introduce debug_kmap_atomic</title>
<updated>2010-02-02T23:57:02+00:00</updated>
<author>
<name>Akinobu Mita</name>
<email>akinobu.mita@gmail.com</email>
</author>
<published>2009-03-31T22:23:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=04c78b2033666f80a947e67bc93f820d5b90df3f'/>
<id>04c78b2033666f80a947e67bc93f820d5b90df3f</id>
<content type='text'>
x86 has debug_kmap_atomic_prot() which is error checking function for
kmap_atomic.  It is usefull for the other architectures, although it needs
CONFIG_TRACE_IRQFLAGS_SUPPORT.

This patch exposes it to the other architectures.

Signed-off-by: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: &lt;linux-arch@vger.kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
x86 has debug_kmap_atomic_prot() which is error checking function for
kmap_atomic.  It is usefull for the other architectures, although it needs
CONFIG_TRACE_IRQFLAGS_SUPPORT.

This patch exposes it to the other architectures.

Signed-off-by: Akinobu Mita &lt;akinobu.mita@gmail.com&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: &lt;linux-arch@vger.kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>TEGRA - Adding USB OTG feature</title>
<updated>2010-01-19T05:54:37+00:00</updated>
<author>
<name>Venkat Moganty</name>
<email>vmoganty@nvidia.com</email>
</author>
<published>2010-01-15T14:26:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=98968646e2faada52420581bfcf5f80362f94f69'/>
<id>98968646e2faada52420581bfcf5f80362f94f69</id>
<content type='text'>
Enabling support for the OTG in NVIDIA Tegra SoCs by providing simple
transceiver interface for detecting the Host or Device based on the
USBID and VBUS sensors.

Bug 629098 USB OTG problem
Tested on Whistler with Android

USB OTG is tested on whistler USB port1, by setting the USB mode type
as "NvOdmUsbModeType_OTG" in the ODM usb property of
arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query.c
Tested OTG-HOST by connecting USB keyboard and OTG-device by connecting adb.

Change-Id: I860e1f4be5f7c96765c2ce1ca320fdf212164811
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enabling support for the OTG in NVIDIA Tegra SoCs by providing simple
transceiver interface for detecting the Host or Device based on the
USBID and VBUS sensors.

Bug 629098 USB OTG problem
Tested on Whistler with Android

USB OTG is tested on whistler USB port1, by setting the USB mode type
as "NvOdmUsbModeType_OTG" in the ODM usb property of
arch/arm/mach-tegra/odm_kit/query/whistler/nvodm_query.c
Tested OTG-HOST by connecting USB keyboard and OTG-device by connecting adb.

Change-Id: I860e1f4be5f7c96765c2ce1ca320fdf212164811
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra: use sdio_platform_data from tegra_devices.h, not sdio_pdata</title>
<updated>2009-12-16T02:45:52+00:00</updated>
<author>
<name>Gary King</name>
<email>gking@nvidia.com</email>
</author>
<published>2009-12-15T19:03:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d5a745414e641b8cc839e0bff7b02a9e86020cc0'/>
<id>d5a745414e641b8cc839e0bff7b02a9e86020cc0</id>
<content type='text'>
update sdhci driver to reflect correct typename

Change-Id: I350196cdde9c52a8cac7e74d041a15a683f8bc1c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
update sdhci driver to reflect correct typename

Change-Id: I350196cdde9c52a8cac7e74d041a15a683f8bc1c
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra: declare tegra_spi_platform_data in tegra_devices.h</title>
<updated>2009-12-16T02:45:21+00:00</updated>
<author>
<name>Gary King</name>
<email>gking@nvidia.com</email>
</author>
<published>2009-12-15T18:56:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=659cebdec89d93f0b62d5282216aa4e903489d18'/>
<id>659cebdec89d93f0b62d5282216aa4e903489d18</id>
<content type='text'>
Change-Id: I0d8c628df3c9c3bb2482fcc8af905c24f9e51418
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I0d8c628df3c9c3bb2482fcc8af905c24f9e51418
</pre>
</div>
</content>
</entry>
</feed>
