提交 381a0b4c 编写于 作者: B Bjorn Andersson 提交者: Andy Gross

soc: qcom: smd: Request irqs after parsing properties

The code exectued by the interrupt handler depends on the values parsed
after requesting the irq, just to be save we should therefor move the
request_irq() call to be done after parsing the properties.
Signed-off-by: NBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: NAndy Gross <andy.gross@linaro.org>
上级 0a0c08ca
...@@ -1348,22 +1348,6 @@ static int qcom_smd_parse_edge(struct device *dev, ...@@ -1348,22 +1348,6 @@ static int qcom_smd_parse_edge(struct device *dev,
edge->of_node = of_node_get(node); edge->of_node = of_node_get(node);
irq = irq_of_parse_and_map(node, 0);
if (irq < 0) {
dev_err(dev, "required smd interrupt missing\n");
return -EINVAL;
}
ret = devm_request_irq(dev, irq,
qcom_smd_edge_intr, IRQF_TRIGGER_RISING,
node->name, edge);
if (ret) {
dev_err(dev, "failed to request smd irq\n");
return ret;
}
edge->irq = irq;
key = "qcom,smd-edge"; key = "qcom,smd-edge";
ret = of_property_read_u32(node, key, &edge->edge_id); ret = of_property_read_u32(node, key, &edge->edge_id);
if (ret) { if (ret) {
...@@ -1398,6 +1382,22 @@ static int qcom_smd_parse_edge(struct device *dev, ...@@ -1398,6 +1382,22 @@ static int qcom_smd_parse_edge(struct device *dev,
return -EINVAL; return -EINVAL;
} }
irq = irq_of_parse_and_map(node, 0);
if (irq < 0) {
dev_err(dev, "required smd interrupt missing\n");
return -EINVAL;
}
ret = devm_request_irq(dev, irq,
qcom_smd_edge_intr, IRQF_TRIGGER_RISING,
node->name, edge);
if (ret) {
dev_err(dev, "failed to request smd irq\n");
return ret;
}
edge->irq = irq;
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册