mbox series

[0/5] isdn: deprecate non-mISDN drivers

Message ID 20190423151143.464992-1-arnd@arndb.de
Headers show
Series isdn: deprecate non-mISDN drivers | expand

Message

Arnd Bergmann April 23, 2019, 3:11 p.m. UTC
When isdn4linux came up in the context of another patch series, I
remembered that we had discussed removing it a while ago.

It turns out that the suggestion from Karsten Keil wa to remove I4L
in 2018 after the last public ISDN networks are shut down. This has
happened now (with a very small number of exceptions), so I guess it's
time to try again.

We currently have three ISDN stacks in the kernel: the original
isdn4linux, the newer CAPI, and finally mISDN stack.

As far as I can tell, anyone using ISDN with mainline kernel drivers in
the past few years uses mISDN, and this is typically used for voice-only
PBX installations that don't require a public network.

The older stacks support additional features for data networks, but those
typically make no sense any more if there is no network to connect to.

My proposal for this time is to kill off isdn4linux entirely, as it seems
to have been unusable for quite a while. This code has been abandoned
for many years and it does get in the way of maintenance.

CAPI in turn is not quite as obsolete, but as I have been unable to find
any users, I would suggest moving it to drivers/staging while we
figure out if anyone is using it. If not, it can then be removed
as well. If it turns out that there are users that are on 5.x kernels
or need to update to them, we can decide to leave parts of it for
longer, or move them back.

If anyone is still using isdn4linux and CAPI with modern kernels, please
speak up now.

      Arnd

[1] https://patchwork.kernel.org/patch/8484861/#17900371

Arnd Bergmann (5):
  isdn: gigaset: remove i4l support
  isdn: remove hisax driver
  isdn: remove isdn4linux
  isdn: hdlc: move into mISDN
  isdn: move capi drivers to staging

 Documentation/isdn/HiSax.cert                 |   96 -
 Documentation/isdn/INTERFACE                  |  759 ----
 Documentation/isdn/INTERFACE.fax              |  163 -
 Documentation/isdn/README                     |  599 ---
 Documentation/isdn/README.FAQ                 |   26 -
 Documentation/isdn/README.HiSax               |  659 ---
 Documentation/isdn/README.audio               |  138 -
 Documentation/isdn/README.concap              |  259 --
 Documentation/isdn/README.diversion           |  127 -
 Documentation/isdn/README.fax                 |   45 -
 Documentation/isdn/README.hfc-pci             |   41 -
 Documentation/isdn/README.syncppp             |   58 -
 Documentation/isdn/README.x25                 |  184 -
 Documentation/isdn/syncPPP.FAQ                |  224 -
 Documentation/process/changes.rst             |   16 +-
 MAINTAINERS                                   |   18 +-
 drivers/isdn/Kconfig                          |   53 -
 drivers/isdn/Makefile                         |    7 -
 drivers/isdn/capi/capidrv.c                   | 2525 -----------
 drivers/isdn/capi/capidrv.h                   |  140 -
 drivers/isdn/divert/Makefile                  |    9 -
 drivers/isdn/divert/divert_init.c             |   82 -
 drivers/isdn/divert/divert_procfs.c           |  336 --
 drivers/isdn/divert/isdn_divert.c             |  846 ----
 drivers/isdn/divert/isdn_divert.h             |  132 -
 drivers/isdn/gigaset/dummyll.c                |   77 -
 drivers/isdn/gigaset/i4l.c                    |  695 ---
 drivers/isdn/hardware/Makefile                |    1 -
 drivers/isdn/hardware/mISDN/Kconfig           |    7 +-
 drivers/isdn/hardware/mISDN/Makefile          |    2 +
 .../isdn/{i4l => hardware/mISDN}/isdnhdlc.c   |    2 +-
 .../isdn/hardware/mISDN/isdnhdlc.h            |    0
 drivers/isdn/hardware/mISDN/netjet.c          |    2 +-
 drivers/isdn/hisax/Kconfig                    |  422 --
 drivers/isdn/hisax/Makefile                   |   60 -
 drivers/isdn/hisax/amd7930_fn.c               |  794 ----
 drivers/isdn/hisax/amd7930_fn.h               |   37 -
 drivers/isdn/hisax/arcofi.c                   |  131 -
 drivers/isdn/hisax/arcofi.h                   |   27 -
 drivers/isdn/hisax/asuscom.c                  |  423 --
 drivers/isdn/hisax/avm_a1.c                   |  307 --
 drivers/isdn/hisax/avm_a1p.c                  |  267 --
 drivers/isdn/hisax/avm_pci.c                  |  904 ----
 drivers/isdn/hisax/avma1_cs.c                 |  162 -
 drivers/isdn/hisax/bkm_a4t.c                  |  358 --
 drivers/isdn/hisax/bkm_a8.c                   |  433 --
 drivers/isdn/hisax/bkm_ax.h                   |  119 -
 drivers/isdn/hisax/callc.c                    | 1792 --------
 drivers/isdn/hisax/config.c                   | 1993 ---------
 drivers/isdn/hisax/diva.c                     | 1282 ------
 drivers/isdn/hisax/elsa.c                     | 1245 ------
 drivers/isdn/hisax/elsa_cs.c                  |  218 -
 drivers/isdn/hisax/elsa_ser.c                 |  659 ---
 drivers/isdn/hisax/enternow_pci.c             |  420 --
 drivers/isdn/hisax/fsm.c                      |  161 -
 drivers/isdn/hisax/fsm.h                      |   61 -
 drivers/isdn/hisax/gazel.c                    |  691 ---
 drivers/isdn/hisax/hfc4s8s_l1.c               | 1584 -------
 drivers/isdn/hisax/hfc4s8s_l1.h               |   89 -
 drivers/isdn/hisax/hfc_2bds0.c                | 1078 -----
 drivers/isdn/hisax/hfc_2bds0.h                |  128 -
 drivers/isdn/hisax/hfc_2bs0.c                 |  591 ---
 drivers/isdn/hisax/hfc_2bs0.h                 |   60 -
 drivers/isdn/hisax/hfc_pci.c                  | 1755 --------
 drivers/isdn/hisax/hfc_pci.h                  |  235 --
 drivers/isdn/hisax/hfc_sx.c                   | 1517 -------
 drivers/isdn/hisax/hfc_sx.h                   |  196 -
 drivers/isdn/hisax/hfc_usb.c                  | 1608 -------
 drivers/isdn/hisax/hfc_usb.h                  |  208 -
 drivers/isdn/hisax/hfcscard.c                 |  261 --
 drivers/isdn/hisax/hisax.h                    | 1352 ------
 drivers/isdn/hisax/hisax_cfg.h                |   66 -
 drivers/isdn/hisax/hisax_debug.h              |   80 -
 drivers/isdn/hisax/hisax_fcpcipnp.c           | 1024 -----
 drivers/isdn/hisax/hisax_fcpcipnp.h           |   58 -
 drivers/isdn/hisax/hisax_if.h                 |   66 -
 drivers/isdn/hisax/hisax_isac.c               |  895 ----
 drivers/isdn/hisax/hisax_isac.h               |   46 -
 drivers/isdn/hisax/hscx.c                     |  277 --
 drivers/isdn/hisax/hscx.h                     |   41 -
 drivers/isdn/hisax/hscx_irq.c                 |  294 --
 drivers/isdn/hisax/icc.c                      |  680 ---
 drivers/isdn/hisax/icc.h                      |   72 -
 drivers/isdn/hisax/ipac.h                     |   29 -
 drivers/isdn/hisax/ipacx.c                    |  913 ----
 drivers/isdn/hisax/ipacx.h                    |  162 -
 drivers/isdn/hisax/isac.c                     |  681 ---
 drivers/isdn/hisax/isac.h                     |   70 -
 drivers/isdn/hisax/isar.c                     | 1910 ---------
 drivers/isdn/hisax/isar.h                     |  222 -
 drivers/isdn/hisax/isdnl1.c                   |  930 ----
 drivers/isdn/hisax/isdnl1.h                   |   32 -
 drivers/isdn/hisax/isdnl2.c                   | 1839 --------
 drivers/isdn/hisax/isdnl2.h                   |   25 -
 drivers/isdn/hisax/isdnl3.c                   |  594 ---
 drivers/isdn/hisax/isdnl3.h                   |   42 -
 drivers/isdn/hisax/isurf.c                    |  305 --
 drivers/isdn/hisax/ix1_micro.c                |  316 --
 drivers/isdn/hisax/jade.c                     |  305 --
 drivers/isdn/hisax/jade.h                     |  134 -
 drivers/isdn/hisax/jade_irq.c                 |  238 --
 drivers/isdn/hisax/l3_1tr6.c                  |  932 ----
 drivers/isdn/hisax/l3_1tr6.h                  |  164 -
 drivers/isdn/hisax/l3dss1.c                   | 3227 --------------
 drivers/isdn/hisax/l3dss1.h                   |  124 -
 drivers/isdn/hisax/l3ni1.c                    | 3182 --------------
 drivers/isdn/hisax/l3ni1.h                    |  136 -
 drivers/isdn/hisax/lmgr.c                     |   50 -
 drivers/isdn/hisax/mic.c                      |  235 --
 drivers/isdn/hisax/netjet.c                   |  985 -----
 drivers/isdn/hisax/netjet.h                   |   69 -
 drivers/isdn/hisax/niccy.c                    |  380 --
 drivers/isdn/hisax/nj_s.c                     |  294 --
 drivers/isdn/hisax/nj_u.c                     |  258 --
 drivers/isdn/hisax/q931.c                     | 1513 -------
 drivers/isdn/hisax/s0box.c                    |  260 --
 drivers/isdn/hisax/saphir.c                   |  296 --
 drivers/isdn/hisax/sedlbauer.c                |  873 ----
 drivers/isdn/hisax/sedlbauer_cs.c             |  209 -
 drivers/isdn/hisax/sportster.c                |  267 --
 drivers/isdn/hisax/st5481.h                   |  529 ---
 drivers/isdn/hisax/st5481_b.c                 |  380 --
 drivers/isdn/hisax/st5481_d.c                 |  780 ----
 drivers/isdn/hisax/st5481_init.c              |  221 -
 drivers/isdn/hisax/st5481_usb.c               |  659 ---
 drivers/isdn/hisax/tei.c                      |  465 --
 drivers/isdn/hisax/teleint.c                  |  334 --
 drivers/isdn/hisax/teles0.c                   |  364 --
 drivers/isdn/hisax/teles3.c                   |  498 ---
 drivers/isdn/hisax/teles_cs.c                 |  200 -
 drivers/isdn/hisax/telespci.c                 |  349 --
 drivers/isdn/hisax/w6692.c                    | 1085 -----
 drivers/isdn/hisax/w6692.h                    |  184 -
 drivers/isdn/i4l/Kconfig                      |  128 -
 drivers/isdn/i4l/Makefile                     |   20 -
 drivers/isdn/i4l/isdn_audio.c                 |  711 ----
 drivers/isdn/i4l/isdn_audio.h                 |   44 -
 drivers/isdn/i4l/isdn_bsdcomp.c               |  930 ----
 drivers/isdn/i4l/isdn_common.c                | 2368 -----------
 drivers/isdn/i4l/isdn_common.h                |   47 -
 drivers/isdn/i4l/isdn_concap.c                |   99 -
 drivers/isdn/i4l/isdn_concap.h                |   11 -
 drivers/isdn/i4l/isdn_net.c                   | 3198 --------------
 drivers/isdn/i4l/isdn_net.h                   |  151 -
 drivers/isdn/i4l/isdn_ppp.c                   | 3053 --------------
 drivers/isdn/i4l/isdn_ppp.h                   |   41 -
 drivers/isdn/i4l/isdn_tty.c                   | 3756 -----------------
 drivers/isdn/i4l/isdn_tty.h                   |  120 -
 drivers/isdn/i4l/isdn_ttyfax.c                | 1123 -----
 drivers/isdn/i4l/isdn_ttyfax.h                |   17 -
 drivers/isdn/i4l/isdn_v110.c                  |  625 ---
 drivers/isdn/i4l/isdn_v110.h                  |   29 -
 drivers/isdn/i4l/isdn_x25iface.c              |  332 --
 drivers/isdn/i4l/isdn_x25iface.h              |   30 -
 drivers/isdn/isdnloop/Makefile                |    5 -
 drivers/isdn/isdnloop/isdnloop.c              | 1528 -------
 drivers/isdn/isdnloop/isdnloop.h              |  112 -
 drivers/staging/Kconfig                       |    2 +
 drivers/staging/Makefile                      |    1 +
 .../staging/isdn/Documentation}/CREDITS       |    0
 .../isdn/Documentation}/INTERFACE.CAPI        |    0
 .../staging/isdn/Documentation}/README.avmb1  |    0
 .../isdn/Documentation}/README.gigaset        |   36 +-
 .../staging/isdn/Documentation}/README.hysdn  |    0
 drivers/staging/isdn/Kconfig                  |   28 +
 drivers/staging/isdn/Makefile                 |    9 +
 drivers/staging/isdn/TODO                     |   22 +
 .../hardware => staging/isdn}/avm/Kconfig     |    0
 .../hardware => staging/isdn}/avm/Makefile    |    2 +
 .../hardware => staging/isdn}/avm/avm_cs.c    |    0
 .../hardware => staging/isdn}/avm/avmcard.h   |    0
 .../{isdn/hardware => staging/isdn}/avm/b1.c  |    0
 .../hardware => staging/isdn}/avm/b1dma.c     |    0
 .../hardware => staging/isdn}/avm/b1isa.c     |    0
 .../hardware => staging/isdn}/avm/b1pci.c     |    0
 .../hardware => staging/isdn}/avm/b1pcmcia.c  |    0
 .../{isdn/hardware => staging/isdn}/avm/c4.c  |    0
 .../hardware => staging/isdn}/avm/t1isa.c     |    0
 .../hardware => staging/isdn}/avm/t1pci.c     |    0
 drivers/{ => staging}/isdn/capi/Kconfig       |    9 -
 drivers/{ => staging}/isdn/capi/Makefile      |    2 +
 drivers/{ => staging}/isdn/capi/capi.c        |    0
 drivers/{ => staging}/isdn/capi/capilib.c     |    0
 drivers/{ => staging}/isdn/capi/capiutil.c    |    0
 drivers/{ => staging}/isdn/capi/kcapi.c       |    0
 drivers/{ => staging}/isdn/capi/kcapi.h       |    0
 drivers/{ => staging}/isdn/capi/kcapi_proc.c  |    0
 drivers/{ => staging}/isdn/gigaset/Kconfig    |   22 +-
 drivers/{ => staging}/isdn/gigaset/Makefile   |    7 +-
 .../{ => staging}/isdn/gigaset/asyncdata.c    |    0
 .../{ => staging}/isdn/gigaset/bas-gigaset.c  |    0
 drivers/{ => staging}/isdn/gigaset/capi.c     |    0
 drivers/{ => staging}/isdn/gigaset/common.c   |    0
 drivers/{ => staging}/isdn/gigaset/ev-layer.c |    0
 drivers/{ => staging}/isdn/gigaset/gigaset.h  |    0
 .../{ => staging}/isdn/gigaset/interface.c    |    0
 drivers/{ => staging}/isdn/gigaset/isocdata.c |    0
 drivers/{ => staging}/isdn/gigaset/proc.c     |    0
 .../{ => staging}/isdn/gigaset/ser-gigaset.c  |    0
 .../{ => staging}/isdn/gigaset/usb-gigaset.c  |    0
 drivers/{ => staging}/isdn/hysdn/Kconfig      |    0
 drivers/{ => staging}/isdn/hysdn/Makefile     |    2 +
 drivers/{ => staging}/isdn/hysdn/boardergo.c  |    0
 drivers/{ => staging}/isdn/hysdn/boardergo.h  |    0
 drivers/{ => staging}/isdn/hysdn/hycapi.c     |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_boot.c |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_defs.h |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_init.c |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_net.c  |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_pof.h  |    0
 .../{ => staging}/isdn/hysdn/hysdn_procconf.c |    0
 .../{ => staging}/isdn/hysdn/hysdn_proclog.c  |    0
 .../{ => staging}/isdn/hysdn/hysdn_sched.c    |    0
 drivers/{ => staging}/isdn/hysdn/ince1pc.h    |    0
 .../staging/isdn/include}/linux/b1lli.h       |    0
 .../staging/isdn/include}/linux/gigaset_dev.h |    0
 .../isdn/include}/linux/isdn/capilli.h        |    0
 .../isdn/include}/linux/isdn/capiutil.h       |    0
 .../isdn/include}/uapi/linux/isdn/capicmd.h   |    0
 include/linux/concap.h                        |  112 -
 include/linux/isdn.h                          |  473 ---
 include/linux/isdn_divertif.h                 |   35 -
 include/linux/isdn_ppp.h                      |  194 -
 include/linux/isdnif.h                        |  505 ---
 include/linux/wanrouter.h                     |   11 -
 include/uapi/linux/isdn.h                     |  144 -
 include/uapi/linux/isdn_divertif.h            |   31 -
 include/uapi/linux/isdn_ppp.h                 |   68 -
 include/uapi/linux/isdnif.h                   |   57 -
 include/uapi/linux/wanrouter.h                |   18 -
 230 files changed, 102 insertions(+), 83970 deletions(-)
 delete mode 100644 Documentation/isdn/HiSax.cert
 delete mode 100644 Documentation/isdn/INTERFACE
 delete mode 100644 Documentation/isdn/INTERFACE.fax
 delete mode 100644 Documentation/isdn/README
 delete mode 100644 Documentation/isdn/README.FAQ
 delete mode 100644 Documentation/isdn/README.HiSax
 delete mode 100644 Documentation/isdn/README.audio
 delete mode 100644 Documentation/isdn/README.concap
 delete mode 100644 Documentation/isdn/README.diversion
 delete mode 100644 Documentation/isdn/README.fax
 delete mode 100644 Documentation/isdn/README.hfc-pci
 delete mode 100644 Documentation/isdn/README.syncppp
 delete mode 100644 Documentation/isdn/README.x25
 delete mode 100644 Documentation/isdn/syncPPP.FAQ
 delete mode 100644 drivers/isdn/capi/capidrv.c
 delete mode 100644 drivers/isdn/capi/capidrv.h
 delete mode 100644 drivers/isdn/divert/Makefile
 delete mode 100644 drivers/isdn/divert/divert_init.c
 delete mode 100644 drivers/isdn/divert/divert_procfs.c
 delete mode 100644 drivers/isdn/divert/isdn_divert.c
 delete mode 100644 drivers/isdn/divert/isdn_divert.h
 delete mode 100644 drivers/isdn/gigaset/dummyll.c
 delete mode 100644 drivers/isdn/gigaset/i4l.c
 rename drivers/isdn/{i4l => hardware/mISDN}/isdnhdlc.c (99%)
 rename include/linux/isdn/hdlc.h => drivers/isdn/hardware/mISDN/isdnhdlc.h (100%)
 delete mode 100644 drivers/isdn/hisax/Kconfig
 delete mode 100644 drivers/isdn/hisax/Makefile
 delete mode 100644 drivers/isdn/hisax/amd7930_fn.c
 delete mode 100644 drivers/isdn/hisax/amd7930_fn.h
 delete mode 100644 drivers/isdn/hisax/arcofi.c
 delete mode 100644 drivers/isdn/hisax/arcofi.h
 delete mode 100644 drivers/isdn/hisax/asuscom.c
 delete mode 100644 drivers/isdn/hisax/avm_a1.c
 delete mode 100644 drivers/isdn/hisax/avm_a1p.c
 delete mode 100644 drivers/isdn/hisax/avm_pci.c
 delete mode 100644 drivers/isdn/hisax/avma1_cs.c
 delete mode 100644 drivers/isdn/hisax/bkm_a4t.c
 delete mode 100644 drivers/isdn/hisax/bkm_a8.c
 delete mode 100644 drivers/isdn/hisax/bkm_ax.h
 delete mode 100644 drivers/isdn/hisax/callc.c
 delete mode 100644 drivers/isdn/hisax/config.c
 delete mode 100644 drivers/isdn/hisax/diva.c
 delete mode 100644 drivers/isdn/hisax/elsa.c
 delete mode 100644 drivers/isdn/hisax/elsa_cs.c
 delete mode 100644 drivers/isdn/hisax/elsa_ser.c
 delete mode 100644 drivers/isdn/hisax/enternow_pci.c
 delete mode 100644 drivers/isdn/hisax/fsm.c
 delete mode 100644 drivers/isdn/hisax/fsm.h
 delete mode 100644 drivers/isdn/hisax/gazel.c
 delete mode 100644 drivers/isdn/hisax/hfc4s8s_l1.c
 delete mode 100644 drivers/isdn/hisax/hfc4s8s_l1.h
 delete mode 100644 drivers/isdn/hisax/hfc_2bds0.c
 delete mode 100644 drivers/isdn/hisax/hfc_2bds0.h
 delete mode 100644 drivers/isdn/hisax/hfc_2bs0.c
 delete mode 100644 drivers/isdn/hisax/hfc_2bs0.h
 delete mode 100644 drivers/isdn/hisax/hfc_pci.c
 delete mode 100644 drivers/isdn/hisax/hfc_pci.h
 delete mode 100644 drivers/isdn/hisax/hfc_sx.c
 delete mode 100644 drivers/isdn/hisax/hfc_sx.h
 delete mode 100644 drivers/isdn/hisax/hfc_usb.c
 delete mode 100644 drivers/isdn/hisax/hfc_usb.h
 delete mode 100644 drivers/isdn/hisax/hfcscard.c
 delete mode 100644 drivers/isdn/hisax/hisax.h
 delete mode 100644 drivers/isdn/hisax/hisax_cfg.h
 delete mode 100644 drivers/isdn/hisax/hisax_debug.h
 delete mode 100644 drivers/isdn/hisax/hisax_fcpcipnp.c
 delete mode 100644 drivers/isdn/hisax/hisax_fcpcipnp.h
 delete mode 100644 drivers/isdn/hisax/hisax_if.h
 delete mode 100644 drivers/isdn/hisax/hisax_isac.c
 delete mode 100644 drivers/isdn/hisax/hisax_isac.h
 delete mode 100644 drivers/isdn/hisax/hscx.c
 delete mode 100644 drivers/isdn/hisax/hscx.h
 delete mode 100644 drivers/isdn/hisax/hscx_irq.c
 delete mode 100644 drivers/isdn/hisax/icc.c
 delete mode 100644 drivers/isdn/hisax/icc.h
 delete mode 100644 drivers/isdn/hisax/ipac.h
 delete mode 100644 drivers/isdn/hisax/ipacx.c
 delete mode 100644 drivers/isdn/hisax/ipacx.h
 delete mode 100644 drivers/isdn/hisax/isac.c
 delete mode 100644 drivers/isdn/hisax/isac.h
 delete mode 100644 drivers/isdn/hisax/isar.c
 delete mode 100644 drivers/isdn/hisax/isar.h
 delete mode 100644 drivers/isdn/hisax/isdnl1.c
 delete mode 100644 drivers/isdn/hisax/isdnl1.h
 delete mode 100644 drivers/isdn/hisax/isdnl2.c
 delete mode 100644 drivers/isdn/hisax/isdnl2.h
 delete mode 100644 drivers/isdn/hisax/isdnl3.c
 delete mode 100644 drivers/isdn/hisax/isdnl3.h
 delete mode 100644 drivers/isdn/hisax/isurf.c
 delete mode 100644 drivers/isdn/hisax/ix1_micro.c
 delete mode 100644 drivers/isdn/hisax/jade.c
 delete mode 100644 drivers/isdn/hisax/jade.h
 delete mode 100644 drivers/isdn/hisax/jade_irq.c
 delete mode 100644 drivers/isdn/hisax/l3_1tr6.c
 delete mode 100644 drivers/isdn/hisax/l3_1tr6.h
 delete mode 100644 drivers/isdn/hisax/l3dss1.c
 delete mode 100644 drivers/isdn/hisax/l3dss1.h
 delete mode 100644 drivers/isdn/hisax/l3ni1.c
 delete mode 100644 drivers/isdn/hisax/l3ni1.h
 delete mode 100644 drivers/isdn/hisax/lmgr.c
 delete mode 100644 drivers/isdn/hisax/mic.c
 delete mode 100644 drivers/isdn/hisax/netjet.c
 delete mode 100644 drivers/isdn/hisax/netjet.h
 delete mode 100644 drivers/isdn/hisax/niccy.c
 delete mode 100644 drivers/isdn/hisax/nj_s.c
 delete mode 100644 drivers/isdn/hisax/nj_u.c
 delete mode 100644 drivers/isdn/hisax/q931.c
 delete mode 100644 drivers/isdn/hisax/s0box.c
 delete mode 100644 drivers/isdn/hisax/saphir.c
 delete mode 100644 drivers/isdn/hisax/sedlbauer.c
 delete mode 100644 drivers/isdn/hisax/sedlbauer_cs.c
 delete mode 100644 drivers/isdn/hisax/sportster.c
 delete mode 100644 drivers/isdn/hisax/st5481.h
 delete mode 100644 drivers/isdn/hisax/st5481_b.c
 delete mode 100644 drivers/isdn/hisax/st5481_d.c
 delete mode 100644 drivers/isdn/hisax/st5481_init.c
 delete mode 100644 drivers/isdn/hisax/st5481_usb.c
 delete mode 100644 drivers/isdn/hisax/tei.c
 delete mode 100644 drivers/isdn/hisax/teleint.c
 delete mode 100644 drivers/isdn/hisax/teles0.c
 delete mode 100644 drivers/isdn/hisax/teles3.c
 delete mode 100644 drivers/isdn/hisax/teles_cs.c
 delete mode 100644 drivers/isdn/hisax/telespci.c
 delete mode 100644 drivers/isdn/hisax/w6692.c
 delete mode 100644 drivers/isdn/hisax/w6692.h
 delete mode 100644 drivers/isdn/i4l/Kconfig
 delete mode 100644 drivers/isdn/i4l/Makefile
 delete mode 100644 drivers/isdn/i4l/isdn_audio.c
 delete mode 100644 drivers/isdn/i4l/isdn_audio.h
 delete mode 100644 drivers/isdn/i4l/isdn_bsdcomp.c
 delete mode 100644 drivers/isdn/i4l/isdn_common.c
 delete mode 100644 drivers/isdn/i4l/isdn_common.h
 delete mode 100644 drivers/isdn/i4l/isdn_concap.c
 delete mode 100644 drivers/isdn/i4l/isdn_concap.h
 delete mode 100644 drivers/isdn/i4l/isdn_net.c
 delete mode 100644 drivers/isdn/i4l/isdn_net.h
 delete mode 100644 drivers/isdn/i4l/isdn_ppp.c
 delete mode 100644 drivers/isdn/i4l/isdn_ppp.h
 delete mode 100644 drivers/isdn/i4l/isdn_tty.c
 delete mode 100644 drivers/isdn/i4l/isdn_tty.h
 delete mode 100644 drivers/isdn/i4l/isdn_ttyfax.c
 delete mode 100644 drivers/isdn/i4l/isdn_ttyfax.h
 delete mode 100644 drivers/isdn/i4l/isdn_v110.c
 delete mode 100644 drivers/isdn/i4l/isdn_v110.h
 delete mode 100644 drivers/isdn/i4l/isdn_x25iface.c
 delete mode 100644 drivers/isdn/i4l/isdn_x25iface.h
 delete mode 100644 drivers/isdn/isdnloop/Makefile
 delete mode 100644 drivers/isdn/isdnloop/isdnloop.c
 delete mode 100644 drivers/isdn/isdnloop/isdnloop.h
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/CREDITS (100%)
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/INTERFACE.CAPI (100%)
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/README.avmb1 (100%)
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/README.gigaset (91%)
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/README.hysdn (100%)
 create mode 100644 drivers/staging/isdn/Kconfig
 create mode 100644 drivers/staging/isdn/Makefile
 create mode 100644 drivers/staging/isdn/TODO
 rename drivers/{isdn/hardware => staging/isdn}/avm/Kconfig (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/Makefile (86%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/avm_cs.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/avmcard.h (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1dma.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1isa.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1pci.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1pcmcia.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/c4.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/t1isa.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/t1pci.c (100%)
 rename drivers/{ => staging}/isdn/capi/Kconfig (78%)
 rename drivers/{ => staging}/isdn/capi/Makefile (83%)
 rename drivers/{ => staging}/isdn/capi/capi.c (100%)
 rename drivers/{ => staging}/isdn/capi/capilib.c (100%)
 rename drivers/{ => staging}/isdn/capi/capiutil.c (100%)
 rename drivers/{ => staging}/isdn/capi/kcapi.c (100%)
 rename drivers/{ => staging}/isdn/capi/kcapi.h (100%)
 rename drivers/{ => staging}/isdn/capi/kcapi_proc.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/Kconfig (72%)
 rename drivers/{ => staging}/isdn/gigaset/Makefile (62%)
 rename drivers/{ => staging}/isdn/gigaset/asyncdata.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/bas-gigaset.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/capi.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/common.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/ev-layer.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/gigaset.h (100%)
 rename drivers/{ => staging}/isdn/gigaset/interface.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/isocdata.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/proc.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/ser-gigaset.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/usb-gigaset.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/Kconfig (100%)
 rename drivers/{ => staging}/isdn/hysdn/Makefile (79%)
 rename drivers/{ => staging}/isdn/hysdn/boardergo.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/boardergo.h (100%)
 rename drivers/{ => staging}/isdn/hysdn/hycapi.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_boot.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_defs.h (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_init.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_net.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_pof.h (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_procconf.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_proclog.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_sched.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/ince1pc.h (100%)
 rename {include/uapi => drivers/staging/isdn/include}/linux/b1lli.h (100%)
 rename {include/uapi => drivers/staging/isdn/include}/linux/gigaset_dev.h (100%)
 rename {include => drivers/staging/isdn/include}/linux/isdn/capilli.h (100%)
 rename {include => drivers/staging/isdn/include}/linux/isdn/capiutil.h (100%)
 rename {include => drivers/staging/isdn/include}/uapi/linux/isdn/capicmd.h (100%)
 delete mode 100644 include/linux/concap.h
 delete mode 100644 include/linux/isdn.h
 delete mode 100644 include/linux/isdn_divertif.h
 delete mode 100644 include/linux/isdn_ppp.h
 delete mode 100644 include/linux/isdnif.h
 delete mode 100644 include/linux/wanrouter.h
 delete mode 100644 include/uapi/linux/isdn.h
 delete mode 100644 include/uapi/linux/isdn_divertif.h
 delete mode 100644 include/uapi/linux/isdn_ppp.h
 delete mode 100644 include/uapi/linux/isdnif.h
 delete mode 100644 include/uapi/linux/wanrouter.h

-- 
2.20.0

Comments

Arnd Bergmann April 23, 2019, 3:11 p.m. UTC | #1
When isdn4linux came up in the context of another patch series, I
remembered that we had discussed removing it a while ago.

It turns out that the suggestion from Karsten Keil wa to remove I4L
in 2018 after the last public ISDN networks are shut down. This has
happened now (with a very small number of exceptions), so I guess it's
time to try again.

We currently have three ISDN stacks in the kernel: the original
isdn4linux, the newer CAPI, and finally mISDN stack.

As far as I can tell, anyone using ISDN with mainline kernel drivers in
the past few years uses mISDN, and this is typically used for voice-only
PBX installations that don't require a public network.

The older stacks support additional features for data networks, but those
typically make no sense any more if there is no network to connect to.

My proposal for this time is to kill off isdn4linux entirely, as it seems
to have been unusable for quite a while. This code has been abandoned
for many years and it does get in the way of maintenance.

CAPI in turn is not quite as obsolete, but as I have been unable to find
any users, I would suggest moving it to drivers/staging while we
figure out if anyone is using it. If not, it can then be removed
as well. If it turns out that there are users that are on 5.x kernels
or need to update to them, we can decide to leave parts of it for
longer, or move them back.

If anyone is still using isdn4linux and CAPI with modern kernels, please
speak up now.

      Arnd

[1] https://patchwork.kernel.org/patch/8484861/#17900371

Arnd Bergmann (5):
  isdn: gigaset: remove i4l support
  isdn: remove hisax driver
  isdn: remove isdn4linux
  isdn: hdlc: move into mISDN
  isdn: move capi drivers to staging

 Documentation/isdn/HiSax.cert                 |   96 -
 Documentation/isdn/INTERFACE                  |  759 ----
 Documentation/isdn/INTERFACE.fax              |  163 -
 Documentation/isdn/README                     |  599 ---
 Documentation/isdn/README.FAQ                 |   26 -
 Documentation/isdn/README.HiSax               |  659 ---
 Documentation/isdn/README.audio               |  138 -
 Documentation/isdn/README.concap              |  259 --
 Documentation/isdn/README.diversion           |  127 -
 Documentation/isdn/README.fax                 |   45 -
 Documentation/isdn/README.hfc-pci             |   41 -
 Documentation/isdn/README.syncppp             |   58 -
 Documentation/isdn/README.x25                 |  184 -
 Documentation/isdn/syncPPP.FAQ                |  224 -
 Documentation/process/changes.rst             |   16 +-
 MAINTAINERS                                   |   18 +-
 drivers/isdn/Kconfig                          |   53 -
 drivers/isdn/Makefile                         |    7 -
 drivers/isdn/capi/capidrv.c                   | 2525 -----------
 drivers/isdn/capi/capidrv.h                   |  140 -
 drivers/isdn/divert/Makefile                  |    9 -
 drivers/isdn/divert/divert_init.c             |   82 -
 drivers/isdn/divert/divert_procfs.c           |  336 --
 drivers/isdn/divert/isdn_divert.c             |  846 ----
 drivers/isdn/divert/isdn_divert.h             |  132 -
 drivers/isdn/gigaset/dummyll.c                |   77 -
 drivers/isdn/gigaset/i4l.c                    |  695 ---
 drivers/isdn/hardware/Makefile                |    1 -
 drivers/isdn/hardware/mISDN/Kconfig           |    7 +-
 drivers/isdn/hardware/mISDN/Makefile          |    2 +
 .../isdn/{i4l => hardware/mISDN}/isdnhdlc.c   |    2 +-
 .../isdn/hardware/mISDN/isdnhdlc.h            |    0
 drivers/isdn/hardware/mISDN/netjet.c          |    2 +-
 drivers/isdn/hisax/Kconfig                    |  422 --
 drivers/isdn/hisax/Makefile                   |   60 -
 drivers/isdn/hisax/amd7930_fn.c               |  794 ----
 drivers/isdn/hisax/amd7930_fn.h               |   37 -
 drivers/isdn/hisax/arcofi.c                   |  131 -
 drivers/isdn/hisax/arcofi.h                   |   27 -
 drivers/isdn/hisax/asuscom.c                  |  423 --
 drivers/isdn/hisax/avm_a1.c                   |  307 --
 drivers/isdn/hisax/avm_a1p.c                  |  267 --
 drivers/isdn/hisax/avm_pci.c                  |  904 ----
 drivers/isdn/hisax/avma1_cs.c                 |  162 -
 drivers/isdn/hisax/bkm_a4t.c                  |  358 --
 drivers/isdn/hisax/bkm_a8.c                   |  433 --
 drivers/isdn/hisax/bkm_ax.h                   |  119 -
 drivers/isdn/hisax/callc.c                    | 1792 --------
 drivers/isdn/hisax/config.c                   | 1993 ---------
 drivers/isdn/hisax/diva.c                     | 1282 ------
 drivers/isdn/hisax/elsa.c                     | 1245 ------
 drivers/isdn/hisax/elsa_cs.c                  |  218 -
 drivers/isdn/hisax/elsa_ser.c                 |  659 ---
 drivers/isdn/hisax/enternow_pci.c             |  420 --
 drivers/isdn/hisax/fsm.c                      |  161 -
 drivers/isdn/hisax/fsm.h                      |   61 -
 drivers/isdn/hisax/gazel.c                    |  691 ---
 drivers/isdn/hisax/hfc4s8s_l1.c               | 1584 -------
 drivers/isdn/hisax/hfc4s8s_l1.h               |   89 -
 drivers/isdn/hisax/hfc_2bds0.c                | 1078 -----
 drivers/isdn/hisax/hfc_2bds0.h                |  128 -
 drivers/isdn/hisax/hfc_2bs0.c                 |  591 ---
 drivers/isdn/hisax/hfc_2bs0.h                 |   60 -
 drivers/isdn/hisax/hfc_pci.c                  | 1755 --------
 drivers/isdn/hisax/hfc_pci.h                  |  235 --
 drivers/isdn/hisax/hfc_sx.c                   | 1517 -------
 drivers/isdn/hisax/hfc_sx.h                   |  196 -
 drivers/isdn/hisax/hfc_usb.c                  | 1608 -------
 drivers/isdn/hisax/hfc_usb.h                  |  208 -
 drivers/isdn/hisax/hfcscard.c                 |  261 --
 drivers/isdn/hisax/hisax.h                    | 1352 ------
 drivers/isdn/hisax/hisax_cfg.h                |   66 -
 drivers/isdn/hisax/hisax_debug.h              |   80 -
 drivers/isdn/hisax/hisax_fcpcipnp.c           | 1024 -----
 drivers/isdn/hisax/hisax_fcpcipnp.h           |   58 -
 drivers/isdn/hisax/hisax_if.h                 |   66 -
 drivers/isdn/hisax/hisax_isac.c               |  895 ----
 drivers/isdn/hisax/hisax_isac.h               |   46 -
 drivers/isdn/hisax/hscx.c                     |  277 --
 drivers/isdn/hisax/hscx.h                     |   41 -
 drivers/isdn/hisax/hscx_irq.c                 |  294 --
 drivers/isdn/hisax/icc.c                      |  680 ---
 drivers/isdn/hisax/icc.h                      |   72 -
 drivers/isdn/hisax/ipac.h                     |   29 -
 drivers/isdn/hisax/ipacx.c                    |  913 ----
 drivers/isdn/hisax/ipacx.h                    |  162 -
 drivers/isdn/hisax/isac.c                     |  681 ---
 drivers/isdn/hisax/isac.h                     |   70 -
 drivers/isdn/hisax/isar.c                     | 1910 ---------
 drivers/isdn/hisax/isar.h                     |  222 -
 drivers/isdn/hisax/isdnl1.c                   |  930 ----
 drivers/isdn/hisax/isdnl1.h                   |   32 -
 drivers/isdn/hisax/isdnl2.c                   | 1839 --------
 drivers/isdn/hisax/isdnl2.h                   |   25 -
 drivers/isdn/hisax/isdnl3.c                   |  594 ---
 drivers/isdn/hisax/isdnl3.h                   |   42 -
 drivers/isdn/hisax/isurf.c                    |  305 --
 drivers/isdn/hisax/ix1_micro.c                |  316 --
 drivers/isdn/hisax/jade.c                     |  305 --
 drivers/isdn/hisax/jade.h                     |  134 -
 drivers/isdn/hisax/jade_irq.c                 |  238 --
 drivers/isdn/hisax/l3_1tr6.c                  |  932 ----
 drivers/isdn/hisax/l3_1tr6.h                  |  164 -
 drivers/isdn/hisax/l3dss1.c                   | 3227 --------------
 drivers/isdn/hisax/l3dss1.h                   |  124 -
 drivers/isdn/hisax/l3ni1.c                    | 3182 --------------
 drivers/isdn/hisax/l3ni1.h                    |  136 -
 drivers/isdn/hisax/lmgr.c                     |   50 -
 drivers/isdn/hisax/mic.c                      |  235 --
 drivers/isdn/hisax/netjet.c                   |  985 -----
 drivers/isdn/hisax/netjet.h                   |   69 -
 drivers/isdn/hisax/niccy.c                    |  380 --
 drivers/isdn/hisax/nj_s.c                     |  294 --
 drivers/isdn/hisax/nj_u.c                     |  258 --
 drivers/isdn/hisax/q931.c                     | 1513 -------
 drivers/isdn/hisax/s0box.c                    |  260 --
 drivers/isdn/hisax/saphir.c                   |  296 --
 drivers/isdn/hisax/sedlbauer.c                |  873 ----
 drivers/isdn/hisax/sedlbauer_cs.c             |  209 -
 drivers/isdn/hisax/sportster.c                |  267 --
 drivers/isdn/hisax/st5481.h                   |  529 ---
 drivers/isdn/hisax/st5481_b.c                 |  380 --
 drivers/isdn/hisax/st5481_d.c                 |  780 ----
 drivers/isdn/hisax/st5481_init.c              |  221 -
 drivers/isdn/hisax/st5481_usb.c               |  659 ---
 drivers/isdn/hisax/tei.c                      |  465 --
 drivers/isdn/hisax/teleint.c                  |  334 --
 drivers/isdn/hisax/teles0.c                   |  364 --
 drivers/isdn/hisax/teles3.c                   |  498 ---
 drivers/isdn/hisax/teles_cs.c                 |  200 -
 drivers/isdn/hisax/telespci.c                 |  349 --
 drivers/isdn/hisax/w6692.c                    | 1085 -----
 drivers/isdn/hisax/w6692.h                    |  184 -
 drivers/isdn/i4l/Kconfig                      |  128 -
 drivers/isdn/i4l/Makefile                     |   20 -
 drivers/isdn/i4l/isdn_audio.c                 |  711 ----
 drivers/isdn/i4l/isdn_audio.h                 |   44 -
 drivers/isdn/i4l/isdn_bsdcomp.c               |  930 ----
 drivers/isdn/i4l/isdn_common.c                | 2368 -----------
 drivers/isdn/i4l/isdn_common.h                |   47 -
 drivers/isdn/i4l/isdn_concap.c                |   99 -
 drivers/isdn/i4l/isdn_concap.h                |   11 -
 drivers/isdn/i4l/isdn_net.c                   | 3198 --------------
 drivers/isdn/i4l/isdn_net.h                   |  151 -
 drivers/isdn/i4l/isdn_ppp.c                   | 3053 --------------
 drivers/isdn/i4l/isdn_ppp.h                   |   41 -
 drivers/isdn/i4l/isdn_tty.c                   | 3756 -----------------
 drivers/isdn/i4l/isdn_tty.h                   |  120 -
 drivers/isdn/i4l/isdn_ttyfax.c                | 1123 -----
 drivers/isdn/i4l/isdn_ttyfax.h                |   17 -
 drivers/isdn/i4l/isdn_v110.c                  |  625 ---
 drivers/isdn/i4l/isdn_v110.h                  |   29 -
 drivers/isdn/i4l/isdn_x25iface.c              |  332 --
 drivers/isdn/i4l/isdn_x25iface.h              |   30 -
 drivers/isdn/isdnloop/Makefile                |    5 -
 drivers/isdn/isdnloop/isdnloop.c              | 1528 -------
 drivers/isdn/isdnloop/isdnloop.h              |  112 -
 drivers/staging/Kconfig                       |    2 +
 drivers/staging/Makefile                      |    1 +
 .../staging/isdn/Documentation}/CREDITS       |    0
 .../isdn/Documentation}/INTERFACE.CAPI        |    0
 .../staging/isdn/Documentation}/README.avmb1  |    0
 .../isdn/Documentation}/README.gigaset        |   36 +-
 .../staging/isdn/Documentation}/README.hysdn  |    0
 drivers/staging/isdn/Kconfig                  |   28 +
 drivers/staging/isdn/Makefile                 |    9 +
 drivers/staging/isdn/TODO                     |   22 +
 .../hardware => staging/isdn}/avm/Kconfig     |    0
 .../hardware => staging/isdn}/avm/Makefile    |    2 +
 .../hardware => staging/isdn}/avm/avm_cs.c    |    0
 .../hardware => staging/isdn}/avm/avmcard.h   |    0
 .../{isdn/hardware => staging/isdn}/avm/b1.c  |    0
 .../hardware => staging/isdn}/avm/b1dma.c     |    0
 .../hardware => staging/isdn}/avm/b1isa.c     |    0
 .../hardware => staging/isdn}/avm/b1pci.c     |    0
 .../hardware => staging/isdn}/avm/b1pcmcia.c  |    0
 .../{isdn/hardware => staging/isdn}/avm/c4.c  |    0
 .../hardware => staging/isdn}/avm/t1isa.c     |    0
 .../hardware => staging/isdn}/avm/t1pci.c     |    0
 drivers/{ => staging}/isdn/capi/Kconfig       |    9 -
 drivers/{ => staging}/isdn/capi/Makefile      |    2 +
 drivers/{ => staging}/isdn/capi/capi.c        |    0
 drivers/{ => staging}/isdn/capi/capilib.c     |    0
 drivers/{ => staging}/isdn/capi/capiutil.c    |    0
 drivers/{ => staging}/isdn/capi/kcapi.c       |    0
 drivers/{ => staging}/isdn/capi/kcapi.h       |    0
 drivers/{ => staging}/isdn/capi/kcapi_proc.c  |    0
 drivers/{ => staging}/isdn/gigaset/Kconfig    |   22 +-
 drivers/{ => staging}/isdn/gigaset/Makefile   |    7 +-
 .../{ => staging}/isdn/gigaset/asyncdata.c    |    0
 .../{ => staging}/isdn/gigaset/bas-gigaset.c  |    0
 drivers/{ => staging}/isdn/gigaset/capi.c     |    0
 drivers/{ => staging}/isdn/gigaset/common.c   |    0
 drivers/{ => staging}/isdn/gigaset/ev-layer.c |    0
 drivers/{ => staging}/isdn/gigaset/gigaset.h  |    0
 .../{ => staging}/isdn/gigaset/interface.c    |    0
 drivers/{ => staging}/isdn/gigaset/isocdata.c |    0
 drivers/{ => staging}/isdn/gigaset/proc.c     |    0
 .../{ => staging}/isdn/gigaset/ser-gigaset.c  |    0
 .../{ => staging}/isdn/gigaset/usb-gigaset.c  |    0
 drivers/{ => staging}/isdn/hysdn/Kconfig      |    0
 drivers/{ => staging}/isdn/hysdn/Makefile     |    2 +
 drivers/{ => staging}/isdn/hysdn/boardergo.c  |    0
 drivers/{ => staging}/isdn/hysdn/boardergo.h  |    0
 drivers/{ => staging}/isdn/hysdn/hycapi.c     |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_boot.c |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_defs.h |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_init.c |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_net.c  |    0
 drivers/{ => staging}/isdn/hysdn/hysdn_pof.h  |    0
 .../{ => staging}/isdn/hysdn/hysdn_procconf.c |    0
 .../{ => staging}/isdn/hysdn/hysdn_proclog.c  |    0
 .../{ => staging}/isdn/hysdn/hysdn_sched.c    |    0
 drivers/{ => staging}/isdn/hysdn/ince1pc.h    |    0
 .../staging/isdn/include}/linux/b1lli.h       |    0
 .../staging/isdn/include}/linux/gigaset_dev.h |    0
 .../isdn/include}/linux/isdn/capilli.h        |    0
 .../isdn/include}/linux/isdn/capiutil.h       |    0
 .../isdn/include}/uapi/linux/isdn/capicmd.h   |    0
 include/linux/concap.h                        |  112 -
 include/linux/isdn.h                          |  473 ---
 include/linux/isdn_divertif.h                 |   35 -
 include/linux/isdn_ppp.h                      |  194 -
 include/linux/isdnif.h                        |  505 ---
 include/linux/wanrouter.h                     |   11 -
 include/uapi/linux/isdn.h                     |  144 -
 include/uapi/linux/isdn_divertif.h            |   31 -
 include/uapi/linux/isdn_ppp.h                 |   68 -
 include/uapi/linux/isdnif.h                   |   57 -
 include/uapi/linux/wanrouter.h                |   18 -
 230 files changed, 102 insertions(+), 83970 deletions(-)
 delete mode 100644 Documentation/isdn/HiSax.cert
 delete mode 100644 Documentation/isdn/INTERFACE
 delete mode 100644 Documentation/isdn/INTERFACE.fax
 delete mode 100644 Documentation/isdn/README
 delete mode 100644 Documentation/isdn/README.FAQ
 delete mode 100644 Documentation/isdn/README.HiSax
 delete mode 100644 Documentation/isdn/README.audio
 delete mode 100644 Documentation/isdn/README.concap
 delete mode 100644 Documentation/isdn/README.diversion
 delete mode 100644 Documentation/isdn/README.fax
 delete mode 100644 Documentation/isdn/README.hfc-pci
 delete mode 100644 Documentation/isdn/README.syncppp
 delete mode 100644 Documentation/isdn/README.x25
 delete mode 100644 Documentation/isdn/syncPPP.FAQ
 delete mode 100644 drivers/isdn/capi/capidrv.c
 delete mode 100644 drivers/isdn/capi/capidrv.h
 delete mode 100644 drivers/isdn/divert/Makefile
 delete mode 100644 drivers/isdn/divert/divert_init.c
 delete mode 100644 drivers/isdn/divert/divert_procfs.c
 delete mode 100644 drivers/isdn/divert/isdn_divert.c
 delete mode 100644 drivers/isdn/divert/isdn_divert.h
 delete mode 100644 drivers/isdn/gigaset/dummyll.c
 delete mode 100644 drivers/isdn/gigaset/i4l.c
 rename drivers/isdn/{i4l => hardware/mISDN}/isdnhdlc.c (99%)
 rename include/linux/isdn/hdlc.h => drivers/isdn/hardware/mISDN/isdnhdlc.h (100%)
 delete mode 100644 drivers/isdn/hisax/Kconfig
 delete mode 100644 drivers/isdn/hisax/Makefile
 delete mode 100644 drivers/isdn/hisax/amd7930_fn.c
 delete mode 100644 drivers/isdn/hisax/amd7930_fn.h
 delete mode 100644 drivers/isdn/hisax/arcofi.c
 delete mode 100644 drivers/isdn/hisax/arcofi.h
 delete mode 100644 drivers/isdn/hisax/asuscom.c
 delete mode 100644 drivers/isdn/hisax/avm_a1.c
 delete mode 100644 drivers/isdn/hisax/avm_a1p.c
 delete mode 100644 drivers/isdn/hisax/avm_pci.c
 delete mode 100644 drivers/isdn/hisax/avma1_cs.c
 delete mode 100644 drivers/isdn/hisax/bkm_a4t.c
 delete mode 100644 drivers/isdn/hisax/bkm_a8.c
 delete mode 100644 drivers/isdn/hisax/bkm_ax.h
 delete mode 100644 drivers/isdn/hisax/callc.c
 delete mode 100644 drivers/isdn/hisax/config.c
 delete mode 100644 drivers/isdn/hisax/diva.c
 delete mode 100644 drivers/isdn/hisax/elsa.c
 delete mode 100644 drivers/isdn/hisax/elsa_cs.c
 delete mode 100644 drivers/isdn/hisax/elsa_ser.c
 delete mode 100644 drivers/isdn/hisax/enternow_pci.c
 delete mode 100644 drivers/isdn/hisax/fsm.c
 delete mode 100644 drivers/isdn/hisax/fsm.h
 delete mode 100644 drivers/isdn/hisax/gazel.c
 delete mode 100644 drivers/isdn/hisax/hfc4s8s_l1.c
 delete mode 100644 drivers/isdn/hisax/hfc4s8s_l1.h
 delete mode 100644 drivers/isdn/hisax/hfc_2bds0.c
 delete mode 100644 drivers/isdn/hisax/hfc_2bds0.h
 delete mode 100644 drivers/isdn/hisax/hfc_2bs0.c
 delete mode 100644 drivers/isdn/hisax/hfc_2bs0.h
 delete mode 100644 drivers/isdn/hisax/hfc_pci.c
 delete mode 100644 drivers/isdn/hisax/hfc_pci.h
 delete mode 100644 drivers/isdn/hisax/hfc_sx.c
 delete mode 100644 drivers/isdn/hisax/hfc_sx.h
 delete mode 100644 drivers/isdn/hisax/hfc_usb.c
 delete mode 100644 drivers/isdn/hisax/hfc_usb.h
 delete mode 100644 drivers/isdn/hisax/hfcscard.c
 delete mode 100644 drivers/isdn/hisax/hisax.h
 delete mode 100644 drivers/isdn/hisax/hisax_cfg.h
 delete mode 100644 drivers/isdn/hisax/hisax_debug.h
 delete mode 100644 drivers/isdn/hisax/hisax_fcpcipnp.c
 delete mode 100644 drivers/isdn/hisax/hisax_fcpcipnp.h
 delete mode 100644 drivers/isdn/hisax/hisax_if.h
 delete mode 100644 drivers/isdn/hisax/hisax_isac.c
 delete mode 100644 drivers/isdn/hisax/hisax_isac.h
 delete mode 100644 drivers/isdn/hisax/hscx.c
 delete mode 100644 drivers/isdn/hisax/hscx.h
 delete mode 100644 drivers/isdn/hisax/hscx_irq.c
 delete mode 100644 drivers/isdn/hisax/icc.c
 delete mode 100644 drivers/isdn/hisax/icc.h
 delete mode 100644 drivers/isdn/hisax/ipac.h
 delete mode 100644 drivers/isdn/hisax/ipacx.c
 delete mode 100644 drivers/isdn/hisax/ipacx.h
 delete mode 100644 drivers/isdn/hisax/isac.c
 delete mode 100644 drivers/isdn/hisax/isac.h
 delete mode 100644 drivers/isdn/hisax/isar.c
 delete mode 100644 drivers/isdn/hisax/isar.h
 delete mode 100644 drivers/isdn/hisax/isdnl1.c
 delete mode 100644 drivers/isdn/hisax/isdnl1.h
 delete mode 100644 drivers/isdn/hisax/isdnl2.c
 delete mode 100644 drivers/isdn/hisax/isdnl2.h
 delete mode 100644 drivers/isdn/hisax/isdnl3.c
 delete mode 100644 drivers/isdn/hisax/isdnl3.h
 delete mode 100644 drivers/isdn/hisax/isurf.c
 delete mode 100644 drivers/isdn/hisax/ix1_micro.c
 delete mode 100644 drivers/isdn/hisax/jade.c
 delete mode 100644 drivers/isdn/hisax/jade.h
 delete mode 100644 drivers/isdn/hisax/jade_irq.c
 delete mode 100644 drivers/isdn/hisax/l3_1tr6.c
 delete mode 100644 drivers/isdn/hisax/l3_1tr6.h
 delete mode 100644 drivers/isdn/hisax/l3dss1.c
 delete mode 100644 drivers/isdn/hisax/l3dss1.h
 delete mode 100644 drivers/isdn/hisax/l3ni1.c
 delete mode 100644 drivers/isdn/hisax/l3ni1.h
 delete mode 100644 drivers/isdn/hisax/lmgr.c
 delete mode 100644 drivers/isdn/hisax/mic.c
 delete mode 100644 drivers/isdn/hisax/netjet.c
 delete mode 100644 drivers/isdn/hisax/netjet.h
 delete mode 100644 drivers/isdn/hisax/niccy.c
 delete mode 100644 drivers/isdn/hisax/nj_s.c
 delete mode 100644 drivers/isdn/hisax/nj_u.c
 delete mode 100644 drivers/isdn/hisax/q931.c
 delete mode 100644 drivers/isdn/hisax/s0box.c
 delete mode 100644 drivers/isdn/hisax/saphir.c
 delete mode 100644 drivers/isdn/hisax/sedlbauer.c
 delete mode 100644 drivers/isdn/hisax/sedlbauer_cs.c
 delete mode 100644 drivers/isdn/hisax/sportster.c
 delete mode 100644 drivers/isdn/hisax/st5481.h
 delete mode 100644 drivers/isdn/hisax/st5481_b.c
 delete mode 100644 drivers/isdn/hisax/st5481_d.c
 delete mode 100644 drivers/isdn/hisax/st5481_init.c
 delete mode 100644 drivers/isdn/hisax/st5481_usb.c
 delete mode 100644 drivers/isdn/hisax/tei.c
 delete mode 100644 drivers/isdn/hisax/teleint.c
 delete mode 100644 drivers/isdn/hisax/teles0.c
 delete mode 100644 drivers/isdn/hisax/teles3.c
 delete mode 100644 drivers/isdn/hisax/teles_cs.c
 delete mode 100644 drivers/isdn/hisax/telespci.c
 delete mode 100644 drivers/isdn/hisax/w6692.c
 delete mode 100644 drivers/isdn/hisax/w6692.h
 delete mode 100644 drivers/isdn/i4l/Kconfig
 delete mode 100644 drivers/isdn/i4l/Makefile
 delete mode 100644 drivers/isdn/i4l/isdn_audio.c
 delete mode 100644 drivers/isdn/i4l/isdn_audio.h
 delete mode 100644 drivers/isdn/i4l/isdn_bsdcomp.c
 delete mode 100644 drivers/isdn/i4l/isdn_common.c
 delete mode 100644 drivers/isdn/i4l/isdn_common.h
 delete mode 100644 drivers/isdn/i4l/isdn_concap.c
 delete mode 100644 drivers/isdn/i4l/isdn_concap.h
 delete mode 100644 drivers/isdn/i4l/isdn_net.c
 delete mode 100644 drivers/isdn/i4l/isdn_net.h
 delete mode 100644 drivers/isdn/i4l/isdn_ppp.c
 delete mode 100644 drivers/isdn/i4l/isdn_ppp.h
 delete mode 100644 drivers/isdn/i4l/isdn_tty.c
 delete mode 100644 drivers/isdn/i4l/isdn_tty.h
 delete mode 100644 drivers/isdn/i4l/isdn_ttyfax.c
 delete mode 100644 drivers/isdn/i4l/isdn_ttyfax.h
 delete mode 100644 drivers/isdn/i4l/isdn_v110.c
 delete mode 100644 drivers/isdn/i4l/isdn_v110.h
 delete mode 100644 drivers/isdn/i4l/isdn_x25iface.c
 delete mode 100644 drivers/isdn/i4l/isdn_x25iface.h
 delete mode 100644 drivers/isdn/isdnloop/Makefile
 delete mode 100644 drivers/isdn/isdnloop/isdnloop.c
 delete mode 100644 drivers/isdn/isdnloop/isdnloop.h
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/CREDITS (100%)
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/INTERFACE.CAPI (100%)
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/README.avmb1 (100%)
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/README.gigaset (91%)
 rename {Documentation/isdn => drivers/staging/isdn/Documentation}/README.hysdn (100%)
 create mode 100644 drivers/staging/isdn/Kconfig
 create mode 100644 drivers/staging/isdn/Makefile
 create mode 100644 drivers/staging/isdn/TODO
 rename drivers/{isdn/hardware => staging/isdn}/avm/Kconfig (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/Makefile (86%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/avm_cs.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/avmcard.h (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1dma.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1isa.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1pci.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/b1pcmcia.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/c4.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/t1isa.c (100%)
 rename drivers/{isdn/hardware => staging/isdn}/avm/t1pci.c (100%)
 rename drivers/{ => staging}/isdn/capi/Kconfig (78%)
 rename drivers/{ => staging}/isdn/capi/Makefile (83%)
 rename drivers/{ => staging}/isdn/capi/capi.c (100%)
 rename drivers/{ => staging}/isdn/capi/capilib.c (100%)
 rename drivers/{ => staging}/isdn/capi/capiutil.c (100%)
 rename drivers/{ => staging}/isdn/capi/kcapi.c (100%)
 rename drivers/{ => staging}/isdn/capi/kcapi.h (100%)
 rename drivers/{ => staging}/isdn/capi/kcapi_proc.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/Kconfig (72%)
 rename drivers/{ => staging}/isdn/gigaset/Makefile (62%)
 rename drivers/{ => staging}/isdn/gigaset/asyncdata.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/bas-gigaset.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/capi.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/common.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/ev-layer.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/gigaset.h (100%)
 rename drivers/{ => staging}/isdn/gigaset/interface.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/isocdata.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/proc.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/ser-gigaset.c (100%)
 rename drivers/{ => staging}/isdn/gigaset/usb-gigaset.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/Kconfig (100%)
 rename drivers/{ => staging}/isdn/hysdn/Makefile (79%)
 rename drivers/{ => staging}/isdn/hysdn/boardergo.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/boardergo.h (100%)
 rename drivers/{ => staging}/isdn/hysdn/hycapi.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_boot.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_defs.h (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_init.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_net.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_pof.h (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_procconf.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_proclog.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/hysdn_sched.c (100%)
 rename drivers/{ => staging}/isdn/hysdn/ince1pc.h (100%)
 rename {include/uapi => drivers/staging/isdn/include}/linux/b1lli.h (100%)
 rename {include/uapi => drivers/staging/isdn/include}/linux/gigaset_dev.h (100%)
 rename {include => drivers/staging/isdn/include}/linux/isdn/capilli.h (100%)
 rename {include => drivers/staging/isdn/include}/linux/isdn/capiutil.h (100%)
 rename {include => drivers/staging/isdn/include}/uapi/linux/isdn/capicmd.h (100%)
 delete mode 100644 include/linux/concap.h
 delete mode 100644 include/linux/isdn.h
 delete mode 100644 include/linux/isdn_divertif.h
 delete mode 100644 include/linux/isdn_ppp.h
 delete mode 100644 include/linux/isdnif.h
 delete mode 100644 include/linux/wanrouter.h
 delete mode 100644 include/uapi/linux/isdn.h
 delete mode 100644 include/uapi/linux/isdn_divertif.h
 delete mode 100644 include/uapi/linux/isdn_ppp.h
 delete mode 100644 include/uapi/linux/isdnif.h
 delete mode 100644 include/uapi/linux/wanrouter.h

-- 
2.20.0
David Miller April 24, 2019, 2:37 a.m. UTC | #2
From: Arnd Bergmann <arnd@arndb.de>

Date: Tue, 23 Apr 2019 17:11:32 +0200

> When isdn4linux came up in the context of another patch series, I

> remembered that we had discussed removing it a while ago.


This seems long overdue to me.

Could you please respin against net-next and I'll just apply this?

Thank you.
Simon Horman April 24, 2019, 7:56 a.m. UTC | #3
Hi Arnd,

On Tue, Apr 23, 2019 at 05:11:32PM +0200, Arnd Bergmann wrote:
> When isdn4linux came up in the context of another patch series, I

> remembered that we had discussed removing it a while ago.

> 

> It turns out that the suggestion from Karsten Keil wa to remove I4L

> in 2018 after the last public ISDN networks are shut down. This has

> happened now (with a very small number of exceptions), so I guess it's

> time to try again.

> 

> We currently have three ISDN stacks in the kernel: the original

> isdn4linux, the newer CAPI, and finally mISDN stack.

> 

> As far as I can tell, anyone using ISDN with mainline kernel drivers in

> the past few years uses mISDN, and this is typically used for voice-only

> PBX installations that don't require a public network.

> 

> The older stacks support additional features for data networks, but those

> typically make no sense any more if there is no network to connect to.

> 

> My proposal for this time is to kill off isdn4linux entirely, as it seems

> to have been unusable for quite a while. This code has been abandoned

> for many years and it does get in the way of maintenance.


I think there is an editing error somewhere above. Perhaps it should read

... and it does not get anything in the way of maintenance.

> CAPI in turn is not quite as obsolete, but as I have been unable to find

> any users, I would suggest moving it to drivers/staging while we

> figure out if anyone is using it. If not, it can then be removed

> as well. If it turns out that there are users that are on 5.x kernels

> or need to update to them, we can decide to leave parts of it for

> longer, or move them back.

> 

> If anyone is still using isdn4linux and CAPI with modern kernels, please

> speak up now.

> 

>       Arnd

> 

> [1] https://patchwork.kernel.org/patch/8484861/#17900371


...
Arnd Bergmann April 24, 2019, 8:14 a.m. UTC | #4
On Wed, Apr 24, 2019 at 9:56 AM Simon Horman <horms@verge.net.au> wrote:
>

> Hi Arnd,

>

> On Tue, Apr 23, 2019 at 05:11:32PM +0200, Arnd Bergmann wrote:

> > When isdn4linux came up in the context of another patch series, I

> > remembered that we had discussed removing it a while ago.

> >

> > It turns out that the suggestion from Karsten Keil wa to remove I4L

> > in 2018 after the last public ISDN networks are shut down. This has

> > happened now (with a very small number of exceptions), so I guess it's

> > time to try again.

> >

> > We currently have three ISDN stacks in the kernel: the original

> > isdn4linux, the newer CAPI, and finally mISDN stack.

> >

> > As far as I can tell, anyone using ISDN with mainline kernel drivers in

> > the past few years uses mISDN, and this is typically used for voice-only

> > PBX installations that don't require a public network.

> >

> > The older stacks support additional features for data networks, but those

> > typically make no sense any more if there is no network to connect to.

> >

> > My proposal for this time is to kill off isdn4linux entirely, as it seems

> > to have been unusable for quite a while. This code has been abandoned

> > for many years and it does get in the way of maintenance.

>

> I think there is an editing error somewhere above. Perhaps it should read

>

> ... and it does not get anything in the way of maintenance.


This is certainly a true statement as well, but what I meant is that
the presence of isdn4linux in the kernel is causing extra work whenever
we want to do treewide changes. I'll rephrase to make that clearer.

Thanks for your review!

        Arnd
Arnd Bergmann April 24, 2019, 8:42 a.m. UTC | #5
On Wed, Apr 24, 2019 at 4:37 AM David Miller <davem@davemloft.net> wrote:
>

> From: Arnd Bergmann <arnd@arndb.de>

> Date: Tue, 23 Apr 2019 17:11:32 +0200

>

> > When isdn4linux came up in the context of another patch series, I

> > remembered that we had discussed removing it a while ago.

>

> This seems long overdue to me.

>

> Could you please respin against net-next and I'll just apply this?


Ok. I'll send a pull request then, which should make it easier to deal with
the file removals, as I'm never sure whether 'git format-patch -D' patches
make it across the list correctly, at least I had problems applying them
in the past.

I added a few fixups as in the diff below in the meantime, to deal
with build regressions from the last patch. In particular, the BT_CMTP
(CIP) code also needs to be moved into staging along with the CAPI
core. From what I can find, this was originally used for dial-up
internet connections with 'Bluefritz' ISDN hardware, but it stopped
working many years ago and is no longer useful with after the
public network shutdown either.

     Arnd


diff --git a/drivers/staging/isdn/Kconfig b/drivers/staging/isdn/Kconfig
index 77e1b80af716..29d13fcd9e2b 100644
--- a/drivers/staging/isdn/Kconfig
+++ b/drivers/staging/isdn/Kconfig
@@ -1,5 +1,6 @@
 menuconfig ISDN_CAPI
  tristate "CAPI 2.0 subsystem"
+ depends on NET && NETDEVICES
  help
    This provides CAPI (the Common ISDN Application Programming
    Interface) Version 2.0, a standard making it easy for programs to
@@ -23,6 +24,7 @@ source "drivers/staging/isdn/gigaset/Kconfig"

 source "drivers/staging/isdn/hysdn/Kconfig"

+source "drivers/staging/isdn/cmtp/Kconfig"

 endif # ISDN_CAPI

diff --git a/drivers/staging/isdn/Makefile b/drivers/staging/isdn/Makefile
index c5e8b8004f65..a74e9163f3c8 100644
--- a/drivers/staging/isdn/Makefile
+++ b/drivers/staging/isdn/Makefile
@@ -7,3 +7,4 @@ obj-$(CONFIG_ISDN_CAPI) += capi/
 obj-$(CONFIG_CAPI_AVM) += avm/
 obj-$(CONFIG_HYSDN) += hysdn/
 obj-$(CONFIG_ISDN_DRV_GIGASET) += gigaset/
+obj-$(CONFIG_BT_CMTP) += cmtp/
diff --git a/net/bluetooth/cmtp/Kconfig b/drivers/staging/isdn/cmtp/Kconfig
similarity index 88%
rename from net/bluetooth/cmtp/Kconfig
rename to drivers/staging/isdn/cmtp/Kconfig
index 939da0fbdd88..1772ca952720 100644
--- a/net/bluetooth/cmtp/Kconfig
+++ b/drivers/staging/isdn/cmtp/Kconfig
@@ -1,6 +1,6 @@
 config BT_CMTP
  tristate "CMTP protocol support"
- depends on BT_BREDR && ISDN_CAPI
+ depends on BT && BT_BREDR && ISDN_CAPI
  help
    CMTP (CAPI Message Transport Protocol) is a transport layer
    for CAPI messages.  CMTP is required for the Bluetooth Common
diff --git a/net/bluetooth/cmtp/Makefile b/drivers/staging/isdn/cmtp/Makefile
similarity index 59%
rename from net/bluetooth/cmtp/Makefile
rename to drivers/staging/isdn/cmtp/Makefile
index 890a9a5a6861..23258b46753c 100644
--- a/net/bluetooth/cmtp/Makefile
+++ b/drivers/staging/isdn/cmtp/Makefile
@@ -5,3 +5,5 @@
 obj-$(CONFIG_BT_CMTP) += cmtp.o

 cmtp-objs := core.o sock.o capi.o
+
+ccflags-y += -I$(srctree)/$(src)/../include -I$(srctree)/$(src)/../include/uapi
diff --git a/net/bluetooth/cmtp/capi.c b/drivers/staging/isdn/cmtp/capi.c
similarity index 100%
rename from net/bluetooth/cmtp/capi.c
rename to drivers/staging/isdn/cmtp/capi.c
diff --git a/net/bluetooth/cmtp/cmtp.h b/drivers/staging/isdn/cmtp/cmtp.h
similarity index 100%
rename from net/bluetooth/cmtp/cmtp.h
rename to drivers/staging/isdn/cmtp/cmtp.h
diff --git a/net/bluetooth/cmtp/core.c b/drivers/staging/isdn/cmtp/core.c
similarity index 100%
rename from net/bluetooth/cmtp/core.c
rename to drivers/staging/isdn/cmtp/core.c
diff --git a/net/bluetooth/cmtp/sock.c b/drivers/staging/isdn/cmtp/sock.c
similarity index 100%
rename from net/bluetooth/cmtp/sock.c
rename to drivers/staging/isdn/cmtp/sock.c
diff --git a/net/bluetooth/Kconfig b/net/bluetooth/Kconfig
index db82a40875e8..f3bfd9ec5e32 100644
--- a/net/bluetooth/Kconfig
+++ b/net/bluetooth/Kconfig
@@ -55,8 +55,6 @@ source "net/bluetooth/rfcomm/Kconfig"

 source "net/bluetooth/bnep/Kconfig"

-source "net/bluetooth/cmtp/Kconfig"
-
 source "net/bluetooth/hidp/Kconfig"

 config BT_HS
diff --git a/net/bluetooth/Makefile b/net/bluetooth/Makefile
index fda41c0b4781..7fdd758f0395 100644
--- a/net/bluetooth/Makefile
+++ b/net/bluetooth/Makefile
@@ -6,7 +6,6 @@
 obj-$(CONFIG_BT) += bluetooth.o
 obj-$(CONFIG_BT_RFCOMM) += rfcomm/
 obj-$(CONFIG_BT_BNEP) += bnep/
-obj-$(CONFIG_BT_CMTP) += cmtp/
 obj-$(CONFIG_BT_HIDP) += hidp/
 obj-$(CONFIG_BT_6LOWPAN) += bluetooth_6lowpan.o
Paul Bolle April 24, 2019, 8:47 a.m. UTC | #6
Arnd Bergmann schreef op di 23-04-2019 om 17:11 [+0200]:
> When isdn4linux came up in the context of another patch series, I

> remembered that we had discussed removing it a while ago.

> 

> It turns out that the suggestion from Karsten Keil wa to remove I4L

> in 2018 after the last public ISDN networks are shut down. This has

> happened now (with a very small number of exceptions), so I guess it's

> time to try again.


The Dutch consumer grade (voice and data) ISDN network will be shut down on
September 1st of this year. I'm not sure what other networks there still are,
worldwide. Does someone know of an overview somewhere?

> We currently have three ISDN stacks in the kernel: the original

> isdn4linux, the newer CAPI, and finally mISDN stack.

> 

> As far as I can tell, anyone using ISDN with mainline kernel drivers in

> the past few years uses mISDN, and this is typically used for voice-only

> PBX installations that don't require a public network.

> 

> The older stacks support additional features for data networks, but those

> typically make no sense any more if there is no network to connect to.

> 

> My proposal for this time is to kill off isdn4linux entirely, as it seems

> to have been unusable for quite a while. This code has been abandoned

> for many years and it does get in the way of maintenance.


Fine with me. I haven't bothered testing gigaset's i4l code in ages.

> CAPI in turn is not quite as obsolete, but as I have been unable to find

> any users, I would suggest moving it to drivers/staging while we

> figure out if anyone is using it. If not, it can then be removed

> as well. If it turns out that there are users that are on 5.x kernels

> or need to update to them, we can decide to leave parts of it for

> longer, or move them back.


(Has any driver ever returned to drivers proper after exile into
drivers/staging?)

> If anyone is still using isdn4linux and CAPI with modern kernels, please

> speak up now.


I'll try to test gigaset's drivers (in CAPI mode) until 5.2 is released (end
of July/early August). Whether that will be under staging or not is
unimportant. I have only very little evidence of people actually using the
code. That is unsurprising: for data ISDN is now expensive and really slow.
About the only things actually usable are "git fetch" and the like. So that's
what I test.

>       Arnd

> 

> [1] https://patchwork.kernel.org/patch/8484861/#17900371

> 

> Arnd Bergmann (5):

>   isdn: gigaset: remove i4l support

>   isdn: remove hisax driver

>   isdn: remove isdn4linux

>   isdn: hdlc: move into mISDN

>   isdn: move capi drivers to staging


For some reason 5/5 didn't hit my INBOX.

Thanks,


Paul Bolle
Simon Horman April 24, 2019, 9:15 a.m. UTC | #7
On Wed, Apr 24, 2019 at 10:14:55AM +0200, Arnd Bergmann wrote:
> On Wed, Apr 24, 2019 at 9:56 AM Simon Horman <horms@verge.net.au> wrote:

> >

> > Hi Arnd,

> >

> > On Tue, Apr 23, 2019 at 05:11:32PM +0200, Arnd Bergmann wrote:

> > > When isdn4linux came up in the context of another patch series, I

> > > remembered that we had discussed removing it a while ago.

> > >

> > > It turns out that the suggestion from Karsten Keil wa to remove I4L

> > > in 2018 after the last public ISDN networks are shut down. This has

> > > happened now (with a very small number of exceptions), so I guess it's

> > > time to try again.

> > >

> > > We currently have three ISDN stacks in the kernel: the original

> > > isdn4linux, the newer CAPI, and finally mISDN stack.

> > >

> > > As far as I can tell, anyone using ISDN with mainline kernel drivers in

> > > the past few years uses mISDN, and this is typically used for voice-only

> > > PBX installations that don't require a public network.

> > >

> > > The older stacks support additional features for data networks, but those

> > > typically make no sense any more if there is no network to connect to.

> > >

> > > My proposal for this time is to kill off isdn4linux entirely, as it seems

> > > to have been unusable for quite a while. This code has been abandoned

> > > for many years and it does get in the way of maintenance.

> >

> > I think there is an editing error somewhere above. Perhaps it should read

> >

> > ... and it does not get anything in the way of maintenance.

> 

> This is certainly a true statement as well, but what I meant is that

> the presence of isdn4linux in the kernel is causing extra work whenever

> we want to do treewide changes. I'll rephrase to make that clearer.


Thanks Arnd, much appreciated.
Marcel Holtmann April 24, 2019, 10:24 a.m. UTC | #8
Hi Arnd,

>>> When isdn4linux came up in the context of another patch series, I

>>> remembered that we had discussed removing it a while ago.

>> 

>> This seems long overdue to me.

>> 

>> Could you please respin against net-next and I'll just apply this?

> 

> Ok. I'll send a pull request then, which should make it easier to deal with

> the file removals, as I'm never sure whether 'git format-patch -D' patches

> make it across the list correctly, at least I had problems applying them

> in the past.

> 

> I added a few fixups as in the diff below in the meantime, to deal

> with build regressions from the last patch. In particular, the BT_CMTP

> (CIP) code also needs to be moved into staging along with the CAPI

> core. From what I can find, this was originally used for dial-up

> internet connections with 'Bluefritz' ISDN hardware, but it stopped

> working many years ago and is no longer useful with after the

> public network shutdown either.

> 

>     Arnd

> 

> 

> diff --git a/drivers/staging/isdn/Kconfig b/drivers/staging/isdn/Kconfig

> index 77e1b80af716..29d13fcd9e2b 100644

> --- a/drivers/staging/isdn/Kconfig

> +++ b/drivers/staging/isdn/Kconfig

> @@ -1,5 +1,6 @@

> menuconfig ISDN_CAPI

>  tristate "CAPI 2.0 subsystem"

> + depends on NET && NETDEVICES

>  help

>    This provides CAPI (the Common ISDN Application Programming

>    Interface) Version 2.0, a standard making it easy for programs to

> @@ -23,6 +24,7 @@ source "drivers/staging/isdn/gigaset/Kconfig"

> 

> source "drivers/staging/isdn/hysdn/Kconfig"

> 

> +source "drivers/staging/isdn/cmtp/Kconfig"

> 

> endif # ISDN_CAPI


NAK.

I do not care about isdn4linux, but this is a purely CAPI based driver. So removing (or moving to staging) CAPI support seems rather premature.

Maybe someone would have started talking to us before trying to move this into staging. It is a maintained driver. That it is rather simple and hasn’t seen patches in a long time, doesn’t mean it is not maintained and staging material. I see no reason to tell any user to enable staging tree to get CMTP support.

Regards

Marcel
Arnd Bergmann April 24, 2019, 11:48 a.m. UTC | #9
On Wed, Apr 24, 2019 at 10:48 AM Paul Bolle <pebolle@tiscali.nl> wrote:
>

> Arnd Bergmann schreef op di 23-04-2019 om 17:11 [+0200]:

> > When isdn4linux came up in the context of another patch series, I

> > remembered that we had discussed removing it a while ago.

> >

> > It turns out that the suggestion from Karsten Keil wa to remove I4L

> > in 2018 after the last public ISDN networks are shut down. This has

> > happened now (with a very small number of exceptions), so I guess it's

> > time to try again.

>

> The Dutch consumer grade (voice and data) ISDN network will be shut down on

> September 1st of this year. I'm not sure what other networks there still are,

> worldwide. Does someone know of an overview somewhere?


I did some research when I created the series but could not find a
definite list. All provides that I /could/ find seem to list the end-of-life
date as either 2018 or 2019. Deutsche Telekom was by far the biggest
provider and tried to finally shut it down in 2018, but apparently there
are still a small number of households that are fighting the change
to IP-only connections.

[side rant: I do understand why -- when my parents were forced to
change, their DSL speed dropped from barely usable (1024kb/s)
to completely useless (256kb/s), and Deutsche Telekom refused
to let them use an LTE home connection instead even though that is
offered to half their neighbors in the same village and works fine
in their house. They now have to pay for a DSL connection they
can't use and an expensive handset LTE contract that is capped at
10GB per month]

In Germany, Vodafone still offers physical ISDN lines until 2022,
but only for business customers, and they try to get them to
switch as well.

> > CAPI in turn is not quite as obsolete, but as I have been unable to find

> > any users, I would suggest moving it to drivers/staging while we

> > figure out if anyone is using it. If not, it can then be removed

> > as well. If it turns out that there are users that are on 5.x kernels

> > or need to update to them, we can decide to leave parts of it for

> > longer, or move them back.

>

> (Has any driver ever returned to drivers proper after exile into

> drivers/staging?)


Greg would know. I assume not, but that would be just because
everyone who moved drivers into staging was guessing correctly
that there were actually no users.

> > If anyone is still using isdn4linux and CAPI with modern kernels, please

> > speak up now.

>

> I'll try to test gigaset's drivers (in CAPI mode) until 5.2 is released (end

> of July/early August). Whether that will be under staging or not is

> unimportant. I have only very little evidence of people actually using the

> code. That is unsurprising: for data ISDN is now expensive and really slow.

> About the only things actually usable are "git fetch" and the like. So that's

> what I test.


Sounds good, thanks!

> > [1] https://patchwork.kernel.org/patch/8484861/#17900371

> >

> > Arnd Bergmann (5):

> >   isdn: gigaset: remove i4l support

> >   isdn: remove hisax driver

> >   isdn: remove isdn4linux

> >   isdn: hdlc: move into mISDN

> >   isdn: move capi drivers to staging

>

> For some reason 5/5 didn't hit my INBOX.


I saw that some mails got rejected by your mail server.
https://lore.kernel.org/netdev/20190423151143.464992-12-arnd@arndb.de/
has the full mail.

        arnd
Arnd Bergmann April 24, 2019, 12:59 p.m. UTC | #10
On Wed, Apr 24, 2019 at 12:24 PM Marcel Holtmann <marcel@holtmann.org> wrote:
> >>> When isdn4linux came up in the context of another patch series, I

> >>> remembered that we had discussed removing it a while ago.

>

> NAK.

>

> I do not care about isdn4linux, but this is a purely CAPI based driver. So removing (or moving to staging)

> CAPI support seems rather premature.

>

> Maybe someone would have started talking to us before trying to move this into staging. It is a

> maintained driver. That it is rather simple and hasn’t seen patches in a long time, doesn’t mean

> it is not maintained and staging material. I see no reason to tell any user to enable staging tree

> to get CMTP support.


I can definitely leave out the last patch from the series if we know
that there are
still users on CMTP. I searched around for a bit but could not find
any indication
what this is still used for, if anything.

What I found were a couple of references of the driver no longer working
about 10 years ago:

https://wiki.ubuntuusers.de/Archiv/Bluetooth/BlueFritz%21/
https://www.opensuse-forum.de/thread/2776-erledigt-suse-11-2-und-bluefritz/

Is anyone using cmtp for voice or fax services? The use cases from before 2009
that I could find were usually dial-up networking, but that seems pointless now
if the only way to get an ISDN connection is to have it routed over
the internet.

What am I missing?

     Arnd
Marcel Holtmann April 24, 2019, 2:30 p.m. UTC | #11
Hi Arnd,

>>>>> When isdn4linux came up in the context of another patch series, I

>>>>> remembered that we had discussed removing it a while ago.

>> 

>> NAK.

>> 

>> I do not care about isdn4linux, but this is a purely CAPI based driver. So removing (or moving to staging)

>> CAPI support seems rather premature.

>> 

>> Maybe someone would have started talking to us before trying to move this into staging. It is a

>> maintained driver. That it is rather simple and hasn’t seen patches in a long time, doesn’t mean

>> it is not maintained and staging material. I see no reason to tell any user to enable staging tree

>> to get CMTP support.

> 

> I can definitely leave out the last patch from the series if we know

> that there are

> still users on CMTP. I searched around for a bit but could not find

> any indication

> what this is still used for, if anything.


I would prefer if we leave CAPI support and with that CMTP mainstream and not move that to staging. For isdn4linux, I have no objections to move that to staging since mISDN was suppose to replace it anyway.

> What I found were a couple of references of the driver no longer working

> about 10 years ago:

> 

> https://wiki.ubuntuusers.de/Archiv/Bluetooth/BlueFritz%21/

> https://www.opensuse-forum.de/thread/2776-erledigt-suse-11-2-und-bluefritz/

> 

> Is anyone using cmtp for voice or fax services? The use cases from before 2009

> that I could find were usually dial-up networking, but that seems pointless now

> if the only way to get an ISDN connection is to have it routed over

> the internet.


I still have the hardware and last time I checked it worked just fine. However you need to set up a proper pairing with the hardware. However that has nothing to do with CMTP since that is just a CAPI message transport protocol.

You can use it for voice and fax service as long as you have the right codecs in place. At the end of the day CAPI is an API for ISDN. And CMTP just being a transport, all ISDN services are possible given the right software / application.

Regards

Marcel
Christoph Biedl April 24, 2019, 9:28 p.m. UTC | #12
Arnd Bergmann wrote...

> If anyone is still using isdn4linux and CAPI with modern kernels, please

> speak up now.


Yeah, although I probably don't have much in defense. I am still using
it, mostly for isdnlog since I never got mISDN to work. I even wrote
the missing sysfs support for i4l some seven years but never had to guts
to submit it, mostly since it's not the best code and I never tested the
tty part of it. Some many ideas, so many plans, so little time.

But I do have to admit the great times of ISDN are in the past and will
not come back.

    Christoph, also happens to be maintainer for the i4l userland in Debian
Arnd Bergmann April 25, 2019, 11:08 a.m. UTC | #13
On Wed, Apr 24, 2019 at 4:30 PM Marcel Holtmann <marcel@holtmann.org> wrote:
>

> Hi Arnd,

>

> >>>>> When isdn4linux came up in the context of another patch series, I

> >>>>> remembered that we had discussed removing it a while ago.

> >>

> >> NAK.

> >>

> >> I do not care about isdn4linux, but this is a purely CAPI based driver. So removing (or moving to staging)

> >> CAPI support seems rather premature.

> >>

> >> Maybe someone would have started talking to us before trying to move this into staging. It is a

> >> maintained driver. That it is rather simple and hasn’t seen patches in a long time, doesn’t mean

> >> it is not maintained and staging material. I see no reason to tell any user to enable staging tree

> >> to get CMTP support.

> >

> > I can definitely leave out the last patch from the series if we know

> > that there are

> > still users on CMTP. I searched around for a bit but could not find

> > any indication

> > what this is still used for, if anything.

>

> I would prefer if we leave CAPI support and with that CMTP mainstream and not move

> that to staging. For isdn4linux, I have no objections to move that to staging since

> mISDN was suppose to replace it anyway.


Sure, I can rework the patch to leave the CAPI subsystem and only move the
other three drivers (avm, hysdn, gigaset) into staging to see if
anyone uses them.

> > What I found were a couple of references of the driver no longer working

> > about 10 years ago:

> >

> > https://wiki.ubuntuusers.de/Archiv/Bluetooth/BlueFritz%21/

> > https://www.opensuse-forum.de/thread/2776-erledigt-suse-11-2-und-bluefritz/

> >

> > Is anyone using cmtp for voice or fax services? The use cases from before 2009

> > that I could find were usually dial-up networking, but that seems pointless now

> > if the only way to get an ISDN connection is to have it routed over

> > the internet.

>

> I still have the hardware and last time I checked it worked just fine. However

> you need to set up a proper pairing with the hardware. However that has nothing

> to do with CMTP since that is just a CAPI message transport protocol.

>

> You can use it for voice and fax service as long as you have the right codecs in

> place. At the end of the day CAPI is an API for ISDN. And CMTP just being a

> transport, all ISDN services are possible given the right software / application.


That does not answer my question. It's clear that you can do all those things
with CAPI and CMTP, but what I was trying to find out is whether anyone still
does.

The gigaset driver is similar here, you can use it for any kind of wireless ISDN
communication, but apparently there is little use for that without a physical
ISDN connection.

      Arnd
Marcel Holtmann April 25, 2019, 11:21 a.m. UTC | #14
Hi Arnd,

>>>>>>> When isdn4linux came up in the context of another patch series, I

>>>>>>> remembered that we had discussed removing it a while ago.

>>>> 

>>>> NAK.

>>>> 

>>>> I do not care about isdn4linux, but this is a purely CAPI based driver. So removing (or moving to staging)

>>>> CAPI support seems rather premature.

>>>> 

>>>> Maybe someone would have started talking to us before trying to move this into staging. It is a

>>>> maintained driver. That it is rather simple and hasn’t seen patches in a long time, doesn’t mean

>>>> it is not maintained and staging material. I see no reason to tell any user to enable staging tree

>>>> to get CMTP support.

>>> 

>>> I can definitely leave out the last patch from the series if we know

>>> that there are

>>> still users on CMTP. I searched around for a bit but could not find

>>> any indication

>>> what this is still used for, if anything.

>> 

>> I would prefer if we leave CAPI support and with that CMTP mainstream and not move

>> that to staging. For isdn4linux, I have no objections to move that to staging since

>> mISDN was suppose to replace it anyway.

> 

> Sure, I can rework the patch to leave the CAPI subsystem and only move the

> other three drivers (avm, hysdn, gigaset) into staging to see if

> anyone uses them.


awesome. Thanks.

>>> What I found were a couple of references of the driver no longer working

>>> about 10 years ago:

>>> 

>>> https://wiki.ubuntuusers.de/Archiv/Bluetooth/BlueFritz%21/

>>> https://www.opensuse-forum.de/thread/2776-erledigt-suse-11-2-und-bluefritz/

>>> 

>>> Is anyone using cmtp for voice or fax services? The use cases from before 2009

>>> that I could find were usually dial-up networking, but that seems pointless now

>>> if the only way to get an ISDN connection is to have it routed over

>>> the internet.

>> 

>> I still have the hardware and last time I checked it worked just fine. However

>> you need to set up a proper pairing with the hardware. However that has nothing

>> to do with CMTP since that is just a CAPI message transport protocol.

>> 

>> You can use it for voice and fax service as long as you have the right codecs in

>> place. At the end of the day CAPI is an API for ISDN. And CMTP just being a

>> transport, all ISDN services are possible given the right software / application.

> 

> That does not answer my question. It's clear that you can do all those things

> with CAPI and CMTP, but what I was trying to find out is whether anyone still

> does.

> 

> The gigaset driver is similar here, you can use it for any kind of wireless ISDN

> communication, but apparently there is little use for that without a physical

> ISDN connection.


You need a ISDN line or a telephone system that speaks ISDN via S0 bus. Consumer ISDN lines are pretty much extinct in Germany due to the movement towards all IP based DSL lines. However there are S0 busses on the Fritz!Boxes and you can just hang the CMTP capable gateways on the S0 bus. At least that is how I have this at home. If you asked me for what other people are still doing, I have no idea.

Regards

Marcel
Paul Bolle April 25, 2019, 5:23 p.m. UTC | #15
Arnd Bergmann schreef op do 25-04-2019 om 13:08 [+0200]:
> The gigaset driver is similar here, you can use it for any kind of wireless ISDN

> communication,


Nit: the wireless part is strictly DECT (for the M101 and M105 hardware).

> but apparently there is little use for that without a physical

> ISDN connection.


Probably.

The main point is that once my ISDN line is canceled it would be nice to know
whether someone still cares about these drivers. (Do note that for day to day
data traffic I definitely do not really on ISDN. I'm not _that_ crazy.) Your
suggestion to exile them into drivers/staging is about the only policy we have
for finding that out.

Thanks,


Paul Bolle