Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

can: mcp25xxfd: narrow down wildcards in device tree bindings to "microchip,mcp251xfd"

The wildcard should be narrowed down to prevent existing and future devices
that are not compatible from matching. It is very unlikely that incompatible
devices will be released that do not match the wildcard.

Discussion Reference: https://lore.kernel.org/r/CAMuHMdVkwGjr6dJuMyhQNqFoJqbh6Ec5V2b5LenCshwpM2SDsQ@mail.gmail.com

Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Thomas Kopp <thomas.kopp@microchip.com>
Link: https://lore.kernel.org/r/20200930091423.755-1-thomas.kopp@microchip.com
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>

authored by

Thomas Kopp and committed by
Marc Kleine-Budde
dba1572c 0e051294

+11 -11
+9 -9
drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c
··· 41 41 }; 42 42 43 43 /* Autodetect model, start with CRC enabled. */ 44 - static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp25xxfd = { 44 + static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp251xfd = { 45 45 .quirks = MCP25XXFD_QUIRK_CRC_REG | MCP25XXFD_QUIRK_CRC_RX | 46 46 MCP25XXFD_QUIRK_CRC_TX | MCP25XXFD_QUIRK_ECC, 47 - .model = MCP25XXFD_MODEL_MCP25XXFD, 47 + .model = MCP25XXFD_MODEL_MCP251XFD, 48 48 }; 49 49 50 50 static const struct can_bittiming_const mcp25xxfd_bittiming_const = { ··· 78 78 return "MCP2517FD"; break; 79 79 case MCP25XXFD_MODEL_MCP2518FD: 80 80 return "MCP2518FD"; break; 81 - case MCP25XXFD_MODEL_MCP25XXFD: 82 - return "MCP25xxFD"; break; 81 + case MCP25XXFD_MODEL_MCP251XFD: 82 + return "MCP251xFD"; break; 83 83 } 84 84 85 85 return "<unknown>"; ··· 2494 2494 else 2495 2495 devtype_data = &mcp25xxfd_devtype_data_mcp2517fd; 2496 2496 2497 - if (!mcp25xxfd_is_25XX(priv) && 2497 + if (!mcp25xxfd_is_251X(priv) && 2498 2498 priv->devtype_data.model != devtype_data->model) { 2499 2499 netdev_info(ndev, 2500 2500 "Detected %s, but firmware specifies a %s. Fixing up.", ··· 2703 2703 .compatible = "microchip,mcp2518fd", 2704 2704 .data = &mcp25xxfd_devtype_data_mcp2518fd, 2705 2705 }, { 2706 - .compatible = "microchip,mcp25xxfd", 2707 - .data = &mcp25xxfd_devtype_data_mcp25xxfd, 2706 + .compatible = "microchip,mcp251xfd", 2707 + .data = &mcp25xxfd_devtype_data_mcp251xfd, 2708 2708 }, { 2709 2709 /* sentinel */ 2710 2710 }, ··· 2719 2719 .name = "mcp2518fd", 2720 2720 .driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp2518fd, 2721 2721 }, { 2722 - .name = "mcp25xxfd", 2723 - .driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp25xxfd, 2722 + .name = "mcp251xfd", 2723 + .driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp251xfd, 2724 2724 }, { 2725 2725 /* sentinel */ 2726 2726 },
+2 -2
drivers/net/can/spi/mcp25xxfd/mcp25xxfd.h
··· 553 553 enum mcp25xxfd_model { 554 554 MCP25XXFD_MODEL_MCP2517FD = 0x2517, 555 555 MCP25XXFD_MODEL_MCP2518FD = 0x2518, 556 - MCP25XXFD_MODEL_MCP25XXFD = 0xffff, /* autodetect model */ 556 + MCP25XXFD_MODEL_MCP251XFD = 0xffff, /* autodetect model */ 557 557 }; 558 558 559 559 struct mcp25xxfd_devtype_data { ··· 607 607 608 608 MCP25XXFD_IS(2517); 609 609 MCP25XXFD_IS(2518); 610 - MCP25XXFD_IS(25XX); 610 + MCP25XXFD_IS(251X); 611 611 612 612 static inline u8 mcp25xxfd_first_byte_set(u32 mask) 613 613 {