<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/serial, branch tegra-9.12.12.1</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>tegra serial: Removing the compilation warning.</title>
<updated>2010-05-15T16:36:13+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2010-05-13T14:37:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d1c82509659fdadb4ff313a4664436cb8f2e1902'/>
<id>d1c82509659fdadb4ff313a4664436cb8f2e1902</id>
<content type='text'>
Fixing the statement which is producing the warning.

Compiled without warning, tested with harmony BT-A2dp.

Change-Id: I7540653522124aa93b5afc8551a07e8322b37316
Reviewed-on: http://git-master/r/1381
Reviewed-by: Suresh Mangipudi &lt;smangipudi@nvidia.com&gt;
Tested-by: Suresh Mangipudi &lt;smangipudi@nvidia.com&gt;
Reviewed-by: Bitan Biswas &lt;bbiswas@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixing the statement which is producing the warning.

Compiled without warning, tested with harmony BT-A2dp.

Change-Id: I7540653522124aa93b5afc8551a07e8322b37316
Reviewed-on: http://git-master/r/1381
Reviewed-by: Suresh Mangipudi &lt;smangipudi@nvidia.com&gt;
Tested-by: Suresh Mangipudi &lt;smangipudi@nvidia.com&gt;
Reviewed-by: Bitan Biswas &lt;bbiswas@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra serial: Fixing system freeze when doing uart data transfer.</title>
<updated>2010-05-11T22:16:13+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2010-05-07T18:26:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f24ec023e2d60362372d86d0ee5d95a0d4c2a439'/>
<id>f24ec023e2d60362372d86d0ee5d95a0d4c2a439</id>
<content type='text'>
Removed the rx and tx separate lock and used only one lock to control the
interrupt enable bit in independent rx and tx path. The interrupt control
register is shared between the rx and tx workqueue.

Tested on harmony with BT, playing songs for 30 minutes without any packet
loss.

Change-Id: I690f28559c0ae0c3dc98ab930298e964a7ea07dc
Reviewed-on: http://git-master/r/1316
Reviewed-by: Rahul Bansal &lt;rbansal@nvidia.com&gt;
Tested-by: Rahul Bansal &lt;rbansal@nvidia.com&gt;
Tested-by: Anjali Kotnala &lt;akotnala@nvidia.com&gt;
Reviewed-by: Udaykumar Rameshchan Raval &lt;uraval@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed the rx and tx separate lock and used only one lock to control the
interrupt enable bit in independent rx and tx path. The interrupt control
register is shared between the rx and tx workqueue.

Tested on harmony with BT, playing songs for 30 minutes without any packet
loss.

Change-Id: I690f28559c0ae0c3dc98ab930298e964a7ea07dc
Reviewed-on: http://git-master/r/1316
Reviewed-by: Rahul Bansal &lt;rbansal@nvidia.com&gt;
Tested-by: Rahul Bansal &lt;rbansal@nvidia.com&gt;
Tested-by: Anjali Kotnala &lt;akotnala@nvidia.com&gt;
Reviewed-by: Udaykumar Rameshchan Raval &lt;uraval@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra dma: Correcting the typo error.</title>
<updated>2010-04-30T01:33:27+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2010-04-27T14:15:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1743f5918df4a4be189ac5d408c76ed25a065760'/>
<id>1743f5918df4a4be189ac5d408c76ed25a065760</id>
<content type='text'>
Correcting the spelling error in enum definition TEGRA_DMA_REQ_ERROR_ABOTRED
to TEGRA_DMA_REQ_ERROR_ABORTED.

Tested on harmony.

Change-Id: Ie28aea9f87c1a0a2d3f27ce6132fb3eb48eb59e6
Reviewed-on: http://git-master/r/1225
Reviewed-by: Ramachandrudu Kandhala &lt;rkandhala@nvidia.com&gt;
Reviewed-by: Venkata (Muni) Anda &lt;vanda@nvidia.com&gt;
Reviewed-by: Yu-Huan Hsu &lt;yhsu@nvidia.com&gt;
Tested-by: Ramachandrudu Kandhala &lt;rkandhala@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Correcting the spelling error in enum definition TEGRA_DMA_REQ_ERROR_ABOTRED
to TEGRA_DMA_REQ_ERROR_ABORTED.

Tested on harmony.

Change-Id: Ie28aea9f87c1a0a2d3f27ce6132fb3eb48eb59e6
Reviewed-on: http://git-master/r/1225
Reviewed-by: Ramachandrudu Kandhala &lt;rkandhala@nvidia.com&gt;
Reviewed-by: Venkata (Muni) Anda &lt;vanda@nvidia.com&gt;
Reviewed-by: Yu-Huan Hsu &lt;yhsu@nvidia.com&gt;
Tested-by: Ramachandrudu Kandhala &lt;rkandhala@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra serial: Improving the rx flow.</title>
<updated>2010-04-23T20:29:20+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2010-04-21T10:42:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=526ae33f0d5fddda812f0444dd91ece1cedf8dde'/>
<id>526ae33f0d5fddda812f0444dd91ece1cedf8dde</id>
<content type='text'>
Following improvements are done in the uart rx and tx path:
- Separate locks for rx and tx paths.
- Implementing the continuous double buffering with same buffer for
  uart rx.
- Deactivating the rts line only incase of if dma does not read the
  fifo i.e. nonmultiple of 4.
- Handling the modem control signal chnage properly.
- Created the separate workqueue for the receive to handle dma thresold
 callback as well as the rx uart interrupts.

Tested on harmony and whistler with uart testcase and BT on harmony.
we tested the simulatenous file transfer and the A2DP on BT-harmony
and did not observe any glitches.

Change-Id: Id451ca2f42e246b524a7c9e4bbf3aa832cd0d535
Reviewed-on: http://git-master/r/1172
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Reviewed-by: Anantha Idapalapati &lt;aidapalapati@nvidia.com&gt;
Tested-by: Anantha Idapalapati &lt;aidapalapati@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following improvements are done in the uart rx and tx path:
- Separate locks for rx and tx paths.
- Implementing the continuous double buffering with same buffer for
  uart rx.
- Deactivating the rts line only incase of if dma does not read the
  fifo i.e. nonmultiple of 4.
- Handling the modem control signal chnage properly.
- Created the separate workqueue for the receive to handle dma thresold
 callback as well as the rx uart interrupts.

Tested on harmony and whistler with uart testcase and BT on harmony.
we tested the simulatenous file transfer and the A2DP on BT-harmony
and did not observe any glitches.

Change-Id: Id451ca2f42e246b524a7c9e4bbf3aa832cd0d535
Reviewed-on: http://git-master/r/1172
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
Reviewed-by: Anantha Idapalapati &lt;aidapalapati@nvidia.com&gt;
Tested-by: Anantha Idapalapati &lt;aidapalapati@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra uart: Fixing the tx and rx dma path issue</title>
<updated>2010-04-13T22:57:22+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2010-04-09T16:54:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c31c451d72bc2c6e3973adf4d3356a872cc77539'/>
<id>c31c451d72bc2c6e3973adf4d3356a872cc77539</id>
<content type='text'>
Following issue has been fixed:
- Blocking write was returning immediatly if data request is multiple of 4.
- Blocking write was not able to complete if data length is nonmultiple of 4
  and more than 4.
- The close was taking too much time  because proper timeout and fifo size was
  not  configured.
- Tx dma path optimized to fill more data to dma buffer if there is more
 pending chars in the buffer.
- Tx path is fixed to properly signal the wakup event to tty layer.
- RTS flow control is not getting set from second open even cflag is
  requested for that.
- Rx dma was not receiving the correct data after second open. The multiple
 request was
  getting queued for the receive path at the time of closing.
- Rx dma was started before uart controller is configured and it is creating
 to misbehave  the dma.
- Transfer count was not getting calculated in the dma driver.

Pending issue:
- Loosing the data id more than 32K of data was sennt is single shot. Debugging
  this.

Tested on harmony with different testcase developed for testing the linux serial
 driver.

Change-Id: I6ed9095dd6340d2b5e7ef036823d2e4e5a61abcc
Reviewed-on: http://git-master/r/1065
Tested-by: Suresh Mangipudi &lt;smangipudi@nvidia.com&gt;
Reviewed-by: Udaykumar Rameshchan Raval &lt;uraval@nvidia.com&gt;
Tested-by: Udaykumar Rameshchan Raval &lt;uraval@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Following issue has been fixed:
- Blocking write was returning immediatly if data request is multiple of 4.
- Blocking write was not able to complete if data length is nonmultiple of 4
  and more than 4.
- The close was taking too much time  because proper timeout and fifo size was
  not  configured.
- Tx dma path optimized to fill more data to dma buffer if there is more
 pending chars in the buffer.
- Tx path is fixed to properly signal the wakup event to tty layer.
- RTS flow control is not getting set from second open even cflag is
  requested for that.
- Rx dma was not receiving the correct data after second open. The multiple
 request was
  getting queued for the receive path at the time of closing.
- Rx dma was started before uart controller is configured and it is creating
 to misbehave  the dma.
- Transfer count was not getting calculated in the dma driver.

Pending issue:
- Loosing the data id more than 32K of data was sennt is single shot. Debugging
  this.

Tested on harmony with different testcase developed for testing the linux serial
 driver.

Change-Id: I6ed9095dd6340d2b5e7ef036823d2e4e5a61abcc
Reviewed-on: http://git-master/r/1065
Tested-by: Suresh Mangipudi &lt;smangipudi@nvidia.com&gt;
Reviewed-by: Udaykumar Rameshchan Raval &lt;uraval@nvidia.com&gt;
Tested-by: Udaykumar Rameshchan Raval &lt;uraval@nvidia.com&gt;
Reviewed-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>serial: delete tegra DDK serial driver</title>
<updated>2010-03-12T04:28:30+00:00</updated>
<author>
<name>Gary King</name>
<email>gking@nvidia.com</email>
</author>
<published>2010-03-11T17:04:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d7410ca658ea62a51163655f000cf20c640c76f9'/>
<id>d7410ca658ea62a51163655f000cf20c640c76f9</id>
<content type='text'>
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 &lt;jodavis@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>
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 &lt;jodavis@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 serial: Tx Path Optimizations</title>
<updated>2010-03-10T02:56:01+00:00</updated>
<author>
<name>Anantha Idapalapati</name>
<email>aidapalapati@nvidia.com</email>
</author>
<published>2010-03-03T11:03:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=02259089c0deaff0f89a9c8408497c3aeccbe0dd'/>
<id>02259089c0deaff0f89a9c8408497c3aeccbe0dd</id>
<content type='text'>
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 -&gt; UART FIFO"
and "Application -&gt; 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 &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>
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 -&gt; UART FIFO"
and "Application -&gt; 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 &lt;gking@nvidia.com&gt;
Tested-by: Gary King &lt;gking@nvidia.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tegra uart: Resetting baudrate variable if controller get reset.</title>
<updated>2010-03-02T02:31:32+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2010-02-26T19:09:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f1d2c093ffdcc37a0ade002752644eaada63bef3'/>
<id>f1d2c093ffdcc37a0ade002752644eaada63bef3</id>
<content type='text'>
Resetting the baudrate variable which stores the current baudrate after
resetting the controller.

Change-Id: Ia1abf68738897941690644252dbc3d3e4bf6bb0f
Reviewed-on: http://git-master/r/712
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>
Resetting the baudrate variable which stores the current baudrate after
resetting the controller.

Change-Id: Ia1abf68738897941690644252dbc3d3e4bf6bb0f
Reviewed-on: http://git-master/r/712
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 uart: Removing the modification of the mctrl</title>
<updated>2010-02-23T09:09:46+00:00</updated>
<author>
<name>Laxman Dewangan</name>
<email>ldewangan@nvidia.com</email>
</author>
<published>2010-02-23T08:23:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=364ea74fdd968c0370d64908891e22961e771788'/>
<id>364ea74fdd968c0370d64908891e22961e771788</id>
<content type='text'>
The serial_core have the modem state variable mctrl which was getting
modified by the tegra uart driver. The low level driver should not modify
this variable as serial core uses this for the modem control statesi and uses
in future for controling the modem states.

Removing the modification of this variable from low level driver.

Tested with suspend/resume with BT on whistler by monitoring the modem signals.

Change-Id: Ib6244c5160e40623a40e4764f5f156dc4f386ec9
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The serial_core have the modem state variable mctrl which was getting
modified by the tegra uart driver. The low level driver should not modify
this variable as serial core uses this for the modem control statesi and uses
in future for controling the modem states.

Removing the modification of this variable from low level driver.

Tested with suspend/resume with BT on whistler by monitoring the modem signals.

Change-Id: Ib6244c5160e40623a40e4764f5f156dc4f386ec9
</pre>
</div>
</content>
</entry>
<entry>
<title>serial: Fix intermediate variable overflow</title>
<updated>2010-02-11T03:12:48+00:00</updated>
<author>
<name>Anantha Idapalapati</name>
<email>aidapalapati@nvidia.com</email>
</author>
<published>2010-02-11T03:12:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=09634b1e6dc5cccb2bee313981757978353f4595'/>
<id>09634b1e6dc5cccb2bee313981757978353f4595</id>
<content type='text'>
tegra serial driver calculates the clock values based on baudrate requested.
while calculating clock values for higher baud rates, the intermediate
values are getting truncated because of 32-bit overflow. Redefining the
intermediate variables to 64-bit(unsigned long long instead of unsigned long)
is resolving the issue.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
tegra serial driver calculates the clock values based on baudrate requested.
while calculating clock values for higher baud rates, the intermediate
values are getting truncated because of 32-bit overflow. Redefining the
intermediate variables to 64-bit(unsigned long long instead of unsigned long)
is resolving the issue.
</pre>
</div>
</content>
</entry>
</feed>
