Author: grembo (ports committer)
Date: Wed Aug 19 09:49:29 2015
New Revision: 286918
URL: https://svnweb.freebsd.org/changeset/base/286918

Log:
  Allow building a kernel with baked in ig4, isl and cyapa drivers.
  
  Also addresses jhb's remarks on D2811 and D3068.
  
  PR:           202059
  Differential Revision:        https://reviews.freebsd.org/D3351
  Reviewed by:  jhb
  Approved by:  jhb

Modified:
  head/sys/conf/files
  head/sys/dev/cyapa/cyapa.c
  head/sys/dev/ichiic/ig4_iic.c
  head/sys/dev/isl/isl.c

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files Wed Aug 19 06:08:11 2015        (r286917)
+++ head/sys/conf/files Wed Aug 19 09:49:29 2015        (r286918)
@@ -1236,6 +1236,7 @@ t5fw.fw                   optional cxgbe                  
                \
 dev/cy/cy.c                    optional cy
 dev/cy/cy_isa.c                        optional cy isa
 dev/cy/cy_pci.c                        optional cy pci
+dev/cyapa/cyapa.c              optional cyapa smbus
 dev/dc/if_dc.c                 optional dc pci
 dev/dc/dcphy.c                 optional dc pci
 dev/dc/pnphy.c                 optional dc pci
@@ -1461,8 +1462,8 @@ dev/hptiop/hptiop.c               optional hptiop scb
 dev/hwpmc/hwpmc_logging.c      optional hwpmc
 dev/hwpmc/hwpmc_mod.c          optional hwpmc
 dev/hwpmc/hwpmc_soft.c         optional hwpmc
-dev/ichiic/ig4_iic.c           optional ichiic
-dev/ichiic/ig4_pci.c           optional ichiic pci
+dev/ichiic/ig4_iic.c           optional ig4 smbus
+dev/ichiic/ig4_pci.c           optional ig4 pci smbus
 dev/ichsmb/ichsmb.c            optional ichsmb
 dev/ichsmb/ichsmb_pci.c                optional ichsmb pci
 dev/ida/ida.c                  optional ida
@@ -1557,6 +1558,7 @@ dev/iscsi_initiator/isc_soc.c     optional i
 dev/iscsi_initiator/isc_sm.c   optional iscsi_initiator scbus
 dev/iscsi_initiator/isc_subr.c optional iscsi_initiator scbus
 dev/ismt/ismt.c                        optional ismt
+dev/isl/isl.c                  optional isl smbus
 dev/isp/isp.c                  optional isp
 dev/isp/isp_freebsd.c          optional isp
 dev/isp/isp_library.c          optional isp

Modified: head/sys/dev/cyapa/cyapa.c
==============================================================================
--- head/sys/dev/cyapa/cyapa.c  Wed Aug 19 06:08:11 2015        (r286917)
+++ head/sys/dev/cyapa/cyapa.c  Wed Aug 19 09:49:29 2015        (r286918)
@@ -149,7 +149,6 @@ struct cyapa_fifo {
 struct cyapa_softc {
        device_t dev;
        int     count;                  /* >0 if device opened */
-       int     unit;
        int     addr;
        struct cdev *devnode;
        struct selinfo selinfo;
@@ -450,7 +449,6 @@ static int
 cyapa_probe(device_t dev)
 {
        struct cyapa_cap cap;
-       int unit;
        int addr;
        int error;
 
@@ -463,8 +461,6 @@ cyapa_probe(device_t dev)
        if (addr != 0x67)
                return (ENXIO);
 
-       unit = device_get_unit(dev);
-
        error = init_device(dev, &cap, addr, 1);
        if (error != 0)
                return (ENXIO);
@@ -486,7 +482,7 @@ cyapa_attach(device_t dev)
        sc->reporting_mode = 1;
 
        unit = device_get_unit(dev);
-       addr = *((unsigned char*) device_get_ivars(dev));
+       addr = smbus_get_addr(dev);
 
        if (init_device(dev, &cap, addr, 0))
                return (ENXIO);
@@ -494,7 +490,6 @@ cyapa_attach(device_t dev)
        mtx_init(&sc->mutex, "cyapa", NULL, MTX_DEF);
 
        sc->dev = dev;
-       sc->unit = unit;
        sc->addr = addr;
 
        knlist_init_mtx(&sc->selinfo.si_note, &sc->mutex);

Modified: head/sys/dev/ichiic/ig4_iic.c
==============================================================================
--- head/sys/dev/ichiic/ig4_iic.c       Wed Aug 19 06:08:11 2015        
(r286917)
+++ head/sys/dev/ichiic/ig4_iic.c       Wed Aug 19 09:49:29 2015        
(r286918)
@@ -74,8 +74,8 @@ static void ig4iic_intr(void *cookie);
 static void ig4iic_dump(ig4iic_softc_t *sc);
 
 static int ig4_dump;
-SYSCTL_INT(_debug, OID_AUTO, ig4_dump, CTLTYPE_INT | CTLFLAG_RW,
-          &ig4_dump, 0, "");
+SYSCTL_INT(_debug, OID_AUTO, ig4_dump, CTLFLAG_RW,
+          &ig4_dump, 0, "Dump controller registers");
 
 /*
  * Low-level inline support functions

Modified: head/sys/dev/isl/isl.c
==============================================================================
--- head/sys/dev/isl/isl.c      Wed Aug 19 06:08:11 2015        (r286917)
+++ head/sys/dev/isl/isl.c      Wed Aug 19 09:49:29 2015        (r286918)
@@ -71,12 +71,9 @@ __FBSDID("$FreeBSD$");
 
 struct isl_softc {
        device_t        dev;
-       int             unit;
        int             addr;
 
        struct sx       isl_sx;
-       struct sysctl_ctx_list *sysctl_ctx;
-       struct sysctl_oid *sysctl_tree;
 };
 
 /* Returns < 0 on problem. */
@@ -85,8 +82,7 @@ static int isl_read_sensor(device_t dev,
 /*
  * Initialize the device
  */
-static
-int
+static int
 init_device(device_t dev, int addr, int probe)
 {
        static char bl_init[] = { 0x00 };
@@ -145,7 +141,6 @@ static driver_t isl_driver = {
 static int
 isl_probe(device_t dev)
 {
-       int unit;
        int addr;
        int error;
 
@@ -158,8 +153,6 @@ isl_probe(device_t dev)
        if (addr != 0x44)
                return (ENXIO);
 
-       unit = device_get_unit(dev);
-
        error = init_device(dev, addr, 1);
        if (error)
                return (ENXIO);
@@ -173,7 +166,8 @@ static int
 isl_attach(device_t dev)
 {
        struct isl_softc *sc;
-       int unit;
+       struct sysctl_ctx_list *sysctl_ctx;
+       struct sysctl_oid *sysctl_tree;
        int addr;
        int use_als;
        int use_ir;
@@ -184,8 +178,7 @@ isl_attach(device_t dev)
        if (!sc)
                return (ENOMEM);
 
-       unit = device_get_unit(dev);
-       addr = *((unsigned char*) device_get_ivars(dev));
+       addr = smbus_get_addr(dev);
 
        if (init_device(dev, addr, 0))
                return (ENXIO);
@@ -193,48 +186,47 @@ isl_attach(device_t dev)
        sx_init(&sc->isl_sx, "ISL read lock");
 
        sc->dev = dev;
-       sc->unit = unit;
        sc->addr = addr;
 
-       sc->sysctl_ctx = device_get_sysctl_ctx(dev);
-       sc->sysctl_tree = device_get_sysctl_tree(dev);
+       sysctl_ctx = device_get_sysctl_ctx(dev);
+       sysctl_tree = device_get_sysctl_tree(dev);
 
        use_als = isl_read_sensor(dev, addr, CMD1_MASK_ALS_ONCE) >= 0;
        use_ir = isl_read_sensor(dev, addr, CMD1_MASK_IR_ONCE) >= 0;
        use_prox = isl_read_sensor(dev, addr, CMD1_MASK_PROX_ONCE) >= 0;
 
        if (use_als) {
-               SYSCTL_ADD_PROC(sc->sysctl_ctx,
-                       SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO,
+               SYSCTL_ADD_PROC(sysctl_ctx,
+                       SYSCTL_CHILDREN(sysctl_tree), OID_AUTO,
                            "als", CTLTYPE_INT | CTLFLAG_RD,
                            sc, ISL_METHOD_ALS, isl_sysctl, "I",
                            "Current ALS sensor read-out");
        }
 
        if (use_ir) {
-               SYSCTL_ADD_PROC(sc->sysctl_ctx,
-                       SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO,
+               SYSCTL_ADD_PROC(sysctl_ctx,
+                       SYSCTL_CHILDREN(sysctl_tree), OID_AUTO,
                            "ir", CTLTYPE_INT | CTLFLAG_RD,
                            sc, ISL_METHOD_IR, isl_sysctl, "I",
                            "Current IR sensor read-out");
        }
 
        if (use_prox) {
-               SYSCTL_ADD_PROC(sc->sysctl_ctx,
-                       SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO,
+               SYSCTL_ADD_PROC(sysctl_ctx,
+                       SYSCTL_CHILDREN(sysctl_tree), OID_AUTO,
                            "prox", CTLTYPE_INT | CTLFLAG_RD,
                            sc, ISL_METHOD_PROX, isl_sysctl, "I",
                            "Current proximity sensor read-out");
        }
 
-       SYSCTL_ADD_PROC(sc->sysctl_ctx,
-               SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO,
+       SYSCTL_ADD_PROC(sysctl_ctx,
+               SYSCTL_CHILDREN(sysctl_tree), OID_AUTO,
                    "resolution", CTLTYPE_INT | CTLFLAG_RD,
                    sc, ISL_METHOD_RESOLUTION, isl_sysctl, "I",
                    "Current proximity sensor resolution");
 
-       SYSCTL_ADD_PROC(sc->sysctl_ctx,
-       SYSCTL_CHILDREN(sc->sysctl_tree), OID_AUTO,
+       SYSCTL_ADD_PROC(sysctl_ctx,
+       SYSCTL_CHILDREN(sysctl_tree), OID_AUTO,
            "range", CTLTYPE_INT | CTLFLAG_RD,
            sc, ISL_METHOD_RANGE, isl_sysctl, "I",
            "Current proximity sensor range");
@@ -307,7 +299,8 @@ isl_sysctl(SYSCTL_HANDLER_ARGS)
        return (0);
 }
 
-static int isl_read_sensor(device_t dev, int addr, uint8_t cmd_mask)
+static int
+isl_read_sensor(device_t dev, int addr, uint8_t cmd_mask)
 {
        device_t bus;
        uint8_t rbyte;
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to