Beispiel #1
0
void
pcicore_up(void *pch, int state)
{
	pcicore_info_t *pi = (pcicore_info_t *)pch;

	if (!pi)
		return;

	if (PCIE_GEN2(pi->sih)) {
		pcie_devcontrol_mrrs(pi, PCIE_CAP_DEVCTRL_MRRS_MASK, pi->pcie_reqsize);
		return;
	}

	pcie_power_save_upd(pi, TRUE);

	/* Restore L1 timer for better performance */
	pcie_extendL1timer(pi, TRUE);

	pcie_clkreq_upd(pi, state);

	if (pi->sih->buscorerev == 18 ||
	    (pi->sih->buscorerev == 19 && !PCIE_MRRS_OVERRIDE(sih)))
		pi->pcie_reqsize = PCIE_CAP_DEVCTRL_MRRS_128B;

	pcie_devcontrol_mrrs(pi, PCIE_CAP_DEVCTRL_MRRS_MASK, pi->pcie_reqsize);
}
Beispiel #2
0
void
pcicore_up(void *pch, int state)
{
	pcicore_info_t *pi = (pcicore_info_t *)pch;
	bool is_x19_x28 = FALSE;

	if (!pi || !PCIE(pi->sih))
		return;

	pcie_power_save_upd(pi, TRUE);

	/* Restore L1 timer for better performance */
	pcie_extendL1timer(pi, TRUE);

	pcie_clkreq_upd(pi, state);

	is_x19_x28 = ((pi->sih->boardvendor == VENDOR_APPLE) &&
	              ((pi->sih->boardtype == BCM94331X19) ||
	               (pi->sih->boardtype == BCM94331PCIEBT3Ax_SSID)));

	if (pi->sih->buscorerev == 18 ||
	    (pi->sih->buscorerev == 19 && !is_x19_x28))
		pi->pcie_reqsize = PCIE_CAP_DEVCTRL_MRRS_128B;

	pcie_devcontrol_mrrs(pi, PCIE_CAP_DEVCTRL_MRRS_MASK, pi->pcie_reqsize);
}
Beispiel #3
0
void
pcicore_down(void *pch, int state)
{
	pcicore_info_t *pi = (pcicore_info_t *)pch;

	if (!pi || !PCIE(pi->sih))
		return;

	pcie_clkreq_upd(pi, state);

	/* Reduce L1 timer for better power savings */
	pcie_extendL1timer(pi, FALSE);
}
Beispiel #4
0
void
pcicore_up(void *pch, int state)
{
	pcicore_info_t *pi = (pcicore_info_t *)pch;

	if (!pi || !PCIE(pi->sih))
		return;

	/* Restore L1 timer for better performance */
	pcie_extendL1timer(pi, TRUE);

	pcie_clkreq_upd(pi, state);
}