Initial porting effort to Xiaomi Redmi 1S (armani) (#1204)
The device is Xiaomi Redmi 1S, based on MSM8296 platform, with Qualcomm Snapdragon 400. The kernel is from lineageOS (3.4.0). Some additional patches are needed for successful compilation. The screen dimension is 720x1280. The touchscreen device name is ft5x06_i2c. Use this name for udev instead of hardcoded device path. Also add a workaround for red screen weston by setting weston_pixman to 2 The screen doesn't refresh. Enabling msm-fb-refresher as suggested. Add udev rule to indicate whether the device is in charging state. Green led indicates that the device is charging, whereas red light indicates that the device is discharging. For prima wlan module to work, an initialization procedure is needed ( echo 1 > /dev/wcnss_wlan ), before loading the prima wlan module (wlan.ko). Also build the prima wlan as module. Xiaomi Redmi 1S is using pronto wlan module, which needs some firmware to run. Add the required wifi firmware to enable the wifi interface. Add an openrc service to load wlan module after wcnss_service is initialized.
This commit is contained in:
parent
c818f9f054
commit
12487a1efa
20 changed files with 5131 additions and 0 deletions
5
device/device-xiaomi-armani/100-charging.rules
Normal file
5
device/device-xiaomi-armani/100-charging.rules
Normal file
|
@ -0,0 +1,5 @@
|
|||
SUBSYSTEM=="power_supply", ATTRS{type}=="Battery", ATTRS{status}=="Charging", \
|
||||
RUN+="/usr/bin/armani_battery_charging.sh"
|
||||
SUBSYSTEM=="power_supply", ATTRS{type}=="Battery", ATTRS{status}=="Discharging", \
|
||||
RUN+="/usr/bin/armani_battery_discharging.sh"
|
||||
|
3
device/device-xiaomi-armani/90-touchscreen.rules
Normal file
3
device/device-xiaomi-armani/90-touchscreen.rules
Normal file
|
@ -0,0 +1,3 @@
|
|||
SUBSYSTEM=="input", ATTRS{name}=="ft5x06_i2c", \
|
||||
ENV{ID_INPUT}="1", ENV{ID_INPUT_TOUCHSCREEN}="1"
|
||||
|
42
device/device-xiaomi-armani/APKBUILD
Normal file
42
device/device-xiaomi-armani/APKBUILD
Normal file
|
@ -0,0 +1,42 @@
|
|||
# Reference: <https://postmarketos.org/devicepkg>
|
||||
pkgname="device-xiaomi-armani"
|
||||
pkgdesc="Redmi 1S"
|
||||
pkgver=0.1
|
||||
pkgrel=0
|
||||
url="https://postmarketos.org"
|
||||
license="MIT"
|
||||
arch="noarch"
|
||||
options="!check"
|
||||
depends="linux-xiaomi-armani mkbootimg mesa-dri-swrast msm-fb-refresher firmware-xiaomi-armani"
|
||||
makedepends="devicepkg-dev"
|
||||
install="$pkgname.post-install $pkgname.pre-deinstall"
|
||||
source="deviceinfo
|
||||
90-touchscreen.rules
|
||||
100-charging.rules
|
||||
armani_battery_charging.sh
|
||||
armani_battery_discharging.sh
|
||||
wlanarmani
|
||||
device-xiaomi-armani.post-install
|
||||
device-xiaomi-armani.pre-deinstall"
|
||||
|
||||
build() {
|
||||
devicepkg_build $startdir $pkgname
|
||||
}
|
||||
|
||||
package() {
|
||||
devicepkg_package $startdir $pkgname
|
||||
install -Dm644 "$srcdir"/90-touchscreen.rules "$pkgdir"/etc/udev/rules.d/90-touchscreen.rules
|
||||
install -Dm644 "$srcdir"/100-charging.rules "$pkgdir"/etc/udev/rules.d/100-charging.rules
|
||||
install -Dm744 "$srcdir"/armani_battery_charging.sh "$pkgdir"/usr/bin/armani_battery_charging.sh
|
||||
install -Dm744 "$srcdir"/armani_battery_discharging.sh "$pkgdir"/usr/bin/armani_battery_discharging.sh
|
||||
install -Dm755 "$srcdir"/wlanarmani "$pkgdir"/etc/init.d/wlanarmani
|
||||
}
|
||||
|
||||
sha512sums="8fdac59e87ee33d9c7981b46e6236877cd04536572aa14bb67af141dcf25b05656ffadea52fd402681f477c4eaf62ca8f118cbebd0612b63695aa741ac9bcfb9 deviceinfo
|
||||
abf694ebe949025268630457ad14ae69f6a33c151236c1a193da32c27f836591e932517f011f6eb7ce750ab74d2f1e9a70724fed7150210d4da1b80a6e86a801 90-touchscreen.rules
|
||||
862f9a8d81af74c0a1c99c6255d4ec9d4bdd7828636ee29fbaf4b3ceef53f236fd2b2078e3150baf0f1d78a3da87d7b3a5b975fef33014238eb7658428642571 100-charging.rules
|
||||
cf82b3bf37c4975668d7bb6f0e573fa5b44ed596d80a7ac2cdfa78dd619b7dc58c085fe1a0703953a143a46a4d917abf94f658e268578fe1c40664fa639959d3 armani_battery_charging.sh
|
||||
c2ae3887712a209a8c8dc60ee87ff1ec8944246cc1a69d1f6f9f2725434e05b6c8388c0b3756423d5cec6a6e0ffc7272c30ccc20b77f0dac0813bb25476d4997 armani_battery_discharging.sh
|
||||
22339e8b1c854e740034fe305d8447a88f7be98f8f2ef86b7e9ea6e373a30643993d95865c820df6c3598605d3390eb93a859c7a423f04de54a3b06a69adcb55 wlanarmani
|
||||
e769b2a631cf2e6c57da9fa904920c67c04a7ec754616eb2895c9c585155fb1312f870243a260320dc2fba31f64f20fc45ecefffb0d6055c1694d158b1dacf14 device-xiaomi-armani.post-install
|
||||
c1538df8252940e3f6d9d970adb452b5d3ddb368784c4a2f37b51386753ff91fdd13564a722013a2a4302b011ae142726ef1d4f72c8174d449fd943d2be20813 device-xiaomi-armani.pre-deinstall"
|
4
device/device-xiaomi-armani/armani_battery_charging.sh
Normal file
4
device/device-xiaomi-armani/armani_battery_charging.sh
Normal file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
logger "Battery is in charging state"
|
||||
echo 0 > /sys/class/leds/red/brightness
|
||||
echo 100 > /sys/class/leds/green/brightness
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
logger "Disconnected from charger"
|
||||
echo 0 > /sys/class/leds/green/brightness
|
||||
echo 100 > /sys/class/leds/red/brightness
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
# Enable openrc service to load wlan module for wifi functionality
|
||||
rc-update add wlanarmani
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
# Removing wlan module loading
|
||||
rc-update del wlanarmani
|
36
device/device-xiaomi-armani/deviceinfo
Normal file
36
device/device-xiaomi-armani/deviceinfo
Normal file
|
@ -0,0 +1,36 @@
|
|||
# Reference: <https://postmarketos.org/deviceinfo>
|
||||
# Please use double quotes only. You can source this file in shell scripts.
|
||||
|
||||
deviceinfo_format_version="0"
|
||||
deviceinfo_name="Redmi 1S"
|
||||
deviceinfo_manufacturer="Xiaomi"
|
||||
deviceinfo_date="20140501"
|
||||
deviceinfo_dtb=""
|
||||
deviceinfo_modules_initfs=""
|
||||
deviceinfo_external_disk_install="false"
|
||||
deviceinfo_arch="armhf"
|
||||
|
||||
# Device related
|
||||
deviceinfo_keyboard="false"
|
||||
deviceinfo_external_disk="true"
|
||||
deviceinfo_screen_width="720"
|
||||
deviceinfo_screen_height="1280"
|
||||
deviceinfo_dev_touchscreen=""
|
||||
deviceinfo_dev_touchscreen_calibration=""
|
||||
deviceinfo_dev_keyboard=""
|
||||
deviceinfo_msm_refresher="true"
|
||||
|
||||
# Bootloader related
|
||||
deviceinfo_flash_method="fastboot"
|
||||
deviceinfo_kernel_cmdline="console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.bootdevice=msm_sdcc.1 androidboot.hardware=armani"
|
||||
deviceinfo_generate_bootimg="true"
|
||||
deviceinfo_bootimg_qcdt="true"
|
||||
deviceinfo_flash_offset_base="0x10000000"
|
||||
deviceinfo_flash_offset_kernel="0x00008000"
|
||||
deviceinfo_flash_offset_ramdisk="0x01000000"
|
||||
deviceinfo_flash_offset_second="0x00f00000"
|
||||
deviceinfo_flash_offset_tags="0x00000100"
|
||||
deviceinfo_flash_pagesize="2048"
|
||||
|
||||
# Weston red screen workaround (see issue #54)
|
||||
deviceinfo_weston_pixman_type="2"
|
22
device/device-xiaomi-armani/wlanarmani
Normal file
22
device/device-xiaomi-armani/wlanarmani
Normal file
|
@ -0,0 +1,22 @@
|
|||
#!/sbin/openrc-run
|
||||
|
||||
description="Loading wlan module"
|
||||
|
||||
depend()
|
||||
{
|
||||
need wcnss-wlan
|
||||
before wpa_supplicant
|
||||
}
|
||||
|
||||
start()
|
||||
{
|
||||
ebegin "Loading wlan module"
|
||||
modprobe wlan || return 1
|
||||
}
|
||||
|
||||
stop()
|
||||
{
|
||||
ebegin "Unloading wlan module"
|
||||
rmmod wlan || return 1
|
||||
}
|
||||
|
49
device/linux-xiaomi-armani/00_fix_return_address.patch
Normal file
49
device/linux-xiaomi-armani/00_fix_return_address.patch
Normal file
|
@ -0,0 +1,49 @@
|
|||
From aeea3592a13bf12861943e44fc48f1f270941f8d Mon Sep 17 00:00:00 2001
|
||||
From: Behan Webster <behanw@converseincode.com>
|
||||
Date: Wed, 24 Sep 2014 01:06:46 +0100
|
||||
Subject: [PATCH] ARM: 8158/1: LLVMLinux: use static inline in ARM ftrace.h
|
||||
|
||||
With compilers which follow the C99 standard (like modern versions of gcc and
|
||||
clang), "extern inline" does the wrong thing (emits code for an externally
|
||||
linkable version of the inline function). In this case using static inline
|
||||
and removing the NULL version of return_address in return_address.c does
|
||||
the right thing.
|
||||
|
||||
Signed-off-by: Behan Webster <behanw@converseincode.com>
|
||||
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
|
||||
Acked-by: Steven Rostedt <rostedt@goodmis.org>
|
||||
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
|
||||
---
|
||||
arch/arm/include/asm/ftrace.h | 2 +-
|
||||
arch/arm/kernel/return_address.c | 5 -----
|
||||
2 files changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/include/asm/ftrace.h b/arch/arm/include/asm/ftrace.h
|
||||
index 39eb16b0066f2..bfe2a2f5a644e 100644
|
||||
--- a/arch/arm/include/asm/ftrace.h
|
||||
+++ b/arch/arm/include/asm/ftrace.h
|
||||
@@ -45,7 +45,7 @@ void *return_address(unsigned int);
|
||||
|
||||
#else
|
||||
|
||||
-extern inline void *return_address(unsigned int level)
|
||||
+static inline void *return_address(unsigned int level)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
diff --git a/arch/arm/kernel/return_address.c b/arch/arm/kernel/return_address.c
|
||||
index fafedd86885dd..f6aa84d5b93c9 100644
|
||||
--- a/arch/arm/kernel/return_address.c
|
||||
+++ b/arch/arm/kernel/return_address.c
|
||||
@@ -63,11 +63,6 @@ void *return_address(unsigned int level)
|
||||
#warning "TODO: return_address should use unwind tables"
|
||||
#endif
|
||||
|
||||
-void *return_address(unsigned int level)
|
||||
-{
|
||||
- return NULL;
|
||||
-}
|
||||
-
|
||||
#endif /* if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) / else */
|
||||
|
||||
EXPORT_SYMBOL_GPL(return_address);
|
|
@ -0,0 +1,34 @@
|
|||
From e41494c15d4df342854ac3d2940f5d6ac3158212 Mon Sep 17 00:00:00 2001
|
||||
From: Bryan Huntsman <bryanh@codeaurora.org>
|
||||
Date: Mon, 3 Jun 2013 18:48:08 -0700
|
||||
Subject: [PATCH] msm: fix in-tree compilation for perf_trace_counters
|
||||
|
||||
In-tree compilation for arch/arm/mach-msm/perf_trace_counters.c was
|
||||
hitting this error:
|
||||
|
||||
In file included from arch/arm/mach-msm/perf_trace_counters.h:127:0,
|
||||
from arch/arm/mach-msm/perf_trace_counters.c:14:
|
||||
include/trace/define_trace.h:79:43: fatal error: ./perf_trace_counters.h: No such file or directory
|
||||
|
||||
Instructions for TRACE_INCLUDE_FILE in include/trace/define_trace.h say
|
||||
"the path is relative to define_trace.h, not the file including it".
|
||||
Fix in-tree compilation by making the path relative to define_trace.h.
|
||||
|
||||
Signed-off-by: Bryan Huntsman <bryanh@codeaurora.org>
|
||||
---
|
||||
arch/arm/mach-msm/perf_trace_counters.h | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm/mach-msm/perf_trace_counters.h b/arch/arm/mach-msm/perf_trace_counters.h
|
||||
index ce7e336aa40d..8f77badf42ac 100644
|
||||
--- a/arch/arm/mach-msm/perf_trace_counters.h
|
||||
+++ b/arch/arm/mach-msm/perf_trace_counters.h
|
||||
@@ -121,7 +121,6 @@ TRACE_EVENT(sched_switch_with_ctrs,
|
||||
|
||||
#endif
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
-#define TRACE_INCLUDE_PATH .
|
||||
+#define TRACE_INCLUDE_PATH ../../arch/arm/mach-msm
|
||||
#define TRACE_INCLUDE_FILE perf_trace_counters
|
||||
#include <trace/define_trace.h>
|
||||
-
|
11
device/linux-xiaomi-armani/01_smd_private.patch
Normal file
11
device/linux-xiaomi-armani/01_smd_private.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- a/arch/arm/mach-msm/smd_init_dt.c
|
||||
+++ b/arch/arm/mach-msm/smd_init_dt.c
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <linux/io.h>
|
||||
|
||||
#include <mach/msm_ipc_logging.h>
|
||||
-#include <smd_private.h>
|
||||
+#include "smd_private.h"
|
||||
|
||||
#define MODULE_NAME "msm_smd"
|
||||
#define IPC_LOG(level, x...) do { \
|
33
device/linux-xiaomi-armani/02_gpu-msm-fix-gcc5-compile.patch
Normal file
33
device/linux-xiaomi-armani/02_gpu-msm-fix-gcc5-compile.patch
Normal file
|
@ -0,0 +1,33 @@
|
|||
source:
|
||||
https://github.com/ShinySide/HispAsian_Lollipop_G6/commit/b7756b6fc4bb728722b14d2dfdbaf1dc843812e9
|
||||
|
||||
* These need to be static to avoid these errors:
|
||||
|
||||
drivers/built-in.o: In function `.LANCHOR1':
|
||||
msm_iommu_sec.c:(.data+0x9298): undefined reference to `kgsl_iommu_sync_lock'
|
||||
msm_iommu_sec.c:(.data+0x929c): undefined reference to `kgsl_iommu_sync_unlock'
|
||||
Makefile:877: recipe for target '.tmp_vmlinux1' failed
|
||||
make: *** [.tmp_vmlinux1] Error 1
|
||||
|
||||
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
|
||||
|
||||
--- a/drivers/gpu/msm/kgsl_iommu.c
|
||||
+++ b/drivers/gpu/msm/kgsl_iommu.c
|
||||
@@ -1010,7 +1010,7 @@ static int kgsl_iommu_init_sync_lock(struct kgsl_mmu *mmu)
|
||||
*
|
||||
* Return - int - number of commands.
|
||||
*/
|
||||
-inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu,
|
||||
+static inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu,
|
||||
unsigned int *cmds)
|
||||
{
|
||||
struct kgsl_device *device = mmu->device;
|
||||
@@ -1080,7 +1080,7 @@ inline unsigned int kgsl_iommu_sync_lock(struct kgsl_mmu *mmu,
|
||||
*
|
||||
* Return - int - number of commands.
|
||||
*/
|
||||
-inline unsigned int kgsl_iommu_sync_unlock(struct kgsl_mmu *mmu,
|
||||
+static inline unsigned int kgsl_iommu_sync_unlock(struct kgsl_mmu *mmu,
|
||||
unsigned int *cmds)
|
||||
{
|
||||
struct kgsl_device *device = mmu->device;
|
11
device/linux-xiaomi-armani/03_qdsp6v2.patch
Normal file
11
device/linux-xiaomi-armani/03_qdsp6v2.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- a/sound/soc/msm/msm8226.c
|
||||
+++ b/sound/soc/msm/msm8226.c
|
||||
@@ -29,7 +29,7 @@
|
||||
#include <mach/subsystem_notif.h>
|
||||
#include <sound/q6core.h>
|
||||
|
||||
-#include <qdsp6v2/msm-pcm-routing-v2.h>
|
||||
+#include "qdsp6v2/msm-pcm-routing-v2.h"
|
||||
#include "../codecs/wcd9xxx-common.h"
|
||||
#include "../codecs/wcd9306.h"
|
||||
|
1026
device/linux-xiaomi-armani/04_mdss_mdp_trace.patch
Normal file
1026
device/linux-xiaomi-armani/04_mdss_mdp_trace.patch
Normal file
File diff suppressed because it is too large
Load diff
11
device/linux-xiaomi-armani/05_q6voice.patch
Normal file
11
device/linux-xiaomi-armani/05_q6voice.patch
Normal file
|
@ -0,0 +1,11 @@
|
|||
--- a/sound/soc/msm/qdsp6v2/rtac.c
|
||||
+++ b/sound/soc/msm/qdsp6v2/rtac.c
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <sound/q6afe-v2.h>
|
||||
#include <sound/q6audio-v2.h>
|
||||
#include <sound/apr_audio-v2.h>
|
||||
-#include <q6voice.h>
|
||||
+#include "q6voice.h"
|
||||
#include "audio_acdb.h"
|
||||
|
||||
|
109
device/linux-xiaomi-armani/APKBUILD
Normal file
109
device/linux-xiaomi-armani/APKBUILD
Normal file
|
@ -0,0 +1,109 @@
|
|||
# Kernel config based on: arch/arm/configs/lineageos_armani_defconfig
|
||||
|
||||
pkgname="linux-xiaomi-armani"
|
||||
pkgver=3.4.0
|
||||
pkgrel=0
|
||||
pkgdesc="Redmi 1S kernel fork"
|
||||
arch="armhf"
|
||||
_carch="arm"
|
||||
_flavor="xiaomi-armani"
|
||||
url="https://kernel.org"
|
||||
license="GPL2"
|
||||
options="!strip !check !tracedeps"
|
||||
makedepends="perl sed installkernel bash gmp-dev bc linux-headers elfutils-dev dtbtool"
|
||||
HOSTCC="${CC:-gcc}"
|
||||
HOSTCC="${HOSTCC#${CROSS_COMPILE}}"
|
||||
|
||||
# Source
|
||||
_repository="android_kernel_xiaomi_armani"
|
||||
_commit="0d17d5761449b14f31d00044e95753f3a6ad23b2"
|
||||
_config="config-${_flavor}.${arch}"
|
||||
source="
|
||||
$pkgname-$_commit.tar.gz::https://github.com/LineageOS/${_repository}/archive/${_commit}.tar.gz
|
||||
$_config
|
||||
compiler-gcc6.h
|
||||
00_fix_return_address.patch
|
||||
01_smd_private.patch
|
||||
02_gpu-msm-fix-gcc5-compile.patch
|
||||
03_qdsp6v2.patch
|
||||
04_mdss_mdp_trace.patch
|
||||
05_q6voice.patch
|
||||
"
|
||||
builddir="$srcdir/${_repository}-${_commit}"
|
||||
|
||||
prepare() {
|
||||
default_prepare
|
||||
|
||||
# gcc6 support
|
||||
cp -v "$srcdir/compiler-gcc6.h" "$builddir/include/linux/"
|
||||
|
||||
# Remove -Werror from all makefiles
|
||||
local i
|
||||
local makefiles="$(find . -type f -name Makefile)
|
||||
$(find . -type f -name Kbuild)"
|
||||
for i in $makefiles; do
|
||||
sed -i 's/-Werror-/-W/g' "$i"
|
||||
sed -i 's/-Werror//g' "$i"
|
||||
done
|
||||
|
||||
# Prepare kernel config ('yes ""' for kernels lacking olddefconfig)
|
||||
cp "$srcdir"/$_config "$builddir"/.config
|
||||
yes "" | make ARCH="$_carch" HOSTCC="$HOSTCC" oldconfig
|
||||
}
|
||||
|
||||
menuconfig() {
|
||||
cd "$builddir"
|
||||
make ARCH="$_carch" menuconfig
|
||||
cp .config "$startdir"/$_config
|
||||
}
|
||||
|
||||
build() {
|
||||
unset LDFLAGS
|
||||
make ARCH="$_carch" CC="${CC:-gcc}" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
|
||||
|
||||
# Generate master DTB (deviceinfo_bootimg_qcdt)
|
||||
dtbTool -s 2048 -p "scripts/dtc/" -o "arch/arm/boot/dt.img" "arch/arm/boot/"
|
||||
}
|
||||
|
||||
package() {
|
||||
# kernel.release
|
||||
install -D "$builddir/include/config/kernel.release" \
|
||||
"$pkgdir/usr/share/kernel/$_flavor/kernel.release"
|
||||
|
||||
# zImage (find the right one)
|
||||
cd "$builddir/arch/$_carch/boot"
|
||||
_target="$pkgdir/boot/vmlinuz-$_flavor"
|
||||
for _zimg in zImage-dtb Image.gz-dtb *zImage Image; do
|
||||
[ -e "$_zimg" ] || continue
|
||||
msg "zImage found: $_zimg"
|
||||
install -Dm644 "$_zimg" "$_target"
|
||||
break
|
||||
done
|
||||
if ! [ -e "$_target" ]; then
|
||||
error "Could not find zImage in $PWD!"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Master DTB (deviceinfo_bootimg_qcdt)
|
||||
install -Dm644 "$builddir/arch/arm/boot/dt.img" \
|
||||
"$pkgdir/boot/dt.img"
|
||||
|
||||
# External modules install
|
||||
cd "$builddir"
|
||||
make ARCH="$_carch" CC="${CC:-gcc}" \
|
||||
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" \
|
||||
INSTALL_MOD_PATH="$pkgdir" modules_install \
|
||||
|| return 1
|
||||
|
||||
}
|
||||
|
||||
sha512sums="360bf588a670cb7cd67b431c0f7cddb622d0364b3c5a0f0b9b6dd63d8b5dd7d365d6e075a1ce0652d13ce6a9d26cfb85d7b68eeb506d8e8e22aa667f57cdf0b2 linux-xiaomi-armani-0d17d5761449b14f31d00044e95753f3a6ad23b2.tar.gz
|
||||
c6da707045e0e395bb52dff7016ffe1086008332e04729e6e76f23f482e6326fad5761674a1af0cc0738a09ff38bf98a729469ca1bff9d6635773e3eeff92619 config-xiaomi-armani.armhf
|
||||
d80980e9474c82ba0ef1a6903b434d8bd1b092c40367ba543e72d2c119301c8b2d05265740e4104ca1ac5d15f6c4aa49e8776cb44264a9a28dc551e0d1850dcc compiler-gcc6.h
|
||||
ea1d3b5a234fa565e3c1a792de48f4fc4e6023d281d303c8e319c7ef28edc5739ab0e4dea0139a41f0a5c7d03e27921ccaa214fd0ac5c72245a094ce60128864 00_fix_return_address.patch
|
||||
39892cc41e484c51dccc29cadea475aaf99772bafb19231086b614b9eaee520843cd9361c89a6780229961e0ebf4bbf0e115d0e30f8302944b78091fcf7900e7 01_smd_private.patch
|
||||
7be03a9e78b7ac330a54b1f00509caa0621a95c0c55901878ad757f9dd69cc05ba2c8b5ea987063ae1224f92c4d090d515fa5d369e7755181a4871b0d0f82881 02_gpu-msm-fix-gcc5-compile.patch
|
||||
1465b7f08dd4d7956c6651da3767648db085f4af8014fd3b24547626ba608734a0c6d8e86ffe086d81817c29f0d8e284e21a3ba50f51cd94ab42935bc124ad30 03_qdsp6v2.patch
|
||||
8dd3c227af5c379eedecdabe64a481de3e8241431b5d3d3984ffad65ee74706860115eb1b797afe05f6c360f6696bcb7165fa7d634a4a7a147d98f45cbb5246d 04_mdss_mdp_trace.patch
|
||||
4e7484eaa142e013c9aee12053d91a65983f7629d2b923566d4431143fa0529988dbc28b01dee21336995090ce8127b2ba79208bf61df359632bfeebae9c6618 05_q6voice.patch"
|
69
device/linux-xiaomi-armani/compiler-gcc6.h
Normal file
69
device/linux-xiaomi-armani/compiler-gcc6.h
Normal file
|
@ -0,0 +1,69 @@
|
|||
// SOURCE:
|
||||
// https://github.com/NextThingCo/CHIP-u-boot/issues/10#issuecomment-287515505
|
||||
|
||||
#ifndef __LINUX_COMPILER_H
|
||||
#error "Please don't include <linux/compiler-gcc6.h> directly, include <linux/compiler.h> instead."
|
||||
#endif
|
||||
|
||||
#define __used __attribute__((__used__))
|
||||
#define __must_check __attribute__((warn_unused_result))
|
||||
#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
|
||||
|
||||
/* Mark functions as cold. gcc will assume any path leading to a call
|
||||
to them will be unlikely. This means a lot of manual unlikely()s
|
||||
are unnecessary now for any paths leading to the usual suspects
|
||||
like BUG(), printk(), panic() etc. [but let's keep them for now for
|
||||
older compilers]
|
||||
|
||||
Early snapshots of gcc 4.3 don't support this and we can't detect this
|
||||
in the preprocessor, but we can live with this because they're unreleased.
|
||||
Maketime probing would be overkill here.
|
||||
|
||||
gcc also has a __attribute__((__hot__)) to move hot functions into
|
||||
a special section, but I don't see any sense in this right now in
|
||||
the kernel context */
|
||||
#define __cold __attribute__((__cold__))
|
||||
|
||||
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
||||
|
||||
#ifndef __CHECKER__
|
||||
# define __compiletime_warning(message) __attribute__((warning(message)))
|
||||
# define __compiletime_error(message) __attribute__((error(message)))
|
||||
#endif /* __CHECKER__ */
|
||||
|
||||
/*
|
||||
* Mark a position in code as unreachable. This can be used to
|
||||
* suppress control flow warnings after asm blocks that transfer
|
||||
* control elsewhere.
|
||||
*
|
||||
* Early snapshots of gcc 4.5 don't support this and we can't detect
|
||||
* this in the preprocessor, but we can live with this because they're
|
||||
* unreleased. Really, we need to have autoconf for the kernel.
|
||||
*/
|
||||
#define unreachable() __builtin_unreachable()
|
||||
|
||||
/* Mark a function definition as prohibited from being cloned. */
|
||||
#define __noclone __attribute__((__noclone__))
|
||||
|
||||
/*
|
||||
* Tell the optimizer that something else uses this function or variable.
|
||||
*/
|
||||
#define __visible __attribute__((externally_visible))
|
||||
|
||||
/*
|
||||
* GCC 'asm goto' miscompiles certain code sequences:
|
||||
*
|
||||
* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670
|
||||
*
|
||||
* Work it around via a compiler barrier quirk suggested by Jakub Jelinek.
|
||||
*
|
||||
* (asm goto is automatically volatile - the naming reflects this.)
|
||||
*/
|
||||
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
|
||||
|
||||
#ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP
|
||||
#define __HAVE_BUILTIN_BSWAP32__
|
||||
#define __HAVE_BUILTIN_BSWAP64__
|
||||
#define __HAVE_BUILTIN_BSWAP16__
|
||||
#endif /* CONFIG_ARCH_USE_BUILTIN_BSWAP */
|
||||
|
3602
device/linux-xiaomi-armani/config-xiaomi-armani.armhf
Normal file
3602
device/linux-xiaomi-armani/config-xiaomi-armani.armhf
Normal file
File diff suppressed because it is too large
Load diff
54
firmware/firmware-xiaomi-armani/APKBUILD
Normal file
54
firmware/firmware-xiaomi-armani/APKBUILD
Normal file
|
@ -0,0 +1,54 @@
|
|||
pkgname=firmware-xiaomi-armani
|
||||
pkgver=1
|
||||
pkgrel=1
|
||||
pkgdesc="Firmware files for Xiaomi Redmi 1S"
|
||||
url="https://github.com/TheMuppets/proprietary_vendor_xiaomi"
|
||||
arch="noarch"
|
||||
license="proprietary"
|
||||
depends="wcnss-wlan"
|
||||
options="!strip !check !archcheck"
|
||||
|
||||
# Source
|
||||
_files="wcnss.b00 wcnss.b01 wcnss.b02 wcnss.b04 wcnss.b06 wcnss.b07
|
||||
wcnss.b08 wcnss.b09 wcnss.mdt"
|
||||
_files_prima="WCNSS_cfg.dat WCNSS_qcom_cfg.ini WCNSS_qcom_wlan_nv.bin"
|
||||
_commit="20c75ad6131d16bb4b0daf54dd64cc6612f222f5"
|
||||
_prima_commit="1815c7a6e5a9d124ae44d0290cd2e4a75dd338cf"
|
||||
_url="https://github.com/TheMuppets/proprietary_vendor_xiaomi/raw/$_commit/armani/proprietary/etc/firmware"
|
||||
_prima_url="https://github.com/LineageOS/android_device_xiaomi_armani/raw/$_prima_commit/wifi"
|
||||
source=""
|
||||
for _i in $_files; do
|
||||
source="$source $pkgname-$_commit-$_i::$_url/$_i"
|
||||
done
|
||||
for _i in $_files_prima; do
|
||||
source="$source $pkgname-$_commit-$_i::$_prima_url/$_i"
|
||||
done
|
||||
|
||||
package() {
|
||||
cd "$srcdir"
|
||||
|
||||
# /lib/firmware/postmarketos
|
||||
for _i in $_files; do
|
||||
install -D -m644 "$pkgname-$_commit-$_i" \
|
||||
"$pkgdir/lib/firmware/postmarketos/$_i"
|
||||
done
|
||||
|
||||
# /lib/firmware/postmarketos/wlan/prima
|
||||
for _i in $_files_prima; do
|
||||
install -D -m644 "$pkgname-$_commit-$_i" \
|
||||
"$pkgdir/lib/firmware/postmarketos/wlan/prima/$_i"
|
||||
done
|
||||
}
|
||||
|
||||
sha512sums="08d47e5c5c64099f014db869eea307a157fd347ff6834e3e7e4f69dfba3f82155b4a0d78599d3f1c6ad803c7debcfe9ad55052c32861d34631351658259a71fc firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.b00
|
||||
cd89779564b3d6a4c74601d46bc925879d6601d427d709bdb55fa019270fb6f3edf7c2dad4366b1fa926a504ebb5b6ebcfb5b342b5b51be1550fe7ec8ca1725a firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.b01
|
||||
f698d619ad43bc280c87af43852f0f81b319860ea04dcb8c74d89a785f15faf33657a60b1b82f0faac3a7e5d2591b1ec18a217eb76b55053ca801959de75acf5 firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.b02
|
||||
cbbfa987ab510173d95a36cc4342049607ec198465a659103ce8399429dd12e98a7cc3bdfb586575d43f250ff8fa9e6442c3dac1bf8a7479c46993bff2820a28 firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.b04
|
||||
cc8b6ea1f8cce96849e932fd3bdd1b3c808a0415b684deed0f84b81560fe2626cc4b05a942d05a1afd8dfa79fbd83a5f4aa93ffa0cff900cf604774f8a73a306 firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.b06
|
||||
2146aa8ab60c48acff43ae8c33c5da4c2586f20a39f8f1308aefb6f833b758ad7158bd5e9a386e45feba446f33855d393857b557fe8ba6fe52364e7a7af3be9b firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.b07
|
||||
6033893c75b32cc906bcabdff02fdbbbb75f0b4d568962b38ea023c00b2273f90bce4482358d4ecc64c22bceaa628d55d17877c8301a1406f67c55c86fc08723 firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.b08
|
||||
45a8cf6ad5986cbf754cf28ef29fc44315781a3256fe38b185fde57cd619804460f9db28bf9222b6732464e938a70ead7a9bbb06a61c94dc2b43639335deea6b firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.b09
|
||||
a29b06bff302a42b52537f1daef48802928b0453e9b585005692a7f10cc68d532b39b4d073b74bb8180bde5fe70506f510affb8351187350637ac2fd2ceaaeea firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-wcnss.mdt
|
||||
619df454e0dc65ab62894b7f328c015729e8261919032ee9096bb4f983ddd6f7b98dd14f593b4c6b75cf86c09f090a9cde7674f4c8197cda927a2ac47111cd2e firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-WCNSS_cfg.dat
|
||||
56c8c2e32227b3e0b45e9755f8f166f64755a45c4a4ff2410f0ee13f17156f84b2906b953c41bdced5585e42f735a7f43dbf7b578cf4e90042e04236ebe13588 firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-WCNSS_qcom_cfg.ini
|
||||
9f6974a1f35bbf5a77e4b060b67949423c6713144b6f2e2098ca0e8e04240d40cf65cdf2ca295dba177123ec115b619e346a0ba75f5086d7df6aaaa20f5e06ed firmware-xiaomi-armani-20c75ad6131d16bb4b0daf54dd64cc6612f222f5-WCNSS_qcom_wlan_nv.bin"
|
Loading…
Reference in a new issue