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

Commit e4c6a360 authored by Magnus Damm's avatar Magnus Damm Committed by Paul Mundt
Browse files

sh: add reg_base member to pci_channel



Store the base address of the pci host controller registers in struct
pci_channel and use the address in pci_read_reg() and pci_write_reg().

Signed-off-by: default avatarMagnus Damm <damm@igel.co.jp>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent b6706ef1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -121,8 +121,8 @@ int __init sh4_pci_check_direct(struct pci_channel *chan)
		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(PCI_REG(SH4_PCIPAR), 8, "PCI conf1");

			request_region(chan->reg_base + SH4_PCIPAR, 8,
				       "PCI conf1");
			return 0;
		}

+2 −2
Original line number Diff line number Diff line
@@ -171,13 +171,13 @@ struct sh4_pci_address_map {
static inline void pci_write_reg(struct pci_channel *chan,
				 unsigned long val, unsigned long reg)
{
	ctrl_outl(val, PCI_REG(reg));
	ctrl_outl(val, chan->reg_base + reg);
}

static inline unsigned long pci_read_reg(struct pci_channel *chan,
					 unsigned long reg)
{
	return ctrl_inl(PCI_REG(reg));
	return ctrl_inl(chan->reg_base + reg);
}

#endif /* __PCI_SH4_H */
+2 −0
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ int __init sh7751_pci_init(struct pci_channel *chan)

	pr_debug("PCI: Starting intialization.\n");

	chan->reg_base = 0xfe200000;

	/* check for SH7751/SH7751R hardware */
	id = pci_read_reg(chan, SH7751_PCICONF0);
	if (id != ((SH7751_DEVICE_ID << 16) | SH7751_VENDOR_ID) &&
+0 −1
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@
#define SH7751_PCI_IO_SIZE           0x40000     /* Size of IO window */

#define SH7751_PCIREG_BASE           0xFE200000  /* PCI regs base address */
#define PCI_REG(n)                  (SH7751_PCIREG_BASE+ n)

#define SH7751_PCICONF0            0x0           /* PCI Config Reg 0 */
  #define SH7751_PCICONF0_DEVID      0xFFFF0000  /* Device ID */
+2 −0
Original line number Diff line number Diff line
@@ -52,6 +52,8 @@ int __init sh7780_pci_init(struct pci_channel *chan)

	pr_debug("PCI: Starting intialization.\n");

	chan->reg_base = 0xfe040000;

	ctrl_outl(0x00000001, SH7780_PCI_VCR2); /* Enable PCIC */

	/* check for SH7780/SH7780R hardware */
Loading