diff options
Diffstat (limited to 'drivers/ssb/main.c')
| -rw-r--r-- | drivers/ssb/main.c | 23 | 
1 files changed, 11 insertions, 12 deletions
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c index e05ba6eefc7..ad3da93a428 100644 --- a/drivers/ssb/main.c +++ b/drivers/ssb/main.c @@ -1117,23 +1117,22 @@ static u32 ssb_tmslow_reject_bitmask(struct ssb_device *dev)  {  	u32 rev = ssb_read32(dev, SSB_IDLOW) & SSB_IDLOW_SSBREV; -	/* The REJECT bit changed position in TMSLOW between -	 * Backplane revisions. */ +	/* The REJECT bit seems to be different for Backplane rev 2.3 */  	switch (rev) {  	case SSB_IDLOW_SSBREV_22: -		return SSB_TMSLOW_REJECT_22; +	case SSB_IDLOW_SSBREV_24: +	case SSB_IDLOW_SSBREV_26: +		return SSB_TMSLOW_REJECT;  	case SSB_IDLOW_SSBREV_23:  		return SSB_TMSLOW_REJECT_23; -	case SSB_IDLOW_SSBREV_24:     /* TODO - find the proper REJECT bits */ -	case SSB_IDLOW_SSBREV_25:     /* same here */ -	case SSB_IDLOW_SSBREV_26:     /* same here */ +	case SSB_IDLOW_SSBREV_25:     /* TODO - find the proper REJECT bit */  	case SSB_IDLOW_SSBREV_27:     /* same here */ -		return SSB_TMSLOW_REJECT_23;	/* this is a guess */ +		return SSB_TMSLOW_REJECT;	/* this is a guess */  	default:  		printk(KERN_INFO "ssb: Backplane Revision 0x%.8X\n", rev);  		WARN_ON(1);  	} -	return (SSB_TMSLOW_REJECT_22 | SSB_TMSLOW_REJECT_23); +	return (SSB_TMSLOW_REJECT | SSB_TMSLOW_REJECT_23);  }  int ssb_device_is_enabled(struct ssb_device *dev) @@ -1309,20 +1308,20 @@ EXPORT_SYMBOL(ssb_bus_may_powerdown);  int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl)  { -	struct ssb_chipcommon *cc;  	int err;  	enum ssb_clkmode mode;  	err = ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 1);  	if (err)  		goto error; -	cc = &bus->chipco; -	mode = dynamic_pctl ? SSB_CLKMODE_DYNAMIC : SSB_CLKMODE_FAST; -	ssb_chipco_set_clockmode(cc, mode);  #ifdef CONFIG_SSB_DEBUG  	bus->powered_up = 1;  #endif + +	mode = dynamic_pctl ? SSB_CLKMODE_DYNAMIC : SSB_CLKMODE_FAST; +	ssb_chipco_set_clockmode(&bus->chipco, mode); +  	return 0;  error:  	ssb_printk(KERN_ERR PFX "Bus powerup failed\n");  |