[PATCH 2/2] via82cxxx works: skip write

From: David Fries
Date: Thu Mar 25 2010 - 21:07:19 EST


This fixes via82cxxx host protected area problems.
---
drivers/ide/via82cxxx.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/ide/via82cxxx.c b/drivers/ide/via82cxxx.c
index ccd5640..d598b63 100644
--- a/drivers/ide/via82cxxx.c
+++ b/drivers/ide/via82cxxx.c
@@ -408,8 +408,10 @@ static void via_write_devctl(ide_hwif_t *hwif, u8 ctl)
struct via82cxxx_dev *vdev = hwif->host->host_priv;

outb(ctl, hwif->io_ports.ctl_addr);
+ /*
outb(vdev->cached_device[hwif->channel], hwif->io_ports.device_addr);
- printk("via_write_devctl write %u, %lu\n",
+ */
+ printk("via_write_devctl skip write %u, %lu\n",
vdev->cached_device[hwif->channel], hwif->io_ports.device_addr);
}

--
1.7.0



Uniform Multi-Platform E-IDE driver
via82cxxx 0000:00:07.1: VIA vt82c586b (rev 41) IDE UDMA33
via82cxxx 0000:00:07.1: IDE controller (0x1106:0x0571 rev 0x06)
via82cxxx 0000:00:07.1: not 100% native mode: will probe irqs later
ide: disallowing DMA for hda
ide: disallowing DMA for hdb
ide0: BM-DMA at 0xe400-0xe407
ide: disallowing DMA for hdc
ide: disallowing DMA for hdd
ide1: BM-DMA at 0xe408-0xe40f
via_write_devctl skip write 160, 502
via_write_devctl skip write 176, 502
via_write_devctl skip write 160, 502
hda: Maxtor 6Y120P0, ATA DISK drive
via_write_devctl skip write 176, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_write_devctl skip write 176, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
ide1: no devices on the port
via_write_devctl skip write 160, 502
via_write_devctl skip write 0, 374
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports
ide-gd driver 1.18
hda: max request size: 128KiB
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 175 in place of tf->device 175
value io_ports->device_addr 502
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 160 in place of tf->device 160
value io_ports->device_addr 502
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 160 in place of tf->device 160
value io_ports->device_addr 502
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 224 in place of tf->device 224
value io_ports->device_addr 502
via_write_devctl skip write 224, 502
hda: Host Protected Area detected.
current capacity is 66055248 sectors (33820 MB)
native capacity is 240121728 sectors (122942 MB)
hda: 66055248 sectors (33820 MB) w/7936KiB Cache, CHS=65531/16/63
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 160 in place of tf->device 160
value io_ports->device_addr 502
via_write_devctl skip write 160, 502
hda: cache flushes supported
hda:via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 224 in place of tf->device 224
value io_ports->device_addr 502
hda1 hda2 hda3
hda: p3 size 236037312 exceeds device capacity, enabling native capacity
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 224 in place of tf->device 224
value io_ports->device_addr 502
via_write_devctl skip write 224, 502
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 238 in place of tf->device 238
value io_ports->device_addr 502
via_write_devctl skip write 238, 502
hda: detected capacity change from 33820286976 to 122942324736
via_write_devctl skip write 160, 502
via_tf_load write tf->device 0 in place of tf->device 0
value io_ports->device_addr 502
via_tf_load write tf->device 160 in place of tf->device 160
value io_ports->device_addr 502
via_write_devctl skip write 160, 502
ide-cd driver 5.00
VFS: Cannot open root device "1602" or unknown-block(22,2)
Please append a correct "root=" boot option; here are the available partitions:
0300 120060864 hda driver: ide-gd
0301 49391 hda1
0302 1992816 hda2
0303 118018656 hda3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(22,2)

--
David Fries <david@xxxxxxxxx>
http://fries.net/~david/ (PGP encryption key available)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/