Commit 5749df14 authored by Jiri Kosina's avatar Jiri Kosina Committed by Greg Kroah-Hartman

Staging: cxt1e1: remove all code dependent on LINUX_VERSION_CODE

Remove all code which is dead for in-kernel driver due to being
ifdefed by LINUX_VERSION_CODE.

While at it, also remove surrounding code which is commented out,
or '#if 1' nops.
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 41a38d9e
...@@ -122,19 +122,7 @@ watchdog_func (unsigned long arg) ...@@ -122,19 +122,7 @@ watchdog_func (unsigned long arg)
pr_warning("%s: drvr not available (%x)\n", __func__, drvr_state); pr_warning("%s: drvr not available (%x)\n", __func__, drvr_state);
return; return;
} }
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
/* Initialize the tq entry only the first time */
if (wd->init_tq)
{
wd->init_tq = 0;
wd->tq.routine = wd->func;
wd->tq.sync = 0;
wd->tq.data = wd->softc;
}
schedule_task (&wd->tq);
#else
schedule_work (&wd->work); schedule_work (&wd->work);
#endif
mod_timer (&wd->h, jiffies + wd->ticks); mod_timer (&wd->h, jiffies + wd->ticks);
} }
......
...@@ -305,15 +305,9 @@ c4hw_attach_all (void) ...@@ -305,15 +305,9 @@ c4hw_attach_all (void)
error_flag = 0; error_flag = 0;
prep_hdw_info (); prep_hdw_info ();
/*** scan PCI bus for all possible boards */ /*** scan PCI bus for all possible boards */
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
while ((pdev = pci_get_device (PCI_VENDOR_ID_CONEXANT, while ((pdev = pci_get_device (PCI_VENDOR_ID_CONEXANT,
PCI_DEVICE_ID_CN8474,
pdev)))
#else
while ((pdev = pci_find_device (PCI_VENDOR_ID_CONEXANT,
PCI_DEVICE_ID_CN8474, PCI_DEVICE_ID_CN8474,
pdev))) pdev)))
#endif
{ {
if (c4_hdw_init (pdev, found)) if (c4_hdw_init (pdev, found))
found++; found++;
......
...@@ -142,10 +142,6 @@ getuserbychan (int channum) ...@@ -142,10 +142,6 @@ getuserbychan (int channum)
} }
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
#define DEV_TO_PRIV(dev) ( * (struct c4_priv **) ((hdlc_device*)(dev)+1))
#else
char * char *
get_hdlc_name (hdlc_device * hdlc) get_hdlc_name (hdlc_device * hdlc)
{ {
...@@ -154,7 +150,6 @@ get_hdlc_name (hdlc_device * hdlc) ...@@ -154,7 +150,6 @@ get_hdlc_name (hdlc_device * hdlc)
return dev->name; return dev->name;
} }
#endif
static status_t static status_t
...@@ -167,7 +162,6 @@ mkret (int bsd) ...@@ -167,7 +162,6 @@ mkret (int bsd)
} }
/***************************************************************************/ /***************************************************************************/
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
#include <linux/workqueue.h> #include <linux/workqueue.h>
/*** /***
...@@ -259,7 +253,6 @@ c4_wq_port_cleanup (mpi_t * pi) ...@@ -259,7 +253,6 @@ c4_wq_port_cleanup (mpi_t * pi)
pi->wq_port = 0; pi->wq_port = 0;
} }
} }
#endif
/***************************************************************************/ /***************************************************************************/
...@@ -291,48 +284,6 @@ void_open (struct net_device * ndev) ...@@ -291,48 +284,6 @@ void_open (struct net_device * ndev)
} }
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
/** Linux 2.4.18-19 **/
STATIC int
chan_open (hdlc_device * hdlc)
{
status_t ret;
if ((ret = c4_chan_up (DEV_TO_PRIV (hdlc)->ci, DEV_TO_PRIV (hdlc)->channum)))
return -ret;
MOD_INC_USE_COUNT;
netif_start_queue (hdlc_to_dev (hdlc));
return 0; /* no error = success */
}
#else
/** Linux 2.4.20 and higher **/
STATIC int
chan_open (struct net_device * ndev)
{
hdlc_device *hdlc = dev_to_hdlc (ndev);
status_t ret;
hdlc->proto = IF_PROTO_HDLC;
if ((ret = hdlc_open (hdlc)))
{
pr_info("hdlc_open failure, err %d.\n", ret);
return ret;
}
if ((ret = c4_chan_up (DEV_TO_PRIV (hdlc)->ci, DEV_TO_PRIV (hdlc)->channum)))
return -ret;
MOD_INC_USE_COUNT;
netif_start_queue (hdlc_to_dev (hdlc));
return 0; /* no error = success */
}
#endif
#else
/** Linux 2.6 **/
STATIC int STATIC int
chan_open (struct net_device * ndev) chan_open (struct net_device * ndev)
{ {
...@@ -351,39 +302,8 @@ chan_open (struct net_device * ndev) ...@@ -351,39 +302,8 @@ chan_open (struct net_device * ndev)
netif_start_queue (ndev); netif_start_queue (ndev);
return 0; /* no error = success */ return 0; /* no error = success */
} }
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
/** Linux 2.4.18-19 **/
STATIC void
chan_close (hdlc_device * hdlc)
{
netif_stop_queue (hdlc_to_dev (hdlc));
musycc_chan_down ((ci_t *) 0, DEV_TO_PRIV (hdlc)->channum);
MOD_DEC_USE_COUNT;
}
#else
/** Linux 2.4.20 and higher **/
STATIC int
chan_close (struct net_device * ndev)
{
hdlc_device *hdlc = dev_to_hdlc (ndev);
netif_stop_queue (hdlc_to_dev (hdlc));
musycc_chan_down ((ci_t *) 0, DEV_TO_PRIV (hdlc)->channum);
hdlc_close (hdlc);
MOD_DEC_USE_COUNT;
return 0;
}
#endif
#else
/** Linux 2.6 **/
STATIC int STATIC int
chan_close (struct net_device * ndev) chan_close (struct net_device * ndev)
{ {
...@@ -396,7 +316,6 @@ chan_close (struct net_device * ndev) ...@@ -396,7 +316,6 @@ chan_close (struct net_device * ndev)
module_put (THIS_MODULE); module_put (THIS_MODULE);
return 0; return 0;
} }
#endif
#if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4) #if !defined(GENERIC_HDLC_VERSION) || (GENERIC_HDLC_VERSION < 4)
...@@ -435,11 +354,7 @@ chan_dev_ioctl (struct net_device * dev, struct ifreq * ifr, int cmd) ...@@ -435,11 +354,7 @@ chan_dev_ioctl (struct net_device * dev, struct ifreq * ifr, int cmd)
STATIC int STATIC int
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
chan_attach_noop (hdlc_device * hdlc, unsigned short foo_1, unsigned short foo_2)
#else
chan_attach_noop (struct net_device * ndev, unsigned short foo_1, unsigned short foo_2) chan_attach_noop (struct net_device * ndev, unsigned short foo_1, unsigned short foo_2)
#endif
{ {
return 0; /* our driver has nothing to do here, show's return 0; /* our driver has nothing to do here, show's
* over, go home */ * over, go home */
...@@ -455,16 +370,12 @@ chan_get_stats (struct net_device * ndev) ...@@ -455,16 +370,12 @@ chan_get_stats (struct net_device * ndev)
struct sbecom_chan_stats *stats; struct sbecom_chan_stats *stats;
int channum; int channum;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
channum = DEV_TO_PRIV (ndev)->channum;
#else
{ {
struct c4_priv *priv; struct c4_priv *priv;
priv = (struct c4_priv *) dev_to_hdlc (ndev)->priv; priv = (struct c4_priv *) dev_to_hdlc (ndev)->priv;
channum = priv->channum; channum = priv->channum;
} }
#endif
ch = c4_find_chan (channum); ch = c4_find_chan (channum);
if (ch == NULL) if (ch == NULL)
...@@ -527,13 +438,9 @@ c4_linux_xmit (struct sk_buff * skb, struct net_device * ndev) ...@@ -527,13 +438,9 @@ c4_linux_xmit (struct sk_buff * skb, struct net_device * ndev)
const struct c4_priv *priv; const struct c4_priv *priv;
int rval; int rval;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
priv = DEV_TO_PRIV (ndev);
#else
hdlc_device *hdlc = dev_to_hdlc (ndev); hdlc_device *hdlc = dev_to_hdlc (ndev);
priv = hdlc->priv; priv = hdlc->priv;
#endif
rval = musycc_start_xmit (priv->ci, priv->channum, skb); rval = musycc_start_xmit (priv->ci, priv->channum, skb);
return -rval; return -rval;
...@@ -823,18 +730,10 @@ do_create_chan (struct net_device * ndev, void *data) ...@@ -823,18 +730,10 @@ do_create_chan (struct net_device * ndev, void *data)
ret = mkret (c4_new_chan (ci, cp.port, cp.channum, dev)); ret = mkret (c4_new_chan (ci, cp.port, cp.channum, dev));
if (ret) if (ret)
{ {
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
rtnl_unlock (); /* needed due to Ioctl calling sequence */
V7 (unregister_hdlc_device) (dev_to_hdlc (dev));
rtnl_lock (); /* needed due to Ioctl calling sequence */
OS_kfree (DEV_TO_PRIV (dev));
OS_kfree (dev);
#else
rtnl_unlock (); /* needed due to Ioctl calling sequence */ rtnl_unlock (); /* needed due to Ioctl calling sequence */
unregister_hdlc_device (dev); unregister_hdlc_device (dev);
rtnl_lock (); /* needed due to Ioctl calling sequence */ rtnl_lock (); /* needed due to Ioctl calling sequence */
free_netdev (dev); free_netdev (dev);
#endif
} }
return ret; return ret;
} }
...@@ -883,11 +782,7 @@ do_deluser (struct net_device * ndev, int lockit) ...@@ -883,11 +782,7 @@ do_deluser (struct net_device * ndev, int lockit)
const struct c4_priv *priv; const struct c4_priv *priv;
int channum; int channum;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
priv = DEV_TO_PRIV (ndev);
#else
priv = (struct c4_priv *) dev_to_hdlc (ndev)->priv; priv = (struct c4_priv *) dev_to_hdlc (ndev)->priv;
#endif
ci = priv->ci; ci = priv->ci;
channum = priv->channum; channum = priv->channum;
...@@ -897,22 +792,12 @@ do_deluser (struct net_device * ndev, int lockit) ...@@ -897,22 +792,12 @@ do_deluser (struct net_device * ndev, int lockit)
ch->user = 0; /* will be freed, below */ ch->user = 0; /* will be freed, below */
} }
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
if (lockit)
rtnl_unlock (); /* needed if Ioctl calling sequence */
V7 (unregister_hdlc_device) (dev_to_hdlc (ndev));
if (lockit)
rtnl_lock (); /* needed if Ioctl calling sequence */
OS_kfree (DEV_TO_PRIV (ndev));
OS_kfree (ndev);
#else
if (lockit) if (lockit)
rtnl_unlock (); /* needed if Ioctl calling sequence */ rtnl_unlock (); /* needed if Ioctl calling sequence */
unregister_hdlc_device (ndev); unregister_hdlc_device (ndev);
if (lockit) if (lockit)
rtnl_lock (); /* needed if Ioctl calling sequence */ rtnl_lock (); /* needed if Ioctl calling sequence */
free_netdev (ndev); free_netdev (ndev);
#endif
return 0; return 0;
} }
...@@ -1339,14 +1224,6 @@ c4_mod_remove (void) ...@@ -1339,14 +1224,6 @@ c4_mod_remove (void)
module_init (c4_mod_init); module_init (c4_mod_init);
module_exit (c4_mod_remove); module_exit (c4_mod_remove);
#ifndef SBE_INCLUDE_SYMBOLS
#ifndef CONFIG_SBE_WANC24_NCOMM
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
EXPORT_NO_SYMBOLS;
#endif
#endif
#endif
MODULE_AUTHOR ("SBE Technical Services <support@sbei.com>"); MODULE_AUTHOR ("SBE Technical Services <support@sbei.com>");
MODULE_DESCRIPTION ("wanPCI-CxT1E1 Generic HDLC WAN Driver module"); MODULE_DESCRIPTION ("wanPCI-CxT1E1 Generic HDLC WAN Driver module");
#ifdef MODULE_LICENSE #ifdef MODULE_LICENSE
......
...@@ -405,7 +405,6 @@ musycc_update_tx_thp (mch_t * ch) ...@@ -405,7 +405,6 @@ musycc_update_tx_thp (mch_t * ch)
} }
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
/* /*
* This is the workq task executed by the OS when our queue_work() is * This is the workq task executed by the OS when our queue_work() is
* scheduled and run. It can fire off either RX or TX ACTIVATION depending * scheduled and run. It can fire off either RX or TX ACTIVATION depending
...@@ -515,7 +514,6 @@ musycc_wq_chan_restart (void *arg) /* channel private structure */ ...@@ -515,7 +514,6 @@ musycc_wq_chan_restart (void *arg) /* channel private structure */
#endif #endif
} }
} }
#endif
/* /*
...@@ -531,7 +529,6 @@ musycc_chan_restart (mch_t * ch) ...@@ -531,7 +529,6 @@ musycc_chan_restart (mch_t * ch)
ch->channum, ch->txd_irq_srv, ch->txd_irq_srv->status); ch->channum, ch->txd_irq_srv, ch->txd_irq_srv->status);
#endif #endif
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
/* 2.6 - find next unprocessed message, then set TX thp to it */ /* 2.6 - find next unprocessed message, then set TX thp to it */
#ifdef RLD_RESTART_DEBUG #ifdef RLD_RESTART_DEBUG
pr_info(">> musycc_chan_restart: scheduling Chan %x workQ @ %p\n", ch->channum, &ch->ch_work); pr_info(">> musycc_chan_restart: scheduling Chan %x workQ @ %p\n", ch->channum, &ch->ch_work);
...@@ -539,51 +536,9 @@ musycc_chan_restart (mch_t * ch) ...@@ -539,51 +536,9 @@ musycc_chan_restart (mch_t * ch)
c4_wk_chan_restart (ch); /* work queue mechanism fires off: Ref: c4_wk_chan_restart (ch); /* work queue mechanism fires off: Ref:
* musycc_wq_chan_restart () */ * musycc_wq_chan_restart () */
#else
/* 2.4 - find next unprocessed message, then set TX thp to it */
#ifdef RLD_RESTART_DEBUG
pr_info(">> musycc_chan_restart: scheduling Chan %x start_tx %x\n", ch->channum, ch->ch_start_tx);
#endif
/* restart transmission from background loop */
ch->up->up->wd_notify = WD_NOTIFY_1TX;
#endif
} }
#if 0
void
musycc_cleanup (ci_t * ci)
{
mpi_t *pi;
int i, j;
/* free up driver resources */
ci->state = C_INIT; /* mark as hardware not available */
for (i = 0; i < ci->max_ports; i++)
{
pi = &ci->port[i];
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
c4_wq_port_cleanup (pi);
#endif
for (j = 0; j < MUSYCC_NCHANS; j++)
{
if (pi->chan[j])
OS_kfree (pi->chan[j]); /* free mch_t struct */
}
OS_kfree (pi->regram_saved);
}
#if 0
/* obsolete - watchdog is now static w/in ci_t */
OS_free_watchdog (ci->wd);
#endif
OS_kfree (ci->iqd_p_saved);
OS_kfree (ci);
}
#endif
void void
rld_put_led (mpi_t * pi, u_int32_t ledval) rld_put_led (mpi_t * pi, u_int32_t ledval)
{ {
...@@ -2008,37 +1963,13 @@ musycc_start_xmit (ci_t * ci, int channum, void *mem_token) ...@@ -2008,37 +1963,13 @@ musycc_start_xmit (ci_t * ci, int channum, void *mem_token)
atomic_add (len, &ci->tx_pending); atomic_add (len, &ci->tx_pending);
ch->s.tx_packets++; ch->s.tx_packets++;
ch->s.tx_bytes += len; ch->s.tx_bytes += len;
#if 0
spin_unlock_irqrestore (&ch->ch_txlock, flags); /* allow pending
* interrupt to sneak
* thru */
#endif
/* /*
* If an ONR was seen, then channel requires poking to restart * If an ONR was seen, then channel requires poking to restart
* transmission. * transmission.
*/ */
if (ch->ch_start_tx) if (ch->ch_start_tx)
{ {
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,41)
SD_SEM_TAKE (&ci->sem_wdbusy, "_wd_"); /* only 1 thru here, per
* board */
if ((ch->ch_start_tx == CH_START_TX_ONR) && (ch->p.chan_mode == CFG_CH_PROTO_TRANS))
{
/* ONR restart transmission from background loop */
ci->wd_notify = WD_NOTIFY_ONR; /* enabled global watchdog
* scan-thru */
} else
{
/* start first transmission from background loop */
ci->wd_notify = WD_NOTIFY_1TX; /* enabled global watchdog
* scan-thru */
}
musycc_chan_restart (ch); musycc_chan_restart (ch);
SD_SEM_GIVE (&ci->sem_wdbusy);
#else
musycc_chan_restart (ch);
#endif
} }
#ifdef SBE_WAN256T3_ENABLE #ifdef SBE_WAN256T3_ENABLE
wan256t3_led (ci, LED_TX, LEDV_G); wan256t3_led (ci, LED_TX, LEDV_G);
...@@ -2047,139 +1978,4 @@ musycc_start_xmit (ci_t * ci, int channum, void *mem_token) ...@@ -2047,139 +1978,4 @@ musycc_start_xmit (ci_t * ci, int channum, void *mem_token)
} }
#if 0
int
musycc_set_chan (ci_t * ci, int channum, struct sbecom_chan_param * p)
{
mch_t *ch;
int rok = 0;
int n = 0;
if (channum < 0 || channum >= (MUSYCC_NPORTS * MUSYCC_NCHANS)) /* sanity chk param */
return ECHRNG;
if (!(ch = sd_find_chan (ci, channum)))
return ENOENT;
if (ch->channum != p->channum)
return EINVAL;
if (sd_line_is_ok (ch->user))
{
rok = 1;
sd_line_is_down (ch->user);
}
if (ch->state == UP && /* bring down in current configuration */
(ch->p.status != p->status ||
ch->p.chan_mode != p->chan_mode ||
ch->p.intr_mask != p->intr_mask ||
ch->txd_free < ch->txd_num))
{
if ((n = musycc_chan_down (ci, channum)))
return n;
if (ch->p.mode_56k != p->mode_56k)
{
ch->p = *p; /* copy in new parameters */
musycc_update_timeslots (&ci->port[ch->channum / MUSYCC_NCHANS]);
} else
ch->p = *p; /* copy in new parameters */
if ((n = musycc_chan_up (ci, channum)))
return n;
sd_enable_xmit (ch->user); /* re-enable to catch flow controlled
* channel */
} else
{
if (ch->p.mode_56k != p->mode_56k)
{
ch->p = *p; /* copy in new parameters */
musycc_update_timeslots (&ci->port[ch->channum / MUSYCC_NCHANS]);
} else
ch->p = *p; /* copy in new parameters */
}
if (rok)
sd_line_is_up (ch->user);
return 0;
}
#endif
int
musycc_get_chan (ci_t * ci, int channum, struct sbecom_chan_param * p)
{
mch_t *ch;
#if 0
if (channum < 0 || channum >= (MUSYCC_NPORTS * MUSYCC_NCHANS)) /* sanity chk param */
return ECHRNG;
#endif
if (!(ch = sd_find_chan (ci, channum)))
return ENOENT;
*p = ch->p;
return 0;
}
int
musycc_get_chan_stats (ci_t * ci, int channum, struct sbecom_chan_stats * p)
{
mch_t *ch;
if (channum < 0 || channum >= (MUSYCC_NPORTS * MUSYCC_NCHANS)) /* sanity chk param */
return ECHRNG;
if (!(ch = sd_find_chan (ci, channum)))
return ENOENT;
*p = ch->s;
p->tx_pending = atomic_read (&ch->tx_pending);
return 0;
}
#ifdef SBE_WAN256T3_ENABLE
int
musycc_chan_down (ci_t * ci, int channum)
{
mch_t *ch;
mpi_t *pi;
int i, gchan;
if (!(ch = sd_find_chan (ci, channum)))
return EINVAL;
pi = ch->up;
gchan = ch->gchan;
/* Deactivate the channel */
musycc_serv_req (pi, SR_CHANNEL_DEACTIVATE | SR_RX_DIRECTION | gchan);
ch->ch_start_rx = 0;
musycc_serv_req (pi, SR_CHANNEL_DEACTIVATE | SR_TX_DIRECTION | gchan);
ch->ch_start_tx = 0;
if (ch->state == DOWN)
return 0;
ch->state = DOWN;
pi->regram->thp[gchan] = 0;
pi->regram->tmp[gchan] = 0;
pi->regram->rhp[gchan] = 0;
pi->regram->rmp[gchan] = 0;
FLUSH_MEM_WRITE ();
for (i = 0; i < ch->txd_num; i++)
{
if (ch->mdt[i].mem_token != 0)
OS_mem_token_free (ch->mdt[i].mem_token);
}
for (i = 0; i < ch->rxd_num; i++)
{
if (ch->mdr[i].mem_token != 0)
OS_mem_token_free (ch->mdr[i].mem_token);
}
OS_kfree (ch->mdt);
ch->mdt = 0;
OS_kfree (ch->mdr);
ch->mdr = 0;
return 0;
}
#endif
/*** End-of-File ***/ /*** End-of-File ***/
...@@ -500,11 +500,7 @@ pmc_init_seeprom (u_int32_t addr, u_int32_t serialNum) ...@@ -500,11 +500,7 @@ pmc_init_seeprom (u_int32_t addr, u_int32_t serialNum)
time_t createTime; time_t createTime;
int i; int i;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
createTime = CURRENT_TIME;
#else
createTime = get_seconds (); createTime = get_seconds ();
#endif
/* use template data */ /* use template data */
for (i = 0; i < sizeof (FLD_TYPE2); ++i) for (i = 0; i < sizeof (FLD_TYPE2); ++i)
......
...@@ -117,12 +117,6 @@ extern "C" ...@@ -117,12 +117,6 @@ extern "C"
#include "pmcc4_private.h" #include "pmcc4_private.h"
#if !(LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
char *get_hdlc_name (hdlc_device *);
#endif
/* /*
* external interface * external interface
*/ */
......
...@@ -119,12 +119,10 @@ char OSSIid_pmcc4_drvc[] = ...@@ -119,12 +119,10 @@ char OSSIid_pmcc4_drvc[] =
#define KERN_WARN KERN_WARNING #define KERN_WARN KERN_WARNING
/* forward references */ /* forward references */
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
status_t c4_wk_chan_init (mpi_t *, mch_t *); status_t c4_wk_chan_init (mpi_t *, mch_t *);
void c4_wq_port_cleanup (mpi_t *); void c4_wq_port_cleanup (mpi_t *);
status_t c4_wq_port_init (mpi_t *); status_t c4_wq_port_init (mpi_t *);
#endif
int c4_loop_port (ci_t *, int, u_int8_t); int c4_loop_port (ci_t *, int, u_int8_t);
status_t c4_set_port (ci_t *, int); status_t c4_set_port (ci_t *, int);
status_t musycc_chan_down (ci_t *, int); status_t musycc_chan_down (ci_t *, int);
...@@ -533,145 +531,15 @@ checkPorts (ci_t * ci) ...@@ -533,145 +531,15 @@ checkPorts (ci_t * ci)
STATIC void STATIC void
c4_watchdog (ci_t * ci) c4_watchdog (ci_t * ci)
{ {
#if 0
//unsigned long flags;
#endif
if (drvr_state != SBE_DRVR_AVAILABLE) if (drvr_state != SBE_DRVR_AVAILABLE)
{ {
if (log_level >= LOG_MONITOR) if (log_level >= LOG_MONITOR)
pr_info("drvr not available (%x)\n", drvr_state); pr_info("drvr not available (%x)\n", drvr_state);
return; return;
} }
#if 0
SD_SEM_TAKE (&ci->sem_wdbusy, "_wd_"); /* only 1 thru here, per
* board */
#endif
ci->wdcount++; ci->wdcount++;
checkPorts (ci); checkPorts (ci);
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,41)
if (ci->wd_notify)
{ /* is there a state change to search for */
int port, gchan;
ci->wd_notify = 0; /* reset notification */
for (gchan = 0; gchan < MUSYCC_NCHANS; gchan++)
{
for (port = 0; port < ci->max_port; port++)
{
mch_t *ch = ci->port[port].chan[gchan];
if (!ch || ci->state != C_RUNNING) /* state changed while
* acquiring semaphore */
break;
if (ch->state == UP)/* channel must be set up */
{
#if 0
#ifdef RLD_TRANS_DEBUG
if (1 || log_level >= LOG_MONITOR)
#else
if (log_level >= LOG_MONITOR)
#endif
pr_info("%s: watchdog reviving Port %d Channel %d [%d] sts %x/%x, start_TX %x free %x start_RX %x\n",
ci->devname, ch->channum, port, gchan, ch->channum,
ch->p.status, ch->status,
ch->ch_start_tx, ch->txd_free, ch->ch_start_rx);
#endif
/**********************************/
/** check for RX restart request **/
/**********************************/
if (ch->ch_start_rx &&
(ch->status & RX_ENABLED)) /* requires start on
* enabled RX */
{
ch->ch_start_rx = 0; /* we are restarting RX... */
#ifdef RLD_TRANS_DEBUG
pr_info("++ c4_watchdog() CHAN RX ACTIVATE: chan %d\n",
ch->channum);
#endif
#ifdef RLD_RXACT_DEBUG
{
struct mdesc *md;
static int hereb4 = 7;
if (hereb4)
{
hereb4--;
md = &ch->mdr[ch->rxix_irq_srv];
pr_info("++ c4_watchdog[%d] CHAN RX ACTIVATE: rxix_irq_srv %d, md %p sts %x, rxpkt %lu\n",
ch->channum, ch->rxix_irq_srv, md, le32_to_cpu (md->status), ch->s.rx_packets);
musycc_dump_rxbuffer_ring (ch, 1); /* RLD DEBUG */
}
}
#endif
musycc_serv_req (ch->up, SR_CHANNEL_ACTIVATE | SR_RX_DIRECTION | gchan);
}
/**********************************/
/** check for TX restart request **/
/**********************************/
if (ch->ch_start_tx &&
(ch->status & TX_ENABLED)) /* requires start on
* enabled TX */
{
struct mdesc *md;
/*
* find next unprocessed message, then set TX thp to
* it
*/
musycc_update_tx_thp (ch);
#if 0
spin_lock_irqsave (&ch->ch_txlock, flags);
#endif
md = ch->txd_irq_srv;
if (!md)
{
pr_info("-- c4_watchdog[%d]: WARNING, starting NULL md\n",
ch->channum);
pr_info("-- chan %d txd_irq_srv %p sts %x usr_add %p sts %x, txpkt %lu\n",
ch->channum, ch->txd_irq_srv, le32_to_cpu ((struct mdesc *) (ch->txd_irq_srv)->status),
ch->txd_usr_add, le32_to_cpu ((struct mdesc *) (ch->txd_usr_add)->status),
ch->s.tx_packets);
#if 0
spin_unlock_irqrestore (&ch->ch_txlock, flags);
#endif
} else if (md->data && ((le32_to_cpu (md->status)) & MUSYCC_TX_OWNED))
{
#ifdef RLD_TRANS_DEBUG
pr_info("++ c4_watchdog[%d] CHAN TX ACTIVATE: start_tx %x\n",
ch->channum, ch->ch_start_tx);
#endif
ch->ch_start_tx = 0; /* we are restarting
* TX... */
#if 0
spin_unlock_irqrestore (&ch->ch_txlock, flags); /* allow interrupts for
* service request */
#endif
musycc_serv_req (ch->up, SR_CHANNEL_ACTIVATE | SR_TX_DIRECTION | gchan);
#ifdef RLD_TRANS_DEBUG
if (1 || log_level >= LOG_MONITOR)
#else
if (log_level >= LOG_MONITOR)
#endif
pr_info("++ SACK[P%d/C%d] ack'd, continuing...\n",
ch->up->portnum, ch->channum);
}
}
}
}
}
}
#else
ci->wd_notify = 0; ci->wd_notify = 0;
#endif
#if 0
SD_SEM_GIVE (&ci->sem_wdbusy);/* release per-board hold */
#endif
} }
...@@ -690,9 +558,7 @@ c4_cleanup (void) ...@@ -690,9 +558,7 @@ c4_cleanup (void)
for (portnum = 0; portnum < ci->max_port; portnum++) for (portnum = 0; portnum < ci->max_port; portnum++)
{ {
pi = &ci->port[portnum]; pi = &ci->port[portnum];
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
c4_wq_port_cleanup (pi); c4_wq_port_cleanup (pi);
#endif
for (j = 0; j < MUSYCC_NCHANS; j++) for (j = 0; j < MUSYCC_NCHANS; j++)
{ {
if (pi->chan[j]) if (pi->chan[j])
...@@ -700,10 +566,6 @@ c4_cleanup (void) ...@@ -700,10 +566,6 @@ c4_cleanup (void)
} }
OS_kfree (pi->regram_saved); OS_kfree (pi->regram_saved);
} }
#if 0
/* obsolete - watchdog is now static w/in ci_t */
OS_free_watchdog (ci->wd);
#endif
OS_kfree (ci->iqd_p_saved); OS_kfree (ci->iqd_p_saved);
OS_kfree (ci); OS_kfree (ci);
ci = next; /* cleanup next board, if any */ ci = next; /* cleanup next board, if any */
...@@ -1145,7 +1007,6 @@ c4_set_port (ci_t * ci, int portnum) ...@@ -1145,7 +1007,6 @@ c4_set_port (ci_t * ci, int portnum)
return EBUSY; /* group needs initialization only for return EBUSY; /* group needs initialization only for
* first channel of a group */ * first channel of a group */
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
{ {
status_t ret; status_t ret;
...@@ -1153,7 +1014,6 @@ c4_set_port (ci_t * ci, int portnum) ...@@ -1153,7 +1014,6 @@ c4_set_port (ci_t * ci, int portnum)
* workqueue_struct */ * workqueue_struct */
return (ret); return (ret);
} }
#endif
init_comet (ci, pi->cometbase, pp->port_mode, 1 /* clockmaster == true */ , pp->portP); init_comet (ci, pi->cometbase, pp->port_mode, 1 /* clockmaster == true */ , pp->portP);
clck = pci_read_32 ((u_int32_t *) &ci->cpldbase->mclk) & PMCC4_CPLD_MCLK_MASK; clck = pci_read_32 ((u_int32_t *) &ci->cpldbase->mclk) & PMCC4_CPLD_MCLK_MASK;
...@@ -1269,14 +1129,12 @@ c4_new_chan (ci_t * ci, int portnum, int channum, void *user) ...@@ -1269,14 +1129,12 @@ c4_new_chan (ci_t * ci, int portnum, int channum, void *user)
spin_lock_init (&ch->ch_rxlock); spin_lock_init (&ch->ch_rxlock);
spin_lock_init (&ch->ch_txlock); spin_lock_init (&ch->ch_txlock);
#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,41)
{ {
status_t ret; status_t ret;
if ((ret = c4_wk_chan_init (pi, ch))) if ((ret = c4_wk_chan_init (pi, ch)))
return ret; return ret;
} }
#endif
/* save off interface assignments which bound a board */ /* save off interface assignments which bound a board */
if (ci->first_if == 0) /* first channel registered is assumed to if (ci->first_if == 0) /* first channel registered is assumed to
...@@ -1705,31 +1563,23 @@ sbecom_get_brdinfo (ci_t * ci, struct sbe_brd_info * bip, u_int8_t *bsn) ...@@ -1705,31 +1563,23 @@ sbecom_get_brdinfo (ci_t * ci, struct sbe_brd_info * bip, u_int8_t *bsn)
if (ci->first_if) if (ci->first_if)
{ {
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
np = (char *) hdlc_to_name (ci->first_if);
#else
{ {
struct net_device *dev; struct net_device *dev;
dev = (struct net_device *) ci->first_if; dev = (struct net_device *) ci->first_if;
np = (char *) dev->name; np = (char *) dev->name;
} }
#endif
strncpy (bip->first_iname, np, CHNM_STRLEN - 1); strncpy (bip->first_iname, np, CHNM_STRLEN - 1);
} else } else
strcpy (bip->first_iname, "<NULL>"); strcpy (bip->first_iname, "<NULL>");
if (ci->last_if) if (ci->last_if)
{ {
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
np = (char *) hdlc_to_name (ci->last_if);
#else
{ {
struct net_device *dev; struct net_device *dev;
dev = (struct net_device *) ci->last_if; dev = (struct net_device *) ci->last_if;
np = (char *) dev->name; np = (char *) dev->name;
} }
#endif
strncpy (bip->last_iname, np, CHNM_STRLEN - 1); strncpy (bip->last_iname, np, CHNM_STRLEN - 1);
} else } else
strcpy (bip->last_iname, "<NULL>"); strcpy (bip->last_iname, "<NULL>");
...@@ -1763,11 +1613,7 @@ c4_get_iidinfo (ci_t * ci, struct sbe_iid_info * iip) ...@@ -1763,11 +1613,7 @@ c4_get_iidinfo (ci_t * ci, struct sbe_iid_info * iip)
if (!(dev = getuserbychan (iip->channum))) if (!(dev = getuserbychan (iip->channum)))
return ENOENT; return ENOENT;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
np = (char *) hdlc_to_name (dev_to_hdlc (dev));
#else
np = dev->name; np = dev->name;
#endif
strncpy (iip->iname, np, CHNM_STRLEN - 1); strncpy (iip->iname, np, CHNM_STRLEN - 1);
return 0; return 0;
} }
...@@ -1826,11 +1672,7 @@ c4_ebus_intr_th_handler (void *devp) ...@@ -1826,11 +1672,7 @@ c4_ebus_intr_th_handler (void *devp)
pci_write_32 ((u_int32_t *) &ci->reg->glcd, GCD_MAGIC | MUSYCC_GCD_INTB_DISABLE); pci_write_32 ((u_int32_t *) &ci->reg->glcd, GCD_MAGIC | MUSYCC_GCD_INTB_DISABLE);
#endif #endif
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,4,20)
return;
#else
return IRQ_RETVAL (handled); return IRQ_RETVAL (handled);
#endif
} }
......
...@@ -48,9 +48,6 @@ ...@@ -48,9 +48,6 @@
#else #else
#include <linux/types.h> #include <linux/types.h>
#include <linux/version.h> #include <linux/version.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
#include <linux/config.h>
#endif
#if defined(CONFIG_SMP) && ! defined(__SMP__) #if defined(CONFIG_SMP) && ! defined(__SMP__)
#define __SMP__ #define __SMP__
#endif #endif
...@@ -60,12 +57,8 @@ ...@@ -60,12 +57,8 @@
#ifdef MODULE #ifdef MODULE
#ifdef MODVERSIONS #ifdef MODVERSIONS
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
#include <linux/modversions.h>
#else
#include <config/modversions.h> #include <config/modversions.h>
#endif #endif
#endif
#include <linux/module.h> #include <linux/module.h>
#endif #endif
#endif #endif
...@@ -260,11 +253,7 @@ OS_sem_free (void *sem) ...@@ -260,11 +253,7 @@ OS_sem_free (void *sem)
struct watchdog struct watchdog
{ {
struct timer_list h; struct timer_list h;
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
struct tq_struct tq;
#else
struct work_struct work; struct work_struct work;
#endif
void *softc; void *softc;
void (*func) (void *softc); void (*func) (void *softc);
int ticks; int ticks;
......
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