mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-01 06:33:07 +00:00
ssb: make code for antenna gain extraction more generic
Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
b3bbf84267
commit
67d392c0e9
1 changed files with 11 additions and 9 deletions
|
@ -326,13 +326,13 @@ static int sprom_do_write(struct ssb_bus *bus, const u16 *sprom)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static s8 r123_extract_antgain(u8 sprom_revision, const u16 *in,
|
static s8 sprom_extract_antgain(u8 sprom_revision, const u16 *in, u16 offset,
|
||||||
u16 mask, u16 shift)
|
u16 mask, u16 shift)
|
||||||
{
|
{
|
||||||
u16 v;
|
u16 v;
|
||||||
u8 gain;
|
u8 gain;
|
||||||
|
|
||||||
v = in[SPOFF(SSB_SPROM1_AGAIN)];
|
v = in[SPOFF(offset)];
|
||||||
gain = (v & mask) >> shift;
|
gain = (v & mask) >> shift;
|
||||||
if (gain == 0xFF)
|
if (gain == 0xFF)
|
||||||
gain = 2; /* If unset use 2dBm */
|
gain = 2; /* If unset use 2dBm */
|
||||||
|
@ -416,12 +416,14 @@ static void sprom_extract_r123(struct ssb_sprom *out, const u16 *in)
|
||||||
SPEX(alpha2[1], SSB_SPROM1_CCODE, 0x00ff, 0);
|
SPEX(alpha2[1], SSB_SPROM1_CCODE, 0x00ff, 0);
|
||||||
|
|
||||||
/* Extract the antenna gain values. */
|
/* Extract the antenna gain values. */
|
||||||
out->antenna_gain.a0 = r123_extract_antgain(out->revision, in,
|
out->antenna_gain.a0 = sprom_extract_antgain(out->revision, in,
|
||||||
SSB_SPROM1_AGAIN_BG,
|
SSB_SPROM1_AGAIN,
|
||||||
SSB_SPROM1_AGAIN_BG_SHIFT);
|
SSB_SPROM1_AGAIN_BG,
|
||||||
out->antenna_gain.a1 = r123_extract_antgain(out->revision, in,
|
SSB_SPROM1_AGAIN_BG_SHIFT);
|
||||||
SSB_SPROM1_AGAIN_A,
|
out->antenna_gain.a1 = sprom_extract_antgain(out->revision, in,
|
||||||
SSB_SPROM1_AGAIN_A_SHIFT);
|
SSB_SPROM1_AGAIN,
|
||||||
|
SSB_SPROM1_AGAIN_A,
|
||||||
|
SSB_SPROM1_AGAIN_A_SHIFT);
|
||||||
if (out->revision >= 2)
|
if (out->revision >= 2)
|
||||||
sprom_extract_r23(out, in);
|
sprom_extract_r23(out, in);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue