Skip to content

Commit

Permalink
gigaset: allow building without I4L
Browse files Browse the repository at this point in the history
Add a dummy LL interface to the Gigaset driver so that it can be
built and, in a limited way, used without the ISDN4Linux subsystem.

Impact: new configuration alternative
Signed-off-by: Tilman Schmidt <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
tilmanschmidt authored and davem330 committed Oct 7, 2009
1 parent 088ec0c commit aaba2b3
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 2 deletions.
13 changes: 12 additions & 1 deletion drivers/isdn/gigaset/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
menuconfig ISDN_DRV_GIGASET
tristate "Siemens Gigaset support"
depends on ISDN_I4L
select CRC_CCITT
select BITREVERSE
help
Expand All @@ -11,9 +10,21 @@ menuconfig ISDN_DRV_GIGASET
If you have one of these devices, say M here and for at least
one of the connection specific parts that follow.
This will build a module called "gigaset".
Note: If you build the ISDN4Linux subsystem (ISDN_I4L)
as a module, you have to build this driver as a module too,
otherwise the Gigaset device won't show up as an ISDN device.

if ISDN_DRV_GIGASET

config GIGASET_I4L
bool
depends on ISDN_I4L='y'||(ISDN_I4L='m'&&ISDN_DRV_GIGASET='m')
default y

config GIGASET_DUMMYLL
bool
default !GIGASET_I4L

config GIGASET_BASE
tristate "Gigaset base station support"
depends on USB
Expand Down
4 changes: 3 additions & 1 deletion drivers/isdn/gigaset/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
gigaset-y := common.o interface.o proc.o ev-layer.o i4l.o asyncdata.o
gigaset-y := common.o interface.o proc.o ev-layer.o asyncdata.o
gigaset-$(CONFIG_GIGASET_I4L) += i4l.o
gigaset-$(CONFIG_GIGASET_DUMMYLL) += dummyll.o
usb_gigaset-y := usb-gigaset.o
ser_gigaset-y := ser-gigaset.o
bas_gigaset-y := bas-gigaset.o isocdata.o
Expand Down
68 changes: 68 additions & 0 deletions drivers/isdn/gigaset/dummyll.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/*
* Dummy LL interface for the Gigaset driver
*
* Copyright (c) 2009 by Tilman Schmidt <[email protected]>.
*
* =====================================================================
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
* =====================================================================
*/

#include "gigaset.h"

void gigaset_skb_sent(struct bc_state *bcs, struct sk_buff *skb)
{
}
EXPORT_SYMBOL_GPL(gigaset_skb_sent);

void gigaset_skb_rcvd(struct bc_state *bcs, struct sk_buff *skb)
{
}
EXPORT_SYMBOL_GPL(gigaset_skb_rcvd);

void gigaset_isdn_rcv_err(struct bc_state *bcs)
{
}
EXPORT_SYMBOL_GPL(gigaset_isdn_rcv_err);

int gigaset_isdn_icall(struct at_state_t *at_state)
{
return ICALL_IGNORE;
}

void gigaset_isdn_connD(struct bc_state *bcs)
{
}

void gigaset_isdn_hupD(struct bc_state *bcs)
{
}

void gigaset_isdn_connB(struct bc_state *bcs)
{
}

void gigaset_isdn_hupB(struct bc_state *bcs)
{
}

void gigaset_isdn_start(struct cardstate *cs)
{
}

void gigaset_isdn_stop(struct cardstate *cs)
{
}

int gigaset_isdn_register(struct cardstate *cs, const char *isdnid)
{
pr_info("no ISDN subsystem interface\n");
return 1;
}

void gigaset_isdn_unregister(struct cardstate *cs)
{
}

0 comments on commit aaba2b3

Please sign in to comment.