diff options
Diffstat (limited to 'drivers/net/wireless/b43/debugfs.c')
-rw-r--r-- | drivers/net/wireless/b43/debugfs.c | 79 |
1 files changed, 3 insertions, 76 deletions
diff --git a/drivers/net/wireless/b43/debugfs.c b/drivers/net/wireless/b43/debugfs.c index 29851bc1101..06a01da8016 100644 --- a/drivers/net/wireless/b43/debugfs.c +++ b/drivers/net/wireless/b43/debugfs.c | |||
@@ -443,76 +443,6 @@ out_unlock: | |||
443 | return count; | 443 | return count; |
444 | } | 444 | } |
445 | 445 | ||
446 | static ssize_t txpower_g_read_file(struct b43_wldev *dev, | ||
447 | char *buf, size_t bufsize) | ||
448 | { | ||
449 | ssize_t count = 0; | ||
450 | |||
451 | if (dev->phy.type != B43_PHYTYPE_G) { | ||
452 | fappend("Device is not a G-PHY\n"); | ||
453 | goto out; | ||
454 | } | ||
455 | fappend("Control: %s\n", dev->phy.manual_txpower_control ? | ||
456 | "MANUAL" : "AUTOMATIC"); | ||
457 | fappend("Baseband attenuation: %u\n", dev->phy.bbatt.att); | ||
458 | fappend("Radio attenuation: %u\n", dev->phy.rfatt.att); | ||
459 | fappend("TX Mixer Gain: %s\n", | ||
460 | (dev->phy.tx_control & B43_TXCTL_TXMIX) ? "ON" : "OFF"); | ||
461 | fappend("PA Gain 2dB: %s\n", | ||
462 | (dev->phy.tx_control & B43_TXCTL_PA2DB) ? "ON" : "OFF"); | ||
463 | fappend("PA Gain 3dB: %s\n", | ||
464 | (dev->phy.tx_control & B43_TXCTL_PA3DB) ? "ON" : "OFF"); | ||
465 | fappend("\n\n"); | ||
466 | fappend("You can write to this file:\n"); | ||
467 | fappend("Writing \"auto\" enables automatic txpower control.\n"); | ||
468 | fappend | ||
469 | ("Writing the attenuation values as \"bbatt rfatt txmix pa2db pa3db\" " | ||
470 | "enables manual txpower control.\n"); | ||
471 | fappend("Example: 5 4 0 0 1\n"); | ||
472 | fappend("Enables manual control with Baseband attenuation 5, " | ||
473 | "Radio attenuation 4, No TX Mixer Gain, " | ||
474 | "No PA Gain 2dB, With PA Gain 3dB.\n"); | ||
475 | out: | ||
476 | return count; | ||
477 | } | ||
478 | |||
479 | static int txpower_g_write_file(struct b43_wldev *dev, | ||
480 | const char *buf, size_t count) | ||
481 | { | ||
482 | if (dev->phy.type != B43_PHYTYPE_G) | ||
483 | return -ENODEV; | ||
484 | if ((count >= 4) && (memcmp(buf, "auto", 4) == 0)) { | ||
485 | /* Automatic control */ | ||
486 | dev->phy.manual_txpower_control = 0; | ||
487 | b43_phy_xmitpower(dev); | ||
488 | } else { | ||
489 | int bbatt = 0, rfatt = 0, txmix = 0, pa2db = 0, pa3db = 0; | ||
490 | /* Manual control */ | ||
491 | if (sscanf(buf, "%d %d %d %d %d", &bbatt, &rfatt, | ||
492 | &txmix, &pa2db, &pa3db) != 5) | ||
493 | return -EINVAL; | ||
494 | b43_put_attenuation_into_ranges(dev, &bbatt, &rfatt); | ||
495 | dev->phy.manual_txpower_control = 1; | ||
496 | dev->phy.bbatt.att = bbatt; | ||
497 | dev->phy.rfatt.att = rfatt; | ||
498 | dev->phy.tx_control = 0; | ||
499 | if (txmix) | ||
500 | dev->phy.tx_control |= B43_TXCTL_TXMIX; | ||
501 | if (pa2db) | ||
502 | dev->phy.tx_control |= B43_TXCTL_PA2DB; | ||
503 | if (pa3db) | ||
504 | dev->phy.tx_control |= B43_TXCTL_PA3DB; | ||
505 | b43_phy_lock(dev); | ||
506 | b43_radio_lock(dev); | ||
507 | b43_set_txpower_g(dev, &dev->phy.bbatt, | ||
508 | &dev->phy.rfatt, dev->phy.tx_control); | ||
509 | b43_radio_unlock(dev); | ||
510 | b43_phy_unlock(dev); | ||
511 | } | ||
512 | |||
513 | return 0; | ||
514 | } | ||
515 | |||
516 | /* wl->irq_lock is locked */ | 446 | /* wl->irq_lock is locked */ |
517 | static int restart_write_file(struct b43_wldev *dev, | 447 | static int restart_write_file(struct b43_wldev *dev, |
518 | const char *buf, size_t count) | 448 | const char *buf, size_t count) |
@@ -560,7 +490,7 @@ static ssize_t loctls_read_file(struct b43_wldev *dev, | |||
560 | err = -ENODEV; | 490 | err = -ENODEV; |
561 | goto out; | 491 | goto out; |
562 | } | 492 | } |
563 | lo = phy->lo_control; | 493 | lo = phy->g->lo_control; |
564 | fappend("-- Local Oscillator calibration data --\n\n"); | 494 | fappend("-- Local Oscillator calibration data --\n\n"); |
565 | fappend("HW-power-control enabled: %d\n", | 495 | fappend("HW-power-control enabled: %d\n", |
566 | dev->phy.hardware_power_control); | 496 | dev->phy.hardware_power_control); |
@@ -578,8 +508,8 @@ static ssize_t loctls_read_file(struct b43_wldev *dev, | |||
578 | list_for_each_entry(cal, &lo->calib_list, list) { | 508 | list_for_each_entry(cal, &lo->calib_list, list) { |
579 | bool active; | 509 | bool active; |
580 | 510 | ||
581 | active = (b43_compare_bbatt(&cal->bbatt, &phy->bbatt) && | 511 | active = (b43_compare_bbatt(&cal->bbatt, &phy->g->bbatt) && |
582 | b43_compare_rfatt(&cal->rfatt, &phy->rfatt)); | 512 | b43_compare_rfatt(&cal->rfatt, &phy->g->rfatt)); |
583 | fappend("BB(%d), RF(%d,%d) -> I=%d, Q=%d " | 513 | fappend("BB(%d), RF(%d,%d) -> I=%d, Q=%d " |
584 | "(expires in %lu sec)%s\n", | 514 | "(expires in %lu sec)%s\n", |
585 | cal->bbatt.att, | 515 | cal->bbatt.att, |
@@ -763,7 +693,6 @@ B43_DEBUGFS_FOPS(mmio32read, mmio32read__read_file, mmio32read__write_file, 1); | |||
763 | B43_DEBUGFS_FOPS(mmio32write, NULL, mmio32write__write_file, 1); | 693 | B43_DEBUGFS_FOPS(mmio32write, NULL, mmio32write__write_file, 1); |
764 | B43_DEBUGFS_FOPS(tsf, tsf_read_file, tsf_write_file, 1); | 694 | B43_DEBUGFS_FOPS(tsf, tsf_read_file, tsf_write_file, 1); |
765 | B43_DEBUGFS_FOPS(txstat, txstat_read_file, NULL, 0); | 695 | B43_DEBUGFS_FOPS(txstat, txstat_read_file, NULL, 0); |
766 | B43_DEBUGFS_FOPS(txpower_g, txpower_g_read_file, txpower_g_write_file, 0); | ||
767 | B43_DEBUGFS_FOPS(restart, NULL, restart_write_file, 1); | 696 | B43_DEBUGFS_FOPS(restart, NULL, restart_write_file, 1); |
768 | B43_DEBUGFS_FOPS(loctls, loctls_read_file, NULL, 0); | 697 | B43_DEBUGFS_FOPS(loctls, loctls_read_file, NULL, 0); |
769 | 698 | ||
@@ -877,7 +806,6 @@ void b43_debugfs_add_device(struct b43_wldev *dev) | |||
877 | ADD_FILE(mmio32write, 0200); | 806 | ADD_FILE(mmio32write, 0200); |
878 | ADD_FILE(tsf, 0600); | 807 | ADD_FILE(tsf, 0600); |
879 | ADD_FILE(txstat, 0400); | 808 | ADD_FILE(txstat, 0400); |
880 | ADD_FILE(txpower_g, 0600); | ||
881 | ADD_FILE(restart, 0200); | 809 | ADD_FILE(restart, 0200); |
882 | ADD_FILE(loctls, 0400); | 810 | ADD_FILE(loctls, 0400); |
883 | 811 | ||
@@ -907,7 +835,6 @@ void b43_debugfs_remove_device(struct b43_wldev *dev) | |||
907 | debugfs_remove(e->file_mmio32write.dentry); | 835 | debugfs_remove(e->file_mmio32write.dentry); |
908 | debugfs_remove(e->file_tsf.dentry); | 836 | debugfs_remove(e->file_tsf.dentry); |
909 | debugfs_remove(e->file_txstat.dentry); | 837 | debugfs_remove(e->file_txstat.dentry); |
910 | debugfs_remove(e->file_txpower_g.dentry); | ||
911 | debugfs_remove(e->file_restart.dentry); | 838 | debugfs_remove(e->file_restart.dentry); |
912 | debugfs_remove(e->file_loctls.dentry); | 839 | debugfs_remove(e->file_loctls.dentry); |
913 | 840 | ||