coresight_remove_links(conn->src_dev, conn);
conn->dest_dev = NULL;
}
+
+ coresight_remove_conns_sysfs_group(csdev);
}
/**
* coresight_release_platform_data: Release references to the devices connected
* to the output port of this device.
*/
-void coresight_release_platform_data(struct coresight_device *csdev,
- struct device *dev,
+void coresight_release_platform_data(struct device *dev,
struct coresight_platform_data *pdata)
{
int i;
devm_kfree(dev, pdata->out_conns);
devm_kfree(dev, pdata->in_conns);
devm_kfree(dev, pdata);
- if (csdev)
- coresight_remove_conns_sysfs_group(csdev);
}
struct coresight_device *coresight_register(struct coresight_desc *desc)
}
err_out:
- coresight_release_platform_data(NULL, desc->dev, desc->pdata);
+ coresight_release_platform_data(desc->dev, desc->pdata);
return ERR_PTR(ret);
}
EXPORT_SYMBOL_GPL(coresight_register);
etm_perf_del_symlink_sink(csdev);
coresight_remove_conns(csdev);
coresight_clear_default_sink(csdev);
- coresight_release_platform_data(csdev, csdev->dev.parent, csdev->pdata);
+ coresight_release_platform_data(csdev->dev.parent, csdev->pdata);
device_unregister(&csdev->dev);
mutex_unlock(&coresight_mutex);
}
error:
if (!IS_ERR_OR_NULL(pdata))
/* Cleanup the connection information */
- coresight_release_platform_data(NULL, dev, pdata);
+ coresight_release_platform_data(dev, pdata);
return ERR_PTR(ret);
}
EXPORT_SYMBOL_GPL(coresight_get_platform_data);
return NULL;
}
-void coresight_release_platform_data(struct coresight_device *csdev,
- struct device *dev,
+void coresight_release_platform_data(struct device *dev,
struct coresight_platform_data *pdata);
struct coresight_device *
coresight_find_csdev_by_fwnode(struct fwnode_handle *r_fwnode);