except the ppbus stuff (which doesn't compile) and ulpt(4) which is
unrelated and can be dealt with separately.
As usual, it comes with related cosmetic changes.
- Change the attimer <-> pcppi communication using device_t so that
pcppi(4) doesn't have to know about the contents of struct attimer_softc.
XXX pcppi's childdet function is completely wrong. This has to be
XXX revisited later.
- Add a lot of missing selinit() and seldestroy() calls.
- Merge selwakeup() and selnotify() calls into a single selnotify().
- Add an additional 'events' argument to selnotify() call. It will
indicate which event (POLL_IN, POLL_OUT, etc) happen. If unknown,
zero may be used.
Note: please pass appropriate value of 'events' where possible.
Proposed on: <tech-kern>
register com_cleanup() as the shutdown hook.
Add a generic suspend routine. Suspend and resume com@isa.
Protect against dereferencing a NULL softc in comioctl().
Destroy both a mutex and a callout in com_detach().
Cosmetic: use aprint_*_dev(). Use PMF_FN_ARGS, PMF_FN_PROTO.
its children.
Fix an off-by-one bug in the sensor initialization which stopped
it from completing.
Extract sensor initialization into a new subroutine. If there is
an error while initializing sensors, do not let sc_sme dangle.
http://mail-index.netbsd.org/tech-kern/2007/11/09/0001.html
sysmon_envsys_create() and sysmon_envsys_destroy() were added to
create/destroy sysmon_envsys objects (and its TAILQ/LIST for sensors/events).
sysmon_envsys_sensor_attach() and sysmon_envsys_sensor_detach() were
added to attach/detach sensors to a specified sysmon_envsys device.
The events framework is now per device and configurable via the
ENVSYS_SETDICTIONARY ioctl or /etc/envsys.conf and envstat(8).
Update all users and documentation to reflect these changes.
- The driver now uses the Super I/O address port as port argument in
the configuration file. The Environmental Controller base address is
fetched by the Super I/O EC LDN configuration registers.
- Invalidate voltage sensors if data returned is 0xff.
- Use the Super I/O Global Configuration Registers Chip ID[12] and Device
Revision to store/print the correct information.
- Use only the Fan Extended Tachometer registers on IT871[68]F for now;
this gives us correct data for IT8705/IT8712F again.
Inspired by the smsc(4) driver. The UPDATING file has been updated to
reflect the rename.
the code. This provides 14 voltage sensors in addition to the previous
3 temperature sensors supported in the TMS logical device.
Adapted from OpenBSD, tested by dyoung.
Exports some sensors through the envsys(4) framework available
in some Thinkpad laptops.
Ported by Pierre Pronchery from OpenBSD, via PR port-i386/36852.
Tweaks, LKM and misc improvements by me. Added into i386/GENERIC
commented out.
error = (cmd == SIOCADDMULTI) ?
ether_addmulti(ifr, &sc->sc_ec) :
ether_delmulti(ifr, &sc->sc_ec);
if (error == ENETRESET) {
to this,
if ((error = ether_ioctl(ifp, cmd, data)) == ENETRESET) {
which does the same thing.
(A bazillion is a very large number. This seems to make the i386
ALL kernel smaller by 3kB to 4kB.)
Use ifreq_getaddr() twice in es(4).
Whitespace nits.
identify sockaddr_dl abuse that remains in the kernel, especially
the potential for overwriting memory past the end of a sockaddr_dl
with, e.g., memcpy(LLADDR(), ...).
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
- Add support for the IT8716F chip, patch from FUKUMOTO Atsushi via
PR port-i386/35796.
- Enable the flag ENVSYS_FCHANGERFACT in voltage sensors, to be able to
increment the value returned by the driver via envstat(8).
- Update VBAT sensor reading every time we read it, otherwise it will
always report the power on value.
- Enable all sensors that were missing before: 3 Temp + 3 Fan + 9 Voltage.
- Add new registers to set high/low limits in temperature/voltage sensors
(still unused).
- Disable some sensors if they are reporting bogus data or simply they are
not connected.
Tested by wiz.
(Part 2: drivers)
* Support for detachable sensors.
* Cleaned up the API for simplicity and efficiency.
* Ability to send capacity/critical/warning events to powerd(8).
* Adapted all the code to the new locking order.
* Compatibility with the old envsys API: the ENVSYS_GTREINFO
and ENVSYS_GTREDATA ioctl(2)s are supported.
* Added support for a 'dictionary based communication channel' between
sysmon_power(9) and powerd(8), that means there is no 32 bytes event
size restriction anymore.
* Binary compatibility with old envstat(8) and powerd(8) via COMPAT_40.
* All drivers with the n^2 gtredata bug were fixed, PR kern/36226.
Tested by:
blymn: smsc(4).
bouyer: ipmi(4), mfi(4).
kefren: ug(4).
njoly: viaenv(4), adt7463.c.
riz: owtemp(4).
xtraeme: acpiacad(4), acpibat(4), acpitz(4), aiboost(4), it(4), lm(4).
the kernel (eg from withthe linux compat code).
Add CDIOCREADSUBCHANNEL_BUF and CDIOREADTOCENTRIES_BUF which are like the
existing ioctls withoutthe _BUF, except that the data area immediately
follows the control structure (and is fixed length).
Modify scsipi/cd.c so that it only ever has one 'struct cd_formatted_toc'
allocated on the stack (maybe this info ought to be in the softc)
structure since even one 800 byte on-stack buffer isn't overly friendly.
cdplay(1) still seems able to read the track-list of an ATAPI cd.
* dev/ic/ug.c (main code shared by the attachments)
* dev/isa/ug_isa.c (isa attachment)
* dev/acpi/ug_acpi.c (acpi attachment)
That means that ug(4) can now be attached via ACPI.
Thanks to Mihai Chelaru for the good work.
debugging and its main use is in device drivers. Its used there to signal
that the flagged buffer has a special meaning or should be handled
differently.
OK'd by Bill Sudenmund on tech-kern.
Patch by Slava Semushin <slava.semushin@gmail.com>
Again, this was tested by comparing obj files from a pristine and a patched
source tree against an i386/ALL kernel, and also for src/sbin/fsck_ffs,
src/sbin/fsdb and src/usr.sbin/makefs. Only changes in assert() line numbers
were detected in 'objdump -d' output.
the BIOS is reporting (and speedfan for windows).
* Simplify the code.
* Remove unused functions and unnecessary variables.
* Provide more rfact values for the voltage sensors (from OpenBSD).
* Remove the limit of 1.5 seconds for refreshing the sensors, it's
unnecessary... we can read it every time we want.
Now I'm happy with the driver (code and envstat output):
[juan@nocturno][~]> envstat -r
CPU Temp: 38.000 degC
System Temp: 36.000 degC
VCORE_A: 1.664 V
+3.3V: 3.312 V
+5V: 4.919 V
+12V: 12.480 V
VBAT: 3.248 V
CPU Fan: 3096 RPM
System Fan: 0 RPM
[juan@nocturno][~]>
It's actually fine to have them. Somehow I wish there was a way to express
that there can be only one device of that kind attaching on a given pcppi.
All of this is generic for all indirectly configured bus (i.e., specified
by kernel configuration).
Reported by uwe@.
name. Makes it more obvious what the problem is, and easier to spot
in the dmesg output after quiet boot warns about "errors" while
detecting hardware.