On Mon, Apr 16, 2018 at 12:25 PM, Eric Anholt eric@anholt.net wrote:
The GPU subsystem node was a workaround to have a central device to bind V3D and display to. Following the lead of 246774d17fc0 ("drm/etnaviv: remove the need for a gpu-subsystem DT node"), remove the subsystem node usage and just create a platform device for the DRM device to attach to if any of the subsystem devices are present.
v2: Simplify the DT walking code.
+static bool +driver_of_table_has_a_match(const struct platform_driver *driver) +{
struct device_node *node;
node = of_find_matching_node_and_match(NULL,
driver->driver.of_match_table,
NULL);
if (of_device_is_available(node)) {
of_node_put(node);
You need to put the node regardless.
return true;
}
return false;
+}