Messages in this thread | | | Date | Thu, 16 Sep 1999 19:39:58 -0400 (EDT) | From | baccala@freesoft ... | Subject | Re: FW from linux-kernel: 2.2.12-pre7 compile failure: sbus audio / ISDN |
| |
On 16 Sep, David Woodhouse wrote: > > kkeil@suse.de said: >> The problem was that foreign.h wasn't in HiSax on the time we make the >> kernel update in 2.2.11, so my patch removed it because here wasn't >> any reference in actual isdn code for it. I think foreign.h was >> included with some update from sparc people (Brent Baccala) before >> 2.2.11. > > As I understand it, those two audio drivers export functions which were used by > a HiSax driver. Putting foreign.h back in will allow them to compile again, but > surely we also want to add back the code which actually makes use of the > exported functions, and allows us to use ISDN on the hardware in question?
The include statements in question are part of a hack to get the Hisax system to do something it wasn't designed for, i.e, exporting ISDN functions to a hardware driver somewhere else in the code tree. I let the hack creap into the mainline code, but it shouldn't have been compiled in unless the compiler requested support for AMD7930/DBRI ISDN in the configuration. The bug is in the preprocessor statement protecting the includes:
#if defined(DBRI_ISDN) || defined (LINUX_VERSION_CODE) ...
this should be:
#if defined(DBRI_ISDN) && defined (LINUX_VERSION_CODE) ...
I'll fix this, but while we're on the subject, the present condition of this code is:
1) amd7930.c in drivers/isdn/hisax is deprecated in favor of foreign.[ch]. The amd7930.c file doesn't actually support the AMD 7930, it just provides the hooks for an AMD 7930 interface which became foreign.c
I made a proposal earlier this year for a new, generic interface that would replace foreign.c, but haven't done anything with it because of time constraints and the problems I've had with the DBRI driver. So, I'd like to see foreign.c reworked to conform to some kind of standard midlevel-to-lowlevel interface, which ISAC/HSCX should use, as well as 7930 and DBRI. This is unrealistic to complete in 2.3.
2) The DBRI driver runs on uni-processor 2.2 kernels and produces sound. If you try to do ISDN with it, it works for a while, then crashes the machine. I don't know why. I've been working on getting the audio code working on SMP machines, and have basically given up on ISDN for the time being. Since I can't boot a 2.2 SMP kernel on my sun4m machines, nor can I compile a 2.3 kernel on 32-bit SPARC, not much progress is being made at this time.
I'm pretty much waiting for somebody else to figure out why sun4m SMP isn't working, or to get 2.3 running on 32-bit SPARC, so I can finish up the audio support on DBRI, which is almost done anyway. ISDN is a different story. Like I said, the code works, but crashes in an unknown location for unknown reasons.
A major obstacle to running ISDN on these chipsets is the lack of clear ISDN support for any passive chipsets other than ISAC/HSCX.
So, I'll fix the #ifdef's in dbri.c/amd7930.c. I suggest moving forward after the 2.4 release on splitting the HiSax code into two distinct modules, one providing generic passive ISDN support, and the other providing ISAC/HSCX-specific support. Then we can cleanly interface things like DBRI and 7930 into the ISDN system. This will be a non-trivial amount of work. -- -bwb
Brent Baccala baccala@freesoft.org
------------------------------------------------------------------------- To receive periodic news about what's happening at freesoft.org, send email to "announce@freesoft.org", with "SUBSCRIBE" as the message, i.e: echo SUBSCRIBE | mail announce@freesoft.org -------------------------------------------------------------------------
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |