atadev->param.model problem or bug with Marvell 88SE6811 chip

From: Andrey Chernov <ache_at_nagual.pp.ru>
Date: Sun, 11 May 2008 04:46:08 +0400
I have device detection problem with device attached to
atapci0: <Marvell ATA controller> port 0xec00-0xec07,0xe880-0xe883,0xe800-0xe807,0xe480-0xe483,0xe400-0xe40f mem 0xfebffc00-0xfebfffff irq 16 at device 0.0 on pci3
(ASUS P5E3 motherboard).
It seems that this controller not fills atadev->param.model as current 
ata-all.c code expects:

    if (!error && (isprint(atadev->param.model[0]) ||
		   isprint(atadev->param.model[1]))) {

so whole probe is just skipped!
Namely it not pass printable atadev->param.model[0] or 
atadev->param.model[0] chars.

Here is 2 devices (master/slave) param.model hexdump and some debugging info:

command ATA_ATAPI_IDENTIFY
error 0
model 00:00:20:20:00:00:20:20:00:00:20:20:00:00:20:20:00:00:20:20:00:00:20:20:00:00:00:00:00:00:00:00:00:00:00:00:00:00:2e:31
      ^^ ^^
...
command ATA_ATAPI_IDENTIFY
error 0
model 00:00:37:31:00:00:34:32:00:00:20:20:00:00:20:20:00:00:20:20:00:00:20:20:00:00:00:00:00:00:00:00:00:00:00:00:00:00:2e:31
      ^^ ^^
As you can see, both first bytes are NULs. Those devices works perfectly
under M$ Win. I don't familiar with ATA specs. Is there some ideas
why it happens, what is the right fix or possible workaround?

-- 
http://ache.pp.ru/
Received on Sat May 10 2008 - 22:59:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:30 UTC