Skip to content

Commit

Permalink
can: mcp25xxfd: narrow down wildcards in device tree bindings to "mic…
Browse files Browse the repository at this point in the history
…rochip,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>
  • Loading branch information
Thomas Kopp authored and Marc Kleine-Budde committed Sep 30, 2020
1 parent 0e05129 commit dba1572
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
18 changes: 9 additions & 9 deletions drivers/net/can/spi/mcp25xxfd/mcp25xxfd-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,10 @@ static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp2518fd = {
};

/* Autodetect model, start with CRC enabled. */
static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp25xxfd = {
static const struct mcp25xxfd_devtype_data mcp25xxfd_devtype_data_mcp251xfd = {
.quirks = MCP25XXFD_QUIRK_CRC_REG | MCP25XXFD_QUIRK_CRC_RX |
MCP25XXFD_QUIRK_CRC_TX | MCP25XXFD_QUIRK_ECC,
.model = MCP25XXFD_MODEL_MCP25XXFD,
.model = MCP25XXFD_MODEL_MCP251XFD,
};

static const struct can_bittiming_const mcp25xxfd_bittiming_const = {
Expand Down Expand Up @@ -78,8 +78,8 @@ static const char *__mcp25xxfd_get_model_str(enum mcp25xxfd_model model)
return "MCP2517FD"; break;
case MCP25XXFD_MODEL_MCP2518FD:
return "MCP2518FD"; break;
case MCP25XXFD_MODEL_MCP25XXFD:
return "MCP25xxFD"; break;
case MCP25XXFD_MODEL_MCP251XFD:
return "MCP251xFD"; break;
}

return "<unknown>";
Expand Down Expand Up @@ -2494,7 +2494,7 @@ static int mcp25xxfd_register_chip_detect(struct mcp25xxfd_priv *priv)
else
devtype_data = &mcp25xxfd_devtype_data_mcp2517fd;

if (!mcp25xxfd_is_25XX(priv) &&
if (!mcp25xxfd_is_251X(priv) &&
priv->devtype_data.model != devtype_data->model) {
netdev_info(ndev,
"Detected %s, but firmware specifies a %s. Fixing up.",
Expand Down Expand Up @@ -2703,8 +2703,8 @@ static const struct of_device_id mcp25xxfd_of_match[] = {
.compatible = "microchip,mcp2518fd",
.data = &mcp25xxfd_devtype_data_mcp2518fd,
}, {
.compatible = "microchip,mcp25xxfd",
.data = &mcp25xxfd_devtype_data_mcp25xxfd,
.compatible = "microchip,mcp251xfd",
.data = &mcp25xxfd_devtype_data_mcp251xfd,
}, {
/* sentinel */
},
Expand All @@ -2719,8 +2719,8 @@ static const struct spi_device_id mcp25xxfd_id_table[] = {
.name = "mcp2518fd",
.driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp2518fd,
}, {
.name = "mcp25xxfd",
.driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp25xxfd,
.name = "mcp251xfd",
.driver_data = (kernel_ulong_t)&mcp25xxfd_devtype_data_mcp251xfd,
}, {
/* sentinel */
},
Expand Down
4 changes: 2 additions & 2 deletions drivers/net/can/spi/mcp25xxfd/mcp25xxfd.h
Original file line number Diff line number Diff line change
Expand Up @@ -553,7 +553,7 @@ struct mcp25xxfd_regs_status {
enum mcp25xxfd_model {
MCP25XXFD_MODEL_MCP2517FD = 0x2517,
MCP25XXFD_MODEL_MCP2518FD = 0x2518,
MCP25XXFD_MODEL_MCP25XXFD = 0xffff, /* autodetect model */
MCP25XXFD_MODEL_MCP251XFD = 0xffff, /* autodetect model */
};

struct mcp25xxfd_devtype_data {
Expand Down Expand Up @@ -607,7 +607,7 @@ mcp25xxfd_is_##_model(const struct mcp25xxfd_priv *priv) \

MCP25XXFD_IS(2517);
MCP25XXFD_IS(2518);
MCP25XXFD_IS(25XX);
MCP25XXFD_IS(251X);

static inline u8 mcp25xxfd_first_byte_set(u32 mask)
{
Expand Down

0 comments on commit dba1572

Please sign in to comment.