13315 Commits

Author SHA1 Message Date
Søren Schmidt
d78c6e89ae Make certain the the 48bit flag is reset if we dont translate LBA. 2005-05-17 12:31:54 +00:00
Maksim Yevmenkin
b4b485a5d8 Dont clear all flags in vkbd_clear_state_locked(). Clear only COMPOSE flag.
MFC after:	3 days
2005-05-16 17:21:10 +00:00
Bill Paul
02fa4220cd Correct type for workitem routines. 2005-05-16 16:50:52 +00:00
Søren Schmidt
ae337d1ee5 longer used (contents added to sys/ata.h) 2005-05-16 13:39:49 +00:00
Søren Schmidt
6667b30d15 Change the way ioctls are issue to ATA.
The most prominent part is that its now possible to issue ata_requests
directly to say acd0, instead of going through the cumbersome /dev/ata
device.
2005-05-16 13:07:27 +00:00
Warner Losh
ce86397a98 Add convenience functions to get port and interface. 2005-05-16 06:58:43 +00:00
Warner Losh
6b1fe67d59 Print a warning once when trying to bring up interface before firmware load. 2005-05-15 21:02:51 +00:00
Yoshihiro Takahashi
f4acf7e936 Remove old epson note support. 2005-05-15 09:07:42 +00:00
Yoshihiro Takahashi
6959aa373c - Add color tables for 16 colors mode and 8 colors mode, use a different
table on the pc98 console.
- Remove old epson note support.
2005-05-15 09:07:04 +00:00
Yoshihiro Takahashi
8763b97d37 - Mask an underline attribute on the pc98 console. It enables to use the same
color on the pc98 and the others.
- Remove old epson note support.
2005-05-15 08:59:00 +00:00
Yoshihiro Takahashi
b4d6f74dce Remove the ADJUST_CLOCK ioctl on pc98. It's not used at all. 2005-05-15 07:35:49 +00:00
Bill Paul
433d61bb56 Add support for NdisMEthIndicateReceive() and MiniportTransferData().
The Ralink RT2500 driver uses this API instead of NdisMIndicateReceivePacket().

Drivers use NdisMEthIndicateReceive() when they know they support
802.3 media and expect to hand their packets only protocols that want
to deal with that particular media type. With this API, the driver does
not manage its own NDIS_PACKET/NDIS_BUFFER structures. Instead, it
lets bound protocols have a peek at the data, and then they supply
an NDIS_PACKET/NDIS_BUFFER combo to the miniport driver, into which
it copies the packet data.

Drivers use NdisMIndicateReceivePacket() to allow their packets to
be read by any protocol, not just those bound to 802.3 media devices.

To make this work, we need an internal pool of NDIS_PACKETS for
receives. Currently, we check to see if the driver exports a
MiniportTransferData() method in its characteristics structure,
and only allocate the pool for drivers that have this method.

This should allow the RT2500 driver to work correctly, though I
still have to fix ndiscvt(8) to parse its .inf file properly.

Also, change kern_ndis.c:ndis_halt_nic() to reap timers before
acquiring NDIS_LOCK(), since the reaping process might entail sleeping
briefly (and we can't sleep with a lock held).
2005-05-15 04:27:59 +00:00
Yoshihiro Takahashi
914ee8ba4b Fix my copyright. 2005-05-14 10:51:16 +00:00
Yoshihiro Takahashi
dfe1941a9c cosmetic change. 2005-05-14 10:26:31 +00:00
Yoshihiro Takahashi
b22bf66063 - Move bus dependent defines to {isa,cbus}_dmareg.h.
- Use isa/isareg.h rather than <arch>/isa/isa.h.

Tested on: i386, pc98
2005-05-14 10:14:56 +00:00
Yoshihiro Takahashi
24072ca35b - Move timerreg.h to <arch>/include and split i8253 specific defines into
i8253reg.h, and add some defines to control a speaker.
- Move PPI related defines from i386/isa/spkr.c into ppireg.h and use them.
- Move IO_{PPI,TIMER} defines into ppireg.h and timerreg.h respectively.
- Use isa/isareg.h rather than <arch>/isa/isa.h.

Tested on: i386, pc98
2005-05-14 09:10:02 +00:00
Søren Schmidt
265da99ce9 Cleanup comments 2005-05-13 10:25:19 +00:00
Søren Schmidt
bb8a0cf2cf Fix more ATAPI breakage.
Apparently some devices are very picky on details :)
2005-05-13 07:58:05 +00:00
Nate Lawson
a6761eb377 If there is a problem during probe, be sure to free up any resources
allocated for it.  The normal exit case handles this correctly so we
use it as well for errors.

Submitted by:	pjd
Obtained from:	Coverity Prevent
2005-05-12 22:35:08 +00:00
Yoshihiro Takahashi
77bcc9ce35 Move the pc98 keymap define into pckbdtables.h because it should be used
only on the pckbd driver.
2005-05-12 13:39:31 +00:00
Alexander Kabaev
59195c3a3d Plug a potential memory leak.
Noticed by: Coverity Prevent analysis tool.
2005-05-11 18:53:14 +00:00
Søren Schmidt
c46e1f5333 Add new Intel PCI ID's for the ICH7 chips (untested). 2005-05-11 18:29:15 +00:00
Søren Schmidt
d81c813f10 Add support for AHCI compliant ATA devices.
For now just support the Intel ICH6 as that the HW at hand.

Sponsored by:	pair.com
2005-05-11 16:10:08 +00:00
Warner Losh
3ecc7feefc Take out Giant in uhub_child_* in giant. There's one place where we
could sleep which I think can lead to races.  However, there are fewer
with this code than without it.

Submitted by: Hans Petter Selasky
2005-05-11 15:21:22 +00:00
Søren Schmidt
d0968d7845 Add back one line that got deleted in the last commit.
Change the comment there so it better describes whats going on.

This should fix the boot problems of late.
2005-05-11 14:36:26 +00:00
Søren Schmidt
faca873f76 Fix ATAPI DMA. We need to set the proper flags for DMA modes. 2005-05-11 12:41:35 +00:00
Matt Jacob
b49c46747a Fix some incorrectly swapped fields in an ICB.
Access a PCI register with correct width.

Obtained from:	Dmitry Valeryevich Trikoz
2005-05-11 03:00:50 +00:00
Matt Jacob
547725be50 Refactor isp_prt declaration so that platform
requirements can stay in platform files.
2005-05-11 00:22:17 +00:00
Yoshihiro Takahashi
d1725ef7ff Change a directory layout for pc98.
- Move MD files into <arch>/<arch>.
  - Move bus dependent files into <arch>/<bus>.
Rename some files to more suitable names.

Repo-copied by:	peter
Discussed with:	imp
2005-05-10 12:02:18 +00:00
Philip Paeps
18d92cd86c Sync with Linux acpi4asus, adding support for loads of new models.
MFC after:	3 days
2005-05-09 12:51:48 +00:00
Philip Paeps
caac49960b Add support for Asus V6V[1] and W1N notebooks.
Submitted by:	Jean-Sébastien Pédron <jspedron@club-internet.fr> [1]
MFC after:	3 days
2005-05-09 08:43:49 +00:00
Mark Santcroos
8518ed9ecd Simplify the ACPI taskqueue implementation. Use a thread queue type instead
of swi. This allows us to use the taskqueue_thread_* functions instead of
rolling our own. It also avoids a double trip through the queue.

Submitted by:	njl
Reviewed by:	sam
2005-05-09 07:34:04 +00:00
Yoshihiro Takahashi
b416ebde05 Move if_wl_i82586.h into sys/dev/wl. 2005-05-09 04:47:58 +00:00
Bill Paul
239a676456 More fixes for multibus drivers. When calling out to the match
function in if_ndis_pci.c and if_ndis_pccard.c, provide the bustype
too so the stubs can ignore devlists that don't concern them.
2005-05-08 23:19:20 +00:00
Bill Paul
6169e4d097 Fix support for Windows drivers that support both PCI and PCMCIA devices at
the same time.

Fix if_ndis_pccard.c so that it sets sc->ndis_dobj and sc->ndis_regvals.

Correct IMPORT_SFUNC() macros for the READ_PORT_BUFFER_xxx() routines,
which take 3 arguments, not 2.

This fixes it so that the Windows driver for my Cisco Aironet 340 PCMCIA
card works again. (Yes, I know the an(4) driver supports this card natively,
but it's the only PCMCIA device I have with a Windows XP driver.)
2005-05-08 23:07:51 +00:00
Marcel Moolenaar
9f0974f96d In uart_cnprobe(), fill in the cn_name field of the consdev structure.
The core console code checks this field when a console is added and
emits a warning if it's empty. In practice the warning is harmless for
uart(4), because the cn_name is filled in as soon as the device name is
known; which is when the device is enumerated.
To avoid the warning, to avoid possible complications caused by emitting
the warning without there (possibly) being a console selected yet and to
avoid complications when the UART isn't found during bus enumeration, we
just preset the cn_name field here to the name of the driver.
2005-05-08 20:25:09 +00:00
Bill Paul
971aba5809 Avoid trying to queue up an interrupt handler DPC if the driver
hasn't called NdisMRegisterInterrupt() yet.
2005-05-08 09:36:16 +00:00
Christian Brueffer
162bc322c8 Fix typo in a comment. 2005-05-08 08:54:23 +00:00
Bill Paul
a6e6c501af Minor correction to the logic for selecting the proper device index. 2005-05-08 02:06:57 +00:00
Eric Anholt
172c411091 Staticize some symbols that are each only used in one corresponding .c file.
PR:		kern/43610
Submitted by:	Matt Emmerton, matt at gsicomp dot on dot ca
2005-05-06 20:53:34 +00:00
Colin Percival
c340af03a0 Correct improper permissions on /dev/iir. The earlier permissions
of 0644 allowed for people to do Evil Things via ioctl(2).

Security: FreeBSD-SA-05:06.iir
2005-05-06 02:33:46 +00:00
Bill Paul
eb31d50cc7 Avoid sleeping with mutex held in kern_ndis.c.
Remove unused fields from ndis_miniport_block.

Fix a bug in KeFlushQueuedDpcs() (we weren't calculating the kq pointer
correctly).

In if_ndis.c, clear the IFF_RUNNING flag before calling ndis_halt_nic().

Add some guards in kern_ndis.c to avoid letting anyone invoke ndis_get_info()
or ndis_set_info() if the NIC isn't fully initialized. Apparently, mdnsd
will sometimes try to invoke the ndis_ioctl() routine at exactly the
wrong moment (to futz with its multicast filters) when the interface
comes up, and can trigger a crash unless we guard against it.
2005-05-05 06:14:59 +00:00
Bill Paul
9b307fe2be This commit makes a bunch of changes, some big, some not so big.
- Remove the old task threads from kern_ndis.c and reimplement them in
  subr_ntoskrnl.c, in order to more properly emulate the Windows DPC
  API. Each CPU gets its own DPC queue/thread, and each queue can
  have low, medium and high importance DPCs. New APIs implemented:
  KeSetTargetProcessorDpc(), KeSetImportanceDpc() and KeFlushQueuedDpcs().
  (This is the biggest change.)

- Fix a bug in NdisMInitializeTimer(): the k_dpc pointer in the
  nmt_timer embedded in the ndis_miniport_timer struct must be set
  to point to the DPC, also embedded in the struct. Failing to do
  this breaks dequeueing of DPCs submitted via timers, and in turn
  breaks cancelling timers.

- Fix a bug in KeCancelTimer(): if the timer is interted in the timer
  queue (i.e. the timeout callback is still pending), we have to both
  untimeout() the timer _and_ call KeRemoveQueueDpc() to nuke the DPC
  that might be pending. Failing to do this breaks cancellation of
  periodic timers, which always appear to be inserted in the timer queue.

- Make use of the nmt_nexttimer field in ndis_miniport_timer: keep a
  queue of pending timers and cancel them all in ndis_halt_nic(), prior
  to calling MiniportHalt(). Also call KeFlushQueuedDpcs() to make sure
  any DPCs queued by the timers have expired.

- Modify NdisMAllocateSharedMemory() and NdisMFreeSharedMemory() to keep
  track of both the virtual and physical addresses of the shared memory
  buffers that get handed out. The AirGo MIMO driver appears to have a bug
  in it: for one of the segments is allocates, it returns the wrong
  virtual address. This would confuse NdisMFreeSharedMemory() and cause
  a crash. Why it doesn't crash Windows too I have no idea (from reading
  the documentation for NdisMFreeSharedMemory(), it appears to be a violation
  of the API).

- Implement strstr(), strchr() and MmIsAddressValid().

- Implement IoAllocateWorkItem(), IoFreeWorkItem(), IoQueueWorkItem() and
  ExQueueWorkItem(). (This is the second biggest change.)

- Make NdisScheduleWorkItem() call ExQueueWorkItem(). (Note that the
  ExQueueWorkItem() API is deprecated by Microsoft, but NDIS still uses
  it, since NdisScheduleWorkItem() is incompatible with the IoXXXWorkItem()
  API.)

- Change if_ndis.c to use the NdisScheduleWorkItem() interface for scheduling
  tasks.

With all these changes and fixes, the AirGo MIMO driver for the Belkin
F5D8010 Pre-N card now works. Special thanks to Paul Robinson
(paul dawt robinson at pwermedia dawt net) for the loan of a card
for testing.
2005-05-05 03:56:09 +00:00
Doug White
2eb15b9375 Backout part of rev 1.71, which breaks the interfaces on IBM/Intel blade
servers.

PR:		kern/68445
MFC after:	7 days
2005-05-05 03:37:27 +00:00
Julian Elischer
6efba7ef05 A patch to support Palm Tungsten T via USB-Cradle.
not suer where it comes from but suspect kimoto at ohnolab.org

MFC after:	1 week
2005-05-04 00:46:24 +00:00
Søren Schmidt
eeda55ce8e Reshape the dma code to be a bit more flexible so it can cope with
new HW that has new and different demands.
Fix a few nits in former commit in this cleanup crusade.

Sponsored by:	pair.com
2005-05-03 07:55:07 +00:00
Scott Long
af06505ae3 Properly mask off the status bits when checking to see if the ccb is still
valid to process.  This was causing deferred commands to be rejected due
to their extra status flag.

MFC After: 3 days
2005-05-03 07:11:19 +00:00
Scott Long
701d9f1f1d The driver looks like it can create valid 64-bit scatter-gather lists, so
don't restrict it to a 32-bit address space.  Also use the correct busdma
flags for the SRB memory area.

MFC After: 3 days
2005-05-03 05:44:42 +00:00
Scott Long
4fd8c0dc7a The kthread is disabled at this time, so don't try to wake it up on
shutdown.  This fixes a panic on reboot.

MFC After: 3 days
2005-05-03 05:42:03 +00:00
Scott Long
cbe4fd54ef Fix some busdma API violations in the dumpsys handler.
MFC After: 3 days
2005-05-02 22:56:52 +00:00