summaryrefslogtreecommitdiffstats
path: root/sys/arm/nvidia
diff options
context:
space:
mode:
authormmel <mmel@FreeBSD.org>2016-11-06 15:25:46 +0000
committermmel <mmel@FreeBSD.org>2016-11-06 15:25:46 +0000
commit5ecc49001aa5a77acdb3e56e4295a20654f15915 (patch)
treeb7b05b149627be52554243b415a6955cc8b14682 /sys/arm/nvidia
parentf7aa0ec3729292ce6b4f1786fc183e135543a239 (diff)
downloadFreeBSD-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.c8
-rw-r--r--sys/arm/nvidia/tegra124/tegra124_cpufreq.c11
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);
OpenPOWER on IntegriCloud