Lines 115-120
Link Here
|
115 |
#define AHCI_Q_NOCOUNT 1024 |
115 |
#define AHCI_Q_NOCOUNT 1024 |
116 |
#define AHCI_Q_ALTSIG 2048 |
116 |
#define AHCI_Q_ALTSIG 2048 |
117 |
#define AHCI_Q_NOMSI 4096 |
117 |
#define AHCI_Q_NOMSI 4096 |
|
|
118 |
#define AHCI_Q_SMPFBSS 8192 |
118 |
|
119 |
|
119 |
#define AHCI_Q_BIT_STRING \ |
120 |
#define AHCI_Q_BIT_STRING \ |
120 |
"\020" \ |
121 |
"\020" \ |
Lines 130-136
Link Here
|
130 |
"\012NOAA" \ |
131 |
"\012NOAA" \ |
131 |
"\013NOCOUNT" \ |
132 |
"\013NOCOUNT" \ |
132 |
"\014ALTSIG" \ |
133 |
"\014ALTSIG" \ |
133 |
"\015NOMSI" |
134 |
"\015NOMSI" \ |
|
|
135 |
"\016SMPFBSS" |
134 |
} ahci_ids[] = { |
136 |
} ahci_ids[] = { |
135 |
{0x43801002, 0x00, "ATI IXP600", AHCI_Q_NOMSI}, |
137 |
{0x43801002, 0x00, "ATI IXP600", AHCI_Q_NOMSI}, |
136 |
{0x43901002, 0x00, "ATI IXP700", 0}, |
138 |
{0x43901002, 0x00, "ATI IXP700", 0}, |
Lines 222-228
Link Here
|
222 |
{0x614511ab, 0x00, "Marvell 88SE6145", AHCI_Q_NOFORCE | AHCI_Q_4CH | |
224 |
{0x614511ab, 0x00, "Marvell 88SE6145", AHCI_Q_NOFORCE | AHCI_Q_4CH | |
223 |
AHCI_Q_EDGEIS | AHCI_Q_NONCQ | AHCI_Q_NOCOUNT}, |
225 |
AHCI_Q_EDGEIS | AHCI_Q_NONCQ | AHCI_Q_NOCOUNT}, |
224 |
{0x91201b4b, 0x00, "Marvell 88SE912x", AHCI_Q_EDGEIS|AHCI_Q_NOBSYRES}, |
226 |
{0x91201b4b, 0x00, "Marvell 88SE912x", AHCI_Q_EDGEIS|AHCI_Q_NOBSYRES}, |
225 |
{0x91231b4b, 0x11, "Marvell 88SE912x", AHCI_Q_NOBSYRES|AHCI_Q_ALTSIG}, |
227 |
{0x91231b4b, 0x11, "Marvell 88SE912x", AHCI_Q_NOBSYRES|AHCI_Q_ALTSIG|AHCI_Q_SMPFBSS}, |
226 |
{0x91231b4b, 0x00, "Marvell 88SE912x", AHCI_Q_EDGEIS|AHCI_Q_SATA2|AHCI_Q_NOBSYRES}, |
228 |
{0x91231b4b, 0x00, "Marvell 88SE912x", AHCI_Q_EDGEIS|AHCI_Q_SATA2|AHCI_Q_NOBSYRES}, |
227 |
{0x91251b4b, 0x00, "Marvell 88SE9125", AHCI_Q_NOBSYRES}, |
229 |
{0x91251b4b, 0x00, "Marvell 88SE9125", AHCI_Q_NOBSYRES}, |
228 |
{0x91281b4b, 0x00, "Marvell 88SE9128", AHCI_Q_NOBSYRES|AHCI_Q_ALTSIG}, |
230 |
{0x91281b4b, 0x00, "Marvell 88SE9128", AHCI_Q_NOBSYRES|AHCI_Q_ALTSIG}, |
Lines 466-471
Link Here
|
466 |
ctlr->caps |= 3; |
468 |
ctlr->caps |= 3; |
467 |
ctlr->ichannels &= 0x0f; |
469 |
ctlr->ichannels &= 0x0f; |
468 |
} |
470 |
} |
|
|
471 |
if (ctlr->quirks & AHCI_Q_SMPFBSS) { |
472 |
ctlr->caps |= AHCI_CAP_SPM; |
473 |
ctlr->caps |= AHCI_CAP_FBSS; |
474 |
} |
469 |
ctlr->channels = MAX(flsl(ctlr->ichannels), |
475 |
ctlr->channels = MAX(flsl(ctlr->ichannels), |
470 |
(ctlr->caps & AHCI_CAP_NPMASK) + 1); |
476 |
(ctlr->caps & AHCI_CAP_NPMASK) + 1); |
471 |
if (ctlr->quirks & AHCI_Q_NOPMP) |
477 |
if (ctlr->quirks & AHCI_Q_NOPMP) |