From 1998abd8ea7fa334cfd9233dd3402427a3479add Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 26 Oct 2008 18:27:54 +0000 Subject: [PATCH] * Fixed off by one bug... math can be so hard ;-) * This fixes bug #2880, ie. make the ide_adapter write the IDE task file correctly to the command register, CD-ROMs are working again. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28339 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/generic/ide_adapter/ide_adapter.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c b/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c index 106926b307..a35573aa65 100644 --- a/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c +++ b/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c @@ -57,7 +57,8 @@ ide_adapter_write_command_block_regs(ide_adapter_channel_info *channel, return B_ERROR; for (i = 0; i < 7; i++) { - if (((1 << (i + 6)) & mask) != 0) { + // LBA48 registers must be written twice + if (((1 << (i + 7)) & mask) != 0) { SHOW_FLOW( 4, "%x->HI(%x)", tf->raw.r[i + 7], i ); pci->write_io_8(device, ioaddr + 1 + i, tf->raw.r[i + 7]); }