tg3: use phylib when robo switch is in use
When a switch is connected as a PHY to the MAC driven by tg3, use phylib and provide the phy address to tg3 from the sprom. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Acked-by: Nithin Nayak Sujir <nsujir@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
					parent
					
						
							
								4bcef89f0c
							
						
					
				
			
			
				commit
				
					
						ee002b64ec
					
				
			
		
					 1 changed files with 10 additions and 1 deletions
				
			
		| 
						 | 
					@ -1513,6 +1513,13 @@ static int tg3_mdio_init(struct tg3 *tp)
 | 
				
			||||||
				    TG3_CPMU_PHY_STRAP_IS_SERDES;
 | 
									    TG3_CPMU_PHY_STRAP_IS_SERDES;
 | 
				
			||||||
		if (is_serdes)
 | 
							if (is_serdes)
 | 
				
			||||||
			tp->phy_addr += 7;
 | 
								tp->phy_addr += 7;
 | 
				
			||||||
 | 
						} else if (tg3_flag(tp, IS_SSB_CORE) && tg3_flag(tp, ROBOSWITCH)) {
 | 
				
			||||||
 | 
							int addr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							addr = ssb_gige_get_phyaddr(tp->pdev);
 | 
				
			||||||
 | 
							if (addr < 0)
 | 
				
			||||||
 | 
								return addr;
 | 
				
			||||||
 | 
							tp->phy_addr = addr;
 | 
				
			||||||
	} else
 | 
						} else
 | 
				
			||||||
		tp->phy_addr = TG3_PHY_MII_ADDR;
 | 
							tp->phy_addr = TG3_PHY_MII_ADDR;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17366,8 +17373,10 @@ static int tg3_init_one(struct pci_dev *pdev,
 | 
				
			||||||
			tg3_flag_set(tp, FLUSH_POSTED_WRITES);
 | 
								tg3_flag_set(tp, FLUSH_POSTED_WRITES);
 | 
				
			||||||
		if (ssb_gige_one_dma_at_once(pdev))
 | 
							if (ssb_gige_one_dma_at_once(pdev))
 | 
				
			||||||
			tg3_flag_set(tp, ONE_DMA_AT_ONCE);
 | 
								tg3_flag_set(tp, ONE_DMA_AT_ONCE);
 | 
				
			||||||
		if (ssb_gige_have_roboswitch(pdev))
 | 
							if (ssb_gige_have_roboswitch(pdev)) {
 | 
				
			||||||
 | 
								tg3_flag_set(tp, USE_PHYLIB);
 | 
				
			||||||
			tg3_flag_set(tp, ROBOSWITCH);
 | 
								tg3_flag_set(tp, ROBOSWITCH);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		if (ssb_gige_is_rgmii(pdev))
 | 
							if (ssb_gige_is_rgmii(pdev))
 | 
				
			||||||
			tg3_flag_set(tp, RGMII_MODE);
 | 
								tg3_flag_set(tp, RGMII_MODE);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue