#
ae438af6 |
| 09-Aug-2008 |
Warner Losh <imp@FreeBSD.org> |
While most bridges can bring a card out of reset in 20ms, there are some bridge + card combinations that take longer for reasons unknown. Adjust the timeout to be 100ms on all !RICOH bridges, but lea
While most bridges can bring a card out of reset in 20ms, there are some bridge + card combinations that take longer for reasons unknown. Adjust the timeout to be 100ms on all !RICOH bridges, but leave RICOH at 400ms. The 400ms is "lore" from other open source projects, and I've never see my ricoh bridge chips take this long. Maybe it is the same thing? Maybe a bit should be read instead of a hard-wired pause?
After this adjustment, a few cards that I'd insert and get only: cbb0: card_power: 3V cbb0: card_power: 0V with full debugging enabled would actually try to attach.
Reported by: sam@ (I think) MFC after: 3 days
show more ...
|
Revision tags: release/7.0.0_cvs, release/7.0.0, release/6.3.0_cvs, release/6.3.0 |
|
#
3745c395 |
| 21-Oct-2007 |
Julian Elischer <julian@FreeBSD.org> |
Rename the kthread_xxx (e.g. kthread_create()) calls to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it t
Rename the kthread_xxx (e.g. kthread_create()) calls to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it turns out that most of these calls actually end up being moved back to the thread version when it's added. but we need to make this cosmetic change first.
I'd LOVE to do this rename in 7.0 so that we can eventually MFC the new kthread_xxx() calls.
show more ...
|
#
55aaf894 |
| 30-Sep-2007 |
Marius Strobl <marius@FreeBSD.org> |
Make the PCI code aware of PCI domains (aka PCI segments) so we can support machines having multiple independently numbered PCI domains and don't support reenumeration without ambiguity amongst the d
Make the PCI code aware of PCI domains (aka PCI segments) so we can support machines having multiple independently numbered PCI domains and don't support reenumeration without ambiguity amongst the devices as seen by the OS and represented by PCI location strings. This includes introducing a function pci_find_dbsf(9) which works like pci_find_bsf(9) but additionally takes a domain number argument and limiting pci_find_bsf(9) to only search devices in domain 0 (the only domain in single-domain systems). Bge(4) and ofw_pcibus(4) are changed to use pci_find_dbsf(9) instead of pci_find_bsf(9) in order to no longer report false positives when searching for siblings and dupe devices in the same domain respectively. Along with this change the sole host-PCI bridge driver converted to actually make use of PCI domain support is uninorth(4), the others continue to use domain 0 only for now and need to be converted as appropriate later on. Note that this means that the format of the location strings as used by pciconf(8) has been changed and that consumers of <sys/pciio.h> potentially need to be recompiled.
Suggested by: jhb Reviewed by: grehan, jhb, marcel Approved by: re (kensmith), jhb (PCI maintainer hat)
show more ...
|
#
6e878bc7 |
| 04-Jun-2007 |
Warner Losh <imp@FreeBSD.org> |
Migrate from setting a CARD_OK flag in a shared word, to setting its own entry in the softc. This should allow more of cbb_pci_intr() to migrate to a new cbb_pci_filt() so that we don't have to run
Migrate from setting a CARD_OK flag in a shared word, to setting its own entry in the softc. This should allow more of cbb_pci_intr() to migrate to a new cbb_pci_filt() so that we don't have to run cbb's ISR in almost every case we get an interrupt. We can't just move cbb_pci_intr into cbb_pci_filt because it does things that aren't safe to do from a fast interrupt handler, err I mean from a filter. This is an important first step.
# I wonder if I need to make cardok volatile or not.
show more ...
|
#
16f89cb4 |
| 04-Jun-2007 |
Warner Losh <imp@FreeBSD.org> |
Don't register cb_func_filt if the client driver doesn't have a filter. ditto for the isr.
Reviewed/Suggested by: simokawa-san
|
#
cf924571 |
| 03-Jun-2007 |
Warner Losh <imp@FreeBSD.org> |
Minor filter tweaks: o If we don't have a filter, also check to make sure the card is there before calling the scheduled ISR. This is necessary to help old drivers whose ISRs can't cope with bei
Minor filter tweaks: o If we don't have a filter, also check to make sure the card is there before calling the scheduled ISR. This is necessary to help old drivers whose ISRs can't cope with being called with the hardware missing, which sadly still exist in the tree. This is the main reason why we have an extra layer of indirection for cardbus interrupts. o If the card is no longer present, mark the interrupt as 'handled' rather than 'stray' because this accounts for why the interrupt happened. Stray isn't all bad, since there are other filters that would claim it... o Fix some comments + Add comment about why we check for CARD_OK and touch the hardware in both the filter and ISR. + add a note about why we don't care about Giant + also note that giant can't be taken out in a filter... + Some minor formatting nits on very long comments.
show more ...
|
#
97caddee |
| 31-May-2007 |
Paolo Pisati <piso@FreeBSD.org> |
Make the interrupt handler wrapper capable of correctly support filter+ithread handler.
Discussed and reviewed with: bsdimp, simokawa
|
#
26432f7b |
| 16-May-2007 |
Warner Losh <imp@FreeBSD.org> |
o Don't hold lock over bus_teardown_intr when we're waiting for the thread to die, since that can cause deadlock with the ISR (in theory). o Minor cleanup o comment nit
|
#
af3bdf60 |
| 16-May-2007 |
Warner Losh <imp@FreeBSD.org> |
Better message on cbb resource alloc failure
|
#
a9d4f3de |
| 05-Mar-2007 |
Warner Losh <imp@FreeBSD.org> |
Use different wait channel name for second of two sleeps. Minor commentary addition.
|
#
8c6c85be |
| 04-Mar-2007 |
Warner Losh <imp@FreeBSD.org> |
Reduce the number of retries to 10 from 20 for not_a_card retry test. Add some comments to explain how 10 was picked. 20 was completely arbitrary, at least 10 has some reasoning behind it.
Also, up
Reduce the number of retries to 10 from 20 for not_a_card retry test. Add some comments to explain how 10 was picked. 20 was completely arbitrary, at least 10 has some reasoning behind it.
Also, update the comments about how long we sleep to reflect the new, shorter timeout we use.
show more ...
|
#
8410d79d |
| 27-Feb-2007 |
John Baldwin <jhb@FreeBSD.org> |
Use pause() instead of tsleep()'s on the softc pointer that have no corresponding wakeups. Also, at least some of the comments nearby indicate that these are fixed-length I/O sleeps.
|
#
ef544f63 |
| 23-Feb-2007 |
Paolo Pisati <piso@FreeBSD.org> |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr()
o add an int return code to all fast handlers
o retire INTR_FAST/IH_FAST
For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current
Reviewed by: many Approved by: re@
show more ...
|
#
ca29e6e1 |
| 16-Feb-2007 |
Warner Losh <imp@FreeBSD.org> |
Two changes: (1) change debounce period from 1s to 250ms. This appears to be fine and speeds things up a little. (2) In the middle of cbb_pcic_power_disable_socket we write 0 to the EXCA_INTR
Two changes: (1) change debounce period from 1s to 250ms. This appears to be fine and speeds things up a little. (2) In the middle of cbb_pcic_power_disable_socket we write 0 to the EXCA_INTR register to put the card into reset. However, this turns off CSC interrupts for TI bridges (and maybe others). So no further card insertion events would be noticed. To compensate, after we've gone through the entire power down sequence, turn on EXCA_INTR_ENABLE so that CSC events happen.
#2 should fix the 'dead slot' problem that has been reported after card ejection (but only 16-bit cards).
show more ...
|
#
21de43a1 |
| 15-Feb-2007 |
Warner Losh <imp@FreeBSD.org> |
It turns out that it is easier to not NULL out pccard and cardbus device pointers. They don't change as the children device drivers come and go. Rather, check to see if the device is attached where
It turns out that it is easier to not NULL out pccard and cardbus device pointers. They don't change as the children device drivers come and go. Rather, check to see if the device is attached where we would have checked ! NULL. This solves many asymmetries in the code that likely could lead to crashes when loading/unloading cbb without one or more of the expected children's driver not present.
show more ...
|
#
9d101a95 |
| 15-Feb-2007 |
Warner Losh <imp@FreeBSD.org> |
Fix three bugs: o When detaching all children, try really hard to get all the children list before giving up. This is based on an observation by hans petter selasky in his usb p4 branch. o When
Fix three bugs: o When detaching all children, try really hard to get all the children list before giving up. This is based on an observation by hans petter selasky in his usb p4 branch. o When rescanning devices after a driver is added, abort if we can't get the child list with a message. o when rescanning devices, if the reprobe/attach is successful, save the device for cardbus/pccard.
show more ...
|
Revision tags: release/6.2.0_cvs, release/6.2.0 |
|
#
673c9ca9 |
| 12-Aug-2006 |
Warner Losh <imp@FreeBSD.org> |
Batch of changes: o when turning off the socket for a 16-bit card, write 0 to INTR register rather than just tying to just clear the rest bit. this seems to fix card insert detection after an ej
Batch of changes: o when turning off the socket for a 16-bit card, write 0 to INTR register rather than just tying to just clear the rest bit. this seems to fix card insert detection after an eject on TI bridges (ricoh bridges work either way, apparently). This is a MFp4. o Cope better with TOPIC95 bridges on powerup. According to NetBSD driver, these bridges don't set POWER_STATE, so cope accordingly in our power code. They also need a little extra time to settle, so do that as well. o It appears that we need to turn on/off one of the clocks to the card when we power up/down that socket on a TOPIC97, also from NetBSD. o TOPIC97 bridges need to specifically enable LV card support. Unconditionally do this in the hopes that all laptops that have these chips support LV voltages (they should, since they are required for CardBus). o TOPIC register name regularization. Registers specific to models of TOPIC are now called out as such.
# I need a machine with a TOPIC95 for testing.
show more ...
|
#
5a535f68 |
| 03-Jun-2006 |
Warner Losh <imp@FreeBSD.org> |
Since we turn off the interrupts, we don't need to disestablish our ISR.
|
#
7490082f |
| 03-Jun-2006 |
Warner Losh <imp@FreeBSD.org> |
Move shutdown, and pci specific methods into pccbb_pci.c. Many more are needed still.
|
#
fc7119a7 |
| 03-Jun-2006 |
Warner Losh <imp@FreeBSD.org> |
The interrupt routine is pci specific. Move it into pccbb_pci.c.
|
#
083f44a5 |
| 03-Jun-2006 |
Warner Losh <imp@FreeBSD.org> |
Succeed for writing bus value... nobody that calls must care :-(
|
#
32b35e59 |
| 02-Jun-2006 |
Warner Losh <imp@FreeBSD.org> |
Zero out the devices when they are deleted. We can access the pointer after the bus detaches which can lead to core dumps. This is quite rare.
|
#
2f6303b0 |
| 24-May-2006 |
Warner Losh <imp@FreeBSD.org> |
Suspend the children before we turn off card events in hardware. This was done, I believe, to work around some cards having issues in the suspend case. I think that this helped my Sony VAIO TS505 w
Suspend the children before we turn off card events in hardware. This was done, I believe, to work around some cards having issues in the suspend case. I think that this helped my Sony VAIO TS505 work better when it had certain wireless cards in it and I did a apm -z. I've not tested suspend/resume on other laptops in a long time, so I hope this doesn't cause greif. Please let me know if it does.
show more ...
|
#
1b2ec08c |
| 24-May-2006 |
Warner Losh <imp@FreeBSD.org> |
Fix a race when detaching the cbb worker thread. There were a couple of cases where we didn't take out the lock before setting or clearing a bit. This apparently can lead to a race at kldunload tim
Fix a race when detaching the cbb worker thread. There were a couple of cases where we didn't take out the lock before setting or clearing a bit. This apparently can lead to a race at kldunload time (at least on my Turion64 laptop, never saw it on my Sony Vaio).
show more ...
|
Revision tags: release/5.5.0_cvs, release/5.5.0 |
|
#
c40da00c |
| 16-May-2006 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Since DELAY() was moved, most <machine/clock.h> #includes have been unnecessary.
|