Skip to content

Commit

Permalink
sh: Kill off broken type 1 PCI config access checks.
Browse files Browse the repository at this point in the history
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: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Paul Mundt committed Jan 29, 2010
1 parent 320e68d commit 396c56a
Show file tree
Hide file tree
Showing 4 changed files with 0 additions and 37 deletions.
28 changes: 0 additions & 28 deletions arch/sh/drivers/pci/ops-sh4.c
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down
1 change: 0 additions & 1 deletion arch/sh/drivers/pci/pci-sh4.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
4 changes: 0 additions & 4 deletions arch/sh/drivers/pci/pci-sh7751.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");

Expand All @@ -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;
Expand Down
4 changes: 0 additions & 4 deletions arch/sh/drivers/pci/pci-sh7780.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");

Expand Down Expand Up @@ -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.
Expand Down

0 comments on commit 396c56a

Please sign in to comment.