Merge tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC non-critical fixes from Olof Johansson: "Here is a collection of fixes (and some intermixed cleanups) that were considered less important and thus not included in the later parts of the 3.9-rc cycle. It's a bit all over the map, contents wise. A series of ux500 fixes and cleanups, a bunch of various fixes for OMAP and tegra, and some for Freescale i.MX and even Qualcomm MSM. Note that there's also a patch on this branch to globally turn off -Wmaybe-uninitialized when building with -Os. It's been posted several times by Arnd and no dissent was raised, but nobody seemed interested to pick it up. So here it is, as the topmost patch." * tag 'fixes-nc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (70 commits) Turn off -Wmaybe-uninitialized when building with -Os ARM: orion5x: include linux/cpu.h ARM: tegra: call cpu_do_idle from C code ARM: u300: fix ages old copy/paste bug ARM: OMAP2+: add dependencies on ARCH_MULTI_V6/V7 ARM: tegra: solve adr range issue with THUMB2_KERNEL enabled ARM: tegra: fix relocation truncated error when THUMB2_KERNEL enabled ARM: tegra: fix build error when THUMB2_KERNEL enabled ARM: msm: Fix uncompess.h tx underrun check ARM: vexpress: Remove A9 PMU compatible values for non-A9 platforms ARM: cpuimx27 and mbimx27: prepend CONFIG_ to Kconfig macro ARM: OMAP2+: fix typo "CONFIG_BRIDGE_DVFS" ARM: OMAP1: remove "config MACH_OMAP_HTCWIZARD" ARM: mach-imx: mach-imx6q: Fix sparse warnings ARM: mach-imx: src: Include "common.h ARM: mach-imx: gpc: Include "common.h" ARM: mach-imx: avic: Staticize *avic_base ARM: mach-imx: tzic: Staticize *tzic_base ARM: mach-imx: clk: Include "clk.h" ARM: mach-imx: clk-busy: Staticize clk_busy_mux_ops ...
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/crc32.h>
|
||||
#include <linux/clk.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/etherdevice.h>
|
||||
@@ -144,6 +145,9 @@ struct smsc911x_data {
|
||||
|
||||
/* regulators */
|
||||
struct regulator_bulk_data supplies[SMSC911X_NUM_SUPPLIES];
|
||||
|
||||
/* clock */
|
||||
struct clk *clk;
|
||||
};
|
||||
|
||||
/* Easy access to information */
|
||||
@@ -369,7 +373,7 @@ out:
|
||||
}
|
||||
|
||||
/*
|
||||
* enable resources, currently just regulators.
|
||||
* enable regulator and clock resources.
|
||||
*/
|
||||
static int smsc911x_enable_resources(struct platform_device *pdev)
|
||||
{
|
||||
@@ -382,6 +386,13 @@ static int smsc911x_enable_resources(struct platform_device *pdev)
|
||||
if (ret)
|
||||
netdev_err(ndev, "failed to enable regulators %d\n",
|
||||
ret);
|
||||
|
||||
if (!IS_ERR(pdata->clk)) {
|
||||
ret = clk_prepare_enable(pdata->clk);
|
||||
if (ret < 0)
|
||||
netdev_err(ndev, "failed to enable clock %d\n", ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -396,6 +407,10 @@ static int smsc911x_disable_resources(struct platform_device *pdev)
|
||||
|
||||
ret = regulator_bulk_disable(ARRAY_SIZE(pdata->supplies),
|
||||
pdata->supplies);
|
||||
|
||||
if (!IS_ERR(pdata->clk))
|
||||
clk_disable_unprepare(pdata->clk);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -421,6 +436,12 @@ static int smsc911x_request_resources(struct platform_device *pdev)
|
||||
if (ret)
|
||||
netdev_err(ndev, "couldn't get regulators %d\n",
|
||||
ret);
|
||||
|
||||
/* Request clock */
|
||||
pdata->clk = clk_get(&pdev->dev, NULL);
|
||||
if (IS_ERR(pdata->clk))
|
||||
netdev_warn(ndev, "couldn't get clock %li\n", PTR_ERR(pdata->clk));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -436,6 +457,12 @@ static void smsc911x_free_resources(struct platform_device *pdev)
|
||||
/* Free regulators */
|
||||
regulator_bulk_free(ARRAY_SIZE(pdata->supplies),
|
||||
pdata->supplies);
|
||||
|
||||
/* Free clock */
|
||||
if (!IS_ERR(pdata->clk)) {
|
||||
clk_put(pdata->clk);
|
||||
pdata->clk = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* waits for MAC not busy, with timeout. Only called by smsc911x_mac_read
|
||||
|
||||
Reference in New Issue
Block a user