mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
mISDN cleanup user interface
The channelmap should have the same size on 32 and 64 bit systems and should not depend on endianess. Thanks to David Woodhouse for spotting this. Signed-off-by: Karsten Keil <[email protected]>
This commit is contained in:
parent
780aefed1e
commit
ff4cc1de24
5 changed files with 35 additions and 15 deletions
|
|
@ -3971,7 +3971,7 @@ open_bchannel(struct hfc_multi *hc, struct dchannel *dch,
|
|||
struct bchannel *bch;
|
||||
int ch;
|
||||
|
||||
if (!test_bit(rq->adr.channel, &dch->dev.channelmap[0]))
|
||||
if (!test_channelmap(rq->adr.channel, dch->dev.channelmap))
|
||||
return -EINVAL;
|
||||
if (rq->protocol == ISDN_P_NONE)
|
||||
return -EINVAL;
|
||||
|
|
@ -4587,7 +4587,7 @@ init_e1_port(struct hfc_multi *hc, struct hm_map *m)
|
|||
list_add(&bch->ch.list, &dch->dev.bchannels);
|
||||
hc->chan[ch].bch = bch;
|
||||
hc->chan[ch].port = 0;
|
||||
test_and_set_bit(bch->nr, &dch->dev.channelmap[0]);
|
||||
set_channelmap(bch->nr, dch->dev.channelmap);
|
||||
}
|
||||
/* set optical line type */
|
||||
if (port[Port_cnt] & 0x001) {
|
||||
|
|
@ -4755,7 +4755,7 @@ init_multi_port(struct hfc_multi *hc, int pt)
|
|||
list_add(&bch->ch.list, &dch->dev.bchannels);
|
||||
hc->chan[i + ch].bch = bch;
|
||||
hc->chan[i + ch].port = pt;
|
||||
test_and_set_bit(bch->nr, &dch->dev.channelmap[0]);
|
||||
set_channelmap(bch->nr, dch->dev.channelmap);
|
||||
}
|
||||
/* set master clock */
|
||||
if (port[Port_cnt] & 0x001) {
|
||||
|
|
|
|||
|
|
@ -2056,7 +2056,7 @@ setup_card(struct hfc_pci *card)
|
|||
card->dch.dev.nrbchan = 2;
|
||||
for (i = 0; i < 2; i++) {
|
||||
card->bch[i].nr = i + 1;
|
||||
test_and_set_bit(i + 1, &card->dch.dev.channelmap[0]);
|
||||
set_channelmap(i + 1, card->dch.dev.channelmap);
|
||||
card->bch[i].debug = debug;
|
||||
mISDN_initbchannel(&card->bch[i], MAX_DATA_MEM);
|
||||
card->bch[i].hw = card;
|
||||
|
|
|
|||
|
|
@ -1006,8 +1006,7 @@ open_bchannel(struct l1oip *hc, struct dchannel *dch, struct channel_req *rq)
|
|||
struct bchannel *bch;
|
||||
int ch;
|
||||
|
||||
if (!test_bit(rq->adr.channel & 0x1f,
|
||||
&dch->dev.channelmap[rq->adr.channel >> 5]))
|
||||
if (!test_channelmap(rq->adr.channel, dch->dev.channelmap))
|
||||
return -EINVAL;
|
||||
if (rq->protocol == ISDN_P_NONE)
|
||||
return -EINVAL;
|
||||
|
|
@ -1412,8 +1411,7 @@ init_card(struct l1oip *hc, int pri, int bundle)
|
|||
bch->ch.nr = i + ch;
|
||||
list_add(&bch->ch.list, &dch->dev.bchannels);
|
||||
hc->chan[i + ch].bch = bch;
|
||||
test_and_set_bit(bch->nr & 0x1f,
|
||||
&dch->dev.channelmap[bch->nr >> 5]);
|
||||
set_channelmap(bch->nr, dch->dev.channelmap);
|
||||
}
|
||||
ret = mISDN_register_device(&dch->dev, hc->name);
|
||||
if (ret)
|
||||
|
|
|
|||
|
|
@ -379,7 +379,7 @@ data_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
|
|||
di.Bprotocols = dev->Bprotocols | get_all_Bprotocols();
|
||||
di.protocol = dev->D.protocol;
|
||||
memcpy(di.channelmap, dev->channelmap,
|
||||
MISDN_CHMAP_SIZE * 4);
|
||||
sizeof(di.channelmap));
|
||||
di.nrbchan = dev->nrbchan;
|
||||
strcpy(di.name, dev->name);
|
||||
if (copy_to_user((void __user *)arg, &di, sizeof(di)))
|
||||
|
|
@ -637,7 +637,7 @@ base_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
|
|||
di.Bprotocols = dev->Bprotocols | get_all_Bprotocols();
|
||||
di.protocol = dev->D.protocol;
|
||||
memcpy(di.channelmap, dev->channelmap,
|
||||
MISDN_CHMAP_SIZE * 4);
|
||||
sizeof(di.channelmap));
|
||||
di.nrbchan = dev->nrbchan;
|
||||
strcpy(di.name, dev->name);
|
||||
if (copy_to_user((void __user *)arg, &di, sizeof(di)))
|
||||
|
|
|
|||
Loading…
Reference in a new issue