Commit Graph

17955 Commits

Author SHA1 Message Date
imp
ab0c44b3d8 We can't mask out the higher order bits and have the size come out
right...  Good thing the size was ignored...

Where this macro is used, there's no reason to do it anyway.  There
seems to have been some old-time confusion between the CIS pointer
definition, and the BAR definitions at the base of this bug.
2008-11-03 05:52:43 +00:00
scottl
6de3633d94 Move the CAM passthrough code into a true module so that it doesn't have to be
compiled into the main AMR driver.  It's code that is nice to have but not
required for normal operation, and it is reported to cause problems for some
people.
2008-11-03 00:53:54 +00:00
ed
8df5c9ee67 Make the touch pad on my PowerBook G4 12" a little more usable.
For an unknown reason the touch pad of my PowerBook generates button 5
events when you operate it. This causes the adb_mouse code to convert
them to button 2 events, which is not what we want.

Add a new flag, AMS_TOUCHPAD, which is used to distinguish the touch
pad. When set, don't convert button events of unknown buttons to the
last button.

There are still three problems left with respect to user input:

- The mouse button events are not properly processed when the touch pad
  isn't touched.

- The arrow keys on the keyboard don't work inside X11.

- The power button isn't handled by the kernel, similar to the ACPI
  power button on i386/amd64.

Approved by:	nwhitehorn
2008-11-02 19:08:10 +00:00
imp
e0025a35ca Make the no driver stuff an ifdef. 2008-11-02 17:35:15 +00:00
imp
fbd442bda5 Move mn over. One of the last stragglers in sys/pci. There's no
module built for this hardware, so no changes needed.
2008-11-02 17:04:54 +00:00
mav
ba374a2c72 As soon as we have several threads per process now, it is not correct to
use process ID as ACPI thread ID. Concurrent requests with equal thread
IDs broke ACPI mutexes operation causing unpredictable errors including
AE_AML_MUTEX_NOT_ACQUIRED that I have seen.

Use kernel thread ID instead of process ID for ACPI thread.
2008-11-02 12:50:16 +00:00
imp
9534b3469f Merge some minor deltas from p4 newcard tree:
(1) Belkin F5D7050_V4000 was also sold as 'Ativa 802.11g wireless card'
(document)
(2) Add HP Office Jet 4215
2008-11-02 03:00:36 +00:00
ed
ec4658731c Allow a read() on /dev/ams[0-9] to be interrupted.
Right now ams_read() uses cv_wait() to wait for new data to arrive on
the mouse device. This means that when you run `cat /dev/ams0', it
cannot be interrupted directly. After you press ^C, you first need to
move the mouse before cat will quit. Make this function use
cv_wait_sig(), which allows it to be interrupted directly.

Reviewed by:	nwhitehorn
2008-11-01 08:07:02 +00:00
mav
13ab69b4fe Add quirk to set GPIO2 to enable internal speaker on Dell Vostro 1400.
Tested by:	Sergio Veloso
2008-10-30 17:54:20 +00:00
sam
6094a6154c Fix checks for fast frames negotiation. ni_ath_flags holds the
capabilities reported by the ap.  These need to be cross-checked
against the local configuration in the vap.  Previously we were
only checking the ap capabilities which meant that if an ap reported
it was ff-capable but we were not setup to use them we'd try to do
ff aggregation and drop the frame.

There are a number of problems to be fixed here but applying this
fix immediately as the problem causes all traffic to stop (and has
not workaround).

Reported by:	Ashish Shukla
2008-10-30 16:22:04 +00:00
nwhitehorn
5c55d9c1df Fix some possible infinite loops in the ADB code, and remove some hacks
that were inserted in desperation during bring-up. In addition, move ADB bus
enumeration and child attachment to when interrupts are available.
2008-10-30 15:27:13 +00:00
n_hibma
9aa53c183c We need to print out the device info ourselves on FBSD 6.
Submitted by:	Thomas Nystrom
2008-10-30 08:32:18 +00:00
n_hibma
44ed6d0833 Bugfix: Check the error code for in progress as well, after starting the
transfer.

Some changes to improve the debugging experience.
2008-10-30 08:17:27 +00:00
n_hibma
01935a1863 Return USBD_NORMAL_COMPLETION instead of a hard coded 0. 2008-10-30 08:13:49 +00:00
mav
3c4dfce5ca Allow card reader bridge driver to report maximum supported transfer size.
sdhci supports up to 65535 blocks transfers, at91_mci - one block.

Enable multiblock operations disabled before to follow at91_mci driver
limitations.

Reviewed by:	imp@
2008-10-29 20:01:26 +00:00
bz
eeb08e6fce Comment out #define turning on debugging which went in with r184436 and
which is also in conf/NOTES and thus defined twice when building LINT.
2008-10-29 11:03:15 +00:00
n_hibma
fc1c74c1bb Add the device ID for the mass storage device that appears before the
modem appears to facilitate faster switching to modem mode.
2008-10-29 08:08:55 +00:00
bz
7bf985b7df Unbreak LINT from r184381 using the correct variable in debugging
DPRINTF for the device and remove dead code.
2008-10-28 09:45:07 +00:00
n_hibma
02d073e051 Grab Sierra and Novatel init functions from NetBSD version of the u3g
driver (rev 1.3), by Joerg Sonnenberger.

Note: This change is untested as I do not own the hardware. Let me know
if things work or do not work for you by sending me the output dmesg (and
usbctl -f /dev/usbX if possible). Thanks.
2008-10-27 22:44:22 +00:00
marius
f240fccf5e Do as the Linux tg3 driver does and enable MSI support also
for the BCM5714 revision A0 when in a multi-port configuration
and unconditionally for the remainder of the class of BCM575X
and beyond chips.
This was prodded by mav and is based on a suggestion and a
patch submitted by jhb.

Reviewed by:	jhb
MFC after:	2 months
2008-10-27 22:10:01 +00:00
rnoland
ae1f87d8c5 Fix error in busmaster enable logic
rs400/rs480 should clear the RADEON_BUS_MASTER_DIS bit.  This should get
the rs485 IGP chips going again.

Approved by:	jhb (mentor)
Obtained from:	drm git master
2008-10-27 21:24:34 +00:00
rnoland
fd02193a4e Fix some fallout from the busmaster disable cleanup
rs400 is just like rs480

Approved by:	jhb (mentor)
Obtained from:	drm git
2008-10-27 21:21:36 +00:00
rnoland
2f55411637 Don't report GEM capability until we actually have GEM support.
This was causing the newer Intel video drivers to fail and abort X.

Approved by:	jhb (mentor)
2008-10-27 21:16:07 +00:00
sam
9e6bb8a8ae prepare for a new hal 2008-10-27 18:30:33 +00:00
sam
3a67cd4520 o With the addition of HT rates the set of h/w codes has a much wider range
making the use of sc_hwmap to do direct mapping impractical.  Switch to
  indexing by the rate index instead of the rate code and adjust associated
  state and logic appropriately.  This has several benefits including
  simplification of the led code.
o fix radiotap capture of HT rates
o fix conditional compilation of HT radiotap support to be based on the
  hal having 5416 support; not the ABI version as hal builds may or may
  not include 5416 support
2008-10-27 18:22:44 +00:00
sam
2c926ba9a7 prefer #define to naked constant 2008-10-27 18:05:26 +00:00
sam
548a877565 fix handling of HT rates; these overlap legacy rates and need to be
marked as MCS in the inverse mapping table
2008-10-27 18:02:47 +00:00
sam
5134b586b9 add hack to deal with Ubiquiti XR9 cards, they have a different mapping
between 900MHz and 2.4GHz frequencies than SR9 cards; they are distinguished
by different country codes
2008-10-27 18:00:43 +00:00
sam
afcf4b4bc7 install bssid for ahdemo mode too 2008-10-27 17:54:17 +00:00
sam
e8916f6cef fix comment 2008-10-27 17:53:34 +00:00
sam
35802cb1a3 correct callback status parameter; only indicate success when an ACK was
received
2008-10-27 17:52:41 +00:00
sam
491b070eb4 Fixup statistics:
o update tx rssi data only when an ACK was received
o return tx rssi from sampled data instead of the last frame
o track noise floor
o return rx rssi and noise floor (was broken)
2008-10-27 17:51:24 +00:00
sam
5eddad231d update the sta inactivity timer only if we actually received an ACK 2008-10-27 17:43:23 +00:00
sam
a54c9a2c1d Regdomain fixups:
o pass country code, outdoor indication, and ecm mode into the hal
  when requesting a channel list
o add a console msg when regulatory setup fails
o add placeholder code to map between Atheros sku's and 802.11 sku's
  that handles only the debug country code used to unlock the full
  channel list (to be used only for debugging)
o fix multiple instances of mismapping the 802.11 location to the
  outdoor indication (anywhere may be outdoor also)
2008-10-27 17:41:32 +00:00
sam
0049f89539 add regdomain debug msgs 2008-10-27 17:35:09 +00:00
sam
01ab47defe add sys.dev.ath.X.intmit knob to enable/disable ANI
(the intmit name is historical)
2008-10-27 17:22:46 +00:00
sam
6a321e4bfc shuffle debug setup to simplify debugging events during attach 2008-10-27 17:19:39 +00:00
sam
23c8556e7e rename bf_flags to bf_txflags in preparation for the addition of flags
separate from the tx descriptor flags currently recorded
2008-10-27 17:16:46 +00:00
sam
216fa3b455 use the ic's opmode instead of our hal equivalent to check for adhoc mode;
they are always the same
2008-10-27 17:14:39 +00:00
sam
8c49088828 intercept IEEE80211_IOC_TXPOWER and service tx power changes immediately 2008-10-27 17:12:41 +00:00
sam
3679a37659 move complaints about bad rate codes up a level so we can print
the h/w rate code and other useful info
2008-10-27 17:10:21 +00:00
sam
a0939ef791 remove driver-private equivalent of ni_txparms; it's now superfluous 2008-10-27 17:03:24 +00:00
sam
d45b2e4d70 now that the new association callback is used when joining a bss we can
eliminate the ath_rate_newassoc callback and associated code
2008-10-27 16:58:06 +00:00
sam
94d7312861 o use the new association callback to notify the driver when joining a bss
in sta and adhoc modes; this should've been done forever ago as most all
  drivers use this hook to set per-station transmit parameters such as for
  tx rate control
o adjust drivers to remove explicit calls to the driver newassoc method
2008-10-27 16:46:50 +00:00
ed
db4c3eb350 Remove unused consdev structure fields.
The cn_unit and cn_tp fields don't seem to be used anywhere. Some
drivers set them, while others don't. Just remove them, in an attempt to
make our consdev code a little easier to understand.
2008-10-27 11:45:31 +00:00
sos
9cb666e0ca Only call dma.unload() if initialized.
Reported by: Stanislav Sedov
2008-10-27 09:26:24 +00:00
nwhitehorn
00912a1e64 Add ADB support. This provides support for the external ADB bus on the PowerMac
G3 as well as the internal ADB keyboard and mice in PowerBooks and iBooks. This
also brings in Mac GPIO support, for which we should eventually have a better
interface.

Obtained from:  NetBSD (CUDA and PMU drivers)
2008-10-26 19:37:38 +00:00
rnoland
eca1f4b107 drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831)
Olaf Kirch noticed that the i915_set_status_page() function of the i915
kernel driver calls ioremap with an address offset that is supplied by
userspace via ioctl. The function zeroes the mapped memory via memset
and tells the hardware about the address. Turns out that access to that
ioctl is not restricted to root so users could probably exploit that to
do nasty things. We haven't tried to write actual exploit code though.

It only affects the Intel G33 series and newer.

Approved by:	bz (secteam)
Obtained from:	Intel drm repo
Security:	CVE-2008-3831
2008-10-25 16:29:28 +00:00
des
47259920d5 Add an entry for the "SIIG Cyber 4 PCI 16550", which is a four-port card
based on the OX16PCI954 chip with a non-standard clock.

MFC after:	3 days
2008-10-25 10:55:49 +00:00
mav
abff155322 Fix spelling in comment. 2008-10-25 08:31:20 +00:00
yongari
a2018f7497 Use auto-negotiation for manual media type selection. This fixes
establishment of 10/100Mbps link on Atheros AR8121(L1E).
2008-10-25 06:39:17 +00:00
marcel
b53efb78fa Add a driver for flash memory that implements to the Common Flash
Memory Interface (CFI). The flash memory can be read and written
to through /dev/cfi# and an ioctl() exists so processes can read
the query information.
The driver supports the AMD and Intel command set, though only
the AMD command has been tested.

Obtained from:	Juniper Networks, Inc.
2008-10-25 06:18:12 +00:00
n_hibma
deaf0437bc Make the driver compile on FBSD6 as well.
Up the speed on the E220 ID as it is a part which is used in other
devices that are capable of HSPA speeds.
2008-10-24 21:52:50 +00:00
mav
752759a368 Add MSI support.
Tested on:	Acer TravelMate 6292 with 0x4229 chip.
Reviewed by:	sam@
2008-10-24 21:21:43 +00:00
mav
6caf1de441 Bump the revision after the latest commits. 2008-10-24 19:36:28 +00:00
mav
882a5fcfeb Add some special handeling for AD1981HD codec. It has very unusual design
with several points unappropriate for the present parser. This patch
disables input-to-output analog monitoring but instead fixes recording.

Tested by Tobias Grosser on ThinkPad T61p.
2008-10-24 19:29:07 +00:00
n_hibma
304051a1cc Add U3G_DEBUG to LINT 2008-10-24 07:16:13 +00:00
n_hibma
90f7e74713 - Bugfix: Only claim interface after having checked all endpoints. This
might make Qualcomm and Option cards (which have all endpoints in 1
  interface) work.
- Change the USB buffer sizes to depend on the transfer speed. With UMTS
  we use a buffer 384k / 1000 frames/sec * 50msecs =~ 15kB for example.
- Add a MODULE_VERSION statement
2008-10-24 07:08:42 +00:00
des
a1e1ad22e0 Fix a number of style issues in the MALLOC / FREE commit. I've tried to
be careful not to fix anything that was already broken; the NFSv4 code is
particularly bad in this respect.
2008-10-23 20:26:15 +00:00
rnoland
0b81365bc6 Replace calls to minor() with dev2unit(). Ed already fixed this once,
but I inadvertently overwrote the change when I synced to git.  Commit
the fix in both places, so this doesn't happen again.

Approved by:	jhb (mentor)
MFC after:	2 weeks
2008-10-23 20:23:03 +00:00
rnoland
a92db6b830 This check is invalid and I disabled it once already. I accidentally
reintroduced it with the sync to git master.  Commit the fix in both
places this time.

Approved by:	jhb (mentor)
MFC after:	2 weeks
2008-10-23 20:19:56 +00:00
gallatin
58aba2ce39 Update to Myri10GE Firmware 1.4.36.
This update fixes a transmit bug in the multi-queue (MSI-X) firmware
which happens when RDMAs complete out of order, and provides
improved support for the new Myri10GE NIC models (10G-PCIE-8Bx)

Sponsored by: Myricom Inc.

MFC after:3 days
2008-10-23 20:07:08 +00:00
ed
859f75637c Don't include <sys/clist.h> inside ucom(4) and ufoma(4).
After being ported to the MPSAFE TTY layer, these drivers do not use
clists anymore. Don't include their header files.
2008-10-23 19:16:57 +00:00
ed
25ee4afba9 Fix detaching of uart(4) devices.
With our new TTY layer we use a two step device destruction procedure.
The TTY first gets abandoned by the device driver. When the TTY layer
notices all threads have left the TTY layer, it deallocates the TTY.

This means that the device unit number should not be reused before a
callback from the TTY layer to the device driver has been made. newbus
doesn't seem to support this concept (yet), so right now just add a
destructor with a big comment in it. It's not ideal, but at least it's
better than panicing.

Reported by:	rnoland
2008-10-23 19:11:44 +00:00
mav
8c20f01ac3 Add Intel ICH10 and SCH HDA controllers PCI IDs. 2008-10-23 18:30:06 +00:00
des
66f807ed8b Retire the MALLOC and FREE macros. They are an abomination unto style(9).
MFC after:	3 months
2008-10-23 15:53:51 +00:00
yongari
13ea6f6b0f Correct PHY description and OUI of VSC8211. Previously VSC8211 was
not recognized by ciphy(4) due to the incorrect OUI.

Reported by:	nork
Tested by:	nork
2008-10-23 01:27:15 +00:00
n_hibma
2555b247d9 Remove a comment that belonged to a deleted if statement. 2008-10-22 20:18:47 +00:00
jhb
bd95a98949 Fix build with PPC_PROBE_CHIPSET enabled. 2008-10-22 19:39:16 +00:00
jhb
c16b8be479 Fix build breakage.
Pointy hat:	jhb
2008-10-22 15:00:22 +00:00
n_hibma
b7cd789a4d Remove the debug flag.
This makes the u3gstub lines and the Windows-driver CD-ROM devices
disappear.
2008-10-22 10:12:21 +00:00
n_hibma
fd9ba7ef43 Add a device ID for the Ovation MC950D (Novatel Wireless HSUPA modem). 2008-10-21 22:14:22 +00:00
mav
e04c0708d5 Add HDA multimedia subclass. 2008-10-21 21:53:55 +00:00
mav
c4665a51ba Add "SD host controller" subclass name. 2008-10-21 20:55:41 +00:00
mav
d257370f82 Import sdhci (PCI SD Host Controller) driver.
Driver supports PCI devices with class 8 and subclass 5 according to
SD Host Controller Specification.

Update NOTES, enable module and static build.
Enable related mmc and mmcsd modules build.

Discussed on:   mobile@, current@
2008-10-21 20:33:40 +00:00
jhb
7813809388 Restore the default maximum segment size for the bus dma tag to 64k as it
is in 6.x and 7.x.  The typo caused 64k transactions to be unnecessarily
split up into two PRD entries.
2008-10-21 18:51:55 +00:00
jhb
03f7a1b892 Several cleanups to remove the need for explicit unit numbers and a few
other fixes:
- Add pointers back to device_t objects in softc structures instead
  of storing the unit and using devclass_get_device().
- Add 'lpbb', 'pcf', 'pps', and 'vpo' child devices to every 'ppbus' device
  instead of just the first one.
- Store softc pointers in si_drv1 of character devices instead of
  pulling the unit number from the minor number and using
  devclass_get_softc() and devclass_get_device().
- Store the LP_BYPASS flag in si_drv2 instead of encoding it in the minor
  number.
- Destroy character devices for lpt(4) when detaching the device.
- Use bus_print_child_footer() instead of duplicating it in
  ppbus_print_child() and fix ppbus_print_child()'s return value.
- Remove unused AVM ivar from ppbus.
- Don't store the 'mode' ivar in the ppbus ivars since we always fetch it
  from the parent anyway.
- Try to detach all the child devices before deleting them in
  ppbus_detach().
- Use pause() instead of a tsleep() on a dummy address when polling the
  ppbus.
- Use if_printf() and device_printf() instead of explicit names with unit
  numbers.

Silence on:	current@
2008-10-21 18:30:10 +00:00
kevlo
686524f8ab Remove unused age_txdq 2008-10-21 03:18:02 +00:00
kevlo
92f71ae8f1 No need to sync descriptors twice in age_rxintr() 2008-10-21 03:16:50 +00:00
mav
732eb6cbef Make HDA PCM device boot and sndstat messages more alike to PCI device ones.
Move codec # out of the device name as it is a device address and not part of
device type name.
2008-10-20 18:37:10 +00:00
mav
0cf0f083d0 Tune boot messages a bit.
Use <> brackets only at device name line.
2008-10-20 17:24:25 +00:00
sam
80a9e7675d fix static key wep; r183248 caused drivers to be called for keys to be
assigned to slots in the global key table but ath_key_alloc was not
updated to handle that
2008-10-19 21:34:49 +00:00
mav
5d85764b41 Coalesce sequentional BIO_DELETE requests to slightly relax size and alignment
constraints required by the card.
2008-10-18 22:22:25 +00:00
mav
89dcfbd0c6 Implement BIO_DELETE command with MMC and SD erase commands.
Erase operation gives card's logic information about unused areas to help it
implement wear-leveling with lower overhead comparing to usual writing.
Erase is much faster then write and does not depends on data bus speed.
Also as result of hitting in-card write logic optimizations I have measured
up to 50% performance boost on writing undersized blocks into preerased areas.

At the same time there are strict limitations on size and allignment of erase
operations. We can erase only blocks aligned to the erase sector size and
with size multiple of it. Different cards has different erase sector size
which usually varies from 64KB to 4MB. SD cards actually allow to erase
smaller blocks, but it is much more expensive as it is implemented via
read-erase-write sequence and so not sutable for the BIO_DELETE purposes.

Reviewed by:	imp@
2008-10-18 16:17:04 +00:00
jhb
62616a7acb - For chipsets that can't do 64k transfers, fall back to 32k transfers
(still a power of 2) rather than 63k transfers.  Even with 63k transfers
  some machines (such as Dell SC1435's) were experiencing chronic data
  corruption.
- Use the MIO method to talk to the Serverworks HT1000_S1 SATA controller
  like all the other SATA controllers rather than the compat PATA
  method.  This lets the controller see all 4 SATA ports and also
  matches the behavior of the Linux driver.

Silence from:	sos
MFC after:	3 days
2008-10-17 16:03:37 +00:00
brooks
b4ea99705f Wireless Mouse device of Sony VGP-WRC1 mouse/keyboard receiver has the
same program interface as Microsoft Wireless Notebook Optical Mouse and
needs a quirk.

PR:		usb/122712
MFC after:	3 days
2008-10-17 14:37:58 +00:00
kmacy
8ca0ed4e58 Track number of packets transmitted and number of packets received
PR:	125806
MFC after:	3 days
2008-10-17 07:04:29 +00:00
yongari
06e624317c Some 88E1149 PHY's page select is initialized to point to other
bank instead of copper/fiber bank which in turn resulted in
wrong registers were accessed during PHY operation. It is
believed that page 0 should be used for copper PHY so reinitialize
E1000_EADR to select default copper PHY.
This fixes link establishment issue of nfe(4) on Sun Fire X4140.

OpenBSD also has similimar patch but they just reset the E1000_EADR
register to page 0. However some Marvell PHYs((88E3082, 88E1000)
don't have the extended address register and the meaning of the
register is quite different for each PHY model. So selecting copper
PHY is limited to 88E1149 PHY which seems to be the only one that
exhibits link establishment problem. If parent device know the type
of PHY(either copper or fiber) that information should be notified
to PHY driver but there is no good way to pass this information yet.

Reported by:	thompsa
Reviewed by:	thompsa
2008-10-17 05:26:51 +00:00
n_hibma
794a823ee2 Rewrite the driver to better support the Huawei devices. It should now support
the Sierra and Novatel devices, ignore all umass devices and hide the umass
devices that represent the CD ROM devices (but not the SD card slot in the
Huawei Mobile dongle).

Note: This driver in FBSD7 seems to suffer from memory corruption when used
with an Option GT Quad. The E220 however works flawlessly.

Also add the ID for the Option GTMaxHSUPA, provided by Olivier Fromme.
2008-10-15 21:25:11 +00:00
marius
5854d5bf4f Use bus_{read,write}_4(9) instead of bus_space_{read,write}_4(9)
in order to get rid of the bus space handle and tag in the softc.

MFC after:	1 month
2008-10-14 20:28:42 +00:00
marius
660ef1bcc4 Use xpt_register_async() in order to remove code duplication.
MFC after:	1 month
2008-10-14 20:18:57 +00:00
mav
86cb0462ed Add all Sigmatel/IDT codecs I could find.
Add IDT and Intel unknown codecs.

PR:		kern/125822
2008-10-14 19:58:26 +00:00
thompsa
04f644835a Remove the 'old' Novatel MC950D entry which was slightly incorrect, NetBSD has
already picked up the new name so run with it.
2008-10-14 18:24:40 +00:00
dumbbell
e84c6ce51e Rewrite Synaptics touchpads support with the following goals in mind:
o  better quality of the movement smoothing
    o  more features such as tap-hold and virtual scrolling

Support must still be enabled with this line in your /boot/loader.conf:
    hw.psm.synaptics_support="1"

The following sysctls were removed:
    hw.psm.synaptics.low_speed_threshold
    hw.psm.synaptics.min_movement
    hw.psm.synaptics.squelch_level

An overview of this new driver and a short documentation about the added
sysctls is available on the wiki:
http://wiki.freebsd.org/SynapticsTouchpad
2008-10-14 17:48:36 +00:00
n_hibma
afee892368 Add back in the (incorrect) entry for the MC950D, as requested by Andrew
Thompson. They should not be removed in support of 3rd party software.
2008-10-14 15:19:02 +00:00
nwhitehorn
0d091e41de Convert PowerPC AIM PCI and nexus busses to standard OFW bus interface. This
simplifies certain device attachments (Kauai ATA, for instance), and makes
possible others on new hardware.

On G5 systems, there are several otherwise standard PCI devices
(Serverworks SATA) that will not allow their interrupt properties to be
written, so this information must be supplied directly from Open Firmware.

Obtained from:	sparc64
2008-10-14 14:54:14 +00:00
n_hibma
2092894d9c Move all the hacks for the Huawei, Novatel and Qualcomm cards into a stub
driver.

This stub also hides the devices until they are ready to be used to avoid
confusion (commented out for now).
2008-10-14 08:41:54 +00:00
n_hibma
a3a1acfdd7 Fix a comment.
Submitted by:	Nick Mann
2008-10-14 07:52:47 +00:00
n_hibma
7974c42270 - Fix the naming of the MC950D device.
- Remove the (unimplemented) U3GFL_EJECT quirk as this won't be implemented in
  the u3g driver anyway (most probably as an entry in devd.conf)
2008-10-14 07:45:11 +00:00
raj
64179715f2 Marvell Gigabit Ethernet controller driver.
This supports 1Gbps Ethernet engine found on ARM-based SOCs (Orion, Kirkwood,
Discovery), as well as on system controllers for PowerPC processors (MV64430,
MV6446x).

The following advanced features are supported:

  - multicast
  - VLAN tagging
  - IP/TCP/UDP checksum calculation offloading
  - polling
  - interrupt coalescing

Obtained from:	Marvell, Semihalf
2008-10-14 07:24:18 +00:00
raj
74d05be22e Mbus attachment for USB EHCI integrated controller on Marvell chips.
This includes workarounds required for the ehci(4) to handle some non-standard
behaviour of these devices.

Obtained from:	Marvell, Semihalf
2008-10-14 07:05:20 +00:00
yongari
9645b4dc68 Make sure to read the last byte of EEPROM descriptor. Previously
the last byte of the ethernet address was not read which in turn
resulted in getting 5 out of the 6 bytes of ethernet address and
always returned ENOENT. I did not notice the bug on FPGA version
because of additional configuration data in EEPROM.

Pointed out by:	bouyer at NetBSD
2008-10-14 00:54:15 +00:00
n_hibma
8dc3d7a3f0 - Add better support for Huawei cards, by attaching as an interface driver.
- Be bold and add Novatel cards to the list of supported devices. One person
  reported success with the Novatal U950D.
2008-10-13 20:41:11 +00:00
n_hibma
2e7cf84cd8 - Only refuse to attach to the first interface on the Huawei cards as for
example the Huawei Mobile has an SD card slot on the second interface.
- Do not attach to Qualcomm and Novatel cards. If ignored these cards will
  switch to modem mode automatically it seems.
- Reduce the priority on generic attachment to the appropriate level.

Note: A better solution is to send an eject command straightaway, but that can
be left till later.
2008-10-13 20:38:33 +00:00
raj
3226c13778 Introduce basic support for Marvell families of system-on-chip ARM devices:
*  Orion
     - 88F5181
     - 88F5182
     - 88F5281

  * Kirkwood
     - 88F6281

  * Discovery
     - MV78100

The above families of SOCs are built around CPU cores compliant with ARMv5TE
instruction set architecture definition. They share a number of integrated
peripherals. This commit brings support for the following basic elements:

  * GPIO
  * Interrupt controller
  * L1, L2 cache
  * Timers, watchdog, RTC
  * TWSI (I2C)
  * UART

Other peripherals drivers will be introduced separately.

Reviewed by:	imp, marcel, stass (Thanks guys!)
Obtained from:	Marvell, Semihalf
2008-10-13 20:07:13 +00:00
rnoland
69ae2b2b5a Correct memory leak of info->rects. Previously we would free info, but
but abandon info->rects.

Approved by:	jhb (mentor)
2008-10-13 18:06:33 +00:00
rnoland
192b3600be Rework memory allocation to allocate memory with different type names. This
will ease the identification of memory leaks as the OS will be able to track
allocations for us by malloc type.  vmstat -m will show all of the
allocations.

Convert the calls to drm_alloc() and friends, which are used in shared code
to static __inline__ while we are here.

Approved by:	jhb (mentor)
2008-10-13 18:03:27 +00:00
rnoland
0d37976f3d The linux list compat code had an error which prevented list_for_each_safe()
from operating on a list with a single item.  This code is used much more by
the i915 driver with xorg-7.4.  Correct it to match the actual linux
implementation.

Approved by:	jhb (mentor)
2008-10-13 17:52:41 +00:00
rnoland
a12193d248 Correct the interrupt handling in the Intel i915 driver.
Approved by:	jhb (mentor)
2008-10-13 17:47:13 +00:00
rnoland
068d210a75 Several of the newer radeon cards have moved around the registers for enabling
busmastering support.  This also adds register definitions for MSI support,
which we will be using shortly.

Approved by:	jhb (mentor)
Obtained from:	drm git master
2008-10-13 17:43:39 +00:00
rnoland
d9c126db9b Add support for Radeon rs740 (HD 2100)
Approved by:	jhb (mentor)
Obtained from:	drm git master
2008-10-13 17:38:04 +00:00
nwhitehorn
2077c8c845 Change the way we enable the BMAC cell in macio. Instead of calling the
macio's enable-enet word, which apparently does nothing on some machines,
open an OF instance of the ethernet controller. This fixes cold booting
from disk on my Blue & White G3.

MFC after:	3 days
2008-10-13 17:33:55 +00:00
des
b0c31e1c93 Revert r179409; it breaks all OX16PCI954-based cards except the SIIG 4.
MFC after:	3 days
2008-10-13 12:28:33 +00:00
yongari
2c490bb4c3 Read PCI device id instead of PCI revision id. Also checks the read
device id is JMC260 family. Previously it just verified the deivce
is JMC260 Rev A0. This will make it easy for newer JMC2xx support.

Pointed out by:	bouyer at NetBSD
2008-10-13 01:11:28 +00:00
mav
0284768cd5 Bump driver revision after the previous commit. 2008-10-12 21:46:11 +00:00
mav
8f51d54b97 Fix bug in a second call of the channel allocation function.
This should fix crash on systems where two audio codecs connected
to the same HDA bus.
2008-10-12 21:42:21 +00:00
mav
eee0889b0a Use GB suffix only from 10GB instead of 1GB.
There are lot of cards with uneven sizes and too strong rounding
will lead to very significant rounding errors.

Reviewed by:	imp@
2008-10-12 19:19:26 +00:00
imp
63d968fc5f style(9): spaces around operators. 2008-10-12 07:30:05 +00:00
imp
43311b35e5 Print the cards natural size.
Move nested tertiary operator expressions into their own function.
Remove extra blank line.
cache sd->disk in 'd' to make the code easier to read.
2008-10-12 07:24:31 +00:00
mav
dd3c40ad71 SELECT_CARD command with zero RCA deselects all cards and so has no reply. 2008-10-11 17:30:02 +00:00
mav
5bace10bb3 Give mmcsd driver a bit more information about card. It allows to reorganize
log message in a way a bit more common for disk devices. Also it will allow
mmcsd driver to use MMC/SD specific commands when needed.
2008-10-11 13:05:13 +00:00
rpaulo
29c519f351 Move Qualcomm ZTE CDMA from ubsa(4) to u3g(4).
Reviewed by:	n_hibma
2008-10-11 10:47:18 +00:00
n_hibma
7ce828dea0 Typo. 2008-10-10 20:05:15 +00:00
n_hibma
0d502887b1 Typo in ifdef.
Submitted by:	Andrew Thompson
2008-10-10 07:16:44 +00:00
n_hibma
02c7a0e7d1 Say hello to the u3g driver, implementing support for 3G modems.
This was located in the ubsa driver, but should be moved into a separate
driver:

- 3G modems provide multiple serial ports to allow AT commands while the PPP
  connection is up.
- 3G modems do not provide baud rate or other serial port settings.
- Huawei cards need specific initialisation.
- ubsa is for Belkin adapters, an Linuxy choice for another device like 3G.

Speeds achieved here with a weak signal at best is ~40kb/s (UMTS). No spooky
STALLED messages as well.

Next: Move over all entries for Sierra and Novatel cards once I have found
testers, and implemented serial port enumeration for Sierra (or rather have
Andrea Guzzo do it). They list all endpoints in 1 iface instead of 4 ifaces.

Submitted by:	aguzzo@anywi.com
MFC after:	3 weeks
2008-10-09 21:25:01 +00:00
n_hibma
952a69a4c8 uark/ucom: Minor code cleanup.
umass; Remove duplicated code.
ukbd: Fill in the arg parameter on the through call.
2008-10-09 20:51:25 +00:00
mav
8e7aede58a Add high capacity MMC cards support. 2008-10-09 20:09:56 +00:00
imp
2dffc5408e o Use seprate routines to decode cid and csd for sd and mmc cards. All they
have in common right now is a memset.  This saves a parameter to
  these routines, as well as a level of indentation.
o Make mmc_get_bits a little clearer...  It really only works on 128-bit
  registers right now.
2008-10-09 19:47:28 +00:00
n_hibma
b020102453 Add modules for the HCI part of USB. This is convenient when having a UHCI
controller in your laptop but inserting a (OHCI-based) Option Cardbus card.
2008-10-09 19:22:00 +00:00
jkoshy
62245b8648 - Sparsely number enumerations 'pmc_cputype' and 'pmc_event' in order to
reduce ABI disruptions when new cpu types and new PMC events are added
  in the future.
- Support alternate spellings for PMC events.  Derive the canonical
  spelling of an event name from its enumeration name in 'enum pmc_event'.
- Provide a way for users to disambiguate between identically named events
  supported by multiple classes of PMCs in a CPU.
- Change libpmc's machine-dependent event specifier parsing code to
  better support CPUs containing two or more classes of PMC resources.
2008-10-09 14:55:45 +00:00
sos
62bed477fa This is the roumored ATA modulerisation works, and it needs a little explanation.
If you just config KERNEL as usual there should be no apparent changes, you'll get all chipset support code compiled in.

However there is now a way to only compile in code for chipsets needed on a pr vendor basis. ATA now has the following "device" entries:

atacore:	ATA core functionality, always needed for any ATA setup

atacard:	CARDBUS support
atacbus:	PC98 cbus support
ataisa:		ISA bus support
atapci:		PCI bus support only generic chipset support.

ataahci:	AHCI support, also pulled in by some vendor modules.

ataacard, ataacerlabs, ataadaptec, ataamd, ataati, atacenatek, atacypress, atacyrix, atahighpoint, ataintel, ataite, atajmicron, atamarvell, atamicron, atanational, atanetcell, atanvidia, atapromise, ataserverworks, atasiliconimage, atasis, atavia;	Vendor support, ie atavia for VIA chipsets

atadisk:	ATA disk driver
ataraid:	ATA softraid driver

atapicd:	ATAPI cd/dvd driver
atapifd:	ATAPI floppy/flashdisk driver
atapist:	ATAPI tape driver

atausb:		ATA<>USB bridge
atapicam:	ATA<>CAM bridge

This makes it possible to config a kernel with just VIA chipset support by having the following ATA lines in the kernel config file:

device          atacore
device          atapci
device          atavia

And then you need the atadisk, atapicd etc lines in there just as usual.

If you use ATA as modules loaded at boot there is few changes except the rename of the "ata" module to "atacore", things looks just as usual.
However under atapci you now have a whole bunch of vendor specific drivers, that you can kldload individually depending on you needs. Drivers have the same names as used in the kernel config explained above.
2008-10-09 12:56:57 +00:00
jkoshy
af2adb6117 Rework pmc-dependent flag handling. 2008-10-09 06:19:42 +00:00
mav
9f45d71ed9 Only voltage bits should be zero in send_op_cond argument to ignore busy. 2008-10-08 21:10:55 +00:00
mav
3092a6ddfc Generic SD Host Controller driver going to be named sdhci. 2008-10-08 20:00:51 +00:00
mav
74aa2a1a28 Fix bit offset in mmc_sd_switch(). 2008-10-08 18:13:14 +00:00
mav
a13e6527d9 Set of mmc layer improvements:
- add MMC support.
 - add SDHC support.
 - add 4 and 8 bit bus width support.
 - add High Speed bus timing support.
2008-10-08 17:35:41 +00:00
phk
401ce09b8e Quirks for SDS-infrared.com "Hotfind-D" camera.
PR:		127943
2008-10-08 13:53:47 +00:00
imp
df4f3faa28 Add a note about a bug in how sio manages its softc. This was
discovered by Dorr H. Clark.  I'm not at all sure how to fix it, but
wanted to document it at the very least...
2008-10-08 08:08:03 +00:00
imp
0f30d2da70 Pass bus_get_dma_tag() into the first argument of bus_dma_create_tag()
rather than NULL.
2008-10-07 23:55:32 +00:00
delphij
83b7a52a16 Limit DMA memory to lower addressable 4GB, without this patch, we
can reliably provoke data corruption on systems equipped with a
plenty of memory during high load.

Reported by:	gnn via iXsystems
MFC candidate:	RELENG_7_1, RELENG_7
2008-10-06 22:34:17 +00:00
jkoshy
b964421dc9 Correct a typo. 2008-10-06 10:34:44 +00:00
rnoland
848f285a65 Don't explicitly bzer driver softc
new-bus already handles this for us.

Suggested by jhb@

Approved by:	jhb (mentor)
2008-10-04 14:51:14 +00:00
rnoland
e416dd643a Use M_WAITOK when allocating driver memory
We don't explicity check for error here and M_WAITOK will just put the
process to sleep waiting on resources to become available.

Suggested by jhb@

Approved by:	jhb (mentor)
2008-10-04 14:48:40 +00:00
rnoland
6d0a9a164f Change drm_order() to use ffsl()
pointed out by jhb@

Approved by:	jhb (mentor)
2008-10-04 14:45:34 +00:00
antoine
7fc1ad0ddb - Spell cam correctly (scbus), this makes it possible to compile hptiop
in GENERIC and LINT. [1]
- Rename hpt_dbg_level to hpt_iop_dbg_level to avoid multiple definition
of hpt_dbg_level (hptmv also has hpt_dbg_level).

PR:		127551 [1]
Reviewed by:	scottl@
MFC after:	1 month
2008-10-04 10:39:31 +00:00
jkoshy
73dd819b37 Fix a typo. 2008-10-04 07:19:26 +00:00
weongyo
37709ec805 sc->ndis_txidx should be cycle between 0 and sc->ndis_maxpkts, not
NDIS_TXPKTS and don't allocate unused extra spaces for sc->ndis_txarray
and sc->ndis_txpool.

PR:		kern/127644
Submitted by:	Antoine Pelisse <apelisse_at_gmail.com>
MFC after:	1 week
2008-10-04 04:15:39 +00:00
rnoland
bbc754f502 resync to git master
This reverts a private patch which is causing issues with many Intel chipsets.
I will review that patch and see what we need to do to fix it up later, but
for the time being, we will just get these chips working again.

This update contains a lot of code cleanup and is post gem merge
(no, we don't have gem support).  It should prove much easier to read the
code now.  A lot of thanks goes to vehemens for that work.  I have adapted
the code to use cdevpriv for tracking per open file data.  That alleviates
the old ugly hack that we used to try and accomplish the task and helped to
clean up the open / close behavior a good bit.  This also replaces the hack
that was put in place a year or so ago to prevent radeons from locking up
with AIGLX enabled.  I have had a couple of radeon testers report that it
still works as expected, though I no longer have radeon hardware to test with
myself.  Other various fixes from the linux crew and Intel, many of
which are muddled in with the gem merge.

Approved by:	jhb (mentor)
Obtained from:	mesa/drm git master
MFC after:	2 weeks
2008-10-03 16:59:11 +00:00
stas
2a2b3ea928 - Add driver for Attansic L2 FastEthernet controller found on
Asus EeePC and some Asus mainboards.

Reviewed by:	yongari, rpaulo, jhb
Tested by:	many
Approved by:	kib (mentor)
MFC after:	1 week
2008-10-03 10:31:31 +00:00
yongari
7570f3398a Add hardware MAC statistics support. Register information was
obtained from Linux forcedeth driver.
While I'm here move creating a sysctl node for process_limit to
function nfe_sysctl_node().

Tested by:	"Arno J. Klaassen" < arno <at> heho dot snv dot jussieu dot fr >
2008-10-03 03:58:16 +00:00