Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148415446
D8852.1786731572.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D8852.1786731572.diff
View Options
Index: head/sys/conf/files.arm64
===================================================================
--- head/sys/conf/files.arm64
+++ head/sys/conf/files.arm64
@@ -145,7 +145,7 @@
crypto/blowfish/bf_enc.c optional crypto | ipsec
crypto/des/des_enc.c optional crypto | ipsec | netsmb
dev/acpica/acpi_if.m optional acpi
-dev/ahci/ahci_generic.c optional ahci fdt
+dev/ahci/ahci_generic.c optional ahci
dev/cpufreq/cpufreq_dt.c optional cpufreq fdt
dev/hwpmc/hwpmc_arm64.c optional hwpmc
dev/hwpmc/hwpmc_arm64_md.c optional hwpmc
Index: head/sys/dev/ahci/ahci_generic.c
===================================================================
--- head/sys/dev/ahci/ahci_generic.c
+++ head/sys/dev/ahci/ahci_generic.c
@@ -27,6 +27,9 @@
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
+#include "opt_acpi.h"
+#include "opt_platform.h"
+
#include <sys/param.h>
#include <sys/module.h>
#include <sys/systm.h>
@@ -44,6 +47,15 @@
#include <dev/ahci/ahci.h>
+#ifdef DEV_ACPI
+#include <contrib/dev/acpica/include/acpi.h>
+#include <dev/acpica/acpivar.h>
+
+#include <dev/pci/pcivar.h>
+#include <dev/pci/pcireg.h>
+#endif
+
+#ifdef FDT
#include <dev/ofw/ofw_bus.h>
#include <dev/ofw/ofw_bus_subr.h>
@@ -54,14 +66,7 @@
};
static int
-ahci_gen_ctlr_reset(device_t dev)
-{
-
- return ahci_ctlr_reset(dev);
-}
-
-static int
-ahci_probe(device_t dev)
+ahci_fdt_probe(device_t dev)
{
if (!ofw_bus_status_okay(dev))
@@ -73,6 +78,34 @@
device_set_desc_copy(dev, "AHCI SATA controller");
return (BUS_PROBE_DEFAULT);
}
+#endif
+
+#ifdef DEV_ACPI
+static int
+ahci_acpi_probe(device_t dev)
+{
+ ACPI_HANDLE h;
+
+ if ((h = acpi_get_handle(dev)) == NULL)
+ return (ENXIO);
+
+ if (pci_get_class(dev) == PCIC_STORAGE &&
+ pci_get_subclass(dev) == PCIS_STORAGE_SATA &&
+ pci_get_progif(dev) == PCIP_STORAGE_SATA_AHCI_1_0) {
+ device_set_desc_copy(dev, "AHCI SATA controller");
+ return (BUS_PROBE_DEFAULT);
+ }
+
+ return (ENXIO);
+}
+#endif
+
+static int
+ahci_gen_ctlr_reset(device_t dev)
+{
+
+ return ahci_ctlr_reset(dev);
+}
static int
ahci_gen_attach(device_t dev)
@@ -109,9 +142,34 @@
return (0);
}
-static devclass_t ahci_gen_devclass;
-static device_method_t ahci_methods[] = {
- DEVMETHOD(device_probe, ahci_probe),
+#ifdef FDT
+static devclass_t ahci_gen_fdt_devclass;
+static device_method_t ahci_fdt_methods[] = {
+ DEVMETHOD(device_probe, ahci_fdt_probe),
+ DEVMETHOD(device_attach, ahci_gen_attach),
+ DEVMETHOD(device_detach, ahci_gen_detach),
+ DEVMETHOD(bus_print_child, ahci_print_child),
+ DEVMETHOD(bus_alloc_resource, ahci_alloc_resource),
+ DEVMETHOD(bus_release_resource, ahci_release_resource),
+ DEVMETHOD(bus_setup_intr, ahci_setup_intr),
+ DEVMETHOD(bus_teardown_intr,ahci_teardown_intr),
+ DEVMETHOD(bus_child_location_str, ahci_child_location_str),
+ DEVMETHOD(bus_get_dma_tag, ahci_get_dma_tag),
+ DEVMETHOD_END
+};
+static driver_t ahci_fdt_driver = {
+ "ahci",
+ ahci_fdt_methods,
+ sizeof(struct ahci_controller)
+};
+DRIVER_MODULE(ahci_fdt, simplebus, ahci_fdt_driver, ahci_gen_fdt_devclass,
+ NULL, NULL);
+#endif
+
+#ifdef DEV_ACPI
+static devclass_t ahci_gen_acpi_devclass;
+static device_method_t ahci_acpi_methods[] = {
+ DEVMETHOD(device_probe, ahci_acpi_probe),
DEVMETHOD(device_attach, ahci_gen_attach),
DEVMETHOD(device_detach, ahci_gen_detach),
DEVMETHOD(bus_print_child, ahci_print_child),
@@ -123,9 +181,11 @@
DEVMETHOD(bus_get_dma_tag, ahci_get_dma_tag),
DEVMETHOD_END
};
-static driver_t ahci_driver = {
+static driver_t ahci_acpi_driver = {
"ahci",
- ahci_methods,
+ ahci_acpi_methods,
sizeof(struct ahci_controller)
};
-DRIVER_MODULE(ahci, simplebus, ahci_driver, ahci_gen_devclass, NULL, NULL);
+DRIVER_MODULE(ahci_acpi, acpi, ahci_acpi_driver, ahci_gen_acpi_devclass,
+ NULL, NULL);
+#endif
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Aug 14, 6:19 PM (17 h, 52 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29407937
Default Alt Text
D8852.1786731572.diff (3 KB)
Attached To
Mode
D8852: Add an ACPI attachement to the ahci_generic driver
Attached
Detach File
Event Timeline
Log In to Comment