Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a <FEATURE>_SUPPORTED flag #9058

Merged
merged 6 commits into from
Jan 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions build_keyboard.mk
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,9 @@ ifneq ("$(wildcard $(USER_PATH)/config.h)","")
CONFIG_H += $(USER_PATH)/config.h
endif

# Disable features that a keyboard doesn't support
-include disable_features.mk
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should probably be moved to before the userspace code here, so that the changes are applied before the userspace checks.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've been thinking about this but I don't see why. Can you expand on your thinking here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned earlier, this currently doesn't disable the feature before the userspace rules.mk file is processed. This is problematic because that file will see the feature as enabled, even though the keyboard has flagged it as not supported.

Consider the following code in a userspace rules.mk file:

ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
    SRC += my_backlight.c
endif

If BACKLIGHT_ENABLE = yes is set in this user's community layout and/or userspace, my_backlight.c will be included and compiled even if the keyboard declares BACKLIGHT_SUPPORTED = no.

Drashna's suggestion of moving this line before the userspace code fixes this problem.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could that be solved by incorporating this into your logic?

ifneq ($(strip $(BACKLIGHT_SUPPORTED)), no)

Copy link
Contributor

@vomindoraan vomindoraan May 12, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it works when the check is changed to:

ifneq ($(strip $(BACKLIGHT_SUPPORTED)), no)
    ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
        SRC += my_backlight.c
    endif
endif
# ifeq (,$(filter no,$(BACKLIGHT_SUPPORTED) $(BACKLIGHT_ENABLE))) would work too

Is this something that you think would be worth doing for all similar checks moving forward? Or is the idea that <FEATURE>_SUPPORTED should automatically (and correctly) work with existing code that relies on just <FEATURE>_ENABLED?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I'm ready to make that call yet, right now I'm gathering data. This does seem like a potential solution for at least some use cases.

Copy link
Contributor

@vomindoraan vomindoraan May 13, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see #9070 (comment) for another potential solution.


# Object files directory
# To put object files in current directory, use a dot (.), do NOT make
# this an empty or blank macro!
Expand Down
31 changes: 31 additions & 0 deletions disable_features.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Unconditionally disable features that a keyboard advertises it doesn't support

FEATURE_NAMES :=
FEATURE_NAMES += ADAFRUIT_BLE
FEATURE_NAMES += AUDIO
FEATURE_NAMES += BACKLIGHT
FEATURE_NAMES += BLUETOOTH
FEATURE_NAMES += DIP_SWITCH
FEATURE_NAMES += DYNAMIC_KEYMAP
FEATURE_NAMES += ENCODER
FEATURE_NAMES += HAPTIC
FEATURE_NAMES += HD44780
FEATURE_NAMES += IOS_DEVICE
FEATURE_NAMES += LCD_BACKLIGHT
FEATURE_NAMES += LCD
FEATURE_NAMES += OLED
FEATURE_NAMES += POINTING_DEVICE
FEATURE_NAMES += PRINTING
FEATURE_NAMES += PS2_MOUSE
FEATURE_NAMES += RGBLIGHT
FEATURE_NAMES += RGB_MATRIX
FEATURE_NAMES += SLEEP_LED
FEATURE_NAMES += SERIAL_LINK
FEATURE_NAMES += STENO
FEATURE_NAMES += SWAP_HANDS
FEATURE_NAMES += VISUALIZER
FEATURE_NAMES += WATCHDOG
FEATURE_NAMES += XT

$(foreach AFEATURE,$(FEATURE_NAMES),\
$(if $(filter $($(AFEATURE)_SUPPORTED),no),$(eval $(AFEATURE)_ENABLE=no)))
5 changes: 5 additions & 0 deletions keyboards/40percentclub/4x4/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12 ortho_4x16

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/40percentclub/gherkin/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,7 @@ AUDIO_ENABLE = no
RGBLIGHT_ENABLE = no

LAYOUTS = ortho_3x10

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
3 changes: 3 additions & 0 deletions keyboards/40percentclub/nori/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = ortho_4x4 ortho_4x8 ortho_4x12

# Disable unsupported hardware
AUDIO_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/acheron/shark/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = ortho_4x12

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/amjkeyboard/amj66/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,7 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = 66_ansi 66_iso

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/boardsource/4x12/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,8 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
LAYOUTS = ortho_4x12

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/boardsource/5x12/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = ortho_5x12

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/chimera_ls/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,8 @@ CHIMERA_LS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \
SRC = matrix.c

LAYOUTS = ortho_4x12

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 3 additions & 1 deletion keyboards/clueboard/66_hotswap/gen1/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover
AUDIO_ENABLE = yes
# SERIAL_LINK_ENABLE = yes

LAYOUTS = 66_ansi
# project specific files
SRC = led.c
LAYOUTS += 66_ansi
5 changes: 5 additions & 0 deletions keyboards/contra/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,8 @@ AUDIO_ENABLE = no # Audio output on port C6

LAYOUTS = planck_mit ortho_4x12
LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
3 changes: 3 additions & 0 deletions keyboards/crkbd/rev1/legacy/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,6 @@ SRC += matrix.c \
split_scomm.c

QUANTUM_LIB_SRC += i2c.c serial.c

# Disable unsupported hardware
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/dm9records/plaid/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,8 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/dm9records/tartan/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,8 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_iso 60_iso_split_bs_rshift
LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/efreet/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output

LAYOUTS = ortho_4x12 planck_mit

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/ergodox_ez/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,7 @@ SRC += matrix.c \
QUANTUM_LIB_SRC += i2c_master.c

LAYOUTS = ergodox

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/evyd13/eon40/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,8 @@ ENCODER_ENABLE = yes

LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/evyd13/nt660/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,8 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = 66_ansi 66_iso

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/evyd13/pockettype/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,8 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output

LAYOUTS = ortho_4x12

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/fractal/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,8 @@ AUDIO_ENABLE = no # Audio output on port C6

LAYOUTS = ortho_5x12 # preonic_mit
LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
3 changes: 3 additions & 0 deletions keyboards/jj40/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = ortho_4x12 planck_mit

# Disable unsupported hardware
AUDIO_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/jnao/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -33,3 +33,7 @@ FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = ortho_5x12 ortho_4x12
LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
3 changes: 3 additions & 0 deletions keyboards/kbdfans/kbd4x/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches

LAYOUTS = ortho_4x12 planck_mit

# Disable unsupported hardware
AUDIO_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/keebio/levinson/rev3/rules.mk
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
BACKLIGHT_ENABLE = yes

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
3 changes: 3 additions & 0 deletions keyboards/keebio/wavelet/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,6 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

LAYOUTS = ortho_4x12

# Disable unsupported hardware
AUDIO_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/lazydesigners/dimple/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,7 @@ EXTRAKEY_ENABLE = yes # Audio control and System control
NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
2 changes: 2 additions & 0 deletions keyboards/lets_split/rev2/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Disable unsupported hardware
AUDIO_SUPPORTED = no
3 changes: 3 additions & 0 deletions keyboards/lets_split/sockets/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,6 @@ AUDIO_ENABLE = yes
RGBLIGHT_ENABLE = yes #Don't enable this along with I2C

LTO_ENABLE = yes

# Disable unsupported hardware
BACKLIGHT_SUPPORTED = no
3 changes: 3 additions & 0 deletions keyboards/lets_split_eh/eh/rules.mk
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
BACKLIGHT_ENABLE = yes
RGBLIGHT_ENABLE = yes

# Disable unsupported hardware
AUDIO_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/mechstudio/ud_40_ortho/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth
AUDIO_ENABLE = no # Audio output

LAYOUTS = ortho_4x12

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/meira/promicro/rules.mk
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
BLUETOOTH_ENABLE = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/montsinger/rebound/rev4/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,7 @@ ENCODER_ENABLE = yes
LAYOUTS = ortho_4x12
LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/niu_mini/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

LAYOUTS = ortho_4x12 planck_mit
LAYOUTS_HAS_RGB = no

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/quark/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,7 @@ AUDIO_ENABLE = no # Audio output
UNICODE_ENABLE = yes # Unicode

LAYOUTS = ortho_4x12 planck_mit

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/redox/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
SPLIT_KEYBOARD = yes

DEFAULT_FOLDER = redox/rev1

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/rgbkb/zygomorph/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,7 @@ SPLIT_KEYBOARD = yes
LAYOUTS = ortho_4x12 ortho_5x12

DEFAULT_FOLDER = rgbkb/zygomorph/rev1

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/signum/3_0/elitec/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,8 @@ RGBLIGHT_ENABLE = no
UNICODEMAP_ENABLE = no

LAYOUTS = ortho_4x12

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/spaceman/pancake/feather/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,8 @@ AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expans
RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port.

LAYOUTS = ortho_4x12 planck_mit

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/spaceman/pancake/promicro/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,8 @@ AUDIO_ENABLE = no # This can be enabled if a speaker is connected to the expans
RGBLIGHT_ENABLE = no # This can be enabled if a ws2812 strip is connected to the expansion port.

LAYOUTS = ortho_4x12 planck_mit

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
5 changes: 5 additions & 0 deletions keyboards/telophase/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,8 @@ MITOSIS_UPLOAD_COMMAND = while [ ! -r $(USB) ]; do sleep 1; done; \

# # project specific files
SRC = matrix.c

# Disable unsupported hardware
RGBLIGHT_SUPPORTED = no
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
3 changes: 3 additions & 0 deletions keyboards/vitamins_included/rev2/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@
BOOTLOADER = qmk-dfu

SPLIT_KEYBOARD = yes

# Disable unsupported hardware
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/zlant/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,7 @@ AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes

LAYOUTS = ortho_4x12 planck_mit

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/zvecr/split_blackpill/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,7 @@ SERIAL_DRIVER = usart
WS2812_DRIVER = pwm

LAYOUTS = ortho_4x12

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no
4 changes: 4 additions & 0 deletions keyboards/zvecr/zv48/f401/rules.mk
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@ MCU = STM32F401

# Address of the bootloader in system memory
STM32_BOOTLOADER_ADDRESS = 0x1FFF0000

# Disable unsupported hardware
AUDIO_SUPPORTED = no
BACKLIGHT_SUPPORTED = no