1. 21 4月, 2008 2 次提交
    • J
      [ISDN] Hisax: eliminate many unnecessary references to CardType[] · 8349304d
      Jeff Garzik 提交于
      For the vast majority of CardType[card->typ] uses (but not all!),
      the string is constant for each driver.  Therefore, we may replace
      CardType[card->typ] with the actual string describing the driver, making
      each printk() a bit more simple.
      
      This also has the nice, intended side effect of greatly reducing
      external references to hisax global CardType[].  This will be of value
      once the ISDN drivers are converted to the ISA/PCI/PNP hotplug APIs.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      8349304d
    • J
      [ISDN] HiSax: modularization prep · d38c8475
      Jeff Garzik 提交于
      Pass a function pointer into the core HiSax probe function checkcard(),
      in order to facilitate modular drivers passing in their own setup
      routines.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      d38c8475
  2. 14 4月, 2008 1 次提交
  3. 08 3月, 2008 1 次提交
  4. 06 3月, 2008 1 次提交
  5. 05 3月, 2008 2 次提交
  6. 10 2月, 2008 4 次提交
    • S
      isdn: fix section mismatch warning for ISACVer · f4e64333
      Sam Ravnborg 提交于
      Fix following warnings:
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x19723): Section mismatch in reference from the function ISACVersion() to the variable .devinit.data:ISACVer
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x2005b): Section mismatch in reference from the function setup_avm_a1_pcmcia() to the function .devinit.text:setup_isac()
      
      ISACVer were only used from function annotated __devinit
      so add same annotation to ISACVer.
      One af the fererencing functions missed __devinit so add it
      and kill an additional warning.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Acked-by: NKarsten Keil <kkeil@suse.de>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f4e64333
    • S
      isdn: fix section mismatch warnings from hisax_cs_setup_card · 2fddb6e2
      Sam Ravnborg 提交于
      Fix the following warnings:
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x722): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_teles3()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x72c): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_s0box()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x736): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_telespci()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x747): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_avm_pcipnp()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x74e): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_elsa()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x755): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_diva()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x75c): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_sedlbauer()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x763): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_netjet_s()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x76a): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_hfcpci()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x771): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_hfcsx()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x778): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_niccy()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x77f): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_bkm_a4t()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x786): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_sct_quadro()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x78d): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_gazel()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x794): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_w6692()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x79b): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_netjet_u()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x7a2): Section mismatch in reference from the function hisax_cs_setup_card() to the function .devinit.text:setup_enternow_pci()
      
      checkcard() are the only user of hisax_cs_setup_card().
      And checkcard is only used during init or when hot plugging
      ISDN devices. So annotate hisax_cs_setup_card() with __devinit.
      checkcard() is used by exported functions so it cannot be
      annotated __devinit. Annotate it with __ref so modpost
      ignore references to _devinit section.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Acked-by: NKarsten Keil <kkeil@suse.de>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2fddb6e2
    • S
      isdn: fix section mismatch warnings in isac.c and isar.c · d348c2a3
      Sam Ravnborg 提交于
      Fix the following warnings:
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x1b276): Section mismatch in reference from the function inithscxisac() to the function .devinit.text:clear_pending_isac_ints()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x1b286): Section mismatch in reference from the function inithscxisac() to the function .devinit.text:initisac()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x1fec7): Section mismatch in reference from the function AVM_card_msg() to the function .devinit.text:clear_pending_isac_ints()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x21669): Section mismatch in reference from the function AVM_card_msg() to the function .devinit.text:clear_pending_isac_ints()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x21671): Section mismatch in reference from the function AVM_card_msg() to the function .devinit.text:initisac()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x2991e): Section mismatch in reference from the function Sedl_card_msg() to the function .devinit.text:clear_pending_isac_ints()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x29936): Section mismatch in reference from the function Sedl_card_msg() to the function .devinit.text:initisac()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x2993e): Section mismatch in reference from the function Sedl_card_msg() to the function .devinit.text:initisar()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x2e026): Section mismatch in reference from the function NETjet_S_card_msg() to the function .devinit.text:clear_pending_isac_ints()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x2e02e): Section mismatch in reference from the function NETjet_S_card_msg() to the function .devinit.text:initisac()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x37813): Section mismatch in reference from the function BKM_card_msg() to the function .devinit.text:clear_pending_isac_ints()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x37823): Section mismatch in reference from the function BKM_card_msg() to the function .devinit.text:initisac()
      
      initisar(), initisac() and clear_pending_isac_ints()
      were all used via a cardmsg fnction - which may be called
      ouside __devinit context.
      So remove the bogus __devinit annotation of the
      above three functions to fix the warnings.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Acked-by: NKarsten Keil <kkeil@suse.de>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d348c2a3
    • S
      isdn: fix section mismatch warning in hfc_sx.c · 7740ac6a
      Sam Ravnborg 提交于
      Fix the following warning:
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x35818): Section mismatch in reference from the function hfcsx_card_msg() to the function .devinit.text:inithfcsx()
      
      hfcsx_card_msg() may be called outside __devinit context.
      Following the program logic is looks like the CARD_INIT branch
      will only be taken under __devinit context but to be consistent
      remove the __devinit annotation of inithfcsx() so we
      do not mix non-__devinit and __devinit code.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Acked-by: NKarsten Keil <kkeil@suse.de>
      Cc: Jeff Garzik <jgarzik@pobox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7740ac6a
  7. 09 2月, 2008 1 次提交
  8. 08 2月, 2008 1 次提交
    • S
      [ISDN]: fix section mismatch warning in enpci_card_msg · 054b0e2b
      Sam Ravnborg 提交于
      Fix following warnings:
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x3cf50): Section mismatch in reference from the function enpci_card_msg() to the function .devinit.text:Amd7930_init()
      WARNING: drivers/isdn/hisax/built-in.o(.text+0x3cf85): Section mismatch in reference from the function enpci_card_msg() to the function .devinit.text:Amd7930_init()
      
      enpci_card_msg() can be called outside __devinit context
      referenced function should not be annotated __devinit.
      
      Remove annotation of Amd7930_init to fix this.
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      054b0e2b
  9. 07 2月, 2008 13 次提交
  10. 03 2月, 2008 3 次提交
  11. 26 1月, 2008 1 次提交
  12. 25 1月, 2008 2 次提交
  13. 04 1月, 2008 2 次提交
    • M
      [ISDN]: i4l: Fix DLE handling for i4l-audio · 7fde4d77
      Matthias Goebl 提交于
      The DLE handling in i4l-audio seems to be broken.
      
      It produces spurious DLEs so asterisk 1.2.24 with chan_modem_i4l
      gets irritated, the error message is:
      "chan_modem_i4l.c:450 i4l_read: Value of escape is ^ (17)".
      -> There shouldn't be a DLE-^.
      If a spurious DLE-ETX occurs, the audio connection even dies.
      I use a "AVM Fritz!PCI" isdn card.
      
      I found two issues that only appear if ISDN_AUDIO_SKB_DLECOUNT(skb) > 0:
      - The loop in isdn_tty.c:isdn_tty_try_read() doesn't escape a DLE if it's
        the last character.
      
      - The loop in isdn_common.c:isdn_readbchan_tty() doesn't copy its characters,
        it only remembers the last one ("last = *p;").
      
        Compare it with the loop in isdn_common.c:isdn_readbchan(), that *does*
        copy them ("*cp++ = *p;") correctly.
        The special handling of the "last" character made it more difficult.
        I compared it to linux-2.4.19: There was no "last"-handling and both loops
        did escape and copy all characters correctly.
      Signed-off-by: NMatthias Goebl <matthias.goebl@goebl.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7fde4d77
    • M
      [ISDN] i4l: 'NO CARRIER' message lost after ldisc flush · 00409bb0
      Matthias Goebl 提交于
      The ISDN tty layer doesn't produce a 'NO CARRIER' message after hangup.
      
      I suppose it broke when tty_buffer_flush() has been added to
      tty_ldisc_flush() in the commit below.
      
      For isdn_tty_modem_result(RESULT_NO_CARRIER..) the
      message inserted via isdn_tty_at_cout() -> tty_insert_flip_char()
      is flushed immediately by tty_ldisc_flush() -> tty_buffer_flush().
      More annoyingly, the audio abort sequence DLE-ETX is also lost.
      
      This patch fixes only active audio connections, because I assume that nobody
      changes the line discipline for audio.
      
      For non-audio connections the problem remains.
      Maybe we can remove the tty_ldisc_flush() in isdn_tty_modem_result()
      at all because it's done at tty_close?
      
      On Mon, May 07, 2007 at 04:05:57PM -0500, Paul Fulghum wrote:
      > Flush the tty flip buffer when the line discipline
      > input queue is flushed, including the user call
      > tcflush(TCIFLUSH/TCIOFLUSH). This prevents unexpected
      > stale data after a user application calls tcflush().
      >
      > Cc: Alan Cox <alan@lxorguk.org.uk>
      > Cc: Antonino Ingargiola <tritemio@gmail.com>
      > Signed-off-by: Paul Fulghum <paulkf@microgate.com>
      >
      > --- a/drivers/char/tty_io.c	2007-05-04 05:46:55.000000000 -0500
      > +++ b/drivers/char/tty_io.c	2007-05-05 03:23:46.000000000 -0500
      > @@ -1240,6 +1263,7 @@ void tty_ldisc_flush(struct tty_struct *
      >  			ld->flush_buffer(tty);
      >  		tty_ldisc_deref(ld);
      >  	}
      > +	tty_buffer_flush(tty);
      [..]
      Signed-off-by: NMatthias Goebl <matthias.goebl@goebl.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      00409bb0
  14. 04 12月, 2007 1 次提交
  15. 30 11月, 2007 1 次提交
    • I
      isdn: bootup crash fix · 9fc89c2d
      Ingo Molnar 提交于
      got this HiSax bootup crash on a "make randconfig" bzImage bootup:
      
       Calling initcall 0xc0bb1320: HiSax_init+0x0/0x380()
       HiSax: Linux Driver for passive ISDN cards
       HiSax: Version 3.5 (kernel)
       HiSax: Layer1 Revision 2.46.2.5
       HiSax: Layer2 Revision 2.30.2.4
       HiSax: TeiMgr Revision 2.20.2.3
       HiSax: Layer3 Revision 2.22.2.3
       HiSax: LinkLayer Revision 2.59.2.4
       HiSax: Total 1 card defined
       HiSax: Card 1 Protocol EDSS1 Id=HiSax (0)
       HiSax: HFC-S driver Rev. 1.10.2.4
       HFCS: defined at 0x500 IRQ 5 HZ 250
       Teles 16.3c: IRQ 5 count 0
       HFCS: resetting card
       Teles 16.3c: IRQ 5 count 0
       Teles 16.3c: IRQ(5) getting no interrupts during init 1
       HFCS: resetting card
       ------------[ cut here ]------------
       kernel BUG at include/linux/timer.h:145!
       invalid opcode: 0000 [#1] PREEMPT DEBUG_PAGEALLOC
       Modules linked in:
      
       Pid: 1, comm: swapper Not tainted (2.6.24-rc3 #2045)
       EIP: 0060:[<c063afbf>] EFLAGS: 00010286 CPU: 0
       EIP is at hfcs_card_msg+0x15f/0x180
       EAX: c0cf2e5c EBX: 000000f2 ECX: 00000000 EDX: ffff1193
       ESI: f76e8000 EDI: f76e8000 EBP: f7c23ec4 ESP: f7c23eac
        DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
       Process swapper (pid: 1, ti=f7c22000 task=f7c0e000 task.ti=f7c22000)
       Stack: 00000000 f7c23ec4 c011703b 00000002 f76e8000 00000000 f7c23ef8 c060c3e5
              c0a7c9c0 c0a315dc 00000005 00000001 00000000 f7c23f34 00000000 c0b5c9c0
              f7c23f34 00000000 c0f5a8e0 f7c23f80 c0bb154f 00000000 00000001 c0a9b5b9
       Call Trace:
        [<c010339a>] show_trace_log_lvl+0x1a/0x40
        [<c0103469>] show_stack_log_lvl+0xa9/0xe0
        [<c010355f>] show_registers+0xbf/0x200
        [<c01037a4>] die+0x104/0x220
        [<c0103943>] do_trap+0x83/0xc0
        [<c0103ca8>] do_invalid_op+0x88/0xa0
        [<c083621a>] error_code+0x6a/0x70
        [<c060c3e5>] checkcard+0x4a5/0x620
        [<c0bb154f>] HiSax_init+0x22f/0x380
        [<c0b867b7>] kernel_init+0x97/0x2a0
        [<c0102f87>] kernel_thread_helper+0x7/0x20
        =======================
       Code: e8 43 ae ff 8b 57 3c 85 d2 0f 84 ef fe ff ff b8 a0 99 ad c0 b9 02 00 00 00 e8 ce 11 ae ff 83 c4 0c b8 00 00 00 00 5b 5e 5f c9 c3 <0f> 0b eb fe 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90
       EIP: [<c063afbf>] hfcs_card_msg+0x15f/0x180 SS:ESP 0068:f7c23eac
       Kernel panic - not syncing: Attempted to kill init!
      
      The box has no HiSax card installed.
      
      the reason for the crash is add_timer() done on an already running
      timer. This happens because for some reason CARD_INIT is called twice.
      
      this patch works this problem around by using mod_timer() - this gets
      a booting system - but it would be nice to figure out why CARD_INIT
      is done twice.
      
      the ISDN config section (generated via make randconfig) is this:
      
      #
      # ISDN feature submodules
      #
      # CONFIG_ISDN_DRV_LOOP is not set
      CONFIG_ISDN_DIVERSION=y
      
      #
      # ISDN4Linux hardware drivers
      #
      
      #
      # Passive cards
      #
      CONFIG_ISDN_DRV_HISAX=y
      
      #
      # D-channel protocol features
      #
      CONFIG_HISAX_EURO=y
      CONFIG_DE_AOC=y
      # CONFIG_HISAX_NO_SENDCOMPLETE is not set
      # CONFIG_HISAX_NO_LLC is not set
      # CONFIG_HISAX_NO_KEYPAD is not set
      CONFIG_HISAX_1TR6=y
      CONFIG_HISAX_NI1=y
      CONFIG_HISAX_MAX_CARDS=8
      
      #
      # HiSax supported cards
      #
      CONFIG_HISAX_16_0=y
      # CONFIG_HISAX_16_3 is not set
      # CONFIG_HISAX_TELESPCI is not set
      CONFIG_HISAX_S0BOX=y
      # CONFIG_HISAX_AVM_A1 is not set
      CONFIG_HISAX_FRITZPCI=y
      CONFIG_HISAX_AVM_A1_PCMCIA=y
      CONFIG_HISAX_ELSA=y
      CONFIG_HISAX_IX1MICROR2=y
      CONFIG_HISAX_DIEHLDIVA=y
      # CONFIG_HISAX_ASUSCOM is not set
      # CONFIG_HISAX_TELEINT is not set
      CONFIG_HISAX_HFCS=y
      # CONFIG_HISAX_SEDLBAUER is not set
      CONFIG_HISAX_SPORTSTER=y
      # CONFIG_HISAX_MIC is not set
      # CONFIG_HISAX_NETJET is not set
      # CONFIG_HISAX_NETJET_U is not set
      # CONFIG_HISAX_NICCY is not set
      # CONFIG_HISAX_ISURF is not set
      # CONFIG_HISAX_HSTSAPHIR is not set
      # CONFIG_HISAX_BKM_A4T is not set
      # CONFIG_HISAX_SCT_QUADRO is not set
      # CONFIG_HISAX_GAZEL is not set
      # CONFIG_HISAX_HFC_PCI is not set
      # CONFIG_HISAX_W6692 is not set
      # CONFIG_HISAX_HFC_SX is not set
      # CONFIG_HISAX_DEBUG is not set
      
      #
      # HiSax PCMCIA card service modules
      #
      
      #
      # HiSax sub driver modules
      #
      CONFIG_HISAX_ST5481=y
      CONFIG_HISAX_HFCUSB=y
      # CONFIG_HISAX_HFC4S8S is not set
      CONFIG_HISAX_FRITZ_PCIPNP=y
      CONFIG_HISAX_HDLC=y
      
      #
      # Active cards
      #
      CONFIG_ISDN_DRV_ICN=m
      CONFIG_ISDN_DRV_PCBIT=m
      CONFIG_ISDN_DRV_SC=y
      # CONFIG_ISDN_DRV_ACT2000 is not set
      CONFIG_HYSDN=m
      # CONFIG_ISDN_DRV_GIGASET is not set
      # CONFIG_ISDN_CAPI is not set
      CONFIG_PHONE=y
      CONFIG_PHONE_IXJ=m
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Cc: Karsten Keil <kkeil@suse.de>
      Cc: Kai Germaschewski <kai@germaschewski.name>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9fc89c2d
  16. 27 11月, 2007 1 次提交
  17. 15 11月, 2007 2 次提交
  18. 06 11月, 2007 1 次提交