Messages in this thread | | | Subject | Re: [PATCH] Revert "pinctrl: intel: Split intel_pinctrl_add_padgroups() for better maintenance" | From | Maximilian Luz <> | Date | Mon, 8 Mar 2021 17:43:30 +0100 |
| |
On 3/8/21 5:31 PM, Andy Shevchenko wrote: > On Mon, Mar 08, 2021 at 05:35:59PM +0200, Andy Shevchenko wrote: >> On Mon, Mar 08, 2021 at 04:25:05PM +0100, Maximilian Luz wrote: >>> Following commit 036e126c72eb ("pinctrl: intel: Split >>> intel_pinctrl_add_padgroups() for better maintenance"), >>> gpiochip_get_desc() is broken on some Kaby Lake R devices (specifically >>> a Microsoft Surface Book 2), returning -EINVAL for GPIOs that in reality >>> should be there (they are defined in ACPI and have been accessible >>> previously). Due to this, gpiod_get() fails with -ENOENT. >>> >>> Reverting this commit fixes that issue and the GPIOs in question are >>> accessible again. >> >> I would like to have more information. >> Can you enable PINCTRL and GPIO debug options in the kernel, and show dmesg >> output (when kernel command line has 'ignore_loglevel' option) for both working >> and non-working cases? >> >> Also if it's possible to have DSDT.dsl of the device in question along with >> output of `grep -H 15 /sys/bus/acpi/devices/*/status`. >> >>> There is probably a better option than straight up reverting this, so >>> consider this more of a bug-report. >> >> Indeed. > > > Can you test if the below helps (probably you have to apply it by editing > the file manually): > > --- a/drivers/pinctrl/intel/pinctrl-intel.c > +++ b/drivers/pinctrl/intel/pinctrl-intel.c > @@ -1392,6 +1392,7 @@ static int intel_pinctrl_add_padgroups_by_size(struct intel_pinctrl *pctrl, > gpps[i].size = min(gpp_size, npins); > npins -= gpps[i].size; > > + gpps[i].gpio_base = gpps[i].base; > gpps[i].padown_num = padown_num; > >
That does fix the issue! Thanks for the fast response and fix!
Regards, Max
| |