# 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
# tty0 - opened by powerd (running as user in "tty" group) at startup
# tty1, tty2 - needed by X server

# 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"
  exec udevadm settle
end script
