Home | History | Annotate | Download | only in i2c
History log of /src/sys/dev/i2c/xc5k.c
RevisionDateAuthorComments
 1.9  03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.8  12-Apr-2018  christos branches: 1.8.2;
PR/53177: David Binderman: Better error handling
 1.7  01-Jun-2017  chs branches: 1.7.8;
remove checks for failure after memory allocation calls that cannot fail:

kmem_alloc() with KM_SLEEP
kmem_zalloc() with KM_SLEEP
percpu_alloc()
pserialize_create()
psref_class_create()

all of these paths include an assertion that the allocation has not failed,
so callers should not assert that again.
 1.6  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.5  07-Jan-2015  ozaki-r Pass a correct firmware size (instead of 0) to firmware_free

firmware_free now uses kmem_free(9) instead of free(9),
so we need to pass a correct size to it.
 1.4  02-Oct-2011  jmcneill branches: 1.4.12; 1.4.28; 1.4.30;
now that iic is a module, add "iic" dependency to iic drivers
 1.3  09-Jul-2011  jmcneill add digital capture support
 1.2  28-Dec-2010  jmcneill branches: 1.2.6;
don't make module declaration conditional on _MODULE
 1.1  27-Dec-2010  jmcneill add driver for the Auvitek AU0828 USB video controllers's analog video
capture functions:

auvitek0 at uhub6 port 2: AU0828
video0 at auvitek0: WinTV HVR-950Q
uaudio0 at auvitek0 port 2 configuration 1 interface 1
uaudio0: vendor 0x2040 product 0x7200, rev 2.00/0.05, addr 2
uaudio0: audio rev 1.00
audio1 at uaudio0: full duplex, playback, capture, independent
 1.2.6.2  05-Mar-2011  rmind sync with head
 1.2.6.1  28-Dec-2010  rmind file xc5k.c was added on branch rmind-uvmplock on 2011-03-05 20:53:10 +0000
 1.4.30.2  28-Aug-2017  skrll Sync with HEAD
 1.4.30.1  06-Apr-2015  skrll Sync with HEAD
 1.4.28.1  21-Mar-2015  snj 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.4.12.1  03-Dec-2017  jdolecek update from HEAD
 1.7.8.2  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.7.8.1  16-Apr-2018  pgoyette Sync with HEAD, resolve some conflicts
 1.8.2.1  10-Jun-2019  christos Sync with HEAD

RSS XML Feed