diff options
author | mmel <mmel@FreeBSD.org> | 2016-11-06 15:25:46 +0000 |
---|---|---|
committer | mmel <mmel@FreeBSD.org> | 2016-11-06 15:25:46 +0000 |
commit | 5ecc49001aa5a77acdb3e56e4295a20654f15915 (patch) | |
tree | b7b05b149627be52554243b415a6955cc8b14682 /sys/arm/nvidia | |
parent | f7aa0ec3729292ce6b4f1786fc183e135543a239 (diff) | |
download | FreeBSD-src-5ecc49001aa5a77acdb3e56e4295a20654f15915.zip FreeBSD-src-5ecc49001aa5a77acdb3e56e4295a20654f15915.tar.gz |
MFC r306551,r307557:
r306551:
TEGRA: Fix bindings for cpufreq and coretemp drivers, it was broken in
r306477. Correct a description for coretemp driver.
r307557:
TEGRA: Attach cpufreq and coretemp drivers only on tegra124 SoC. It's
needed by GENERIC kernel.
Diffstat (limited to 'sys/arm/nvidia')
-rw-r--r-- | sys/arm/nvidia/tegra124/tegra124_coretemp.c | 8 | ||||
-rw-r--r-- | sys/arm/nvidia/tegra124/tegra124_cpufreq.c | 11 |
2 files changed, 14 insertions, 5 deletions
diff --git a/sys/arm/nvidia/tegra124/tegra124_coretemp.c b/sys/arm/nvidia/tegra124/tegra124_coretemp.c index b3594f9..0becdb0 100644 --- a/sys/arm/nvidia/tegra124/tegra124_coretemp.c +++ b/sys/arm/nvidia/tegra124/tegra124_coretemp.c @@ -178,7 +178,11 @@ tegra124_coretemp_ofw_parse(struct tegra124_coretemp_softc *sc) static void tegra124_coretemp_identify(driver_t *driver, device_t parent) { + phandle_t root; + root = OF_finddevice("/"); + if (!ofw_bus_node_is_compatible(root, "nvidia,tegra124")) + return; if (device_find_child(parent, "tegra124_coretemp", -1) != NULL) return; if (BUS_ADD_CHILD(parent, 0, "tegra124_coretemp", -1) == NULL) @@ -189,7 +193,7 @@ static int tegra124_coretemp_probe(device_t dev) { - device_set_desc(dev, "CPU Frequency Control"); + device_set_desc(dev, "CPU Thermal Sensor"); return (0); } @@ -262,7 +266,7 @@ static device_method_t tegra124_coretemp_methods[] = { }; static devclass_t tegra124_coretemp_devclass; -static DEFINE_CLASS_0(coretemp, tegra124_coretemp_driver, +static DEFINE_CLASS_0(tegra124_coretemp, tegra124_coretemp_driver, tegra124_coretemp_methods, sizeof(struct tegra124_coretemp_softc)); DRIVER_MODULE(tegra124_coretemp, cpu, tegra124_coretemp_driver, tegra124_coretemp_devclass, NULL, NULL); diff --git a/sys/arm/nvidia/tegra124/tegra124_cpufreq.c b/sys/arm/nvidia/tegra124/tegra124_cpufreq.c index 0d160bc..4de8603 100644 --- a/sys/arm/nvidia/tegra124/tegra124_cpufreq.c +++ b/sys/arm/nvidia/tegra124/tegra124_cpufreq.c @@ -474,7 +474,14 @@ get_fdt_resources(struct tegra124_cpufreq_softc *sc, phandle_t node) static void tegra124_cpufreq_identify(driver_t *driver, device_t parent) { + phandle_t root; + root = OF_finddevice("/"); + if (!ofw_bus_node_is_compatible(root, "nvidia,tegra124")) + return; + + if (device_get_unit(parent) != 0) + return; if (device_find_child(parent, "tegra124_cpufreq", -1) != NULL) return; if (BUS_ADD_CHILD(parent, 0, "tegra124_cpufreq", -1) == NULL) @@ -485,8 +492,6 @@ static int tegra124_cpufreq_probe(device_t dev) { - if (device_get_unit(dev) != 0) - return (ENXIO); device_set_desc(dev, "CPU Frequency Control"); return (0); @@ -587,7 +592,7 @@ static device_method_t tegra124_cpufreq_methods[] = { }; static devclass_t tegra124_cpufreq_devclass; -static DEFINE_CLASS_0(cpufreq, tegra124_cpufreq_driver, +static DEFINE_CLASS_0(tegra124_cpufreq, tegra124_cpufreq_driver, tegra124_cpufreq_methods, sizeof(struct tegra124_cpufreq_softc)); DRIVER_MODULE(tegra124_cpufreq, cpu, tegra124_cpufreq_driver, tegra124_cpufreq_devclass, NULL, NULL); |