Home | History | Annotate | Download | only in i2c
History log of /src/sys/dev/i2c/sdtemp.c
RevisionDateAuthorComments
 1.41  01-Dec-2021  msaitoh Use aprint_debug instead of aprint_error for expected failure.
 1.40  13-Jun-2021  mlelstv Clear sc_sme pointer to avoid double free.
 1.39  30-Jun-2020  msaitoh branches: 1.39.6;
If an error occurred in sme_refresh function, pass ENVSYS_SINVALID.
OK'd by pgoyette.
 1.38  29-Jun-2020  msaitoh Check the return value of iic_acquire_bus(). This function may fail.

One of the case is driver's detaching phase on shutdown. mutex_tryenter()
might fail and return with EBUSY. To avoid calling iic_release_bus() without
taking lock, check the return value of iic_acquire_bus().
 1.37  29-Jun-2020  msaitoh KNF. No functional change.
 1.36  01-Oct-2019  chs in many device attach paths, allocate memory with KM_SLEEP instead of KM_NOSLEEP
and remove code to handle failures that can no longer happen.
 1.35  28-Feb-2019  khorben branches: 1.35.4;
Typo (s/vaule/value/)
 1.34  16-Jun-2018  thorpej branches: 1.34.2;
More cleanup to i2c autoconfiguration:

- Get all of the drivers onto the new match quality constants.
- Introduce a new helper function, iic_use_direct_match(), that has
all of the logic for direct-config matching. If it returns true,
the driver returns the match result (which may be 0). If it returns
false, the driver does indirect-config matching.
- iic_compat_match() now returns a weighted match quality; matches to
lower-indexed "compatible" device property are more-specific matches,
and return a better match quality accordingly.
 1.33  22-Feb-2018  msaitoh branches: 1.33.2;
- Add Maxim MAX6604.
- Microchip EMC1501.
- ADT7408's device ID is not 0x80 but 0x08.
 1.32  03-Aug-2016  msaitoh branches: 1.32.8;
IDT's TSE2002GB2 has the same ID as TS3000GB2, so remove TSE2002GB2.
 1.31  28-Jul-2016  msaitoh Add JEDEC TSE2004av support. OK'ed by pgoyette. If a device conforms
TES2004av, it can be used without adding new entry into the matching
table.
 1.30  27-Jul-2016  msaitoh Print device ID with 8bits again (revert part of rev. 1.27) because
the revision field also printed next.
 1.29  26-Jul-2016  msaitoh Move functions to make module related code at the bottom of this file.
 1.28  26-Jul-2016  msaitoh Reviewed and OK'd by pgoyette:
- Add support for Atmel AT30TS00, AT30TSE004, Giantec GT30TS00, GT34TS02,
Microchip MCP9804, MCP98244, IDT TS3000GB[02], TS3001GB2, TSE2004GB2,
and On Semiconductor CAT34TS04. Taken from OpenBSD.
- Add IDT TSE2002GB2.
- Check the temperature resolution field in the capability register instead
of the hard coded value in the match table. With this change, some devices'
temperature resolution would be fixed.
- The resolution register is a vendor specific register.
- All of IDT devices have the resolution register.
- The address of the resolution register of Microchip MCP98244 is different
from other Microchip devices.
- Show accuracy, range, resolution, high voltage standoff and shutdown with
aprint_normal().
- Show timeout with aprint_debug().
 1.27  26-Jul-2016  msaitoh - Print device ID in 16bits instead of 8bits in aprint_debug().
- s/STTS2002/STTS2004/ for STTS2004.
 1.26  20-May-2015  msaitoh branches: 1.26.2;
Add Catalyst CAT34TS02C support.
 1.25  23-Apr-2015  pgoyette Update module dependencies for all the existing modules that depend on sysmon components.
 1.24  07-Mar-2015  jmcneill i2c devices don't actually have a dependency on "iic" (the bus driver)
but on "i2cexec". Create an i2cexec module (i2c_exec.c) to mirror the
dependencies in files.i2c and switch device drivers to depend on "i2cexec"
module instead.

A kernel with a USB stack and no I2C controller / bus attachment would spit
out a bunch of "WARNING: module error: can't find builtin dependency `iic'"
messages at boot. This change solves that problem.
 1.23  09-Jan-2014  mlelstv branches: 1.23.4; 1.23.6;
add three temperature sensors from ST.
 1.22  22-Jul-2013  soren Use the standard i2c address to DIMM slot mapping to show the slot number.
 1.21  02-Feb-2012  pgoyette branches: 1.21.6; 1.21.10; 1.21.18;
Clean up display of initial hardware provided limits. No functional change.
 1.20  02-Oct-2011  jmcneill branches: 1.20.2; 1.20.6;
now that iic is a module, add "iic" dependency to iic drivers
 1.19  31-Jul-2011  jmcneill add detach support, modularize, build with WARNS=4
 1.18  29-Jul-2010  pgoyette When interpreting the alarm bits from the chip, don't report state for
any thresholds which have not been set. Fixes problem reported by
njoly@ in private E-mail, where chip was initialized with only a Critical
threshold, but was reporting a warning.
 1.17  29-Jul-2010  njoly Cleanup hardware monitor limits retrieval. Do use the softc variables
to be filled by sdtemp_get_limits() directly.

ok pgoyette.
 1.16  28-Jul-2010  pgoyette Fix a typo (missing digit) in chip name table.
 1.15  11-Jul-2010  pgoyette Add another pair of chips to the pile: IDT TS3000B3 & TSE2002B3
 1.14  08-Jul-2010  pgoyette Add additional chip IDs, and be more specific about which revs we match.

From Guenter Roeck on a Linux mailing list.
 1.13  10-Apr-2010  pgoyette Save initial, boot-time limit values, and restore them upon request
from sysmon_envsys(9).
 1.12  14-Mar-2010  pgoyette branches: 1.12.2;
Remove setting of edata->monitor since that member no longer exists.
 1.11  24-Feb-2010  dyoung A pointer typedef entails trading too much flexibility to declare const
and non-const types, and the kernel uses both const and non-const
PMF qualifiers and device suspensors, so change the pmf_qual_t and
device_suspensor_t typedefs from "pointers to const" to non-pointer,
non-const types.
 1.10  14-Feb-2010  pgoyette Adapt to changes in sysmon's limit structure
 1.9  08-Jan-2010  dyoung branches: 1.9.2;
Expand PMF_FN_* macros.
 1.8  01-Jan-2010  pgoyette Explicitly inform envsys that the driver is capable of doing its own
limit checking at initialization time. Later on, if user specifics any
unsupported limits, the driver will relinquish this task.
 1.7  10-Jul-2009  pgoyette Correct usage of PROP_DRIVER_LIMITS flag
 1.6  14-Jun-2009  pgoyette Update {get,set}_limits() routines.
 1.5  13-Jun-2009  pgoyette No need to set flag=I2C_F_POLL when releasing the bus. Pointed out
in private Email from njoly@
 1.4  13-Jun-2009  pgoyette Update sdtemp driver to use sysmon_envsys(9) for setting temp sensor
limits. Remove sysctl(9) interface to the limit registers since it's
no longer needed.
 1.3  01-Jun-2009  pgoyette Since we no longer have individual events for each sensor value limit,
we don't need individual flag bits. Clean up extra bit definitions.
Bump kernel version - welcome to 5.99.13
 1.2  19-May-2009  pgoyette When displaying boot-time trip-register settings, shift to exclude
fractional bits. Otherwise, a setting of 52C reports 832 during
boot, and that's way too hot for any memory!
 1.1  09-May-2009  pgoyette branches: 1.1.2; 1.1.4;
Initial implementation of sdtemp(4) driver for on-DIMM temp sensor.

(These optional sensors are specified by JEDEC Standard No. 21-C
Section 4-7 and implemented by multiple vendors. Tested on my
amd64 machine with Kingston KVR1066D3E7S/2G memory which includes
a STMicro STTS424E02 sensor.)
 1.1.4.6  11-Aug-2010  yamt sync with head.
 1.1.4.5  11-Mar-2010  yamt sync with head
 1.1.4.4  18-Jul-2009  yamt sync with head.
 1.1.4.3  20-Jun-2009  yamt sync with head
 1.1.4.2  16-May-2009  yamt sync with head
 1.1.4.1  09-May-2009  yamt file sdtemp.c was added on branch yamt-nfs-mp on 2009-05-16 10:41:21 +0000
 1.1.2.3  23-Jul-2009  jym Sync with HEAD.
 1.1.2.2  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.1.2.1  09-May-2009  jym file sdtemp.c was added on branch jym-xensuspend on 2009-05-13 17:19:21 +0000
 1.9.2.2  17-Aug-2010  uebayasi Sync with HEAD.
 1.9.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.12.2.2  05-Mar-2011  rmind sync with head
 1.12.2.1  30-May-2010  rmind sync with head
 1.20.6.1  18-Feb-2012  mrg merge to -current.
 1.20.2.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.20.2.1  17-Apr-2012  yamt sync with head
 1.21.18.1  23-Jul-2013  riastradh sync with HEAD
 1.21.10.2  18-May-2014  rmind sync with head
 1.21.10.1  28-Aug-2013  rmind sync with head
 1.21.6.2  03-Dec-2017  jdolecek update from HEAD
 1.21.6.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.23.6.3  05-Oct-2016  skrll Sync with HEAD
 1.23.6.2  06-Jun-2015  skrll Sync with HEAD
 1.23.6.1  06-Apr-2015  skrll Sync with HEAD
 1.23.4.2  08-Dec-2016  snj Pull up following revision(s) (requested by msaitoh in ticket #1286):
sys/dev/i2c/sdtemp.c: revisions 1.26-1.32 via patch
sys/dev/i2c/sdtemp_reg.h: revisions 1.8-1.12
share/man/man4/sdtemp.4: revisions1.5-1.6
Changes for sdtemp(4):
- Add support for Atmel AT30TS00, AT30TSE004, Giantec GT30TS00,
GT34TS02, Microchip MCP9804, MCP98244, IDT TS3000GB[02], TS3001GB2,
TSE2004GB2, On Semiconductor CAT34TS02C and CAT34TS04.
- Add JEDEC TSE2004av support. If a device conforms TES2004av, it can
be used without adding new entry into the matching table.
- Check the temperature resolution field in the capability register
instead of the hard coded value in the match table. With this change,
some devices' temperature resolution would be fixed.
- The resolution register is a vendor specific register.
- All of IDT devices have the resolution register.
- The address of the resolution register of Microchip MCP98244 is
different from other Microchip devices.
- Show accuracy, range, resolution, high voltage standoff and shutdown.
- Show timeout with AB_DEBUG.
- Fix dmesg of STTS2004.
 1.23.4.1  21-Mar-2015  snj branches: 1.23.4.1.4;
Pull up following revision(s) (requested by jmcneill in ticket #634):
distrib/sets/lists/modules/md.amd64: revision 1.51
distrib/sets/lists/modules/md.evbppc.powerpc: revision 1.5
distrib/sets/lists/modules/md.i386: revision 1.55
distrib/sets/lists/modules/mi: revision 1.71
sys/dev/i2c/au8522.c: revision 1.7
sys/dev/i2c/cx24227.c: revision 1.7
sys/dev/i2c/dbcool.c: revision 1.42
sys/dev/i2c/hytp14.c: revision 1.3
sys/dev/i2c/i2c_exec.c: revision 1.10
sys/dev/i2c/lg3303.c: revision 1.9
sys/dev/i2c/mt2131.c: revision 1.5
sys/dev/i2c/nxt2k.c: revision 1.4
sys/dev/i2c/sdtemp.c: revision 1.24
sys/dev/i2c/spdmem_i2c.c: revision 1.10
sys/dev/i2c/tvpll.c: revision 1.6
sys/dev/i2c/xc3028.c: revision 1.7
sys/dev/i2c/xc5k.c: revision 1.6
sys/dev/i2c/zl10353.c: revision 1.4
sys/modules/Makefile: revision 1.143
sys/modules/i2cexec/Makefile: revision 1.1
i2c devices don't actually have a dependency on "iic" (the bus driver)
but on "i2cexec". Create an i2cexec module (i2c_exec.c) to mirror the
dependencies in files.i2c and switch device drivers to depend on "i2cexec"
module instead.
A kernel with a USB stack and no I2C controller / bus attachment would spit
out a bunch of "WARNING: module error: can't find builtin dependency `iic'"
messages at boot. This change solves that problem.
 1.23.4.1.4.1  18-Jan-2017  skrll Sync with netbsd-5
 1.26.2.1  06-Aug-2016  pgoyette Sync with HEAD
 1.32.8.3  06-Dec-2021  martin Pull up following revision(s) (requested by msaitoh in ticket #1716):

sys/dev/i2c/sdtemp.c: revision 1.41

Use aprint_debug instead of aprint_error for expected failure.
 1.32.8.2  20-Jul-2020  martin Pull up the following revisions, requested by msaitoh in ticket #1580:

sys/dev/i2c/sdtemp.c 1.35, 1.37-1.39

- Check the return value of iic_acquire_bus() because this function
may fail.
- Fix typo in comment.
- KNF.
 1.32.8.1  08-Mar-2018  martin Pull up following revision(s) (requested by msaitoh in ticket #615):
share/man/man4/sdtemp.4: revision 1.7-1.8
sys/dev/i2c/sdtemp_reg.h: revision 1.13
sys/dev/i2c/sdtemp.c: revision 1.33

- Add another device ID of Maxim MAX6604.

- Add Microchip EMC1501.

- ADT7408's device ID is not 0x80 but 0x08.

Add Microchip EMC1501.

Remove unnecessary macros.
 1.33.2.1  25-Jun-2018  pgoyette Sync with HEAD
 1.34.2.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.34.2.1  10-Jun-2019  christos Sync with HEAD
 1.35.4.2  06-Dec-2021  martin Pull up following revision(s) (requested by msaitoh in ticket #1387):

sys/dev/i2c/sdtemp.c: revision 1.41

Use aprint_debug instead of aprint_error for expected failure.
 1.35.4.1  10-Jul-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #992):

sys/dev/i2c/sdtemp.c: revision 1.37
sys/dev/i2c/sdtemp.c: revision 1.38
sys/dev/i2c/sdtemp.c: revision 1.39

KNF. No functional change.

Check the return value of iic_acquire_bus(). This function may fail.

One of the case is driver's detaching phase on shutdown. mutex_tryenter()
might fail and return with EBUSY. To avoid calling iic_release_bus() without
taking lock, check the return value of iic_acquire_bus().

If an error occurred in sme_refresh function, pass ENVSYS_SINVALID.
OK'd by pgoyette.
 1.39.6.1  17-Jun-2021  thorpej Sync w/ HEAD.

RSS XML Feed