<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/arch/blackfin/lib, branch v2.6.27.14</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>Blackfin arch: Allow ins functions to have a low latency version</title>
<updated>2008-08-14T07:12:55+00:00</updated>
<author>
<name>Robin Getz</name>
<email>rgetz@blackfin.uclinux.org</email>
</author>
<published>2008-08-14T07:12:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=251383c7c50cf17664a4d7d60d3a52d8827a0e11'/>
<id>251383c7c50cf17664a4d7d60d3a52d8827a0e11</id>
<content type='text'>
Signed-off-by: Robin Getz &lt;rgetz@blackfin.uclinux.org&gt;
Signed-off-by: Bryan Wu &lt;cooloney@kernel.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Robin Getz &lt;rgetz@blackfin.uclinux.org&gt;
Signed-off-by: Bryan Wu &lt;cooloney@kernel.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Blackfin arch: Fix typo. it should be _outsw_8</title>
<updated>2008-05-20T08:45:29+00:00</updated>
<author>
<name>Bryan Wu</name>
<email>cooloney@kernel.org</email>
</author>
<published>2008-05-20T08:45:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ca56d9aaf2a135e0eb528df427f7dda15d077b11'/>
<id>ca56d9aaf2a135e0eb528df427f7dda15d077b11</id>
<content type='text'>
Signed-off-by: Bryan Wu &lt;cooloney@kernel.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Bryan Wu &lt;cooloney@kernel.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Blackfin arch: IO Port functions to read/write unalligned memory</title>
<updated>2008-05-17T08:38:52+00:00</updated>
<author>
<name>Michael Hennerich</name>
<email>michael.hennerich@analog.com</email>
</author>
<published>2008-05-17T08:38:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=59069676383c6446f50555e04aed7f51d5de695e'/>
<id>59069676383c6446f50555e04aed7f51d5de695e</id>
<content type='text'>
Signed-off-by: Michael Hennerich &lt;michael.hennerich@analog.com&gt;
Signed-off-by: Bryan Wu &lt;cooloney@kernel.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Michael Hennerich &lt;michael.hennerich@analog.com&gt;
Signed-off-by: Bryan Wu &lt;cooloney@kernel.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>[Blackfin] arch: Blackfin checksum annotations</title>
<updated>2008-05-12T03:55:10+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2008-05-12T03:55:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=45b3947c2de5841d691f1d27d30419b9fae2d86c'/>
<id>45b3947c2de5841d691f1d27d30419b9fae2d86c</id>
<content type='text'>
FSVOtest in this case, since I don't have the hardware...
However, all changes seen by gcc are actually
 - explicit cast to unsigned short in return expression of functions
    returning unsigned short
 - csum_fold() return type changed from unsigned int to __sum16
   (unsigned short), same as for all other architecture and as net/* expects;
   expression actually returned is ((~(sum &lt;&lt; 16)) &gt;&gt; 16) with sum being
   unsigned 32bit, so it's (a) going to fit into the range of unsigned short
   and (b) had been unsigned all along, so no sign expansion mess happened.

Tested-by: Bryan Wu &lt;cooloney@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Bryan Wu &lt;cooloney@kernel.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FSVOtest in this case, since I don't have the hardware...
However, all changes seen by gcc are actually
 - explicit cast to unsigned short in return expression of functions
    returning unsigned short
 - csum_fold() return type changed from unsigned int to __sum16
   (unsigned short), same as for all other architecture and as net/* expects;
   expression actually returned is ((~(sum &lt;&lt; 16)) &gt;&gt; 16) with sum being
   unsigned 32bit, so it's (a) going to fit into the range of unsigned short
   and (b) had been unsigned all along, so no sign expansion mess happened.

Tested-by: Bryan Wu &lt;cooloney@kernel.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Signed-off-by: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Bryan Wu &lt;cooloney@kernel.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>[Blackfin] arch: fix bug - make memcpy return the dest addr.</title>
<updated>2007-12-21T13:12:21+00:00</updated>
<author>
<name>Yi Li</name>
<email>yi.li@analog.com</email>
</author>
<published>2007-12-21T13:12:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c50e19f49830fb651b4b702ad2c3abcdf110b576'/>
<id>c50e19f49830fb651b4b702ad2c3abcdf110b576</id>
<content type='text'>
The memcpy() function returns the src pointer instead of the dst pointer.
This patch fix this bug.

Signed-off-by: Yi Li &lt;yi.li@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The memcpy() function returns the src pointer instead of the dst pointer.
This patch fix this bug.

Signed-off-by: Yi Li &lt;yi.li@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Blackfin arch: move EXPORT_SYMBOL() to C files where the symbol is actually defined</title>
<updated>2007-11-21T07:34:51+00:00</updated>
<author>
<name>Mike Frysinger</name>
<email>michael.frysinger@analog.com</email>
</author>
<published>2007-11-21T07:34:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d0025e5edf0e593da599358d70fdade47c3b703e'/>
<id>d0025e5edf0e593da599358d70fdade47c3b703e</id>
<content type='text'>
Signed-off-by: Mike Frysinger &lt;michael.frysinger@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Mike Frysinger &lt;michael.frysinger@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Blackfin arch: Add assembly function insl_16</title>
<updated>2007-11-17T15:46:58+00:00</updated>
<author>
<name>Michael Hennerich</name>
<email>michael.hennerich@analog.com</email>
</author>
<published>2007-11-17T15:46:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5c91fb902d4e6f6006faf45edd3f25932cb7d58c'/>
<id>5c91fb902d4e6f6006faf45edd3f25932cb7d58c</id>
<content type='text'>
/*
 * CPUs often take a performance hit when accessing unaligned memory
 * locations. The actual performance hit varies, it can be small if the
 * hardware handles it or large if we have to take an exception and fix
 * it
 * in software.
 *
 * Since an ethernet header is 14 bytes network drivers often end up
 * with
 * the IP header at an unaligned offset. The IP header can be aligned by
 * shifting the start of the packet by 2 bytes. Drivers should do this
 * with:
 *
 * skb_reserve(NET_IP_ALIGN);
 *
 * The downside to this alignment of the IP header is that the DMA is
 * now
 * unaligned. On some architectures the cost of an unaligned DMA is high
 * and this cost outweighs the gains made by aligning the IP header.
 *
 * Since this trade off varies between architectures, we allow
 * NET_IP_ALIGN
 * to be overridden.
 */

This new function insl_16 allows to read form 32-bit IO and writes to
16-bit aligned memory. This is useful in above described scenario -
In particular with the AXIS AX88180 Gigabit Ethernet MAC.
Once the device is in 32-bit mode, reads from the RX FIFO always
decrements 4bytes.
While on the other side the destination address in SDRAM is always
16-bit aligned.
If we use skb_reserve(0) the receive buffer is 32-bit aligned but later
we hit a unaligned exception in the IP code.

Signed-off-by: Michael Hennerich &lt;michael.hennerich@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
/*
 * CPUs often take a performance hit when accessing unaligned memory
 * locations. The actual performance hit varies, it can be small if the
 * hardware handles it or large if we have to take an exception and fix
 * it
 * in software.
 *
 * Since an ethernet header is 14 bytes network drivers often end up
 * with
 * the IP header at an unaligned offset. The IP header can be aligned by
 * shifting the start of the packet by 2 bytes. Drivers should do this
 * with:
 *
 * skb_reserve(NET_IP_ALIGN);
 *
 * The downside to this alignment of the IP header is that the DMA is
 * now
 * unaligned. On some architectures the cost of an unaligned DMA is high
 * and this cost outweighs the gains made by aligning the IP header.
 *
 * Since this trade off varies between architectures, we allow
 * NET_IP_ALIGN
 * to be overridden.
 */

This new function insl_16 allows to read form 32-bit IO and writes to
16-bit aligned memory. This is useful in above described scenario -
In particular with the AXIS AX88180 Gigabit Ethernet MAC.
Once the device is in 32-bit mode, reads from the RX FIFO always
decrements 4bytes.
While on the other side the destination address in SDRAM is always
16-bit aligned.
If we use skb_reserve(0) the receive buffer is 32-bit aligned but later
we hit a unaligned exception in the IP code.

Signed-off-by: Michael Hennerich &lt;michael.hennerich@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Blackfin arch: use do_div() for the 64bit division as pointed out by Bernd</title>
<updated>2007-11-23T03:28:11+00:00</updated>
<author>
<name>Mike Frysinger</name>
<email>michael.frysinger@analog.com</email>
</author>
<published>2007-11-23T03:28:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1754a5d9f97f16f729066b8f125351af4951d6fe'/>
<id>1754a5d9f97f16f729066b8f125351af4951d6fe</id>
<content type='text'>
If you need a 64 bit divide in the kernel, use asm/div64.h.
Revert the addition of udivdi3.

Cc: Bernd Schmidt &lt;bernd.schmidt@analog.com&gt;
Signed-off-by: Mike Frysinger &lt;michael.frysinger@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If you need a 64 bit divide in the kernel, use asm/div64.h.
Revert the addition of udivdi3.

Cc: Bernd Schmidt &lt;bernd.schmidt@analog.com&gt;
Signed-off-by: Mike Frysinger &lt;michael.frysinger@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Blackfin arch: add assembly function for doing 64bit unsigned division</title>
<updated>2007-10-21T14:57:36+00:00</updated>
<author>
<name>Mike Frysinger</name>
<email>michael.frysinger@analog.com</email>
</author>
<published>2007-10-21T14:57:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b0a68dc07ec395d44849ce98eb417713ca333410'/>
<id>b0a68dc07ec395d44849ce98eb417713ca333410</id>
<content type='text'>
Signed-off-by: Mike Frysinger &lt;michael.frysinger@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Mike Frysinger &lt;michael.frysinger@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Blackfin arch: revise anomaly handling by basing things on the compiler not the kconfig defines</title>
<updated>2007-07-25T03:19:14+00:00</updated>
<author>
<name>Mike Frysinger</name>
<email>michael.frysinger@analog.com</email>
</author>
<published>2007-07-25T03:19:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1aafd9091226a02b481298315f959f777294684e'/>
<id>1aafd9091226a02b481298315f959f777294684e</id>
<content type='text'>
revise anomaly handling by basing things on the compiler not the kconfig defines,
so the header is stable and usable outside of the kernel. This also allows us to
move some code from preprocessing to compiling (gcc culls dead code)
which should help with code quality (readability, catch minor bugs, etc...).

Signed-off-by: Mike Frysinger &lt;michael.frysinger@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
revise anomaly handling by basing things on the compiler not the kconfig defines,
so the header is stable and usable outside of the kernel. This also allows us to
move some code from preprocessing to compiling (gcc culls dead code)
which should help with code quality (readability, catch minor bugs, etc...).

Signed-off-by: Mike Frysinger &lt;michael.frysinger@analog.com&gt;
Signed-off-by: Bryan Wu &lt;bryan.wu@analog.com&gt;

</pre>
</div>
</content>
</entry>
</feed>
