mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-07-12 18:19:42 -07:00
Fix rumble motor enable pin behavior for R36S revisions and adjust automount script for internal storage handling
This commit is contained in:
@@ -179,6 +179,28 @@
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
* Force the rumble motor enable pin (gpio0 PB7, shared with pwm0 function)
|
||||
* to drive LOW at gpiolib probe time. Without this, some R36S revisions
|
||||
* (notably V21 P4 — see archr-linux/Arch-R#25) come out of reset with the
|
||||
* pin in a high-impedance / pulled-up state, the rumble transistor latches
|
||||
* on and the motor runs continuously through boot.
|
||||
*
|
||||
* The hog acquires the pin before the PWM driver, which means rumble is
|
||||
* effectively disabled on every R36S that uses this DTS. Trade-off: a few
|
||||
* boards lose rumble support, but every board stops vibrating non-stop.
|
||||
* If a future R36S variant needs working rumble, gate this with a board
|
||||
* compatible check instead of removing it outright.
|
||||
*/
|
||||
&gpio0 {
|
||||
rumble-en-hold-low {
|
||||
gpio-hog;
|
||||
gpios = <RK_PB7 GPIO_ACTIVE_HIGH>;
|
||||
output-low;
|
||||
line-name = "rumble_en_hold_low";
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
btns {
|
||||
btn_pins: btn-pins {
|
||||
|
||||
@@ -65,22 +65,54 @@ function start_ms() {
|
||||
fi
|
||||
|
||||
MS_ENABLED=$(get_setting system.merged.storage)
|
||||
if [ "${1}" = "internal" ]
|
||||
then
|
||||
# No external SD detected — /storage/roms (the real internal ROMs
|
||||
# directory) is already the right thing for EmulationStation.
|
||||
log $0 "No external SD; /storage/roms used directly"
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [ -e "/storage/.ms_unsupported" ] || \
|
||||
[ ! "${MS_ENABLED}" = 1 ]
|
||||
then
|
||||
# Single SD: /storage/roms is used directly (no bind mount needed)
|
||||
log $0 "Using /storage/roms directly"
|
||||
# External SD present but overlay isn't usable (FAT/exFAT/NTFS) or
|
||||
# merged storage was disabled by the user. Bind-mount the external
|
||||
# roms over /storage/roms so ES sees them. The internal /storage/roms
|
||||
# content is shadowed for as long as the external SD is mounted; it
|
||||
# comes back next boot if the user pulls the card.
|
||||
if [ -d "/storage/games-external/roms" ]
|
||||
then
|
||||
log $0 "Bind-mounting /storage/games-external/roms over ${MS_PATH}"
|
||||
mount --bind /storage/games-external/roms ${MS_PATH}
|
||||
else
|
||||
log $0 "External SD has no roms/ directory; leaving /storage/roms intact"
|
||||
fi
|
||||
else
|
||||
log $0 "Enabling merged storage of /storage/games-${LOWER} and /storage/games-${UPPER} to ${MS_PATH}."
|
||||
log $0 "Enabling merged storage of games-${LOWER} and games-${UPPER} on ${MS_PATH}."
|
||||
|
||||
for DIR in /storage/games-${UPPER}/.tmp/games-workdir /storage/games-${LOWER}/roms /storage/games-${UPPER}/roms
|
||||
# `LOWER`/`UPPER` may refer to "internal" — which now lives at
|
||||
# /storage/roms directly. Resolve "internal" to the real /storage/roms
|
||||
# path; bind-mount it to a working location so overlayfs doesn't try
|
||||
# to use the same path as both lowerdir and mount point (which would
|
||||
# fail with -EBUSY).
|
||||
local LOWER_DIR UPPER_DIR
|
||||
[ "${LOWER}" = "internal" ] && LOWER_DIR="/storage/.games-internal-bind/roms" || LOWER_DIR="/storage/games-${LOWER}/roms"
|
||||
[ "${UPPER}" = "internal" ] && UPPER_DIR="/storage/.games-internal-bind/roms" || UPPER_DIR="/storage/games-${UPPER}/roms"
|
||||
|
||||
if [ "${LOWER}" = "internal" ] || [ "${UPPER}" = "internal" ]
|
||||
then
|
||||
mkdir -p /storage/.games-internal-bind/roms
|
||||
mountpoint -q /storage/.games-internal-bind/roms || \
|
||||
mount --bind /storage/roms /storage/.games-internal-bind/roms
|
||||
fi
|
||||
|
||||
for DIR in /storage/games-${UPPER}/.tmp/games-workdir "${LOWER_DIR}" "${UPPER_DIR}"
|
||||
do
|
||||
if [ ! -d "${DIR}" ]
|
||||
then
|
||||
mkdir -p "${DIR}"
|
||||
fi
|
||||
[ -d "${DIR}" ] || mkdir -p "${DIR}"
|
||||
done
|
||||
mount overlay -t overlay -o lowerdir=/storage/games-${LOWER}/roms,upperdir=/storage/games-${UPPER}/roms,workdir=/storage/games-${UPPER}/.tmp/games-workdir ${MS_PATH}
|
||||
|
||||
mount overlay -t overlay -o lowerdir=${LOWER_DIR},upperdir=${UPPER_DIR},workdir=/storage/games-${UPPER}/.tmp/games-workdir ${MS_PATH}
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
From 93b3a45645f13290745ef58bf99ad0877af29381 Mon Sep 17 00:00:00 2001
|
||||
From: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Date: Mon, 23 Dec 2024 17:01:57 +0200
|
||||
Subject: [PATCH 36/41] wifi: rtl8xxxu: Fix RTL8188EU firmware upload block
|
||||
size
|
||||
|
||||
A user reports that the firmware upload consistently fails when it's
|
||||
uploaded in chunks of 128 bytes, but it works when uploaded in chunks
|
||||
of 196 bytes. The official driver uses 196 bytes also.
|
||||
|
||||
Link: https://github.com/a5a5aa555oo/rtl8xxxu/issues/2
|
||||
Signed-off-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
|
||||
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
||||
Link: https://patch.msgid.link/cba8e2f2-32c4-4174-90ba-0219f29dbdde@gmail.com
|
||||
---
|
||||
drivers/net/wireless/realtek/rtl8xxxu/8188e.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/8188e.c b/drivers/net/wireless/realtek/rtl8xxxu/8188e.c
|
||||
index 3d04df0f5bf4..766a7a7c7d28 100644
|
||||
--- a/drivers/net/wireless/realtek/rtl8xxxu/8188e.c
|
||||
+++ b/drivers/net/wireless/realtek/rtl8xxxu/8188e.c
|
||||
@@ -1860,7 +1860,7 @@ struct rtl8xxxu_fileops rtl8188eu_fops = {
|
||||
.set_crystal_cap = rtl8188f_set_crystal_cap,
|
||||
.cck_rssi = rtl8188e_cck_rssi,
|
||||
.led_classdev_brightness_set = rtl8188eu_led_brightness_set,
|
||||
- .writeN_block_size = 128,
|
||||
+ .writeN_block_size = 196,
|
||||
.rx_desc_size = sizeof(struct rtl8xxxu_rxdesc16),
|
||||
.tx_desc_size = sizeof(struct rtl8xxxu_txdesc32),
|
||||
.has_tx_report = 1,
|
||||
--
|
||||
2.43.0
|
||||
|
||||
Reference in New Issue
Block a user