# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description     "Load cros-ec ISH driver before sensors"
author          "chromium-os-dev@chromium.org"

# This job is used to replay events of devices needed by the MEMS sensors,
# in particular accelerometers.

start on starting cros-ec-accel

task

script
  # Only perform ISH initialization and wait for convertibles
  IS_CONVERTIBLE=$(cros_config /hardware-properties is-lid-convertible)
  if [ "${IS_CONVERTIBLE}" = "true" ]; then
    # Ensure ISH PCI VID/PID for WHL has been added
    udevadm trigger --action=add --property-match=PCI_ID=8086:9DFC \
      --subsystem-match=pci --settle
  fi
end script
