forked from Minki/linux
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: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Andy Gross <andy.gross@linaro.org>
This commit is contained in:
parent
0a0c08cae0
commit
381a0b4ce4
@ -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,
|
|||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user