mirror of
https://github.com/NixOS/mobile-nixos.git
synced 2024-11-28 04:14:57 +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