Index: include/dahdi/user.h =================================================================== --- include/dahdi/user.h (revision 5785) +++ include/dahdi/user.h (working copy) @@ -971,13 +971,13 @@ */ struct dahdi_vmwi_info { unsigned int messages; /* Number of messages pending */ - unsigned char fsk; /* default FSK, */ - unsigned char rpas; /* Ring Pulse Alert Signal precedes the FSK spill */ - unsigned char linereverse; /* Line reversal message indicator */ - unsigned char hvdc; /* Line reversal message indicator */ - unsigned char hvac; /* Line reversal message indicator */ + unsigned int vmwi_type; }; +#define DAHDI_VMWI_LREV (1 << 0) /* Line Reversal */ +#define DAHDI_VMWI_HVDC (1 << 1) /* HV 90VDC */ +#define DAHDI_VMWI_HVAC (1 << 2) /* HV 90VAC Neon lamp */ + /* * VoiceMail Waiting Indication (VMWI) -- implemented by low-level driver. * Value: number of waiting messages (hence 0: switch messages off). Index: drivers/dahdi/wctdm.c =================================================================== --- drivers/dahdi/wctdm.c (revision 5785) +++ drivers/dahdi/wctdm.c (working copy) @@ -1847,9 +1847,9 @@ return -EFAULT; if (wc->mod[chan->chanpos - 1].fxs.vmwisetting.messages){ - wc->mod[chan->chanpos - 1].fxs.vmwi_lrev = (wc->mod[chan->chanpos - 1].fxs.vmwisetting.linereverse)?1:0; - wc->mod[chan->chanpos - 1].fxs.vmwi_hvdc = (wc->mod[chan->chanpos - 1].fxs.vmwisetting.hvdc)?1:0; - wc->mod[chan->chanpos - 1].fxs.vmwi_hvac = (wc->mod[chan->chanpos - 1].fxs.vmwisetting.hvac)?1:0; + wc->mod[chan->chanpos - 1].fxs.vmwi_lrev = (wc->mod[chan->chanpos - 1].fxs.vmwisetting.vmwi_type & DAHDI_VMWI_LREV)?1:0; + wc->mod[chan->chanpos - 1].fxs.vmwi_hvdc = (wc->mod[chan->chanpos - 1].fxs.vmwisetting.vmwi_type & DAHDI_VMWI_HVDC)?1:0; + wc->mod[chan->chanpos - 1].fxs.vmwi_hvac = (wc->mod[chan->chanpos - 1].fxs.vmwisetting.vmwi_type & DAHDI_VMWI_HVAC)?1:0; } else { wc->mod[chan->chanpos - 1].fxs.vmwi_lrev = 0; wc->mod[chan->chanpos - 1].fxs.vmwi_hvdc = 0; Index: drivers/dahdi/wctdm24xxp/base.c =================================================================== --- drivers/dahdi/wctdm24xxp/base.c (revision 5785) +++ drivers/dahdi/wctdm24xxp/base.c (working copy) @@ -2450,7 +2450,7 @@ if (copy_from_user(&(wc->mods[chan->chanpos - 1].fxs.vmwisetting), (__user void *) data, sizeof(wc->mods[chan->chanpos - 1].fxs.vmwisetting))) return -EFAULT; - if (wc->mods[chan->chanpos - 1].fxs.vmwisetting.messages && wc->mods[chan->chanpos - 1].fxs.vmwisetting.linereverse){ + if (wc->mods[chan->chanpos - 1].fxs.vmwisetting.messages && wc->mods[chan->chanpos - 1].fxs.vmwisetting.vmwi_type & DAHDI_VMWI_LREV){ wc->mods[chan->chanpos - 1].fxs.linereverse_mwi = 1; } else { wc->mods[chan->chanpos - 1].fxs.linereverse_mwi = 0;