<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/can/flexcan.c, branch linux-3.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-10-06T02:40:20Z</updated>
<entry>
<title>can: flexcan: fix resume function</title>
<updated>2016-10-06T02:40:20Z</updated>
<author>
<name>Fabio Estevam</name>
</author>
<published>2016-08-17T15:41:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0b5f2bd0dfa47e81a2c2104849c27c5be920782e'/>
<id>urn:sha1:0b5f2bd0dfa47e81a2c2104849c27c5be920782e</id>
<content type='text'>
[ Upstream commit 4de349e786a3a2d51bd02d56f3de151bbc3c3df9 ]

On a imx6ul-pico board the following error is seen during system suspend:

dpm_run_callback(): platform_pm_resume+0x0/0x54 returns -110
PM: Device 2090000.flexcan failed to resume: error -110

The reason for this suspend error is because when the CAN interface is not
active the clocks are disabled and then flexcan_chip_enable() will
always fail due to a timeout error.

In order to fix this issue, only call flexcan_chip_enable/disable()
when the CAN interface is active.

Based on a patch from Dong Aisheng in the NXP kernel.

Signed-off-by: Fabio Estevam &lt;fabio.estevam@nxp.com&gt;
Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
</content>
</entry>
<entry>
<title>can: flexcan: Deferred on Regulator return EPROBE_DEFER</title>
<updated>2015-04-24T21:13:56Z</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=a32d3f403401705e40cacd8ca2a4eb7ff8d8fb69'/>
<id>urn:sha1:a32d3f403401705e40cacd8ca2a4eb7ff8d8fb69</id>
<content type='text'>
[ Upstream commit 555828ef45f825d6ee06559f0304163550eed380 ]

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;
Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2014-09-23T16:09:27Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2014-09-23T16:09:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1f6d80358dc9bbbeb56cb43384fa11fd645d9289'/>
<id>urn:sha1:1f6d80358dc9bbbeb56cb43384fa11fd645d9289</id>
<content type='text'>
Conflicts:
	arch/mips/net/bpf_jit.c
	drivers/net/can/flexcan.c

Both the flexcan and MIPS bpf_jit conflicts were cases of simple
overlapping changes.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>can: flexcan: increase FLEXCAN_MCR_MAXMB() macro to 7 bits</title>
<updated>2014-09-18T09:15:36Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-09-02T14:54:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4c728d804c4b9d1ae7f76e8f32c419bc21a6e540'/>
<id>urn:sha1:4c728d804c4b9d1ae7f76e8f32c419bc21a6e540</id>
<content type='text'>
This patch increases the mask in the FLEXCAN_MCR_MAXMB() to 7 bits as in the
newer flexcan cores the MAXMB field is 7 bits wide.

Reported-by: David Jander &lt;david@protonic.nl&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>can: flexcan: put TX mailbox into TX_INACTIVE mode after tx-complete</title>
<updated>2014-09-18T09:15:27Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-09-16T13:31:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=de5944883ebbedbf5adc8497659772f5da7b7d72'/>
<id>urn:sha1:de5944883ebbedbf5adc8497659772f5da7b7d72</id>
<content type='text'>
After sending a RTR frame the TX mailbox becomes a RX_EMPTY mailbox. To avoid
side effects when the RX-FIFO is full, this patch puts the TX mailbox into
TX_INACTIVE mode in the transmission complete interrupt handler. This, of
course, leaves a race window between the actual completion of the transmission
and the handling of tx-complete interrupt. However this is the best we can do
without busy polling the tx complete interrupt.

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: implement workaround for errata ERR005829</title>
<updated>2014-09-18T09:15:20Z</updated>
<author>
<name>David Jander</name>
</author>
<published>2014-09-03T14:47:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=25e924450fcb23c11c07c95ea8964dd9f174652e'/>
<id>urn:sha1:25e924450fcb23c11c07c95ea8964dd9f174652e</id>
<content type='text'>
This patch implements the workaround mentioned in ERR005829:

    ERR005829: FlexCAN: FlexCAN does not transmit a message that is enabled to
    be transmitted in a specific moment during the arbitration process.

Workaround: The workaround consists of two extra steps after setting up a
message for transmission:

Step 8: Reserve the first valid mailbox as an inactive mailbox (CODE=0b1000).
If RX FIFO is disabled, this mailbox must be message buffer 0. Otherwise, the
first valid mailbox can be found using the "RX FIFO filters" table in the
FlexCAN chapter of the chip reference manual.

Step 9: Write twice INACTIVE code (0b1000) into the first valid mailbox.

Signed-off-by: David Jander &lt;david@protonic.nl&gt;
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: correctly initialize mailboxes</title>
<updated>2014-09-18T09:15:15Z</updated>
<author>
<name>David Jander</name>
</author>
<published>2014-08-27T09:58:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc05b884a31dbf259cc73cc856e634ec3acbebb6'/>
<id>urn:sha1:fc05b884a31dbf259cc73cc856e634ec3acbebb6</id>
<content type='text'>
Apparently mailboxes may contain random data at startup, causing some of them
being prepared for message reception. This causes overruns being missed or even
confusing the IRQ check for trasmitted messages, increasing the transmit
counter instead of the error counter.

This patch initializes all mailboxes after the FIFO as RX_INACTIVE.

Signed-off-by: David Jander &lt;david@protonic.nl&gt;
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: mark TX mailbox as TX_INACTIVE</title>
<updated>2014-09-18T09:15:09Z</updated>
<author>
<name>Marc Kleine-Budde</name>
</author>
<published>2014-09-16T10:39:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c32fe4ad3e4861b2bfa1f44114c564935a123dda'/>
<id>urn:sha1:c32fe4ad3e4861b2bfa1f44114c564935a123dda</id>
<content type='text'>
This patch fixes the initialization of the TX mailbox. It is now correctly
initialized as TX_INACTIVE not RX_EMPTY.

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: avoid calling usleep_range from interrupt context</title>
<updated>2014-09-11T07:29:51Z</updated>
<author>
<name>David Jander</name>
</author>
<published>2014-08-27T10:02:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8badd65e48c90d66587359d5329c2813088c0f50'/>
<id>urn:sha1:8badd65e48c90d66587359d5329c2813088c0f50</id>
<content type='text'>
Apparently can_restart() runs from a (timer-) interrupt and can call
flexcan_chip_[en|dis]able(), so avoid using usleep_range()

Signed-off-by: David Jander &lt;david@protonic.nl&gt;
Cc: linux-stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2014-08-23T18:12:08Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2014-08-23T18:12:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f9474ddfaa009ead12bba44fa8fd49dc4536a124'/>
<id>urn:sha1:f9474ddfaa009ead12bba44fa8fd49dc4536a124</id>
<content type='text'>
Pulling to get some TIPC fixes that a net-next series depends
upon.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
