diff options
| author | Ian McFarlane <i.mcfarlane2002@gmail.com> | 2025-04-17 15:44:27 -0400 |
|---|---|---|
| committer | Ian McFarlane <i.mcfarlane2002@gmail.com> | 2025-04-17 15:44:27 -0400 |
| commit | ada5f3dcffb0bfe26c7db3959975c4b93305487c (patch) | |
| tree | 47f70e59edbbc5dd1ef315f0340e0976e5f69b68 /kernel/drivers/ata.c | |
| parent | Merge branch 'main' into ata (diff) | |
| download | comus-ada5f3dcffb0bfe26c7db3959975c4b93305487c.tar.gz comus-ada5f3dcffb0bfe26c7db3959975c4b93305487c.tar.bz2 comus-ada5f3dcffb0bfe26c7db3959975c4b93305487c.zip | |
added logging, but we still get warnings about __FUNCTION__
Diffstat (limited to 'kernel/drivers/ata.c')
| -rw-r--r-- | kernel/drivers/ata.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/kernel/drivers/ata.c b/kernel/drivers/ata.c index 4c5896c..e940ad4 100644 --- a/kernel/drivers/ata.c +++ b/kernel/drivers/ata.c @@ -19,19 +19,24 @@ #define IDE_PROG_IF_SECONDARY_CHANNEL_CAN_SWITCH_TO_AND_FROM_PCI_NATIVE_FLAG 0x4 #define IDE_PROG_IF_DMA_SUPPORT_FLAG 0x7 -#include "comus/drivers/pci.h" -#include "comus/drivers/ata.h" +#include <comus/drivers/pci.h> +#include <comus/drivers/ata.h> +#include <lib.h> bool ata_find_primary_drive(struct pci_device *out) { if (!pci_findby_class(out, CLASS_MASS_STORAGE_CONTROLLER, - SUBCLASS_IDE_CONTROLLER, NULL)) { + SUBCLASS_IDE_CONTROLLER, NULL)) { + return false; + } + + const uint8_t prog_if = pci_rcfg_b(*out, PCI_PROG_IF_B); + const uint8_t header_type = pci_rcfg_b(*out, PCI_HEADER_TYPE_B); + + if (header_type != 0x0) { + TRACE("Wrong header type for IDE_CONTROLLER device, not reading BARs"); return false; } - const uint8_t prog_if = pci_rcfg_b(*out, PCI_PROG_IF_B); - - return true; + return true; } - - |