[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Zzt2JNchK9A0pSlZ@goliath>
Date: Mon, 18 Nov 2024 17:15:17 +0000
From: "Daniel Walker (danielwa)" <danielwa@...co.com>
To: Hans de Goede <hdegoede@...hat.com>
CC: Andy Shevchenko <andriy.shevchenko@...ux.intel.com>, Shinichiro Kawasaki
<shinichiro.kawasaki@....com>, Ilpo J�rvinen
<ilpo.jarvinen@...ux.intel.com>, Klara Modin <klarasmodin@...il.com>, Greg
Kroah-Hartman <gregkh@...uxfoundation.org>, Danil Rybakov
<danilrybakov249@...il.com>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>, "xe-linux-external(mailer list)"
<xe-linux-external@...co.com>
Subject: Re: platform/x86: p2sb: Allow p2sb_bar() calls during PCI device
probe
On Mon, Nov 18, 2024 at 05:00:52PM +0100, Hans de Goede wrote:
> Hi,
>
> On 18-Nov-24 4:55 PM, Andy Shevchenko wrote:
> > On Mon, Nov 18, 2024 at 02:35:44PM +0000, Daniel Walker (danielwa) wrote:
> >> On Mon, Nov 18, 2024 at 03:49:32PM +0200, Andy Shevchenko wrote:
> >>> On Mon, Nov 18, 2024 at 01:32:55PM +0000, Daniel Walker (danielwa) wrote:
> >>>> On Mon, Nov 18, 2024 at 03:24:20PM +0200, Andy Shevchenko wrote:
> >>>>> On Mon, Nov 18, 2024 at 12:40:16PM +0000, Daniel Walker (danielwa) wrote:
> >
> > ...
> >
> >>>>> Are you referring to LPC GPIO?
> >>>>
> >>>> I don't know the hardware well enough to say for certain. It's whatever device 8086:19dd is.
> >>>
> >>> This is device which represents p2sb. It's not a GPIO device you are talking
> >>> about for sure. You can send privately more detailed info in case this is shouldn't
> >>> be on public to me to understand what would be the best approach to fix your issue.
> >>
> >> Here's a comment,
> >>
> >> /* INTEL Denverton GPIO registers are accessible using SBREG_BAR(bar 0) as base */
> >>
> >> We have gpio wired to an FPGA and I believe the gpio line is used to reset the
> >> fpga.
> >>
> >> So the pci resources attached to 8086:19dd can be used to access gpio of some
> >> type.
> >>
> >> I'm not a pci expert but on the 19bb device bar 0 we use the below offset to manipulate
> >> the gpio,
> >>
> >> #define INTEL_GPIO_REG_RESET_OFFSET 0xC50578
> >>
> >> The comments suggest this is gpio 6. I would seems your reaction would be that
> >> there is no gpio on the 19dd device. Maybe our driver is access gpio thru p2sb
> >> or something like that.
> >>
> >> Does the offset above make sense to you in the context of the p2sb ?
> >
> > Yes, everything makes sense. Please, enable lpc_ich driver and forget about
> > talking to the p2sb memory mapped IO.
> >
> > /* Offset data for Denverton GPIO controllers */
> > static const resource_size_t dnv_gpio_offsets[DNV_GPIO_NR_RESOURCES] = {
> > [DNV_GPIO_NORTH] = 0xc20000,
> > [DNV_GPIO_SOUTH] = 0xc50000,
> > };
> >
> > So, you are using a pin from the Community "South" of the on-die Denverton GPIO.
> >
> > In EDS this called GPIO_6, while in the driver it's pin 88, i.e. SMB3_IE0_DATA.
> >
> > You will need to
> > - enable lpc_ich driver (CONFIG_LPC_ICH)
> > - enable Intel Denverton pin control driver (CONFIG_PINCTRL_DENVERTON)
> > - replace your custom approach to:
> > - GPIO lookup table
> > - proper GPIO APIs, as gpiod_get() or alike
> >
> > See how it was done in the current kernel code:
> >
> > 8241b55f1ded ("drm/i915/dsi: Replace poking of VLV GPIOs behind the driver's back")
> > a6c80bec3c93 ("leds: simatic-ipc-leds-gpio: Add GPIO version of Siemens driver")
> >
> > Hans, there will be no need to fix anything if they implement correct access
> > to the GPIO, i.e. via driver and board code with GPIO lookup tables.
>
> Agreed, still I'm not sure how I feel about us hiding the previously unhidden P2SB.
>
> OTOH I guess it may have only been unhidden in the BIOS to make the hack they
> are using possible in the first place.
From a flexibility POV I would suggest if you can not hide it if it's not already
hidden by the BIOS that would be better since some company may have a good
reason to make a custom driver or to export the pci device to userspace thru
UIO. The current situation is you can't make a custom driver if p2sb is enable
with this additional patch even if you unhide the device inside the BIOS.
In our case it seems like we could use the already existing solution with
pinctrl, but others may not be able to do that or may not want to for different
reasons.
Daniel
Powered by blists - more mailing lists