Subject: Re: config ROM
To: Michael van Elst <mlelstv@serpens.de>
From: Rishabh Kumar Goel <rishabh@soc-soft.com>
List: tech-misc
Date: 10/30/2003 20:31:17
i guess i did not explain my problem properly to u. I m getting Too many RQpkt 
for the same TLABEL. and i want to know how can this happen? This will also 
be able to figure out why we get infinite BUSREST and SELFIDCOMPLETE 
interrupts.  According to me we should get only one RQpkt? For the same code 
this is happening only on my new disk the other disk is woking smoothly with 
this patch.

Also the Request tx complete (fwohci_at_done) should be called more frquently 
as the control comes to this function only after the config read is complete, 
which leads to utilization of too many descriptors. 

I believe this problem can be taken care if we have only one isr that does the 
job of fwohci_event_thread and the function to be called are called as tasks, 
the way u implemented with fwnode.

In case of my new HDD, i fall short of the descriptors, and hence i have to 
increase the value of

fwohcivar.h
#define	OHCI_BUF_ATRQ_CNT	(8*8*8) from 8*8.
The way isr is written i believe this is what is thought of but its not 
happening. I believe that is the idea behind in completing ReqTxComplete and 
RespTxComplete functions before RQpkt and RSpkt.


On Thursday 30 Oct 2003 2:20 pm, you wrote:
> On Thu, Oct 30, 2003 at 07:20:13PM +0000, Rishabh Kumar Goel wrote:
> > hey can u tell me what is the condition in which i can get the ISR to be
> > executed number of times. Well i patched the code a its working fine with
> > the other drive but with the new drive i just get too many RQpkt.
>
> You cannot set a repeat of count of such. Instead you set what
> interrupt routine is called next.
>
> Currently the fwnode_configrom_input is set when
>
> ab->ab_retlen > (ab->ab_length / 4)
>
> At that point ab->ab_retlen contains the number of quads of the
> configrom and ab->ab_length is the number of bytes read. The
> original code then calls for a read of that number of quads
> in a single READ_REQ_BLOCK. When that's done the fwnode_configrom_input
> routine is called again and ab->ab_length should reflect the number
> of bytes read. This has to complete until all bytes have been
> read.
>
> Obviously this requires more work. For example the current code
> doesn't append new bytes and it also sets the ab_retlen value to 0
> at the beginning instead of decrementing it.
>
> > On Thursday 30 Oct 2003 12:54 pm, you wrote:
> > > On Thu, Oct 30, 2003 at 06:02:48PM +0000, Rishabh Kumar Goel wrote:
> > > > hi the patch that u send me will no work and will lead you into an
> > > > infinite loop. as ur p1212_iscomplete will keep on updating the
> > > > ab->ab_length value.
> > >
> > > Then I have to think a bit about the termination condition of the loop,
> > > which is therefore incorrect even in the original code.
> >
> > This condition can be checked in fwohci_read().
>
> I don't think so. fwohci_read() is a generic routine which does what
> it is made for. The test needs to be done in the fwnode module.

-- 
Regards,
Rishabh Kumar Goel
Software Engineer
SoCrates Software India Pvt. Ltd.
Bangalore

Scanned by SecureSynergy VirusScreen Service. 
For more information log on to : http://www.securesynergyonline.com or http://www.securesynergy.com