From: Arnd Bergmann <arnd@arndb.de>
To: okaya@codeaurora.org
Cc: linux-arm-kernel@lists.infradead.org, kvm@vger.kernel.org,
timur@codeaurora.org, cov@codeaurora.org, jcm@redhat.com,
eric.auger@linaro.org, mark.rutland@arm.com,
devicetree@vger.kernel.org,
Baptiste Reynal <b.reynal@virtualopensystems.com>,
vikrams@codeaurora.org, marc.zyngier@arm.com,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
vinod.koul@intel.com,
Alex Williamson <alex.williamson@redhat.com>,
agross@codeaurora.org, Dan Carpenter <dan.carpenter@oracle.com>,
shankerd@codeaurora.org
Subject: Re: [PATCH V3 1/3] vfio, platform: add support for ACPI while detecting the reset driver
Date: Tue, 29 Mar 2016 13:25:42 +0200 [thread overview]
Message-ID: <147496989.L43SVC7xRY@wuerfel> (raw)
In-Reply-To: <e736f6bc775cdca8a4bb0dab20654823@codeaurora.org>
On Tuesday 29 March 2016 06:59:15 okaya@codeaurora.org wrote:
> On 2016-03-29 05:25, Arnd Bergmann wrote:
> > On Monday 28 March 2016 09:35:22 Sinan Kaya wrote:
> >> The code is using the compatible DT string to associate a reset driver
> >> with
> >> the actual device itself. The compatible string does not exist on ACPI
> >> based systems. HID is the unique identifier for a device driver
> >> instead.
> >> The change allows a driver to register with DT compatible string or
> >> ACPI
> >> HID and then match the object with one of these conditions.
> >>
> >> Rules for loading the reset driver are as follow:
> >> - ACPI HID needs match for ACPI systems
> >> - DT compat needs to match for OF systems
> >>
> >> Tested-by: Eric Auger <eric.auger@linaro.org> (device tree only)
> >> Tested-by: Shanker Donthineni <shankerd@codeaurora.org> (ACPI only)
> >> Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
> >>
> >
> >
> > This really feels wrong for two reasons:
> >
> > * device assignment of non-PCI devices is really special and doesn't
> > seem to make sense on general purpose servers that would be the
> > target
> > for ACPI normally
>
>
> Why is it special? Acpi is not equal to pci. Platform devices are first
> class devices too. Especially, _cls was introduced for this reason.
It still feels like a hack. The normal design for a server is to have
all internal devices show up on the PCI host bridge, next to the PCIe
ports, to have a simple way to manage any device, both internal and
off-chip. Putting a device on random MMIO registers outside of the
discoverable buses and have the firmware work around the lack of
discoverability will always be inferior.
> >
> > * If there is indeed a requirement for ACPI to handle something like
> > this,
> > it should be part of the ACPI spec, with a well-defined method of
> > handling
> > reset, rather than having to add a device specific hack for each
> > device separately.
> >
>
> I see. Normally, this is done by calling _rst method. AFAIK, Linux
> doesn’t support _rst. I can check its presence and call it if it is
> there.
Yes, that sounds reasonable: In patch 2 where you check for the
presence of the reset method, just keep the existing logic for
DT based systems, and use _rst on ACPI based systems instead,
then you can drop both patches 1 and 3.
Arnd
WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V3 1/3] vfio, platform: add support for ACPI while detecting the reset driver
Date: Tue, 29 Mar 2016 13:25:42 +0200 [thread overview]
Message-ID: <147496989.L43SVC7xRY@wuerfel> (raw)
In-Reply-To: <e736f6bc775cdca8a4bb0dab20654823@codeaurora.org>
On Tuesday 29 March 2016 06:59:15 okaya at codeaurora.org wrote:
> On 2016-03-29 05:25, Arnd Bergmann wrote:
> > On Monday 28 March 2016 09:35:22 Sinan Kaya wrote:
> >> The code is using the compatible DT string to associate a reset driver
> >> with
> >> the actual device itself. The compatible string does not exist on ACPI
> >> based systems. HID is the unique identifier for a device driver
> >> instead.
> >> The change allows a driver to register with DT compatible string or
> >> ACPI
> >> HID and then match the object with one of these conditions.
> >>
> >> Rules for loading the reset driver are as follow:
> >> - ACPI HID needs match for ACPI systems
> >> - DT compat needs to match for OF systems
> >>
> >> Tested-by: Eric Auger <eric.auger@linaro.org> (device tree only)
> >> Tested-by: Shanker Donthineni <shankerd@codeaurora.org> (ACPI only)
> >> Signed-off-by: Sinan Kaya <okaya@codeaurora.org>
> >>
> >
> >
> > This really feels wrong for two reasons:
> >
> > * device assignment of non-PCI devices is really special and doesn't
> > seem to make sense on general purpose servers that would be the
> > target
> > for ACPI normally
>
>
> Why is it special? Acpi is not equal to pci. Platform devices are first
> class devices too. Especially, _cls was introduced for this reason.
It still feels like a hack. The normal design for a server is to have
all internal devices show up on the PCI host bridge, next to the PCIe
ports, to have a simple way to manage any device, both internal and
off-chip. Putting a device on random MMIO registers outside of the
discoverable buses and have the firmware work around the lack of
discoverability will always be inferior.
> >
> > * If there is indeed a requirement for ACPI to handle something like
> > this,
> > it should be part of the ACPI spec, with a well-defined method of
> > handling
> > reset, rather than having to add a device specific hack for each
> > device separately.
> >
>
> I see. Normally, this is done by calling _rst method. AFAIK, Linux
> doesn?t support _rst. I can check its presence and call it if it is
> there.
Yes, that sounds reasonable: In patch 2 where you check for the
presence of the reset method, just keep the existing logic for
DT based systems, and use _rst on ACPI based systems instead,
then you can drop both patches 1 and 3.
Arnd
next prev parent reply other threads:[~2016-03-29 11:26 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-28 13:35 [PATCH V3 0/3] vfio, platform: add HIDMA and ACPI support Sinan Kaya
2016-03-28 13:35 ` Sinan Kaya
2016-03-28 13:35 ` [PATCH V3 1/3] vfio, platform: add support for ACPI while detecting the reset driver Sinan Kaya
2016-03-28 13:35 ` Sinan Kaya
2016-03-29 9:25 ` Arnd Bergmann
2016-03-29 9:25 ` Arnd Bergmann
2016-03-29 10:59 ` okaya
2016-03-29 10:59 ` okaya at codeaurora.org
2016-03-29 11:25 ` Arnd Bergmann [this message]
2016-03-29 11:25 ` Arnd Bergmann
2016-03-29 12:15 ` okaya-sgV2jX0FEOL9JmXXK+q4OQ
2016-03-29 12:15 ` okaya
2016-03-29 12:15 ` okaya at codeaurora.org
2016-03-29 12:44 ` Arnd Bergmann
2016-03-29 12:44 ` Arnd Bergmann
2016-05-01 17:55 ` Sinan Kaya
2016-05-01 17:55 ` Sinan Kaya
2016-03-28 13:35 ` [PATCH V3 2/3] vfio, platform: make reset driver a requirement by default Sinan Kaya
2016-03-28 13:35 ` Sinan Kaya
2016-03-28 13:35 ` [PATCH V3 3/3] vfio, platform: add QTI HIDMA reset driver Sinan Kaya
2016-03-28 13:35 ` Sinan Kaya
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=147496989.L43SVC7xRY@wuerfel \
--to=arnd@arndb.de \
--cc=agross@codeaurora.org \
--cc=alex.williamson@redhat.com \
--cc=b.reynal@virtualopensystems.com \
--cc=cov@codeaurora.org \
--cc=dan.carpenter@oracle.com \
--cc=devicetree@vger.kernel.org \
--cc=eric.auger@linaro.org \
--cc=jcm@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=mark.rutland@arm.com \
--cc=okaya@codeaurora.org \
--cc=shankerd@codeaurora.org \
--cc=timur@codeaurora.org \
--cc=vikrams@codeaurora.org \
--cc=vinod.koul@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.