コード例 #1
0
ファイル: pata_cs5535.c プロジェクト: PennPanda/linux-repo
static int cs5535_init_one(struct pci_dev *dev, const struct pci_device_id *id)
{
	static const struct ata_port_info info = {
		.sht = &cs5535_sht,
		.flags = ATA_FLAG_SLAVE_POSS,
		.pio_mask = 0x1f,
		.mwdma_mask = 0x07,
		.udma_mask = ATA_UDMA4,
		.port_ops = &cs5535_port_ops
	};
	const struct ata_port_info *ppi[] = { &info, &ata_dummy_port_info };

	u32 timings, dummy;

	/* Check the BIOS set the initial timing clock. If not set the
	   timings for PIO0 */
	rdmsr(ATAC_CH0D0_PIO, timings, dummy);
	if (CS5535_BAD_PIO(timings))
		wrmsr(ATAC_CH0D0_PIO, 0xF7F4F7F4UL, 0);
	rdmsr(ATAC_CH0D1_PIO, timings, dummy);
	if (CS5535_BAD_PIO(timings))
		wrmsr(ATAC_CH0D1_PIO, 0xF7F4F7F4UL, 0);
	return ata_pci_init_one(dev, ppi);
}

static const struct pci_device_id cs5535[] = {
	{ PCI_VDEVICE(NS, 0x002D), },

	{ },
};

static struct pci_driver cs5535_pci_driver = {
	.name		= DRV_NAME,
	.id_table	= cs5535,
	.probe 		= cs5535_init_one,
	.remove		= ata_pci_remove_one,
#ifdef CONFIG_PM
	.suspend	= ata_pci_device_suspend,
	.resume		= ata_pci_device_resume,
#endif
};

static int __init cs5535_init(void)
{
	return pci_register_driver(&cs5535_pci_driver);
}

static void __exit cs5535_exit(void)
{
	pci_unregister_driver(&cs5535_pci_driver);
}
コード例 #2
0
ファイル: pata_cs5535.c プロジェクト: CSCLOG/beaglebone
static int cs5535_init_one(struct pci_dev *dev, const struct pci_device_id *id)
{
    static const struct ata_port_info info = {
        .flags = ATA_FLAG_SLAVE_POSS,
        .pio_mask = ATA_PIO4,
        .mwdma_mask = ATA_MWDMA2,
        .udma_mask = ATA_UDMA4,
        .port_ops = &cs5535_port_ops
    };
    const struct ata_port_info *ppi[] = { &info, &ata_dummy_port_info };

    u32 timings, dummy;

    /* Check the BIOS set the initial timing clock. If not set the
       timings for PIO0 */
    rdmsr(ATAC_CH0D0_PIO, timings, dummy);
    if (CS5535_BAD_PIO(timings))
        wrmsr(ATAC_CH0D0_PIO, 0xF7F4F7F4UL, 0);
    rdmsr(ATAC_CH0D1_PIO, timings, dummy);
    if (CS5535_BAD_PIO(timings))
        wrmsr(ATAC_CH0D1_PIO, 0xF7F4F7F4UL, 0);
    return ata_pci_bmdma_init_one(dev, ppi, &cs5535_sht, NULL, 0);
}