X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fsamsung%2Fpatches-4.14%2F002-dm9000-clk.patch;fp=target%2Flinux%2Fsamsung%2Fpatches-4.14%2F002-dm9000-clk.patch;h=1bf2a7ab2053b9b66d424245d3cede209aae30d1;hb=84c212da44cf5df210ae166ed7e64adf764ccf3f;hp=0000000000000000000000000000000000000000;hpb=4caab808300ad75575d778bae6e184caa26aeabc;p=openwrt%2Fstaging%2Fwigyori.git diff --git a/target/linux/samsung/patches-4.14/002-dm9000-clk.patch b/target/linux/samsung/patches-4.14/002-dm9000-clk.patch new file mode 100644 index 0000000000..1bf2a7ab20 --- /dev/null +++ b/target/linux/samsung/patches-4.14/002-dm9000-clk.patch @@ -0,0 +1,37 @@ +--- a/drivers/net/ethernet/davicom/dm9000.c ++++ b/drivers/net/ethernet/davicom/dm9000.c +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + + #include + #include +@@ -1436,6 +1437,7 @@ dm9000_probe(struct platform_device *pde + enum of_gpio_flags flags; + struct regulator *power; + bool inv_mac_addr = false; ++ const char *clk_name; + + power = devm_regulator_get(dev, "vcc"); + if (IS_ERR(power)) { +@@ -1573,6 +1575,18 @@ dm9000_probe(struct platform_device *pde + goto out; + } + ++ /* Enable clock if specified */ ++ if (!of_property_read_string(dev->of_node, "clock-names", &clk_name)) { ++ struct clk *clk = devm_clk_get(dev, clk_name); ++ if (IS_ERR(clk)) { ++ dev_err(dev, "cannot get clock of %s\n", clk_name); ++ ret = PTR_ERR(clk); ++ goto out; ++ } ++ clk_prepare_enable(clk); ++ dev_info(dev, "enable clock '%s'\n", clk_name); ++ } ++ + /* fill in parameters for net-dev structure */ + ndev->base_addr = (unsigned long)db->io_addr; +