kernel: update linux 3.9 patches to rc8
[openwrt/staging/yousong.git] / target / linux / generic / patches-3.9 / 020-ssb_backport.patch
1 --- a/drivers/ssb/pci.c
2 +++ b/drivers/ssb/pci.c
3 @@ -339,6 +339,21 @@ static s8 r123_extract_antgain(u8 sprom_
4 return (s8)gain;
5 }
6
7 +static void sprom_extract_r23(struct ssb_sprom *out, const u16 *in)
8 +{
9 + SPEX(boardflags_hi, SSB_SPROM2_BFLHI, 0xFFFF, 0);
10 + SPEX(opo, SSB_SPROM2_OPO, SSB_SPROM2_OPO_VALUE, 0);
11 + SPEX(pa1lob0, SSB_SPROM2_PA1LOB0, 0xFFFF, 0);
12 + SPEX(pa1lob1, SSB_SPROM2_PA1LOB1, 0xFFFF, 0);
13 + SPEX(pa1lob2, SSB_SPROM2_PA1LOB2, 0xFFFF, 0);
14 + SPEX(pa1hib0, SSB_SPROM2_PA1HIB0, 0xFFFF, 0);
15 + SPEX(pa1hib1, SSB_SPROM2_PA1HIB1, 0xFFFF, 0);
16 + SPEX(pa1hib2, SSB_SPROM2_PA1HIB2, 0xFFFF, 0);
17 + SPEX(maxpwr_ah, SSB_SPROM2_MAXP_A, SSB_SPROM2_MAXP_A_HI, 0);
18 + SPEX(maxpwr_al, SSB_SPROM2_MAXP_A, SSB_SPROM2_MAXP_A_LO,
19 + SSB_SPROM2_MAXP_A_LO_SHIFT);
20 +}
21 +
22 static void sprom_extract_r123(struct ssb_sprom *out, const u16 *in)
23 {
24 int i;
25 @@ -398,8 +413,7 @@ static void sprom_extract_r123(struct ss
26 SSB_SPROM1_ITSSI_A_SHIFT);
27 SPEX(itssi_bg, SSB_SPROM1_ITSSI, SSB_SPROM1_ITSSI_BG, 0);
28 SPEX(boardflags_lo, SSB_SPROM1_BFLLO, 0xFFFF, 0);
29 - if (out->revision >= 2)
30 - SPEX(boardflags_hi, SSB_SPROM2_BFLHI, 0xFFFF, 0);
31 +
32 SPEX(alpha2[0], SSB_SPROM1_CCODE, 0xff00, 8);
33 SPEX(alpha2[1], SSB_SPROM1_CCODE, 0x00ff, 0);
34
35 @@ -410,6 +424,8 @@ static void sprom_extract_r123(struct ss
36 out->antenna_gain.a1 = r123_extract_antgain(out->revision, in,
37 SSB_SPROM1_AGAIN_A,
38 SSB_SPROM1_AGAIN_A_SHIFT);
39 + if (out->revision >= 2)
40 + sprom_extract_r23(out, in);
41 }
42
43 /* Revs 4 5 and 8 have partially shared layout */
44 --- a/include/linux/ssb/ssb_regs.h
45 +++ b/include/linux/ssb/ssb_regs.h
46 @@ -289,11 +289,11 @@
47 #define SSB_SPROM4_ETHPHY_ET1A_SHIFT 5
48 #define SSB_SPROM4_ETHPHY_ET0M (1<<14) /* MDIO for enet0 */
49 #define SSB_SPROM4_ETHPHY_ET1M (1<<15) /* MDIO for enet1 */
50 -#define SSB_SPROM4_ANTAVAIL 0x005D /* Antenna available bitfields */
51 -#define SSB_SPROM4_ANTAVAIL_A 0x00FF /* A-PHY bitfield */
52 -#define SSB_SPROM4_ANTAVAIL_A_SHIFT 0
53 -#define SSB_SPROM4_ANTAVAIL_BG 0xFF00 /* B-PHY and G-PHY bitfield */
54 -#define SSB_SPROM4_ANTAVAIL_BG_SHIFT 8
55 +#define SSB_SPROM4_ANTAVAIL 0x005C /* Antenna available bitfields */
56 +#define SSB_SPROM4_ANTAVAIL_BG 0x00FF /* B-PHY and G-PHY bitfield */
57 +#define SSB_SPROM4_ANTAVAIL_BG_SHIFT 0
58 +#define SSB_SPROM4_ANTAVAIL_A 0xFF00 /* A-PHY bitfield */
59 +#define SSB_SPROM4_ANTAVAIL_A_SHIFT 8
60 #define SSB_SPROM4_AGAIN01 0x005E /* Antenna Gain (in dBm Q5.2) */
61 #define SSB_SPROM4_AGAIN0 0x00FF /* Antenna 0 */
62 #define SSB_SPROM4_AGAIN0_SHIFT 0