@@ -1151,6 +1168,10 @@ static const struct msm_pinctrl_soc_data sc7180_pinctrl = {
static int sc7180_pinctrl_probe(struct platform_device *pdev)
{
+ if (of_machine_is_compatible("google,lazor")) {
+ sc7180_pinctrl.wakeirq_map = sc7180_lazor_pdc_map;
+ sc7180_pinctrl.nwakeirq_map = ARRAY_SIZE(sc7180_lazor_pdc_map);
+ }
As much as I want patches landed and things working, the above just
doesn't feel like a viable solution. I guess it could work as a short
term hack but it's going to become untenable pretty quickly.
I second that.
As we
have more variants of this we're going to have to just keep piling
more machines in here, right? ...this is also already broken for us
because not all boards will have the "google,lazor" compatible. From
the current Chrome OS here are the compatibles for various revs/SKUs
compatible = "google,lazor-rev0", "qcom,sc7180";
compatible = "google,lazor-rev0-sku0", "qcom,sc7180";
compatible = "google,lazor", "qcom,sc7180";
compatible = "google,lazor-sku0", "qcom,sc7180";
compatible = "google,lazor-rev2", "qcom,sc7180";
...so of the 5 boards you'll only match one of them.
Maybe I'm jumping into a situation again where I'm ignorant since I
haven't followed all the prior conversation, but is it really that
hard to just add dual edge support to the PDC irqchip driver? ...or
maybe it's just easier to change the pinctrl driver to emulate dual
edge itself and that can work around the problem in the PDC? There
seem to be a few samples you could copy from:
$ git log --oneline --no-merges --grep=emulate drivers/pinctrl/
3221f40b7631 pinctrl: mediatek: emulate GPIO interrupt on both-edges
5a92750133ff pinctrl: rockchip: emulate both edge triggered interrupts
pinctrl-msm already supports emulating dual edge, but my understanding
was that the problem lies in that somehow this emulation would have to
be tied to or affect the PDC driver?