X-Git-Url: http://plrg.eecs.uci.edu/git/?p=firefly-linux-kernel-4.4.55.git;a=blobdiff_plain;f=drivers%2Fof%2Fof_pci.c;h=038c0ec1b0c523b6d2a191f1476d9684efc270c7;hp=b1449f71601cb257f1057b77c217a943da92cab8;hb=d776fdb776681cd013be513ba70ffa51d934f19d;hpb=3e5050e60e3b51e32940926ccb4aa5965f618306 diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c index b1449f71601c..038c0ec1b0c5 100644 --- a/drivers/of/of_pci.c +++ b/drivers/of/of_pci.c @@ -118,6 +118,27 @@ int of_get_pci_domain_nr(struct device_node *node) } EXPORT_SYMBOL_GPL(of_get_pci_domain_nr); +/** + * This function will try to find the limitation of link speed by finding + * a property called "max-link-speed" of the given device node. + * + * @node: device tree node with the max link speed information + * + * Returns the associated max link speed from DT, or a negative value if the + * required property is not found or is invalid. + */ +int of_pci_get_max_link_speed(struct device_node *node) +{ + u32 max_link_speed; + + if (of_property_read_u32(node, "max-link-speed", &max_link_speed) || + max_link_speed > 4) + return -EINVAL; + + return max_link_speed; +} +EXPORT_SYMBOL_GPL(of_pci_get_max_link_speed); + /** * of_pci_check_probe_only - Setup probe only mode if linux,pci-probe-only * is present and valid