• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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