Re: fwochi.c and bus_space_barrier()

Sean Bruno <[email protected]>
Newsgroups gmane.os.freebsd.devel.firewire
Message-ID <[email protected]>
On Wed, 2009-04-15 at 19:37 +0200, Andreas Tobler wrote:
> Sean Bruno wrote:
> >>> This looks basically good, but as outlined earlier a driver
> >>> souldn't busy-wait 50ms. Could one of you please test whether
> >>> pause("fwlps", (50 * hz + 999) / 1000) works as a drop-in
> >>> replacement for DELAY(50000) here?
> >> Works fine here!
> >>
> >> Thanks!
> >> Andreas
> >>
> >>
> >>
> > 
> > Ok, time for more testing.  A couple of changes here.
> > 
> > 1.  change busy DELAY() call with pause()
> > 2.  test for lps condition before pause(), if not set pause and retry.
> 
> Fine here, but see that there was no pause needed, strange.
> 
> Andreas
> 
> 
You may want to retry several times.  Like you pointed out in earlier
posts, this issue seems to be a race condition.


> FreeBSD 8.0-CURRENT (GENERIC) #3 r191101:191110M: Wed Apr 15 19:21:30 
> CEST 2009
> You have new mail.
> u60# kldload firewire
> fwohci0: <Texas Instruments TSB12LV23> mem 
> 0x4008000-0x40087ff,0x400c000-0x400ff
> ff at device 4.0 on pci0
> fwohci0: latency timer 24 -> 32.
> fwohci0: cache size 16 -> 16.
> fwohci0: [ITHREAD]
> fwohci0: OHCI version 1.0 (ROM=1)
> fwohci0: No. of Isochronous channels is 4.
> fwohci0: EUI64 00:10:74:60:00:00:ee:a9
> fwohci0: resetting OHCI...done (loop=0)
> fwohci0: lps(80000) set
> fwohci0: Phy 1394a available S400, 3 ports.
> fwohci0: Enable 1394a Enhancements
> fwohci0: Link S400, max_rec 2048 bytes.
> fwohci0: BUS_OPT 0xa002 -> 0xf800a002
> fwohci0: fwohci_set_intr: 1
> firewire0: <IEEE1394(FireWire) bus> on fwohci0
> fwohci0: Initiate bus reset
> fwohci0: fwohci_intr_core: BUS reset
> fwohci0: fwohci_intr_core: node_id=0x00000000, SelfID Count=1, 
> CYCLEMASTER mode
> node:0 link:1 gap:63 spd:2 con:1 pwr:4 p0:1 p1:1 p2:1 i:1 m:0
> firewire0: 1 nodes, maxhop <= 0 capable IRM irm(0)  (me)
> fwohci0: fwohci_set_bus_manager: 0->0 (loop=0)
> firewire0: bus manager 0
> firewire0: fw_phy_config: root_node=-1 gap_count=5
> fwohci0: fwohci_start: maxdesc 2
> fwohci0: start AT DMA status=0
> u60# firewire0: fw_bus_probe:iterate and invalidate all nodes
> firewire0: fw_explore:found myself node(0) fc->nodeid(0) fc->max_node(0)
> bus_explore done
> 
> u60# kldunload firewire
> firewire0: detached
> fwohci0: fwohci_set_intr: 0
> fwohci0: detached
> u60#

Thanks for testing this.  I will see if we can close a PR regarding
unloading the firewire module.

Sean

_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-firewire
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.