François Tigeot [Mon, 20 Jan 2014 19:42:34 +0000 (20:42 +0100)]
Bump __DragonFly_version after drm/i915 update
xf86-video-intel-2.21.15 now runs properly on DragonFly
Sepherosa Ziehau [Mon, 20 Jan 2014 13:40:39 +0000 (21:40 +0800)]
acpi/cstate: Remove unused macros
Sepherosa Ziehau [Mon, 20 Jan 2014 13:36:13 +0000 (21:36 +0800)]
acpi/cstate: acpi_cpu_softc -> acpi_cst_softc
Sepherosa Ziehau [Mon, 20 Jan 2014 04:56:00 +0000 (12:56 +0800)]
acpi/cstate: Remove useless device methods
Sascha Wildner [Mon, 13 Jan 2014 08:00:26 +0000 (09:00 +0100)]
kernel/acpi: Silence exception warning when a \\_Sx_ object can't be found.
Submitted-by: sephe
Sascha Wildner [Thu, 2 Jan 2014 13:58:24 +0000 (14:58 +0100)]
Remove previous ACPICA.
Sascha Wildner [Thu, 2 Jan 2014 00:45:26 +0000 (01:45 +0100)]
acpi: Fix building the kernel.
Sascha Wildner [Fri, 3 Jan 2014 00:41:09 +0000 (01:41 +0100)]
acpi: Fix building userland.
As of this commit we're losing acpidb(8) which gets replaced by
acpiexec(8).
Additionally, we're getting:
acpibin(8)
acpiexec(8)
acpihelp(8)
acpinames(8)
acpisrc(8)
acpixtract(8)
Manual pages for the new utilities have yet to be written. Also
acpidump.8 and iasl.8 need to be updated, I guess.
Sascha Wildner [Wed, 1 Jan 2014 13:50:08 +0000 (14:50 +0100)]
sys/acpi: Bring in Intel's acpica-unix2-
20131218 verbatim.
On acpica.org, -unix is the version with an Intel license and
-unix2 is the BSD/GPL dual licensed version. I didn't want to
call the directory acpica-unix2 instead of our acpica-unix so
I settled on simply acpica.
Further updates would be done in-place in that directory.
François Tigeot [Sun, 19 Jan 2014 20:08:23 +0000 (21:08 +0100)]
drm: Reduce differences with Linux 3.8
François Tigeot [Sun, 19 Jan 2014 19:38:42 +0000 (20:38 +0100)]
asm/uaccess.h: Add get_user() and put_user()
Obtained-from: linux/uaccess.h from FreeBSD's OFED stack
François Tigeot [Sun, 19 Jan 2014 19:36:00 +0000 (20:36 +0100)]
drm: Import asm/uaccess.h from FreeBSD's OFED stack
Markus Pfeiffer [Sat, 18 Jan 2014 22:14:46 +0000 (22:14 +0000)]
manpages: Update documentation of lock(9) to include lockowned
François Tigeot [Sun, 19 Jan 2014 13:49:47 +0000 (14:49 +0100)]
drm: Remove DRM_MSLEEP()
François Tigeot [Sun, 19 Jan 2014 14:41:37 +0000 (15:41 +0100)]
drm/radeon: Replace DRM_MSLEEP() by msleep()
François Tigeot [Sun, 19 Jan 2014 13:20:44 +0000 (14:20 +0100)]
drm: Add linux/delay.h, implement msleep()
Sepherosa Ziehau [Sun, 19 Jan 2014 14:24:11 +0000 (22:24 +0800)]
acpi/cstate: Break long lines; minor style changes
Sepherosa Ziehau [Sun, 19 Jan 2014 14:06:51 +0000 (22:06 +0800)]
acpi/cstate: Dispatch Cx re-probing to the target CPU
And add flag to indicate that the Cx probing is in progress, so
if idle is scheduled before the probing is done, we could safely
fallback to C1.
Sepherosa Ziehau [Sun, 19 Jan 2014 08:54:34 +0000 (16:54 +0800)]
acpi/cstate: Set cx_lowest on the target CPU
Sepherosa Ziehau [Sun, 19 Jan 2014 07:45:00 +0000 (15:45 +0800)]
acpi/cstate: Fix global Cx count setup
Sepherosa Ziehau [Sun, 19 Jan 2014 06:57:13 +0000 (14:57 +0800)]
acpi/cstate: Use u_long as stats type
Sepherosa Ziehau [Sun, 19 Jan 2014 06:41:18 +0000 (14:41 +0800)]
acpi/cstate: Fix non-C3 setting
It should take lowest Cx setting into consideration.
Sepherosa Ziehau [Sat, 18 Jan 2014 13:25:37 +0000 (21:25 +0800)]
acpi/cstate: Set non-C3 state during generic Cx probing
Remove useless non-C3 state index setup in cx_list, which should
only reformat sysctl string.
Sascha Wildner [Sat, 18 Jan 2014 20:43:52 +0000 (21:43 +0100)]
Only run the 670.pkgsrcaudit periodic script if pkgsrc is found.
The script will eventually go away once we move away from pkgsrc
in PATHs, manpages and everywhere but I don't want to do that right
now, hence this check for now. This silences the error this script
was giving on dports systems.
Reported-by: pavalos
François Tigeot [Sat, 18 Jan 2014 19:46:31 +0000 (20:46 +0100)]
linux/kernel.h: Implement swap()
François Tigeot [Sat, 18 Jan 2014 19:39:13 +0000 (20:39 +0100)]
linux/kernel.h: printf => kprintf
François Tigeot [Sat, 18 Jan 2014 13:04:23 +0000 (14:04 +0100)]
drm: Import linux/err.h from FreeBSD's OFED stack
Sepherosa Ziehau [Sat, 18 Jan 2014 13:19:32 +0000 (21:19 +0800)]
acpi/cstate: Minor style cleanup
Sepherosa Ziehau [Sat, 18 Jan 2014 12:05:07 +0000 (20:05 +0800)]
acpi/cstate: Use serializer to protect _CST notfication and sysctls
Sepherosa Ziehau [Fri, 17 Jan 2014 13:44:51 +0000 (21:44 +0800)]
atomic/i386: Update intr_cond comment
Sepherosa Ziehau [Fri, 17 Jan 2014 13:31:29 +0000 (21:31 +0800)]
serializer.9: Mention LWKT_SERIALIZE_INITIALIZER
François Tigeot [Sat, 18 Jan 2014 08:35:51 +0000 (09:35 +0100)]
drm: Sync a few headers with Linux 3.8
François Tigeot [Sat, 18 Jan 2014 07:52:17 +0000 (08:52 +0100)]
drm: Rename device to dev in struct drm_device
Reducing differences with Linux
Sascha Wildner [Sat, 18 Jan 2014 06:48:44 +0000 (07:48 +0100)]
<sys/systm.h>: Mark various function parameters as __nonnull().
I guess we have KASSERTs too for some of these (tsleep(), I'm sure), but
it is always nice to catch issues at build time already.
Sascha Wildner [Sat, 18 Jan 2014 06:48:06 +0000 (07:48 +0100)]
kernel/ppc: Fix a tsleep with NULL ident.
Sascha Wildner [Fri, 17 Jan 2014 23:05:52 +0000 (00:05 +0100)]
kernel: Make eventhandler_{register,find_list}()'s name argument const.
Sascha Wildner [Fri, 17 Jan 2014 22:21:59 +0000 (23:21 +0100)]
altq.9: Fix some prototypes (altq_pkgattr -> altq_pktattr).
Sascha Wildner [Fri, 17 Jan 2014 07:41:23 +0000 (08:41 +0100)]
libc/sysvipc: Rename sysvipc_semctl() to sysvipc___semctl().
This function has the non-varargs interface of __semctl() and not
the vargargs interface of semctl().
While here, make it take a union semun pointer, like __semctl().
Sascha Wildner [Fri, 17 Jan 2014 07:19:07 +0000 (08:19 +0100)]
kernel/dm_target_striped: Plug a memory leak.
François Tigeot [Thu, 16 Jan 2014 20:03:07 +0000 (21:03 +0100)]
drm: Fix a merge issue in drm_fops.c
Pointed-out-by: swildner
Sepherosa Ziehau [Thu, 16 Jan 2014 12:19:13 +0000 (20:19 +0800)]
acpi/cstate: Remove unused fields in softc
apic_id is not useful in cstate driver; change it to cpuid.
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.