Interrupt issue

Jouni Malinen jkmaline
Thu May 22 19:35:16 PDT 2003


On Sat, May 24, 2003 at 11:17:55AM +0900, imp wrote:

> I use lastest CVS version and I already report about the interrupt related issue...
> Today, I found one reason.. 
> 
> If we only use
>         hfa384x_events_only_cmd(dev); <-------------------
> 
>         if (initial) {
>                 /* get card version information */
>                 prism2_get_version_info(dev, HFA384X_RID_NICID, "NIC");

> in prism2_hw_init () function nobody did not enable interrupt then at least of my environment 
> It did not running correct interrupt dispatching..

hfa384x_events_only_cmd() unmasks command completion event and it is the
only event that should be needed during initialization. 

> So, I add 
> 
>         hfa384x_enable_interrupts(dev); // should enable it here to proper dispatcing...	<<<<<<<<<<<<<<<<<<
>         hfa384x_events_only_cmd(dev);

Do you mean that you only added that one line and left
hfa384x_events_only_cmd() after it? The latter call will override the
IntEn mask set by the first call.. The only difference with this would
be in ACKing all pending interrupts (there should not be any) by
hfa384x_enable_interrupts(). I don't see how this could cause the
problem you reported. Can you duplicate the problem by removing that
enable_interrupts call and recompiling the driver? If yes, could you
please test adding following line before events_only_cmd instead of
calling enable_interrupts:

    HFA384X_OUTW(0xffff, HFA384X_EVACK_OFF);

(i.e., only the ACKing part of enable_interrupts)

-- 
Jouni Malinen                                            PGP id EFC895FA




More information about the Hostap mailing list