# do not edit this file, it will be overwritten on update

# Tag any devices that MM might be interested in; if ModemManager is started
# up right after udev, when MM explicitly requests devices on startup it may
# get devices that haven't had all rules run yet.  Thus, we tag devices we're
# interested in and when handling devices during MM startup we ignore any
# that don't have this tag.  MM will still get the udev 'add' event for the
# device a short while later and then process it as normal.

ACTION!="add|change|move|bind", GOTO="mm_candidate_end"

# Opening bound but disconnected Bluetooth RFCOMM ttys would initiate the
# connection. Don't do that.
KERNEL=="rfcomm*", DEVPATH=="*/virtual/*", GOTO="mm_candidate_end"

SUBSYSTEM=="tty", ENV{ID_MM_CANDIDATE}="1"
SUBSYSTEM=="net", ENV{ID_MM_CANDIDATE}="1"
KERNEL=="cdc-wdm*", SUBSYSTEM=="usbmisc", ENV{ID_MM_CANDIDATE}="1"

# WWAN subsystem port handling
#  - All USB devices ignored for now, only PCI devices expected
#  - Only "wwan_port" device types processed (single ports); we fully ignore
#    the "wwan_dev" device type (full device, not just one port)
#  - FIREHOSE ports are used for firmware updates and not managed by ModemManager
SUBSYSTEMS=="usb", GOTO="mm_candidate_end"
SUBSYSTEM=="wwan", ENV{DEVTYPE}=="wwan_dev", GOTO="mm_candidate_end"
SUBSYSTEM=="wwan", ENV{ID_MM_CANDIDATE}="1"
SUBSYSTEM=="wwan", ATTR{type}=="AT", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1"
SUBSYSTEM=="wwan", ATTR{type}=="MBIM", ENV{ID_MM_PORT_TYPE_MBIM}="1"
SUBSYSTEM=="wwan", ATTR{type}=="QMI", ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="wwan", ATTR{type}=="QCDM", ENV{ID_MM_PORT_TYPE_QCDM}="1"
SUBSYSTEM=="wwan", ATTR{type}=="FIREHOSE", ENV{ID_MM_PORT_IGNORE}="1"

# Linux 5.13 does not have "type" attribute yet, match kernel name instead
SUBSYSTEM=="wwan", KERNEL=="*MBIM", ENV{ID_MM_PORT_TYPE_MBIM}="1"
SUBSYSTEM=="wwan", KERNEL=="*QMI", ENV{ID_MM_PORT_TYPE_QMI}="1"
SUBSYSTEM=="wwan", KERNEL=="*AT", ENV{ID_MM_PORT_TYPE_AT_PRIMARY}="1"
SUBSYSTEM=="wwan", KERNEL=="*QCDM", ENV{ID_MM_PORT_TYPE_QCDM}="1"
SUBSYSTEM=="wwan", KERNEL=="*FIREHOSE", ENV{ID_MM_PORT_IGNORE}="1"

LABEL="mm_candidate_end"
