Lines Matching full:provider

12 #include <linux/interconnect-provider.h>
30 struct device *dev = node->provider->dev; in imx_icc_node_set()
68 dev_warn(node->provider->dev, in imx_icc_node_destroy()
78 static int imx_icc_node_init_qos(struct icc_provider *provider, in imx_icc_node_init_qos() argument
83 struct device *dev = provider->dev; in imx_icc_node_init_qos()
123 static struct icc_node *imx_icc_node_add(struct icc_provider *provider, in imx_icc_node_add() argument
126 struct device *dev = provider->dev; in imx_icc_node_add()
152 icc_node_add(node, provider); in imx_icc_node_add()
155 ret = imx_icc_node_init_qos(provider, node); in imx_icc_node_add()
165 static void imx_icc_unregister_nodes(struct icc_provider *provider) in imx_icc_unregister_nodes() argument
169 list_for_each_entry_safe(node, tmp, &provider->nodes, node_list) in imx_icc_unregister_nodes()
173 static int imx_icc_register_nodes(struct icc_provider *provider, in imx_icc_register_nodes() argument
177 struct icc_onecell_data *provider_data = provider->data; in imx_icc_register_nodes()
186 node = imx_icc_node_add(provider, node_desc); in imx_icc_register_nodes()
188 ret = dev_err_probe(provider->dev, PTR_ERR(node), in imx_icc_register_nodes()
197 dev_err(provider->dev, "failed to link node %d to %d: %d\n", in imx_icc_register_nodes()
207 imx_icc_unregister_nodes(provider); in imx_icc_register_nodes()
228 struct icc_provider *provider; in imx_icc_register() local
240 provider = devm_kzalloc(dev, sizeof(*provider), GFP_KERNEL); in imx_icc_register()
241 if (!provider) in imx_icc_register()
243 provider->set = imx_icc_set; in imx_icc_register()
244 provider->aggregate = icc_std_aggregate; in imx_icc_register()
245 provider->xlate = of_icc_xlate_onecell; in imx_icc_register()
246 provider->data = data; in imx_icc_register()
247 provider->dev = dev->parent; in imx_icc_register()
248 platform_set_drvdata(pdev, provider); in imx_icc_register()
250 ret = icc_provider_add(provider); in imx_icc_register()
252 dev_err(dev, "error adding interconnect provider: %d\n", ret); in imx_icc_register()
256 ret = imx_icc_register_nodes(provider, nodes, nodes_count); in imx_icc_register()
263 icc_provider_del(provider); in imx_icc_register()
270 struct icc_provider *provider = platform_get_drvdata(pdev); in imx_icc_unregister() local
272 imx_icc_unregister_nodes(provider); in imx_icc_unregister()
274 return icc_provider_del(provider); in imx_icc_unregister()