Commit Graph

65 Commits

Author SHA1 Message Date
mcr aa7bfea672 split pccbb_intr_route() into seperate function. 2001-07-06 18:06:59 +00:00
soren 281f1795a4 Add TI 1410 to yc_chipsets[]. 2001-05-19 19:46:08 +00:00
jmc 36d8e99d14 Cast args correctly to match format strings. 2001-04-30 02:49:04 +00:00
thorpej 909f3d7efb splimp -> splvm (use IPL_IMP needs to be revisited). 2001-04-12 18:18:31 +00:00
enami 79d20d7c7a - Initialize auto variable (win[{0,1}].win_flags).
- If PCCBB_MEM_CACHABLE isn't set, clear CB_BCR_PREFETCH_MEMWIN[01].
2001-02-22 10:39:31 +00:00
jdolecek 522f569810 make some more constant arrays 'const' 2001-02-21 21:39:52 +00:00
minoura a7d1fe9920 Correct the 1st argument for pci_conf_{read,write}.
On non-i386 platforms the previous revision could not be compiled.
Pointed out by mjl.
2001-02-21 00:32:31 +00:00
minoura 3b418f4eec Re-initialize more registers after resuming from suspend.
Some APM BIOSes do not restore them.
Reviewd by haya.
2001-02-20 15:16:38 +00:00
haya d413da0c4a BUG FIX: calculate address line mask in pccbb_pcmcia_io_alloc() when
start address is not set.
2001-02-09 10:41:50 +00:00
itohy 5ce651390d Fix problem where tsleep() is used not on the cardbus thread.
This change makes PCMCIA cards work again on my machine.

Unfortunately, some of the DELAY_MS() are called when the current
process is not the cardbus thread, that is, on interrupt contexts.
I confirmed these are actually used in interrupt context and replaced
them with delay()s.  However, I haven't confirmed other DELAY_MS()s
are always on the cardbus thread.

This shall be a temporary fix.  The driver needs being rewritten
not to use such delay()s, of course.
2001-01-30 07:23:14 +00:00
haya c54894efe9 IMPROVEMENT: use tsleep() instead of delay(). Kernel do not stop
during card insertion, deletion and power change.
2001-01-24 10:10:04 +00:00
augustss 22a541e778 Add a comment. 2001-01-22 01:13:47 +00:00
haya 193fd06950 Fix comment. 2001-01-17 08:37:09 +00:00
augustss 2c65dfb9b5 Be less talkative in attach. 2000-12-30 00:37:24 +00:00
sommerfeld 851de295eb Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
2000-12-28 22:59:06 +00:00
mycroft 1ac1248e45 Turn off the damned TI `VCC protection' bit. 2000-12-08 21:51:02 +00:00
haya 2b0374c5d9 WORKAROUND: CardBus bridge avoids turning off the power of channel in
shutdown hook when the bridge chip is TI113X.  Because PowerBook 2400
hangs here.
2000-12-08 10:24:14 +00:00
haya 92f11ef3d3 BUG FIX: change enable sequence for 16-bit pcmcia cards. This change
provides better (not perfect) reset sequence.  The most significant
change is asserting output enable reg before power up.  Stop routing
interrupt during reset.
2000-11-28 09:11:36 +00:00
haya 02aaf95f67 BUG FIX: pccbb turns off PC Cards' power on the bus in shutdown hook.
Some machines cannot reboot without this fix.
2000-11-27 09:04:32 +00:00
haya b44679b7ec Bugfix: reset 16-bit pcmcia in chip initialisation sequence. 2000-10-25 09:15:58 +00:00
haya 128fa6e8fb Correct PCI interrput setup routine for Texas Instruments PCI113X.
Now PCI113X is able to handle hot insertion and deletion properly.
2000-08-28 09:26:38 +00:00
jhawk 469c88cc11 Clarify that the RX5C47X requires writes to the PCI_LEGACY to
disable and not PCI_BCR_INTR; this is what rev 1.9 did under
the label of "Maintenance."
2000-07-09 22:06:02 +00:00
jhawk e6e9cc5c41 Move legacy pcic-mode disabling code from pccbb_chipinit() to
pccbbattach(). This is necessary as pccbb_chipinit() is deferred, and
may not run until after the pcic is already attached.

Now pcics are properly disabled on Sony VAIO, f'rinstance.
2000-07-09 21:58:30 +00:00
cgd eee18e1f6c beat back the undead: __BROKEN_INDIRECT_CONFIG had risen, and was
terrorizing innocent hackers...
2000-06-16 23:41:33 +00:00
haya b6a821f042 Change IPL when bridge's interrupt handler calls child device's
interrupt handler (This solution is not very good).
2000-06-08 10:28:28 +00:00
haya dca97557cd Add CB_BCR_RESET_ENABLE in bridge control resister's bit definition. 2000-06-07 09:02:46 +00:00
kleink de328af944 Fix a inverted logic botch introduced in rev. 1.35, typically causing
cb_chipset() to return the wrong chipset type.
2000-05-08 07:31:20 +00:00
haya 7bc5a1ca36 Add CardBus interrupt enable flag. When this flag is asserted, a
CardBus interrupt is routed to the child devices and vice versa.  This
flag is negated when a pccbb receives a suspend or stanby event.
2000-04-06 09:11:57 +00:00
thorpej fc96443d15 New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.
2000-03-23 07:01:25 +00:00
haya ddd36bd41a 1. Do not apply 5 V on a CardBus card.
2. Do not avoid ISA hole when a device requires more than
   256-byte io space.
3. Remove sending CardBus bridge's function number to
   cardbus stack.  This number is not needed for anyone.
2000-03-22 09:35:06 +00:00
enami 60ed7cfb2b Simplify the code a bit. 2000-03-14 10:26:10 +00:00
enami 70b8e188ee Don't think that a card is inserted if there is a card already in the slot.
Note that powerdown hook calls pccbbintr so that it detect card insertion or
removal during suspension.
2000-03-14 10:23:16 +00:00
enami d454505125 Cosmetic change. 2000-03-14 10:20:09 +00:00
enami b3cf850817 Fix typos in comments. 2000-03-14 01:29:30 +00:00
mycroft e750135b5e A few things:
* Initialize PCIC_INTR and PCIC_CSC_INTR on all chips, not just TI.
* Leave card detect interrupts enabled in PCIC_CSC_INTR.  (This requires
  reading PCIC_CSC in the interrupt handler on some chips, so do that too.)
* Leave PCIC_INTR_ENABLE set, as some chips require this to post card detect
  interrupts while in PCMCIA mode.
* Leave PCIC_INTR_RESET (which is inverted) set at all times *except* when
  powering up a socket, as some chips will use it to drive RESET# low even
  while a CardBus card is in the slot.

This makes PCMCIA and CardBus cards works with some TI chips.  Cross-checked
with a Toshiba ToPIC 95B.
2000-03-12 11:31:53 +00:00
mycroft 602faa83a8 Do *not* fiddle with the serial/parallel IRQ mode selection on TI chips.
Without extensive probing, we cannot possibly know that we're doing the right
thing.

Also some stylistic changes.
2000-03-12 04:34:29 +00:00
mycroft c7a13f6116 Revert the previous change. It does not match the commit message *and* was
incomplete (and probably quite broken).
2000-03-12 04:25:57 +00:00
haya 173f823e3a Only apply power on 3.3 V CardBus card (there are no 5 V CardBus card.) 2000-03-10 11:08:49 +00:00
thorpej 285a315e99 Simplify the winlist code. 2000-03-01 23:40:26 +00:00
haya d94804a788 Pccbb maintains the interrupt handlers for 16-bit PC Cards
by itself.
Add some comments.
2000-02-23 07:28:54 +00:00
enami b785bb47a0 Establish a powerhook and make sure the card detect interrupt is enabled
after resume from suspend, as i82365.c does.
This is a workaround for newer Sony VAIO notebook.
Patch is submitted by Atsushi Onoe (onoe@sm.sony.co.jp) in PR#9463.
2000-02-22 02:35:26 +00:00
thorpej 70bbb1b84e Sync PCMCIA memory mapping with a change from rev 1.47 of i82365.c:
always map attr memory 8 bit, since its defined that way. (chopps)
2000-02-21 01:44:36 +00:00
cgd dbeafc9dbe clean up some printfs 2000-02-06 08:14:13 +00:00
chopps 101848d272 run this through indent with some comment cleanup -- more knfing needed. 2000-02-05 18:20:08 +00:00
haya 639bd74d21 Pccbb manages interrupt handlers by itself for its child device. 2000-01-26 09:02:41 +00:00
joda 492bfe70f3 get the device name from pcidevs instead of having a list here 2000-01-25 14:34:24 +00:00
haya dccf05f858 Do pccbb_chipinit() after YENTA register space allocation.
Add TI PCI 1451 PCI-CardBus entry.
2000-01-25 09:36:43 +00:00
chopps b50b01e020 Don't enable the interrupt until after we cycle the power, disable
interrupt at disable, and make this code look more like the std pcic
code.  From Mycroft and I.
2000-01-25 06:16:34 +00:00
joda 7ac1ad97ba The TI 2030 is a PCI-PCI bridge and doesn't belong here 2000-01-24 15:51:59 +00:00
mycroft 901082bf1e Remove code that should not have been added. 2000-01-23 04:02:19 +00:00