diff --git a/MAINTAINERS b/MAINTAINERS index 3a761e680296..2be31b13d295 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -6679,9 +6679,7 @@ M: Paul Bolle L: gigaset307x-common@lists.sourceforge.net W: http://gigaset307x.sourceforge.net/ S: Odd Fixes -F: Documentation/isdn/README.gigaset -F: drivers/isdn/gigaset/ -F: include/uapi/linux/gigaset_dev.h +F: drivers/staging/isdn/gigaset/ GNSS SUBSYSTEM M: Johan Hovold @@ -8362,15 +8360,25 @@ S: Supported W: http://www.linux-iscsi.org F: drivers/infiniband/ulp/isert -ISDN SUBSYSTEM +ISDN/mISDN SUBSYSTEM M: Karsten Keil L: isdn4linux@listserv.isdn4linux.de (subscribers-only) L: netdev@vger.kernel.org W: http://www.isdn4linux.de -T: git git://git.kernel.org/pub/scm/linux/kernel/git/kkeil/isdn-2.6.git S: Maintained +F: drivers/isdn/mISDN +F: drivers/isdn/hardware + +ISDN/CAPI SUBSYSTEM +M: Karsten Keil +L: isdn4linux@listserv.isdn4linux.de (subscribers-only) +L: netdev@vger.kernel.org +W: http://www.isdn4linux.de +S: Odd Fixes F: Documentation/isdn/ -F: drivers/isdn/ +F: drivers/isdn/capi/ +F: drivers/staging/isdn/ +F: net/bluetooth/cmtp/ F: include/linux/isdn/ F: include/uapi/linux/isdn/ diff --git a/drivers/isdn/Kconfig b/drivers/isdn/Kconfig index 6e3bf833c67e..be8387c0eeef 100644 --- a/drivers/isdn/Kconfig +++ b/drivers/isdn/Kconfig @@ -21,33 +21,8 @@ menuconfig ISDN if ISDN -menuconfig ISDN_CAPI - tristate "CAPI 2.0 subsystem" - help - This provides CAPI (the Common ISDN Application Programming - Interface) Version 2.0, a standard making it easy for programs to - access ISDN hardware in a device independent way. (For details see - .) CAPI supports making and accepting voice - and data connections, controlling call options and protocols, - as well as ISDN supplementary services like call forwarding or - three-party conferences (if supported by the specific hardware - driver). - - Select this option and the appropriate hardware driver below if - you have an ISDN adapter supported by the CAPI subsystem. - -if ISDN_CAPI - source "drivers/isdn/capi/Kconfig" -source "drivers/isdn/hardware/Kconfig" - -endif # ISDN_CAPI - -source "drivers/isdn/gigaset/Kconfig" - -source "drivers/isdn/hysdn/Kconfig" - source "drivers/isdn/mISDN/Kconfig" endif # ISDN diff --git a/drivers/isdn/Makefile b/drivers/isdn/Makefile index f2a529c5a511..63baf27a2c79 100644 --- a/drivers/isdn/Makefile +++ b/drivers/isdn/Makefile @@ -6,5 +6,3 @@ obj-$(CONFIG_ISDN_CAPI) += capi/ obj-$(CONFIG_MISDN) += mISDN/ obj-$(CONFIG_ISDN) += hardware/ -obj-$(CONFIG_HYSDN) += hysdn/ -obj-$(CONFIG_ISDN_DRV_GIGASET) += gigaset/ diff --git a/drivers/isdn/capi/Kconfig b/drivers/isdn/capi/Kconfig index 089dbee18f36..573fea5500ce 100644 --- a/drivers/isdn/capi/Kconfig +++ b/drivers/isdn/capi/Kconfig @@ -1,4 +1,22 @@ # SPDX-License-Identifier: GPL-2.0-only +menuconfig ISDN_CAPI + tristate "CAPI 2.0 subsystem" + help + This provides CAPI (the Common ISDN Application Programming + Interface) Version 2.0, a standard making it easy for programs to + access ISDN hardware in a device independent way. (For details see + .) CAPI supports making and accepting voice + and data connections, controlling call options and protocols, + as well as ISDN supplementary services like call forwarding or + three-party conferences (if supported by the specific hardware + driver). + + This subsystem requires a hardware specific driver. + See CONFIG_BT_CMTP for the last remaining regular driver + in the kernel that uses the CAPI subsystem. + +if ISDN_CAPI + config CAPI_TRACE bool "CAPI trace support" default y @@ -34,3 +52,5 @@ config ISDN_CAPI_CAPIDRV_VERBOSE If you say Y here, the capidrv interface will give verbose reasons for disconnecting. This will increase the size of the kernel by 7 KB. If unsure, say N. + +endif diff --git a/drivers/isdn/capi/Makefile b/drivers/isdn/capi/Makefile index 06da3ed2c40a..d299f3e75f89 100644 --- a/drivers/isdn/capi/Makefile +++ b/drivers/isdn/capi/Makefile @@ -13,3 +13,5 @@ obj-$(CONFIG_ISDN_CAPI_CAPIDRV) += capidrv.o kernelcapi-y := kcapi.o capiutil.o capilib.o kernelcapi-$(CONFIG_PROC_FS) += kcapi_proc.o + +ccflags-y += -I$(srctree)/$(src)/../include -I$(srctree)/$(src)/../include/uapi diff --git a/drivers/isdn/hardware/Kconfig b/drivers/isdn/hardware/Kconfig deleted file mode 100644 index 0d609b5fcf01..000000000000 --- a/drivers/isdn/hardware/Kconfig +++ /dev/null @@ -1,8 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -# -# ISDN hardware drivers -# -comment "CAPI hardware drivers" - -source "drivers/isdn/hardware/avm/Kconfig" - diff --git a/drivers/isdn/hardware/Makefile b/drivers/isdn/hardware/Makefile index a43760a0a4f5..96f9eb2e46ba 100644 --- a/drivers/isdn/hardware/Makefile +++ b/drivers/isdn/hardware/Makefile @@ -3,5 +3,4 @@ # Object files in subdirectories -obj-$(CONFIG_CAPI_AVM) += avm/ obj-$(CONFIG_MISDN) += mISDN/ diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index d5f771fafc21..7c96a01eef6c 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -118,4 +118,6 @@ source "drivers/staging/fieldbus/Kconfig" source "drivers/staging/kpc2000/Kconfig" +source "drivers/staging/isdn/Kconfig" + endif # STAGING diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index 0da0d3f0b5e4..fcaac9693b83 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -49,3 +49,4 @@ obj-$(CONFIG_XIL_AXIS_FIFO) += axis-fifo/ obj-$(CONFIG_EROFS_FS) += erofs/ obj-$(CONFIG_FIELDBUS_DEV) += fieldbus/ obj-$(CONFIG_KPC2000) += kpc2000/ +obj-$(CONFIG_ISDN_CAPI) += isdn/ diff --git a/drivers/staging/isdn/Kconfig b/drivers/staging/isdn/Kconfig new file mode 100644 index 000000000000..faaf63887094 --- /dev/null +++ b/drivers/staging/isdn/Kconfig @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-2.0-only +menu "ISDN CAPI drivers" + depends on ISDN_CAPI + +source "drivers/staging/isdn/avm/Kconfig" + +source "drivers/staging/isdn/gigaset/Kconfig" + +source "drivers/staging/isdn/hysdn/Kconfig" + +endmenu + diff --git a/drivers/staging/isdn/Makefile b/drivers/staging/isdn/Makefile new file mode 100644 index 000000000000..025504bae5df --- /dev/null +++ b/drivers/staging/isdn/Makefile @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: GPL-2.0 +# Makefile for the kernel ISDN subsystem and device drivers. + +# Object files in subdirectories + +obj-$(CONFIG_CAPI_AVM) += avm/ +obj-$(CONFIG_HYSDN) += hysdn/ +obj-$(CONFIG_ISDN_DRV_GIGASET) += gigaset/ diff --git a/drivers/staging/isdn/TODO b/drivers/staging/isdn/TODO new file mode 100644 index 000000000000..9210d11eb68b --- /dev/null +++ b/drivers/staging/isdn/TODO @@ -0,0 +1,22 @@ +TODO: Remove in late 2019 unless there are users + + +I tried to find any indication of whether the capi drivers are +still in use, and have not found anything from a long time ago. + +With public ISDN networks almost completely shut down over the past 12 +months, there is very little you can actually do with this hardware. The +main remaining use case would be to connect ISDN voice phones to an +in-house installation with Asterisk or LCR, but anyone trying this in +turn seems to be using either the mISDN driver stack, or out-of-tree +drivers from the hardware vendors. + +I may of course have missed something, so I would suggest moving +these into drivers/staging/ just in case someone still uses one +of the three remaining in-kernel drivers (avm, hysdn, gigaset). + +If nobody complains, we can remove them entirely in six months, +or otherwise move the core code and any drivers that are still +needed back into drivers/isdn. + + Arnd Bergmann diff --git a/drivers/isdn/hardware/avm/Kconfig b/drivers/staging/isdn/avm/Kconfig similarity index 100% rename from drivers/isdn/hardware/avm/Kconfig rename to drivers/staging/isdn/avm/Kconfig diff --git a/drivers/isdn/hardware/avm/Makefile b/drivers/staging/isdn/avm/Makefile similarity index 100% rename from drivers/isdn/hardware/avm/Makefile rename to drivers/staging/isdn/avm/Makefile diff --git a/drivers/isdn/hardware/avm/avm_cs.c b/drivers/staging/isdn/avm/avm_cs.c similarity index 100% rename from drivers/isdn/hardware/avm/avm_cs.c rename to drivers/staging/isdn/avm/avm_cs.c diff --git a/drivers/isdn/hardware/avm/avmcard.h b/drivers/staging/isdn/avm/avmcard.h similarity index 100% rename from drivers/isdn/hardware/avm/avmcard.h rename to drivers/staging/isdn/avm/avmcard.h diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/staging/isdn/avm/b1.c similarity index 100% rename from drivers/isdn/hardware/avm/b1.c rename to drivers/staging/isdn/avm/b1.c diff --git a/drivers/isdn/hardware/avm/b1dma.c b/drivers/staging/isdn/avm/b1dma.c similarity index 100% rename from drivers/isdn/hardware/avm/b1dma.c rename to drivers/staging/isdn/avm/b1dma.c diff --git a/drivers/isdn/hardware/avm/b1isa.c b/drivers/staging/isdn/avm/b1isa.c similarity index 100% rename from drivers/isdn/hardware/avm/b1isa.c rename to drivers/staging/isdn/avm/b1isa.c diff --git a/drivers/isdn/hardware/avm/b1pci.c b/drivers/staging/isdn/avm/b1pci.c similarity index 100% rename from drivers/isdn/hardware/avm/b1pci.c rename to drivers/staging/isdn/avm/b1pci.c diff --git a/drivers/isdn/hardware/avm/b1pcmcia.c b/drivers/staging/isdn/avm/b1pcmcia.c similarity index 100% rename from drivers/isdn/hardware/avm/b1pcmcia.c rename to drivers/staging/isdn/avm/b1pcmcia.c diff --git a/drivers/isdn/hardware/avm/c4.c b/drivers/staging/isdn/avm/c4.c similarity index 100% rename from drivers/isdn/hardware/avm/c4.c rename to drivers/staging/isdn/avm/c4.c diff --git a/drivers/isdn/hardware/avm/t1isa.c b/drivers/staging/isdn/avm/t1isa.c similarity index 100% rename from drivers/isdn/hardware/avm/t1isa.c rename to drivers/staging/isdn/avm/t1isa.c diff --git a/drivers/isdn/hardware/avm/t1pci.c b/drivers/staging/isdn/avm/t1pci.c similarity index 100% rename from drivers/isdn/hardware/avm/t1pci.c rename to drivers/staging/isdn/avm/t1pci.c diff --git a/drivers/isdn/gigaset/Kconfig b/drivers/staging/isdn/gigaset/Kconfig similarity index 100% rename from drivers/isdn/gigaset/Kconfig rename to drivers/staging/isdn/gigaset/Kconfig diff --git a/drivers/isdn/gigaset/Makefile b/drivers/staging/isdn/gigaset/Makefile similarity index 100% rename from drivers/isdn/gigaset/Makefile rename to drivers/staging/isdn/gigaset/Makefile diff --git a/drivers/isdn/gigaset/asyncdata.c b/drivers/staging/isdn/gigaset/asyncdata.c similarity index 100% rename from drivers/isdn/gigaset/asyncdata.c rename to drivers/staging/isdn/gigaset/asyncdata.c diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/staging/isdn/gigaset/bas-gigaset.c similarity index 100% rename from drivers/isdn/gigaset/bas-gigaset.c rename to drivers/staging/isdn/gigaset/bas-gigaset.c diff --git a/drivers/isdn/gigaset/capi.c b/drivers/staging/isdn/gigaset/capi.c similarity index 100% rename from drivers/isdn/gigaset/capi.c rename to drivers/staging/isdn/gigaset/capi.c diff --git a/drivers/isdn/gigaset/common.c b/drivers/staging/isdn/gigaset/common.c similarity index 100% rename from drivers/isdn/gigaset/common.c rename to drivers/staging/isdn/gigaset/common.c diff --git a/drivers/isdn/gigaset/dummyll.c b/drivers/staging/isdn/gigaset/dummyll.c similarity index 100% rename from drivers/isdn/gigaset/dummyll.c rename to drivers/staging/isdn/gigaset/dummyll.c diff --git a/drivers/isdn/gigaset/ev-layer.c b/drivers/staging/isdn/gigaset/ev-layer.c similarity index 100% rename from drivers/isdn/gigaset/ev-layer.c rename to drivers/staging/isdn/gigaset/ev-layer.c diff --git a/drivers/isdn/gigaset/gigaset.h b/drivers/staging/isdn/gigaset/gigaset.h similarity index 100% rename from drivers/isdn/gigaset/gigaset.h rename to drivers/staging/isdn/gigaset/gigaset.h diff --git a/drivers/isdn/gigaset/interface.c b/drivers/staging/isdn/gigaset/interface.c similarity index 100% rename from drivers/isdn/gigaset/interface.c rename to drivers/staging/isdn/gigaset/interface.c diff --git a/drivers/isdn/gigaset/isocdata.c b/drivers/staging/isdn/gigaset/isocdata.c similarity index 100% rename from drivers/isdn/gigaset/isocdata.c rename to drivers/staging/isdn/gigaset/isocdata.c diff --git a/drivers/isdn/gigaset/proc.c b/drivers/staging/isdn/gigaset/proc.c similarity index 100% rename from drivers/isdn/gigaset/proc.c rename to drivers/staging/isdn/gigaset/proc.c diff --git a/drivers/isdn/gigaset/ser-gigaset.c b/drivers/staging/isdn/gigaset/ser-gigaset.c similarity index 100% rename from drivers/isdn/gigaset/ser-gigaset.c rename to drivers/staging/isdn/gigaset/ser-gigaset.c diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/staging/isdn/gigaset/usb-gigaset.c similarity index 100% rename from drivers/isdn/gigaset/usb-gigaset.c rename to drivers/staging/isdn/gigaset/usb-gigaset.c diff --git a/drivers/isdn/hysdn/Kconfig b/drivers/staging/isdn/hysdn/Kconfig similarity index 100% rename from drivers/isdn/hysdn/Kconfig rename to drivers/staging/isdn/hysdn/Kconfig diff --git a/drivers/isdn/hysdn/Makefile b/drivers/staging/isdn/hysdn/Makefile similarity index 100% rename from drivers/isdn/hysdn/Makefile rename to drivers/staging/isdn/hysdn/Makefile diff --git a/drivers/isdn/hysdn/boardergo.c b/drivers/staging/isdn/hysdn/boardergo.c similarity index 100% rename from drivers/isdn/hysdn/boardergo.c rename to drivers/staging/isdn/hysdn/boardergo.c diff --git a/drivers/isdn/hysdn/boardergo.h b/drivers/staging/isdn/hysdn/boardergo.h similarity index 100% rename from drivers/isdn/hysdn/boardergo.h rename to drivers/staging/isdn/hysdn/boardergo.h diff --git a/drivers/isdn/hysdn/hycapi.c b/drivers/staging/isdn/hysdn/hycapi.c similarity index 100% rename from drivers/isdn/hysdn/hycapi.c rename to drivers/staging/isdn/hysdn/hycapi.c diff --git a/drivers/isdn/hysdn/hysdn_boot.c b/drivers/staging/isdn/hysdn/hysdn_boot.c similarity index 100% rename from drivers/isdn/hysdn/hysdn_boot.c rename to drivers/staging/isdn/hysdn/hysdn_boot.c diff --git a/drivers/isdn/hysdn/hysdn_defs.h b/drivers/staging/isdn/hysdn/hysdn_defs.h similarity index 100% rename from drivers/isdn/hysdn/hysdn_defs.h rename to drivers/staging/isdn/hysdn/hysdn_defs.h diff --git a/drivers/isdn/hysdn/hysdn_init.c b/drivers/staging/isdn/hysdn/hysdn_init.c similarity index 100% rename from drivers/isdn/hysdn/hysdn_init.c rename to drivers/staging/isdn/hysdn/hysdn_init.c diff --git a/drivers/isdn/hysdn/hysdn_net.c b/drivers/staging/isdn/hysdn/hysdn_net.c similarity index 100% rename from drivers/isdn/hysdn/hysdn_net.c rename to drivers/staging/isdn/hysdn/hysdn_net.c diff --git a/drivers/isdn/hysdn/hysdn_pof.h b/drivers/staging/isdn/hysdn/hysdn_pof.h similarity index 100% rename from drivers/isdn/hysdn/hysdn_pof.h rename to drivers/staging/isdn/hysdn/hysdn_pof.h diff --git a/drivers/isdn/hysdn/hysdn_procconf.c b/drivers/staging/isdn/hysdn/hysdn_procconf.c similarity index 100% rename from drivers/isdn/hysdn/hysdn_procconf.c rename to drivers/staging/isdn/hysdn/hysdn_procconf.c diff --git a/drivers/isdn/hysdn/hysdn_proclog.c b/drivers/staging/isdn/hysdn/hysdn_proclog.c similarity index 100% rename from drivers/isdn/hysdn/hysdn_proclog.c rename to drivers/staging/isdn/hysdn/hysdn_proclog.c diff --git a/drivers/isdn/hysdn/hysdn_sched.c b/drivers/staging/isdn/hysdn/hysdn_sched.c similarity index 100% rename from drivers/isdn/hysdn/hysdn_sched.c rename to drivers/staging/isdn/hysdn/hysdn_sched.c diff --git a/drivers/isdn/hysdn/ince1pc.h b/drivers/staging/isdn/hysdn/ince1pc.h similarity index 100% rename from drivers/isdn/hysdn/ince1pc.h rename to drivers/staging/isdn/hysdn/ince1pc.h