From: Mark Lord <mlord@pobox.com>
To: eric@pozicom.net
Cc: linux-ide@vger.kernel.org
Subject: Re: multiple sata_mv boards with same DevID ?
Date: Tue, 27 Jan 2009 11:54:47 -0500 [thread overview]
Message-ID: <497F3C57.9000006@pobox.com> (raw)
In-Reply-To: <20080731213509.5C8573CF98@mail.pozicom.net>
[-- Attachment #1: Type: text/plain, Size: 1252 bytes --]
eric wrote:
..
>>> We have the HighPoint 1740 SATAII RAID card. I had to modify the
>>> sata_mv.c
>>> (attached) to get it to work with my card. The interesting bits are
>>> as
>>> follows:
>>>
>>> /* RocketRAID 1740/174x have different identifiers */
>>>
>>> /* { PCI_VDEVICE(TTI, 0x1740), chip_508x }, */
>>>
>>> /* Pozicom: GenII 1740 cards use 88sx6042 chip */
>>>
>>> { PCI_VDEVICE(TTI, 0x1740), chip_6042 },
>>>
>>> { PCI_VDEVICE(TTI, 0x1742), chip_508x },
>>>
>>>
>>> It appears the same card has different chip set depending upon when
>>> you purchased your card. Looking through the code, the GenI vs. GenII
> vs.
>>> GenIIe is done after the call to mv_pci_init_one thus passing a table
>>> of values that are incorrect. It would appear to make sense to solve
>>> this by creating two or more tables and make mv_pci_tbl a
>>> pci_device_id global
>>> * and
>>> reference it accordingly after the Rev. level was determined.
..
Eric,
I'm patching this (finally, sorry for the delay) for the 2.6.29 kernel.
Can you confirm that the attached patch works on your system there?
It should apply/work on any of 2.6.27, 2.6.28, 2.6.29-rc,
and possibly also on older kernels.
Thanks
--
Mark Lord
Real-Time Remedies Inc.
mlord@pobox.com
[-- Attachment #2: 08_sata_mv_workaround_duplicate_pci_id_1740.patch --]
[-- Type: text/x-diff, Size: 1663 bytes --]
Apparently Highpoint has recycled the same PCI ID on two different
RocketRAID products. PCI DEV_ID 1740 could have either a 5081 chip,
or a modern 6042 chip. Yuck. Deal with it.
Signed-off-by: Mark Lord <mlord@pobox.com>
--- old/drivers/ata/sata_mv.c 2009-01-27 10:41:34.000000000 -0500
+++ linux/drivers/ata/sata_mv.c 2009-01-27 11:47:07.000000000 -0500
@@ -663,6 +663,13 @@
{ PCI_VDEVICE(MARVELL, 0x5081), chip_508x },
/* RocketRAID 1720/174x have different identifiers */
{ PCI_VDEVICE(TTI, 0x1720), chip_6042 },
+ /*
+ * There appear to be *two* different Highpoint cards
+ * which share the exact same "1740" PCI-ID (yuck).
+ * PCI-Rev.2 is actually chip_6042, whereas
+ * earlier PCI-Revs are chip_508x.
+ * We'll distinguish those later on in the code.
+ */
{ PCI_VDEVICE(TTI, 0x1740), chip_508x },
{ PCI_VDEVICE(TTI, 0x1742), chip_508x },
@@ -2903,7 +2910,7 @@
struct pci_dev *pdev = to_pci_dev(host->dev);
struct mv_host_priv *hpriv = host->private_data;
u32 hp_flags = hpriv->hp_flags;
-
+try_again:
switch (board_idx) {
case chip_5080:
hpriv->ops = &mv5xxx_ops;
@@ -2926,13 +2933,14 @@
case chip_504x:
case chip_508x:
- hpriv->ops = &mv5xxx_ops;
- hp_flags |= MV_HP_GEN_I;
-
switch (pdev->revision) {
case 0x0:
hp_flags |= MV_HP_ERRATA_50XXB0;
break;
+ case 0x2:
+ /* Highpoint RocketRAID 1740 Rev.2 uses a newer chip */
+ board_idx = chip_6042;
+ goto try_again;
case 0x3:
hp_flags |= MV_HP_ERRATA_50XXB2;
break;
@@ -2942,6 +2950,8 @@
hp_flags |= MV_HP_ERRATA_50XXB2;
break;
}
+ hpriv->ops = &mv5xxx_ops;
+ hp_flags |= MV_HP_GEN_I;
break;
case chip_604x:
next prev parent reply other threads:[~2009-01-27 16:54 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-28 22:23 (unknown), eric
2008-07-29 1:49 ` multiple sata_mv boards with same DevID ? Mark Lord
2008-07-29 1:56 ` eric
2008-07-31 15:12 ` Mark Lord
2008-07-31 20:47 ` eric
2009-01-27 16:54 ` Mark Lord [this message]
2009-01-27 19:48 ` Eric Mayo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=497F3C57.9000006@pobox.com \
--to=mlord@pobox.com \
--cc=eric@pozicom.net \
--cc=linux-ide@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.