[PATCH] yenta: irq-routing for TI bridges...again

Daniel Ritz daniel.ritz at gmx.ch
Tue Mar 9 22:21:00 GMT 2004


On Tuesday 09 March 2004 19:15, Pavel Roskin wrote:
> On Fri, 5 Mar 2004, Daniel Ritz wrote:
> 
> > > mfunc_old is assigned 0 in the beginning of ti12xx_override().  It's never
> > > changed.  Now let's find the third (i.e. the last) "changing mfunc to".
> > > The driver sets mfunc it has printed (00001002), calls yenta_probe_irq()
> > > and then silently restores mfunc_old, which is still 0.  My card needs 2
> > > in that register.  All that needs to be unset is 0x1000.
> >
> > you are right. fixed in the incremental patch attached..
> 
> I don't see any interest to your efforts from anybody who can apply your
> patches.  I wonder if we are wasting time.

linux-pcmcia is a low traffic list with not much people caring about. and
most of them don't have the problem.
and no, i don't think i'm wasting my time.

> 
> > > I appreciate that you restarted this topic, but I double that your
> 
> Spellchecking while sleepy.  I meant "I doubt" and I still do :-(
> 
> > > overengineered patches will be applied, even if you make them work
> > > from the fifth iteration.
> >
> > i think it just sucks that some setups are not working under linux but
> > work under windows (be it with the built-in driver or a modified driver
> > from the notebook manufacter or whatever. the point is: non-technical
> > people cannot just fix it up. for them it's "my pcmcia device is not
> > working...windows is better." that cannot be right)
> 
> I really appreciate that you care about other users.  Many people don't.
> That say, we should write good code to realize our good intentions.
> 
> As I understand, laptops may come with a replacement PCMCIA driver for
> Windows in the standard one doesn't work.  Other the laptop-specific code
> tweaks the registry used by the driver.

registry is the answer to windows problems :)

> 
> We are trying something more ambitious, namely we want one driver to
> support different hardware without user's or system integrator's
> assistance.
> 
> > > I'm believe my patch can be applied even if it doesn't fix all problems
> > > because it's minimal.
> >
> > hmmm...it could hurt. remember the comment in the disabled INTA routing
> > code about falling back from all-serial causes hangs on some setups...
> > there can be setups with uninitialised chips where all-serial (default)
> > is actually right, just mfunc is wrong.
> 
> Please be exact.  I think you mean this:
> 
>         /*
>          * If ISA interrupts don't work, then fall back to routing card
>          * interrupts to the PCI interrupt of the socket.
>          *
>          * Tweaking this when we are using serial PCI IRQs causes hangs
>          *   --rmk
>          */

yes.

> 
> I think you are missing an important fact here.  The comment precedes an
> old patch that didn't check if irqmux (a.k.a mfunc) was 0.
> 
> If irqmux was incorrectly initialized (0 or not 0), then the driver would
> simply not work without that old patch, but it would hang with the patch.
> It's not my understanding of the comment.  In absence of more details I
> assume that the driver was _working_, but stopped working after the patch
> started causing hangs.

maybe yes, maybe it's not a problem if mfunc is 0. i don't know. i didn't add
the comment, so i don't know the details.

> 
> > > You you want your hardware to be fixed, please provide the details
> > > (whether it's an integrated socket, product name, "lspci -v" output,
> > > mfunc and devctl at startup, the values you need), and I'll gladly add
> > > a minimal fixup for your specific hardware.
> >
> > again, my noname craptop has a ti1410 chip which is actually initialized
> > right. (that is serial isa and parallel pci). if it wouldn't work it
> > would take me 3 minutes to fix it up myself. but then it's non-generic.
> > and if you wanna do it specifc you end up looking at the subsystem ids
> > and patching again and again every time a new non-worker is found...
> 
> Well, you are trying to fix a problem that you don't have, and I'm trying
> to fix a problem that I have.
> 
> My patch is based on the assumption that all cards with irqmux
> uninitialized are PCI cards.  I believe that if the hardware designers
> cared to use something more sophisticated than parallel PCI interrupt,
> they also cared to initialize irqmux in hardware.

probably yes. pci cards. but checking for 0 is just not sufficent. it's another
hack IMHO. different chips different defaults.

> 
> If you can challenge my assumption by facts, I'm ready to add support for
> the hardware you show me.  In absence of such hardware, I see no reason to
> add support for it.

a non-initialized TI1510 on a PCI board. please.
there are 1410s on PCI boards (elan digital systems for example) so why
not a 1510 (they're cheaper). google.

> 
> I'm not against generic solutions.  I'm not against supporting XT drives
> on PPC64 or something as rare as that, if the needed changes don't add
> unreasonable complexity.

(not worth a comment)

> 
> I'm against complex solutions for badly defined problems, when we try to
> support buggy hardware we haven't seen by probing it, which can break a
> lot of other hardware, including mass produced systems.

what the f*** is wrong probing the PCI interrput and then the ISA ones
(when they are probed anyway)? it has no downsides on working setups.
we may produce a pci interrupt anyway when redoing card interrogation
on initialization.

> 
> > so you see why my patch didn't work? i cannot really test it. all i can
> > test is if it hurts my working setup....i try to fix a problem other
> > people have.
> 
> OK, who has the problem you are trying to solve?  Where's the description
> of the problem, including devctl and irqmux values?  Alternatively, who
> should I ask to give me details?

check the CC, for more cases search in list archives. (not only the linux lists,
also look in xBSD lists)

> 
> -- 
> Regards,
> Pavel Roskin
> 
> 

-daniel




More information about the linux-pcmcia mailing list