The m_can tries to detect of niso (canfd) is available while in standby, this function results in the following error:
tcan4x5x spi2.0 (unnamed net_device) (uninitialized): Failed to init module tcan4x5x spi2.0: m_can device registered (irq=84, version=32) tcan4x5x spi2.0 can2: TCAN4X5X successfully initialized.
When the tcan device comes out of reset it comes out in standby mode. The m_can driver tries to access the control register but fails due to the device is in standby mode. So this patch will put the tcan device in normal mode before the m_can driver does the initialization.
Fixes: 5443c226ba91 ("can: tcan4x5x: Add tcan4x5x driver to the kernel") Cc: stable@vger.kernel.org Signed-off-by: Sean Nyekjaer sean@geanix.com --- tcan4x5x_init will now be called from probe and the m_can call. Would it be better to move the mode switch only to the probe function?
drivers/net/can/m_can/tcan4x5x.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/net/can/m_can/tcan4x5x.c b/drivers/net/can/m_can/tcan4x5x.c index 4e1789ea2bc3..3c30209ca84c 100644 --- a/drivers/net/can/m_can/tcan4x5x.c +++ b/drivers/net/can/m_can/tcan4x5x.c @@ -455,6 +455,8 @@ static int tcan4x5x_can_probe(struct spi_device *spi) if (ret) goto out_clk;
+ tcan4x5x_init(mcan_class); + tcan4x5x_power_enable(priv->power, 1);
ret = m_can_class_register(mcan_class);
On 12/9/19 8:24 PM, Sean Nyekjaer wrote:
The m_can tries to detect of niso (canfd) is available while in standby,
What's "of niso"?
Marc
On 09/12/2019 20.44, Marc Kleine-Budde wrote:
On 12/9/19 8:24 PM, Sean Nyekjaer wrote:
The m_can tries to detect of niso (canfd) is available while in standby,
What's "of niso"?
Should have been "if niso" :)
Non ISO Operation
0 – CAN FD Frame format according to ISO 11898-1:2015
1 – CAN FD Frame format according to Bosch CAN FD Specification V1.0
/Sean
On 12/9/19 8:24 PM, Sean Nyekjaer wrote:
The m_can tries to detect of niso (canfd) is available while in standby, this function results in the following error:
tcan4x5x spi2.0 (unnamed net_device) (uninitialized): Failed to init module tcan4x5x spi2.0: m_can device registered (irq=84, version=32) tcan4x5x spi2.0 can2: TCAN4X5X successfully initialized.
When the tcan device comes out of reset it comes out in standby mode. The m_can driver tries to access the control register but fails due to the device is in standby mode. So this patch will put the tcan device in normal mode before the m_can driver does the initialization.
Fixes: 5443c226ba91 ("can: tcan4x5x: Add tcan4x5x driver to the kernel") Cc: stable@vger.kernel.org Signed-off-by: Sean Nyekjaer sean@geanix.com
tcan4x5x_init will now be called from probe and the m_can call. Would it be better to move the mode switch only to the probe function?
drivers/net/can/m_can/tcan4x5x.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/net/can/m_can/tcan4x5x.c b/drivers/net/can/m_can/tcan4x5x.c index 4e1789ea2bc3..3c30209ca84c 100644 --- a/drivers/net/can/m_can/tcan4x5x.c +++ b/drivers/net/can/m_can/tcan4x5x.c @@ -455,6 +455,8 @@ static int tcan4x5x_can_probe(struct spi_device *spi) if (ret) goto out_clk;
- tcan4x5x_init(mcan_class);
add error handling
- tcan4x5x_power_enable(priv->power, 1);
ret = m_can_class_register(mcan_class);
Marc
On 12/9/19 8:24 PM, Sean Nyekjaer wrote:
The m_can tries to detect of niso (canfd) is available while in standby, this function results in the following error:
tcan4x5x spi2.0 (unnamed net_device) (uninitialized): Failed to init module tcan4x5x spi2.0: m_can device registered (irq=84, version=32) tcan4x5x spi2.0 can2: TCAN4X5X successfully initialized.
Can you add the missing error handling to m_can_config_endisable(), and handle this error correctly in all its callers?
Marc
On 02/01/2020 16.46, Marc Kleine-Budde wrote:
On 12/9/19 8:24 PM, Sean Nyekjaer wrote:
The m_can tries to detect of niso (canfd) is available while in standby, this function results in the following error:
tcan4x5x spi2.0 (unnamed net_device) (uninitialized): Failed to init module tcan4x5x spi2.0: m_can device registered (irq=84, version=32) tcan4x5x spi2.0 can2: TCAN4X5X successfully initialized.
Can you add the missing error handling to m_can_config_endisable(), and handle this error correctly in all its callers?
Marc
Hi Marc
Sorry if this was a bit of mess :) Version 6 of this patch is already applied.... https://www.spinics.net/lists/linux-can/msg03186.html
Do you want me to add more error handling than this?
/Sean
On 1/2/20 5:09 PM, Sean Nyekjaer wrote:
Sorry if this was a bit of mess :) Version 6 of this patch is already applied.... https://www.spinics.net/lists/linux-can/msg03186.html
I know, and I just send it out in a pull request. :D
Do you want me to add more error handling than this?
So far I've no more comments, besides the ones I've send earlier today:
https://lkml.org/lkml/2020/1/2/197 https://lkml.org/lkml/2020/1/2/229 https://lkml.org/lkml/2020/1/2/296
If you want to contribute, please coordinate with Dan here. I think we'll roll the changes via can-next.
Marc
linux-stable-mirror@lists.linaro.org