Ohh, this is because Loongson-3 has a hardware bug, when the HT controller receive a 64-bit DMA address, the high bits is lost. So set to 32-bit DMA is just a workaround. I'm sorry that I didn't describe this clearly. On Mon, Jun 18, 2012 at 6:10 PM, Borislav Petkov <bp@xxxxxxxxx> wrote: > On Mon, Jun 18, 2012 at 05:04:14PM +0800, huacai chen wrote: >> Do you means it is a better idea to modify "enum board_ids" and add a >> new board id such as board_ahci_sb700_loongson, and then add a new >> entry in ahci_port_info[]? >> If so, I think there is a problem: the pci id of our AHCI controller >> is 1002:4390, if I add board_ahci_sb700_loongson, then I should also >> add >> { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb700_loongson }, >> in ahci_pci_tbl[], but ahci_pci_tbl[] already has a line >> { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb700 }, >> Then which entry will match the device? > > Before you do anything, my question is: > > SB700/800 chipsets don't need to set a 32-bit only DMA flag; why do you > need it when you use the same chipset? > > So why do you need to do 32-bit DMA only when the chipset supports > 64-bit DMA just fine? > > Thanks. > > -- > Regards/Gruss, > Boris. -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html