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
> 

Reply via email to