On 26/12/2024 03:29, Yijie Yang wrote: > > > On 2024-12-25 19:37, Krzysztof Kozlowski wrote: >> On 25/12/2024 11:04, Yijie Yang wrote: >> >>> static int qcom_ethqos_probe(struct platform_device *pdev) >>> { >>> - struct device_node *np = pdev->dev.of_node; >>> + struct device_node *np = pdev->dev.of_node, *root; >>> const struct ethqos_emac_driver_data *data; >>> struct plat_stmmacenet_data *plat_dat; >>> struct stmmac_resources stmmac_res; >>> @@ -810,6 +805,15 @@ static int qcom_ethqos_probe(struct platform_device *pdev) >>> ret = of_get_phy_mode(np, ðqos->phy_mode); >>> if (ret) >>> return dev_err_probe(dev, ret, "Failed to get phy mode\n"); >>> + >>> + root = of_find_node_by_path("/"); >>> + if (root && of_device_is_compatible(root, "qcom,sa8540p-ride")) >> >> >> Nope, your drivers are not supposed to poke root compatibles. Drop and >> fix your driver to behave correctly for all existing devices. >> > > Since this change introduces a new flag in the DTS, we must maintain ABI > compatibility with the kernel. The new flag is specific to the board, so It's not, I don't see it specific to the board in the bindings. > I need to ensure root nodes are matched to allow older boards to > continue functioning as before. I'm happy to adopt that approach if > there are any more elegant solutions. I don't think you understood the problem. Why you are not handling this for my board, sa8775p-rideX and sa8225-pre-ride-yellow-shrimp? Best regards, Krzysztof