# Copyright 2017 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.

# Initial value just for style purposes.
USE=""
LINUX_FIRMWARE=""

USE="${USE} containers"

USE="${USE} eve cros_ec"
USE="${USE} -tpm tpm2"
USE="${USE} cr50_onboard"
USE="${USE} touchview"
USE="${USE} has_keyboard_backlight als"
USE="${USE} background_blur"
USE="${USE} eve_bt_hacks"
USE="${USE} eve_wifi_etsi"

# Disable ACPI AC device and use USB PD power supply driver
USE="${USE} -acpi_ac"

# Use ext4 crypto
USE="${USE} direncryption"

# Avoid inhibiting the keyboard (which reports events from side buttons).
USE="${USE} keyboard_includes_side_buttons"

# Google USBPD peripheral firmwares
LINUX_FIRMWARE="${LINUX_FIRMWARE} cros-pd"

# Intel Wifi and BT
LINUX_FIRMWARE="${LINUX_FIRMWARE} iwlwifi-7265D iwlwifi-7265 ibt-hw"

# Allow the option to use QCA Wifi and BT
LINUX_FIRMWARE="${LINUX_FIRMWARE} ath10k_qca6174a-5 qca6174a-5-bt"

INPUT_DEVICES="st wacom"

# For debug images, disable for production
#TTY_CONSOLE="ttyS0"
#USE="${USE} pcserial"

# Add EC logging
USE="${USE} eclog"

# Add NVMe support.
USE="${USE} nvme"

# Ability to run guest VMs.
USE="${USE} kvm_host crosvm-gpu virtio_gpu"

# Disable unibuild on this legacy board. This is only for existing (as of Jan 2019)
# boards as all new boards must be unibuild enabled moving forward. Do not copy this
# to new boards as it will be rejected. See
# https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/chromeos-config/README.md
# for further details about chromeos-config, which is the required entry point for
# unified builds.
USE="${USE} -unibuild"

# Enable Intel media-driver
# When you disable this, you have to remove special autotest-capability settings
# for eve, which is merged in https://crrev.com/c/1469567.
USE="${USE} -video_cards_i965 video_cards_iHD"

AFDO_PROFILE_SOURCE='broadwell'

# Add IME addons for some optional IME features.
USE="${USE} ime_addons"

# Enable IME native decoder experiment.
USE="${USE} ime_decoder_alpha"

BOARD_COMPILER_FLAGS="-march=skylake"

# TODO(b/141724493): Enable CPU zero-copy for Chrome camera stack once image
# scaling works with iHD driver.
#USE="${USE} video_capture_use_gpu_memory_buffer"
