diff --git a/Kernel/Devices/PATAChannel.cpp b/Kernel/Devices/PATAChannel.cpp index c40ea679ac..d75a9292ee 100644 --- a/Kernel/Devices/PATAChannel.cpp +++ b/Kernel/Devices/PATAChannel.cpp @@ -294,15 +294,11 @@ bool PATAChannel::ata_read_sectors_with_dma(u32 lba, u16 count, u8* outbuf, bool while (m_io_base.offset(ATA_REG_STATUS).in() & ATA_SR_BSY) ; - u8 devsel = 0xe0; - if (slave_request) - devsel |= 0x10; - m_control_base.offset(ATA_CTL_CONTROL).out(0); - m_io_base.offset(ATA_REG_HDDEVSEL).out(devsel | (static_cast(slave_request) << 4)); + m_io_base.offset(ATA_REG_HDDEVSEL).out(0x40 | (static_cast(slave_request) << 4)); io_delay(); - m_io_base.offset(ATA_REG_FEATURES).out(0); + m_io_base.offset(ATA_REG_FEATURES).out(0); m_io_base.offset(ATA_REG_SECCOUNT0).out(0); m_io_base.offset(ATA_REG_LBA0).out(0); @@ -365,15 +361,11 @@ bool PATAChannel::ata_write_sectors_with_dma(u32 lba, u16 count, const u8* inbuf while (m_io_base.offset(ATA_REG_STATUS).in() & ATA_SR_BSY) ; - u8 devsel = 0xe0; - if (slave_request) - devsel |= 0x10; - m_control_base.offset(ATA_CTL_CONTROL).out(0); - m_io_base.offset(ATA_REG_HDDEVSEL).out(devsel | (static_cast(slave_request) << 4)); + m_io_base.offset(ATA_REG_HDDEVSEL).out(0x40 | (static_cast(slave_request) << 4)); io_delay(); - m_io_base.offset(ATA_REG_FEATURES).out(0); + m_io_base.offset(ATA_REG_FEATURES).out(0); m_io_base.offset(ATA_REG_SECCOUNT0).out(0); m_io_base.offset(ATA_REG_LBA0).out(0);