Commit Graph

10650 Commits

Author SHA1 Message Date
sanpei
527f2194f4 Sync to 1.152 of usbdevs 2004-01-03 15:03:09 +00:00
sanpei
17455573ec Add support SUN TYPE 6 USB KEYBOARD
Submitted by:	<schley@cf-wnd.de>
2004-01-03 15:01:04 +00:00
sanpei
805d952343 Fix Scanlogic SL11R usb-ide protocol and quirks
PR:		kern/60389
Submitted by:	Sang Woo Shim <ssw@swoo.org>
2004-01-03 13:52:44 +00:00
sanpei
b758c940c1 Add the MMC commands to umass_atapi_transform. It seems to work
unmodified for ATAPI type devices with ports/sysutils/cdrtools.
(But we need timeout routine which was in kern/58649 for fixate, I think.)

PR:		kern/58649
Submitted by:	SAKIYAMA Nobuo <sakichan@sakichan.org>
2004-01-03 13:30:19 +00:00
wpaul
79a95fe15c In if_ndis.c:ndis_attach(), temporarily set the IFF_UP flag while
calling the haltfunc. If an interrupt is triggered by the init
or halt func, the IFF_UP flag must be set in order for us to be able
to service it.

In kern_ndis.c: implement a handler for NdisMSendResourcesAvailable()
(currently does nothing since we don't really need it).

In subr_ndis.c:
	- Correct ndis_init_string() and ndis_unicode_to_ansi(),
	  which were both horribly broken.
        - Implement NdisImmediateReadPciSlotInformation() and
	  NdisImmediateWritePciSlotInformation().
	- Implement NdisBufferLength().
	- Work around my first confirmed NDIS driver bug.
	  The SMC 9462 gigE driver (natsemi 83820-based copper)
	  incorrectly creates a spinlock in its DriverEntry()
	  routine and then destroys it in its MiniportHalt()
	  handler. This is wrong: spinlocks should be created
	  in MiniportInit(). In a Windows environment, this is
	  often not a problem because DriverEntry()/MiniportInit()
	  are called once when the system boots and MiniportHalt()
	  or the shutdown handler is called when the system halts.

With this stuff in place, this driver now seems to work:

ndis0: <SMC EZ Card 1000> port 0xe000-0xe0ff mem 0xda000000-0xda000fff irq 10 at device 9.0 on pci0
ndis0: assign PCI resources...
ndis_open_file("FLASH9.hex", 18446744073709551615)
ndis0: Ethernet address: 00:04:e2:0e:d3:f0
2004-01-03 13:20:30 +00:00
sanpei
046c0f0065 Sync to 1.151 of usbdevs 2004-01-03 12:54:04 +00:00
sanpei
b7a5a6814d Add support
- Canon USB Scanner N676U	[1]
	- Canon USB Scanner N1220U	[2]

PR:		misc/40280		[1]

Submitted by:	[1] Yasue Koichi / StarRing <starring@fscn.ne.jp>
		[2] MIYAO Akio <miyao@affrc.go.jp> [FreeBSD-users-jp 74516]
2004-01-03 12:51:59 +00:00
njl
5b9bbee08a Delete the region we are passed if that is the requested operation.
This should fix the problem with removing an address space handler
although we don't currently use that capability so it's unlikely anyone
saw this problem.
2004-01-03 02:01:39 +00:00
obrien
248990949d Don't confuse NULL with 0. 2004-01-02 10:46:38 +00:00
imp
785484ac54 It appears that we don't need sys/vnode.h, which is a layering violation... 2004-01-02 05:16:01 +00:00
wpaul
29f6674338 Clean up ndiscvt a bit (leaving out the -i flag didn't work) and add
copyrights to the inf parser files.

Add a -n flag to ndiscvt to allow the user to override the default
device name of NDIS devices. Instead of "ndis0, ndis1, etc..."
you can have "foo0, foo1, etc..." This allows you to have more than
one kind of NDIS device in the kernel at the same time.

Convert from printf() to device_printf() in if_ndis.c, kern_ndis.c
and subr_ndis.c.

Create UMA zones for ndis_packet and ndis_buffer structs allocated
on transmit. The zones are created and destroyed in the modevent
handler in kern_ndis.c.

printf() and UMA changes submitted by green@freebsd.org
2004-01-02 04:31:06 +00:00
mbr
ba7b1a0e6a The reset_type should not be 0x80, it should be set to zero.
0x80 can cause the command to be rejected as invalid. This bug
exists also in the Linux IPS ffdc code.

Submitted by:	David Jeffery
MFC after:	1 week
2004-01-01 10:22:10 +00:00
njl
20c0379ef3 Use the appropriate values for the notifies. No change in behavior
since both notifies result in the same function being called.

Found by:	documenting the code
2003-12-31 19:11:19 +00:00
jhb
92f77e45ee Add support for an non-branded SUN1889-based 2 port PCI serial card.
PR:		kern/55159
Submitted by:	Yeasah Pell <yeasah@apocalypse.org>
MFC after:	1 week
2003-12-31 17:51:18 +00:00
kato
e738fbe8da Added TDK LAK-CD031 (simple NE2000 device).
Reviewed by:	imp
2003-12-31 04:25:00 +00:00
kato
d72f7f2fd8 Sync to 1.80. 2003-12-31 04:21:42 +00:00
kato
05f23e63ad Added ID for TDK LAK-CD031 Ethernet card.
Reviewed by:	imp
2003-12-31 04:19:50 +00:00
wpaul
b56a5ed44a - subr_ntoskrnl.c: improve the _fastcall hack based on suggestions from
peter and jhb: use __volatile__ to prevent gcc from possibly reordering
  code, use a null inline instruction instead of a no-op movl (I would
  have done this myself if I knew it was allowed) and combine two register
  assignments into a single asm statement.
- if_ndis.c: set the NDIS_STATUS_PENDING flag on all outgoing packets
  in ndis_start(), make the resource allocation code a little smarter
  about how it selects the altmem range, correct a lock order reversal
  in ndis_tick().
2003-12-31 04:12:57 +00:00
emax
582a0829e4 Add few new USB vendor/product IDs for Bluetooth USB devices.
Regen.

Reviewed by:	imp (mentor)
Approved by:	imp (mentor)
2003-12-30 22:10:29 +00:00
wpaul
bd547ce3e3 - Add new 802.11 OID information obtained from NDIS 5.1 update to
ndis_var.h
- In kern_ndis.c:ndis_send_packets(), avoid dereferencing NULL pointers
  created when the driver's send routine immediately calls the txeof
  handler (which releases the packets for us anyway).
- In if_ndis.c:ndis_80211_setstate(), implement WEP support.
2003-12-30 21:33:26 +00:00
ambrisko
dd8da6f3b3 - Bump up the general and status RID sizes
- Clear out an_dma_vaddr on free so we can test to see if dma is
  setup when the card is kldunloaded/kldloaded etc. only for MPI350
- Use a common detach like wi(4)
- Notify on RID read overflow and truncate this currently causes
  a panic in -stable when the stack during an ifconfig an0 is done
  with newer firmware
- Convert from UNLOCK/tsleep/LOCK to msleep.  I thought I did that
  a while ago.
2003-12-30 01:07:12 +00:00
wpaul
5319092108 Rework resource allocation. Replace the "feel around like a blind man"
method with something a little more intelligent: use BUS_GET_RESOURCE_LIST()
to run through all resources allocated to us and map them as needed. This
way we know exactly what resources need to be mapped and what their RIDs
are without having to guess. This simplifies both ndis_attach() and
ndis_convert_res(), and eliminates the unfriendly "ndisX: couldn't map
<foo>" messages that are sometimes emitted during driver load.
2003-12-29 23:51:59 +00:00
njl
a400451c24 Don't attach throttling if the P_BLK is 0, even if the P_BLK_LEN is 6.
This is more strict but no known systems have this problem.
2003-12-28 22:15:24 +00:00
sam
3effae1c99 update radiotap support to reflect recent changes:
o move tx taps from ath_start to ath_tx_start so lots more
  state is available to tap
o add tx flags
o add tx rate
o add tx power (constant for the moment)
o add tx antenna state
2003-12-28 07:00:32 +00:00
sam
c93326599e update radiotap support to reflect recent changes:
o add xmit rate
o drop rx time
o add rx flags
2003-12-28 06:58:52 +00:00
sam
c165a87f8d o eliminate widespread on-stack mbuf use for bpf by introducing
a new bpf_mtap2 routine that does the right thing for an mbuf
  and a variable-length chunk of data that should be prepended.
o while we're sweeping the drivers, use u_int32_t uniformly when
  when prepending the address family (several places were assuming
  sizeof(int) was 4)
o return M_ASSERTVALID to BPF_MTAP* now that all stack-allocated
  mbufs have been eliminated; this may better be moved to the bpf
  routines

Reviewed by:	arch@ and several others
2003-12-28 03:56:00 +00:00
imp
7d044f3544 Add detach methods so we can unload the sio module. 2003-12-27 19:47:10 +00:00
imp
a6700da254 Fix slight disordering of supported cards. 2003-12-27 18:07:50 +00:00
jhb
773d055af0 Fix acpi_MatchHid() to check the compatibility ID's if the hardware ID
doesn't match.

Submitted by:	marcel
2003-12-26 15:42:13 +00:00
wpaul
57cde0f9a7 Attempt to handle the status field in the ndis_packet oob area correctly.
For received packets, an status of NDIS_STATUS_RESOURCES means we need
to copy the packet data and return the ndis_packet to the driver immediatel.
NDIS_STATUS_SUCCESS means we get to hold onto the packet, but we have
to set the status to NDIS_STATUS_PENDING so the driver knows we're
going to hang onto it for a while.

For transmit packets, NDIS_STATUS_PENDING means the driver will
asynchronously return the packet to us via the ndis_txeof() routine,
and NDIS_STATUS_SUCCESS means the driver sent the frame, and NDIS
(i.e. the OS) retains ownership of the packet and can free it
right away.
2003-12-26 07:01:05 +00:00
obrien
1a7807be15 Properly initialize all members of the sentinel entry. 2003-12-26 05:36:08 +00:00
imp
0039959875 The record's stuck. The record's stuck. The record's stuck.
Remove a rendundant $FreeBSD$
2003-12-26 04:30:01 +00:00
wpaul
1bdb22f3a1 Back out the last batch of changes until I have a chance to properly
evaluate them. Whatever they're meant to do, they're doing it wrong.

Also:

- Clean up last bits of NULL fallout in subr_pe
- Don't let ndis_ifmedia_sts() do anything if the IFF_UP flag isn't set
- Implement NdisSystemProcessorCount() and NdisQueryMapRegisterCount().
2003-12-26 03:31:34 +00:00
sos
cb427b7fa2 Try to simplify the SiS probe. If SiS stays with the current schema for
new nothbridges we should even find the southbridge and be able to
use it (if its one we know that is).
2003-12-25 19:37:11 +00:00
bde
6615c62ef6 Fixed another 0 (actually '\0') vs / NULL mixup. This completes
unbreaking LINT on i386's.
2003-12-25 11:17:01 +00:00
wpaul
757e456f28 - In ndis_intr(), don't do any interrupt processing if the IFF_UP
flag isn't set.
- In ndis_attach(), halt the NIC before exiting the routine. Calling
  ndis_init() will bring it up again, and we don't want it running
  (and potentially generating interrupts) until we're ready to deal
  with it.
2003-12-25 09:44:49 +00:00
wpaul
41facc2cd6 Avoid using any of the ndis_packet/ndis_packet_private fields for
mbuf<->packet housekeeping. Instead, add a couple of extra fields
to the end of ndis_packet. These should be invisible to the Windows
driver module.

This also lets me get rid of a little bit of evil from ndis_ptom()
(frobbing of the ext_buf field instead of relying on the MEXTADD()
macro).
2003-12-25 06:04:40 +00:00
sam
fb4df6a4de NULL fallout 2003-12-25 01:23:38 +00:00
wpaul
385e9eaf78 - Add stubs for Ndis*File() functions
- Fix ndis_time().
- Implement NdisGetSystemUpTime().
- Implement RtlCopyUnicodeString() and RtlUnicodeStringToAnsiString().
- In ndis_getstate_80211(), use sc->ndis_link to determine connect
  status.

Submitted by:	 Brian Feldman <green@freebsd.org>
2003-12-25 00:40:02 +00:00
wpaul
26d06d7326 - Fix some compiler warnings in subr_pe.c
- Add explicit cardbus attachment in if_ndis.c
- Clean up after moving bus_setup_intr() in ndis_attach().
- When setting an ssid, program an empty ssid as a 1-byte string
  with a single 0 byte. The Microsoft documentation says this is
  how you're supposed to tell the NIC to attach to 'any' ssid.
- Keep trace of callout handles for timers externally from the
  ndis_miniport_timer structs, and run through and clobber them
  all after invoking the haltfunc just in case the driver left one
  running. (We need to make sure all timers are cancelled on driver
  unload.)
- Handle the 'cancelled' argument in ndis_cancel_timer() correctly.
2003-12-24 21:21:18 +00:00
alfred
b4605749f7 fix warnings. NULL -> 0 2003-12-24 19:00:49 +00:00
alfred
48297db6e9 NULL -> 0 2003-12-24 18:59:20 +00:00
alfred
5784eb3ac8 change NULL to 0 to silence warning. 2003-12-24 18:23:02 +00:00
peter
23fa43890e Fix 0 / NULL mixup (this module isn't in LINT!) 2003-12-24 05:24:24 +00:00
bde
ad6b2985b6 Fixed breakage of a check for boolean true by misusing NULL in rev.1.407.
This became fatal when the type of NULL was changed recently.
2003-12-24 04:11:10 +00:00
imp
bcad04f1ac Minor whitespace changes to conform better to stlye(9) and reduce diffs
with uncommitted changes I have in p4.
2003-12-24 02:01:22 +00:00
njl
8a8dfa84e9 Fix locking broken by recent _CID changes. Always be sure to unlock
in the error case.
2003-12-23 18:47:31 +00:00
wpaul
3e98c4443b Set up the interrupt earlier in ndis_attach(), because calling the
driver's initfunc may cause an interrupt to be generated. This avoids
the occasional 'stray irqXXX' messages on load.
2003-12-23 18:41:34 +00:00
njl
df2307ae54 Update to use the new package routines instead of rolling our own
macros.
2003-12-23 18:27:35 +00:00
njl
891932b7f3 Remove the device_t parameter from package routines that only used it to
print an error message.  Update all callers of the package routines.
2003-12-23 18:26:53 +00:00