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

Commit f5f53a38 authored by Ondrej Zary's avatar Ondrej Zary Committed by Martin K. Petersen
Browse files

atp870u: Initialize tables earlier



Call _init_tables before chip-specific initialization. This avoids code
duplication and fixes a bug(?) in 880 init where the values read from flash
into atpdev->sp are then overwritten by calling init_tables.

Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
Reviewed-by: default avatarHannes Reinicke <hare@suse.de>
Acked-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 8177c507
Loading
Loading
Loading
Loading
+6 −16
Original line number Diff line number Diff line
@@ -1298,6 +1298,12 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
	shpnt->unique_id = shpnt->io_port;
	shpnt->irq = pdev->irq;

	err = atp870u_init_tables(shpnt);
	if (err) {
		dev_err(&pdev->dev, "Unable to allocate tables for Acard controller\n");
		goto unregister;
	}

	if (is880(atpdev)) {
		pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0x80);//JCC082803

@@ -1366,11 +1372,6 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
		atpdev->async[0] = ~(atpdev->async[0]);
		atp_writeb_base(atpdev, 0x35, atpdev->global_map[0]);
 
		if (atp870u_init_tables(shpnt) < 0) {
			printk(KERN_ERR "Unable to allocate tables for Acard controller\n");
			err = -ENOMEM;
			goto unregister;
		}

		k = atp_readb_base(atpdev, 0x38) & 0x80;
		atp_writeb_base(atpdev, 0x38, k);
@@ -1398,11 +1399,6 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
		atpdev->pciport[0] = shpnt->io_port + 0x40;
		atpdev->pciport[1] = shpnt->io_port + 0x50;
				
		if (atp870u_init_tables(shpnt) < 0) {
			err = -ENOMEM;
			goto unregister;
		}
			
		c = atp_readb_base(atpdev, 0x29);
		atp_writeb_base(atpdev, 0x29, c | 0x04);
        	
@@ -1533,12 +1529,6 @@ static int atp870u_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
			atpdev->ultra_map[0] = 0xffff;
		}


		if (atp870u_init_tables(shpnt) < 0) {
			err = -ENOMEM;
			goto unregister;
		}

		if (pdev->revision > 0x07)	/* check if atp876 chip then enable terminator */
			atp_writeb_base(atpdev, 0x3e, 0x00);