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

Commit 396c56a9 authored by Paul Mundt's avatar Paul Mundt
Browse files

sh: Kill off broken type 1 PCI config access checks.



The host controllers only support type 1, so there's not much else to
test for. Some of the older controllers also supported type 2 accesses,
but we've never supported those, and likely never will. Beyond that, the
P1SEG test is meaningless for 32-bit mode, so rather than refactoring it,
just kill the type 1 test off completely.

Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 320e68da
Loading
Loading
Loading
Loading
+0 −28
Original line number Diff line number Diff line
@@ -102,34 +102,6 @@ struct pci_ops sh4_pci_ops = {
	.write		= sh4_pci_write,
};

/*
 * Not really related to pci_ops, but it's common and not worth shoving
 * somewhere else for now..
 */
int __init sh4_pci_check_direct(struct pci_channel *chan)
{
	/*
	 * Check if configuration works.
	 */
	unsigned int tmp = pci_read_reg(chan, SH4_PCIPAR);

	pci_write_reg(chan, P1SEG, SH4_PCIPAR);

	if (pci_read_reg(chan, SH4_PCIPAR) == P1SEG) {
		pci_write_reg(chan, tmp, SH4_PCIPAR);
		printk(KERN_INFO "PCI: Using configuration type 1\n");
		request_region(chan->reg_base + SH4_PCIPAR, 8,
			       "PCI conf1");
		return 0;
	}

	pci_write_reg(chan, tmp, SH4_PCIPAR);

	printk(KERN_ERR "PCI: %s failed\n", __func__);

	return -EINVAL;
}

int __attribute__((weak)) pci_fixup_pcic(struct pci_channel *chan)
{
	/* Nothing to do. */
+0 −1
Original line number Diff line number Diff line
@@ -162,7 +162,6 @@

/* arch/sh/kernel/drivers/pci/ops-sh4.c */
extern struct pci_ops sh4_pci_ops;
int sh4_pci_check_direct(struct pci_channel *chan);
int pci_fixup_pcic(struct pci_channel *chan);

struct sh4_pci_address_space {
+0 −4
Original line number Diff line number Diff line
@@ -79,7 +79,6 @@ static int __init sh7751_pci_init(void)
	struct pci_channel *chan = &sh7751_pci_controller;
	unsigned int id;
	u32 word, reg;
	int ret;

	printk(KERN_NOTICE "PCI: Starting intialization.\n");

@@ -93,9 +92,6 @@ static int __init sh7751_pci_init(void)
		return -ENODEV;
	}

	if ((ret = sh4_pci_check_direct(chan)) != 0)
		return ret;

	/* Set the BCR's to enable PCI access */
	reg = __raw_readl(SH7751_BCR1);
	reg |= 0x80000;
+0 −4
Original line number Diff line number Diff line
@@ -47,7 +47,6 @@ static int __init sh7780_pci_init(void)
	size_t memsize;
	unsigned int id;
	const char *type;
	int ret;

	printk(KERN_NOTICE "PCI: Starting intialization.\n");

@@ -85,9 +84,6 @@ static int __init sh7780_pci_init(void)
	       "controller, revision %d.\n", type,
	       __raw_readb(chan->reg_base + PCI_REVISION_ID));

	if ((ret = sh4_pci_check_direct(chan)) != 0)
		return ret;

	/*
	 * Now throw it in to register initialization mode and
	 * start the real work.