summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/dahdi/wctdm24xxp/base.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/drivers/dahdi/wctdm24xxp/base.c b/drivers/dahdi/wctdm24xxp/base.c
index 5cd304f..7382ad0 100644
--- a/drivers/dahdi/wctdm24xxp/base.c
+++ b/drivers/dahdi/wctdm24xxp/base.c
@@ -231,6 +231,7 @@ static int _opermode = 0;
static char *opermode = "FCC";
static int fxshonormode = 0;
static int alawoverride = 0;
+static char *companding = "ulaw";
static int fxotxgain = 0;
static int fxorxgain = 0;
static int fxstxgain = 0;
@@ -2637,7 +2638,7 @@ static int wctdm_init_voicedaa(struct wctdm *wc, int card, int fast, int manual,
wait_just_a_bit(HZ/10);
/* Enable PCM, ulaw */
- if (alawoverride) {
+ if (!strcasecmp(companding, "alaw")) {
wctdm_setreg(wc, card, 33, 0x20);
} else {
wctdm_setreg(wc, card, 33, 0x28);
@@ -2871,7 +2872,7 @@ static int wctdm_init_proslic(struct wctdm *wc, int card, int fast, int manual,
}
#endif
- if (alawoverride)
+ if (!strcasecmp(companding, "alaw"))
wctdm_setreg(wc, card, 1, 0x20);
else
wctdm_setreg(wc, card, 1, 0x28);
@@ -3801,7 +3802,7 @@ static struct wctdm_span *wctdm_init_span(struct wctdm *wc, int spanno, int chan
s->span.manufacturer = "Digium";
strncpy(s->span.devicetype, wc->desc->name, sizeof(s->span.devicetype) - 1);
- if (alawoverride) {
+ if (!strcasecmp(companding, "alaw")) {
s->span.deflaw = DAHDI_LAW_ALAW;
if (first) {
dev_info(&wc->vb.pdev->dev, "ALAW override parameter detected. Device will be operating in ALAW\n");
@@ -3811,7 +3812,8 @@ static struct wctdm_span *wctdm_init_span(struct wctdm *wc, int spanno, int chan
/* BRIs are in A-law */
s->span.deflaw = DAHDI_LAW_ALAW;
} else {
- /* Analog mods are ulaw unless alawoverride is used */
+ /* Analog mods are ulaw unless modparam
+ companding="alaw" is used */
s->span.deflaw = DAHDI_LAW_MULAW;
}
@@ -3950,7 +3952,7 @@ static int wctdm_vpm_init(struct wctdm *wc)
/* Setup convergence rate */
reg = wctdm_vpm_in(wc,x,0x20);
reg &= 0xE0;
- if (alawoverride) {
+ if (!strcasecmp(companding, "alaw")) {
if (!x)
dev_info(&wc->vb.pdev->dev, "VPM: A-law mode\n");
reg |= 0x01;
@@ -4889,7 +4891,6 @@ __wctdm_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
return ret;
}
-
create_sysfs_files(wc);
voicebus_lock_latency(&wc->vb);
@@ -4901,6 +4902,13 @@ __wctdm_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
wc->pos = i;
wc->txident = 1;
+ if (alawoverride) {
+ companding = "alaw";
+ dev_info(&wc->vb.pdev->dev, "The module parameter alawoverride"\
+ " has been deprecated. Please use the "\
+ "parameter companding=alaw instead");
+ }
+
for (i = 0; i < NUM_MODULES; i++) {
wc->flags[i] = wc->desc->flags;
wc->dacssrc[i] = -1;
@@ -5254,7 +5262,6 @@ module_param(fxshonormode, int, 0600);
module_param(battdebounce, uint, 0600);
module_param(battalarm, uint, 0600);
module_param(battthresh, uint, 0600);
-module_param(alawoverride, int, 0400);
module_param(nativebridge, int, 0600);
module_param(fxotxgain, int, 0600);
module_param(fxorxgain, int, 0600);
@@ -5297,6 +5304,14 @@ MODULE_PARM_DESC(timingcable, "Set to 1 for enabling timing cable. This means t
module_param(forceload, int, 0600);
MODULE_PARM_DESC(forceload, "Set to 1 in order to force an FPGA reload after power on (currently only for HA8/HB8 cards).");
+module_param(alawoverride, int, 0400);
+MODULE_PARM_DESC(alawoverride, "This option has been deprecated. Please use"\
+ "the parameter \"companding\" instead");
+
+module_param(companding, charp, 0400);
+MODULE_PARM_DESC(companding, "Change the companding to \"alaw\" or \"ulaw\""\
+ "(ulaw by default)");
+
MODULE_DESCRIPTION("VoiceBus Driver for Wildcard Analog and Hybrid Cards");
MODULE_AUTHOR("Digium Incorporated <support@digium.com>");
MODULE_ALIAS("wctdm8xxp");