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()
122 static struct icc_node *imx_icc_node_add(struct icc_provider *provider, in imx_icc_node_add() argument
125 struct device *dev = provider->dev; in imx_icc_node_add()
151 icc_node_add(node, provider); in imx_icc_node_add()
154 ret = imx_icc_node_init_qos(provider, node); in imx_icc_node_add()
164 static void imx_icc_unregister_nodes(struct icc_provider *provider) in imx_icc_unregister_nodes() argument
168 list_for_each_entry_safe(node, tmp, &provider->nodes, node_list) in imx_icc_unregister_nodes()
172 static int imx_icc_register_nodes(struct icc_provider *provider, in imx_icc_register_nodes() argument
176 struct icc_onecell_data *provider_data = provider->data; in imx_icc_register_nodes()
185 node = imx_icc_node_add(provider, node_desc); in imx_icc_register_nodes()
187 ret = dev_err_probe(provider->dev, PTR_ERR(node), in imx_icc_register_nodes()
196 dev_err(provider->dev, "failed to link node %d to %d: %d\n", in imx_icc_register_nodes()
206 imx_icc_unregister_nodes(provider); in imx_icc_register_nodes()
227 struct icc_provider *provider; in imx_icc_register() local
239 provider = devm_kzalloc(dev, sizeof(*provider), GFP_KERNEL); in imx_icc_register()
240 if (!provider) in imx_icc_register()
242 provider->set = imx_icc_set; in imx_icc_register()
243 provider->aggregate = icc_std_aggregate; in imx_icc_register()
244 provider->xlate = of_icc_xlate_onecell; in imx_icc_register()
245 provider->data = data; in imx_icc_register()
246 provider->dev = dev->parent; in imx_icc_register()
247 platform_set_drvdata(pdev, provider); in imx_icc_register()
249 ret = icc_provider_add(provider); in imx_icc_register()
251 dev_err(dev, "error adding interconnect provider: %d\n", ret); in imx_icc_register()
255 ret = imx_icc_register_nodes(provider, nodes, nodes_count); in imx_icc_register()
262 icc_provider_del(provider); in imx_icc_register()
269 struct icc_provider *provider = platform_get_drvdata(pdev); in imx_icc_unregister() local
271 imx_icc_unregister_nodes(provider); in imx_icc_unregister()
273 return icc_provider_del(provider); in imx_icc_unregister()