# Copyright (c) 2013 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.

# mist udev rules for switching supported USB devices into a modem.
# Run after 50-udev-default.rules and before 60-persistent-*.rules.

# TODO(benchan): Generate this file as part of the build process.
# Extract the vendor/product IDs of supported devices from default.conf and
# create corresponding udev rules in this file.

# If MIST_SUPPORTED_DEVICE is set to 1, the device has already been handled once
# due to a prior udev add or change event.
ENV{MIST_SUPPORTED_DEVICE}=="1", GOTO="mist_end"

ACTION!="add|change", GOTO="mist_end"

#-------------------------------------------------------------------------------
# Supported USB devices after switching into a modem
SUBSYSTEM!="usb|tty", GOTO="mist_end"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1001", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1400", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1406", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="140b", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="140c", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1412", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="141b", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1432", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1433", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1436", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14ac", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14cf", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14db", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1506", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="150a", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="150f", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1511", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1576", GOTO="mist_mark_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1c1e", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0015", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0017", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0022", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0104", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0117", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1008", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1010", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1173", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1177", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1181", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1203", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1254", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1525", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1589", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2003", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="900b", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="ffe9", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="fff1", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="fffe", GOTO="mist_mark_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="ffff", GOTO="mist_mark_device"
ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9605", GOTO="mist_mark_device"
ATTRS{idVendor}=="2020", ATTRS{idProduct}=="4010", GOTO="mist_mark_device"

#-------------------------------------------------------------------------------
# Supported USB devices before switching into a modem
SUBSYSTEM!="usb", GOTO="mist_end"
ENV{DEVTYPE}!="usb_device", GOTO="mist_end"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", GOTO="mist_switch_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="14fe", GOTO="mist_switch_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1505", GOTO="mist_switch_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1526", GOTO="mist_switch_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="15ca", GOTO="mist_switch_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1f01", GOTO="mist_switch_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1f15", GOTO="mist_switch_device"
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1f17", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0013", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0040", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0101", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0154", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1007", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1009", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1171", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1175", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1179", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1201", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1237", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1523", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="1588", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2000", GOTO="mist_switch_device"
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="fff5", GOTO="mist_switch_device"
ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="f000", GOTO="mist_switch_device"
ATTRS{idVendor}=="2020", ATTRS{idProduct}=="0002", GOTO="mist_switch_device"

GOTO="mist_end"

#-------------------------------------------------------------------------------
# Invoke mist to switch a supported USB device into a modem. mist needs to run
# as a daemon in order to monitor udev events to determine when the device is
# switched into a modem.
LABEL="mist_switch_device"
RUN+="/usr/bin/mist --daemon switch %S%p"
# Fall through to "mist_mark_device"

#-------------------------------------------------------------------------------
# If this device is a 'usb_device' device, set MIST_SUPPORTED_DEVICE to 1 to
# tell cros-disks to hide it from being auto-mounted. If this device is a 'tty'
# device, set MIST_SUPPORTED_DEVICE to 1 to tell 52-mm-modem-permissions.rules
# to set the right permissions on it.
LABEL="mist_mark_device"
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{MIST_SUPPORTED_DEVICE}="1"
SUBSYSTEM=="tty", ENV{MIST_SUPPORTED_DEVICE}="1"

LABEL="mist_end"
