Re: Re: EPIC Vs OpenPIC (RFC)

From: Sarnath Kannan <hidden>
Date: 2001-11-04 10:45:14

Somehow I feel that Patching or changing
the openPIC code would make it shabby.
 Why should we change open_pic code,
just because that EPIC is non-conforming ?
The best is to rewrite open_pic code for
EPIC. ( ofcourse, we can reuse code. )
 I dont find anything wrong with open_pic
interface. If people dont follow standards,
we dont make standards comply with them. We
make them comply with standards.

Sarnath

On Sat, 03 Nov 2001 Dag Nygren wrote :
quoted
Mark A. Greer wrote:


This is along the lines that I was thinking except
add a struct member to specify
quoted
whether edge or level sensitive--i.e., separate
members for hi/lo and edge/level

Actually this evolved after I posted it :-), after I
started
to modify open_pic.c
quoted
What exactly is the "IrqEnable" for?  Is this so you
can set up the IRQ but not
quoted
enable it?  Then the driver can enable it later and
its set up correctly (e.g.,
quoted
I2C)??
Not really, it was more or less a mistake in the first
draft. Would there be a
need
for that ?
quoted
Doesn't the new struct eliminate the need for
"RegOffset"?

Have to think about that when implementing the stuff.
quoted
 And as you noted,
"programmer_switch_irq" probably isn't needed either.
 Right?

Yep, and I also came up with another scheme for the
cascading as the
special handling for chrp is actually.....drum roll....
a cascade!
And it would remove the i8259 refs from the openpic
stuff.
quoted
If you're up to it, how about implementing, testing,
then posting a patch for
quoted
everyone to check out??
I'm trying, but I am a bit scared of destroying too
much of the open_pic
code...

Here is the newest suggestion for that interface:

typedef enum irq_polarity_en {
    OP_IRQ_POS = 1,
    OP_IRQ_NEG = 0
} irq_polarity_type;

typedef enum irq_sense_en {
    OP_IRQ_LEVEL = 1,
    OP_IRQ_EDGE  = 0
} irq_sense_type;

typedef struct op
         PICIrq;
    u_int               Vector;
    u_char              Priority;
    irq_sense_type      IrqSense;
    irq_polarity_type   IrqPolarity;
    irq_polarity_type   IrqPolarity;
    int                 (*CascadeHandler)();
} openpic_irq_def;

typedef struct openpic_def_str {
    struct OpenPIC  *OpenPIC_Addr;
    int             main_pic;
    u_char          RegOffset; /* 0 for "standard", 16
for MPC107 */
    int             programmer_switch_irq;
    openpic_irq_def *IRQdef;    /* The lovest vector
first in the table !!! */
} openpic_def;

Comments?


Dag


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help