On Sun, May 06, 2018 at 11:43:43PM +0200, Tobias Tschinkowitz wrote:
> On Sun, May 06, 2018 at 09:31:55AM -0700, Mike Larkin wrote:
> > On Fri, May 04, 2018 at 08:28:04PM +0200, Tobias Tschinkowitz wrote:
> > > Hi @tech,
> > > 
> > > i thought it would be a good idea to delegate the port-replicator
> > > docking event to the sysctl(2) hw.sensors substree so that if the
> > > thinkpad gets docked/undocked one could react to it by using
> > > sensorsd(8).
> > > 
> > > Here is my diff:
> > > 
> > 
> > Can you regenerate with proper whitespace/indenting please?
> > 
> > -ml
> > 
> > 
> > > Index: acpithinkpad.c
> > > ===================================================================
> > > RCS file: /cvs/src/sys/dev/acpi/acpithinkpad.c,v
> > > retrieving revision 1.58
> > > diff -u -p -r1.58 acpithinkpad.c
> > > --- acpithinkpad.c      12 Aug 2017 17:33:51 -0000      1.58
> > > +++ acpithinkpad.c      4 May 2018 18:20:43 -0000
> > > @@ -110,8 +110,10 @@
> > >  #define        THINKPAD_TABLET_SCREEN_CHANGED  0x60c0
> > >  #define        THINKPAD_SWITCH_WIRELESS        0x7000
> > > 
> > > -#define THINKPAD_NSENSORS 9
> > > +#define THINKPAD_NSENSORS 10
> > >  #define THINKPAD_NTEMPSENSORS 8
> > > +#define THINKPAD_SENSOR_FANRPM         THINKPAD_NTEMPSENSORS
> > > +#define THINKPAD_SENSOR_PORTREPL       THINKPAD_NTEMPSENSORS + 1
> > > 
> > >  #define THINKPAD_ECOFFSET_VOLUME       0x30
> > >  #define THINKPAD_ECOFFSET_VOLUME_MUTE_MASK 0x40
> > > @@ -232,9 +234,18 @@ thinkpad_sensor_attach(struct acpithinkp
> > >                 sensor_attach(&sc->sc_sensdev, &sc->sc_sens[i]);
> > >         }
> > > 
> > > -       /* Add fan probe */
> > > -       sc->sc_sens[i].type = SENSOR_FANRPM;
> > > -       sensor_attach(&sc->sc_sensdev, &sc->sc_sens[i]);
> > > +        /* Add fan probe */
> > > +        sc->sc_sens[THINKPAD_SENSOR_FANRPM].type = SENSOR_FANRPM;
> > > +        sensor_attach(&sc->sc_sensdev,
> > > +                      &sc->sc_sens[THINKPAD_SENSOR_FANRPM]);
> > > +
> > > +        /* Add port replicator indicator */
> > > +        sc->sc_sens[THINKPAD_SENSOR_PORTREPL].type = SENSOR_INDICATOR;
> > > +        sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = SENSOR_S_UNKNOWN;
> > > +        strlcpy(sc->sc_sens[THINKPAD_SENSOR_PORTREPL].desc, "port 
> > > replicator",
> > > +                sizeof(sc->sc_sens[THINKPAD_SENSOR_PORTREPL].desc));
> > > +        sensor_attach(&sc->sc_sensdev,
> > > +                      &sc->sc_sens[THINKPAD_SENSOR_PORTREPL]);
> > > 
> > >         sensordev_install(&sc->sc_sensdev);
> > >  }
> > > @@ -260,7 +271,7 @@ thinkpad_sensor_refresh(void *arg)
> > >         /* Read fan RPM */
> > >         acpiec_read(sc->sc_ec, THINKPAD_ECOFFSET_FANLO, 1, &lo);
> > >         acpiec_read(sc->sc_ec, THINKPAD_ECOFFSET_FANHI, 1, &hi);
> > > -       sc->sc_sens[i].value = ((hi << 8L) + lo);
> > > +       sc->sc_sens[THINKPAD_SENSOR_FANRPM].value = ((hi << 8L) + lo);
> > >  }
> > > 
> > >  void
> > > @@ -421,6 +432,14 @@ thinkpad_hotkey(struct aml_node *node, i
> > >                 case THINKPAD_BACKLIGHT_CHANGED:
> > >                         thinkpad_get_brightness(sc);
> > >                         break;
> > > +                case THINKPAD_PORT_REPL_DOCKED:
> > > +                        sc->sc_sens[THINKPAD_SENSOR_PORTREPL].value = 1;
> > > +                        sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = 
> > > SENSOR_S_OK;
> > > +                        break;
> > > +                case THINKPAD_PORT_REPL_UNDOCKED:
> > > +                        sc->sc_sens[THINKPAD_SENSOR_PORTREPL].value = 0;
> > > +                        sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = 
> > > SENSOR_S_OK;
> > > +                        break;
> > >                 default:
> > >                         /* unknown or boring event */
> > >                         DPRINTF(("%s: unhandled event 0x%03llx\n", 
> > > DEVNAME(sc),
> > > 
> > > 
> > > Greetings, Tobias
> > > 
> > 
> 
> Hi,
> 
> here is the corrected diff. I hope this one is okay.
> 
> Greetings, Tobias
> 
> Index: acpithinkpad.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/acpi/acpithinkpad.c,v
> retrieving revision 1.58
> diff -u -p -r1.58 acpithinkpad.c
> --- acpithinkpad.c    12 Aug 2017 17:33:51 -0000      1.58
> +++ acpithinkpad.c    6 May 2018 21:37:05 -0000
> @@ -110,9 +110,12 @@
>  #define      THINKPAD_TABLET_SCREEN_CHANGED  0x60c0
>  #define      THINKPAD_SWITCH_WIRELESS        0x7000
>  
> -#define THINKPAD_NSENSORS 9
> +#define THINKPAD_NSENSORS 10
>  #define THINKPAD_NTEMPSENSORS 8
>  
> +#define THINKPAD_SENSOR_FANRPM               THINKPAD_NTEMPSENSORS
> +#define THINKPAD_SENSOR_PORTREPL     THINKPAD_NTEMPSENSORS + 1
> +
>  #define THINKPAD_ECOFFSET_VOLUME     0x30
>  #define THINKPAD_ECOFFSET_VOLUME_MUTE_MASK 0x40
>  #define THINKPAD_ECOFFSET_FANLO              0x84
> @@ -233,8 +236,16 @@ thinkpad_sensor_attach(struct acpithinkp
>       }
>  
>       /* Add fan probe */
> -     sc->sc_sens[i].type = SENSOR_FANRPM;
> -     sensor_attach(&sc->sc_sensdev, &sc->sc_sens[i]);
> +     sc->sc_sens[THINKPAD_SENSOR_FANRPM].type = SENSOR_FANRPM;
> +     sensor_attach(&sc->sc_sensdev, &sc->sc_sens[THINKPAD_SENSOR_FANRPM]);
> +
> +     /* Add port replicator indicator */
> +     sc->sc_sens[THINKPAD_SENSOR_PORTREPL].type = SENSOR_INDICATOR;
> +     sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = SENSOR_S_UNKNOWN;
> +     strlcpy(sc->sc_sens[THINKPAD_SENSOR_PORTREPL].desc, "port replicator",
> +             sizeof(sc->sc_sens[THINKPAD_SENSOR_PORTREPL].desc));
> +     sensor_attach(&sc->sc_sensdev,
> +                   &sc->sc_sens[THINKPAD_SENSOR_PORTREPL]);
>  
>       sensordev_install(&sc->sc_sensdev);
>  }
> @@ -260,7 +271,7 @@ thinkpad_sensor_refresh(void *arg)
>       /* Read fan RPM */
>       acpiec_read(sc->sc_ec, THINKPAD_ECOFFSET_FANLO, 1, &lo);
>       acpiec_read(sc->sc_ec, THINKPAD_ECOFFSET_FANHI, 1, &hi);
> -     sc->sc_sens[i].value = ((hi << 8L) + lo);
> +     sc->sc_sens[THINKPAD_SENSOR_FANRPM].value = ((hi << 8L) + lo);
>  }
>  
>  void
> @@ -420,6 +431,14 @@ thinkpad_hotkey(struct aml_node *node, i
>                       break;
>               case THINKPAD_BACKLIGHT_CHANGED:
>                       thinkpad_get_brightness(sc);
> +                     break;
> +             case THINKPAD_PORT_REPL_DOCKED:
> +                     sc->sc_sens[THINKPAD_SENSOR_PORTREPL].value = 1;
> +                     sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = 
> SENSOR_S_OK;
> +                     break;
> +             case THINKPAD_PORT_REPL_UNDOCKED:
> +                     sc->sc_sens[THINKPAD_SENSOR_PORTREPL].value = 0;
> +                     sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = 
> SENSOR_S_OK;
>                       break;
>               default:
>                       /* unknown or boring event */

As the last diff still had formatting issues i fixed that.

Ok?


Index: acpithinkpad.c
===================================================================
RCS file: /cvs/src/sys/dev/acpi/acpithinkpad.c,v
retrieving revision 1.58
diff -u -p -r1.58 acpithinkpad.c
--- acpithinkpad.c      12 Aug 2017 17:33:51 -0000      1.58
+++ acpithinkpad.c      21 May 2018 09:34:28 -0000
@@ -110,9 +110,12 @@
 #define        THINKPAD_TABLET_SCREEN_CHANGED  0x60c0
 #define        THINKPAD_SWITCH_WIRELESS        0x7000
 
-#define THINKPAD_NSENSORS 9
+#define THINKPAD_NSENSORS 10
 #define THINKPAD_NTEMPSENSORS 8
 
+#define THINKPAD_SENSOR_FANRPM         THINKPAD_NTEMPSENSORS
+#define THINKPAD_SENSOR_PORTREPL       THINKPAD_NTEMPSENSORS + 1
+
 #define THINKPAD_ECOFFSET_VOLUME       0x30
 #define THINKPAD_ECOFFSET_VOLUME_MUTE_MASK 0x40
 #define THINKPAD_ECOFFSET_FANLO                0x84
@@ -233,8 +236,15 @@ thinkpad_sensor_attach(struct acpithinkp
        }
 
        /* Add fan probe */
-       sc->sc_sens[i].type = SENSOR_FANRPM;
-       sensor_attach(&sc->sc_sensdev, &sc->sc_sens[i]);
+       sc->sc_sens[THINKPAD_SENSOR_FANRPM].type = SENSOR_FANRPM;
+       sensor_attach(&sc->sc_sensdev, &sc->sc_sens[THINKPAD_SENSOR_FANRPM]);
+
+       /* Add port replicator indicator */
+       sc->sc_sens[THINKPAD_SENSOR_PORTREPL].type = SENSOR_INDICATOR;
+       sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = SENSOR_S_UNKNOWN;
+       strlcpy(sc->sc_sens[THINKPAD_SENSOR_PORTREPL].desc, "port replicator",
+               sizeof(sc->sc_sens[THINKPAD_SENSOR_PORTREPL].desc));
+       sensor_attach(&sc->sc_sensdev, &sc->sc_sens[THINKPAD_SENSOR_PORTREPL]);
 
        sensordev_install(&sc->sc_sensdev);
 }
@@ -260,7 +270,7 @@ thinkpad_sensor_refresh(void *arg)
        /* Read fan RPM */
        acpiec_read(sc->sc_ec, THINKPAD_ECOFFSET_FANLO, 1, &lo);
        acpiec_read(sc->sc_ec, THINKPAD_ECOFFSET_FANHI, 1, &hi);
-       sc->sc_sens[i].value = ((hi << 8L) + lo);
+       sc->sc_sens[THINKPAD_SENSOR_FANRPM].value = ((hi << 8L) + lo);
 }
 
 void
@@ -420,6 +430,14 @@ thinkpad_hotkey(struct aml_node *node, i
                        break;
                case THINKPAD_BACKLIGHT_CHANGED:
                        thinkpad_get_brightness(sc);
+                       break;
+               case THINKPAD_PORT_REPL_DOCKED:
+                       sc->sc_sens[THINKPAD_SENSOR_PORTREPL].value = 1;
+                       sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = 
SENSOR_S_OK;
+                       break;
+               case THINKPAD_PORT_REPL_UNDOCKED:
+                       sc->sc_sens[THINKPAD_SENSOR_PORTREPL].value = 0;
+                       sc->sc_sens[THINKPAD_SENSOR_PORTREPL].status = 
SENSOR_S_OK;
                        break;
                default:
                        /* unknown or boring event */

Reply via email to