Re: [PATCH v3 2/4] irqchip/qcom-pdc: Switch to using IRQCHIP_PLATFORM_DRIVER helper macros
From: Steev Klimaszewski
Date: Wed Aug 05 2020 - 17:47:42 EST
On 8/5/20 4:16 PM, Steev Klimaszewski wrote:
> On 8/5/20 3:19 PM, Saravana Kannan wrote:
>> On Wed, Aug 5, 2020 at 12:44 AM John Stultz <john.stultz@xxxxxxxxxx> wrote:
>>> <sigh>
>>> So this is where I bashfully admit I didn't get a chance to try this
>>> patch series out, as I had success with a much older version of
>>> Saravana's macro magic.
>>>
>>> But unfortunately, now that this has landed in mainline, I'm seeing
>>> boot regressions on db845c. :( This is in the non-modular case,
>>> building the driver in.
>> Does that mean the modular version is working? Or you haven't tried
>> that yet? I'll wait for your reply before I try to fix it. I don't
>> have the hardware, but it should be easy to guess this issue looking
>> at the code delta.
> For what it's worth, I saw this too on the Lenovo C630 (started on -next
> around 20200727, but I didn't track it down as, well, there's less way
> to get debug output on the C630.
>
> In my testing, module or built-in doesn't matter, but reverting does
> allow me to boot again.
>
Actually - I spoke too soon - QCOM_PDC built-in with the commit reverted
boots, however, module (on the c630 at least) doesn't boot whether it's
a module or built-in.
>> The only significant change from what your probe function is doing is
>> this snippet. But it'd be surprising if this only affects the builtin
>> case.
>>
>> + if (par_np == np)
>> + par_np = NULL;
>> +
>> + /*
>> + * If there's a parent interrupt controller and none of the parent irq
>> + * domains have been registered, that means the parent interrupt
>> + * controller has not been initialized yet. it's not time for this
>> + * interrupt controller to initialize. So, defer probe of this
>> + * interrupt controller. The actual initialization callback of this
>> + * interrupt controller can check for specific domains as necessary.
>> + */
>> + if (par_np && !irq_find_matching_host(np, DOMAIN_BUS_ANY))
>> + return -EPROBE_DEFER;
>>
>>> I managed to bisect it down to this patch, and reverting it avoids the
>>> issue. I don't see what is wrong right off, but I really need to get
>>> to bed, so I'll dig further tomorrow.
>>>
>>> Saravana: Apologies for not getting around to testing this beforehand!
>> No worries. Apologies for breaking it accidentally.
>>
>> -Saravana