Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 268681
b: refs/heads/master
c: a3bf5fa
h: refs/heads/master
i:
  268679: 47167ab
v: v3
  • Loading branch information
Mark Einon authored and Greg Kroah-Hartman committed Oct 4, 2011
1 parent 3c72a35 commit dc33829
Show file tree
Hide file tree
Showing 6 changed files with 29 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 53c3ee0db36db31d095f4e902bc42a4dea18fd8c
refs/heads/master: a3bf5fa772963ef0310d982077784ef6839f2fa7
4 changes: 2 additions & 2 deletions trunk/drivers/staging/et131x/et1310_mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -612,7 +612,7 @@ void et1310_setup_device_for_multicast(struct et131x_adapter *adapter)

/* Write out the new hash to the device */
pm_csr = readl(&adapter->regs->global.pm_csr);
if ((pm_csr & ET_PM_PHY_SW_COMA) == 0) {
if (!et1310_in_phy_coma(adapter)) {
writel(hash1, &rxmac->multi_hash1);
writel(hash2, &rxmac->multi_hash2);
writel(hash3, &rxmac->multi_hash3);
Expand Down Expand Up @@ -653,7 +653,7 @@ void et1310_setup_device_for_unicast(struct et131x_adapter *adapter)
adapter->addr[5];

pm_csr = readl(&adapter->regs->global.pm_csr);
if ((pm_csr & ET_PM_PHY_SW_COMA) == 0) {
if (!et1310_in_phy_coma(adapter)) {
writel(uni_pf1, &rxmac->uni_pf_addr1);
writel(uni_pf2, &rxmac->uni_pf_addr2);
writel(uni_pf3, &rxmac->uni_pf_addr3);
Expand Down
15 changes: 15 additions & 0 deletions trunk/drivers/staging/et131x/et1310_pm.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,21 @@
#include "et131x_adapter.h"
#include "et131x.h"

/**
* et1310_in_phy_coma - check if the device is in phy coma
* @adapter: pointer to our adapter structure
*
* Returns 0 if the device is not in phy coma, 1 if it is in phy coma
*/
int et1310_in_phy_coma(struct et131x_adapter *adapter)
{
u32 pmcsr;

pmcsr = readl(&adapter->regs->global.pm_csr);

return ET_PM_PHY_SW_COMA & pmcsr ? 1 : 0;
}

/**
* et1310_enable_phy_coma - called when network cable is unplugged
* @adapter: pointer to our adapter structure
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/staging/et131x/et131x.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ void et131x_enable_txrx(struct net_device *netdev);
void et131x_disable_txrx(struct net_device *netdev);

/* et1310_pm.c */
int et1310_in_phy_coma(struct et131x_adapter *adapter);
void et1310_enable_phy_coma(struct et131x_adapter *adapter);
void et1310_disable_phy_coma(struct et131x_adapter *adapter);

Expand Down
28 changes: 9 additions & 19 deletions trunk/drivers/staging/et131x/et131x_initpci.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,15 +239,11 @@ static int et131x_pci_init(struct et131x_adapter *adapter,
void et131x_error_timer_handler(unsigned long data)
{
struct et131x_adapter *adapter = (struct et131x_adapter *) data;
u32 pm_csr;

pm_csr = readl(&adapter->regs->global.pm_csr);

if ((pm_csr & ET_PM_PHY_SW_COMA) == 0)
if (!et1310_in_phy_coma(adapter))
et1310_update_macstat_host_counters(adapter);
else
dev_err(&adapter->pdev->dev,
"No interrupts, in PHY coma, pm_csr = 0x%x\n", pm_csr);
dev_err(&adapter->pdev->dev, "No interrupts, in PHY coma\n");

if (!(adapter->bmsr & BMSR_LSTATUS) &&
adapter->boot_coma < 11) {
Expand All @@ -256,7 +252,7 @@ void et131x_error_timer_handler(unsigned long data)

if (adapter->boot_coma == 10) {
if (!(adapter->bmsr & BMSR_LSTATUS)) {
if ((pm_csr & ET_PM_PHY_SW_COMA) == 0) {
if (!et1310_in_phy_coma(adapter)) {
/* NOTE - This was originally a 'sync with
* interrupt'. How to do that under Linux?
*/
Expand Down Expand Up @@ -443,9 +439,6 @@ static void et131x_adjust_link(struct net_device *netdev)
{
struct et131x_adapter *adapter = netdev_priv(netdev);
struct phy_device *phydev = adapter->phydev;
struct address_map __iomem *iomem = adapter->regs;

u32 pm_csr;

if (netif_carrier_ok(netdev)) {
adapter->boot_coma = 20;
Expand Down Expand Up @@ -488,16 +481,13 @@ static void et131x_adjust_link(struct net_device *netdev)
}

if (phydev->link != adapter->link) {
/* If we are in coma mode, we need to disable it. */
pm_csr = readl(&iomem->global.pm_csr);
if (pm_csr & ET_PM_PHY_SW_COMA) {
/*
* Check to see if we are in coma mode and if
* so, disable it because we will not be able
* to read PHY values until we are out.
*/
/*
* Check to see if we are in coma mode and if
* so, disable it because we will not be able
* to read PHY values until we are out.
*/
if (et1310_in_phy_coma(adapter))
et1310_disable_phy_coma(adapter);
}

if (phydev->link) {
adapter->boot_coma = 20;
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/staging/et131x/et131x_isr.c
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ void et131x_isr_handler(struct work_struct *work)
* bp xon/xoff)
*/
pm_csr = readl(&iomem->global.pm_csr);
if ((pm_csr & ET_PM_PHY_SW_COMA) == 0)
if (!et1310_in_phy_coma(adapter))
writel(3, &iomem->txmac.bp_ctrl);
}
}
Expand Down

0 comments on commit dc33829

Please sign in to comment.