Commit graph

25314 commits

Author SHA1 Message Date
Jordan Crouse
48db6e4716 drm/msm: Change the profiling structure
Remove the queued time from the profile struct and turn the submit time
into a proper timespec (tv_sec + tv_nsec).  This should sync up better
with what userspace is used to seeing.

Change-Id: Ic0dedbad0621fa248e6cffde2d1ee3f9b609e19d
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-07-03 13:40:27 -06:00
Jordan Crouse
130cbfae08 drm/msm: Add kernel side submit profiling and tracing
Record the GPU always on timer value at the start and end of a
submission on the ringbuffer. Since the timer runs at a constant
19.2 Mhz this is a handy way of tracking how long each
submission takes.

The timer values are recorded in the memptrs. Each ringbuffer is
given a circular list of 128 entries to store the event ticks;
this should be enough to avoid running out of room even when the
ring is completely full of submissions.

Add trace events for the user to track when submissions are
queued, submitted to the ringbuffer and retired. The submitted
trace point shows the GPU ticks and the current kernel time at
submit time (as read by the CPU) and the retired trace event shows
the GPU ticks at submission start/end as read by the GPU. Taken
together these two events can provide a pretty close match between
the current GPU time and the kernel time which is handy for tracing
tools that try to match up the various kernel events with one
another.

Change-Id: Ic0dedbadbcf89f032890820785b9fb49a6362b01
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
2017-07-03 13:40:26 -06:00
Linux Build Service Account
74b5a0f867 Merge "Merge branch 'android-4.4@77ddb50' (v4.4.74) into 'msm-4.4'" 2017-07-03 07:57:56 -07:00
Linux Build Service Account
bc399a65c4 Merge "msm: kgsl: Limit the frequency of logging on memory allocation failure" 2017-07-02 16:11:43 -07:00
Linux Build Service Account
b0bcf92508 Merge "msm: kgsl: Directly return page size of the supported pool" 2017-07-02 16:11:40 -07:00
Deepak Kumar
40b830cd5e msm: kgsl: Do not memset pages to zero while adding to pool
Doing a memset to zero while adding a page to pool is not
efficient as the page added to the pool can be returned to
system in case shrinker kicks in. In this scenario, time spent
in zeroing the page is a waste.

Instead of zeroing the page while adding it to pool zero the
page when it is taken from the pool. This helps in reducing
the time taken to free big chunk of memory. Also, allocation
time shouldn't be a problem as zeroing of page anyways happens
during allocation in case it is allocated from system.

Change-Id: I41ab2cb88fb4fd9854d2cc9a45bb60fc7013286a
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
2017-06-30 20:44:10 +05:30
Deepak Kumar
d9eb3ce9a8 msm: kgsl: Limit the frequency of logging on memory allocation failure
Excessive logging due to several successive memory allocation failure
may cause a watchdog bite. Hence, this change adds ratelimit to logging
on memory allocation failure.

Change-Id: I8e5d78918a32c48ef7fa587f3dc63cbd1f065d5f
Signed-off-by: Deepak Kumar <dkumar@codeaurora.org>
2017-06-30 20:39:29 +05:30
Rajesh Kemisetti
a92d182205 msm: kgsl: Make sure regulators are ON before GPU clocks are forced on
The debug option to always ON the GPU clocks does not check the regulator
state. If the user tries to set this option while GPU is in Slumber state
then enabling clocks will fail.

Make sure we enable the GPU regulators before enabling its clocks.

Change-Id: Id77773224c674fe2e1b6179a039750b24e5e5f87
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
2017-06-30 18:55:28 +05:30
Abhinav Kumar
f9dd40aaef drm/msm: add support for parsing YUV 420 deep color
Current upstream parser only handles RGB deep color
modes.

Add support in the SDE EDID parser module to parse
HDMI VSDB block and indicate support for YUV 420
deep color modes in the sink.

Change-Id: If6c007263094e7716a29cae503d3e3471ae04306
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-30 01:09:45 -07:00
Jin Li
07855f70a3 drm/msm: add default value for plane enum property
Add default value support for plane enum property which caller is
able to pass in different default value when initialize the enum
property list.

Change-Id: I57595bf7c42b0e528a18ab0951655a169b00d611
Signed-off-by: Jin Li <jinl@codeaurora.org>
Signed-off-by: Yunyun Cao <yunyunc@codeaurora.org>
2017-06-30 01:03:40 -07:00
Alex Deucher
525e496a97 drm/amdgpu: adjust default display clock
commit 52b482b0f4fd6d5267faf29fe91398e203f3c230 upstream.

Increase the default display clock on newer asics to
accomodate some high res modes with really high refresh
rates.

bug: https://bugs.freedesktop.org/show_bug.cgi?id=93826
Acked-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-06-29 12:48:52 +02:00
Alex Deucher
5265278473 drm/amdgpu/atom: fix ps allocation size for EnableDispPowerGating
commit 05b4017b37f1fce4b7185f138126dd8decdb381f upstream.

We were using the wrong structure which lead to an overflow
on some boards.

bug: https://bugs.freedesktop.org/show_bug.cgi?id=101387
Acked-by: Chunming Zhou <david1.zhou@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-06-29 12:48:52 +02:00
Alex Deucher
4f3d0f4685 drm/radeon: add a quirk for Toshiba Satellite L20-183
commit acfd6ee4fa7ebeee75511825fe02be3f7ac1d668 upstream.

Fixes resume from suspend.

bug: https://bugzilla.kernel.org/show_bug.cgi?id=196121
Reported-by: Przemek <soprwa@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-06-29 12:48:52 +02:00
Alex Deucher
f8242fa811 drm/radeon: add a PX quirk for another K53TK variant
commit 4eb59793cca00b0e629b6d55b5abb5acb82c5868 upstream.

Disable PX on these systems.

bug: https://bugs.freedesktop.org/show_bug.cgi?id=101491
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-06-29 12:48:52 +02:00
Linux Build Service Account
41f7afc189 Merge "drm/msm/sde: add kernel traces to measure enable/disable/kickoff times" 2017-06-28 20:09:04 -07:00
Linux Build Service Account
c7773e1eca Merge "drm/msm: program hdr information to HDMI registers" 2017-06-28 11:59:55 -07:00
Linux Build Service Account
c6fd1ba1ad Merge "drm/msm/sde: add sde_connector kickoff callbacks" 2017-06-28 11:59:54 -07:00
Blagovest Kolenichev
0fc26d9423 Merge branch 'android-4.4@77ddb50' (v4.4.74) into 'msm-4.4'
* refs/heads/tmp-77ddb50:
  UPSTREAM: usb: gadget: f_fs: avoid out of bounds access on comp_desc
  Linux 4.4.74
  mm: fix new crash in unmapped_area_topdown()
  Allow stack to grow up to address space limit
  mm: larger stack guard gap, between vmas
  alarmtimer: Rate limit periodic intervals
  MIPS: Fix bnezc/jialc return address calculation
  usb: dwc3: exynos fix axius clock error path to do cleanup
  alarmtimer: Prevent overflow of relative timers
  genirq: Release resources in __setup_irq() error path
  swap: cond_resched in swap_cgroup_prepare()
  mm/memory-failure.c: use compound_head() flags for huge pages
  USB: gadgetfs, dummy-hcd, net2280: fix locking for callbacks
  usb: xhci: ASMedia ASM1042A chipset need shorts TX quirk
  drivers/misc/c2port/c2port-duramar2150.c: checking for NULL instead of IS_ERR()
  usb: r8a66597-hcd: decrease timeout
  usb: r8a66597-hcd: select a different endpoint on timeout
  USB: gadget: dummy_hcd: fix hub-descriptor removable fields
  pvrusb2: reduce stack usage pvr2_eeprom_analyze()
  usb: core: fix potential memory leak in error path during hcd creation
  USB: hub: fix SS max number of ports
  iio: proximity: as3935: recalibrate RCO after resume
  staging: rtl8188eu: prevent an underflow in rtw_check_beacon_data()
  mfd: omap-usb-tll: Fix inverted bit use for USB TLL mode
  x86/mm/32: Set the '__vmalloc_start_set' flag in initmem_init()
  serial: efm32: Fix parity management in 'efm32_uart_console_get_options()'
  mac80211: fix IBSS presp allocation size
  mac80211: fix CSA in IBSS mode
  mac80211/wpa: use constant time memory comparison for MACs
  mac80211: don't look at the PM bit of BAR frames
  vb2: Fix an off by one error in 'vb2_plane_vaddr'
  cpufreq: conservative: Allow down_threshold to take values from 1 to 10
  can: gs_usb: fix memory leak in gs_cmd_reset()
  configfs: Fix race between create_link and configfs_rmdir
  UPSTREAM: bpf: don't let ldimm64 leak map addresses on unprivileged
  BACKPORT: ext4: fix data exposure after a crash
  ANDROID: sdcardfs: remove dead function open_flags_to_access_mode()
  ANDROID: android-base.cfg: split out arm64-specific configs
  Linux 4.4.73
  sparc64: make string buffers large enough
  s390/kvm: do not rely on the ILC on kvm host protection fauls
  xtensa: don't use linux IRQ #0
  tipc: ignore requests when the connection state is not CONNECTED
  proc: add a schedule point in proc_pid_readdir()
  romfs: use different way to generate fsid for BLOCK or MTD
  sctp: sctp_addr_id2transport should verify the addr before looking up assoc
  r8152: avoid start_xmit to schedule napi when napi is disabled
  r8152: fix rtl8152_post_reset function
  r8152: re-schedule napi for tx
  nfs: Fix "Don't increment lock sequence ID after NFS4ERR_MOVED"
  ravb: unmap descriptors when freeing rings
  drm/ast: Fixed system hanged if disable P2A
  drm/nouveau: Don't enabling polling twice on runtime resume
  parisc, parport_gsc: Fixes for printk continuation lines
  net: adaptec: starfire: add checks for dma mapping errors
  pinctrl: berlin-bg4ct: fix the value for "sd1a" of pin SCRD0_CRD_PRES
  gianfar: synchronize DMA API usage by free_skb_rx_queue w/ gfar_new_page
  net/mlx4_core: Avoid command timeouts during VF driver device shutdown
  drm/nouveau/fence/g84-: protect against concurrent access to semaphore buffers
  drm/nouveau: prevent userspace from deleting client object
  ipv6: fix flow labels when the traffic class is non-0
  FS-Cache: Initialise stores_lock in netfs cookie
  fscache: Clear outstanding writes when disabling a cookie
  fscache: Fix dead object requeue
  ethtool: do not vzalloc(0) on registers dump
  log2: make order_base_2() behave correctly on const input value zero
  kasan: respect /proc/sys/kernel/traceoff_on_warning
  jump label: pass kbuild_cflags when checking for asm goto support
  PM / runtime: Avoid false-positive warnings from might_sleep_if()
  ipv6: Fix IPv6 packet loss in scenarios involving roaming + snooping switches
  i2c: piix4: Fix request_region size
  sierra_net: Add support for IPv6 and Dual-Stack Link Sense Indications
  sierra_net: Skip validating irrelevant fields for IDLE LSIs
  net: hns: Fix the device being used for dma mapping during TX
  NET: mkiss: Fix panic
  NET: Fix /proc/net/arp for AX.25
  ipv6: Inhibit IPv4-mapped src address on the wire.
  ipv6: Handle IPv4-mapped src to in6addr_any dst.
  net: xilinx_emaclite: fix receive buffer overflow
  net: xilinx_emaclite: fix freezes due to unordered I/O
  Call echo service immediately after socket reconnect
  staging: rtl8192e: rtl92e_fill_tx_desc fix write to mapped out memory.
  ARM: dts: imx6dl: Fix the VDD_ARM_CAP voltage for 396MHz operation
  partitions/msdos: FreeBSD UFS2 file systems are not recognized
  s390/vmem: fix identity mapping
  usb: gadget: f_fs: Fix possibe deadlock

Conflicts:
	drivers/usb/gadget/function/f_fs.c

Change-Id: I23106e9fc2c4f2d0b06acce59b781f6c36487fcc
Signed-off-by: Blagovest Kolenichev <bkolenichev@codeaurora.org>
2017-06-28 10:03:23 -07:00
Rajesh Kemisetti
bf556bf53d msm: kgsl: Add A5XX RBBM registers to pre-crash dumper list
Add all A5XX RBBM status registers to pre-crash dumper
registers list so that snapshot captures the accurate
state of the individual blocks.

Change-Id: I774b84f3cb69b7b0aa119e87229d9ec9c96bbbb4
Signed-off-by: Rajesh Kemisetti <rajeshk@codeaurora.org>
2017-06-28 19:22:43 +05:30
Linux Build Service Account
be58516a4e Merge "drm/msm: pass the HDR metadata sent from userspace to sink" 2017-06-27 17:07:45 -07:00
Abhinav Kumar
dc0487cb90 drm/msm: program hdr information to HDMI registers
HDR metadata information is passed down from userspace
based on the HDR frame.

Program these properties to relevant HDMI registers
using the pre_kickoff callback registered for the
DRM HDMI connector.

This ensures that HDR information is updated on a
per-frame basis to the sink.

Change-Id: I20c4018316329b1b35a11b8ab4b96e923b3abb3a
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-27 15:54:20 -07:00
Abhinav Kumar
53e6241467 drm/msm/sde: add sde_connector kickoff callbacks
Add a callback into the connector framework to allow sending
per-frame parameters at kickoff time.

This is needed to support the HDR feature where the HDR
metadata shall be sent to the sink on a per-frame basis.

Change-Id: I48a3616509e2226ea9bf0f490f0f47873ca74781
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-27 15:53:17 -07:00
Abhinav Kumar
79d9dc2c13 drm/msm: pass the HDR metadata sent from userspace to sink
Use metadata information sent from userspace to configure sink.

This info shall be used later on to program the HDMI specific
infoframe registers.

Change-Id: I26634452d8c3ab7ab49a65e89ad52a3961c64855
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-27 12:42:49 -07:00
Alan Kwong
c2170697a7 drm/msm/sde: remove extra entries from interrupt table
Four extra reserved entries are allocated in 88-91. These
entries do not affect lookup logics but are conflicting
with index listed in the documentation. Remove these
extra reserved entries to match index with documentation.

Change-Id: Id9e3a35e9bee9d13b479d7ef65dca1912ea1ff80
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
2017-06-27 15:33:18 -04:00
Alan Kwong
1fb688b1c5 drm/msm/sde: correct index lookup for interrupt clear register
Interrupt get status function incorrectly uses interrupt index to
lookup clear register offset. Correct get status function to use
register index instead to lookup up interrupt offset register.

CRs-Fixed: 2053107
Change-Id: I0c298e0b2b2cbc19758ff84be35ba2d2ce52aeb3
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
2017-06-27 15:33:15 -04:00
Alan Kwong
9d348d2480 drm/msm/sde: correct out of bound access in catalog
Correct validate function to use proper size clearing
property count array.
Correct copy format function to check bound before
accessing array element.

CRs-Fixed: 2037027
Change-Id: Ied3a8e91eb4e6c2c19632b8f83b35d94d1773bb1
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
2017-06-27 15:32:28 -04:00
Alan Kwong
67bcb70ff7 drm/msm: add proper termination to device match array
Device match array should be terminated with a null entry.
Add this null entry to mdp version check to avoid check
past end of array.

CRs-Fixed: 2037027
Change-Id: Ib313fad468205e94eace94eee9db56f19f61ab0c
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
2017-06-27 15:32:28 -04:00
Alan Kwong
b72cb5dea4 drm/msm/sde: use current encoders to determine crtc interface
Instead of using the cached interface type, which is updated
during fence preparation time, determine interface type by
enumerating over all matching encoders and query the interface
directly. This avoids pontential stale interface types due to
changing connector state.

CRs-Fixed: 2009714
Change-Id: I31e1350cc62cafb5f014c0f32514d0692dec42d0
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
2017-06-27 15:32:27 -04:00
Alan Kwong
9e89f2eed8 drm/msm/sde: add support for a5x tile pixel formats
Add new modifier for a5x tile and support for a5x tile
pixel format layout calculation.

CRs-Fixed: 2009714
Change-Id: If0d1d6ba8d8d3e36dd5d5aef4a9b217d8e5779ba
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
2017-06-27 15:32:25 -04:00
Alan Kwong
9b56352695 drm/msm/sde: move cdm csc setup to writeback commit
CDM CSC is currently only initialized during power up. But
on power collapse, CSC will be reset and produce incorrect
YUV writeback output. Correct this by moving CSC setup to
writeback commit to ensure CSC is always up-to-date.

Change-Id: Iac004316c32040f83ef582aae83b02e1288514b1
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
2017-06-27 14:08:16 -04:00
Alan Kwong
372bdf1d8c drm/msm/sde: correct clamp shift for csc 10
Clamp shift for csc 10 is 16 bit where csc 8 is 8 bit.
Correct csc to apply proper clamp shift based on csc version.

Change-Id: I34d30127384668f4cb222a6e634e6581c0054805
Signed-off-by: Alan Kwong <akwong@codeaurora.org>
2017-06-27 14:07:24 -04:00
Narendra Muppalla
7b9a88971a drm/msm/sde: add kernel traces to measure enable/disable/kickoff times
Add kernel debug traces in drm to measure the performance of
the driver during enable/disable/commit/kickoff.

Change-Id: I7122e81b2c320f05bb42091971827908b7c6436f
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2017-06-27 09:55:13 -07:00
Linux Build Service Account
d57c4325fe Merge "drm/msm/sde: fix color component order in sde" 2017-06-27 09:42:08 -07:00
Linux Build Service Account
5728dc4956 Merge "drm/msm/sde: expose 10 bit pixel format capabilities" 2017-06-27 04:28:19 -07:00
Dhaval Patel
04a9528cbb drm/msm/sde: fix color component order in sde
SDE drm driver should support the default color
component order instead of operating system
specific order. For opensource compositor; it will
use default color component order while android
compositors will take care of reversing the color
component order.

Change-Id: I61b953ce892834453e92a8c2cfdcb427456966bb
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2017-06-26 19:40:59 -07:00
abeykun
1ce0cb61aa drm/msm/sde: expose 10 bit pixel format capabilities
Patch adds RGB 10bit both linear and compressed, P010 linear and
and TP10 compressed pixel formats to plane and writeback capabilities.

Change-Id: Ib5a0b2dacbc1ddc47c069b4348c0d1b9fbd7701e
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
2017-06-26 19:35:01 -07:00
Alexander Beykun
4482a89a67 drm/msm/sde: size check fix for NV12 buffer
Currently for NV12 linear/compressed format if the same gem
object assigned to both planes, total size becomes twice more
than actually allocated. In that case kernel cannot detect
case where meta data planes not allocated for NV12 compressed
buffer and smmu fault happens. Current patch sums sizes only
for different gem objects allowing kernel to detect insufficient
memory allocation for NV12 case.

Change-Id: I0d9f49b8b310f0dff1fb787b4ba821a6d4a68140
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
2017-06-26 17:33:46 -07:00
abeykun
1f2fc9ec18 drm/msm/sde: move pixel format flags to bitmap
Patch changes type of pixel format flags from u32 to bitmap.

Change-Id: I117f3737d78d22b9bd6d78abdb8e96f52fc4e874
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
2017-06-26 17:32:57 -07:00
abeykun
bedc84f4f8 drm/msm/sde: add tp10 compressed format support
Add MOD_QCOM_TIGHT modifier on top of DRM_FORMAT_NV12
base pixel format and update plane size calculation
to support compressed tp10 buffers.

Change-Id: I12eb9fecfd34d488eda92f6217b6ca51e466c6f6
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
2017-06-26 17:31:54 -07:00
abeykun
be55dab201 drm/msm/sde: add p010 format support in sde
Add MOD_QCOM_DX modifier on top of DRM_FORMAT_NV12
base format and update plane size calculation to support
linear and compressed p010 buffers.

Change-Id: I93bd9557e5c4a4a038891f24730edbbec1dba262
Signed-off-by: Alexander Beykun <abeykun@codeaurora.org>
2017-06-26 17:29:59 -07:00
Srikanth Rajagopalan
1be46f2985 drm/msm: add sink capabilities for HDR support
Populate HDR sink capabilities to a DRM blob.

These capabilities shall be used by the userspace
to calculate the sink HDR properties and setting them.

Change-Id: I7c2dbca375c456052ad73889b011553090bcf8f1
Signed-off-by: Srikanth Rajagopalan <rasrik@codeaurora.org>
2017-06-26 12:01:55 -07:00
Linux Build Service Account
e5b8aadd07 Merge "drm: msm: add support for a custom hotplug event" 2017-06-22 23:41:17 -07:00
Linux Build Service Account
c9b4dc7067 Merge "Merge branch 'android-4.4@e76c0fa' into branch 'msm-4.4'" 2017-06-22 23:41:14 -07:00
Linux Build Service Account
a21b8a6a89 Merge "drm/msm: add PLL_ENABLE property to support clock recovery" 2017-06-22 23:41:10 -07:00
Linux Build Service Account
8b2a2a4d4f Merge "drm/msm: gracefully handle NULL return from setup_pagetable()" 2017-06-22 23:40:58 -07:00
Tatenda Chipeperekwa
0aedc43f0b drm: msm: add support for a custom hotplug event
Add support for a custom hotplug event that is triggered when the
status of the connector has changed. The event string of the
custom event will be in the following format:
	"name=<connector name> status=<connector status>"
For example, when the DisplayPort connector has its status
updated to connected then the event string that is used as part
of the hotplug event will be as follows:
	"name=DP-1 status=connected"
If the connector name is not known or is invalid at the time that
the event is triggered then the name will be reported as "unknown".

Change-Id: I5d6164d1e8e651cb05527733d68fa86fefb9e6ce
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2017-06-22 17:11:45 -07:00
Linux Build Service Account
db478ca29d Merge "Revert "msm: kgsl: Offload mementry destroy work to separate thread"" 2017-06-22 14:00:22 -07:00
Linux Build Service Account
9419a8a284 Merge "drm/msm: Move memptrs to msm_gpu and reorganize" 2017-06-22 14:00:12 -07:00
Linux Build Service Account
fb2390c8b1 Merge "msm: kgsl: convert some workqueues to use kthreads." 2017-06-22 07:40:34 -07:00
Linux Build Service Account
4dcf7a50c5 Merge "Merge branch 'android-4.4@6fc0573' into branch 'msm-4.4'" 2017-06-22 07:40:22 -07:00