Commit Graph

14314 Commits

Author SHA1 Message Date
jhb
170b22254d - Make pcib_devclass private to sys/dev/pci/pci_pci.c and change all the
various pcib drivers to use their own private devclass_t variables for
  their modules.
- Use the DEFINE_CLASS_0() macro to declare drivers for the various pcib
  drivers while I'm here.
2006-01-06 19:22:19 +00:00
jhb
c3c1fed1fa Be a little more forgiving of lame BIOS writers. If a link device that
doesn't have any actual interrupts is listed in a _PRT entry, only print
a warning rather than panic'ing when we walk the _PRT's to build up count
of entries that reference a given link (the counts are used as weights so
that we can attempt to balance the load across IRQs used by link devices).
Instead, only panic if we attempt to use the _PRT entry to route an
interrupt for a device.

PR:		i386/89545
Tested by:	anders
2006-01-06 16:14:32 +00:00
ariff
458767527b Fix locking violation, causing frantic diagnostic messages during boot.
Reported by:	[1] julian
MFC after:	3 days

[1] http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-January/003408.html
2006-01-06 10:36:55 +00:00
ariff
fcfa2d0080 Another major fixes and enhancements:
- MPSAFE
    - Fix / reorganize attach routine. Device specific initialization must
      be done after generic bus / DMA setup. At last, Virtual Channels
      (vchan) works as expected.

Note: Recent commit / fix against this driver proves that major enhancements
      on the generic sound layer does indeed help to expose flaw within
      device specific code. There are probably other drivers that need to
      be addressed as well.

Tested by:	barner
MFC after:	1 week
2006-01-06 05:04:18 +00:00
sos
0371a67ccd Get rid of the advertising clause in the copyright. 2006-01-05 21:27:19 +00:00
dumbbell
f3ad199cdc Fix a bug in Synaptics Touchapd support where psm(4) will enter an infinite
loop if it receives an out of sync packet.

Reviewed by:	mux (mentor)
MFC after:	4 days
2006-01-05 19:24:01 +00:00
imp
56aa38e89c Check for 10BaseT media correctly. Before we were confusing
ifm_status and ifm_active.  IFM_10_T gets set in the ifm_active field,
not in the ifm_status field, as far as I can tell.

Note: this was to enable a workaround that's rarely enabled.  I don't know
how to corrupt my eeprom to test it, and would rather not know...
2006-01-04 23:00:01 +00:00
sos
1a03c39e37 Return the proper rmi field in DVDIOCREADSTRUCTURE.
PR:	89650
2006-01-04 21:35:57 +00:00
ariff
9c6a7e6611 Fix broken capabilities, causing failure during channel reset.
Its min/max speed were off by -/+ 1000.

Reported by:	[1] Ion-Mihai Tetcu <itetcu@people.tecnik93.com>
            	[2] barner
MFC after:	1 day

[1] http://lists.freebsd.org/mailman/htdig/freebsd-multimedia/2005-December/003189.html
[2] http://lists.freebsd.org/mailman/htdig/freebsd-multimedia/2006-January/003422.html
2006-01-04 15:35:55 +00:00
sos
a4ba4c8368 Fix the promise modesetting for old chips.
Pointy hat to:	sos
2006-01-04 10:23:47 +00:00
phk
990533856e Use ttyalloc() instead of ttymalloc() 2006-01-04 09:20:41 +00:00
phk
527a24856d Use ttyalloc() instead of ttymalloc() 2006-01-04 08:34:23 +00:00
sos
7f56ef50de Fix promise probe printing. 2006-01-04 08:20:25 +00:00
scottl
ec6ef2133d Shuffle some definitions so that this can be included from userland. 2006-01-03 23:03:39 +00:00
scottl
3ab605dcda Add some more data structures and definitions for communicating with the
ServeRAID firmware.
2006-01-03 23:03:15 +00:00
jhb
d339804fc1 Release the pci_link acpi serial lock if a link device has no actual links.
MFC after:	3 days
2006-01-03 20:19:34 +00:00
brian
435383325d This signal handling code is worse than a no-op. If a
signal is received during the msleep, the msleep is retried
indefinitely as it just keeps returning ERESTART because of
the pending signal.

Instead, just don't PCATCH - the signal can wait.

Sponsored by:	Sophos/ActiveState
2006-01-03 17:01:43 +00:00
yongari
d2cea5305f - Tx side bus_dmamap_load_mbuf_sg(9) support. This reduces bookkeeping
requiried to keep consistent softc state before/after callback function
  invocation and supposed to be sligntly faster than previous one as it
  wouldn't incur callback overhead. With this change callback function
  was gone.
- Decrease TI_MAXTXSEGS to 32 from 128. It seems that most mbuf chain
  length is less than 32 and it would be re-packed with m_defrag(9) if
  its chain length is larger than TI_MAXTXSEGS. This would protect ti(4)
  against possible kernel stack overflow when txsegs[] is put on stack.
  Alternatively, we can embed the txsegs[] into softc. However, that
  would waste memory and make Tx/Rx speration hard when we want to
  sperate Tx/Rx handlers to optimize locking.
- Fix dma map tracking used in Tx path. Previously it used the dma map
  of the last mbuf chain in ti_txeof() which was incorrect as ti(4)
  used dma map of the first mbuf chain when it loads a mbuf chain with
  bus_dmamap_load_mbuf(9). Correct the bug by introducing queues that
  keep track of active/inactive dma maps/mbuf chain.
- Use ti_txcnt to check whether driver need to set watchdog timer instead
  of blidnly clearing the timer in ti_txeof().
- Remove the 3rd arg. of ti_encap(). Since ti(4) now caches the last
  descriptor index(ti_tx_saved_prodidx) used in Tx there is no need to
  pass it as a fuction arg.
- Change data type of producer/consumer index to int from u_int16_t in
  order to remove implicit type conversions in Tx/Rx handlers.
- Check interface queue before getting a mbuf chain to reduce locking
  overhead.
- Check number of available Tx descriptores to be 16 or higher in
  ti_start(). This wouldn't protect Tx descriptor shortage but it would
  reduce number of bus_dmamap_unload(9) calls in ti_encap() when we are
  about to running out of Tx descriptors.
- Command NIC to send packets ony when the driver really has packets
  enqueued. Previously it always set TI_MB_SENDPROD_IDX which would
  command NIC to DMA Tx descriptors into NIC local memory regardless
  of Tx descriptor changes.

Reviewed by:	scottl
2006-01-03 06:14:07 +00:00
imp
be8db3dd12 Use the child to allocate the resource rather than bridge, since we're
allocating a resource that's in the card itself.

Remove more now-redundant resource_list_add, and now-redunant code
that lives in the pci layer.

# This fixes the atheros card that I have which had its CIS in one of
# the BARs.  Don't know yet if this fixes the amd64 issues reported.
2006-01-03 03:36:17 +00:00
imp
6b55862c50 Minor style(9) hacking, plus use a macro in place of (struct resource *)~0UL
(what the heck does that mean?).
2006-01-03 03:16:53 +00:00
imp
6643030861 Use __HAVE_ACPI and __PCI_REROUTE_INTERRUPT as appropriate rather than
the complicated #ifdefs.
2006-01-01 21:04:31 +00:00
imp
12d4e274cb Remove left-over #ifdef alpha routines. They aren't used by any of
our drivers, and don't appear to be necessary for GENERIC and LINT on
the alpha.  They don't belong in a MI header anyway...
2006-01-01 20:40:08 +00:00
ariff
a50f13bf11 Fix another xruns counting logic, this time, for recording. 2006-01-01 18:16:13 +00:00
imp
d3a57d50d3 Remove stray debug from p4 integration. 2006-01-01 08:26:39 +00:00
imp
9b3f1c28eb Remove extra debugging that crept in with the integration from p4. 2005-12-31 20:04:39 +00:00
mux
e37f6ca70a Add a new vendor ID for Personal Cummunication Systems. They make a nice
USB HID device that allows to plug two PS2 controllers.  This specific
device doesn't work yet but will as soon as we support devices with
multiple report IDs.

MFC after:	3 days
2005-12-31 04:41:17 +00:00
mux
5040b9b8bc Add support for the Wacom Graphire 3 4x5. Like the Graphire 3, it has a
broken report descriptor.  While I'm here, make all the other report
descriptors const to match the newly added one.

Obtained from:	NetBSD
MFC after:	1 week
2005-12-31 04:38:50 +00:00
mux
6012b1978a Add support for Xbox 360 gamepads. They are HID-capable devices, but
lack a report descriptor and don't use the standard interface class.
This patch works around these deficiencies so that the uhid(4) driver
can recognize and use those broken devices.

PR:		usb/90141
Submitted by:	Ed Schouten <ed@fxq.nl> (with minor mods from me)
MFC after:	1 week
2005-12-31 04:22:34 +00:00
ariff
deb09036e8 Fix LOR #174.
Tested with:	WITNESS, INVARIANTS and DIAGNOSTICS
2005-12-31 01:58:40 +00:00
avatar
adbf28a0ed Fixing build bustage. 2005-12-31 01:45:40 +00:00
sos
1a1e1570e1 Add hotplug support for Marvell chips. 2005-12-30 23:15:02 +00:00
imp
737f13e6f5 Make RID2BAR actually return a number that can be plugged into PCIR_BAR()
rather than a bitmask.

Submitted by: ru@
2005-12-30 20:25:40 +00:00
imp
bb33881eba Remove now-obsolete printf warning. 2005-12-30 19:38:47 +00:00
imp
6e8e63097f Remove debug now that I've looped back the big changes into my p4 tree. 2005-12-30 19:36:29 +00:00
imp
8b10395635 Expose pci_add_resources to the outside world, add a 'force' flag to
force allocation of unallocated BARs (cardbus uses this to preallocate
everything).  Add a prefetchmask to allow for busses that get prefetch
hints to set them.  Addjust pci_add_map and pci_ata_maps to take a new
force flag which pci_add_resources will pass in.  Implement 'force' in
pci_add_map.  Write new value of allocated resource into the bar, if
the allocation succeeded (we should have done this before, but with
the new force the bug was very obvious).
2005-12-30 19:28:26 +00:00
imp
1a6cb356a7 Move all of the resource allocation into the pci layer. The resource
allocation here just duplicated it (badly).
2005-12-30 19:25:04 +00:00
imp
9065fc399f The RID2BAR macro returns a number, not a bitmask. Fix this.
Spotted by: ru, jhb
2005-12-30 19:23:32 +00:00
glebius
eebd01e300 - Retire BARBIT in favor of new PCI_RID2BAR.
- Fix build.
2005-12-30 11:31:47 +00:00
ariff
b5131ef229 Disable frantic DMA update within few SNDCTL_DSP_* ioctl.
This should reduce huge playback / recording latency for
applications that try to act smarter and manage their own
buffering (XMMS, Skype, etc.).

Note to Skype + via8xxx users: Remove previous hackish
"hint.pcm.<unit>.via_dxs_disabled" from kernel hint and see
whether this changes cure all those annoying sound issues.
2005-12-30 07:33:28 +00:00
ariff
904d3f4de5 Underruns counting logic should be based on bufhard free space
and must be done after sndbuf_feed(), or any attempt to fill
up bufhard. This should fix false underruns counter.
2005-12-30 07:33:01 +00:00
imp
7953a4ff7e Add a bunch of ipod entries, one as suggested by Bryan Liesner. We
should likely fix this better...

Submitted by: Bryan Liesner (ipod mini)
2005-12-30 05:06:26 +00:00
ariff
5b3ef2780c Few codec such as Conexant CX20468-21 does have this control
register, although the only usable part is the mute bit.

Noticed by:	Hans Petter Selasky <hselasky@c2i.net>
2005-12-30 01:06:29 +00:00
imp
523c937367 Retire BARBIT in favor of new PCI_RID2BAR. 2005-12-29 23:41:29 +00:00
imp
e57b04f29b Add a macro to map from BAR to rid # (inverse of PCIR_BARS). 2005-12-29 23:40:41 +00:00
imp
95bb7dd5c4 Simplify the opening of the resources for cardbus cards. Before we'd
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...
2005-12-29 23:38:45 +00:00
netchild
7a859bc28a Sync the type (and size, compare mousestatus_t in /usr/include/sys/mouse.h)
of a variable according to the usage (after increasing the number of max
buttons this may matter).

Noticed by:	flz
2005-12-29 18:35:28 +00:00
netchild
94113937cd Add support for the HP 8200C/8250C/8290C scanners.
PR:		90467
Submitted by:	Adam McDougall <mcdouga9@egr.msu.edu>
2005-12-29 18:25:25 +00:00
netchild
e126fe5856 Add support for the Canon CanoSvan LIDE 25.
PR:		89509
Submitted by:	David Gilbert <dgilbert@daveg.ca>
2005-12-29 18:15:03 +00:00
netchild
7df453b882 Fix some kind of "off by one"-error: the min or max sample rate the
device is able to reproduce should be usable too instead of failing
in such a case.

PR:		89269
Submitted by:	Don L. Belcher <don@siad.net>
2005-12-29 18:11:11 +00:00
netchild
806b08f03c Merge NetBSD rev. 1.61:
- Support more than 7 buttons for USB mice. Patch from NetBSD kern/30248.

PR:		83353
Submitted by:	Seán Farley <sean-freebsd@farley.org>
2005-12-29 17:44:40 +00:00