summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorChas Williams <chas@cmf.nrl.navy.mil>2008-06-17 04:17:31 +0400
committerDavid S. Miller <davem@davemloft.net>2008-06-17 04:17:31 +0400
commit059e3779b59527150e1d1942026ec149192cbf77 (patch)
treeff3ee9a9f7c5cfdb948863cd3e5c48e0a5063ae0 /drivers
parentd6c1d704ab5d2e13bebb096e415156a9c54a3d32 (diff)
downloadlinux-059e3779b59527150e1d1942026ec149192cbf77.tar.xz
atm: [he] only support suni driver on multimode interfaces
Signed-off-by: Chas Williams <chas@cmf.nrl.navy.mil> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/atm/he.c3
-rw-r--r--drivers/atm/he.h13
2 files changed, 6 insertions, 10 deletions
diff --git a/drivers/atm/he.c b/drivers/atm/he.c
index ffc4a5a41946..320320e3dfb3 100644
--- a/drivers/atm/he.c
+++ b/drivers/atm/he.c
@@ -1542,7 +1542,8 @@ he_start(struct atm_dev *dev)
/* initialize framer */
#ifdef CONFIG_ATM_HE_USE_SUNI
- suni_init(he_dev->atm_dev);
+ if (he_isMM(he_dev))
+ suni_init(he_dev->atm_dev);
if (he_dev->atm_dev->phy && he_dev->atm_dev->phy->start)
he_dev->atm_dev->phy->start(he_dev->atm_dev);
#endif /* CONFIG_ATM_HE_USE_SUNI */
diff --git a/drivers/atm/he.h b/drivers/atm/he.h
index fe6cd15a78a4..b87d6ccabac1 100644
--- a/drivers/atm/he.h
+++ b/drivers/atm/he.h
@@ -267,13 +267,7 @@ struct he_dev {
char prod_id[30];
char mac_addr[6];
- int media; /*
- * 0x26 = HE155 MM
- * 0x27 = HE622 MM
- * 0x46 = HE155 SM
- * 0x47 = HE622 SM
- */
-
+ int media;
unsigned int vcibits, vpibits;
unsigned int cells_per_row;
@@ -392,6 +386,7 @@ struct he_vcc
#define HE_DEV(dev) ((struct he_dev *) (dev)->dev_data)
#define he_is622(dev) ((dev)->media & 0x1)
+#define he_isMM(dev) ((dev)->media & 0x20)
#define HE_REGMAP_SIZE 0x100000
@@ -876,8 +871,8 @@ struct he_vcc
#define M_SN 0x3a /* integer */
#define MEDIA 0x3e /* integer */
#define HE155MM 0x26
-#define HE155SM 0x27
-#define HE622MM 0x46
+#define HE622MM 0x27
+#define HE155SM 0x46
#define HE622SM 0x47
#define MAC_ADDR 0x42 /* char[] */