Re: FW from linux-kernel: 2.2.12-pre7 compile failure: sbus audio /

baccala@freesoft.org
Thu, 16 Sep 1999 19:39:58 -0400 (EDT)


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/