Commit 6dabb069 authored by Alexander Viro's avatar Alexander Viro Committed by Stephen Hemminger

[wan hdlc] switch sca_xxx() to use net_device

More hd6457x.c massage: sca_open(), sca_close(), sca_dump_rings() switched
to net_device.  Bunch of hdlc_to_port() eliminated in favor of dev_to_port().
parent 6b85b41b
...@@ -179,8 +179,7 @@ static void c101_set_iface(port_t *port) ...@@ -179,8 +179,7 @@ static void c101_set_iface(port_t *port)
static int c101_open(struct net_device *dev) static int c101_open(struct net_device *dev)
{ {
hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = dev_to_port(dev);
port_t *port = hdlc_to_port(hdlc);
int result; int result;
result = hdlc_open(dev); result = hdlc_open(dev);
...@@ -189,12 +188,12 @@ static int c101_open(struct net_device *dev) ...@@ -189,12 +188,12 @@ static int c101_open(struct net_device *dev)
writeb(1, port->win0base + C101_DTR); writeb(1, port->win0base + C101_DTR);
sca_out(0, MSCI1_OFFSET + CTL, port); /* RTS uses ch#2 output */ sca_out(0, MSCI1_OFFSET + CTL, port); /* RTS uses ch#2 output */
sca_open(hdlc); sca_open(dev);
/* DCD is connected to port 2 !@#$%^& - disable MSCI0 CDCD interrupt */ /* DCD is connected to port 2 !@#$%^& - disable MSCI0 CDCD interrupt */
sca_out(IE1_UDRN, MSCI0_OFFSET + IE1, port); sca_out(IE1_UDRN, MSCI0_OFFSET + IE1, port);
sca_out(IE0_TXINT, MSCI0_OFFSET + IE0, port); sca_out(IE0_TXINT, MSCI0_OFFSET + IE0, port);
hdlc_set_carrier(!(sca_in(MSCI1_OFFSET + ST3, port) & ST3_DCD), hdlc); hdlc_set_carrier(!(sca_in(MSCI1_OFFSET + ST3, port) & ST3_DCD), dev_to_hdlc(dev));
printk(KERN_DEBUG "0x%X\n", sca_in(MSCI1_OFFSET + ST3, port)); printk(KERN_DEBUG "0x%X\n", sca_in(MSCI1_OFFSET + ST3, port));
/* enable MSCI1 CDCD interrupt */ /* enable MSCI1 CDCD interrupt */
...@@ -208,10 +207,9 @@ static int c101_open(struct net_device *dev) ...@@ -208,10 +207,9 @@ static int c101_open(struct net_device *dev)
static int c101_close(struct net_device *dev) static int c101_close(struct net_device *dev)
{ {
hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = dev_to_port(dev);
port_t *port = hdlc_to_port(hdlc);
sca_close(hdlc); sca_close(dev);
writeb(0, port->win0base + C101_DTR); writeb(0, port->win0base + C101_DTR);
sca_out(CTL_NORTS, MSCI1_OFFSET + CTL, port); sca_out(CTL_NORTS, MSCI1_OFFSET + CTL, port);
hdlc_close(dev); hdlc_close(dev);
...@@ -223,12 +221,11 @@ static int c101_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) ...@@ -223,12 +221,11 @@ static int c101_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{ {
const size_t size = sizeof(sync_serial_settings); const size_t size = sizeof(sync_serial_settings);
sync_serial_settings new_line, *line = ifr->ifr_settings.ifs_ifsu.sync; sync_serial_settings new_line, *line = ifr->ifr_settings.ifs_ifsu.sync;
hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = dev_to_port(dev);
port_t *port = hdlc_to_port(hdlc);
#ifdef DEBUG_RINGS #ifdef DEBUG_RINGS
if (cmd == SIOCDEVPRIVATE) { if (cmd == SIOCDEVPRIVATE) {
sca_dump_rings(hdlc); sca_dump_rings(dev);
printk(KERN_DEBUG "MSCI1: ST: %02x %02x %02x %02x\n", printk(KERN_DEBUG "MSCI1: ST: %02x %02x %02x %02x\n",
sca_in(MSCI1_OFFSET + ST0, port), sca_in(MSCI1_OFFSET + ST0, port),
sca_in(MSCI1_OFFSET + ST1, port), sca_in(MSCI1_OFFSET + ST1, port),
......
...@@ -518,9 +518,9 @@ static void sca_set_port(port_t *port) ...@@ -518,9 +518,9 @@ static void sca_set_port(port_t *port)
static void sca_open(hdlc_device *hdlc) static void sca_open(struct net_device *dev)
{ {
port_t *port = hdlc_to_port(hdlc); port_t *port = dev_to_port(dev);
card_t* card = port_to_card(port); card_t* card = port_to_card(port);
u16 msci = get_msci(port); u16 msci = get_msci(port);
u8 md0, md2; u8 md0, md2;
...@@ -579,7 +579,7 @@ static void sca_open(hdlc_device *hdlc) ...@@ -579,7 +579,7 @@ static void sca_open(hdlc_device *hdlc)
- all DMA interrupts - all DMA interrupts
*/ */
hdlc_set_carrier(!(sca_in(msci + ST3, card) & ST3_DCD), hdlc); hdlc_set_carrier(!(sca_in(msci + ST3, card) & ST3_DCD), dev_to_hdlc(dev));
#ifdef __HD64570_H #ifdef __HD64570_H
/* MSCI TX INT and RX INT A IRQ enable */ /* MSCI TX INT and RX INT A IRQ enable */
...@@ -610,18 +610,18 @@ static void sca_open(hdlc_device *hdlc) ...@@ -610,18 +610,18 @@ static void sca_open(hdlc_device *hdlc)
sca_out(CMD_TX_ENABLE, msci + CMD, card); sca_out(CMD_TX_ENABLE, msci + CMD, card);
sca_out(CMD_RX_ENABLE, msci + CMD, card); sca_out(CMD_RX_ENABLE, msci + CMD, card);
netif_start_queue(hdlc_to_dev(hdlc)); netif_start_queue(dev);
} }
static void sca_close(hdlc_device *hdlc) static void sca_close(struct net_device *dev)
{ {
port_t *port = hdlc_to_port(hdlc); port_t *port = dev_to_port(dev);
card_t* card = port_to_card(port); card_t* card = port_to_card(port);
/* reset channel */ /* reset channel */
netif_stop_queue(hdlc_to_dev(hdlc)); netif_stop_queue(dev);
sca_out(CMD_RESET, get_msci(port) + CMD, port_to_card(port)); sca_out(CMD_RESET, get_msci(port) + CMD, port_to_card(port));
#ifdef __HD64570_H #ifdef __HD64570_H
/* disable MSCI interrupts */ /* disable MSCI interrupts */
...@@ -668,9 +668,9 @@ static int sca_attach(hdlc_device *hdlc, unsigned short encoding, ...@@ -668,9 +668,9 @@ static int sca_attach(hdlc_device *hdlc, unsigned short encoding,
#ifdef DEBUG_RINGS #ifdef DEBUG_RINGS
static void sca_dump_rings(hdlc_device *hdlc) static void sca_dump_rings(struct net_device *dev)
{ {
port_t *port = hdlc_to_port(hdlc); port_t *port = dev_to_port(dev);
card_t *card = port_to_card(port); card_t *card = port_to_card(port);
u16 cnt; u16 cnt;
#if !defined(PAGE0_ALWAYS_MAPPED) && !defined(ALL_PAGES_ALWAYS_MAPPED) #if !defined(PAGE0_ALWAYS_MAPPED) && !defined(ALL_PAGES_ALWAYS_MAPPED)
...@@ -739,8 +739,7 @@ static void sca_dump_rings(hdlc_device *hdlc) ...@@ -739,8 +739,7 @@ static void sca_dump_rings(hdlc_device *hdlc)
static int sca_xmit(struct sk_buff *skb, struct net_device *dev) static int sca_xmit(struct sk_buff *skb, struct net_device *dev)
{ {
hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = dev_to_port(dev);
port_t *port = hdlc_to_port(hdlc);
card_t *card = port_to_card(port); card_t *card = port_to_card(port);
pkt_desc *desc; pkt_desc *desc;
u32 buff, len; u32 buff, len;
...@@ -763,7 +762,7 @@ static int sca_xmit(struct sk_buff *skb, struct net_device *dev) ...@@ -763,7 +762,7 @@ static int sca_xmit(struct sk_buff *skb, struct net_device *dev)
} }
#ifdef DEBUG_PKT #ifdef DEBUG_PKT
printk(KERN_DEBUG "%s TX(%i):", hdlc_to_name(hdlc), skb->len); printk(KERN_DEBUG "%s TX(%i):", dev->name, skb->len);
debug_frame(skb); debug_frame(skb);
#endif #endif
......
...@@ -215,8 +215,7 @@ static void n2_set_iface(port_t *port) ...@@ -215,8 +215,7 @@ static void n2_set_iface(port_t *port)
static int n2_open(struct net_device *dev) static int n2_open(struct net_device *dev)
{ {
hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = dev_to_port(dev);
port_t *port = hdlc_to_port(hdlc);
int io = port->card->io; int io = port->card->io;
u8 mcr = inb(io + N2_MCR) | (port->phy_node ? TX422_PORT1:TX422_PORT0); u8 mcr = inb(io + N2_MCR) | (port->phy_node ? TX422_PORT1:TX422_PORT0);
int result; int result;
...@@ -230,7 +229,7 @@ static int n2_open(struct net_device *dev) ...@@ -230,7 +229,7 @@ static int n2_open(struct net_device *dev)
outb(inb(io + N2_PCR) | PCR_ENWIN, io + N2_PCR); /* open window */ outb(inb(io + N2_PCR) | PCR_ENWIN, io + N2_PCR); /* open window */
outb(inb(io + N2_PSR) | PSR_DMAEN, io + N2_PSR); /* enable dma */ outb(inb(io + N2_PSR) | PSR_DMAEN, io + N2_PSR); /* enable dma */
sca_open(hdlc); sca_open(dev);
n2_set_iface(port); n2_set_iface(port);
return 0; return 0;
} }
...@@ -239,12 +238,11 @@ static int n2_open(struct net_device *dev) ...@@ -239,12 +238,11 @@ static int n2_open(struct net_device *dev)
static int n2_close(struct net_device *dev) static int n2_close(struct net_device *dev)
{ {
hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = dev_to_port(dev);
port_t *port = hdlc_to_port(hdlc);
int io = port->card->io; int io = port->card->io;
u8 mcr = inb(io+N2_MCR) | (port->phy_node ? TX422_PORT1 : TX422_PORT0); u8 mcr = inb(io+N2_MCR) | (port->phy_node ? TX422_PORT1 : TX422_PORT0);
sca_close(hdlc); sca_close(dev);
mcr |= port->phy_node ? DTR_PORT1 : DTR_PORT0; /* set DTR OFF */ mcr |= port->phy_node ? DTR_PORT1 : DTR_PORT0; /* set DTR OFF */
outb(mcr, io + N2_MCR); outb(mcr, io + N2_MCR);
hdlc_close(dev); hdlc_close(dev);
...@@ -257,12 +255,11 @@ static int n2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) ...@@ -257,12 +255,11 @@ static int n2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
{ {
const size_t size = sizeof(sync_serial_settings); const size_t size = sizeof(sync_serial_settings);
sync_serial_settings new_line, *line = ifr->ifr_settings.ifs_ifsu.sync; sync_serial_settings new_line, *line = ifr->ifr_settings.ifs_ifsu.sync;
hdlc_device *hdlc = dev_to_hdlc(dev); port_t *port = dev_to_port(dev);
port_t *port = hdlc_to_port(hdlc);
#ifdef DEBUG_RINGS #ifdef DEBUG_RINGS
if (cmd == SIOCDEVPRIVATE) { if (cmd == SIOCDEVPRIVATE) {
sca_dump_rings(hdlc); sca_dump_rings(dev);
return 0; return 0;
} }
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment