1#!/bin/bash 2# Copyright (c) 2021 Huawei Device Co., Ltd. 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15set -e 16 17kernel_src_path=${1} 18kernel_patch_path=${2} 19 20patch_list=( 21 arch.patch 22 others.patch 23 kernel.patch 24 sound.patch 25 drivers.patch 26 net.patch 27 include.patch 28) 29 30delete_list=( 31 drivers/devfreq/rk3399_dmc.c 32 drivers/dma-buf/heaps/heap-helpers.c 33 drivers/dma-buf/heaps/heap-helpers.h 34) 35 36copy_list=( 37 driv/char/* drivers/char/ 38 driv/clk/* drivers/clk/rockchip/ 39 driv/cpufreq/* drivers/cpufreq/ 40 driv/devfreq/* drivers/devfreq/ 41 driv/devfreq/event/* drivers/devfreq/event/ 42 driv/dma-buf/* drivers/dma-buf/heaps/ 43 driv/gpu/bridge/rk* drivers/gpu/drm/bridge/ 44 driv/gpu/bridge/dw* drivers/gpu/drm/bridge/synopsys/ 45 driv/gpu/rockchip/* drivers/gpu/drm/rockchip/ 46 driv/input/remotectl drivers/input/ 47 driv/input/touchscreen/* drivers/input/touchscreen/ 48 driv/media/i2c/* drivers/media/i2c/ 49 driv/media/cif drivers/media/platform/rockchip/ 50 driv/media/isp drivers/media/platform/rockchip/ 51 driv/media/ispp drivers/media/platform/rockchip/ 52 driv/net/rockchip_wlan drivers/net/wireless/ 53 driv/net/stmmac/* drivers/net/ethernet/stmicro/stmmac/ 54 driv/phy/* drivers/phy/rockchip/ 55 driv/soc/* drivers/soc/rockchip/ 56 driv/video/rockchip drivers/video/ 57 incl/drm/* include/drm/ 58 incl/dt-bindings/clock/* include/dt-bindings/clock/ 59 incl/dt-bindings/current/* include/dt-bindings/ 60 incl/dt-bindings/display/* include/dt-bindings/display/ 61 incl/dt-bindings/input/* include/dt-bindings/input/ 62 incl/dt-bindings/memory/* include/dt-bindings/memory/ 63 incl/dt-bindings/phy/* include/dt-bindings/phy/ 64 incl/dt-bindings/soc/* include/dt-bindings/soc/ 65 incl/linux/clk/* include/linux/clk/ 66 incl/linux/current/* include/linux/ 67 incl/linux/phy/* include/linux/phy/ 68 incl/linux/power/* include/linux/power/ 69 incl/linux/rockchip include/linux/soc/ 70 incl/linux/usb/* include/linux/usb/ 71 incl/media/* include/media/ 72 incl/soc/* include/soc/rockchip/ 73 incl/treace/events/* include/trace/events/ 74 # incl/treace/hooks include/trace/ 75 incl/uapi/drm/* include/uapi/drm/ 76 incl/uapi/linux/* include/uapi/linux/ 77 incl/uapi/misc/* include/uapi/misc/ 78 _net/* net/rfkill/ 79) 80 81function copy_kernel_files() 82{ 83 for ((i=0; i<${#copy_list[*]}; i+=2)) 84 do 85 cp -arf ${kernel_src_path}/${copy_list[$i]} ${copy_list[$(expr $i+1)]} 86 echo "copy ${copy_list[$i]} to ${copy_list[$(expr $i+1)]} success" 87 done 88} 89 90function delete_kernel_files() 91{ 92 for ((i=0; i<${#delete_list[*]}; i++)) 93 do 94 rm -f ${delete_list[$i]} 95 echo "delete ${delete_list[$i]} success" 96 done 97} 98 99function apply_rk3399_kernel_patch() 100{ 101 for ((i = 0; i < ${#patch_list[*]}; i++)) 102 do 103 patch -p1 < ${kernel_patch_path}/${patch_list[$i]} 104 echo "patch for ${patch_list[$i]} success." 105 done 106} 107 108copy_kernel_files 109delete_kernel_files 110apply_rk3399_kernel_patch 111