aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-07-12 10:42:09 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-07-15 16:00:18 -0400
commit67d392c0e900bbf885ee08b8942c3204a2cab697 (patch)
treecde25b36c60a82830ae1af1a9970a23851c485a2
parentb3bbf842670def767ec8ebdd424f09358afeb5c6 (diff)
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>
-rw-r--r--drivers/ssb/pci.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/ssb/pci.c b/drivers/ssb/pci.c
index a8dc95ebf2d6..fc0bb4923ac3 100644
--- a/drivers/ssb/pci.c
+++ b/drivers/ssb/pci.c
@@ -326,13 +326,13 @@ err_ctlreg:
326 return err; 326 return err;
327} 327}
328 328
329static s8 r123_extract_antgain(u8 sprom_revision, const u16 *in, 329static s8 sprom_extract_antgain(u8 sprom_revision, const u16 *in, u16 offset,
330 u16 mask, u16 shift) 330 u16 mask, u16 shift)
331{ 331{
332 u16 v; 332 u16 v;
333 u8 gain; 333 u8 gain;
334 334
335 v = in[SPOFF(SSB_SPROM1_AGAIN)]; 335 v = in[SPOFF(offset)];
336 gain = (v & mask) >> shift; 336 gain = (v & mask) >> shift;
337 if (gain == 0xFF) 337 if (gain == 0xFF)
338 gain = 2; /* If unset use 2dBm */ 338 gain = 2; /* If unset use 2dBm */
@@ -416,12 +416,14 @@ static void sprom_extract_r123(struct ssb_sprom *out, const u16 *in)
416 SPEX(alpha2[1], SSB_SPROM1_CCODE, 0x00ff, 0); 416 SPEX(alpha2[1], SSB_SPROM1_CCODE, 0x00ff, 0);
417 417
418 /* Extract the antenna gain values. */ 418 /* Extract the antenna gain values. */
419 out->antenna_gain.a0 = r123_extract_antgain(out->revision, in, 419 out->antenna_gain.a0 = sprom_extract_antgain(out->revision, in,
420 SSB_SPROM1_AGAIN_BG, 420 SSB_SPROM1_AGAIN,
421 SSB_SPROM1_AGAIN_BG_SHIFT); 421 SSB_SPROM1_AGAIN_BG,
422 out->antenna_gain.a1 = r123_extract_antgain(out->revision, in, 422 SSB_SPROM1_AGAIN_BG_SHIFT);
423 SSB_SPROM1_AGAIN_A, 423 out->antenna_gain.a1 = sprom_extract_antgain(out->revision, in,
424 SSB_SPROM1_AGAIN_A_SHIFT); 424 SSB_SPROM1_AGAIN,
425 SSB_SPROM1_AGAIN_A,
426 SSB_SPROM1_AGAIN_A_SHIFT);
425 if (out->revision >= 2) 427 if (out->revision >= 2)
426 sprom_extract_r23(out, in); 428 sprom_extract_r23(out, in);
427} 429}