# Copyright (c) 2011 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     "Replay critical udev events"
author          "chromium-os-dev@chromium.org"

# This job is used to replay events of devices critical to the bring-up of
# the system. Since device nodes always exist, this is only needed if
# special permissions are required for nodes or special processing that
# would otherwise take place later.
#
# Subsystems listed here must be excluded from udev-trigger.conf to avoid
# replaying twice.

# Rationale:
# input - required to switch synaptics into raw mode, and also so X
#         can initialize its input devices on startup rather than later
# misc - required if synaptics is already in raw mode
# graphics & drm - required to set permissions for accelerated graphics
# nvhost & tegra_dc_ext - on nVidia systems, X needs this
# tty - opened by powerd (running as user in "tty" group) at startup

# N.B.  The 'boot-services' start on condition assumes this
# dependency on 'udev'.  Don't change this line without accounting
# for the impact.
start on started udev

script
  udevadm trigger --action=add \
    --subsystem-match="input" --subsystem-match="misc" \
    --subsystem-match="graphics" --subsystem-match="drm" \
    --subsystem-match="nvhost" --subsystem-match="tegra_dc_ext" \
    --subsystem-match="tty"
  # Trigger graphics pci devices that may load as modules
  udevadm trigger --subsystem-match=pci --attr-match=class=0x030000
  exec udevadm settle
end script
