// SPDX-License-Identifier: GPL-2.0-only /* * RZ1000/1001 driver based upon * * linux/drivers/ide/pci/rz1000.c Version 0.06 January 12, 2003 * Copyright (C) 1995-1998 Linus Torvalds & author (see below) * Principal Author: mlord@pobox.com (Mark Lord) * * See linux/MAINTAINERS for address of current maintainer. * * This file provides support for disabling the buggy read-ahead * mode of the RZ1000 IDE chipset, commonly used on Intel motherboards.
*/
/** * rz1000_set_mode - mode setting function * @link: ATA link * @unused: returned device on set_mode failure * * Use a non standard set_mode function. We don't want to be tuned. We * would prefer to be BIOS generic but for the fact our hardware is * whacked out.
*/
staticint rz1000_fifo_disable(struct pci_dev *pdev)
{
u16 reg; /* Be exceptionally paranoid as we must be sure to apply the fix */ if (pci_read_config_word(pdev, 0x40, ®) != 0) return -1;
reg &= 0xDFFF; if (pci_write_config_word(pdev, 0x40, reg) != 0) return -1;
dev_info(&pdev->dev, "disabled chipset readahead.\n"); return 0;
}
/** * rz1000_init_one - Register RZ1000 ATA PCI device with kernel services * @pdev: PCI device to register * @ent: Entry in rz1000_pci_tbl matching with @pdev * * Configure an RZ1000 interface. This doesn't require much special * handling except that we *MUST* kill the chipset readahead or the * user may experience data corruption.
*/
rc = ata_pci_device_do_resume(pdev); if (rc) return rc;
/* If this fails on resume (which is a "can't happen" case), we
must stop as any progress risks data loss */ if (rz1000_fifo_disable(pdev))
panic("rz1000 fifo");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.