Re: [PATCH] mailbox: add ACPI support for mailbox framework

From: Feng Kan
Date: Tue Apr 07 2015 - 18:58:46 EST


On Tue, Apr 7, 2015 at 4:37 AM, Rafael J. Wysocki <rjw@xxxxxxxxxxxxx> wrote:
> On Tuesday, April 07, 2015 11:41:43 AM Mika Westerberg wrote:
>> On Thu, Apr 02, 2015 at 11:04:24AM -0700, Feng Kan wrote:
>> > On Thu, Apr 2, 2015 at 2:07 AM, Mika Westerberg
>> > <mika.westerberg@xxxxxxxxxxxxxxx> wrote:
>> > > On Wed, Apr 01, 2015 at 10:01:45AM -0700, Feng Kan wrote:
>> > >> On Wed, Apr 1, 2015 at 12:45 AM, Mika Westerberg
>> > >> <mika.westerberg@xxxxxxxxxxxxxxx> wrote:
>> > >> > On Tue, Mar 31, 2015 at 02:18:00PM -0700, Feng Kan wrote:
>> > >> >> This will add support for ACPI parsing of the mboxes attribute
>> > >> >> when booting with ACPI table. The client will have a attribute
>> > >> >> mimic the dts call "mboxes". In the ACPI case, the client will
>> > >> >> mark "mboxes" with the ACPI HID of the mbox it wishes to use.
>> > >> >>
>> > >> >> Name (_DSD, Package () {
>> > >> >> ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
>> > >> >> Package () {
>> > >> >> Package (2) {"mboxes", "ACPIHID"},
>> > >> >> }
>> > >> >> })
>> > >> >
>> > >> > Instead of this, why not match against the DT compatible property?
>> > >> >
>> > >> > Name (_HID, "PRP0001")
>> > >> >
>> > >> > Name (_DSD, Package () {
>> > >> > ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
>> > >> > Package () {
>> > >> > Package (2) {"compatible", "your-dt-compatible-string"},
>> > >> > }
>> > >> > })
>> > >> I think my description was not clear enough. The _DSD section is not
>> > >> meant to identify the mailbox driver, but used by the acpi node that will
>> > >> request the mailbox channel. The dts version would be as below.
>> > >>
>> > >> mailbox: {
>> > >> }
>> > >>
>> > >> user-mbox: {
>> > >> mboxes: <&mailbox 0>
>> > >> }
>> > >>
>> > >> The mboxes attribute in the user of the mbox has to specify the HID of the
>> > >> mbox in order to retrieve channel pointer.
>> > >
>> > > Okay, then I think you can use reference instead of _HID, like
>> > >
>> > > // The mailbox device
>> > > Device (MLBX) {
>> > > }
>> > >
>> > > // User-mbox device
>> > > Device (USBX) {
>> > > Name (_DSD, Package () {
>> > > ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
>> > > Package () {
>> > > Package () {"mboxes", Package () {^^MLBX, 0}}),
>> > > }
>> > > })
>> > > }
>> >
>> > Thanks, will try this. A side question on your previous reply. Would you
>> > prefer a new driver using the PRP0001 or an actual proper HID.
>>
>> If you have existing DT bindings for this, then PRP0001 is fine.
>> Otherwise you should use the proper _HID for this particular device.
>
> To be precise, PRP0001 specifically means "Use the 'compatible' property
> to find the driver for this device", so if *that* is what you want to do,
I am a bit uneasy about this. I understand the application of this. For a system
that is both DT and ACPI compatible, this would open up a flood of PRP0001
device drivers. What is the guideline here? Is this PRP0001 only exist
to support legacy devices that do not have a proper HID.

> you can use PRP0001 as the _HID. For Windows (and such) compatibility, you
> can provide a _CID whith a (list of) proper device ID(s) in addition to that.
>
>
> --
> I speak only for myself.
> Rafael J. Wysocki, Intel Open Source Technology Center.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/