Nexus kernel sandbox

Материал из Toshiba AC100 wiki
Перейти к: навигация, поиск

Nexus current kernel commit check

Общая концепция, найти не совместимые с нашей бордой патчи и выделить кондициями чтобы эти фичи работали только с нексусом Все id коммитов из моего форка https://github.com/ac100-ru/android_kernel_asus_grouper

struct tegra_ehci_platform_data {
        enum tegra_usb_operating_modes operating_mode;
        /* power down the phy on bus suspend */
        int power_down_on_bus_suspend;
        int hotplug;
        int default_enable;
        void *phy_config;
        enum tegra_usb_phy_type phy_type;
};

Внешний USB порт:

<7>tegra-ehci tegra-ehci.2: port 1 remote wakeup
[  189.021176] tegra-ehci tegra-ehci.2: port 1 remote wakeup
<7>usb usb2: usb wakeup-resume
[  189.030025] usb usb2: usb wakeup-resume
<7>usb usb2: usb auto-resume
[  189.036646] usb usb2: usb auto-resume
<7>tegra-ehci tegra-ehci.2: resume root hub after power loss
[  189.045872] tegra-ehci tegra-ehci.2: resume root hub after power loss

Интересный коммит
f0cda213f67b59c73878b2149a6fabce4a3bdfc5 [PATCH] arm: tegra: enable pll_p clocks by default
e20dfd6911b44244dd6730571183c5b4cf1016ed tegra: usb: otg: Clear only interrupt enabling bits in suspend
99fdd5772f3508315c991e96f86c6ff2a91128eb Modify "GMI_AD14" for GPIO PINMUX fine tuning(Lp0 power saving)

Добавить к нам в борду
c8f379987df789ef2d362a8a88387e943a46d340 PM: debug: Enable CONFIG_PM_DEBUG, debugging mask, and messages.

Возможно надо аналогичный хак делать
435295bcb5e8ef77fb4bba79bc268ee784627632 [Nakasi] Power on/off tuning for reducing screen flicker
3db8fcfde8e652a5318d2d21ec0efc5912352204 Display: pwm clock setting tuning
!!!reverted later!!! 92c01fdf775ba311ddd842c4c14971a6f356dba7 Display: tune power on sequence to reduce flicker

!!! Точно надо добавлять
be0f8169ced0f3e4d5bae61a5a406fe5203795d1 Modify the value of power_down_on_bus_suspend to 0 for the plugged/unplugged issue of USB host driver.


!!! Очень подозрительный usb commit (попробовать ревертить и посмотреть что будет)
e27e3bdc185813462a6c8f5b1b3622c1ae073d1b Modify the values of xcvr_setup_offset, xcvr_hsslew_msb and term_range_adj to pass the USB eye diagram for USB1 in the device mode.
b47c33ca678ff8503b06787b2d9c4e5bfb762a65 According PMU IC version change USB vbus irq trigger.


  • Увеличить CONFIG_PANIC_TIMEOUT=10 может поможет с шатдауном
    • Не подходит. Паника происходит после shutdown так что дело не в таймаутах.
    • Т.к. у самого Нексуса никаких паник нет, дело не ядре похоже.
<3>ulpi_phy_power_off: timeout waiting for phy to stop
[   73.939917] ulpi_phy_power_off: timeout waiting for phy to stop
Disabling non-boot CPUs ...
[   73.948618] Disabling non-boot CPUs ...
stop_machine_cpu_stop smp=0
stop_machine_cpu_stop smp=1
[   73.957869] stop_machine_cpu_stop smp=0
[   73.960439] stop_machine_cpu_stop smp=1
<5>CPU1: shutdown
[   73.973692] CPU1: shutdown
<0>Power down.
[   73.979386] Power down.
<0>Kernel panic - not syncing: Attempted to kill init!
[   73.987278] Kernel panic - not syncing: Attempted to kill init!
[<c00145b4>] (unwind_backtrace+0x0/0xf8) from [<c054b574>] (panic+0x78/0x1b4)
[   74.001017] [<c00145b4>] (unwind_backtrace+0x0/0xf8) from [<c054b574>] (panic+0x78/0x1b4)
[<c054b574>] (panic+0x78/0x1b4) from [<c004e378>] (do_exit+0x5e4/0x6ec)
[   74.016291] [<c054b574>] (panic+0x78/0x1b4) from [<c004e378>] (do_exit+0x5e4/0x6ec)
[<c004e378>] (do_exit+0x5e4/0x6ec) from [<c005f35c>] (sys_reboot+0x158/0x1ec)
[   74.030945] [<c004e378>] (do_exit+0x5e4/0x6ec) from [<c005f35c>] (sys_reboot+0x158/0x1ec)
[<c005f35c>] (sys_reboot+0x158/0x1ec) from [<c000e1c0>] (ret_fast_syscall+0x0/0x3c)
[   74.046643] [<c005f35c>] (sys_reboot+0x158/0x1ec) from [<c000e1c0>] (ret_fast_syscall+0x0/0x3c)
<0>Rebooting in 20 seconds..[   74.057836] Rebooting in 20 seconds..

Возможно надо будет пофиксить если будут проблемы с кнопкой питания
a0cc7eb2b34a5b3c8e25acf85bdfc4e380d02153 arm: tegra: keys: configure VOL_UP/VOL_DOWN with gpio keys not KBC


drivers/usb/host/ehci-tegra.c
drivers/usb/core/hub.c
arch/arm/mach-tegra/usb-phy.c
6c9da50163ca4724082fb208bb536a99b5081815 usb: register the wakeup events for ACOK_RISING and ACOK_FALLING based on PMIC reversion
581cd08c178b714571c356827c6a5b9c8985c9d3 drivers: usb: core: reduce the resume time for HSIC controller.

Проверить работу cdc-acm т.к. у асуса там есть патчи


Cherry-pick ac100/nvec/alc5632 from marvin24 l4t-r16-r2-ac100 branch

Нвидия ветка на которой построено ядро нексуса старее l4t-r16 и даже r15r7 на котором все борды тегра20 строят свои ядра, поэтому нужно пропустить часть не совместимых патчей, также пока не брать переделку нвека пока она не работает корректно

Все id коммитов из ядра marvin24 [email protected]:ac100/marvin24s-kernel.git

843009fefaeb952bc6da4baa9e6dcbf3ca122998 ARM: tegra: paz00: add support serial port on JP1
bae0ed4fed6115aeff5660075ed46305203bdd50 ARM: tegra: paz00: add panel support for paz00
+1ff6b9489fbc737e3e2bc7660b92cebbfaea5247 ARM: tegra: cardhu: Add battery regulator


... f81f6f80da0b9f00a4981e3e7f28346daccb0053 ARM: tegra: paz00: wire up sound to board file
31a0a984465f41076adf29f01c2f650f903de8aa ASoC: tegra: alc5632: copy over sound files
skip a0884b9e42d0b10ca31826440fcac4294e459ada fs: partitions: add support for tegrapart and nvtegra type partitions
dd0cf050866a468b6d9073714c7c0ae26807eb36 ARM: tegra: paz00: add a defconfig


... +4d3962a0cca03aade7209a2e5557c0440c0ebce0 ARM: tegra: paz00: update regulators to match upstream

первый пул от марвина cherry-pick 1ff6b9489fbc737e3e2bc7660b92cebbfaea5247..4d3962a0cca03aade7209a2e5557c0440c0ebce0


так теперь второй
122c5cb72165a41a9749f998f44f21a7094c336b staging: add zsmalloc to Kconfig/Makefile
65ed9818e66f050c69a9a947712598d50524e1a7 ASoC: alc5632: sync with mainline

теперт третий ( для пропуска 5671fe1025a0647ea125d471a8b870a653ba25c7 ARM: tegra: paz00: port to new usb interface)
e488bfb6020bdde26fda53f9128dcb4ba840af4f rt2x00: Add support for BUFFALO WLI-UC-GNM2 to rt2800usb
d5f9dfaa6991f08d663165daaaae062c0c4d1ed3 ARM: tegra: paz00: disable copy of bootloader framebuffer

-теперь четвертый (для пропуска 5b1a53edeae6a57605d15c505ba0b2d82443a6c5 ARM: tegra: paz00: update panel code)
5671fe1025a0647ea125d471a8b870a653ba25c7 ARM: tegra: paz00: port to new usb interface
d03a62985da0a1355c47a99891aa01995035b565 staging: nvec: release sync write lock in error case

41e40ea8d820b1b40a9930cadb11a4b2a5a190ee staging: nvec: fix bus clock


четвертый с половиной
225e770f4fa8d84d321ce0cc3c71bb90b28ea6a6 ARM: tegra: paz00: fix copy'n paste error
d03a62985da0a1355c47a99891aa01995035b565 staging: nvec: release sync write lock in error case

теперь пятый (для пропуска fuse патчей)
5b1a53edeae6a57605d15c505ba0b2d82443a6c5 ARM: tegra: paz00: update panel code
68e8513fa5d5c4ff616becaa1a548da47db43396 ARM: tegra: paz00: update defconfig

шестой пул
ec0d4d2119158c90fae661c67a38da5c3d161b17 ASoC: tegra+alc5632: add speaker enable gpio
eb95d24e1cfc0c4de294e4d5aa8170b4784eed35 ARM: tegra: paz00: update defconfig

-седьмой пул (пропускаем хромиум hdmi патчи)
0a6e00a1b07b66806f7471547650d547c39a3a1d ASoC: tegra: alc5632: make missing speaker gpio non-fatal
838f786c521bd420ace8eb669b6b2e3e154c4ee7 ARM: tegra: paz00: Add spdif_out to clock init

84c6e72201a95bcfb4d9f4f98939f363c324c44a ARM: tegra: paz00: fix wake gpio key

32e89d6e051e322827e4c6dc417b3289ae3ac72d ARM: tegra: paz00: get rid of tegra_gpio_enable/disable
838f786c521bd420ace8eb669b6b2e3e154c4ee7 ARM: tegra: paz00: Add spdif_out to clock init


-восьмой пул 68d10f040e7f81c01d6450e4968f449163383c66 CHROMIUM: video: tegra: Calculate HDMI audio CTS/N values
e41e5e58601d9ec3e51b1630f0ff1df2af53f7f7 ARM: tegra: paz00: guess some 166 MHz clock timings for Micron

4e2cf3f7c8ec8b8e96f0f8bf5e11f45026c83237 ARM: tegra: emc: use straps for none lpddr2 machines

3d958d674b14c710b1e6644c95158b62fdb75d2a staging: nvec: fix event reports
e41e5e58601d9ec3e51b1630f0ff1df2af53f7f7 ARM: tegra: paz00: guess some 166 MHz clock timings for Micron

девятый
22db1cfa0471b58f955fcc412d12186b7d8acecd ARM: tegra: usb_phy: prevent illegal access to registers
8c1ae69aa5ff4d87229d3a828b8be6cc7f444ef7 ARM: tegra: paz00: correct core_off_timer

... дальше ручками по одному

Cherry-pick my android fixes for ac100

Перенести в ядро нексуса все мои фиксы касательно андроида

Самый новый наверху, самый старый внизу

f382887df47b1c0b35064f2230c957463a1b6d5a ANDROID: ARM: tegra: paz00: Update uart driver
77815929822aa55d49594cbabcda4420858d0546 ANDROID: nvec: fix battery level uevent polling
6bcb79f602c129e53664b1f74f15fc4697322a68 ANDROID: ARM: tegra: paz00: Set tegra_paz00_fixup bank size to 512M
-сомнительный коммит f689f8a57b5b58948313fcdc635492f776d37ee3 ANDROID: ARM: tegra: paz00: Fb flip removed and default brightness lowered
3a5820a38fe96d770152af7408ef2b341564672b ANDROID: SoC: tegra+alc5632: Headset switch for Android
-эти уже есть в дереве марвина a42b66e57204da3e3e3678c95135341208e6e720 ARM: tegra: paz00: Add spdif_out to clock init
-эти уже есть в дереве марвина 8cf1c0f21ad680c1d21162aab9609de0e0c9e526 ASoC: tegra: alc5632: Enable HDMI/SPDIF output
0fe05276a00f8d6c111daa1aef92ee0129023afe ANDROID: ARM: tegra: paz00: Change machine id to paz00
fdbba64d0a5d60abeac721b20e5552d8ed9b7f0f ANDROID: ARM: tegra: paz00: Reserve 128MB for GPU memory
0bc47b5ebb261a81cb7d8e1717ab651869655d10 ANDROID: ARM: tegra: paz00: Earlysuspend support in panel driver


Various compile fixes

From mainline
usb: Fix build error due to dma_mask is not at pdev_archdata at ARM

For marvin24 new nvec version
830f49fcc4ab6295fe9c151db7b01b0891f5d912 drivercore: Generalize module_platform_driver
bb67c028a3e4ab48c73690fcebc8eaf1fc439190 I2C: Add helper macro for i2c_driver boilerplate

From various downstream nvidia kernels
ARM: tegra2: clock: Put Tegra2 clocks to known states
ARM: tegra: rename fuse driver

1ee1e4615c7936b635bbf12bacfe132cdbf34324 asoc: tegra: Add PCM driver for TDM mode
3bf8ef9ba638d3bcfadca18f3b314b3be110b797 ASoC: Tegra: Pass snd_soc_card handle in tegra_asoc_utils_init

Test new marvin24 new nvec version

Понять можно эти патчи тестить по одному или это один патч разделенный на части, если можно протестить если нет двигаться дальше

Список патчей нового нвека, самый первый наверху самый последний внизу:

начало нового nvec кода

Patch Compile test Comment Problems
13c5aec375a0e3c056a6824a3558cbf9722ddc80 staging: nvec: move toggle global event reporting to its own function Ok
8d94444fe0763d4a8919bd5fd870cc796221d69c staging: nvec: cleanup the string mess Ok
636870f83bbac6482800c61d3be67bce4af5833c staging: nvec: rename led driver to board specific paz00 driver Ok Config change required
d556c8b253d86414927a9f9c3dfe2985fb1d1ced staging: nvec: use dev_warn instead of printk Ok
b278fe5059d8bbae42ad271b966f4ba8e08158a3 staging: nvec: convert to devm_ functions Ok
0a4a29b2bb937109e07803448cf96725f4be1535 staging: nvec: cleanup driver registration Ok
9c7b7963052c3d3b1914d7781c4d275caeb834d4 staging: nvec: cleanup powermanagement callbacks Ok
fbd803800a021402a47372be19a4883f1011df97 staging: nvec: add remove function to nvec childs Ok
40dde2524c26771df8f7d3683a6067e613abf24c staging: nvec: move led init out of probe to its own function Ok
eed2d1660b72b61f2ce6f511c28d33ee45251d14 staging: nvec: don't reset the mouse on init Ok
5ec1f71c706ff3fb8652fbe9e714e61101cead9c staging: nvec: add gpio driver to oem driver Ok
1dd44a3a85a47fb92453a32c0afb2a11728ce864 staging: nvec: remove mute function from events driver Ok
ec0d4d2119158c90fae661c67a38da5c3d161b17 ASoC: tegra+alc5632: add speaker enable gpio Ok
fac30e112e149051d9061a50ed46b2416fdc7826 staging: nvec: make event driver configurable Ok
7533a91fd86cf6e6c6a71e563d0d6f095791779d ARM: tegra: paz00: register nvec early Ok