21 Mar
2017
21 Mar
'17
3:03 a.m.
Hi Rob
Thank you for your review.
+int asoc_simple_card_parse_graph_dai(struct device_node *ep,
struct device_node **dai_of_node,const char **dai_name)+{
struct device_node *node;struct of_phandle_args args;int ret;if (!ep)return 0;if (!dai_name)return 0;/** of_graph_get_port_parent() will call* of_node_put(). So, call of_node_get() here*/of_node_get(ep);node = of_graph_get_port_parent(ep);/* Get dai->name */args.np = node;args.args[0] = snd_soc_get_dai_id(ep);args.args_count = (of_graph_get_endpoint_count(node) > 1);This is a bit pointless. It's not the kernel's job to validate the DT. If you don't have a graph, then of_graph_get_port_parent would have already failed.
This function will be called from graph base driver, thus, it should have port parent. args.args_count is checking <&xxxx> or <&xxxx n>
Best regards --- Kuninori Morimoto