summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiav A <liavalb@gmail.com>2021-03-22 21:01:48 +0200
committerAndreas Kling <kling@serenityos.org>2021-03-23 19:27:00 +0100
commitb25f84daaa997a9147b8bccbcbf21006057478fc (patch)
treec6b274f3a4372b30efd0b524681d5bd95f39bf87
parent84e34d76d847d79e921c05576c1fedc774261306 (diff)
downloadserenity-b25f84daaa997a9147b8bccbcbf21006057478fc.zip
Revert "Kernel/AHCI: Add a boot argument to force AHCI to operate on IRQ 11"
This reverts commit cfc2f33dcba18e2afaeeba6c6158269cb9abea30. We can't actually change the IRQ line value and expect the device to work with it (this was my mistake). That register is R/W so the firmware can figure out IRQ routing and put the correct value and write it to the Interrupt line register.
-rw-r--r--Kernel/CommandLine.cpp5
-rw-r--r--Kernel/CommandLine.h1
-rw-r--r--Kernel/Storage/AHCIController.cpp7
3 files changed, 0 insertions, 13 deletions
diff --git a/Kernel/CommandLine.cpp b/Kernel/CommandLine.cpp
index f050efbe05..4294b97c9c 100644
--- a/Kernel/CommandLine.cpp
+++ b/Kernel/CommandLine.cpp
@@ -113,11 +113,6 @@ UNMAP_AFTER_INIT bool CommandLine::is_mmio_enabled() const
return lookup("pci_mmio").value_or("off") == "on";
}
-UNMAP_AFTER_INIT bool CommandLine::is_forcing_irq_11_for_ahci() const
-{
- return lookup("force_ahci_irq_11").value_or("off") == "on";
-}
-
UNMAP_AFTER_INIT bool CommandLine::is_legacy_time_enabled() const
{
return lookup("time").value_or("modern") == "legacy";
diff --git a/Kernel/CommandLine.h b/Kernel/CommandLine.h
index 657618700f..91e553026e 100644
--- a/Kernel/CommandLine.h
+++ b/Kernel/CommandLine.h
@@ -73,7 +73,6 @@ public:
[[nodiscard]] bool is_vmmouse_enabled() const;
[[nodiscard]] bool is_mmio_enabled() const;
[[nodiscard]] bool is_legacy_time_enabled() const;
- [[nodiscard]] bool is_forcing_irq_11_for_ahci() const;
[[nodiscard]] bool is_text_mode() const;
[[nodiscard]] bool is_force_pio() const;
[[nodiscard]] AcpiFeatureLevel acpi_feature_level() const;
diff --git a/Kernel/Storage/AHCIController.cpp b/Kernel/Storage/AHCIController.cpp
index 69c205d2c8..626e35053d 100644
--- a/Kernel/Storage/AHCIController.cpp
+++ b/Kernel/Storage/AHCIController.cpp
@@ -172,13 +172,6 @@ void AHCIController::initialize()
hba().control_regs.ghc = 0x80000000; // Ensure that HBA knows we are AHCI aware.
PCI::enable_interrupt_line(pci_address());
PCI::enable_bus_mastering(pci_address());
-
- // FIXME: This is a hack for VMWare (and possibly other hardware) that set
- // the IRQ line to 7 or other weird value. Find a better way to set this
- // with balancing IRQ sharing in mind.
- if (kernel_command_line().is_forcing_irq_11_for_ahci())
- PCI::set_interrupt_line(pci_address(), 11);
-
enable_global_interrupts();
m_handlers.append(AHCIPortHandler::create(*this, PCI::get_interrupt_line(pci_address()),
AHCI::MaskedBitField((volatile u32&)(hba().control_regs.pi))));