|
@@ -75,8 +75,10 @@
|
|
|
#include <pcmcia/cisreg.h>
|
|
|
#include <pcmcia/ds.h>
|
|
|
|
|
|
-#ifdef CONFIG_HDLC_MODULE
|
|
|
-#define CONFIG_HDLC 1
|
|
|
+#if defined(CONFIG_HDLC) || (defined(CONFIG_HDLC_MODULE) && defined(CONFIG_SYNCLINK_CS_MODULE))
|
|
|
+#define SYNCLINK_GENERIC_HDLC 1
|
|
|
+#else
|
|
|
+#define SYNCLINK_GENERIC_HDLC 0
|
|
|
#endif
|
|
|
|
|
|
#define GET_USER(error,value,addr) error = get_user(value,addr)
|
|
@@ -235,7 +237,7 @@ typedef struct _mgslpc_info {
|
|
|
int dosyncppp;
|
|
|
spinlock_t netlock;
|
|
|
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
struct net_device *netdev;
|
|
|
#endif
|
|
|
|
|
@@ -392,7 +394,7 @@ static void tx_timeout(unsigned long context);
|
|
|
|
|
|
static int ioctl_common(MGSLPC_INFO *info, unsigned int cmd, unsigned long arg);
|
|
|
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
#define dev_to_port(D) (dev_to_hdlc(D)->priv)
|
|
|
static void hdlcdev_tx_done(MGSLPC_INFO *info);
|
|
|
static void hdlcdev_rx(MGSLPC_INFO *info, char *buf, int size);
|
|
@@ -1053,7 +1055,7 @@ static void tx_done(MGSLPC_INFO *info)
|
|
|
info->drop_rts_on_tx_done = 0;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
if (info->netcount)
|
|
|
hdlcdev_tx_done(info);
|
|
|
else
|
|
@@ -1164,7 +1166,7 @@ static void dcd_change(MGSLPC_INFO *info)
|
|
|
}
|
|
|
else
|
|
|
info->input_signal_events.dcd_down++;
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
if (info->netcount) {
|
|
|
if (info->serial_signals & SerialSignal_DCD)
|
|
|
netif_carrier_on(info->netdev);
|
|
@@ -2953,7 +2955,7 @@ static void mgslpc_add_device(MGSLPC_INFO *info)
|
|
|
printk( "SyncLink PC Card %s:IO=%04X IRQ=%d\n",
|
|
|
info->device_name, info->io_base, info->irq_level);
|
|
|
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
hdlcdev_init(info);
|
|
|
#endif
|
|
|
}
|
|
@@ -2969,7 +2971,7 @@ static void mgslpc_remove_device(MGSLPC_INFO *remove_info)
|
|
|
last->next_device = info->next_device;
|
|
|
else
|
|
|
mgslpc_device_list = info->next_device;
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
hdlcdev_exit(info);
|
|
|
#endif
|
|
|
release_resources(info);
|
|
@@ -3901,7 +3903,7 @@ static int rx_get_frame(MGSLPC_INFO *info)
|
|
|
return_frame = 1;
|
|
|
}
|
|
|
framesize = 0;
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
{
|
|
|
struct net_device_stats *stats = hdlc_stats(info->netdev);
|
|
|
stats->rx_errors++;
|
|
@@ -3935,7 +3937,7 @@ static int rx_get_frame(MGSLPC_INFO *info)
|
|
|
++framesize;
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
if (info->netcount)
|
|
|
hdlcdev_rx(info, buf->data, framesize);
|
|
|
else
|
|
@@ -4091,7 +4093,7 @@ static void tx_timeout(unsigned long context)
|
|
|
|
|
|
spin_unlock_irqrestore(&info->lock,flags);
|
|
|
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
if (info->netcount)
|
|
|
hdlcdev_tx_done(info);
|
|
|
else
|
|
@@ -4099,7 +4101,7 @@ static void tx_timeout(unsigned long context)
|
|
|
bh_transmit(info);
|
|
|
}
|
|
|
|
|
|
-#ifdef CONFIG_HDLC
|
|
|
+#if SYNCLINK_GENERIC_HDLC
|
|
|
|
|
|
/**
|
|
|
* called by generic HDLC layer when protocol selected (PPP, frame relay, etc.)
|