samsung-a6lte: new device (Samsung Galaxy A6 2018) (MR 3393)

[ci:skip-build] Already built successfuly on CI in MR
This commit is contained in:
Sergey Lisov 2022-09-07 01:41:44 +03:00 committed by Newbyte
parent f9769f26fd
commit 4867a3f4e3
No known key found for this signature in database
GPG key ID: 5873C171C9429CFA
15 changed files with 5632 additions and 0 deletions

View file

@ -0,0 +1,67 @@
# Reference: <https://postmarketos.org/devicepkg>
pkgname=device-samsung-a6lte
pkgdesc="Samsung Galaxy A6 2018"
pkgver=0.1
pkgrel=0
url="https://postmarketos.org"
license="MIT"
arch="aarch64"
options="!check !archcheck"
depends="
alsa-utils
linux-samsung-a6lte
mesa-dri-gallium
mkbootimg
msm-fb-refresher
pipewire
pipewire-pulse
postmarketos-base
"
replaces="
lightdm
pipewire-media-session
udev-init-scripts-openrc
"
makedepends="devicepkg-dev"
source="
deviceinfo
etc-init.d-udev-settle
etc-lightdm-lightdm.conf
etc-NetworkManager-conf.d-swlan0-unmanaged.conf
usr-share-alsa-ucm2-conf.d-Universal7870-I-HiFi.conf
usr-share-alsa-ucm2-conf.d-Universal7870-I-Universal7870-I.conf
usr-share-pipewire-media-session.d-alsa-monitor.conf
"
subpackages="$pkgname-nonfree-firmware:nonfree_firmware"
# pulseaudio does not seem to work on this device. Will use pipewire-pulse instead.
build() {
devicepkg_build $startdir $pkgname
}
package() {
devicepkg_package $startdir $pkgname
install -Dm755 etc-init.d-udev-settle "$pkgdir"/etc/init.d/udev-settle
install -Dm644 etc-lightdm-lightdm.conf "$pkgdir"/etc/lightdm/lightdm.conf
install -Dm644 etc-NetworkManager-conf.d-swlan0-unmanaged.conf "$pkgdir"/etc/NetworkManager/conf.d/swlan0-unmanaged.conf
install -Dm644 usr-share-alsa-ucm2-conf.d-Universal7870-I-HiFi.conf "$pkgdir"/usr/share/alsa/ucm2/conf.d/Universal7870-I/HiFi.conf
install -Dm644 usr-share-alsa-ucm2-conf.d-Universal7870-I-Universal7870-I.conf "$pkgdir"/usr/share/alsa/ucm2/conf.d/Universal7870-I/Universal7870-I.conf
install -Dm644 usr-share-pipewire-media-session.d-alsa-monitor.conf "$pkgdir"/usr/share/pipewire/media-session.d/alsa-monitor.conf
}
nonfree_firmware() {
pkgdesc="Wifi firmware"
depends="firmware-samsung-a6lte"
mkdir "$subpkgdir"
}
sha512sums="
63be7d1b44093c2d892a92ad788a9a6a9d510c9ca0aac1f249213458402c546560827aaaa23c88497efee4675b15bf47481e551e5de043abaf5ae65e3de9c10a deviceinfo
203b832a7080d5f1351c5e024e444f9fe509f6e0fd4b376a60c7d73359b7e356863a4f15caf9b2e4e733dc44d2971722083e7c69ca94a012eb004b4b8ded9d09 etc-init.d-udev-settle
861270c6bc0b2a3e6cd389c21c8c895e62de8cf8bec6fcf23c178f8cbaae855d62b0ee98692671ab4f518d84cb43dd0b2fe46f5a609f65af6a6c06e0fdbb6d0c etc-lightdm-lightdm.conf
ef24527b13e48a9153643f3713167d3d08486e7de8b4c94d7c446ff380396115890573d8cd4aa5448766d9e779e189833a83e7921081679bd348c3f8a59410af etc-NetworkManager-conf.d-swlan0-unmanaged.conf
80ea4968be09dec3deac4d6c5c58b7848f6ea297f2fe2e09f58dec5ba78c0a39060a7d86410a52414f615a0fef9ae9506e12d492d700eb168793433ea7691155 usr-share-alsa-ucm2-conf.d-Universal7870-I-HiFi.conf
fe527672d5e52a1b074e7e3613a6321f987270ececfdfaf49d1fde9fcd4f4dc93f37374c80ee3d539e4079a5c6e07ffddc648a1544bccbe4810e1bc30d0c2112 usr-share-alsa-ucm2-conf.d-Universal7870-I-Universal7870-I.conf
5e87452f4cd70bbbcfb3e69bae73f2690ba328e7ccde55c47482e8fb1583d807de5bd3d328b1fe6a8733b4de78b2ed0c6ae8cdb60f6bf51ed4362c2174671b3e usr-share-pipewire-media-session.d-alsa-monitor.conf
"

View file

@ -0,0 +1,33 @@
# Reference: <https://postmarketos.org/deviceinfo>
# Please use double quotes only. You can source this file in shell
# scripts.
deviceinfo_format_version="0"
deviceinfo_name="Samsung Galaxy A6 2018"
deviceinfo_manufacturer="Samsung"
deviceinfo_codename="samsung-a6lte"
deviceinfo_year="2018"
deviceinfo_arch="aarch64"
# Device related
deviceinfo_chassis="convertible"
deviceinfo_keyboard="false"
deviceinfo_external_storage="true"
deviceinfo_screen_width="720"
deviceinfo_screen_height="1480"
# Bootloader related
deviceinfo_flash_method="heimdall-bootimg"
deviceinfo_kernel_cmdline="androidboot.selinux=permissive androidboot.selinux=permissive"
deviceinfo_generate_bootimg="true"
deviceinfo_bootimg_qcdt="true"
deviceinfo_bootimg_mtk_mkimage="false"
deviceinfo_bootimg_dtb_second="false"
deviceinfo_flash_pagesize="2048"
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_heimdall_partition_kernel="BOOT"
deviceinfo_flash_heimdall_partition_system="SYSTEM"

View file

@ -0,0 +1,5 @@
[main]
plugins=keyfile
[keyfile]
unmanaged-devices=interface-name:swlan0;interface-name:p2p0

View file

@ -0,0 +1,17 @@
#!/sbin/openrc-run
# Copyright 2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
depend() {
need udev
after udev-trigger
provide dev-settle
keyword -containers
}
# udev-settle takes 3 minutes to start (and fails anyway, after which the device boots). Nuking it.
start() {
ebegin "Not waiting for uevents to be processed"
eend $?
}

View file

@ -0,0 +1,164 @@
#
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
# dbus-service = True if LightDM provides a D-Bus service to control it
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
# Next line: elogind reports that the session CanGraphical=no. Let lightdm ignore that bogus status.
logind-check-graphical=false
#log-directory=/var/log/lightdm
#run-directory=/var/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
#backup-logs=true
#dbus-service=true
#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (local, xremote)
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
#greeter-session=example-gtk-gnome
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
#user-session=default
#allow-user-switching=true
#allow-guest=false
#guest-session=
#session-wrapper=lightdm-session
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false
#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=
#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8

View file

@ -0,0 +1,30 @@
SectionVerb {
EnableSequence [
]
}
SectionDevice."Headphones" {
EnableSequence [
]
DisableSequence [
]
Value {
PlaybackPriority 100
PlaybackPCM "hw:${CardId}"
}
}
SectionDevice."Mic" {
EnableSequence [
]
DisableSequence [
]
Value {
CapturePriority 100
CapturePCM "hw:${CardId}"
}
}

View file

@ -0,0 +1,37 @@
Syntax 2
SectionUseCase."HiFi" {
File "HiFi.conf"
}
SectionDefaults [
cset "name='AudioMixer Mixer En' 1"
cset "name='AudioMixer CH1 Mixer En' 1"
cset "name='AudioMixer CH2 Mixer En' 0"
cset "name='AudioMixer CH3 Mixer En' 0"
cset "name='AudioMixer CH4 Mixer En' 0"
cset "name='MonoMix Mode' 0"
cset "name='Chargepump Mode' 0"
cset "name='DNC ZCD Enable' 1"
cset "name='DNC ZCD Timeout' 1"
cset "name='DNC Max Gain' 12"
cset "name='HP HP On' 0"
cset "name='EP EP On' 0"
cset "name='AMP Enable Switch' 1"
cset "name='AudioMixer MIX1_LVL' 0"
cset "name='AudioMixer CH1 DOUT Select' 1"
cset "name='ADCL Mixer MIC1L Switch' 1"
cset "name='ADCL Mixer MIC2L Switch' 0"
cset "name='ADCL Mixer MIC3L Switch' 0"
cset "name='ADCL Mixer LINELL Switch' 0"
cset "name='ADCL Mixer LINERL Switch' 0"
cset "name='ADCR Mixer MIC1R Switch' 1"
cset "name='ADCR Mixer MIC2R Switch' 0"
cset "name='ADCR Mixer MIC3R Switch' 0"
cset "name='ADCR Mixer LINELR Switch' 0"
cset "name='ADCR Mixer LINERR Switch' 0"
cset "name='MIC1 MIC1 On' 1"
cset "name='MIC2 MIC2 On' 0"
cset "name='MIC3 MIC3 On' 0"
cset "name='LINEIN LINEIN On' 0"
]

View file

@ -0,0 +1,126 @@
# ALSA monitor config file for PipeWire version 0.4.1 #
#
# Copy and edit this file in /etc/pipewire/media-session.d/
# for system-wide changes or in
# ~/.config/pipewire/media-session.d/ for local changes.
properties = {
# Create a JACK device. This is not enabled by default because
# it requires that the PipeWire JACK replacement libraries are
# not used by the session manager, in order to be able to
# connect to the real JACK server.
#alsa.jack-device = false
# Reserve devices.
#alsa.reserve = true
}
rules = [
# An array of matches/actions to evaluate.
{
# Rules for matching a device or node. Each dictionary in this array
# specifies the property to match as key and a string or regex match
# as value. A successful match requires all dictionary keys (i.e.
# properties) to match.
#
# Actions are are executed for the object if at least one successful
# match exists.
#
# Regular expressions are prefixed with the ~ (tilde) character,
# otherwise a standard string comparison is used.
# The special value "null" matches against empty properties.
matches = [
{
# This matches all cards. These are regular expressions
# so "." matches one character and ".*" matches many.
device.name = "~alsa_card.*"
}
]
actions = {
# Actions can update properties on the matched object.
update-props = {
# Use ALSA-Card-Profile devices. They use UCM or
# the profile configuration to configure the device
# and mixer settings.
api.alsa.use-acp = true
# Use UCM instead of profile when available. Can be
# disabled to skip trying to use the UCM profile.
#api.alsa.use-ucm = true
# Don't use the hardware mixer for volume control. It
# will only use software volume. The mixer is still used
# to mute unused paths based on the selected port.
api.alsa.soft-mixer = true
# Ignore decibel settings of the driver. Can be used to
# work around buggy drivers that report wrong values.
#api.alsa.ignore-dB = false
# The profile set to use for the device. Usually this is
# "default.conf" but can be changed with a udev rule
# or here.
#device.profile-set = "profileset-name.conf"
# The default active profile. Is by default set to "Off".
#device.profile = "default profile name"
# Automatically select the best profile. This is the
# highest priority available profile. This is disabled
# here and instead implemented in the session manager
# where it can save and load previous preferences.
api.acp.auto-profile = false
# Automatically switch to the highest priority available
# port. This is disabled here and implemented in the
# session manager instead.
api.acp.auto-port = false
# Other properties can be set here.
#device.nick = "My Device"
}
}
}
{
matches = [
{
# Matches all sources. These are regular expressions
# so "." matches one character and ".*" matches many.
node.name = "~alsa_input.*"
}
{
# Matches all sinks.
node.name = "~alsa_output.*"
}
]
actions = {
update-props = {
#node.nick = "My Node"
#node.nick = null
#priority.driver = 100
#priority.session = 100
node.pause-on-idle = false
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = false
#audio.channels = 2
#audio.format = "S16LE"
#audio.rate = 44100
#audio.position = "FL,FR"
#session.suspend-timeout-seconds = 5 # 0 disables suspend
#monitor.channel-volumes = false
#latency.internal.rate = 0 # internal latency in samples
#latency.internal.ns = 0 # internal latency in nanoseconds
#api.alsa.period-size = 1024
api.alsa.headroom = 1024
#api.alsa.start-delay = 0
#api.alsa.disable-mmap = false
#api.alsa.disable-batch = false
#api.alsa.use-chmap = false
#iec958.codecs = [ PCM DTS AC3 MPEG MPEG2-AAC EAC3 TrueHD DTS-HD ]
}
}
}
]

View file

@ -0,0 +1,46 @@
pkgname=firmware-samsung-a6lte
pkgver=1
pkgrel=0
pkgdesc="Firmware files for Samsung Galaxy A6 (2018)"
url="https://github.com/fw-dumps/samsung_a6lte_dump"
arch="aarch64"
license="proprietary"
options="!strip !check !archcheck !spdx !tracedeps pmb:cross-native"
# Source
_commit="2ea1f7e1dfbe56d6ca085c9eb4061aca8909172c"
builddir="$srcdir/samsung_a6lte_dump-$_commit"
_raw_wifi_path="$url/raw/$_commit/vendor/etc/wifi"
_install_wifi_path="/lib/firmware/postmarketos/wifi/"
source="
bcmdhd_apsta.bin_c5::$_raw_wifi_path/bcmdhd_apsta.bin_c5
bcmdhd_apsta.bin_c5_blob::$_raw_wifi_path/bcmdhd_apsta.bin_c5_blob
bcmdhd_clm.blob::$_raw_wifi_path/bcmdhd_clm.blob
bcmdhd_mfg.bin_c5::$_raw_wifi_path/bcmdhd_mfg.bin_c5
bcmdhd_mfg.bin_c5_blob::$_raw_wifi_path/bcmdhd_mfg.bin_c5_blob
bcmdhd_sta.bin_c5::$_raw_wifi_path/bcmdhd_sta.bin_c5
bcmdhd_sta.bin_c5_blob::$_raw_wifi_path/bcmdhd_sta.bin_c5_blob
nvram.txt_c5::$_raw_wifi_path/nvram.txt_c5
"
package() {
install -Dm644 "$srcdir/bcmdhd_apsta.bin_c5" "$pkgdir$_install_wifi_path/bcmdhd_apsta.bin_c5"
install -Dm644 "$srcdir/bcmdhd_apsta.bin_c5_blob" "$pkgdir$_install_wifi_path/bcmdhd_apsta.bin_c5_blob"
install -Dm644 "$srcdir/bcmdhd_clm.blob" "$pkgdir$_install_wifi_path/bcmdhd_clm.blob"
install -Dm644 "$srcdir/bcmdhd_mfg.bin_c5" "$pkgdir$_install_wifi_path/bcmdhd_mfg.bin_c5"
install -Dm644 "$srcdir/bcmdhd_mfg.bin_c5_blob" "$pkgdir$_install_wifi_path/bcmdhd_mfg.bin_c5_blob"
install -Dm644 "$srcdir/bcmdhd_sta.bin_c5" "$pkgdir$_install_wifi_path/bcmdhd_sta.bin_c5"
install -Dm644 "$srcdir/bcmdhd_sta.bin_c5_blob" "$pkgdir$_install_wifi_path/bcmdhd_sta.bin_c5_blob"
install -Dm644 "$srcdir/nvram.txt_c5" "$pkgdir$_install_wifi_path/nvram.txt_c5"
}
sha512sums="
d808620a966fa657add0a3b0e687227fd4dbcd848bfbeb20a918c91408eda2977cfb74627253b943dc566372c7f96f84c9b2a76c3113ef1c6dd04ccf9a9124db bcmdhd_apsta.bin_c5
b19ddead63bffc82881b0df136df5ee05a561a3e2518f7626e9b8f954cd6e6a460e30a34a9248783d64af67b36e77b3938274efdc415de3fec17ed93683dff85 bcmdhd_apsta.bin_c5_blob
3bdde18b343c5af11b3074faf3462d6ff26486be9c3d6a6dc752293b97e26999ff4432831ad32d2d4359c07a4de24356cd33d3d68371926e9b7e66a6b4ea7fed bcmdhd_clm.blob
defd3545ed144c0e85a61778ad897a9777b9a8b585c5414b32fb7e1d56a8e69a858800074ab446de5066c96f859ed2e9c0c10e94aefb3472eec162f8f3bfb48a bcmdhd_mfg.bin_c5
e2735f953607ecf2c56f8b577134dcbca27fcc8e5dc9dfb898d58889cd05422f59f86d8e277229ddc2569404cd72f69f13d22163448bfba77e49d8b186789d3b bcmdhd_mfg.bin_c5_blob
85b2b960723963f1876ca6723dba87b145b3621c201f1a356ee53cb0dfb9413b9fa69455126b86d87444cbba6dd9ac470e782c2a7b678b2525f512996df451b2 bcmdhd_sta.bin_c5
15bd915443dab9efffd7c8a5f76101601765e83fd2945f43de56b0fb50bda1676d912a1d93bae531d7073379cf2f13289fb5d9f741694c4a0a2370f62a2a384b bcmdhd_sta.bin_c5_blob
b9e1e695cb01497400c0f0c3ccd0e7815a10258775bd89edda3ce89926cb1f9e4172b068553bce7120766ff673e265a9cbe54f94cca0f72496a04a216f4c9a0f nvram.txt_c5
"

View file

@ -0,0 +1,79 @@
# Reference: <https://postmarketos.org/vendorkernel>
# Kernel config based on the stock Android one
pkgname=linux-samsung-a6lte
pkgver=3.18.140
pkgrel=0
pkgdesc="Samsung Galaxy A6 2018 kernel fork"
arch="aarch64"
_carch="arm64"
_flavor="samsung-a6lte"
url="https://kernel.org"
license="GPL-2.0-only"
options="!strip !check !tracedeps pmb:cross-native"
makedepends="
bash
bc
bison
devicepkg-dev
dtbtool-exynos
flex
gcc4
openssl-dev
perl
"
if [ "${CC:0:5}" != "gcc4-" ]; then
CC="gcc4-$CC"
HOSTCC="gcc4-gcc"
CROSS_COMPILE="gcc4-$CROSS_COMPILE"
fi
# Source
_repository="a6lte-kernel-source"
_commit="981969320c1cdc214cf8a1a357fab642f401a5d1"
_config="config-$_flavor.$arch"
source="
$pkgname-$_commit.tar.gz::https://github.com/sleirsgoevy/$_repository/archive/$_commit.tar.gz
$_config
gcc10-extern_YYLOC_global_declaration.patch
zram-zs-create-pool-null.patch
decon-fb-colors.patch
firmware-paths-fix.patch
"
builddir="$srcdir/$_repository-$_commit"
_outdir="."
prepare() {
export ANDROID_MAJOR_VERSION=q
default_prepare
. downstreamkernel_prepare
}
build() {
unset LDFLAGS
export ANDROID_MAJOR_VERSION=q
make ARCH="$_carch" CC="${CC:-gcc}" \
KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS"
# Master DTB (deviceinfo_bootimg_qcdt)
dtbTool-exynos -o "$_outdir/arch/$_carch/boot"/dt.img \
$(find "$_outdir/arch/$_carch/boot/dts/" -name *a6lte*.dtb)
}
package() {
export ANDROID_MAJOR_VERSION=q
downstreamkernel_package "$builddir" "$pkgdir" "$_carch" \
"$_flavor" "$_outdir"
install -Dm644 "$_outdir/arch/$_carch/boot"/dt.img \
"$pkgdir"/boot/dt.img
}
sha512sums="
c2cc5190c480de4ac2d376827c5c56a542c6644d3dbeb47956d0b90c5570b246872ecedbf5655ac5564c9f61190d23567a4c496bb4235c46f6bd7a6d8addcc68 linux-samsung-a6lte-981969320c1cdc214cf8a1a357fab642f401a5d1.tar.gz
eca0d202cf04a7a03b6ff5e59ee29c83723fc14aabf63186143b28f1117628130f941aacc29f24d0b7c0cd9893c9a306605bedfe69588ff2e3864a2d410702ae config-samsung-a6lte.aarch64
2b48f1bf0e3f70703d2cdafc47d5e615cc7c56c70bec56b2e3297d3fa4a7a1321d649a8679614553dde8fe52ff1051dae38d5990e3744c9ca986d92187dcdbeb gcc10-extern_YYLOC_global_declaration.patch
3f65a690e48f913fcb980718fae4dc03c29a6dc86eecb1e2af644488ad415de326a61d840399fb69915cbc5d56d5586f2df2287b3e7323a2927ae73a3b1b1373 zram-zs-create-pool-null.patch
5bd204239a5daff9f990757178398707ae5ec64f823ed9ec72a8d50ebe6d5f0a3cc9743e0d775094da4b3a7566f1ccceb56f39f3b0234d08ca05e537d86271ec decon-fb-colors.patch
e1409844c46869ffe6ac9e028c3f38868120b6fd38dcf52ca7c1fdb98e90d2717d72ed52f7f41d3b4a18862a5b7210b6921c5c635d91cbb2a5772b55d5f1b4fb firmware-paths-fix.patch
"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,13 @@
diff --git a/drivers/video/fbdev/exynos/decon_7870/decon-int_drv.c b/drivers/video/fbdev/exynos/decon_7870/decon-int_drv.c
index 15e7e22b..29f1dc49 100644
--- a/drivers/video/fbdev/exynos/decon_7870/decon-int_drv.c
+++ b/drivers/video/fbdev/exynos/decon_7870/decon-int_drv.c
@@ -335,7 +335,7 @@ static u32 wincon(u32 bits_per_pixel, u32 transp_length)
case 32:
if (transp_length > 0) {
data |= WINCON_BLD_PIX;
- data |= WINCON_BPPMODE_ABGR8888;
+ data |= WINCON_BPPMODE_ARGB8888;
} else {
data |= WINCON_BPPMODE_XRGB8888;
}

View file

@ -0,0 +1,66 @@
diff --git a/drivers/net/wireless/bcmdhd_100_10/dhd.h b/drivers/net/wireless/bcmdhd_100_10/dhd.h
index df9f668a..cca9d769 100644
--- a/drivers/net/wireless/bcmdhd_100_10/dhd.h
+++ b/drivers/net/wireless/bcmdhd_100_10/dhd.h
@@ -376,7 +376,7 @@ enum dhd_op_flags {
#if defined(CUSTOMER_HW4) && defined(PLATFORM_SLP)
#define CONFIG_BCMDHD_CLM_PATH "/lib/firmware/bcmdhd_clm.blob"
#else
-#define CONFIG_BCMDHD_CLM_PATH "/etc/wifi/bcmdhd_clm.blob"
+#define CONFIG_BCMDHD_CLM_PATH "/lib/firmware/postmarketos/wifi/bcmdhd_clm.blob"
#endif /* CUSTOMER_HW4 && PLATFORM_SLP */
#endif /* CONFIG_BCMDHD_CLM_PATH */
#define WL_CCODE_NULL_COUNTRY "#n"
@@ -2362,7 +2362,7 @@ extern uint dhd_pktgen_len;
extern char fw_path2[MOD_PARAM_PATHLEN];
#endif // endif
-#if defined(ANDROID_PLATFORM_VERSION)
+#if 0 //defined(ANDROID_PLATFORM_VERSION)
#if (ANDROID_PLATFORM_VERSION < 7)
#define DHD_LEGACY_FILE_PATH
#define VENDOR_PATH "/system"
diff --git a/drivers/net/wireless/bcmdhd_100_15/dhd.h b/drivers/net/wireless/bcmdhd_100_15/dhd.h
index 6914a76c..e2af0596 100644
--- a/drivers/net/wireless/bcmdhd_100_15/dhd.h
+++ b/drivers/net/wireless/bcmdhd_100_15/dhd.h
@@ -401,7 +401,7 @@ enum dhd_op_flags {
#if defined(CUSTOMER_HW4) && defined(PLATFORM_SLP)
#define CONFIG_BCMDHD_CLM_PATH "/lib/firmware/bcmdhd_clm.blob"
#else
-#define CONFIG_BCMDHD_CLM_PATH "/etc/wifi/bcmdhd_clm.blob"
+#define CONFIG_BCMDHD_CLM_PATH "/lib/firmware/postmarketos/wifi/bcmdhd_clm.blob"
#endif /* CUSTOMER_HW4 && PLATFORM_SLP */
#endif /* CONFIG_BCMDHD_CLM_PATH */
#define WL_CCODE_NULL_COUNTRY "#n"
@@ -2559,7 +2559,7 @@ extern uint dhd_pktgen_len;
extern char fw_path2[MOD_PARAM_PATHLEN];
#endif // endif
-#if defined(ANDROID_PLATFORM_VERSION)
+#if 0 //defined(ANDROID_PLATFORM_VERSION)
#if (ANDROID_PLATFORM_VERSION < 7)
#define DHD_LEGACY_FILE_PATH
#define VENDOR_PATH "/system"
diff --git a/drivers/net/wireless/bcmdhd_1_77/dhd.h b/drivers/net/wireless/bcmdhd_1_77/dhd.h
index c3259173..bb634b0d 100755
--- a/drivers/net/wireless/bcmdhd_1_77/dhd.h
+++ b/drivers/net/wireless/bcmdhd_1_77/dhd.h
@@ -303,7 +303,7 @@ enum dhd_op_flags {
#if defined(CUSTOMER_HW4) && defined(PLATFORM_SLP)
#define CONFIG_BCMDHD_CLM_PATH "/lib/firmware/bcmdhd_clm.blob"
#else
-#define CONFIG_BCMDHD_CLM_PATH "/etc/wifi/bcmdhd_clm.blob"
+#define CONFIG_BCMDHD_CLM_PATH "/lib/firmware/postmarketos/wifi/bcmdhd_clm.blob"
#endif /* CUSTOMER_HW4 && PLATFORM_SLP */
#endif /* CONFIG_BCMDHD_CLM_PATH */
#define WL_CCODE_NULL_COUNTRY "#n"
@@ -2140,7 +2140,7 @@ extern uint dhd_pktgen_len;
extern char fw_path2[MOD_PARAM_PATHLEN];
#endif
-#if defined(ANDROID_PLATFORM_VERSION)
+#if 0 //defined(ANDROID_PLATFORM_VERSION)
#if (ANDROID_PLATFORM_VERSION < 7)
#define DHD_LEGACY_FILE_PATH
#define VENDOR_PATH "/system"

View file

@ -0,0 +1 @@
../../.shared-patches/linux/gcc10-extern_YYLOC_global_declaration.patch

View file

@ -0,0 +1,13 @@
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
index 60d73ab2..595be443 100644
--- a/drivers/block/zram/zram_drv.c
+++ b/drivers/block/zram/zram_drv.c
@@ -380,7 +380,7 @@ static struct zram_meta *zram_meta_alloc(int device_id, u64 disksize)
}
snprintf(pool_name, sizeof(pool_name), "zram%d", device_id);
- meta->mem_pool = zs_create_pool(pool_name, GFP_NOIO | __GFP_HIGHMEM);
+ meta->mem_pool = zs_create_pool(pool_name, GFP_NOIO | __GFP_HIGHMEM, NULL);
if (!meta->mem_pool) {
pr_err("Error creating memory pool\n");
goto out_error;