Bug 125398 - (hisax) System freezes when dialing out using NetJet ISDN card (kernel 2.6)
System freezes when dialing out using NetJet ISDN card (kernel 2.6)
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
2
athlon Linux
medium Severity high
: ---
: ---
Assigned To: Dave Jones
Brian Brock
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2004-06-06 05:31 EDT by pavel
Modified: 2015-01-04 17:06 EST (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2005-03-29 02:44:57 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description pavel 2004-06-06 05:31:06 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1)
Gecko/20031030

Description of problem:
System works OK under 2.4 kernels. Under 2.6 kernel used in Fedora 2
system can load correct hisax kernel module and works OK untill you
issue command: /sbin/isdnctrl dial $DEVICE
I have tried a few 2.6 kernels and does not work under any.
The modules are loaded by following command.
/sbin/modprobe hisax type=20 protocol=2 id="HiSax"

Version-Release number of selected component (if applicable):
hisax driver of all kernels 2.6

How reproducible:
Always

Steps to Reproduce:
1. Install NetJet ISDN card
2. try to dial an ISP
3. system freezes when dial the number
    

Actual Results:  the system freezes

Expected Results:  get connecte to ISP as it is happening with 2.4 kernels

Additional info:

I have checked logs and it looks exactly same as during correct
dialing with 2.4 kernels. Of course the last line is "kernel: ippp0:
dialing 1 V12345678... DOV" after that system freezes and power has to
be switched off.
Comment 1 pavel 2004-06-06 05:34:30 EDT
If something is not clear, please do not hesitate to contact me.
Comment 2 pavel 2004-06-14 08:37:55 EDT
This bug affect only card with TJ320 chip. Cards with a chip TJ300 are
not affected.
This patch from hisax module author fixes the problem.
Try this patch
--- linux/drivers/isdn/hisax/nj_s.c.old 2004-05-18 17:00:38.000000000
+0200
+++ linux/drivers/isdn/hisax/nj_s.c     2004-05-18 17:00:38.000000000
+0200
@@ -104,9 +104,12 @@
        cs->hw.njet.ctrl_reg = 0xff;  /* Reset On */
        byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg);
        mdelay(10);
-       cs->hw.njet.ctrl_reg = 0x00;  /* Reset Off and status read
clear */
        /* now edge triggered for TJ320 GE 13/07/00 */
        /* see comment in IRQ function */
+       if (cs->subtyp) /* TJ320 */
+               cs->hw.njet.ctrl_reg = 0x40;  /* Reset Off and status
read clear */
+       else
+               cs->hw.njet.ctrl_reg = 0x00;  /* Reset Off and status
read clear */
        byteout(cs->hw.njet.base + NETJET_CTRL, cs->hw.njet.ctrl_reg);
        mdelay(10);
        cs->hw.njet.auxd = 0;
@@ -151,7 +154,7 @@
 int __init
 setup_netjet_s(struct IsdnCard *card)
 {
-       int bytecnt;
+       int bytecnt,cfg;
        struct IsdnCardState *cs = card->cs;
        char tmp[64];
 
@@ -183,6 +186,15 @@
                                printk(KERN_WARNING "NETjet-S: No
IO-Adr for PCI card found\n");
                                return(0);
                        }
+                       /* the TJ300 and TJ320 must be detected, the
IRQ handling is different
+                        * unfortunatly the chips use the same device
ID, but the TJ320 has
+                        * the bit20 in status PCI cfg register set
+                        */
+                       pci_read_config_dword(dev_netjet, 0x04, &cfg);
+                       if (cfg & 0x00100000)
+                               cs->subtyp = 1; /* TJ320 */
+                       else
+                               cs->subtyp = 0; /* TJ300 */
                        /* 2001/10/04 Christoph Ersfeld, Formula-n
Europe AG www.formula-n.com */
                        if ((dev_netjet->subsystem_vendor == 0x55) &&
                                (dev_netjet->subsystem_device == 0x02)) {
@@ -240,8 +252,8 @@
        bytecnt = 256;
 
        printk(KERN_INFO
-               "NETjet-S: PCI card configured at %#lx IRQ %d\n",
-               cs->hw.njet.base, cs->irq);
+               "NETjet-S: %s card configured at %#lx IRQ %d\n",
+               cs->subtyp ? "TJ320" : "TJ300", cs->hw.njet.base,
cs->irq);
        if (!request_region(cs->hw.njet.base, bytecnt, "netjet-s isdn")) {
                printk(KERN_WARNING
                       "HiSax: %s config port %#lx-%#lx already in use\n",

It will be incorporated in a new kernel version.
Comment 3 Dave Jones 2005-03-29 02:44:57 EST
this got merged upstream a while ago, so should be in the current errata.

Note You need to log in before you can comment on or make changes to this bug.