bcma: add bcma_core_pci_extend_L1timer
This code is based on code from pcie_extendL1timer() in brcmsmac. This patch is part of the move of pci specific code from brcmsmac to bcma. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Tested-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
0b2948eeb1
commit
29f6b3d823
|
@ -24,14 +24,12 @@ u32 bcma_pcie_read(struct bcma_drv_pci *pc, u32 address)
|
||||||
return pcicore_read32(pc, BCMA_CORE_PCI_PCIEIND_DATA);
|
return pcicore_read32(pc, BCMA_CORE_PCI_PCIEIND_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void bcma_pcie_write(struct bcma_drv_pci *pc, u32 address, u32 data)
|
static void bcma_pcie_write(struct bcma_drv_pci *pc, u32 address, u32 data)
|
||||||
{
|
{
|
||||||
pcicore_write32(pc, BCMA_CORE_PCI_PCIEIND_ADDR, address);
|
pcicore_write32(pc, BCMA_CORE_PCI_PCIEIND_ADDR, address);
|
||||||
pcicore_read32(pc, BCMA_CORE_PCI_PCIEIND_ADDR);
|
pcicore_read32(pc, BCMA_CORE_PCI_PCIEIND_ADDR);
|
||||||
pcicore_write32(pc, BCMA_CORE_PCI_PCIEIND_DATA, data);
|
pcicore_write32(pc, BCMA_CORE_PCI_PCIEIND_DATA, data);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
static void bcma_pcie_mdio_set_phy(struct bcma_drv_pci *pc, u8 phy)
|
static void bcma_pcie_mdio_set_phy(struct bcma_drv_pci *pc, u8 phy)
|
||||||
{
|
{
|
||||||
|
@ -224,3 +222,17 @@ out:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(bcma_core_pci_irq_ctl);
|
EXPORT_SYMBOL_GPL(bcma_core_pci_irq_ctl);
|
||||||
|
|
||||||
|
void bcma_core_pci_extend_L1timer(struct bcma_drv_pci *pc, bool extend)
|
||||||
|
{
|
||||||
|
u32 w;
|
||||||
|
|
||||||
|
w = bcma_pcie_read(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG);
|
||||||
|
if (extend)
|
||||||
|
w |= BCMA_CORE_PCI_ASPMTIMER_EXTEND;
|
||||||
|
else
|
||||||
|
w &= ~BCMA_CORE_PCI_ASPMTIMER_EXTEND;
|
||||||
|
bcma_pcie_write(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG, w);
|
||||||
|
bcma_pcie_read(pc, BCMA_CORE_PCI_DLLP_PMTHRESHREG);
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(bcma_core_pci_extend_L1timer);
|
||||||
|
|
|
@ -133,6 +133,7 @@ struct pci_dev;
|
||||||
#define BCMA_CORE_PCI_DLLP_LRREG 0x120 /* Link Replay */
|
#define BCMA_CORE_PCI_DLLP_LRREG 0x120 /* Link Replay */
|
||||||
#define BCMA_CORE_PCI_DLLP_LACKTOREG 0x124 /* Link Ack Timeout */
|
#define BCMA_CORE_PCI_DLLP_LACKTOREG 0x124 /* Link Ack Timeout */
|
||||||
#define BCMA_CORE_PCI_DLLP_PMTHRESHREG 0x128 /* Power Management Threshold */
|
#define BCMA_CORE_PCI_DLLP_PMTHRESHREG 0x128 /* Power Management Threshold */
|
||||||
|
#define BCMA_CORE_PCI_ASPMTIMER_EXTEND 0x01000000 /* > rev7: enable extend ASPM timer */
|
||||||
#define BCMA_CORE_PCI_DLLP_RTRYWPREG 0x12C /* Retry buffer write ptr */
|
#define BCMA_CORE_PCI_DLLP_RTRYWPREG 0x12C /* Retry buffer write ptr */
|
||||||
#define BCMA_CORE_PCI_DLLP_RTRYRPREG 0x130 /* Retry buffer Read ptr */
|
#define BCMA_CORE_PCI_DLLP_RTRYRPREG 0x130 /* Retry buffer Read ptr */
|
||||||
#define BCMA_CORE_PCI_DLLP_RTRYPPREG 0x134 /* Retry buffer Purged ptr */
|
#define BCMA_CORE_PCI_DLLP_RTRYPPREG 0x134 /* Retry buffer Purged ptr */
|
||||||
|
@ -207,6 +208,7 @@ struct bcma_drv_pci {
|
||||||
extern void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc);
|
extern void __devinit bcma_core_pci_init(struct bcma_drv_pci *pc);
|
||||||
extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc,
|
extern int bcma_core_pci_irq_ctl(struct bcma_drv_pci *pc,
|
||||||
struct bcma_device *core, bool enable);
|
struct bcma_device *core, bool enable);
|
||||||
|
extern void bcma_core_pci_extend_L1timer(struct bcma_drv_pci *pc, bool extend);
|
||||||
|
|
||||||
extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev);
|
extern int bcma_core_pci_pcibios_map_irq(const struct pci_dev *dev);
|
||||||
extern int bcma_core_pci_plat_dev_init(struct pci_dev *dev);
|
extern int bcma_core_pci_plat_dev_init(struct pci_dev *dev);
|
||||||
|
|
Loading…
Reference in New Issue