mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 00:37:45 +00:00
Kernel/Storage: Don't use interrupts when identifying AHCI devices
Don't use interrupts when trying to identify a device that is connected to a port on the AHCI controller, and instead poll for changes in status to end the transaction. Not only this simplifies the initialization sequence, it ensures that for whatever reason the controller doesn't send an IRQ, we are never getting stuck at this point.
This commit is contained in:
parent
4dc3617f3c
commit
1ae76676a5
2 changed files with 40 additions and 26 deletions
|
@ -53,7 +53,7 @@ public:
|
|||
|
||||
private:
|
||||
bool is_phy_enabled() const { return (m_port_registers.ssts & 0xf) == 3; }
|
||||
bool initialize(SpinlockLocker<Spinlock>&);
|
||||
bool initialize();
|
||||
|
||||
UNMAP_AFTER_INIT AHCIPort(const AHCIPortHandler&, volatile AHCI::PortRegisters&, u32 port_index);
|
||||
|
||||
|
@ -81,7 +81,7 @@ private:
|
|||
|
||||
bool spin_until_ready() const;
|
||||
|
||||
bool identify_device(SpinlockLocker<Spinlock>&);
|
||||
bool identify_device();
|
||||
|
||||
ALWAYS_INLINE void start_command_list_processing() const;
|
||||
ALWAYS_INLINE void mark_command_header_ready_to_process(u8 command_header_index) const;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue