| From 6818eb5230cc6e02e3ca2aaf994a031fe2474148 Mon Sep 17 00:00:00 2001 |
| From: Fabrizio Castro <fabrizio.castro@bp.renesas.com> |
| Date: Mon, 10 Sep 2018 11:43:13 +0100 |
| Subject: can: rcar_can: Fix erroneous registration |
| |
| [ Upstream commit 68c8d209cd4337da4fa04c672f0b62bb735969bc ] |
| |
| Assigning 2 to "renesas,can-clock-select" tricks the driver into |
| registering the CAN interface, even though we don't want that. |
| This patch improves one of the checks to prevent that from happening. |
| |
| Fixes: 862e2b6af9413b43 ("can: rcar_can: support all input clocks") |
| Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com> |
| Signed-off-by: Chris Paterson <Chris.Paterson2@renesas.com> |
| Reviewed-by: Simon Horman <horms+renesas@verge.net.au> |
| Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/can/rcar_can.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/can/rcar_can.c b/drivers/net/can/rcar_can.c |
| index 9718248e55f1..16144e7d0c8f 100644 |
| --- a/drivers/net/can/rcar_can.c |
| +++ b/drivers/net/can/rcar_can.c |
| @@ -24,6 +24,9 @@ |
| |
| #define RCAR_CAN_DRV_NAME "rcar_can" |
| |
| +#define RCAR_SUPPORTED_CLOCKS (BIT(CLKR_CLKP1) | BIT(CLKR_CLKP2) | \ |
| + BIT(CLKR_CLKEXT)) |
| + |
| /* Mailbox configuration: |
| * mailbox 60 - 63 - Rx FIFO mailboxes |
| * mailbox 56 - 59 - Tx FIFO mailboxes |
| @@ -785,7 +788,7 @@ static int rcar_can_probe(struct platform_device *pdev) |
| goto fail_clk; |
| } |
| |
| - if (clock_select >= ARRAY_SIZE(clock_names)) { |
| + if (!(BIT(clock_select) & RCAR_SUPPORTED_CLOCKS)) { |
| err = -EINVAL; |
| dev_err(&pdev->dev, "invalid CAN clock selected\n"); |
| goto fail_clk; |
| -- |
| 2.19.1 |
| |