<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/can/flexcan.c, branch linux-3.14.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.14.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.14.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-04-19T08:11:08Z</updated>
<entry>
<title>can: flexcan: Deferred on Regulator return EPROBE_DEFER</title>
<updated>2015-04-19T08:11:08Z</updated>
<author>
<name>Andreas Werner</name>
</author>
<published>2015-03-22T16:35:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=92fe878fdabf6b29d1550f40dc65eaa249c19e57'/>
<id>urn:sha1:92fe878fdabf6b29d1550f40dc65eaa249c19e57</id>
<content type='text'>
commit 555828ef45f825d6ee06559f0304163550eed380 upstream.

Return EPROBE_DEFER if Regulator returns EPROBE_DEFER

If the Flexcan driver is built into kernel and a regulator is used to
enable the CAN transceiver, the Flexcan driver may not use the regulator.

When initializing the Flexcan device with a regulator defined in the device
tree, but not initialized, the regulator subsystem returns EPROBE_DEFER, hence
the Flexcan init fails.

The solution for this is to return EPROBE_DEFER if regulator is not initialized
and wait until the regulator is initialized.

Signed-off-by: Andreas Werner &lt;kernel@andy89.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>can: flexcan: factor out soft reset into seperate funtion</title>
<updated>2014-03-03T13:29:51Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-02-28T14:16:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4b5b82274a17f0ebbf02378df2ba7f36a3f5af19'/>
<id>urn:sha1:4b5b82274a17f0ebbf02378df2ba7f36a3f5af19</id>
<content type='text'>
This patch moves the soft reset into a seperate function.

Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: flexcan_remove(): add missing netif_napi_del()</title>
<updated>2014-03-03T13:29:51Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-02-28T19:48:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d96e43e8fce28cf97df576a07af9d65657a41a6f'/>
<id>urn:sha1:d96e43e8fce28cf97df576a07af9d65657a41a6f</id>
<content type='text'>
This patch adds the missing netif_napi_del() to the flexcan_remove() function.

Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: fix transition from and to freeze mode in chip_{,un}freeze</title>
<updated>2014-03-03T11:41:46Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-02-28T16:08:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b1aa1c7a2165b44ecce66286a3095cc6c7667d1c'/>
<id>urn:sha1:b1aa1c7a2165b44ecce66286a3095cc6c7667d1c</id>
<content type='text'>
This patch factors out freeze and unfreeze of the CAN core into seperate
functions. Experiments have shown that the transition from and to freeze mode
may take several microseconds, especially the time entering the freeze mode
depends on the current bitrate.

This patch adds a while loop which polls the Freeze Mode ACK bit (FRZ_ACK) that
indicates a successfull mode change. If the function runs into a timeout a
error value is returned.

Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: factor out transceiver {en,dis}able into seperate functions</title>
<updated>2014-03-03T11:41:39Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-02-28T16:18:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f003698e23f6f56a791774f14d0ac35d04872490'/>
<id>urn:sha1:f003698e23f6f56a791774f14d0ac35d04872490</id>
<content type='text'>
This patch moves the transceiver enable and disable into seperate functions,
where the NULL pointer check is hidden.

Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: fix transition from and to low power mode in chip_{en,dis}able</title>
<updated>2014-03-03T11:41:27Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-02-28T14:30:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9b00b300e7bce032c467c36ca47fe2a776887fc2'/>
<id>urn:sha1:9b00b300e7bce032c467c36ca47fe2a776887fc2</id>
<content type='text'>
In flexcan_chip_enable() and flexcan_chip_disable() fixed delays are used.
Experiments have shown that the transition from and to low power mode may take
several microseconds.

This patch adds a while loop which polls the Low Power Mode ACK bit (LPM_ACK)
that indicates a successfull mode change. If the function runs into a timeout a
error value is returned.

Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: flexcan_open(): fix error path if flexcan_chip_start() fails</title>
<updated>2014-03-03T11:41:22Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-02-28T13:52:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7e9e148af01ef388efb6e2490805970be4622792'/>
<id>urn:sha1:7e9e148af01ef388efb6e2490805970be4622792</id>
<content type='text'>
If flexcan_chip_start() in flexcan_open() fails, the interrupt is not freed,
this patch adds the missing cleanup.

Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: fix shutdown: first disable chip, then all interrupts</title>
<updated>2014-03-03T11:40:52Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-02-19T11:00:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5be93bdda64e85450598c6e97f79fb8f6acf30e0'/>
<id>urn:sha1:5be93bdda64e85450598c6e97f79fb8f6acf30e0</id>
<content type='text'>
When shutting down the CAN interface (ifconfig canX down) during high CAN bus
loads, the CAN core might hang and freeze the whole CPU.

This patch fixes the shutdown sequence by first disabling the CAN core then
disabling all interrupts.

Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: fix flexcan driver build for big endian on ARM and little endian on PowerPc</title>
<updated>2014-01-29T19:23:22Z</updated>
<author>
<name>Arnd Bergmann</name>
</author>
<published>2014-01-14T10:44:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0e4b949e6620689b1d3142e20bca2c9d1f918fda'/>
<id>urn:sha1:0e4b949e6620689b1d3142e20bca2c9d1f918fda</id>
<content type='text'>
There is no reason to disallow building the driver on big-endian ARM kernels.
Furthermore, the current behavior is actually broken on little-endian PowerPC
as well.

The choice of register accessor functions must purely depend on the CPU
architecture, not which endianess the CPU is running on. Note that we nowadays
allow both big-endian ARM and little-endian PowerPC kernels.

With this patch applied, we will do the right thing in all four combinations.

Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Cc: Guenter Roeck &lt;linux@roeck-us.net&gt;
Cc: Lothar Waßmann &lt;LW@KARO-electronics.de&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: use correct clock as base for bit rate calculation</title>
<updated>2013-11-26T14:39:47Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2013-11-25T21:15:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a3e5173f5e72cbf7f0c8927b33082e361c16d72'/>
<id>urn:sha1:1a3e5173f5e72cbf7f0c8927b33082e361c16d72</id>
<content type='text'>
The flexcan IP core uses the peripheral clock ("per") as basic clock for the
bit timing calculation. However the driver uses the the wrong clock ("ipg").
This leads to wrong bit rates if the rates on both clock are different.

This patch fixes the problem by using the correct clock for the bit rate
calculation.

Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
</feed>
