mirror of
https://github.com/NixOS/mobile-nixos.git
synced 2024-11-30 19:26:21 +03:00
oneplus-oneplus3: add kernel
This commit is contained in:
parent
acb8d53880
commit
f3af08488b
40
devices/oneplus-oneplus3/kernel/99_framebuffer.patch
Normal file
40
devices/oneplus-oneplus3/kernel/99_framebuffer.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
diff --git a/drivers/video/msm/mdss/mdss_fb.c b/drivers/video/msm/mdss/mdss_fb.c
|
||||||
|
index 075ee8a3880..b4531f66a06 100644
|
||||||
|
--- a/drivers/video/msm/mdss/mdss_fb.c
|
||||||
|
+++ b/drivers/video/msm/mdss/mdss_fb.c
|
||||||
|
@@ -868,7 +868,8 @@ static int mdss_fb_probe(struct platform_device *pdev)
|
||||||
|
mfd->bl_scale = 1024;
|
||||||
|
mfd->bl_min_lvl = 30;
|
||||||
|
mfd->ad_bl_level = 0;
|
||||||
|
- mfd->fb_imgType = MDP_RGBA_8888;
|
||||||
|
+ // Default framebuffer format.
|
||||||
|
+ mfd->fb_imgType = MDP_BGRA_8888;
|
||||||
|
mfd->calib_mode_bl = 0;
|
||||||
|
|
||||||
|
if (mfd->panel.type == MIPI_VIDEO_PANEL ||
|
||||||
|
@@ -2143,6 +2144,25 @@ static int mdss_fb_register(struct msm_fb_data_type *mfd)
|
||||||
|
bpp = 4;
|
||||||
|
break;
|
||||||
|
|
||||||
|
+ case MDP_BGRA_8888:
|
||||||
|
+ fix->type = FB_TYPE_PACKED_PIXELS;
|
||||||
|
+ fix->xpanstep = 1;
|
||||||
|
+ fix->ypanstep = 1;
|
||||||
|
+ var->vmode = FB_VMODE_NONINTERLACED;
|
||||||
|
+ var->blue.offset = 0;
|
||||||
|
+ var->green.offset = 8;
|
||||||
|
+ var->red.offset = 16;
|
||||||
|
+ var->blue.length = 8;
|
||||||
|
+ var->green.length = 8;
|
||||||
|
+ var->red.length = 8;
|
||||||
|
+ var->blue.msb_right = 0;
|
||||||
|
+ var->green.msb_right = 0;
|
||||||
|
+ var->red.msb_right = 0;
|
||||||
|
+ var->transp.offset = 24;
|
||||||
|
+ var->transp.length = 8;
|
||||||
|
+ bpp = 4;
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
case MDP_YCRYCB_H2V1:
|
||||||
|
fix->type = FB_TYPE_INTERLEAVED_PLANES;
|
||||||
|
fix->xpanstep = 2;
|
69
devices/oneplus-oneplus3/kernel/compiler-gcc6.h
Normal file
69
devices/oneplus-oneplus3/kernel/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 */
|
||||||
|
|
4550
devices/oneplus-oneplus3/kernel/config.aarch64
Normal file
4550
devices/oneplus-oneplus3/kernel/config.aarch64
Normal file
File diff suppressed because it is too large
Load Diff
51
devices/oneplus-oneplus3/kernel/default.nix
Normal file
51
devices/oneplus-oneplus3/kernel/default.nix
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
mobile-nixos
|
||||||
|
, fetchFromGitHub
|
||||||
|
, kernelPatches ? [] # FIXME
|
||||||
|
, buildPackages
|
||||||
|
, dtbTool
|
||||||
|
}:
|
||||||
|
|
||||||
|
(mobile-nixos.kernel-builder-gcc6 {
|
||||||
|
configfile = ./config.aarch64;
|
||||||
|
|
||||||
|
file = "Image.gz-dtb";
|
||||||
|
hasDTB = true;
|
||||||
|
|
||||||
|
version = "3.18.140";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "android-linux-stable";
|
||||||
|
repo = "op3";
|
||||||
|
rev = "14eb53941c5374e2300b514b3a860507607404a0";
|
||||||
|
sha256 = "1ni2fihmrxj85211k8n2igqgykmw62lc18sn51znm5saccbcz0r7";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./99_framebuffer.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
isModular = false;
|
||||||
|
|
||||||
|
}).overrideAttrs({ postInstall ? "", postPatch ? "", ... }: {
|
||||||
|
installTargets = [ "zinstall" "Image.gz-dtb" "install" ];
|
||||||
|
postPatch = postPatch + ''
|
||||||
|
cp -v "${./compiler-gcc6.h}" "./include/linux/compiler-gcc6.h"
|
||||||
|
|
||||||
|
# FIXME : factor out
|
||||||
|
(
|
||||||
|
# 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=/-W/g' "$i"
|
||||||
|
sed -i 's/-Werror//g' "$i"
|
||||||
|
done
|
||||||
|
)
|
||||||
|
'';
|
||||||
|
postInstall = postInstall + ''
|
||||||
|
mkdir -p "$out/dtbs/"
|
||||||
|
cp -v "$buildRoot/arch/arm64/boot/Image.gz-dtb" "$out/"
|
||||||
|
'';
|
||||||
|
})
|
Loading…
Reference in New Issue
Block a user