pablopl / linux Goto Github PK
View Code? Open in Web Editor NEWThis project forked from torvalds/linux
Linux kernel source tree
License: Other
This project forked from torvalds/linux
Linux kernel source tree
License: Other
Changes already done on brach for-upstream/gp2a, need to send them to mainline
To reduce power usage, power domains can be used.
WIP implementation at https://github.com/xc-racer99/linux/tree/powerdomain
Note that disabling the audio power domain causes lockups, possibly related to the hardware bug described in xc-racer99/android_kernel_samsung_aries@755199d
Hi, I've bought the brazilian variant of i9000 known as i9000b quite a long time ago. No obvious differences in hardware save for the included ISDB-T tuner which the other versions do not have.
I have done very little kernel work and zero hardware-related development, also I have no idea how well supported this kind of hardware is on linux, I'll try to help identifying which device is this if needed.
In addition to the DT patches floating around (on for-upstream/onenand), there's still some subpage sft/oob layout differences that I will try to explain. Additionally there are the 8Gb changes for SGS4G devices
99b17c0 swapped out the oob layout and subpage sft. This was found to have some issues (described in https://patchwork.ozlabs.org/patch/98355/ - there is even mention of Nexus S here) how different versions had slight differences. The above conversation resulted in e1c1024 - but I have no idea how the oob layout changes may affect things (v1 discussion for above patch is at https://patchwork.ozlabs.org/patch/99352/ v2 discussion at https://patchwork.ozlabs.org/patch/101392/).
Assuming it is only the subpage_sft that needs changing and that the new ooblayouts can be used, then the 8Gb patches should be adjusted to use ONENAND_HAS_NOP_1 - I will try and test this and see if it's possible.
Appears to sleep, doesn't wake up. Need to try with no_console_suspend
See https://github.com/PabloPL/linux/commits/for-upstream/vibrator
@PabloPL could you please test this on the i9000? You can compile the script at https://git.collabora.com/cgit/user/sre/rumble-test.git/plain/rumble-test.c or use fftest.
It needs
CONFIG_PWM=y
CONFIG_PWM_SAMSUNG=y
CONFIG_INPUT_MISC=y
CONFIG_INPUT_PWM_VIBRA=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
in the defconfig
Branch created called not-for-upstream/modem
Has been tested on Fascinate4G with ipc-modem from https://git.replicant.us/replicant/external_libsamsung-ipc/tree/?h=replicant-6.0 and the patches from https://github.com/xc-racer99/android_patches/blob/8e410ce0996bb3170865a4b7ea375726bf804c1c/external_libsamsung-ipc.patch applied
Modem boots and registers on network - nothing else tested. Requires the modem.bin to be in /radio/modem.bin plus that the EFS is present at /efs
I'm using a dedicated issue to track the PVR problem I have on my userspace (Fedora 31) using upstream 5.9. kernel, I'm using xc-racer99/linux/tree/v5.9-rc2-all-devices rebased on top of v5.9.5.
lsmod |grep pvrsrvkm
pvrsrvkm_s5pv210_sgx540_120
The module is loaded automatically on boot (but should not ends in the initramfs)
dmesg |grep pvr
[ 42.798376] pvrsrvkm f3000000.g3d: Enabling quirks 00000000
[ 42.876125] [drm] Initialized pvr 1.17.4948957 20110701 for f3000000.g3d on minor 1
Sometime the service is failing at boot, I usually remove the battery for one minute and it's back to work on the next boot.
echo > /etc/systemd/system/pvr.service <<EOF
[Unit]
Description=PowerVR consumer services
Before=display-manager.service
[Service]
Type=oneshot
ExecStart=/usr/bin/pvrsrvctl --start --no-module
[Install]
WantedBy=multi-user.target
EOF
root 324 0.0 0.0 0 0 ? I< 16:44 0:00 [pvr_timer]
root 433 0.0 0.0 0 0 ? I< 16:44 0:00 [pvr_workqueue]
root 615 0.0 0.5 7688 2012 pts/0 S+ 16:48 0:00 grep --color=auto pvr
If the pvr service isn't successful I only have pvr_timer when the pvrsrvkm_s5pv210_sgx540_120 module is loaded...
drmdevice shows exynos-drm in render128 and card0 and samsung,s5pv210-sgx540-120 in card1 render129
cat /etc/powervr.ini
[default]
WindowSystem=libpvrDRMWSEGL.so
DefaultPixelFormat=RGB888
Here is the output when running the command from the remote terminal as user.
galaxys-eglinfo_kmscube.txt
Here is the journal output
galaxys-pvrsgx-5.9.5.txt
Branch: for-upstream/aries-patches-v2
Here is list of patches which will be submited in v2 patchset for aries.
There is already driver at tom3q@c54d9ad
It needs to be updated to new extcon api (work done on for-upstream/fsa9480).
We can use:
Hello, I'm trying to debug the current issue I have with my kernel
While booting the device with the current galaxys-all branch on a fedora 31 userspace the device reboots while the NetworkManager takes over, I expect it's related to the wifi/bluetooth because it reboot once the related firmwares are in place.
https://paste.centos.org/view/1dc19b8d
But nothing seems to be written to the journal.
Is there any way to debug further ? Can I setup a console over the usb wire ? How ?
Anything obviously wrong in the kernel configuration ?
https://paste.centos.org/view/b0ff2c25
Patches created by @xc-racer99 (spitted one of patches into two separate, first making changes in driver and second one adding documentation).
Work done by @xc-racer99 , needed for light/proximity sensor, patches send to mainline
my bootargs is 'console=ttySAC1 root=/dev/mmcblk0p1 rw rootwait ignore_loglevel earlyprintk', dmeg is stop 'printk: bootconsole [earlycon0] disabled'
Without this it's impossible to charge batter, when using mainline kernel.
Prepared v2 version of patchset and send to LKML.
By using test tool from https://www.spinics.net/lists/linux-samsung-soc/msg60498.html
i've confirmed that rotator is working.
i can boot kernel 5.7 in my board and 5.8 or high is not boot. in 5.7 fimd is not have sclk_fimd.
It fails to probe with error dwc2 ec000000.hsotg: dwc2_core_reset: HANG! AHB Idle timeout GRSTCTL GRSTCTL_AHBIDLE
A bisect shows fe369e1 to be the first bad commit
There is a 3.3-based wm8994 driver for one of the CDMA Galaxy S variants (Verizon Fascinate/SCH-i500) at https://github.com/syndtr/android-kernel/blob/qss-next/sound/soc/samsung/qss_wm8994.c
The modem part would need to change and it would need to be brought up to date (eg DT), but the rest is likely functional. Android userspace part at https://github.com/syndtr/android_device_samsung_qss/tree/master/audio
Alternatively, we could resurrect the goni driver.
There are multiple issues:
Changes on branch for-upstream/cpufreq
Got it working with current cpufreq implementation, after few fixed.
Will try to push them upstream.
Hint: 3000000 is uart speed on Nexus S. It's connected to uart0.
There is already driver (maybe it could be used): brcm,bcm43438-bt
Changes on for-upstream/s6e63m0-panel
Hello there!
I hope you're having a good day. So it would be nice if you could actually improve on exynos7580 and actually add support for the Samsung Galaxy J7 from 2015 which is codenamed j7elte.
I just ported that device to run PostMarketOS based on the downstream LinageOS kernel and am trying to run your kernel on it
Here is my device port for more information...
Excuse me,Will you continue to improve the exynos7420?
Looks like we never opened an issue for this. Cameras are:
Is connected to the FIMC; based on pawitp/android_kernel_samsung_aries@359bccf S5K is connected to FIMC0; but Android userspace opens both FIMC0 and FIMC2 for both cameras regardless.
Some more info could be found at https://blog.forkwhiletrue.me/posts/camera-on-galaxy-s3/
Came across this while searching through vendor kernel for audio info and noticed it wasn't upstream.
Should be fairly easy to add, implementation for 3.0 present at https://github.com/xc-racer99/android_kernel_samsung_aries/blob/cm-10.1/arch/arm/mach-s5pv210/cpuidle.c
Would need to adjust it for current cpuidle interface as well as moving it to drivers/soc/samsung. Should probably use the pmu_syscon phandle and an offset to obtain the S5P_IDLE_CFG and S5P_PWR_CFG registers.
Note the above driver doesn't have anything beyond the basic idle state (ie no deep idle/stop/deep stop), although more states could be added in the future if desired (deep idle is the only one useful in my opinion and that would only be for music playback).
I've grown tired of maintaining many different for-upstream/* branches during development. I think it makes sense only to have them when actively trying to upstream patches.
As such, I've created a branch at https://github.com/xc-racer99/linux/tree/all-devices where I've put all the patches from all the various branches. Note that I have put a few fixes to those commits that aren't in the for-upstream branches. I plan on rebasing it periodically.
While I'm kind of torn about this decision as it definitely makes upstreaming more difficult, I think it will be useful for development as there will be a solid base to build upon. It should be relatively easy to pick the relevant commits for an issue. As long as it gets rebased and the commits kept in a logical order, I think it should work well.
As originally reported in #41 by @kwizart (and reproduced by myself several times, without a good method of doing so, although it seems to happen in disk-heavy workloads), the MMC controller can give errors like
[ 141.533993] mmc2: ADMA error: 0x02000000
[ 141.535137] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 141.540246] mmc2: sdhci: Sys addr: 0x347e4cc4 | Version: 0x00002401
[ 141.545358] mmc2: sdhci: Blk size: 0x00007004 | Blk cnt: 0x0000fffc
[ 141.550470] mmc2: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
[ 141.555583] mmc2: sdhci: Present: 0x01fa0000 | Host ctl: 0x00000012
[ 141.560696] mmc2: sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 141.565809] mmc2: sdhci: Wake-up: 0x00000000 | Clock: 0x0000010f
[ 141.570921] mmc2: sdhci: Timeout: 0x0000000a | Int stat: 0x00000003
[ 141.576034] mmc2: sdhci: Int enab: 0x03ff004b | Sig enab: 0x03ff004b
[ 141.581147] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
[ 141.586259] mmc2: sdhci: Caps: 0x05e80080 | Caps_1: 0x00000000
[ 141.591372] mmc2: sdhci: Cmd: 0x0000163a | Max curr: 0x00000000
[ 141.596485] mmc2: sdhci: Resp[0]: 0x00000920 | Resp[1]: 0x00000000
[ 141.601597] mmc2: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 141.606710] mmc2: sdhci: Host ctl2: 0x00000000
[ 141.609831] mmc2: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x349a3208
[ 141.614942] mmc2: sdhci: ============================================
[ 141.620057] mmc2: sdhci: 349a3200: DMA 0x347e4cc0, LEN 0x0004, Attr=0x23
I believe this is related to clocking issues, and a patch like
From fc9f477c992d4370905cb7e24990e9e2f0a9fabd Mon Sep 17 00:00:00 2001
From: Jonathan Bakker <[email protected]>
Date: Tue, 11 Feb 2020 15:30:14 -0800
Subject: [PATCH] arm: dts: s5pv210: Assign clocks to MMC devices
The SHDCI controller on aries devices is a little bit peculiar about
the clocks and with a slightly off clock can run into errors such as
[ 141.533993] mmc2: ADMA error: 0x02000000
[ 141.535137] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 141.540246] mmc2: sdhci: Sys addr: 0x347e4cc4 | Version: 0x00002401
[ 141.545358] mmc2: sdhci: Blk size: 0x00007004 | Blk cnt: 0x0000fffc
[ 141.550470] mmc2: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
[ 141.555583] mmc2: sdhci: Present: 0x01fa0000 | Host ctl: 0x00000012
[ 141.560696] mmc2: sdhci: Power: 0x00000000 | Blk gap: 0x00000000
[ 141.565809] mmc2: sdhci: Wake-up: 0x00000000 | Clock: 0x0000010f
[ 141.570921] mmc2: sdhci: Timeout: 0x0000000a | Int stat: 0x00000003
[ 141.576034] mmc2: sdhci: Int enab: 0x03ff004b | Sig enab: 0x03ff004b
[ 141.581147] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000001
[ 141.586259] mmc2: sdhci: Caps: 0x05e80080 | Caps_1: 0x00000000
[ 141.591372] mmc2: sdhci: Cmd: 0x0000163a | Max curr: 0x00000000
[ 141.596485] mmc2: sdhci: Resp[0]: 0x00000920 | Resp[1]: 0x00000000
[ 141.601597] mmc2: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 141.606710] mmc2: sdhci: Host ctl2: 0x00000000
[ 141.609831] mmc2: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x349a3208
[ 141.614942] mmc2: sdhci: ============================================
[ 141.620057] mmc2: sdhci: 349a3200: DMA 0x347e4cc0, LEN 0x0004, Attr=0x23
Specifically assign the mmc sclks to be parented from MPLL with specific
rates that match the vendor kernel.
Signed-off-by: Jonathan Bakker <[email protected]>
---
arch/arm/boot/dts/s5pv210-aries.dtsi | 8 ++++++++
arch/arm/boot/dts/s5pv210-galaxys.dts | 4 ++++
2 files changed, 12 insertions(+)
diff --git a/arch/arm/boot/dts/s5pv210-aries.dtsi b/arch/arm/boot/dts/s5pv210-aries.dtsi
index 13cd7899497c..f1dd5ff9a965 100644
--- a/arch/arm/boot/dts/s5pv210-aries.dtsi
+++ b/arch/arm/boot/dts/s5pv210-aries.dtsi
@@ -1019,6 +1019,10 @@
non-removable;
status = "okay";
+ assigned-clocks = <&clocks MOUT_MMC1>, <&clocks SCLK_MMC1>;
+ assigned-clock-rates = <0>, <50000000>;
+ assigned-clock-parents = <&clocks MOUT_MPLL>;
+
wlan@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
@@ -1035,6 +1039,10 @@
pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4 &tf_detect>;
pinctrl-names = "default";
status = "okay";
+
+ assigned-clocks = <&clocks MOUT_MMC2>, <&clocks SCLK_MMC2>;
+ assigned-clock-rates = <0>, <50000000>;
+ assigned-clock-parents = <&clocks MOUT_MPLL>;
};
&uart0 {
diff --git a/arch/arm/boot/dts/s5pv210-galaxys.dts b/arch/arm/boot/dts/s5pv210-galaxys.dts
index fa4ad4dfa8af..abea15c0e892 100644
--- a/arch/arm/boot/dts/s5pv210-galaxys.dts
+++ b/arch/arm/boot/dts/s5pv210-galaxys.dts
@@ -613,6 +613,10 @@
pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4>;
pinctrl-names = "default";
status = "okay";
+
+ assigned-clocks = <&clocks MOUT_MMC0>, <&clocks SCLK_MMC0>;
+ assigned-clock-rates = <0>, <52000000>;
+ assigned-clock-parents = <&clocks MOUT_MPLL>;
};
&uart3 {
--
2.20.1
appears to solve things. This matches the clock configuration from the vendor kernel.
Nodes and defconfig changes for:
Branch for-upstream/aries-patches-v3
TODO: need to wait till all other patches are applied (moved from linux-next).
Patches submited to mainline, waiting for feedback.
After merge, two patches adding it to aries can submited with other (vibrator/audio/lcd/etc).
It looks like it's missing only dtsi node.
There is some code for testing https://git.linuxtv.org/snawrocki/samsung-utils.git/tree/v4l2-jpeg-codec-test?h=devel&id=487381abe368a430cdfb226cf69f6ba6e2481eff
Branch created at https://github.com/PabloPL/linux/tree/for-upstream/yas529-iio and is heavily inspired by the invesense driver (eg https://android.googlesource.com/kernel/tegra/+/f1e961e877025f60cc409180350a3def85f26f64/drivers/misc/inv_mpu/compass/yas529-kernel.c) as opposed to our stock one.
Appears to work as expected, although the calibration and/or scale of it may be off (magnetic sensors are way outside my knowledge range)
Info sheet at https://www.digchip.com/datasheets/parts/datasheet/535/YAS529-pdf.php but there's no public datasheet.
I first noticed with 5.10 that the display has stopped working. Need to bisect to figure out why. 5.9-rc2 worked properly.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.