Skip to content
This repository has been archived by the owner on Oct 5, 2018. It is now read-only.

Working android hikey linaro 4.4 #187

Open
wants to merge 6,442 commits into
base: hikey-mainline-rebase
Choose a base branch
from

Conversation

nyadla-sys
Copy link

Adding HiFi DSP Driver & IPC ,Mailbox driver

James Hogan and others added 30 commits March 18, 2017 11:21
am: 1276510

Change-Id: Ib7ca5ebf52d798a057a0d509226b59116da302e9
am: 0748934

Change-Id: I20f387e74bc1cdd5c4a11d55b65e443b85606c0b
am: 2ca39d1

Change-Id: I4db441c5727a8caef2b50f3a385197a1076ab55d
am: f47b97f

Change-Id: Ifad25d5604ef1bc2c10cc4c5414348c23f37beb0
am: 10af248

Change-Id: I5c852ac4d0fbe9276986df1a57e93979ec8f6cf9
am: 4a1a3bb

Change-Id: I7b29e1d8050144b745f4885566e37d2bbca122a3
am: 40c5634

Change-Id: I41ed67d92ce661cb607ae65e297856b34e6a05d5
…ntrollers

am: cf09c7d

Change-Id: I5cab1e3af61dd148ff737ba1dc68935407342983
am: 3cdc946

Change-Id: I2a29b5d7a753bd94d320bda52427bd62ab042787
am: 54f11a9

Change-Id: If2605f1daf506ae915776138b6268d0769a39487
am: 179295c

Change-Id: If8771741f6228ec6af891a160d5af5f6789f5409
am: 6498086

Change-Id: Ib6ec11fa0bef224af9368ee4aba48d8d4663da50
am: e71c7ba

Change-Id: I865b297bdb9d8c9eb69e7548ceef6e640f9061e6
am: 72bb2b9

Change-Id: Ie1079bef9c43dce4ccecb52acbee12b4dd044e3f
am: 72ca0ab

Change-Id: I6b2c536ac7ea2371badb4b8080d2806a001a44d1
am: 61fbad6

Change-Id: I5422457ab66bd8a08f22fae79351dc7133d4f225
am: b0e8570

Change-Id: I12bd03d14c3bf2c1e5d2c70e1765eba1d6d202b9
am: a084aee

Change-Id: I0bc63ef6143c3bbe7e50c89ece98ab39a93d0082
am: 66dd58f

Change-Id: If1b31bbd5fe6a404d167a6b207bef928b998fba0
am: cd8ad4d

Change-Id: I3348df4146daa436541af94224776d3cbc6f45b2
Change-Id: Idd5f2956c09b193b2a6ba02410e90b52aa2284d7
dm-android-verity depends on optional kernel command line parameters.
When compiled as module the __setup macro ends up being a no-op
resulting in the following warnings:

/work/build/batch/drivers/md/dm-android-verity.c:91:19: warning: 'verity_buildvariant' defined but not used [-Wunused-function]
 static int __init verity_buildvariant(char *line)
                   ^~~~~~~~~~~~~~~~~~~
/work/build/batch/drivers/md/dm-android-verity.c:83:19: warning: 'verity_keyid_param' defined but not used [-Wunused-function]
 static int __init verity_keyid_param(char *line)
                   ^~~~~~~~~~~~~~~~~~
/work/build/batch/drivers/md/dm-android-verity.c:75:19: warning: 'verity_mode_param' defined but not used [-Wunused-function]
 static int __init verity_mode_param(char *line)
                   ^~~~~~~~~~~~~~~~~
/work/build/batch/drivers/md/dm-android-verity.c:67:19: warning: 'verified_boot_state_param' defined but not used [-Wunused-function]
 static int __init verified_boot_state_param(char *line)
                   ^~~~~~~~~~~~~~~~~~~~~~~~~
Tested with allmodconfig.

Change-Id: Idfe0c97b216bb620cc7264e968b494eb3a765157
Signed-off-by: Badhri Jagan Sridharan <[email protected]>
In the eMMC 5.0 version of the spec, several EXT_CSD fields about
device lifetime are added.

 - Two types of estimated indications reflected by averaged wear out of memory
 - An indication reflected by average reserved blocks

Export the information through sysfs.

Signed-off-by: Jungseung Lee <[email protected]>
Reviewed-by: Jaehoon Chung <[email protected]>
Reviewed-by: Shawn Lin <[email protected]>
Signed-off-by: Ulf Hansson <[email protected]>
Change-Id: If23bc838327ef751ee65baadc429e218eaa2a848
Signed-off-by: Jin Qian <[email protected]>
In the old code base it uses clock name to access clock nodes. When
change to use cpufreq-dt driver, we need support to use clock Id to
access these clock nodes, but current stub clock driver wrongly to
assign clock id and finally GPU clock overwrites other clocks, so
finally cpufreq cannot work.

This patch is to fix this issue to register clock nodes properly with
correct clock id.

Signed-off-by: Leo Yan <[email protected]>
Hisilicon releases new MCU firmware, which can resolve hang issue after
enable cluster level low power state. This dependency patch is included
in the repo: github.com/96boards-hikey/tools-images-hikey960; the commit
id is 9891e5c9ed9a ("fastboot.img: lpm3: sec_xloader: updated to fix
graphics performance issue"). So make sure the Hisilicon firmware has
been updated to latest version.

Signed-off-by: Leo Yan <[email protected]>
commit d1b4c68 upstream.

mmapped netlink has a number of unresolved issues:

- TX zerocopy support had to be disabled more than a year ago via
  commit 4682a03 ("netlink: Always copy on mmap TX.")
  because the content of the mmapped area can change after netlink
  attribute validation but before message processing.

- RX support was implemented mainly to speed up nfqueue dumping packet
  payload to userspace.  However, since commit ae08ce0
  ("netfilter: nfnetlink_queue: zero copy support") we avoid one copy
  with the socket-based interface too (via the skb_zerocopy helper).

The other problem is that skbs attached to mmaped netlink socket
behave different from normal skbs:

- they don't have a shinfo area, so all functions that use skb_shinfo()
(e.g. skb_clone) cannot be used.

- reserving headroom prevents userspace from seeing the content as
it expects message to start at skb->head.
See for instance
commit aa3a022 ("netlink: not trim skb for mmaped socket when dump").

- skbs handed e.g. to netlink_ack must have non-NULL skb->sk, else we
crash because it needs the sk to check if a tx ring is attached.

Also not obvious, leads to non-intuitive bug fixes such as 7c7bdf3
("netfilter: nfnetlink: use original skbuff when acking batches").

mmaped netlink also didn't play nicely with the skb_zerocopy helper
used by nfqueue and openvswitch.  Daniel Borkmann fixed this via
commit 6bb0fef ("netlink, mmap: fix edge-case leakages in nf queue
zero-copy")' but at the cost of also needing to provide remaining
length to the allocation function.

nfqueue also has problems when used with mmaped rx netlink:
- mmaped netlink doesn't allow use of nfqueue batch verdict messages.
  Problem is that in the mmap case, the allocation time also determines
  the ordering in which the frame will be seen by userspace (A
  allocating before B means that A is located in earlier ring slot,
  but this also means that B might get a lower sequence number then A
  since seqno is decided later.  To fix this we would need to extend the
  spinlocked region to also cover the allocation and message setup which
  isn't desirable.
- nfqueue can now be configured to queue large (GSO) skbs to userspace.
  Queing GSO packets is faster than having to force a software segmentation
  in the kernel, so this is a desirable option.  However, with a mmap based
  ring one has to use 64kb per ring slot element, else mmap has to fall back
  to the socket path (NL_MMAP_STATUS_COPY) for all large packets.

To use the mmap interface, userspace not only has to probe for mmap netlink
support, it also has to implement a recv/socket receive path in order to
handle messages that exceed the size of an rx ring element.

Cc: Daniel Borkmann <[email protected]>
Cc: Ken-ichirou MATSUZAWA <[email protected]>
Cc: Pablo Neira Ayuso <[email protected]>
Cc: Patrick McHardy <[email protected]>
Cc: Thomas Graf <[email protected]>
Signed-off-by: Florian Westphal <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Cc: Shi Yuejie <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
[ Upstream commit 4e37d69 ]

The incorrect check caused an off-by-one error: the maximum VID 0xffffff
was unusable.

Fixes: d342894 ("vxlan: virtual extensible lan")
Signed-off-by: Matthias Schiffer <[email protected]>
Acked-by: Jiri Benc <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
[ Upstream commit 7dcdf94 ]

Align vti6 with vti by returning GRE_KEY flag. This enables iproute2
to display tunnel keys on "ip -6 tunnel show"

Signed-off-by: David Forster <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
[ Upstream commit 6e28099 ]

Restore the lost masking of TOS in input route code to
allow ip rules to match it properly.

Problem [1] noticed by Shmulik Ladkani <[email protected]>

[1] http://marc.info/?t=137331755300040&r=1&w=2

Fixes: 89aef89 ("ipv4: Delete routing cache.")
Signed-off-by: Julian Anastasov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
gregkh and others added 29 commits April 4, 2017 19:54
This adds CONFIG_MODULES, CONFIG_MODULE_UNLOAD, and CONFIG_MODVERSIONS
which are required by the O release.

Bug: 35803310
Signed-off-by: Greg Kroah-Hartman <[email protected]>
(cherry picked from commit 56f22e6)
As of Android N, this is required to close sockets when a
network disconnects.

Change-Id: I9fe81c5fc5224c17bfd8d9e236ea9e436b5971cb
(cherry picked from commit 4a15cee)
Signed-off-by: Greg Kroah-Hartman <[email protected]>
This implements:
  https://tools.ietf.org/html/rfc7559

Backoff is performed according to RFC3315 section 14:
  https://tools.ietf.org/html/rfc3315#section-14

We allow setting /proc/sys/net/ipv6/conf/*/router_solicitations
to a negative value meaning an unlimited number of retransmits,
and we make this the new default (inline with the RFC).

We also add a new setting:
  /proc/sys/net/ipv6/conf/*/router_solicitation_max_interval
defaulting to 1 hour (per RFC recommendation).

Signed-off-by: Maciej Żenczykowski <[email protected]>
Acked-by: Erik Kline <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
(cherry picked from commit bd11f07 in
DaveM's net-next/master, should make Linus' tree in 4.9-rc1)
Change-Id: Ia32cdc5c61481893ef8040734e014bf2229fc39e
Changes in 4.4.59:
	xfrm: policy: init locks early
	xfrm_user: validate XFRM_MSG_NEWAE XFRMA_REPLAY_ESN_VAL replay_window
	xfrm_user: validate XFRM_MSG_NEWAE incoming ESN size harder
	virtio_balloon: init 1st buffer in stats vq
	pinctrl: qcom: Don't clear status bit on irq_unmask
	c6x/ptrace: Remove useless PTRACE_SETREGSET implementation
	h8300/ptrace: Fix incorrect register transfer count
	mips/ptrace: Preserve previous registers for short regset write
	sparc/ptrace: Preserve previous registers for short regset write
	metag/ptrace: Preserve previous registers for short regset write
	metag/ptrace: Provide default TXSTATUS for short NT_PRSTATUS
	metag/ptrace: Reject partial NT_METAG_RPIPE writes
	fscrypt: remove broken support for detecting keyring key revocation
	sched/rt: Add a missing rescheduling point
	Linux 4.4.59

Change-Id: Ifa35307b133cbf29d0a0084bb78a7b0436182b53
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Adapted from wrapfs
commit 5be6de9ecf02 ("Wrapfs: use vm_munmap in ->mmap")
commit 2c9f6014a8bb ("Wrapfs: remove unnecessary call
to vm_unmap in ->mmap")

Code is unnecessary and causes deadlocks in newer kernels.

Signed-off-by: Erez Zadok <[email protected]>
Signed-off-by: Daniel Rosenberg <[email protected]>
Bug: 35766959
Change-Id: Ia252d60c60799d7e28fc5f1f0f5b5ec2430a2379
Adapted from wrapfs
commit fbc9c6f83ea6 ("Wrapfs: copy lower inode attributes in ->ioctl")
commit e97d8e26cc9e ("Wrapfs: use file_inode helper")

Some ioctls (e.g., EXT2_IOC_SETFLAGS) can change inode attributes, so copy
them from lower inode.

Signed-off-by: Erez Zadok <[email protected]>
Signed-off-by: Daniel Rosenberg <[email protected]>
Bug: 35766959
Change-Id: I0f12684b9dbd4088b4a622c7ea9c03087f40e572
Adapted from wrapfs
commit 1d1d23a47baa ("Wrapfs: fix ->llseek to update upper and lower
offsets")

Fixes bug: xfstests generic/257. f_pos consistently is required by and
only by dir_ops->wrapfs_readdir, main_ops is not affected.

Signed-off-by: Erez Zadok <[email protected]>
Signed-off-by: Mengyang Li <[email protected]>
Signed-off-by: Daniel Rosenberg <[email protected]>
Bug: 35766959
Change-Id: I360a1368ac37ea8966910a58972b81504031d437
Adapted from wrapfs
commit f398bf6a7377 ("Wrapfs: add read_iter/write_iter opeations")

Signed-off-by: Erez Zadok <[email protected]>
Signed-off-by: Mengyang Li <[email protected]>
Signed-off-by: Daniel Rosenberg <[email protected]>
Bug: 35766959
Change-Id: I2b3de59c9682fc705bf21df0de6df81e76fd2e40
adapted from wrapfs
commit 9671770ff8b9 ("Wrapfs: use d_splice_alias")

Refactor interpose code to allow lookup to use d_splice_alias.

Signed-off-by: Erez Zadok <[email protected]>
Signed-off-by: Daniel Rosenberg <[email protected]>
Bug: 35766959
Change-Id: Icf51db8658202c48456724275b03dc77f73f585b
fix the bug that always-on type-c vbus cause the usb enumeration error

Signed-off-by: Li Rui <[email protected]>
Signed-off-by: Fan Ning <[email protected]>
Reviewed-by: Chen Feng <[email protected]>
HiKey960 product version uses TI WL1837MOD module. It's better to change
compatible string to ti,wl1837.

The very first few boards (called v1) are mounted TI WL1835MOD. But drivers
of wl1835 and wl1837 are the same, so this change is compatible with v1.

Signed-off-by: Guodong Xu <[email protected]>
Signed-off-by: Daniel Rosenberg <[email protected]>
Change-Id: I958c7c226d4e9265fea8996803e5b004fb33d8ad
Change-Id: I02bb7b104789a85f3fde33de01900ae05f4a47d8
Signed-off-by: Dmitry Shmidt <[email protected]>
…-hikey-linaro-4.4' into working-android-hikey-linaro-4.4

* remotes/parter-aosp/mirror-aosp-android-hikey-linaro-4.4: (695 commits)
  ARM: hikey: Choose CONFIG_IMG_DTB for default Image-dtb compilation
  Revert "HACK: ARM64: Replace default target from Image.gz-dtb to Image-dtb"
  ANDROID: sdcardfs: update module info
  ANDROID: sdcardfs: use d_splice_alias
  ANDROID: sdcardfs: add read_iter/write_iter opeations
  ANDROID: sdcardfs: fix ->llseek to update upper and lower offset
  ANDROID: sdcardfs: copy lower inode attributes in ->ioctl
  ANDROID: sdcardfs: remove unnecessary call to do_munmap
  Merge 4.4.59 into android-4.4
  UPSTREAM: ipv6 addrconf: implement RFC7559 router solicitation backoff
  android: base-cfg: enable CONFIG_INET_DIAG_DESTROY
  ANDROID: android-base.cfg: add CONFIG_MODULES option
  ANDROID: android-base.cfg: add CONFIG_IKCONFIG option
  ANDROID: android-base.cfg: properly sort the file
  ANDROID: binder: add hwbinder,vndbinder to BINDER_DEVICES.
  ANDROID: sort android-recommended.cfg
  UPSTREAM: config/android: Remove CONFIG_IPV6_PRIVACY
  UPSTREAM: config: android: set SELinux as default security mode
  config: android: move device mapper options to recommended
  ANDROID: ARM64: Allow to choose appended kernel image
  ...
sysfs: cannot create duplicate filename '/bus/platform/devices/e8a09000.pctrl'
------------[ cut here ]------------
WARNING: at fs/sysfs/dir.c:31

CPU: 6 PID: 1 Comm: swapper/0 Not tainted 4.4.21+ #3
Hardware name: HiKey960 (DT)
task: ffffffc0b9490000 ti: ffffffc0b9474000 task.ti: ffffffc0b9474000
PC is at sysfs_warn_dup+0x60/0x84
LR is at sysfs_warn_dup+0x60/0x84
......

Removing unused and duplicated nodes in dts fixes the warning above.

Signed-off-by: Zhong Kaihua <[email protected]>
If DTO interrupt does NOT come in sending data state,
we should notify the driver to terminate current transfer
and report a data timeout to the core.

Signed-off-by: chenjun <[email protected]>
Signed-off-by: Chen Feng <[email protected]>
…play driver

add these configs :
+CONFIG_DRM_KIRIN_960=y
+CONFIG_HISI_KIRIN_DW_DSI=y
+CONFIG_DRM_PANEL_HIKEY960_NTE300NTS=y

remove these config:
-CONFIG_DRM_I2C_ADV7511=y
-CONFIG_DRM_HISI_KIRIN=y
-CONFIG_HISI_FB_KIRIN960=y

In the old code base, framebuffer driver don't support different
resolution switching.
drm display driver support to add cmdline attribute (such as:
"video=HDMI-A-1:1920x1080@60"
"video=HDMI-A-1:1280x720@60" etc.) for switching specified resolution.

This patch is used with new gralloc and new gpu library file.

Signed-off-by: Chen Feng <[email protected]>
Signed-off-by: Liwei Cai <[email protected]>
Signed-off-by: John Stultz <[email protected]>
There is an error in dss driver of calculating dfs value.
Solve it by using unsigned value type calculation.

Signed-off-by: cailiwei <[email protected]>
Signed-off-by: John Stultz <[email protected]>
The use of synchronization mechanisms to deal with the display of
buffer, to solve the problem of display tearing.

Signed-off-by: Wanchun Zheng <[email protected]>
Signed-off-by: Liwei Cai <[email protected]>
Signed-off-by: John Stultz <[email protected]>
The 1ms stalls wating for vsync was causing major performance issues
so this drops it down to 250us which seems to work better.

Signed-off-by: John Stultz <[email protected]>
In clock driver initialize phase the spinlock is missed to assignment
to struct clkgate_separated, finally there have no locking to protect
exclusive accessing for clock registers.

This bug introduces the console has no output after enable coresight
driver on 96boards Hikey; this is because console using UART3, which
has shared the same register with coresight clock enabling bit. After
applied this patch it can assign lock properly to protect exclusive
accessing, and console can work well after enabled coresight modules.

Fixes: 0aa0c95 ("clk: hisilicon: add common clock support")
Signed-off-by: Leo Yan <[email protected]>
Signed-off-by: Stephen Boyd <[email protected]>
Fix device tree binding for CPU type from 'ca72' to 'ca73'.

Signed-off-by: Leo Yan <[email protected]>
The stub clock driver sends message to mailbox channel to change
frequency. In the old code the stub clock driver use local variables to
store messages, so there have some corner cases the stub clock driver
has bailed out but message driver has not really finished transferring.
As result, the mailbox driver will read the staled data from stack; so
sometimes the CPU frequency cannot be really changed, and in serious
result this will introduce MCU cannot work properly so the mailbox
cannot get any ack from MCU.

So this patch is to use stub clock driver structure to store messages;
so the messages will be kept even the stub clock driver has bailed out,
finally we can get safe data for mailbox driver.

Signed-off-by: Leo Yan <[email protected]>
The correct gpio config on Hikey960 board should be:

            V1      V2
USER_LED1   gpio208 gpio150
USER_LED2   gpio209 gpio151
USER_LED3   gpio210 gpio189
USER_LED4   gpio211 gpio190
wifi_active gpio205 gpio205
bt_active   gpio207 gpio207

The 'compatible' and 'status' nodes are modified to 'gpio-leds' and 'ok'
according to BoardID in bootloader.

Signed-off-by: Zhong Kaihua <[email protected]>
Add clocks for isp driver on Hikey960 board.
…s-hikey/linux into working-android-hikey-linaro-4.4

* 'working-android-hikey-linaro-4.4' of github.com:96boards-hikey/linux:
  clk: Hi3660: fix for stub clock driver
  dts: arm64: hi3660: change CPU type for ca73
@docularxu
Copy link
Member

This pull-request can be closed. Niranjan has sent patches to me by https://github.com/96boards-hikey/linux/

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.