Re: [PATCH] ieee1394/ohci1394 : CycleTooLong interrupt management

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry for pollution. I have updated the patch accordingly to your comments.
It seems my mailer don't like tab very much so I send it as an attachment.
I hope this will be ok.

Jean-Baptiste

On Friday 17 March 2006 22:01, Stefan Richter wrote:
> Jean-Baptiste MUR wrote:
> ...
> > Kernel version : 2.6.16-rc4
> 
> (actually plus an ohci1394 patch from the linux1394 development tree)
> 
> ...
> > +                /* If this event occurs, we try to reactivate the "cycle 
> > master" bit. */
> > +                reg_write(ohci, OHCI1394_LinkControlSet, 
> > OHCI1394_LinkControl_CycleMaster);
> ...
> 
> Three minor nits:
> 
> There are tabs replaced by spaces and superfluous line breaks inserted
> in your posting. Take care that the mailer does not mangle whitespace.
> If you cannot prevent this nor switch the mailer, send the patch as
> attachment without recoding (i.e. 7bit encoding, not base64 or the
> like).
> 
> Take care of a maximum line length of 80 characters. For example:
> 
> 		/* Try to reactivate the "cycle master" bit. */
> 		reg_write(ohci, OHCI1394_LinkControlSet,
> 			  OHCI1394_LinkControl_CycleMaster);
> 
> The comment is unnecessary since the actual code is clear enough, at
> least IMO.
> 
> Anyway, thanks again for identifying this problem.
> -- 
> Stefan Richter
> -=====-=-==- --== =---=
> http://arcgraph.de/sr/
> 
diff --git a/drivers/ieee1394/ohci1394.c b/drivers/ieee1394/ohci1394.c
index ab01a54..a240b2a 100644
--- a/drivers/ieee1394/ohci1394.c
+++ b/drivers/ieee1394/ohci1394.c
@@ -580,6 +580,7 @@ static void ohci_initialize(struct ti_oh
 		  OHCI1394_isochRx |
 		  OHCI1394_isochTx |
 		  OHCI1394_postedWriteErr |
+		  OHCI1394_cycleTooLong |
 		  OHCI1394_cycleInconsistent);
 
 	/* Enable link */
@@ -2386,6 +2387,15 @@ static irqreturn_t ohci_irq_handler(int 
 		PRINT(KERN_ERR, "physical posted write error");
 		/* no recovery strategy yet, had to involve protocol drivers */
 	}
+	if (event & OHCI1394_cycleTooLong) {
+		if(printk_ratelimit())
+			PRINT(KERN_WARNING, "isochronous cycle too long");
+		else
+			DBGMSG("OHCI1394_cycleTooLong");
+		reg_write(ohci, OHCI1394_LinkControlSet, 
+			  OHCI1394_LinkControl_CycleMaster);
+		event &= ~OHCI1394_cycleTooLong;
+	}
 	if (event & OHCI1394_cycleInconsistent) {
 		/* We subscribe to the cycleInconsistent event only to
 		 * clear the corresponding event bit... otherwise,

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux