Device specific _RST method


Kumar G <kumarg27061979@...>
 

Hey Experts
I am looking for your help ,
how I can define device specific _RST method in acpi table in case device is behind USB or PCIe controller.
So far, I studied, I only need to define a PCIe or USB controller in my acpi table and all connected devices will be enumerated by OS itself.

Is there any way, I can define my device under PCIe/USb controller with specific _RST method

Any sample code/pointers are welcome

Thanks
Kumar


Igor Mammedov <imammedo@...>
 

On Mon, 2 Nov 2020 23:01:18 +0530
Kumar G <kumarg27061979@gmail.com> wrote:

Hey Experts
I am looking for your help ,
how I can define device specific _RST method in acpi table in case device
is behind USB or PCIe controller.
So far, I studied, I only need to define a PCIe or USB controller in my
acpi table and all connected devices will be enumerated by OS itself.
yes, devices connected to the described controller will be enumerated by
bus specific driver.

Is there any way, I can define my device under PCIe/USb controller with
specific _RST method
It should be possible to add 'Device' object under the described controller
and then add _RST method to that. Even if Device is described in ACPI it
doesn't garantie that specific impl. of PCI/USB driver will actually take
all it describes into account.

Any sample code/pointers are welcome
But I haven't seen _RST being actually used, I'd say typically PCI/USB
driver is used to reset device (port) without involving ACPI.


Thanks
Kumar


Kumar G <kumarg27061979@...>
 

Many Thanks Igor

> yes, devices connected to the described controller will be enumerated by
> bus specific driver.

Thanks

> It should be possible to add 'Device' object under the described controller
> and then add _RST method to that. Even if Device is described in ACPI it
> doesn't garantie that specific impl. of PCI/USB driver will actually take
> all it describes into account.

You mean, I can have a device with a vendor id under the controller hub ?
 Something like
Scope (_SB)
{
 Device (PCI) {
  Device(My_device) {
   Name(_ADR, VENDOR_ID) <-- This is vendor id, scanned by Bus driver ??
   --- Device specific method goes here
  } // End of my device
  
 } /end of PCI
}// end of SB
with above, I am wondering, if OS driver will scan bus or this table

> But I haven't seen _RST being actually used, I'd say typically PCI/USB
> driver is used to reset device (port) without involving ACPI.
Yeah, this is normally i saw, where driver is taking care of reset without asking
ACPI using specification defined bits


On Tue, 3 Nov 2020 at 16:21, Igor Mammedov <imammedo@...> wrote:
On Mon, 2 Nov 2020 23:01:18 +0530
Kumar G <kumarg27061979@...> wrote:

> Hey Experts
> I am looking for your help ,
> how I can define device specific _RST method in acpi table in case device
> is behind USB or PCIe controller.
> So far, I studied, I only need to define a PCIe or USB controller in my
> acpi table and all connected devices will be enumerated by OS itself.
yes, devices connected to the described controller will be enumerated by
bus specific driver.

> Is there any way, I can define my device under PCIe/USb controller with
> specific _RST method
It should be possible to add 'Device' object under the described controller
and then add _RST method to that. Even if Device is described in ACPI it
doesn't garantie that specific impl. of PCI/USB driver will actually take
all it describes into account.

> Any sample code/pointers are welcome
But I haven't seen _RST being actually used, I'd say typically PCI/USB
driver is used to reset device (port) without involving ACPI.


> Thanks
> Kumar


Igor Mammedov <imammedo@...>
 

On Wed, 4 Nov 2020 10:14:28 +0530
Kumar G <kumarg27061979@gmail.com> wrote:

Many Thanks Igor

yes, devices connected to the described controller will be enumerated by
bus specific driver.
Thanks

It should be possible to add 'Device' object under the described
controller
and then add _RST method to that. Even if Device is described in ACPI it
doesn't garantie that specific impl. of PCI/USB driver will actually take
all it describes into account.
You mean, I can have a device with a vendor id under the controller hub ?
Something like
Scope (_SB)
{
Device (PCI) {
Device(My_device) {
Name(_ADR, VENDOR_ID) <-- This is vendor id, scanned by Bus driver ??
_ADR is bus specific address, not vendor id
for ex you can check what QEMU uses to generate it
or better read a relevant spec

--- Device specific method goes here
} // End of my device

} /end of PCI
}// end of SB
with above, I am wondering, if OS driver will scan bus or this table

But I haven't seen _RST being actually used, I'd say typically PCI/USB
driver is used to reset device (port) without involving ACPI.
Yeah, this is normally i saw, where driver is taking care of reset without
asking
ACPI using specification defined bits

On Tue, 3 Nov 2020 at 16:21, Igor Mammedov <imammedo@redhat.com> wrote:

On Mon, 2 Nov 2020 23:01:18 +0530
Kumar G <kumarg27061979@gmail.com> wrote:

Hey Experts
I am looking for your help ,
how I can define device specific _RST method in acpi table in case device
is behind USB or PCIe controller.
So far, I studied, I only need to define a PCIe or USB controller in my
acpi table and all connected devices will be enumerated by OS itself.
yes, devices connected to the described controller will be enumerated by
bus specific driver.

Is there any way, I can define my device under PCIe/USb controller with
specific _RST method
It should be possible to add 'Device' object under the described controller
and then add _RST method to that. Even if Device is described in ACPI it
doesn't garantie that specific impl. of PCI/USB driver will actually take
all it describes into account.

Any sample code/pointers are welcome
But I haven't seen _RST being actually used, I'd say typically PCI/USB
driver is used to reset device (port) without involving ACPI.


Thanks
Kumar