config LCS
        def_tristate m
        prompt "Lan Channel Station Interface"
-       depends on CCW && NETDEVICES && (ETHERNET || TR || FDDI)
+       depends on CCW && NETDEVICES && (ETHERNET || FDDI)
        help
           Select this option if you want to use LCS networking on IBM System z.
-          This device driver supports Token Ring (IEEE 802.5),
-          FDDI (IEEE 802.7) and Ethernet.
+          This device driver supports FDDI (IEEE 802.7) and Ethernet.
           To compile as a module, choose M. The module name is lcs.
           If you do not know what it is, it's safe to choose Y.
 
 
 #include <linux/if.h>
 #include <linux/netdevice.h>
 #include <linux/etherdevice.h>
-#include <linux/trdevice.h>
 #include <linux/fddidevice.h>
 #include <linux/inetdevice.h>
 #include <linux/in.h>
 #include "lcs.h"
 
 
-#if !defined(CONFIG_ETHERNET) && \
-    !defined(CONFIG_TR) && !defined(CONFIG_FDDI)
+#if !defined(CONFIG_ETHERNET) && !defined(CONFIG_FDDI)
 #error Cannot compile lcs.c without some net devices switched on.
 #endif
 
 lcs_get_mac_for_ipm(__be32 ipm, char *mac, struct net_device *dev)
 {
        LCS_DBF_TEXT(4,trace, "getmac");
-       if (dev->type == ARPHRD_IEEE802_TR)
-               ip_tr_mc_map(ipm, mac);
-       else
-               ip_eth_mc_map(ipm, mac);
+       ip_eth_mc_map(ipm, mac);
 }
 
 /**
                return 0;
 
 #endif
-#ifdef CONFIG_TR
-       card->lan_type = LCS_FRAME_TYPE_TR;
-       rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP);
-       if (rc == 0)
-               return 0;
-#endif
 #ifdef CONFIG_FDDI
        card->lan_type = LCS_FRAME_TYPE_FDDI;
        rc = lcs_send_startlan(card, LCS_INITIATOR_TCPIP);
                dev = alloc_etherdev(0);
                break;
 #endif
-#ifdef CONFIG_TR
-       case LCS_FRAME_TYPE_TR:
-               card->lan_type_trans = tr_type_trans;
-               dev = alloc_trdev(0);
-               break;
-#endif
 #ifdef CONFIG_FDDI
        case LCS_FRAME_TYPE_FDDI:
                card->lan_type_trans = fddi_type_trans;
 
 static void qeth_l3_get_mac_for_ipm(__u32 ipm, char *mac,
                                struct net_device *dev)
 {
-       if (dev->type == ARPHRD_IEEE802_TR)
-               ip_tr_mc_map(ipm, mac);
-       else
-               ip_eth_mc_map(ipm, mac);
+       ip_eth_mc_map(ipm, mac);
 }
 
 static void qeth_l3_add_mc(struct qeth_card *card, struct in_device *in4_dev)
 #endif
                        case __constant_htons(ETH_P_IP):
                                ip_hdr = (struct iphdr *)skb->data;
-                               (card->dev->type == ARPHRD_IEEE802_TR) ?
-                               ip_tr_mc_map(ip_hdr->daddr, tg_addr):
                                ip_eth_mc_map(ip_hdr->daddr, tg_addr);
                                break;
                        default:
                                tg_addr, "FAKELL", card->dev->addr_len);
        }
 
-#ifdef CONFIG_TR
-       if (card->dev->type == ARPHRD_IEEE802_TR)
-               skb->protocol = tr_type_trans(skb, card->dev);
-       else
-#endif
-               skb->protocol = eth_type_trans(skb, card->dev);
+       skb->protocol = eth_type_trans(skb, card->dev);
 
        if (hdr->hdr.l3.ext_flags &
            (QETH_HDR_EXT_VLAN_FRAME | QETH_HDR_EXT_INCLUDE_VLAN_TAG)) {
                        hdr->hdr.l3.flags &= ~QETH_HDR_PASSTHRU;
                memcpy(hdr->hdr.l3.dest_addr, pkey, 16);
        } else {
-               /* passthrough */
-               if ((skb->dev->type == ARPHRD_IEEE802_TR) &&
-                       !memcmp(skb->data + sizeof(struct qeth_hdr) +
-                       sizeof(__u16), skb->dev->broadcast, 6)) {
-                       hdr->hdr.l3.flags = QETH_CAST_BROADCAST |
-                                               QETH_HDR_PASSTHRU;
-               } else if (!memcmp(skb->data + sizeof(struct qeth_hdr),
+               if (!memcmp(skb->data + sizeof(struct qeth_hdr),
                            skb->dev->broadcast, 6)) {
                        /* broadcast? */
                        hdr->hdr.l3.flags = QETH_CAST_BROADCAST |
                        skb_pull(new_skb, ETH_HLEN);
        } else {
                if (ipv == 4) {
-                       if (card->dev->type == ARPHRD_IEEE802_TR)
-                               skb_pull(new_skb, TR_HLEN);
-                       else
-                               skb_pull(new_skb, ETH_HLEN);
+                       skb_pull(new_skb, ETH_HLEN);
                }
 
                if (ipv != 4 && vlan_tx_tag_present(new_skb)) {
            card->info.type == QETH_CARD_TYPE_OSX) {
                if ((card->info.link_type == QETH_LINK_TYPE_LANE_TR) ||
                    (card->info.link_type == QETH_LINK_TYPE_HSTR)) {
-#ifdef CONFIG_TR
-                       card->dev = alloc_trdev(0);
-#endif
-                       if (!card->dev)
-                               return -ENODEV;
-                       card->dev->netdev_ops = &qeth_l3_netdev_ops;
+                       pr_info("qeth_l3: ignoring TR device\n");
+                       return -ENODEV;
                } else {
                        card->dev = alloc_etherdev(0);
                        if (!card->dev)