dahdi: Analog spans do not have to be marked RUNNING to become master.
Fixes a regression introduced in r9611. Analog spans would never become the master since the SPANSTART ioctl is not typically called on them, and therefore they were never marked RUNNING. The result could be audio problems. I'm marking this as related to issue 13205 since it's generally all related to how should the drivers select which span is the master. I also mark as related to issue 16165 because the problems experienced are a result of the same fundamental issue. (issue #13205)(issue #16165) Reported-and-Tested-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> Signed-off-by: Shaun Ruffell <sruffell@digium.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@9729 a0bf4364-ded3-4de4-8d8a-66a801d63aff
This commit is contained in:
parent
a5ace09e60
commit
4389604ffd
@ -3595,6 +3595,11 @@ void dahdi_alarm_channel(struct dahdi_chan *chan, int alarms)
|
||||
spin_unlock_irqrestore(&chan->lock, flags);
|
||||
}
|
||||
|
||||
static inline bool is_analog_span(const struct dahdi_span *s)
|
||||
{
|
||||
return (s->linecompat == 0);
|
||||
}
|
||||
|
||||
static void __dahdi_find_master_span(void)
|
||||
{
|
||||
struct dahdi_span *s;
|
||||
@ -3606,7 +3611,8 @@ static void __dahdi_find_master_span(void)
|
||||
list_for_each_entry(s, &span_list, node) {
|
||||
if (s->alarms)
|
||||
continue;
|
||||
if (!test_bit(DAHDI_FLAGBIT_RUNNING, &s->flags))
|
||||
if (!is_analog_span(s) &&
|
||||
!test_bit(DAHDI_FLAGBIT_RUNNING, &s->flags))
|
||||
continue;
|
||||
if (!can_provide_timing(s))
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user