On 01.07.2021 01:00:16, Angelo Dureghello wrote: [...] > @@ -2089,7 +2151,14 @@ static int flexcan_probe(struct platform_device *pdev) > if (IS_ERR(regs)) > return PTR_ERR(regs); > > - devtype_data = of_device_get_match_data(&pdev->dev); > + of_id = of_match_device(flexcan_of_match, &pdev->dev); > + if (of_id) > + devtype_data = of_id->data; > + else if (platform_get_device_id(pdev)->driver_data) > + devtype_data = (struct flexcan_devtype_data *) > + platform_get_device_id(pdev)->driver_data; > + else > + return -ENODEV; > > if ((devtype_data->quirks & FLEXCAN_QUIRK_SUPPORT_FD) && > !(devtype_data->quirks & FLEXCAN_QUIRK_USE_OFF_TIMESTAMP)) { > @@ -2133,6 +2202,15 @@ static int flexcan_probe(struct platform_device *pdev) > priv->devtype_data = devtype_data; > priv->reg_xceiver = reg_xceiver; > > + if (devtype_data->quirks & FLEXCAN_QUIRK_NR_IRQ_3) { > + priv->irq_boff = platform_get_irq(pdev, 1); > + if (priv->irq_boff <= 0) > + return -ENODEV; I'm missing error handling here. > + priv->irq_err = platform_get_irq(pdev, 2); > + if (priv->irq_err <= 0) > + return -ENODEV; I'm missing error handling here. > + } > + > if (priv->devtype_data->quirks & FLEXCAN_QUIRK_SUPPORT_FD) { > priv->can.ctrlmode_supported |= CAN_CTRLMODE_FD | > CAN_CTRLMODE_FD_NON_ISO; > @@ -2322,6 +2400,7 @@ static struct platform_driver flexcan_driver = { > }, > .probe = flexcan_probe, > .remove = flexcan_remove, > + .id_table = flexcan_id_table, > }; > > module_platform_driver(flexcan_driver); Please add error handling then I think the patch can be merged. Marc -- Pengutronix e.K. | Marc Kleine-Budde | Embedded Linux | https://www.pengutronix.de | Vertretung West/Dortmund | Phone: +49-231-2826-924 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Attachment:
signature.asc
Description: PGP signature