lkml.org 
[lkml]   [2015]   [Feb]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [V3 PATCH 1/2] ACPI / scan: Add support for ACPI _CLS device matching
Date


On 2/10/15, 23:07, "Rafael J. Wysocki" <rjw@rjwysocki.net> wrote:

>On Tuesday, February 10, 2015 11:59:32 AM Mika Westerberg wrote:
>> On Mon, Feb 09, 2015 at 09:02:11PM +0000, Suthikulpanit, Suravee wrote:
>> > On 2/9/15, 19:15, "Mika Westerberg" <mika.westerberg@linux.intel.com>
>> > wrote:
>> >
>> > >On Mon, Feb 09, 2015 at 12:02:43AM +0100, Rafael J. Wysocki wrote:
>> > >> On Monday, February 09, 2015 12:20:03 AM Suravee Suthikulpanit
>>wrote:
>> > >> > Device drivers typically use ACPI _HIDs/_CIDs listed in struct
>> > >>device_driver
>> > >> > acpi_match_table to match devices. However, for generic drivers,
>>we do
>> > >> > not want to list _HID for all supported devices, and some device
>> > >>classes
>> > >> > do not have _CID (e.g. SATA, USB). Instead, we can leverage ACPI
>>_CLS,
>> > >> > which specifies PCI-defined class code (i.e. base-class,
>>subclass and
>> > >> > programming interface).
>> > >> >
>> > >> > This patch adds support for matching ACPI devices using the _CLS
>> > >>method.
>> > >> >
>> > >> > Signed-off-by: Suravee Suthikulpanit
>><Suravee.Suthikulpanit@amd.com>
>> > >>
>> > >> Greg, Mika, any problems with this?
>> > >
>> > >Is there some specific reason why this cannot be done in similar way
>> > >than PCI already does?
>> > >
>> > >In other words, stuff _CLS fields to struct acpi_device_id and make
>> > >match functions match against those if they are != 0.
>> >
>> > That was my original thought. Then I realized that the acpi_device_id
>>is
>> > used
>> > to create the device matching table, in which could contain several
>> > _HID/_CID.
>> > However, most of the added _CLS field would likely ended up being
>>unused
>> > and
>> > taking up space.
>>
>> Well, PCI is doing that already :)
>>
>> > In contrast to _HID/_CID, a driver is likely to match just a single
>>_CLS.
>> > So, I think it is cleaner to have just a dedicate struct
>>acpi_device_cls,
>> > and
>> > a matching function for it.
>>
>> IMHO cleaner version is the one following PCI.
>
>I agree.

Ok, let me reimplement this part to put "u32 cls" in the struct
acpi_device_id, and use that for matching then.

>
>> Besides, how do you support modules with this? Or did I miss something?
>
>Good question.

Ah. I didn¹t think about this part earlier.

IIUC, the current ACPI driver would create modules.alias entry with format:
acpi:<HID>:<CID>

What do you think if we append the _CLS of the device using the following
format:
acpi:<HID>:<CID>:<CLS>

In case of PCI_CLASS_STORAGE_SATA_AHCI, this would become:
acpi:::0x10601

Thanks,

Suravee



\
 
 \ /
  Last update: 2015-02-12 00:01    [W:0.096 / U:13.040 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site