Sascha Wildner [Thu, 16 Jan 2014 06:11:11 +0000 (07:11 +0100)]
hammer2(8): Fix wrong sizeof.
Sepherosa Ziehau [Wed, 15 Jan 2014 14:17:31 +0000 (22:17 +0800)]
spinlock.9: Update
- Spinlock prevent FAST interrupt from running and prevent IPIQ from
being processed.
- FAST interrupt and IPI could hold spinlock.
Sepherosa Ziehau [Wed, 15 Jan 2014 14:09:49 +0000 (22:09 +0800)]
serializer.9: Update
Sepherosa Ziehau [Wed, 15 Jan 2014 13:53:14 +0000 (21:53 +0800)]
atomic: Update intr_cond comment according to the recent changes
Sascha Wildner [Wed, 15 Jan 2014 10:19:20 +0000 (11:19 +0100)]
Remove a bunch of unnecessary semicolons.
Sascha Wildner [Wed, 15 Jan 2014 08:36:43 +0000 (09:36 +0100)]
Update the pciconf(8) database.
January 13, 2014 snapshot from http://pciids.sourceforge.net/
Sepherosa Ziehau [Tue, 14 Jan 2014 13:22:58 +0000 (21:22 +0800)]
x86_64: Detect CPU specific C-state through CPUID(5)
The information is exposed through machdep.mwait sysctl nodes
This could be used to:
- Validate cpu_mwait_halt
- Validate cpu_mwait_spin
- Prepare to turn on C1/C2/C3 native support in ACPI _OSC evalution
Sascha Wildner [Tue, 14 Jan 2014 13:11:36 +0000 (14:11 +0100)]
libmd: Fix some manual page prototypes.
John Marino [Tue, 14 Jan 2014 12:56:29 +0000 (13:56 +0100)]
libc: Add initial sysvipc Symbol map (untested)
Sascha Wildner [Tue, 14 Jan 2014 07:19:43 +0000 (08:19 +0100)]
<sys/param.h>: Fix typo in a comment.
John Marino [Mon, 13 Jan 2014 13:23:54 +0000 (14:23 +0100)]
Build: Bump version to 300701 for smb.h relocation
Now that video driver version checks have been updated on DPorts master
branch, __DragonFly_version can be bumped without breaking them.
Sascha Wildner [Mon, 13 Jan 2014 06:08:46 +0000 (07:08 +0100)]
ps.1: Remove info about the no longer existing 'M' process state.
Sascha Wildner [Mon, 13 Jan 2014 05:57:32 +0000 (06:57 +0100)]
Clean up some things in /usr/src/sys/conf.
* Remove 'defines'. It belonged to an old target (links) which is no
longer used.
* Remove the manual revision number adjustments for minor releases
(x.y.z). It can be seen in uname -v output too, so it's redundant.
Sepherosa Ziehau [Sun, 12 Jan 2014 12:28:53 +0000 (20:28 +0800)]
platform/acpi: Update according to ACPI spec 5.0
Sepherosa Ziehau [Sun, 12 Jan 2014 11:48:19 +0000 (19:48 +0800)]
cpuinfo: "Standard Extended Features" -> "Structured Extended Features"
Sepherosa Ziehau [Sun, 12 Jan 2014 11:42:55 +0000 (19:42 +0800)]
cpu_idle_hlt: Remove unapplied comment
The comment of possible values is in cpu_idle()
Sepherosa Ziehau [Sun, 12 Jan 2014 10:45:22 +0000 (18:45 +0800)]
acpi/cstate: Make sure we could handle C-state deeper than C3
Sepherosa Ziehau [Sun, 12 Jan 2014 08:54:45 +0000 (16:54 +0800)]
acpi/cstate: Allow request deeper C-state, even it has no _CST entry
On laptop, BIOS may unveil more C-states if power cable is unplugged,
which means if you want to use these deeper C-states you will have to
re-adjust C-state sysctls. This commit automates this kind of
"re-adjust". Read-only sysctl nodes hw.acpi.cpuX.cx_lowest_use and
hw.acpi.cpu.cx_lowest_use are introduced to show the current deepest
C-state could be used.
Sascha Wildner [Sat, 11 Jan 2014 19:09:45 +0000 (20:09 +0100)]
exec.3/sbuf.9: Fix some prototypes.
Sascha Wildner [Sat, 11 Jan 2014 17:46:42 +0000 (18:46 +0100)]
Remove redefinition warning in netgraph7.
Sascha Wildner [Sat, 11 Jan 2014 07:04:56 +0000 (08:04 +0100)]
kernel/smbfs: Remove dead code.
Sascha Wildner [Sat, 11 Jan 2014 06:57:22 +0000 (07:57 +0100)]
rndtest(4): Sync with FreeBSD (cosmetics), build as a module.
Sascha Wildner [Fri, 10 Jan 2014 20:45:03 +0000 (21:45 +0100)]
include/Makefile: Sort LSUBDIRS a bit better.
François Tigeot [Fri, 10 Jan 2014 20:24:56 +0000 (21:24 +0100)]
sysctl: Partial sync with FreeBSD
* Revisit locking to use the same locks and macro names as FreeBSD
* Add sysctl_remove_name()
* Add sysctl_rename_oid()
Matthew Dillon [Fri, 10 Jan 2014 20:09:03 +0000 (12:09 -0800)]
kernel - Revert version to 300700
* Revert version to 300700 until swildner/marino can figure out the
port build issues.
Matthew Dillon [Fri, 10 Jan 2014 20:03:43 +0000 (12:03 -0800)]
kernel - u4b - Implement doorbell
* Implement the doorbell properly.
* Use the doorbell to clear the previous transfer when reusing a transfer.
This is a horribly inefficient hack but it's better than blowing up the
controller
(This is in addition to the xfer freeing fifo hack)
* We also seem to need to ring the doorbell when queueing transfers. This
should not be necessary.
* Enable ASP. This allows qTD bursts, making high speed busses more
efficient.
* NOTE: There are still problems with umass. With some USB sticks,
writing to the stick causes the cpu to stall for very long
periods of time. It is shown as 'interrupt' overhead but insofar
as I can tell it's actually the controller stalling the memory
bus for reasons unknown.
This does not happen with e.g. a SATA SSD connected through a USB
adapter.
Matthew Dillon [Fri, 10 Jan 2014 20:02:02 +0000 (12:02 -0800)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
Matthew Dillon [Fri, 10 Jan 2014 20:01:37 +0000 (12:01 -0800)]
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
François Tigeot [Thu, 9 Jan 2014 20:37:14 +0000 (21:37 +0100)]
drm/i915: Remove a get/rel mplock sequence
This code was a FreeBSD addition, not present in the original Linux version
Sascha Wildner [Fri, 10 Jan 2014 19:15:39 +0000 (20:15 +0100)]
Bring back smb.h in /usr/include
It was moved recently. Since it was public and some ports want it,
bring it back in the corresponding location in /usr/include.
John Marino [Fri, 10 Jan 2014 00:06:03 +0000 (01:06 +0100)]
iconv: Sync#2 - Support ICONV_{GET,SET}_ILSEQ_INVALID
Add ICONV_{GET,SET}_ILSEQ_INVALID iconvctl. GNU iconv returns EILSEQ
when there is an invalid character in the output codeset while it is
valid in the input. However, POSIX requires iconv() to perform an
implementation-defined conversion on the character. So, Citrus iconv
converts such a character to a special character which means it is
invalid in the output codeset.
This is not a problem in most cases but some software like libxml2
depends on GNU's behavior to determine if a character is output as-is
or another form such as a character entity (&#NNN;).
Taken verbatim from:
FreeBSD SVN 258537 (24 NOV 2013)
John Marino [Thu, 9 Jan 2014 23:34:37 +0000 (00:34 +0100)]
iconv: Sync#1 with FreeBSD (minor)
This fixes a couple of minor bugs and removes WITH_LIBICONV_COMPAT
garbage, as seen in:
FreeBSD SVN 256833 (21 OCT 2013)
FreeBSD SVN 257583 (03 NOV 2013)
FreeBSD SVN 257858 (08 NOV 2013)
Sascha Wildner [Fri, 10 Jan 2014 18:44:34 +0000 (19:44 +0100)]
nrelease: Stop putting net/isc-dhcp42-client on the ISOs/IMGs.
I don't remember how it got into the list, given that we have dhclient(8).
I assume building the server didn't work without having built the client
at some point in time (maybe in pkgsrc times).
Noticed-by: sephe
Matthew Dillon [Fri, 10 Jan 2014 17:46:20 +0000 (09:46 -0800)]
build - Bump version to 300701
* bus/smbus/smb.h -> dev/smbus/smb/smb.h
Sepherosa Ziehau [Fri, 10 Jan 2014 13:35:16 +0000 (21:35 +0800)]
x86_64: Mark LAPIC timer as powersaving capable intr cputimer
If CPUID(0x6) has ARAT, then LAPIC timer will not stop in deep C-state.
Thank alexh@ for the necessary information.
Sepherosa Ziehau [Fri, 10 Jan 2014 13:34:11 +0000 (21:34 +0800)]
cputimer/intr: Restart only if the intr cputimer is changed
Sepherosa Ziehau [Fri, 10 Jan 2014 13:13:26 +0000 (21:13 +0800)]
x86_64: Extract "Thermal and Power management Feature"
This feature will be used to detect whether LAPIC timer could be enabled
for deep C-states.
Sepherosa Ziehau [Fri, 10 Jan 2014 12:39:49 +0000 (20:39 +0800)]
atomic: Adjust style a little bit
Sascha Wildner [Fri, 10 Jan 2014 07:29:12 +0000 (08:29 +0100)]
libc/fork: Fix __fork() definition.
Sascha Wildner [Fri, 10 Jan 2014 07:12:14 +0000 (08:12 +0100)]
libc/getosreldate: Include <unistd.h> for prototype.
Sascha Wildner [Fri, 10 Jan 2014 07:11:50 +0000 (08:11 +0100)]
getosreldate.3: Update a bit (fix header for prototype, RETURN VALUES).
Matthew Dillon [Fri, 10 Jan 2014 03:33:20 +0000 (19:33 -0800)]
kernel - Fix bug in last commit to sys_generic.c
* memp can be uninitialized if the goto done occurs.
Matthew Dillon [Fri, 10 Jan 2014 02:01:29 +0000 (18:01 -0800)]
cyapa - Add false 3-finger button and add emulation for all three buttons
* 3-finger sequences can now be used to emulate all three buttons
rather than just the left button.
When you place three fingers down, the one you place last and/or
the one you tap determines the button. If the left finger is last
then the LEFT mouse button is emulation. Middle finger (of the
three) emulates the MIDDLE mouse button, and the right finger
emulates the right mouse button. Only one button can be emulated
at a time.
* Add detection for false 3-finger buttons. When you place all three
fingers down at the same time within 1/25 of a second this is detected
and will emulate NO fingers. You can then simply tap the finger you
want after moving the mouse pointer to where you want.
(In addition to the normal one-finger or two-finger mousing, this also
allows you to mouse with three fingers).
* WARNING! These trackpads have a limitation when three or more
fingers are down. This makes emulating a 4-finger or 5-finger
'claw' (for button-4 or button-5) very difficult so we currently
do not support that.
If three or more fingers are placed on the pad in a horizontal line
(all Y coordinates are the same), the pad will get confused after
a few seconds. It will recalibrate and de-confuse itself if you
life your hand off the pad for a few seconds.
The solution is when using 3-finger sequences to place your fingers
on a SLIGHT diagonal so their Y coordinates are slightly different.
This will yield much more reliable operation of the trackpadd's
finger detection function.
Matthew Dillon [Thu, 9 Jan 2014 23:06:39 +0000 (15:06 -0800)]
cyapa - Introduce better three-finger button emulation
* Change the three-finger button emulation such that the third finger that
you use to tap will emulate the LEFT, MIDDLE, or RIGHT buttons depending
on its X position relative to the other two fingers that are being held
down.
e.g. if you arrange fingers left-to-right A, B, C, and you hold B and C
on the pad and tap A, that's a LEFT button. If you hold A and C and
tap B, that's a middle button, and if you hold A and B and tap C, that's
a right button.
* This methodology allows all three buttons to be emulated cleanly without
having to depress the trackpad's physical button.
* Document all jestures.
Sascha Wildner [Thu, 9 Jan 2014 19:02:25 +0000 (20:02 +0100)]
Oops, fix typo in man4/Makefile.
Sascha Wildner [Thu, 9 Jan 2014 19:00:50 +0000 (20:00 +0100)]
Add a little ichiic(4) manual page.
Matthew Dillon [Thu, 9 Jan 2014 17:37:07 +0000 (09:37 -0800)]
build - remove uapi/linux.h for now
* Remove the file from sys/contrib until we can figure out licensing
issues.
Matthew Dillon [Thu, 9 Jan 2014 17:35:24 +0000 (09:35 -0800)]
kernel - Add another prototype skeleton to subr_input.c
* Add inputev_ioctl() (inactive file)
* Minor linux-compat adjustments (inactive file)
Matthew Dillon [Thu, 9 Jan 2014 17:34:26 +0000 (09:34 -0800)]
hammer2 - minor cleanups
* Minor cleanups
Sepherosa Ziehau [Fri, 3 Jan 2014 13:22:12 +0000 (21:22 +0800)]
serialize: Rework adaptive enter
- Don't increase wait counter before the spinning phrase; this avoids
unnecessary wakeup() calls on other CPU
- Rework the spinning phrase according to our spinlock contest processing
Tested on 8 HT (i7-3770) box, using kq_accept_server/kq_connect_client:
- 4/4 TX/RX rings device (BCM5719, using MSI-X), slight improvement.
- 8/8 TX/RX rings device (Intel 82580, using MSI-X), slight improvement.
- 1/2 TX/RX rings device (Intel 82599, using MSI), slight improvement.
Sascha Wildner [Thu, 9 Jan 2014 08:33:39 +0000 (09:33 +0100)]
installer: Fix recently introduced format / argument breakage.
It's __printflike(1, 3) but I treated it like __printflike(1, 2) in
9462167aa18776bf92c161a3c65740189ffe8912.
Reported-by: Joe White <hybris246@gmail.com>
Matthew Dillon [Thu, 9 Jan 2014 07:25:18 +0000 (23:25 -0800)]
cyapa - cleanup, bug fixes
* Document the xorg.conf config.
* Fix some button state change issues that could lead to false button
handling when the slider is active.
* Increase the distance that must be travelled before locking to the
left button on finger movement for button presses.
* Add experimental button-4 and button-5 (4-finger/5-finger) support,
but at the moment it isn't playing nice with X.
Matthew Dillon [Thu, 9 Jan 2014 05:01:43 +0000 (21:01 -0800)]
cyapa - Add Intellimouse support (mousewheel) - right side slider
* Adds emulation of a mouse wheel. The driver is still ps/2 compatible
but if you want a mousewheel specify the "imps/2" protocol.
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "imps/2"
# Option "Protocol" "ps/2"
Option "Device" "/dev/cyapa0-67"
EndSection
* The mousewheel is emulated by touching the rightmost border of the
trackpad with a single finger and sliding your finger up or down.
* Any button push with two fingers down will now ALWAYS emulate the
left mouse button, even if you haven't moved the mouse.
* FEATURE SUMMARY:
- Supports right-side slider if "imps/2" protocol is used.
- Emulates middle and right buttons if you push the trackpad button
from the left, middle, or right side of the pad with one finger.
- Trackpad button is always the 'left' button if you press it with
two fingers.
- You can also get the 'left' button with three fingers (try shifting
the mouse around with two fingers and then tap a third finger), without
actually articulating the trackpad button. This is VERY convenient.
- Has jitter supression.
- True tracking for X and Y. Within reason (X will drop deltas despite
our best efforts), shifting your finger around the pad will not lose
deltas, meaning that you can shift around and when you return your finger
to where you started, the mouse should be where it started too.
- Multi-finger delta handling. This is not reported to X, but the driver
tracks which finger touched first and delta tracking will be based on
that finger. If you lift that finger up, the next finger will take
over and the driver is coded to not improperly 'jump' the mouse due to
where the next finger is relative to the first.
This means that spurious fingers won't mess up your mouse. Remember
however that three or more fingers emulates the left button.
Sascha Wildner [Thu, 9 Jan 2014 04:09:19 +0000 (05:09 +0100)]
pcm.4: Clean up .Nm and MLINKS situation.
There is neither a "snd" kernel option nor a "snd.ko" module, so remove
"snd" from both .Nm and MLINKS.
While here, document that the corresponding module for the "pcm" kernel
option is "sound.ko".
Sascha Wildner [Thu, 9 Jan 2014 04:01:39 +0000 (05:01 +0100)]
Remove <bus/smbus/smb.h> via 'make upgrade'.
Matthew Dillon [Thu, 9 Jan 2014 03:22:00 +0000 (19:22 -0800)]
cyapa - Adjust button and multi-touch handling a bit
* If you finger-move more than 16 pixels, the button press will always
be registered as a LEFT button press.
This makes it much easier to move around the pad and hit GUI buttons, move
windows around, etc.
* Three fingers simulates the left button without actually having to hit it.
(it's too easy to accidently have two fingers down so we don't simulate
the left button with two fingers). This makes it even easier to move
windows around and hit GUI buttons.
* If you just hit the button without a finger-move, the button press will
be LEFT, MIDDLE, or RIGHT depending on where you are on the pad, as before.
* Track identifiers when multiple fingers are down. The trackpad can track
up to 5 fingers. Use the identifier tracking to avoid jumping the
coordinates to a different finger (which would cause the mouse to jump).
This results in much easier mouse movement.
Matthew Dillon [Thu, 9 Jan 2014 01:18:25 +0000 (17:18 -0800)]
cyapa - Add 1-pixel hystersis
* Add a little hystersis to fix +1/-1 jitter. This makes (especially)
shift-moving windows much pleasanter.
Matthew Dillon [Wed, 8 Jan 2014 23:31:00 +0000 (15:31 -0800)]
kernel - Hack fixes for EHCI issues in U4B
* These changes fix several issues with the U4B EHCI. Insertion and Removal
events through hubs no longer crash the controller and/or the machine.
And heavy bulk traffic no longer crashes the controller or has weird
failures. Probing works more reliably as well.
* The main problem is the U4B design for QH/TD descriptors. It allocates
and frees them with the xfer. For the EHCI controller it rips out the
QH's from the chain and doesn't do the right interactions with the
controller to ensure that the controller is not still iterating through
the chain.
It is possible for the controller to wind up iterating through a long
chain of removed (finished or timed-out) QH's. If any of them are
kfree()'d or free/reallocated/reused before their time, BOOM! The
controller can chain right through into random memory and blow up.
* The first hack is to delay kfree()ing the xfer rollup buffer. I just
threw in a 256-slot delay. I'm not even doing it right (it isn't time-based
or doorbell-based). Note that linux uses the doorbell-based method,
where the structures are left intact until the next doorbell interrupt.
* The second hack is to issue doorbells (EHCI_CMD_IAAD) after every new
transfer is queued and after each transfer is removed. The doorbell is
PARTICULARLY important after a removal, because the controller can
wind up sitting on a removed QH indefinitely otherwise.
Removed chains can cause the controller to miss newly added chains, thus
the doorbell is needed for that reason as well.
Also reorder the cpu flushes a little when coding the above.
* Add numerous new structural fields and assertions to ensure that the
EHCI code doesn't try to remove requests from HW that were never queued
to HW. The U4B API's are *VERY* loose in this regard so I added a
double check.
* DragonFly: The ugen*.* devices need a dev d_open and d_close routine.
Our default d_open/d_close is not the same as FreeBSD's.
* Fix a major bug in usb_open() where the 'cpd' structure can get lost
if multiple open()'s occur on the same ugen device.
Allow multiple opens as long as the permissions are the same. This
is really a hack to fix an issue where 'usbconfig list' opens ugen0.1
twice (i.e. has two open descriptors on the same device).
Also properly NULL-out dev->si_drv2 on (last) close.
* Replace two cv_signal/cv_wait calls with wakeup/lksleep, and place a
timeout on the lksleep loop because the two places in question have
a SMP race which the locks don't handle. Basically the callback is
made BEFORE all the conditions potentially preventing an xfer from
being flagged as completed are met, so the cv_signal() was waking up
the waiter potentially before its time (and the lock is not held through
the whole thing so it doesn't interlock the race).
* In usbd_req_get_desc() reload the req fresh on each loop.
* In usbd_req_get_desc() increase the timeout from 0.5 seconds to 1 second.
Sascha Wildner [Wed, 8 Jan 2014 20:57:22 +0000 (21:57 +0100)]
Teach GCC about our strftime()'s non-standard %+ conversion specifier.
This silences warnings which appear when using -Wformat on functions
which have the "strftime" attribute and where %+ is used.
Sascha Wildner [Wed, 8 Jan 2014 02:56:27 +0000 (03:56 +0100)]
kernel/acpi_fujitsu: Sync with FreeBSD (adds P8010 support).
Sascha Wildner [Wed, 8 Jan 2014 01:18:06 +0000 (02:18 +0100)]
Document usb4bsd build instructions for 32 bit users, too.
Matthew Dillon [Tue, 7 Jan 2014 23:26:15 +0000 (15:26 -0800)]
build - Add dev/smbus to kernel module build
* Add dev/smbus to the kernel module build, it required some Makefile
adjustments in platform/pc*
Markus Pfeiffer [Tue, 7 Jan 2014 22:59:13 +0000 (22:59 +0000)]
Re-add the cam rescan yet again. I shouldn't delete this every time I merge.
Markus Pfeiffer [Tue, 7 Jan 2014 20:22:24 +0000 (20:22 +0000)]
Sync umass driver with FreeBSD
Matthew Dillon [Tue, 7 Jan 2014 22:55:05 +0000 (14:55 -0800)]
kernel - remove i2c debugging for ig4
* Remove a kprintf("I") in the interrupt path for ig4.
Matthew Dillon [Tue, 7 Jan 2014 22:49:33 +0000 (14:49 -0800)]
build - Document usb4bsd build requirements
* Document them in the obvious place
Matthew Dillon [Tue, 7 Jan 2014 20:41:41 +0000 (12:41 -0800)]
kernel - cyapa driver operational in PS/2 mode
* For now don't try to emulate the event infrastructure or trackpad
infrastructure.
* Requires ig4 for chrome. Include this in /boot/loader.conf for now:
ig4_load="YES"
cyapa_load="YES"
* Implement a character device interface that is compatible with PS/2.
The X configuation would thus be something like this:
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "ps/2"
Option "Device" "/dev/cyapa0-67"
EndSection
* Implement simple left/middle/right button emulation depending on where
on the trackpad you push the button.
* Do not implement simple-touch for buttons, that creates all sorts of
false positives. The trackpad has an actual button (the whole pad) if
you push hard enough.
Markus Pfeiffer [Tue, 7 Jan 2014 19:38:33 +0000 (19:38 +0000)]
Fix some minor compilation issues after sync
The u4b core is now at FreeBSD r241689
Markus Pfeiffer [Tue, 7 Jan 2014 00:01:57 +0000 (00:01 +0000)]
Fix some spillage from the sync
Markus Pfeiffer [Mon, 6 Jan 2014 23:47:58 +0000 (23:47 +0000)]
Use sys/bus/u4b/usb_dragonfly.h
Markus Pfeiffer [Mon, 6 Jan 2014 23:43:02 +0000 (23:43 +0000)]
Sync sys/bus/u4b/* with FreeBSD
Markus Pfeiffer [Mon, 6 Jan 2014 22:51:04 +0000 (22:51 +0000)]
Add usb_dragonfly.h for DragonFly specific configuration
Markus Pfeiffer [Mon, 6 Jan 2014 22:32:08 +0000 (22:32 +0000)]
Add another controller to ohci_pci.c
Markus Pfeiffer [Mon, 6 Jan 2014 22:25:52 +0000 (22:25 +0000)]
Sync with FreeBSD
Markus Pfeiffer [Mon, 6 Jan 2014 22:17:39 +0000 (22:17 +0000)]
Sync xhci with FreeBSD
Markus Pfeiffer [Mon, 6 Jan 2014 22:08:52 +0000 (22:08 +0000)]
Sync uhci with FreeBSD
Markus Pfeiffer [Mon, 6 Jan 2014 22:03:20 +0000 (22:03 +0000)]
Sync ohci code with FreeBSD
Markus Pfeiffer [Mon, 6 Jan 2014 21:56:29 +0000 (21:56 +0000)]
Sync ehci_pci.c with FreeBSD
Markus Pfeiffer [Mon, 6 Jan 2014 21:56:09 +0000 (21:56 +0000)]
Sync ehci.h with FreeBSD
Markus Pfeiffer [Mon, 6 Jan 2014 21:51:37 +0000 (21:51 +0000)]
Sync ehci.c with FreeBSD
Markus Pfeiffer [Tue, 20 Aug 2013 20:34:27 +0000 (21:34 +0100)]
usb4bsd/udav sync driver with FreeBSD
Markus Pfeiffer [Tue, 20 Aug 2013 20:33:16 +0000 (21:33 +0100)]
usb4bsd: fix a panic due to wrong locking
Markus Pfeiffer [Mon, 19 Aug 2013 22:37:39 +0000 (23:37 +0100)]
usb4bsd: re-add function for rescanning the SCSI bus after attach
Markus Pfeiffer [Sun, 11 Aug 2013 09:41:54 +0000 (10:41 +0100)]
usb4bsd: Synchronise with FreeBSD r254159
Markus Pfeiffer [Thu, 22 Aug 2013 19:29:37 +0000 (20:29 +0100)]
usb4bsd resolve conflicts
Sepherosa Ziehau [Sat, 4 Jan 2014 06:57:49 +0000 (14:57 +0800)]
if: Use critical section on ifnet.if_start path
This is mainly used to avoid contention on serializer between netisr
and ithread on the same CPU, when ithread preempts netisr which holds
serializer that ithread wants to aquire.
This kind of contention is found by analysing ktr(9) log of the
serializer operations.
Tested on 8 HT (i7-3770) box, using kq_accept_server/kq_connect_client:
- 4/4 TX/RX rings device (BCM5719, using MSI-X), slight improvement.
- 8/8 TX/RX rings device (Intel 82580, using MSI-X), slight improvement.
- 1/2 TX/RX rings device (Intel 82599, using MSI), slight improvement.
Sepherosa Ziehau [Fri, 3 Jan 2014 12:10:32 +0000 (20:10 +0800)]
serialize: Optimize atomic_intr_cond_{enter,try,exit}()
Use counter (30bits) of __atomic_intr_t as wait counter instead of request
counter:
- This avoids counter updates in atomic_intr_cond_try().
- Move counter decrement from atomic_intr_cond_exit() to
atomic_intr_cond_enter().
- Try obtaining intr_cond first in atomic_intr_cond_enter(). If the try
failed, counter would be incremented then.
This reduces the number of locked bus cycle intructions.
- For "try ok/exit" sequence: 4 -> 2.
- For "try fail": 3 -> 1.
- For uncontended "enter/exit" sequence: 3 -> 2
For contended "enter/exit" sequence, this increases the number of locked
bus cycle intructions from 3 to 4. Compared with the sleep, this should
be relatively cheap.
Tested on 8 HT (i7-3770) box, using kq_accept_server/kq_connect_client:
- 4/4 TX/RX rings device (BCM5719, using MSI-X), slight improvement.
- 8/8 TX/RX rings device (Intel 82580, using MSI-X), slight improvement.
- 1/2 TX/RX rings device (Intel 82599, using MSI), no observable
improvement.
Sascha Wildner [Tue, 7 Jan 2014 05:42:05 +0000 (06:42 +0100)]
rc.d/sysdb: Remove NetBSD specific stuff.
Matthew Dillon [Tue, 7 Jan 2014 04:45:05 +0000 (20:45 -0800)]
kernel - Initial cyapa driver and input skeleton
* Add the cyapa driver (work still in progress). It should be able to
probe and attach and currently has debugging kprintf()s for scanning and
testing. It does not supply a stream for Xorg yet.
* Add a skeleton for subr_input.c (input event handler). This is what will
eventually supply a stream for Xorg and also help support the input
ioctl()s.
Matthew Dillon [Tue, 7 Jan 2014 02:14:48 +0000 (18:14 -0800)]
kernel - Further smb cleanup
* Doh. move smb.c and smb.h into smb/
Matthew Dillon [Tue, 7 Jan 2014 02:10:23 +0000 (18:10 -0800)]
kernel - Adjust access to thel linux input.h file
* Adjust so fewer changes are needed. Wrap with sys/input.h
Matthew Dillon [Tue, 7 Jan 2014 02:00:00 +0000 (18:00 -0800)]
kernel - Create dev/smbus infrastructure
* Create dev/smbus
* Move bus/smbus/{smb,smb.c,smb.h} to dev/smbus
* Adjust conf/files
* Change smbus to add the children as a wildcard instead of as "smb".
This should allow the "cyapa" device to attach later on, rather than just
the "smb" device.
* Minor cleanup in subr_bus.c.
Matthew Dillon [Tue, 7 Jan 2014 00:16:25 +0000 (16:16 -0800)]
kernel - Add sys/contrib/linux/include/uapi/linux/input.h
* Bring input.h in from ubuntu.
Sascha Wildner [Mon, 6 Jan 2014 23:49:53 +0000 (00:49 +0100)]
Add -Wformat-security to WARNS >= 2.
Sascha Wildner [Mon, 6 Jan 2014 23:49:02 +0000 (00:49 +0100)]
libwrap: Fix two -Wformat-security warnings.
Sascha Wildner [Mon, 6 Jan 2014 22:47:13 +0000 (23:47 +0100)]
libevtr: Fix another -Wformat-security warning.
Sascha Wildner [Mon, 6 Jan 2014 21:45:01 +0000 (22:45 +0100)]
kernel: Make ichiic compilable into the kernel and add it to LINT.
Sascha Wildner [Mon, 6 Jan 2014 21:43:20 +0000 (22:43 +0100)]
Unbreak building kernels that have snd_hda or hifn in the config.
Sascha Wildner [Mon, 6 Jan 2014 20:26:51 +0000 (21:26 +0100)]
In userland, fix printf(-like) calls without literal format and no args.
I.e., silence gcc's -Wformat-security warnings (in non-contrib code).
François Tigeot [Mon, 6 Jan 2014 20:10:42 +0000 (21:10 +0100)]
device attachment: no lock necessary
Remove devattach_token, there was no need for it after all.
In-discussion-with: corecode