Am Donnerstag, den 04.02.2010, 01:58 +0100 schrieb Carl-Daniel Hailfinger:
On 29.01.2010 01:40, Michael Karcher wrote:
--- a/board_enable.c +++ b/board_enable.c @@ -1312,7 +1312,8 @@ static struct board_pciid_enable *board_match_pci_card_ids(void) struct board_pciid_enable *board = board_pciid_enables;
for (; board->vendor_name; board++) {
if (!board->first_card_vendor || !board->first_card_device)
if (!board->first_card_vendor ||
(!board->first_card_device && !board->dmi_pattern)) continue;
if (!pci_card_find(board->first_vendor, board->first_device,
This code still requires a nonzero subsystem vendor even if a DMI pattern is present.
That condition is completely wrong. I meant (!board->first_card_vendor && !board->dmi_pattern). The idea is that a zero subsystem ID is fine when matching with DMI, but the zero subsystem ID is still matched by pci_card_find.
If that is intentional (I thought DMI would eliminate subsystem vendor+device requirement),
No, DMI was not meant to make softer matching in PCI space, just to make stronger matches. The patch is just to avoid bogus rejects on boards with no subsystem IDs (meaning subsystem ID zero) at all.
Regards, Michael Karcher