Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41946450 authored by Alan Cox's avatar Alan Cox Committed by Jeff Garzik
Browse files

pata_ninja32: setup changes



Forcibly set more of the configuration at init time. This seems to fix at
least one problem reported. We don't know what most of these bits do, but
we do know what windows stuffs there.

Signed-off-by: default avatarAlan Cox <alan@redhat.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 8397248d
Loading
Loading
Loading
Loading
+7 −2
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
 *	Base + 0x00 IRQ Status
 *	Base + 0x00 IRQ Status
 *	Base + 0x01 IRQ control
 *	Base + 0x01 IRQ control
 *	Base + 0x02 Chipset control
 *	Base + 0x02 Chipset control
 *	Base + 0x03 Unknown
 *	Base + 0x04 VDMA and reset control + wait bits
 *	Base + 0x04 VDMA and reset control + wait bits
 *	Base + 0x08 BMIMBA
 *	Base + 0x08 BMIMBA
 *	Base + 0x0C DMA Length
 *	Base + 0x0C DMA Length
@@ -174,8 +175,12 @@ static int ninja32_init_one(struct pci_dev *dev, const struct pci_device_id *id)
	ata_std_ports(&ap->ioaddr);
	ata_std_ports(&ap->ioaddr);


	iowrite8(0x05, base + 0x01);	/* Enable interrupt lines */
	iowrite8(0x05, base + 0x01);	/* Enable interrupt lines */
	iowrite8(0xB3, base + 0x02);	/* Burst, ?? setup */
	iowrite8(0xBE, base + 0x02);	/* Burst, ?? setup */
	iowrite8(0x00, base + 0x04);	/* WAIT0 ? */
	iowrite8(0x01, base + 0x03);	/* Unknown */
	iowrite8(0x20, base + 0x04);	/* WAIT0 */
	iowrite8(0x8f, base + 0x05);	/* Unknown */
	iowrite8(0xa4, base + 0x1c);	/* Unknown */
	iowrite8(0x83, base + 0x1d);	/* BMDMA control: WAIT0 */
	/* FIXME: Should we disable them at remove ? */
	/* FIXME: Should we disable them at remove ? */
	return ata_host_activate(host, dev->irq, ata_interrupt,
	return ata_host_activate(host, dev->irq, ata_interrupt,
				 IRQF_SHARED, &ninja32_sht);
				 IRQF_SHARED, &ninja32_sht);