WIP: Pinebookpro tweaks (#2208)

Pinebook-Pro Support:
suspend to idle via key and lid close
brightness keys
volume control keys
wifi, bluetooth frimware
touchpad tweaks
keyboard config
armbian-hardware-optimization
bootsplash
Co-authored-by: Britt Dodd <britt@reactornet.net>
This commit is contained in:
lanefu 2020-09-23 01:03:45 +00:00 committed by GitHub
parent ebd9524041
commit b2800dbd25
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 722 additions and 24 deletions

View file

@ -6,4 +6,6 @@ BOOT_FDT_FILE="rockchip/rk3399-pinebook-pro.dtb"
DESKTOP_AUTOLOGIN="no"
KERNEL_TARGET="legacy,current,dev"
FULL_DESKTOP="yes"
PACKAGE_LIST_DESKTOP_BOARD="xfce4-power-manager"
BOOT_LOGO="desktop"
ASOUND_STATE="asound.state.pinebook-pro"

View file

@ -269,6 +269,12 @@ family_tweaks()
fi
if [[ $BOARD == pinebook-pro ]]; then
chroot $SDCARD /bin/bash -c "echo SuspandState=freeze >> /etc/systemd/sleep.conf"
chroot $SDCARD /bin/bash -c "echo HandlePowerKey=ignore >> /etc/systemd/login.d"
fi
}
@ -294,7 +300,17 @@ family_tweaks_bsp()
if [[ $BOARD == pinebook-pro ]]; then
## accelerated X
cp $SRC/packages/bsp/pinebook-pro/xorg.conf $destination/etc/X11/
## touchpad and keyboard tweaks
# from https://github.com/ayufan-rock64/linux-package/tree/master/root-pinebookpro
cp $SRC/packages/bsp/pinebook-pro/40-pinebookpro-touchpad.conf $destination/etc/X11/xorg.conf.d/
mkdir -p $destination/etc/udev/hwdb.d/
cp $SRC/packages/bsp/pinebook-pro/10-usb-kbd.hwdb $destination/etc/udev/hwdb.d/
## brightness and power management defaults
mkdir -p $destination/usr/local/share/xdg/xfce4/xfconf/xfce-perchannel-xml/
cp $SRC/packages/bsp/pinebook-pro/xfce4-power-manager.xml
## additional keyboard configs in lib/desktop.sh
fi
if [[ $BOARD == helios64 ]]; then

View file

@ -146,4 +146,11 @@ desktop_postinstall ()
echo "disp_mem_reserves=on" >> "${SDCARD}"/boot/armbianEnv.txt
echo "extraargs=cma=96M" >> "${SDCARD}"/boot/armbianEnv.txt
fi
if [[ $BOARD == "pinebook-pro" ]]; then
# powerconfig, touchpad, and special keys
cp $SRC/packages/bsp/pinebook-pro/xfce4-power-manager.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/
cp $SRC/packages/bsp/pinebook-pro/pointers.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/
cp $SRC/packages/bsp/pinebook-pro/xfce4-keyboard-shortcuts.xml ${SDCARD}/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml/
fi
}

View file

@ -0,0 +1,440 @@
state.rockchipes8316c {
control.1 {
iface CARD
name 'Headphones Jack'
value false
comment {
access read
type BOOLEAN
count 1
}
}
control.2 {
iface MIXER
name 'Headphone Playback Volume'
value.0 0
value.1 0
comment {
access 'read write'
type INTEGER
count 2
range '0 - 3'
dbmin -4800
dbmax 0
dbvalue.0 -4800
dbvalue.1 -4800
}
}
control.3 {
iface MIXER
name 'Headphone Mixer Volume'
value.0 11
value.1 11
comment {
access 'read write'
type INTEGER
count 2
range '0 - 11'
dbmin -1200
dbmax 0
dbvalue.0 0
dbvalue.1 0
}
}
control.4 {
iface MIXER
name 'Playback Polarity'
value Normal
comment {
access 'read write'
type ENUMERATED
count 1
item.0 Normal
item.1 'R Invert'
item.2 'L Invert'
item.3 'L + R Invert'
}
}
control.5 {
iface MIXER
name 'DAC Playback Volume'
value.0 192
value.1 192
comment {
access 'read write'
type INTEGER
count 2
range '0 - 192'
dbmin -9999999
dbmax 0
dbvalue.0 0
dbvalue.1 0
}
}
control.6 {
iface MIXER
name 'DAC Soft Ramp Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.7 {
iface MIXER
name 'DAC Soft Ramp Rate'
value 4
comment {
access 'read write'
type INTEGER
count 1
range '0 - 4'
}
}
control.8 {
iface MIXER
name 'DAC Notch Filter Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.9 {
iface MIXER
name 'DAC Double Fs Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.10 {
iface MIXER
name 'DAC Stereo Enhancement'
value 7
comment {
access 'read write'
type INTEGER
count 1
range '0 - 7'
}
}
control.11 {
iface MIXER
name 'DAC Mono Mix Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.12 {
iface MIXER
name 'Capture Polarity'
value Normal
comment {
access 'read write'
type ENUMERATED
count 1
item.0 Normal
item.1 Invert
}
}
control.13 {
iface MIXER
name 'Mic Boost Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.14 {
iface MIXER
name 'ADC Capture Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 192'
dbmin -9999999
dbmax 0
dbvalue.0 -9999999
}
}
control.15 {
iface MIXER
name 'ADC PGA Gain Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 10'
}
}
control.16 {
iface MIXER
name 'ADC Soft Ramp Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.17 {
iface MIXER
name 'ADC Double Fs Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.18 {
iface MIXER
name 'ALC Capture Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.19 {
iface MIXER
name 'ALC Capture Max Volume'
value 28
comment {
access 'read write'
type INTEGER
count 1
range '0 - 28'
dbmin -650
dbmax 3550
dbvalue.0 3550
}
}
control.20 {
iface MIXER
name 'ALC Capture Min Volume'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 28'
dbmin -1200
dbmax 3000
dbvalue.0 -1200
}
}
control.21 {
iface MIXER
name 'ALC Capture Target Volume'
value 11
comment {
access 'read write'
type INTEGER
count 1
range '0 - 10'
dbmin -1650
dbmax -150
dbvalue.0 0
}
}
control.22 {
iface MIXER
name 'ALC Capture Hold Time'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 10'
}
}
control.23 {
iface MIXER
name 'ALC Capture Decay Time'
value 3
comment {
access 'read write'
type INTEGER
count 1
range '0 - 10'
}
}
control.24 {
iface MIXER
name 'ALC Capture Attack Time'
value 2
comment {
access 'read write'
type INTEGER
count 1
range '0 - 10'
}
}
control.25 {
iface MIXER
name 'ALC Capture Noise Gate Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.26 {
iface MIXER
name 'ALC Capture Noise Gate Threshold'
value 0
comment {
access 'read write'
type INTEGER
count 1
range '0 - 31'
}
}
control.27 {
iface MIXER
name 'ALC Capture Noise Gate Type'
value 'Constant PGA Gain'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'Constant PGA Gain'
item.1 'Mute ADC Output'
}
}
control.28 {
iface MIXER
name 'Speaker Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.29 {
iface MIXER
name 'Differential Mux'
value lin1-rin1
comment {
access 'read write'
type ENUMERATED
count 1
item.0 lin1-rin1
item.1 lin2-rin2
item.2 'lin1-rin1 with 20db Boost'
item.3 'lin2-rin2 with 20db Boost'
}
}
control.30 {
iface MIXER
name 'Digital Mic Mux'
value 'dmic disable'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'dmic disable'
item.1 'dmic data at high level'
item.2 'dmic data at low level'
}
}
control.31 {
iface MIXER
name 'DAC Source Mux'
value 'LDATA TO LDAC, RDATA TO RDAC'
comment {
access 'read write'
type ENUMERATED
count 1
item.0 'LDATA TO LDAC, RDATA TO RDAC'
item.1 'LDATA TO LDAC, LDATA TO RDAC'
item.2 'RDATA TO LDAC, RDATA TO RDAC'
item.3 'RDATA TO LDAC, LDATA TO RDAC'
}
}
control.32 {
iface MIXER
name 'Left Headphone Mux'
value lin2-rin2
comment {
access 'read write'
type ENUMERATED
count 1
item.0 lin1-rin1
item.1 lin2-rin2
item.2 'lin-rin with Boost'
item.3 'lin-rin with Boost and PGA'
}
}
control.33 {
iface MIXER
name 'Right Headphone Mux'
value lin1-rin1
comment {
access 'read write'
type ENUMERATED
count 1
item.0 lin1-rin1
item.1 lin2-rin2
item.2 'lin-rin with Boost'
item.3 'lin-rin with Boost and PGA'
}
}
control.34 {
iface MIXER
name 'Left Headphone Mixer LLIN Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.35 {
iface MIXER
name 'Left Headphone Mixer Left DAC Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.36 {
iface MIXER
name 'Right Headphone Mixer RLIN Switch'
value false
comment {
access 'read write'
type BOOLEAN
count 1
}
}
control.37 {
iface MIXER
name 'Right Headphone Mixer Right DAC Switch'
value true
comment {
access 'read write'
type BOOLEAN
count 1
}
}
}

View file

@ -43,6 +43,18 @@
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/armbian18-Dre0x-Minum-light-3840x2160.jpg"/>
</property>
</property>
<property name="monitoreDP-1" type="empty">
<property name="workspace0" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/armbian03-Dre0x-Minum-dark-3840x2160.jpg"/>
</property>
<property name="workspace1" type="empty">
<property name="color-style" type="int" value="0"/>
<property name="image-style" type="int" value="5"/>
<property name="last-image" type="string" value="/usr/share/backgrounds/xfce/armbian18-Dre0x-Minum-light-3840x2160.jpg"/>
</property>
</property>
</property>
<property name="single-workspace-mode" type="bool" value="false"/>
</property>

View file

@ -86,8 +86,8 @@ prepare_board() {
fi
# IRQ distribution based on $BOARDFAMILY and/or $BOARD_NAME
case ${BOARD_NAME} in
rockpro64|renegade-elite)
case ${BOARD} in
rockpro64|renegade-elite|pinebook-pro)
BOARDFAMILY=rk3399
;;
esac
@ -226,6 +226,9 @@ prepare_board() {
echo 30 >/proc/irq/$i/smp_affinity
done
;;
"Pinebook Pro")
echo s2idle >/sys/power/mem_sleep
;;
esac
;;
s500) # Roseapple Pi/LeMaker Guitar: send USB IRQs to cpu1/cpu2, DMA0 to cpu2 and Ethernet + SD card to cpu3

View file

@ -0,0 +1,4 @@
evdev:input:b0003v258Ap001E*
KEYBOARD_KEY_700a5=brightnessdown
KEYBOARD_KEY_700a6=brightnessup
KEYBOARD_KEY_70066=sleep

View file

@ -0,0 +1,10 @@
Section "InputClass"
Identifier "libinput for HAILUCK CO.,LTD USB KEYBOARD Touchpad"
MatchIsTouchpad "on"
MatchUSBID "258a:001e"
MatchDevicePath "/dev/input/event*"
Option "AccelProfile" "adaptive"
Option "AccelSpeed" "1"
Option "ScrollMethod" "twofinger"
EndSection

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="pointers" version="1.0">
<property name="HAILUCK_COLTD_USB_KEYBOARD_Touchpad" type="empty">
<property name="RightHanded" type="bool" value="true"/>
<property name="Threshold" type="int" value="1"/>
<property name="Acceleration" type="double" value="8.100000"/>
<property name="Properties" type="empty">
<property name="libinput_Tapping_Enabled" type="int" value="1"/>
</property>
</property>
</channel>

View file

@ -0,0 +1,185 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-keyboard-shortcuts" version="1.0">
<property name="commands" type="empty">
<property name="default" type="empty">
<property name="&lt;Alt&gt;F1" type="empty"/>
<property name="&lt;Alt&gt;F2" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="&lt;Alt&gt;F3" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;l" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;t" type="empty"/>
<property name="XF86Display" type="empty"/>
<property name="&lt;Super&gt;p" type="empty"/>
<property name="&lt;Primary&gt;Escape" type="empty"/>
<property name="XF86WWW" type="empty"/>
<property name="XF86Mail" type="empty"/>
<property name="Print" type="empty"/>
</property>
<property name="custom" type="empty">
<property name="&lt;Alt&gt;F1" type="string" value="xfce4-popup-applicationsmenu"/>
<property name="&lt;Alt&gt;F3" type="string" value="xfce4-appfinder"/>
<property name="&lt;Alt&gt;F2" type="string" value="xfce4-appfinder --collapsed"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="string" value="xflock4"/>
<property name="XF86Mail" type="string" value="exo-open --launch MailReader"/>
<property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
<property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
<property name="&lt;Super&gt;p" type="string" value="xfce4-display-settings --minimal"/>
<property name="&lt;Primary&gt;Escape" type="string" value="xfdesktop --menu"/>
<property name="override" type="bool" value="true"/>
<property name="AudioMute" type="string" value="amixer set Master toggle"/>
<property name="AudioRaiseVolume" type="string" value="amixer set Master 5%+"/>
<property name="AudioLowerVolume" type="string" value="amixer set Master 5%-"/>
</property>
</property>
<property name="xfwm4" type="empty">
<property name="default" type="empty">
<property name="&lt;Alt&gt;Insert" type="empty"/>
<property name="Escape" type="empty"/>
<property name="Left" type="empty"/>
<property name="Right" type="empty"/>
<property name="Up" type="empty"/>
<property name="Down" type="empty"/>
<property name="&lt;Alt&gt;Tab" type="empty"/>
<property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="empty"/>
<property name="&lt;Alt&gt;Delete" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="empty"/>
<property name="&lt;Alt&gt;F4" type="empty"/>
<property name="&lt;Alt&gt;F6" type="empty"/>
<property name="&lt;Alt&gt;F7" type="empty"/>
<property name="&lt;Alt&gt;F8" type="empty"/>
<property name="&lt;Alt&gt;F9" type="empty"/>
<property name="&lt;Alt&gt;F10" type="empty"/>
<property name="&lt;Alt&gt;F11" type="empty"/>
<property name="&lt;Alt&gt;F12" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;End" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="empty"/>
<property name="&lt;Alt&gt;space" type="empty"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;d" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Super&gt;Tab" type="empty"/>
<property name="&lt;Primary&gt;F1" type="empty"/>
<property name="&lt;Primary&gt;F2" type="empty"/>
<property name="&lt;Primary&gt;F3" type="empty"/>
<property name="&lt;Primary&gt;F4" type="empty"/>
<property name="&lt;Primary&gt;F5" type="empty"/>
<property name="&lt;Primary&gt;F6" type="empty"/>
<property name="&lt;Primary&gt;F7" type="empty"/>
<property name="&lt;Primary&gt;F8" type="empty"/>
<property name="&lt;Primary&gt;F9" type="empty"/>
<property name="&lt;Primary&gt;F10" type="empty"/>
<property name="&lt;Primary&gt;F11" type="empty"/>
<property name="&lt;Primary&gt;F12" type="empty"/>
<property name="&lt;Control&gt;&lt;Alt&gt;Down" type="empty"/>
<property name="&lt;Control&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Control&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;End" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;Home" type="empty"/>
<property name="&lt;Control&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Control&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_1" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_2" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_3" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_4" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_5" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_6" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_7" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_8" type="empty"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_9" type="empty"/>
<property name="&lt;Control&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Control&gt;&lt;Alt&gt;d" type="empty"/>
<property name="&lt;Control&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Control&gt;F1" type="empty"/>
<property name="&lt;Control&gt;F2" type="empty"/>
<property name="&lt;Control&gt;F3" type="empty"/>
<property name="&lt;Control&gt;F4" type="empty"/>
<property name="&lt;Control&gt;F5" type="empty"/>
<property name="&lt;Control&gt;F6" type="empty"/>
<property name="&lt;Control&gt;F7" type="empty"/>
<property name="&lt;Control&gt;F8" type="empty"/>
<property name="&lt;Control&gt;F9" type="empty"/>
<property name="&lt;Control&gt;F10" type="empty"/>
<property name="&lt;Control&gt;F11" type="empty"/>
<property name="&lt;Control&gt;F12" type="empty"/>
</property>
<property name="custom" type="empty">
<property name="&lt;Control&gt;F3" type="string" value="workspace_3_key"/>
<property name="&lt;Control&gt;F4" type="string" value="workspace_4_key"/>
<property name="&lt;Control&gt;F5" type="string" value="workspace_5_key"/>
<property name="&lt;Control&gt;F6" type="string" value="workspace_6_key"/>
<property name="&lt;Control&gt;F7" type="string" value="workspace_7_key"/>
<property name="&lt;Control&gt;F8" type="string" value="workspace_8_key"/>
<property name="&lt;Control&gt;F9" type="string" value="workspace_9_key"/>
<property name="&lt;Alt&gt;Tab" type="string" value="cycle_windows_key"/>
<property name="&lt;Control&gt;&lt;Alt&gt;Right" type="string" value="right_workspace_key"/>
<property name="Left" type="string" value="left_key"/>
<property name="&lt;Control&gt;&lt;Alt&gt;d" type="string" value="show_desktop_key"/>
<property name="&lt;Control&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="string" value="move_window_left_key"/>
<property name="&lt;Control&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="string" value="move_window_right_key"/>
<property name="Up" type="string" value="up_key"/>
<property name="&lt;Alt&gt;F4" type="string" value="close_window_key"/>
<property name="&lt;Alt&gt;F6" type="string" value="stick_window_key"/>
<property name="&lt;Control&gt;&lt;Alt&gt;Down" type="string" value="down_workspace_key"/>
<property name="&lt;Alt&gt;F7" type="string" value="move_window_key"/>
<property name="&lt;Alt&gt;F9" type="string" value="hide_window_key"/>
<property name="&lt;Alt&gt;F11" type="string" value="fullscreen_key"/>
<property name="&lt;Alt&gt;F8" type="string" value="resize_window_key"/>
<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>
<property name="Escape" type="string" value="cancel_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_1" type="string" value="move_window_workspace_1_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_2" type="string" value="move_window_workspace_2_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_3" type="string" value="move_window_workspace_3_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_4" type="string" value="move_window_workspace_4_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_5" type="string" value="move_window_workspace_5_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_6" type="string" value="move_window_workspace_6_key"/>
<property name="Down" type="string" value="down_key"/>
<property name="&lt;Control&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="string" value="move_window_up_key"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="string" value="lower_window_key"/>
<property name="&lt;Alt&gt;F12" type="string" value="above_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_8" type="string" value="move_window_workspace_8_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_9" type="string" value="move_window_workspace_9_key"/>
<property name="Right" type="string" value="right_key"/>
<property name="&lt;Alt&gt;F10" type="string" value="maximize_window_key"/>
<property name="&lt;Control&gt;&lt;Alt&gt;Up" type="string" value="up_workspace_key"/>
<property name="&lt;Control&gt;F10" type="string" value="workspace_10_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;KP_7" type="string" value="move_window_workspace_7_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;End" type="string" value="move_window_next_workspace_key"/>
<property name="&lt;Alt&gt;Delete" type="string" value="del_workspace_key"/>
<property name="&lt;Control&gt;&lt;Alt&gt;Left" type="string" value="left_workspace_key"/>
<property name="&lt;Control&gt;F12" type="string" value="workspace_12_key"/>
<property name="&lt;Alt&gt;space" type="string" value="popup_menu_key"/>
<property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="string" value="cycle_reverse_windows_key"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="string" value="raise_window_key"/>
<property name="&lt;Alt&gt;Insert" type="string" value="add_workspace_key"/>
<property name="&lt;Alt&gt;&lt;Control&gt;Home" type="string" value="move_window_prev_workspace_key"/>
<property name="&lt;Control&gt;F2" type="string" value="workspace_2_key"/>
<property name="&lt;Control&gt;F1" type="string" value="workspace_1_key"/>
<property name="&lt;Control&gt;F11" type="string" value="workspace_11_key"/>
<property name="override" type="bool" value="true"/>
</property>
</property>
<property name="providers" type="array">
<value type="string" value="commands"/>
<value type="string" value="xfwm4"/>
</property>
</channel>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xfce4-power-manager" version="1.0">
<property name="xfce4-power-manager" type="empty">
<property name="power-button-action" type="empty"/>
<property name="brightness-switch-restore-on-exit" type="int" value="-1"/>
<property name="brightness-switch" type="int" value="0"/>
<property name="show-tray-icon" type="int" value="1"/>
<property name="lid-action-on-battery" type="uint" value="1"/>
<property name="logind-handle-lid-switch" type="bool" value="false"/>
<property name="lid-action-on-ac" type="uint" value="0"/>
<property name="inactivity-sleep-mode-on-battery" type="uint" value="1"/>
<property name="sleep-button-action" type="uint" value="1"/>
<property name="hibernate-button-action" type="uint" value="1"/>
<property name="lock-screen-suspend-hibernate" type="bool" value="false"/>
<property name="critical-power-action" type="uint" value="4"/>
<property name="critical-power-level" type="uint" value="5"/>
</property>
</channel>

View file

@ -86,7 +86,6 @@ index e26e72e3315f..db130be87d47 100644
pinctrl-0 = <&i2s_8ch_0_sclktx
&i2s_8ch_0_sclkrx
diff --git a/sound/soc/rockchip/rockchip_i2s.c b/sound/soc/rockchip/rockchip_i2s.c
index 61c984f10d8e..e6125ebfe5a9 100644
--- a/sound/soc/rockchip/rockchip_i2s.c
+++ b/sound/soc/rockchip/rockchip_i2s.c
@@ -1,4 +1,3 @@
@ -315,17 +314,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
return 0;
}
@@ -419,9 +448,6 @@ static int rockchip_i2s_set_sysclk(struct snd_soc_dai *cpu_dai, int clk_id,
struct rk_i2s_dev *i2s = to_info(cpu_dai);
int ret;
- if (freq == 0)
- return 0;
-
ret = clk_set_rate(i2s->mclk, freq);
if (ret)
dev_err(i2s->dev, "Fail to set mclk %d\n", ret);
@@ -471,7 +497,6 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
@@ -471,7 +500,6 @@ static struct snd_soc_dai_driver rockchip_i2s_dai = {
SNDRV_PCM_FMTBIT_S32_LE),
},
.ops = &rockchip_i2s_dai_ops,
@ -333,7 +322,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
};
static const struct snd_soc_component_driver rockchip_i2s_component = {
@@ -567,9 +592,16 @@ static const struct rk_i2s_pins rk3399_i2s_pins = {
@@ -567,9 +595,16 @@ static const struct rk_i2s_pins rk3399_i2s_pins = {
};
static const struct of_device_id rockchip_i2s_match[] = {
@ -350,7 +339,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
{ .compatible = "rockchip,rk3399-i2s", .data = &rk3399_i2s_pins },
{},
};
@@ -586,8 +618,10 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
@@ -586,8 +621,10 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
int val;
i2s = devm_kzalloc(&pdev->dev, sizeof(*i2s), GFP_KERNEL);
@ -362,7 +351,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
i2s->dev = &pdev->dev;
@@ -600,6 +634,9 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
@@ -600,6 +637,9 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
i2s->pins = of_id->data;
}
@ -372,7 +361,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
/* try to prepare related clocks */
i2s->hclk = devm_clk_get(&pdev->dev, "i2s_hclk");
if (IS_ERR(i2s->hclk)) {
@@ -633,11 +670,11 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
@@ -633,11 +673,11 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
i2s->playback_dma_data.addr = res->start + I2S_TXDR;
i2s->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
@ -386,7 +375,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
dev_set_drvdata(&pdev->dev, i2s);
@@ -648,13 +685,12 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
@@ -648,13 +688,12 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
goto err_pm_disable;
}
@ -404,7 +393,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
if (!of_property_read_u32(node, "rockchip,playback-channels", &val)) {
if (val >= 2 && val <= 8)
soc_dai->playback.channels_max = val;
@@ -665,6 +701,24 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
@@ -665,6 +704,24 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
soc_dai->capture.channels_max = val;
}
@ -429,7 +418,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
ret = devm_snd_soc_register_component(&pdev->dev,
&rockchip_i2s_component,
soc_dai, 1);
@@ -674,10 +728,12 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
@@ -674,10 +731,12 @@ static int rockchip_i2s_probe(struct platform_device *pdev)
goto err_suspend;
}
@ -444,7 +433,7 @@ index 61c984f10d8e..e6125ebfe5a9 100644
}
return 0;
@@ -699,14 +755,41 @@ static int rockchip_i2s_remove(struct platform_device *pdev)
@@ -699,14 +758,41 @@ static int rockchip_i2s_remove(struct platform_device *pdev)
if (!pm_runtime_status_suspended(&pdev->dev))
i2s_runtime_suspend(&pdev->dev);
@ -487,7 +476,6 @@ index 61c984f10d8e..e6125ebfe5a9 100644
static struct platform_driver rockchip_i2s_driver = {
diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c
index 39c1b98f9593..499b991c3c1a 100644
--- a/sound/soc/rockchip/rockchip_i2s_tdm.c
+++ b/sound/soc/rockchip/rockchip_i2s_tdm.c
@@ -15,9 +15,13 @@
@ -1862,7 +1850,6 @@ index 39c1b98f9593..499b991c3c1a 100644
if (ret) {
dev_err(&pdev->dev, "Could not register PCM\n");
diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.h b/sound/soc/rockchip/rockchip_i2s_tdm.h
index 1a28523cfd82..3a69fa276f8f 100644
--- a/sound/soc/rockchip/rockchip_i2s_tdm.h
+++ b/sound/soc/rockchip/rockchip_i2s_tdm.h
@@ -18,6 +18,9 @@