> I think this can be done a bit cleaner and like other drivers. I see 2 options. > The first way is use VID/PID compatible strings and don't set the > of_node pointer if there is a mismatch. Where should I do this? In pci_set_of_node() from drivers/pci/of.c? > Upon further thought, why can't you decide all this just on PCI > VID/PID? The giant switch statement in ath10k_pci_probe() could all > just be struct of driver_data from the PCI match table. I cannot decide all this just on PCI VID/PID because PCI VID/PID cannot tell whether calibration data are stored in the device (like most expansion cards) or not (for example, in an NVRAM cell referenced by the device tree).