diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2013-10-03 17:51:55 -0400 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2013-10-09 17:02:58 -0400 |
commit | e358784297992b012e8071764d996191dd2b1a54 (patch) | |
tree | 221e4a3028ce4b3014184d69ddaa1aa100701acc /drivers/net/can | |
parent | d5a7b406c529e4595ce03dc8f6dcf7fa36f106fa (diff) |
can: flexcan: fix mx28 detection by rearanging OF match table
The current implemetation of of_match_device() relies that the of_device_id
table in the driver is sorted from most specific to least specific compatible.
Without this patch the mx28 is detected as the less specific p1010. This leads
to a p1010 specific workaround is activated on the mx28, which is not needed.
Cc: linux-stable <stable@vger.kernel.org>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can')
-rw-r--r-- | drivers/net/can/flexcan.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c index f028c5d52e21..8f5ce747feb5 100644 --- a/drivers/net/can/flexcan.c +++ b/drivers/net/can/flexcan.c | |||
@@ -985,9 +985,9 @@ static void unregister_flexcandev(struct net_device *dev) | |||
985 | } | 985 | } |
986 | 986 | ||
987 | static const struct of_device_id flexcan_of_match[] = { | 987 | static const struct of_device_id flexcan_of_match[] = { |
988 | { .compatible = "fsl,p1010-flexcan", .data = &fsl_p1010_devtype_data, }, | ||
989 | { .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, }, | ||
990 | { .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, }, | 988 | { .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, }, |
989 | { .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, }, | ||
990 | { .compatible = "fsl,p1010-flexcan", .data = &fsl_p1010_devtype_data, }, | ||
991 | { /* sentinel */ }, | 991 | { /* sentinel */ }, |
992 | }; | 992 | }; |
993 | MODULE_DEVICE_TABLE(of, flexcan_of_match); | 993 | MODULE_DEVICE_TABLE(of, flexcan_of_match); |