| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
return BUS_GENERIC_PROBE for a generic match.
Approved by: re@
Notes:
svn path=/stable/7/; revision=184973
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
Notes:
svn path=/head/; revision=172394
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=170272
|
| |
|
|
|
|
|
|
|
| |
ditto for the isr.
Reviewed/Suggested by: simokawa-san
Notes:
svn path=/head/; revision=170270
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=170232
|
| |
|
|
|
|
|
|
|
| |
filter+ithread handler.
Discussed and reviewed with: bsdimp, simokawa
Notes:
svn path=/head/; revision=170163
|
| |
|
|
|
|
|
|
|
| |
thread to die, since that can cause deadlock with the ISR (in theory).
o Minor cleanup
o comment nit
Notes:
svn path=/head/; revision=169618
|
| |
|
|
| |
Notes:
svn path=/head/; revision=169617
|
| |
|
|
|
|
|
| |
addition.
Notes:
svn path=/head/; revision=167217
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=167208
|
| |
|
|
|
|
|
|
| |
corresponding wakeups. Also, at least some of the comments nearby indicate
that these are fixed-length I/O sleeps.
Notes:
svn path=/head/; revision=167087
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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@
Notes:
svn path=/head/; revision=166901
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(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).
Notes:
svn path=/head/; revision=166786
|
| |
|
|
| |
Notes:
svn path=/head/; revision=166785
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=166742
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=166741
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=161241
|
| |
|
|
|
|
|
|
|
| |
it. We just moved it to be pci specific, so this was causing compile
problems (linking problems, so I didn't notice since I unwisely just
built the module).
Notes:
svn path=/head/; revision=159207
|
| |
|
|
|
|
|
| |
our ISR.
Notes:
svn path=/head/; revision=159206
|
| |
|
|
|
|
|
| |
are needed still.
Notes:
svn path=/head/; revision=159197
|
| |
|
|
| |
Notes:
svn path=/head/; revision=159196
|
| |
|
|
|
|
|
| |
Use a better name for the cbb thread.
Notes:
svn path=/head/; revision=159195
|
| |
|
|
| |
Notes:
svn path=/head/; revision=159194
|
| |
|
|
|
|
|
| |
the bus detaches which can lead to core dumps. This is quite rare.
Notes:
svn path=/head/; revision=159161
|
| |
|
|
|
|
|
| |
purposes only. Additional information may be exported in the future.
Notes:
svn path=/head/; revision=158893
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
Notes:
svn path=/head/; revision=158892
|
| |
|
|
|
|
|
|
|
| |
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).
Notes:
svn path=/head/; revision=158891
|
| |
|
|
| |
Notes:
svn path=/head/; revision=158865
|
| |
|
|
|
|
|
| |
unnecessary.
Notes:
svn path=/head/; revision=158651
|
| |
|
|
|
|
|
| |
helps people with their interrupt storm problem on card eject.
Notes:
svn path=/head/; revision=157803
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the ISR doesn't read the actual socket event register, but instead
reads garbage (usually 0xffffffff, but other times other things).
This totally violates the PCI spec, but happens rarely enough that a
workaround is in order. This adds one test when we have a real
interrupt to service (which is very rare), and doesn't affect the
usualy 'nothing to see here' case at all.
Problem reported by many, but sam@ gave me this workaround after
diagnosing the problem.
Notes:
svn path=/head/; revision=157281
|
| |
|
|
|
|
|
| |
While I'm hear, fix define<sp> to be define<tab>.
Notes:
svn path=/head/; revision=157278
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
socket also supports the voltage. Some XV cards have appeared on the
scene (or cards that report they support XV), and in older machines
that have sockets that do not support XV, we were bogusly trying to
power them at XV rather than at 3.3V. Now, power up the card at the
lowest voltage supported by both the card and the socket.
MFC After: 3 days
Notes:
svn path=/head/; revision=157092
|
| |
|
|
|
|
|
|
|
| |
than just deleting them. Also add comments about why we do this.
Given the current behavior of delete_child, I don't think this changes
anything. It just feels cleaner.
Notes:
svn path=/head/; revision=155434
|
| |
|
|
|
|
|
| |
This also avoids typepunning.
Notes:
svn path=/head/; revision=155316
|
| |
|
|
| |
Notes:
svn path=/head/; revision=153945
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
try very hard to be perfect. However, these attempts broke down when
there were large numbers of resources. We'd not be able to map them all.
Instead, accept that we might pass more range to thse subbus than
might be optimal be able to compute. However, there's little harm in
this and it allows us to pass greater resources through.
# it has been suggested that we allocate a fixed amount of resources
# on attach and give it out upon request. This might not be a bad idea...
Notes:
svn path=/head/; revision=153860
|
| |
|
|
|
|
|
| |
When cbb_debug is on, print the windows that we're mapping.
Notes:
svn path=/head/; revision=153757
|
| |
|
|
| |
Notes:
svn path=/head/; revision=153756
|
| |
|
|
| |
Notes:
svn path=/head/; revision=152193
|
| |
|
|
|
|
|
| |
any interrupts after we turn off the interrupt mask.
Notes:
svn path=/head/; revision=151838
|
| |
|
|
|
|
|
|
|
| |
free the resoruces w/o actually turning off the interrupts. This lead
to interrupt storms if you were to insert a card after kldunloading
the driver.
Notes:
svn path=/head/; revision=151837
|
| |
|
|
|
|
|
|
| |
This gets us probing, but not attaching to, ISA cards. More work
needed since the ISA attach routine is return ENXIO right now :-)
Notes:
svn path=/head/; revision=151457
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
the ExCA spec, and close cousins:
o Write an activate routine that works.
o merge a couple of items from oldcard before they are lost
o write a deactivate routine
I suspect we're still a ways away from having this work, but maybe for
6.1/5.5?
Notes:
svn path=/head/; revision=151308
|
| |
|
|
| |
Notes:
svn path=/head/; revision=151081
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o Rather than just try to turn off EXCA_INTR_RESET, set the entire register
to 0. This is slightly faster, and a better hammer.
o Move attempted clearing of the output enable (EXCA_PWRCTL_OE) back to
after we turn off the power. Modify it to write 0 so that we don't get
Bad Vcc messages on TI bridges (untested, but ru@ sent me a similar patch)
while at the same time avoiding interrupt storms on Ricoh bridges (tested
by me on my Sony).
# Many of my observations of 'breakage' for this patch are due to some bug
# in the load/unload of cbb.ko unlreated to this change. I'll be investigating
# and fixing that bug in the fullness of time.
Notes:
svn path=/head/; revision=151080
|
| |
|
|
| |
Notes:
svn path=/head/; revision=151079
|
| |
|
|
| |
Notes:
svn path=/head/; revision=151078
|
| |
|
|
| |
Notes:
svn path=/head/; revision=150730
|
| |
|
|
|
|
|
|
| |
o Add SMC34C90 to list as well, since I've found enough more data about it
since my original research to know it is appropriate for this driver.
Notes:
svn path=/head/; revision=150728
|