From 2bd36a3307ec9f20e9538de08f8d2eec1f9828a9 Mon Sep 17 00:00:00 2001 From: Oron Peled Date: Mon, 23 Sep 2013 11:51:18 +0200 Subject: [PATCH] xpp: ring/mwi settings: add to FXS init script init_card_1_30 (FXS modules init script) can now use the new sysfs interface to set ring settings. Currently it only overwrite a single register Signed-off-by: Tzafrir Cohen --- drivers/dahdi/xpp/init_card_1_30 | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/dahdi/xpp/init_card_1_30 b/drivers/dahdi/xpp/init_card_1_30 index d64a50e..e0e3485 100755 --- a/drivers/dahdi/xpp/init_card_1_30 +++ b/drivers/dahdi/xpp/init_card_1_30 @@ -59,6 +59,7 @@ my %settings; $settings{debug} = 0; $settings{fxs_skip_calib} = 0; my $chipregs; +my $ring_registers; sub logit { print STDERR "$unit_id: @_\n"; @@ -104,6 +105,10 @@ if (-t STDERR) { logit "OLD DRIVER: does not use /sys chipregs. Falling back to /proc" if -f $chipregs; } + $ring_registers = sprintf "/sys/bus/xpds/devices/%02d:%1d:0/fxs_ring_registers", + $ENV{XBUS_NUMBER}, $ENV{UNIT_NUMBER}; + logit "OLD DRIVER: missing '$ring_registers' -- fallback to hard-coded defaults" + unless -f $ring_registers; } sub set_output() { @@ -147,6 +152,16 @@ sub write_to_slic_file($) { } +sub write_to_ring_register($) { + my $write_str = shift; + + open(SLICS,">$ring_registers") or + die("Failed writing to ring_registers file $ring_registers"); + print SLICS $write_str; + close(SLICS) or die "Failed writing '$write_str' to '$ring_registers': $!"; + main::mysleep(0.001); +} + sub read_reg($$$) { my $read_slic = shift; my $read_reg = shift; @@ -442,6 +457,10 @@ sub check_slics() { return @slics; } +sub overwrite_ring_registers() { + write_to_ring_register("NEON 0x33 0x12"); +} + package main; main::debug "Starting '$0'"; @@ -470,6 +489,7 @@ while() { print "$_\n"; } close REG; +FXS::overwrite_ring_registers(); main::debug "Ending '$0'"; close STDERR;