384 Commits

Author SHA1 Message Date
Sujeev Dias
0c40183270 mhi: core: check MHI host state instead of MHI dev state for LPM exit state
When a client request to disable MHI low power mode, it's
important MHI host only return after exiting MHI low power modes.
Otherwise, clients may get un-clocked register access when
accessing physical link. By checking host state, we're guaranteed
to return only after exiting low power states.

CRs-Fixed: 2320851
Change-Id: I45f5f8463fba2c35ccd6c9e67e749d9d4fc3d904
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-09-25 17:01:05 -07:00
Sujeev Dias
c6ba2303eb mhi: controller: always return success for suspend when modem is off
When external modem is on a powered off state, always return success
for suspend. Otherwise, MHI host driver prevent system suspend
from happening.

CRs-Fixed: 2319740
Change-Id: I8493742cd5855bb568286c74f50062f9d2e73efe
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-09-25 16:52:35 -07:00
Sujeev Dias
da79c109fd mhi: controller: always set link to D3Hot when powering off
Link must be in D3HOT prior to transitioning to D3Cold state,
otherwise endpoint device may transition into an error state.

CRs-Fixed: 2302001
Change-Id: I97da3be021bdf3232a1f791fb9813fec9e9d8ebd
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-09-21 13:08:23 -07:00
Sujeev Dias
9048dd2a42 mhi: controller: decrease auto-suspend timeout
Reduce auto-suspend timeout from 1000ms to 250ms
to make it aggressive for power saving.

CRs-Fixed: 2308871
Change-Id: I9733d1b8f0317e3f5d252f979fef68bdedfd196e
Acked-by: Bhaumik Vasav Bhatt <bbhatt@qti.qualcomm.com>
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-09-18 13:55:11 -07:00
qctecmdr Service
9f234b8c51 Merge "Merge android-4.14-p.62 (366527f) into msm-4.14" 2018-08-25 09:20:43 -07:00
Sujeev Dias
69797674af mhi: controller: qcom: route modem SBL logs to an ipc logging buffer
To debug modem boot failures, route modem SBL logs to an ipc
logging buffer.

CRs-Fixed: 2299820
Change-Id: Ia4171c63477508a40351f178abf935494cab0350
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-08-21 18:42:08 -07:00
Sujeev Dias
f3eab7ec6d mhi: dev: uci: remove boot logger channel from userspace
External modem boot logs will be routed to ipc logging buffer
instead of userspace.

CRs-Fixed: 2299820
Change-Id: Ib8fc6896f9ec3e0560409422b031ae9ac60e5c71
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-08-20 16:43:50 -07:00
Sujeev Dias
a89cab3e3c mhi: controller: qcom: fix unbalance runtime enable counts
A bug in MHI system suspend function caused the function to exit
prematurely without disabling runtime suspend. The subsequent
runtime resume caused unbalance enable count.

CRs-Fixed: 2291885
Change-Id: I9f45a86fff2caf4ba13236677d1325e7093a1947
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-08-20 14:40:47 -07:00
Sujeev Dias
8ad12ed3b1 mhi: core: update MHI host support for WLAN FW execution environment
MHI based WLAN devices sends WFW execution environment to
indicate device up notification. Adding host support to handle
such event.

CRs-Fixed: 2289352
Change-Id: I4be4766e46495b542a965a33242c16b498cca1da
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-08-15 07:41:29 -07:00
Sujeev Dias
1d00e9c9c6 mhi: core: add multi-EE support for MHI channels
Same MHI channel could support multiple execution environments,
adding support for such channels.

CRs-Fixed: 2289334
Change-Id: Ib6de0753238714fda40dfbd2d1220b809b88585d
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-08-13 16:05:46 -07:00
Sujeev Dias
4fcb7655fb mhi: core: expose current state of MHI device to clients
Some MHI control drivers and MHI clients needs current MHI device
state, and execution environment to handle client specific
requirements.

CRs-Fixed: 2287705
Change-Id: I363508b393cc1e63827158b8b9f094ab380cb97c
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-08-10 08:48:22 -07:00
Isaac J. Manjarres
b2c8463039 Merge android-4.14-p.61 (b7e55e8) into msm-4.14
* remotes/origin/tmp-b7e55e8:
  Linux 4.14.61
  scsi: sg: fix minor memory leak in error path
  drm/vc4: Reset ->{x, y}_scaling[1] when dealing with uniplanar formats
  crypto: padlock-aes - Fix Nano workaround data corruption
  RDMA/uverbs: Expand primary and alt AV port checks
  iwlwifi: add more card IDs for 9000 series
  userfaultfd: remove uffd flags from vma->vm_flags if UFFD_EVENT_FORK fails
  audit: fix potential null dereference 'context->module.name'
  kvm: x86: vmx: fix vpid leak
  x86/entry/64: Remove %ebx handling from error_entry/exit
  x86/apic: Future-proof the TSC_DEADLINE quirk for SKX
  virtio_balloon: fix another race between migration and ballooning
  net: socket: fix potential spectre v1 gadget in socketcall
  can: ems_usb: Fix memory leak on ems_usb_disconnect()
  squashfs: more metadata hardenings
  squashfs: more metadata hardening
  net/mlx5e: E-Switch, Initialize eswitch only if eswitch manager
  rxrpc: Fix user call ID check in rxrpc_service_prealloc_one
  net: stmmac: Fix WoL for PCI-based setups
  netlink: Fix spectre v1 gadget in netlink_create()
  net: dsa: Do not suspend/resume closed slave_dev
  ipv4: frags: handle possible skb truesize change
  inet: frag: enforce memory limits earlier
  bonding: avoid lockdep confusion in bond_get_stats()
  Linux 4.14.60
  tcp: add one more quick ack after after ECN events
  tcp: refactor tcp_ecn_check_ce to remove sk type cast
  tcp: do not aggressively quick ack after ECN events
  tcp: add max_quickacks param to tcp_incr_quickack and tcp_enter_quickack_mode
  tcp: do not force quickack when receiving out-of-order packets
  netlink: Don't shift with UB on nlk->ngroups
  netlink: Do not subscribe to non-existent groups
  xen-netfront: wait xenbus state change when load module manually
  tcp_bbr: fix bw probing to raise in-flight data for very small BDPs
  NET: stmmac: align DMA stuff to largest cache line length
  net: mdio-mux: bcm-iproc: fix wrong getter and setter pair
  net: lan78xx: fix rx handling before first packet is send
  net: fix amd-xgbe flow-control issue
  net: ena: Fix use of uninitialized DMA address bits field
  ipv4: remove BUG_ON() from fib_compute_spec_dst
  net: dsa: qca8k: Allow overwriting CPU port setting
  net: dsa: qca8k: Add QCA8334 binding documentation
  net: dsa: qca8k: Enable RXMAC when bringing up a port
  net: dsa: qca8k: Force CPU port to its highest bandwidth
  RDMA/uverbs: Protect from attempts to create flows on unsupported QP
  usb: gadget: udc: renesas_usb3: should remove debugfs
  ovl: Sync upper dirty data when syncing overlayfs
  PCI: xgene: Remove leftover pci_scan_child_bus() call
  PCI: pciehp: Assume NoCompl+ for Thunderbolt ports
  ext4: fix check to prevent initializing reserved inodes
  ext4: check for allocation block validity with block group locked
  ext4: fix inline data updates with checksums enabled
  squashfs: be more careful about metadata corruption
  random: mix rdrand with entropy sent in from userspace
  block: reset bi_iter.bi_done after splitting bio
  blkdev: __blkdev_direct_IO_simple: fix leak in error case
  block: bio_iov_iter_get_pages: fix size of last iovec
  drm/dp/mst: Fix off-by-one typo when dump payload table
  drm/atomic-helper: Drop plane->fb references only for drm_atomic_helper_shutdown()
  drm: Add DP PSR2 sink enable bit
  ASoC: topology: Add missing clock gating parameter when parsing hw_configs
  ASoC: topology: Fix bclk and fsync inversion in set_link_hw_format()
  media: si470x: fix __be16 annotations
  media: atomisp: compat32: fix __user annotations
  scsi: cxlflash: Avoid clobbering context control register value
  scsi: cxlflash: Synchronize reset and remove ops
  scsi: megaraid_sas: Increase timeout by 1 sec for non-RAID fastpath IOs
  scsi: scsi_dh: replace too broad "TP9" string with the exact models
  regulator: Don't return or expect -errno from of_map_mode()
  media: omap3isp: fix unbalanced dma_iommu_mapping
  crypto: authenc - don't leak pointers to authenc keys
  crypto: authencesn - don't leak pointers to authenc keys
  usb: hub: Don't wait for connect state at resume for powered-off ports
  microblaze: Fix simpleImage format generation
  soc: imx: gpcv2: Do not pass static memory as platform data
  serial: core: Make sure compiler barfs for 16-byte earlycon names
  staging: lustre: ldlm: free resource when ldlm_lock_create() fails.
  staging: lustre: llite: correct removexattr detection
  staging: vchiq_core: Fix missing semaphore release in error case
  audit: allow not equal op for audit by executable
  rsi: fix nommu_map_sg overflow kernel panic
  rsi: Fix 'invalid vdd' warning in mmc
  ipconfig: Correctly initialise ic_nameservers
  drm/gma500: fix psb_intel_lvds_mode_valid()'s return type
  igb: Fix queue selection on MAC filters on i210
  arm64: defconfig: Enable Rockchip io-domain driver
  nvme: lightnvm: add granby support
  memory: tegra: Apply interrupts mask per SoC
  memory: tegra: Do not handle spurious interrupts
  delayacct: Use raw_spinlocks
  stop_machine: Use raw spinlocks
  backlight: pwm_bl: Don't use GPIOF_* with gpiod_get_direction
  dt-bindings: net: meson-dwmac: new compatible name for AXG SoC
  net: hns3: Fixes the out of bounds access in hclge_map_tqp
  spi: meson-spicc: Fix error handling in meson_spicc_probe()
  dt-bindings: pinctrl: meson: add support for the Meson8m2 SoC
  mmc: pwrseq: Use kmalloc_array instead of stack VLA
  mmc: dw_mmc: update actual clock for mmc debugfs
  ALSA: hda/ca0132: fix build failure when a local macro is defined
  drm/atomic: Handling the case when setting old crtc for plane
  media: siano: get rid of __le32/__le16 cast warnings
  f2fs: avoid fsync() failure caused by EAGAIN in writepage()
  bpf: fix references to free_bpf_prog_info() in comments
  thermal: exynos: fix setting rising_threshold for Exynos5433
  staging: lustre: o2iblnd: Fix FastReg map/unmap for MLX5
  staging: lustre: o2iblnd: fix race at kiblnd_connect_peer
  scsi: qedf: Set the UNLOADING flag when removing a vport
  scsi: hisi_sas: config ATA de-reset as an constrained command for v3 hw
  scsi: megaraid: silence a static checker bug
  scsi: 3w-xxxx: fix a missing-check bug
  scsi: 3w-9xxx: fix a missing-check bug
  bnxt_en: Check unsupported speeds in bnxt_update_link() on PF only.
  perf: fix invalid bit in diagnostic entry
  s390/cpum_sf: Add data entry sizes to sampling trailer entry
  brcmfmac: Add support for bcm43364 wireless chipset
  mtd: rawnand: fsl_ifc: fix FSL NAND driver to read all ONFI parameter pages
  media: saa7164: Fix driver name in debug output
  media: media-device: fix ioctl function types
  ACPI / LPSS: Only call pwm_add_table() for Bay Trail PWM if PMIC HRV is 2
  libata: Fix command retry decision
  media: rcar_jpu: Add missing clk_disable_unprepare() on error in jpu_open()
  net: phy: phylink: Release link GPIO
  dma-iommu: Fix compilation when !CONFIG_IOMMU_DMA
  tty: Fix data race in tty_insert_flip_string_fixed_flag
  i40e: free the skb after clearing the bitlock
  nvmem: properly handle returned value nvmem_reg_read
  ARM: dts: sh73a0: Add missing interrupt-affinity to PMU node
  ARM: dts: emev2: Add missing interrupt-affinity to PMU node
  ARM: dts: stih407-pinctrl: Fix complain about IRQ_TYPE_NONE usage
  EDAC, altera: Fix ARM64 build warning
  HID: i2c-hid: check if device is there before really probing
  powerpc/embedded6xx/hlwd-pic: Prevent interrupts from being handled by Starlet
  drm/amdgpu: Remove VRAM from shared bo domains.
  drm/radeon: fix mode_valid's return type
  arm64: dts: renesas: salvator-common: use audio-graph-card for Sound
  HID: hid-plantronics: Re-resend Update to map button for PTT products
  arm64: cmpwait: Clear event register before arming exclusive monitor
  media: atomisp: ov2680: don't declare unused vars
  ALSA: usb-audio: Apply rate limit to warning messages in URB complete callback
  net: ethernet: ti: cpsw-phy-sel: check bus_find_device() ret value
  media: smiapp: fix timeout checking in smiapp_read_nvm
  ixgbevf: fix MAC address changes through ixgbevf_set_mac()
  md: fix NULL dereference of mddev->pers in remove_and_add_spares()
  md/raid1: add error handling of read error from FailFast device
  regulator: pfuze100: add .is_enable() for pfuze100_swb_regulator_ops
  ALSA: emu10k1: Rate-limit error messages about page errors
  rtc: tps65910: fix possible race condition
  rtc: vr41xx: fix possible race condition
  rtc: tps6586x: fix possible race condition
  Bluetooth: btusb: add ID for LiteOn 04ca:301a
  drm/nouveau/fifo/gk104-: poll for runlist update completion
  scsi: zfcp: assert that the ERP lock is held when tracing a recovery trigger
  scsi: ufs: fix exception event handling
  scsi: ufs: ufshcd: fix possible unclocked register access
  fscrypt: use unbound workqueue for decryption
  net: hns3: Fix the missing client list node initialization
  spi: Add missing pm_runtime_put_noidle() after failed get
  drivers/perf: arm-ccn: don't log to dmesg in event_init
  ima: based on policy verify firmware signatures (pre-allocated buffer)
  mwifiex: correct histogram data with appropriate index
  net: dsa: qca8k: Add support for QCA8334 switch
  PCI: pciehp: Request control of native hotplug only if supported
  bpf: powerpc64: pad function address loads with NOPs
  pinctrl: at91-pio4: add missing of_node_put
  powerpc/8xx: fix invalid register expression in head_8xx.S
  spi: sh-msiof: Fix setting SIRMDR1.SYNCAC to match SITMDR1.SYNCAC
  powerpc: Add __printf verification to prom_printf
  powerpc/powermac: Mark variable x as unused
  powerpc/powermac: Add missing prototype for note_bootable_part()
  powerpc/chrp/time: Make some functions static, add missing header include
  powerpc/32: Add a missing include header
  ath: Add regulatory mapping for Bahamas
  ath: Add regulatory mapping for Bermuda
  ath: Add regulatory mapping for Serbia
  ath: Add regulatory mapping for Tanzania
  ath: Add regulatory mapping for Uganda
  ath: Add regulatory mapping for APL2_FCCA
  ath: Add regulatory mapping for APL13_WORLD
  ath: Add regulatory mapping for ETSI8_WORLD
  ath: Add regulatory mapping for FCC3_ETSIC
  nvme-pci: Fix AER reset handling
  nvme-rdma: stop admin queue before freeing it
  PCI: Prevent sysfs disable of device while driver is attached
  PM / wakeup: Make s2idle_lock a RAW_SPINLOCK
  x86/microcode: Make the late update update_lock a raw lock for RT
  btrfs: qgroup: Finish rescan when hit the last leaf of extent tree
  btrfs: add barriers to btrfs_sync_log before log_commit_wait wakeups
  Btrfs: don't BUG_ON() in btrfs_truncate_inode_items()
  Btrfs: don't return ino to ino cache if inode item removal fails
  media: videobuf2-core: don't call memop 'finish' when queueing
  media: tw686x: Fix incorrect vb2_mem_ops GFP flags
  net: hns3: Fixes the init of the VALID BD info in the descriptor
  wlcore: sdio: check for valid platform device data before suspend
  mwifiex: handle race during mwifiex_usb_disconnect
  mfd: cros_ec: Fail early if we cannot identify the EC
  ASoC: dpcm: fix BE dai not hw_free and shutdown
  Bluetooth: btusb: Add a new Realtek 8723DE ID 2ff8:b011
  Bluetooth: hci_qca: Fix "Sleep inside atomic section" warning
  iwlwifi: pcie: fix race in Rx buffer allocator
  btrfs: balance dirty metadata pages in btrfs_finish_ordered_io
  PCI: Fix devm_pci_alloc_host_bridge() memory leak
  selftests: intel_pstate: return Kselftest Skip code for skipped tests
  selftests: memfd: return Kselftest Skip code for skipped tests
  selftests/intel_pstate: Improve test, minor fixes
  perf/x86/intel/uncore: Correct fixed counter index check for NHM
  perf/x86/intel/uncore: Correct fixed counter index check in generic code
  usbip: dynamically allocate idev by nports found in sysfs
  usbip: usbip_detach: Fix memory, udev context and udev leak
  block, bfq: remove wrong lock in bfq_requests_merged
  f2fs: fix race in between GC and atomic open
  f2fs: fix to detect failure of dquot_initialize
  f2fs: Fix deadlock in shutdown ioctl
  f2fs: fix to wait page writeback during revoking atomic write
  f2fs: fix to don't trigger writeback during recovery
  f2fs: fix error path of move_data_page
  disable loading f2fs module on PAGE_SIZE > 4KB
  pnfs: Don't release the sequence slot until we've processed layoutget on open
  netfilter: nf_tables: check msg_type before nft_trans_set(trans)
  lightnvm: pblk: warn in case of corrupted write buffer
  RDMA/mad: Convert BUG_ONs to error flows
  powerpc/64s: Fix compiler store ordering to SLB shadow area
  hvc_opal: don't set tb_ticks_per_usec in udbg_init_opal_common()
  powerpc/eeh: Fix use-after-release of EEH driver
  powerpc/64s: Add barrier_nospec
  powerpc/lib: Adjust .balign inside string functions for PPC32
  infiniband: fix a possible use-after-free bug
  e1000e: Ignore TSYNCRXCTL when getting I219 clock attributes
  ceph: fix alignment of rasize
  bpf, arm32: fix inconsistent naming about emit_a32_lsr_{r64,i64}
  printk: drop in_nmi check from printk_safe_flush_on_panic()
  watchdog: da9063: Fix updating timeout value
  irqchip/ls-scfg-msi: Map MSIs in the iommu
  netfilter: ipset: List timing out entries with "timeout 1" instead of zero
  netfilter: ipset: forbid family for hash:mac sets
  perf tools: Fix pmu events parsing rule
  rtc: ensure rtc_set_alarm fails when alarms are not supported
  mm/slub.c: add __printf verification to slab_err()
  mm: vmalloc: avoid racy handling of debugobjects in vunmap
  mm: /proc/pid/pagemap: hide swap entries from unprivileged users
  kernel/hung_task.c: show all hung tasks before panic
  vfio/type1: Fix task tracking for QEMU vCPU hotplug
  vfio/mdev: Check globally for duplicate devices
  vfio: platform: Fix reset module leak in error path
  nfsd: fix potential use-after-free in nfsd4_decode_getdeviceinfo
  NFSv4.1: Fix the client behaviour on NFS4ERR_SEQ_FALSE_RETRY
  ALSA: fm801: add error handling for snd_ctl_add
  ALSA: emu10k1: add error handling for snd_ctl_add
  skip LAYOUTRETURN if layout is invalid
  hv_netvsc: fix network namespace issues with VF support
  xen/netfront: raise max number of slots in xennet_get_responses()
  kcov: ensure irq code sees a valid area
  mlxsw: spectrum_switchdev: Fix port_vlan refcounting
  arm64: fix vmemmap BUILD_BUG_ON() triggering on !vmemmap setups
  tracing: Quiet gcc warning about maybe unused link variable
  tracing/kprobes: Fix trace_probe flags on enable_trace_kprobe() failure
  kthread, tracing: Don't expose half-written comm when creating kthreads
  tracing: Fix possible double free in event_enable_trigger_func()
  tracing: Fix double free of event_trigger_data
  delayacct: fix crash in delayacct_blkio_end() after delayacct init failure
  kvm, mm: account shadow page tables to kmemcg
  Input: elan_i2c - add another ACPI ID for Lenovo Ideapad 330-15AST
  Input: i8042 - add Lenovo LaVie Z to the i8042 reset list
  Input: elan_i2c - add ACPI ID for lenovo ideapad 330
  spi: spi-s3c64xx: Fix system resume support
  drivers/infiniband/ulp/srpt/ib_srpt.c: fix build with gcc-4.4.4
  IB/srpt: Fix an out-of-bounds stack access in srpt_zerolength_write()
  drivers/infiniband/core/verbs.c: fix build with gcc-4.4.4
  RDMA/core: Avoid that ib_drain_qp() triggers an out-of-bounds stack access
  i2c: core: decrease reference count of device node in i2c_unregister_device
  fork: unconditionally clear stack on fork
  Linux 4.14.59
  turn off -Wattribute-alias
  can: m_can.c: fix setup of CCCR register: clear CCCR NISO bit before checking can.ctrlmode
  can: peak_canfd: fix firmware < v3.3.0: limit allocation to 32-bit DMA addr only
  can: xilinx_can: fix RX overflow interrupt not being enabled
  can: xilinx_can: fix incorrect clear of non-processed interrupts
  can: xilinx_can: keep only 1-2 frames in TX FIFO to fix TX accounting
  can: xilinx_can: fix device dropping off bus on RX overrun
  can: xilinx_can: fix recovery from error states not being propagated
  can: xilinx_can: fix power management handling
  can: xilinx_can: fix RX loop if RXNEMP is asserted without RXOK
  driver core: Partially revert "driver core: correct device's shutdown order"
  usb: gadget: f_fs: Only return delayed status when len is 0
  usb: dwc2: Fix DMA alignment to start at allocated boundary
  usb: core: handle hub C_PORT_OVER_CURRENT condition
  usb: cdc_acm: Add quirk for Castles VEGA3000
  staging: speakup: fix wraparound in uaccess length check
  tcp: add tcp_ooo_try_coalesce() helper
  tcp: call tcp_drop() from tcp_data_queue_ofo()
  tcp: detect malicious patterns in tcp_collapse_ofo_queue()
  tcp: avoid collapses in tcp_prune_queue() if possible
  tcp: free batches of packets in tcp_prune_ofo_queue()
  tcp: do not delay ACK in DCTCP upon CE status change
  tcp: do not cancel delay-AcK on DCTCP special ACK
  tcp: helpers to send special DCTCP ack
  tcp: fix dctcp delayed ACK schedule
  vxlan: fix default fdb entry netlink notify ordering during netdev create
  vxlan: make netlink notify in vxlan_fdb_destroy optional
  vxlan: add new fdb alloc and create helpers
  rtnetlink: add rtnl_link_state check in rtnl_configure_link
  sock: fix sg page frag coalescing in sk_alloc_sg
  net: phy: consider PHY_IGNORE_INTERRUPT in phy_start_aneg_priv
  multicast: do not restore deleted record source filter mode to new one
  net/ipv6: Fix linklocal to global address with VRF
  net/mlx5e: Fix quota counting in aRFS expire flow
  net/mlx5e: Don't allow aRFS for encapsulated packets
  net/mlx5: Adjust clock overflow work period
  net: skb_segment() should not return NULL
  net/mlx4_core: Save the qpn from the input modifier in RST2INIT wrapper
  ip: in cmsg IP(V6)_ORIGDSTADDR call pskb_may_pull
  ip: hash fragments consistently
  bonding: set default miimon value for non-arp modes if not set
  drm/nouveau: Set DRIVER_ATOMIC cap earlier to fix debugfs
  drm/nouveau/drm/nouveau: Fix runtime PM leak in nv50_disp_atomic_commit()
  KVM: PPC: Check if IOMMU page is contained in the pinned physical page
  xen/PVH: Set up GS segment for stack canary
  MIPS: Fix off-by-one in pci_resource_to_user()
  MIPS: ath79: fix register address in ath79_ddr_wb_flush()
  Revert "cifs: Fix slab-out-of-bounds in send_set_info() on SMB2 ACE setting"
  ANDROID: verity: really fix android-verity Kconfig
  tcp: add tcp_ooo_try_coalesce() helper
  tcp: call tcp_drop() from tcp_data_queue_ofo()
  tcp: detect malicious patterns in tcp_collapse_ofo_queue()
  tcp: avoid collapses in tcp_prune_queue() if possible
  tcp: free batches of packets in tcp_prune_ofo_queue()
  x86_64_cuttlefish_defconfig: Enable android-verity
  x86_64_cuttlefish_defconfig: enable verity cert
  ANDROID: android-verity: Fix broken parameter handling.
  ANDROID: android-verity: Make it work with newer kernels
  ANDROID: android-verity: Add API to verify signature with builtin keys.
  ANDROID: verity: fix android-verity Kconfig dependencies
  Linux 4.14.58
  xhci: Fix perceived dead host due to runtime suspend race with event handler
  powerpc/powernv: Fix save/restore of SPRG3 on entry/exit from stop (idle)
  cxl_getfile(): fix double-iput() on alloc_file() failures
  alpha: fix osf_wait4() breakage
  net: usb: asix: replace mii_nway_restart in resume path
  ipv6: make DAD fail with enhanced DAD when nonce length differs
  net: systemport: Fix CRC forwarding check for SYSTEMPORT Lite
  net/mlx4_en: Don't reuse RX page when XDP is set
  hv_netvsc: Fix napi reschedule while receive completion is busy
  tg3: Add higher cpu clock for 5762.
  qmi_wwan: add support for Quectel EG91
  ptp: fix missing break in switch
  net: phy: fix flag masking in __set_phy_supported
  net/ipv4: Set oif in fib_compute_spec_dst
  skbuff: Unconditionally copy pfmemalloc in __skb_clone()
  net: Don't copy pfmemalloc flag in __copy_skb_header()
  net: diag: Don't double-free TCP_NEW_SYN_RECV sockets in tcp_abort
  lib/rhashtable: consider param->min_size when setting initial table size
  ipv6: ila: select CONFIG_DST_CACHE
  ipv6: fix useless rol32 call on hash
  ipv4: Return EINVAL when ping_group_range sysctl doesn't map to user ns
  gen_stats: Fix netlink stats dumping in the presence of padding
  drm/nouveau: Avoid looping through fake MST connectors
  drm/nouveau: Use drm_connector_list_iter_* for iterating connectors
  drm/i915: Fix hotplug irq ack on i965/g4x
  stop_machine: Disable preemption when waking two stopper threads
  vfio/spapr: Use IOMMU pageshift rather than pagesize
  vfio/pci: Fix potential Spectre v1
  cpufreq: intel_pstate: Register when ACPI PCCH is present
  mm/huge_memory.c: fix data loss when splitting a file pmd
  mm: memcg: fix use after free in mem_cgroup_iter()
  ARC: mm: allow mprotect to make stack mappings executable
  ARC: configs: Remove CONFIG_INITRAMFS_SOURCE from defconfigs
  ARC: Fix CONFIG_SWAP
  ARCv2: [plat-hsdk]: Save accl reg pair by default
  ALSA: hda: add mute led support for HP ProBook 455 G5
  ALSA: hda/realtek - Add Panasonic CF-SZ6 headset jack quirk
  ALSA: rawmidi: Change resized buffers atomically
  fat: fix memory allocation failure handling of match_strdup()
  x86/MCE: Remove min interval polling limitation
  x86/events/intel/ds: Fix bts_interrupt_threshold alignment
  x86/apm: Don't access __preempt_count with zeroed fs
  KVM/Eventfd: Avoid crash when assign and deassign specific eventfd in parallel.
  scsi: sd_zbc: Fix variable type and bogus comment
  ANDROID: uid_sys_stats: Replace tasklist lock with RCU in uid_cputime_show
  Linux 4.14.57
  string: drop __must_check from strscpy() and restore strscpy() usages in cgroup
  arm64: KVM: Add ARCH_WORKAROUND_2 discovery through ARCH_FEATURES_FUNC_ID
  arm64: KVM: Handle guest's ARCH_WORKAROUND_2 requests
  arm64: KVM: Add ARCH_WORKAROUND_2 support for guests
  arm64: KVM: Add HYP per-cpu accessors
  arm64: ssbd: Add prctl interface for per-thread mitigation
  arm64: ssbd: Introduce thread flag to control userspace mitigation
  arm64: ssbd: Restore mitigation status on CPU resume
  arm64: ssbd: Skip apply_ssbd if not using dynamic mitigation
  arm64: ssbd: Add global mitigation state accessor
  arm64: Add 'ssbd' command-line option
  arm64: Add ARCH_WORKAROUND_2 probing
  arm64: Add per-cpu infrastructure to call ARCH_WORKAROUND_2
  arm64: Call ARCH_WORKAROUND_2 on transitions between EL0 and EL1
  arm/arm64: smccc: Add SMCCC-specific return codes
  KVM: arm64: Avoid storing the vcpu pointer on the stack
  KVM: arm/arm64: Do not use kern_hyp_va() with kvm_vgic_global_state
  arm64: alternatives: Add dynamic patching feature
  KVM: arm64: Stop save/restoring host tpidr_el1 on VHE
  arm64: alternatives: use tpidr_el2 on VHE hosts
  KVM: arm64: Change hyp_panic()s dependency on tpidr_el2
  KVM: arm/arm64: Convert kvm_host_cpu_state to a static per-cpu allocation
  KVM: arm64: Store vcpu on the stack during __guest_enter()
  net/nfc: Avoid stalls when nfc_alloc_send_skb() returned NULL.
  rds: avoid unenecessary cong_update in loop transport
  bdi: Fix another oops in wb_workfn()
  netfilter: ipv6: nf_defrag: drop skb dst before queueing
  nsh: set mac len based on inner packet
  autofs: fix slab out of bounds read in getname_kernel()
  tls: Stricter error checking in zerocopy sendmsg path
  KEYS: DNS: fix parsing multiple options
  reiserfs: fix buffer overflow with long warning messages
  netfilter: ebtables: reject non-bridge targets
  PCI: hv: Disable/enable IRQs rather than BH in hv_compose_msi_msg()
  block: do not use interruptible wait anywhere
  mtd: rawnand: denali_dt: set clk_x_rate to 200 MHz unconditionally
  crypto: af_alg - Initialize sg_num_bytes in error code path
  clocksource: Initialize cs->wd_list
  media: rc: oops in ir_timer_keyup after device unplug
  xhci: Fix USB3 NULL pointer dereference at logical disconnect.
  net: lan78xx: Fix race in tx pending skb size calculation
  rtlwifi: rtl8821ae: fix firmware is not ready to run
  rtlwifi: Fix kernel Oops "Fw download fail!!"
  net: cxgb3_main: fix potential Spectre v1
  VSOCK: fix loopback on big-endian systems
  vhost_net: validate sock before trying to put its fd
  tcp: prevent bogus FRTO undos with non-SACK flows
  tcp: fix Fast Open key endianness
  strparser: Remove early eaten to fix full tcp receive buffer stall
  stmmac: fix DMA channel hang in half-duplex mode
  r8152: napi hangup fix after disconnect
  qmi_wwan: add support for the Dell Wireless 5821e module
  qed: Limit msix vectors in kdump kernel to the minimum required count.
  qed: Fix use of incorrect size in memcpy call.
  qed: Fix setting of incorrect eswitch mode.
  qede: Adverstise software timestamp caps when PHC is not available.
  net/tcp: Fix socket lookups with SO_BINDTODEVICE
  net: sungem: fix rx checksum support
  net_sched: blackhole: tell upper qdisc about dropped packets
  net/packet: fix use-after-free
  net: mvneta: fix the Rx desc DMA address in the Rx path
  net/mlx5: Fix wrong size allocation for QoS ETC TC regitster
  net/mlx5: Fix required capability for manipulating MPFS
  net/mlx5: Fix incorrect raw command length parsing
  net/mlx5: Fix command interface race in polling mode
  net/mlx5: E-Switch, Avoid setup attempt if not being e-switch manager
  net/mlx5e: Don't attempt to dereference the ppriv struct if not being eswitch manager
  net/mlx5e: Avoid dealing with vport representors if not being e-switch manager
  net: macb: Fix ptp time adjustment for large negative delta
  net: fix use-after-free in GRO with ESP
  net: dccp: switch rx_tstamp_last_feedback to monotonic clock
  net: dccp: avoid crash in ccid3_hc_rx_send_feedback()
  ixgbe: split XDP_TX tail and XDP_REDIRECT map flushing
  ipvlan: fix IFLA_MTU ignored on NEWLINK
  ipv6: sr: fix passing wrong flags to crypto_alloc_shash()
  hv_netvsc: split sub-channel setup into async and sync
  atm: zatm: Fix potential Spectre v1
  atm: Preserve value of skb->truesize when accounting to vcc
  alx: take rtnl before calling __alx_open from resume
  crypto: crypto4xx - fix crypto4xx_build_pdr, crypto4xx_build_sdr leak
  crypto: crypto4xx - remove bad list_del
  PCI: exynos: Fix a potential init_clk_resources NULL pointer dereference
  bcm63xx_enet: do not write to random DMA channel on BCM6345
  bcm63xx_enet: correct clock usage
  ocfs2: ip_alloc_sem should be taken in ocfs2_get_block()
  ocfs2: subsystem.su_mutex is required while accessing the item->ci_parent
  xprtrdma: Fix corner cases when handling device removal
  cpufreq / CPPC: Set platform specific transition_delay_us
  Btrfs: fix duplicate extents after fsync of file with prealloc extents
  x86/paravirt: Make native_save_fl() extern inline
  x86/asm: Add _ASM_ARG* constants for argument registers to <asm/asm.h>
  compiler-gcc.h: Add __attribute__((gnu_inline)) to all inline declarations
  ANDROID: Add hold functionality to schedtune CPU boost
  ANDROID: sched/rt: Add schedtune accounting to rt task enqueue/dequeue
  UPSTREAM: cpuidle: menu: Avoid selecting shallow states with stopped tick
  UPSTREAM: cpuidle: menu: Refine idle state selection for running tick
  UPSTREAM: sched: idle: Select idle state before stopping the tick
  BACKPORT: time: hrtimer: Introduce hrtimer_next_event_without()
  BACKPORT: time: tick-sched: Split tick_nohz_stop_sched_tick()
  UPSTREAM: cpuidle: Return nohz hint from cpuidle_select()
  UPSTREAM: jiffies: Introduce USER_TICK_USEC and redefine TICK_USEC
  UPSTREAM: sched: idle: Do not stop the tick before cpuidle_idle_call()
  BACKPORT: sched: idle: Do not stop the tick upfront in the idle loop
  BACKPORT: time: tick-sched: Reorganize idle tick management code
  ANDROID: sched/fair: fix a warning
  ANDROID: sched/walt: Fix compilation issue for x86_64
  ANDROID: mnt: Fix next_descendent
  ANDROID: sched/events: Introduce util_est trace events
  ANDROID: sched/fair: schedtune: update before schedutil
  FROMLIST: sched/fair: add support to tune PELT ramp/decay timings
  BACKPORT: sched/fair: Update util_est before updating schedutil
  BACKPORT: sched/fair: Update util_est only on util_avg updates
  BACKPORT: sched/fair: Use util_est in LB and WU paths
  BACKPORT: sched/fair: Add util_est on top of PELT
  ANDROID: sched/fair: Cleanup cpu_util{_wake}()
  ANDROID: sched: Update max cpu capacity in case of max frequency constraints
  ANDROID: arm: enable max frequency capping
  ANDROID: arm64: enable max frequency capping
  ANDROID: implement max frequency capping
  ANDROID: sched/fair: add arch scaling function for max frequency capping
  ANDROID: trace: Add WALT util signal to trace event sched_load_cfs_rq
  ANDROID: sched, trace: Remove trace event sched_load_avg_cpu
  ANDROID: Rename and move include/linux/sched_energy.h
  ANDROID: Adjust juno energy model
  ANDROID: Check equality of max cap state cap and cpu scale
  ANDROID: Move energy model init call into arch_topology driver
  ANDROID: Streamline sched_domain_energy_f functions
  ANDROID: Separate cpu_scale and energy model setup
  ANDROID: update_group_capacity for single cpu in cluster
  ANDROID: sched/fair: return idle CPU immediately for prefer_idle
  ANDROID: sched/fair: add idle state filter to prefer_idle case
  ANDROID: sched/fair: remove order from CPU selection
  ANDROID: sched/fair: unify spare capacity calculation
  ANDROID:sched/fair: prefer energy efficient CPUs for !prefer_idle tasks
  ANDROID: sched/fair: fix CPU selection for non latency sensitive tasks
  ANDROID: sched/fair: Also do misfit in overloaded groups
  ANDROID: sched/fair: Don't balance misfits if it would overload local group
  ANDROID: sched/fair: Attempt to improve throughput for asym cap systems
  FROMLIST: sched/fair: Don't move tasks to lower capacity cpus unless necessary
  FROMLIST: sched/core: Disable SD_PREFER_SIBLING on asymmetric cpu capacity domains
  FROMLIST: sched/core: Disable SD_ASYM_CPUCAPACITY for root_domains without asymmetry
  FROMLIST: sched/fair: Set rq->rd->overload when misfit
  FROMLIST: sched: Wrap rq->rd->overload accesses with READ/WRITE_ONCE
  FROMLIST: sched: Change root_domain->overload type to int
  FROMLIST: sched/fair: Change prefer_sibling type to bool
  FROMLIST: sched/fair: Consider misfit tasks when load-balancing
  FROMLIST: sched: Add sched_group per-cpu max capacity
  FROMLIST: sched/fair: Add group_misfit_task load-balance type
  FROMLIST: sched: Add static_key for asymmetric cpu capacity optimizations
  UPSTREAM: ANDROID: binder: change down_write to down_read
  UPSTREAM: ANDROID: binder: correct the cmd print for BINDER_WORK_RETURN_ERROR
  UPSTREAM: ANDROID: binder: remove 32-bit binder interface.
  UPSTREAM: android: binder: Use true and false for boolean values
  UPSTREAM: android: binder: Use octal permissions
  UPSTREAM: android: binder: Prefer __func__ to using hardcoded function name
  UPSTREAM: ANDROID: binder: make binder_alloc_new_buf_locked static and indent its arguments
  UPSTREAM: android: binder: Check for errors in binder_alloc_shrinker_init().

Conflicts:
	arch/arm64/Kconfig
	arch/arm64/include/asm/cpucaps.h
	arch/arm64/include/asm/cpufeature.h
	arch/arm64/include/asm/thread_info.h
	arch/arm64/kernel/cpu_errata.c
	arch/arm64/kernel/cpufeature.c
	arch/arm64/kernel/entry.S
	arch/arm64/kernel/ssbd.c
	drivers/base/arch_topology.c
	drivers/md/Kconfig
	drivers/scsi/ufs/ufshcd.c
	drivers/usb/gadget/function/f_fs.c
	include/trace/events/sched.h
	kernel/sched/cpufreq_schedutil.c
	kernel/sched/energy.c
	kernel/sched/fair.c
	kernel/sched/features.h
	kernel/sched/sched.h
	kernel/sched/topology.c
	kernel/sched/tune.c
	kernel/sched/walt.c
	kernel/sched/walt.h
	kernel/stop_machine.c
	kernel/time/tick-sched.c
	net/socket.c
	sound/core/rawmidi.c

Change-Id: Ia246711317930ecd55bb42565a04e6b4fdfc26d2
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
2018-08-09 11:57:44 -07:00
Mark Rutland
d0a963cf84 drivers/perf: arm-ccn: don't log to dmesg in event_init
[ Upstream commit 1898eb61fbc9703efee886d3abec27a388cf28c3 ]

The ARM CCN PMU driver uses dev_warn() to complain about parameters in
the user-provided perf_event_attr. This means that under normal
operation (e.g. a single invocation of the perf tool), a number of
messages warnings may be logged to dmesg.

Tools may issue multiple syscalls to probe for feature support, and
multiple applications (from multiple users) can attempt to open events
simultaneously, so this is not very helpful, even if a user happens to
have access to dmesg. Worse, this can push important information out of
the dmesg ring buffer, and can significantly slow down syscall fuzzers,
vastly increasing the time it takes to find critical bugs.

Demote the dev_warn() instances to dev_dbg(), as is the case for all
other PMU drivers under drivers/perf/. Users who wish to debug PMU event
initialisation can enable dynamic debug to receive these messages.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Pawel Moll <pawel.moll@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-08-03 07:50:31 +02:00
Sujeev Dias
dc19827181 mhi: core: check MHI PM state under pm_lock
MHI PM state for suspended states needs to be checked under pm_lock,
otherwise MHI host could miss transition state and result in a
data stall.

CRs-Fixed: 2279502
Change-Id: I55cdfb1d5ab5fc745a0e06977c89a18e412c6129
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-07-28 08:08:25 -07:00
Sujeev Dias
058c23fa7c mhi: core: reduce logging level for errors msg during queue transfer
"MHI not in active state..." is not a fatal error message, this
happens when MHI is in process of shutdown, but some clients
not yet receive shutdown notification.

CRs-Fixed: 2261930
Change-Id: I5732a6348d17f860b43873602706632aa065bdda
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-07-28 08:08:03 -07:00
Sujeev Dias
143c2283f9 mhi: core: release channel locks before removing mhi devices
There could be a deadlock between mhi device remove, and client
calling channel start\stop operation because of common lock. To
avoid this deadlock, release channel lock before calling client
device remove function.

CRs-Fixed: 2281958
Change-Id: I332fee417c3ebaae113e11375d10f4487b2194a2
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-07-28 08:07:44 -07:00
Sujeev Dias
fe6623f422 mhi: controller: qcom: add support for sdxprairie device
Adding MHI host support for sdxprairie based PCIe device.

CRs-Fixed: 2281252
Change-Id: I7bbfae77b2f1b9a7ee5c6705be22e9ecc4cd0505
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-07-23 09:38:13 -07:00
Sujeev Dias
12a9cdcdab mhi: controller: qcom: add sysfs control for mhi power
Add sysfs nodes so userspace application can power up
MHI based modems.

CRs-Fixed: 2281252
Change-Id: Iafa6eed46e668ef39138ef1acbd9fe74bcb16700
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-07-23 09:38:08 -07:00
Sujeev Dias
75998d34eb mhi: controller: qcom: add debug mode parameter for debug control
Adding debug mode to enable MHI to operate in debug mode.

CRs-Fixed: 2281252
Change-Id: I9bfb5d2c809def6ca072359563871a1afbb52111
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-07-19 21:29:02 -07:00
Sujeev Dias
7e4cc1c179 mhi: core: allocate SBL image buffer using CMA pool if configured
Depending on memory configuration, MHI may have a dedicated CMA
pool for buffer management. Always use DMA allocation methods,
so if a memory pool is tied to device, it will allocate memory
from that pool.

CRs-Fixed: 2280387
Change-Id: I60ce09ccf0f04f170461bcea268f963ba8244d29
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-07-18 08:24:53 -07:00
Sujeev Dias
6a0ec51764 mhi: core: remove M1->M2 debounce timer
Older targets required a debounce delay for device to transition
into M2 before waking the device back up. We no longer need that
delay, so removing debounce logic.

CRs-Fixed: 2279751
Change-Id: Id594af9efada14bbc1c1241cf0d0b6f15896cfee
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-07-18 08:24:33 -07:00
Sujeev Dias
e54b71ebbf mhi: core: use kmemdup rather than duplicating it's implementation
Use kmemdup, instead of using kmalloc, and memcpy combo.

CRs-Fixed: 2258358
Change-Id: I941ee2fa3a4b47dd0a2a5833ee52445a553f3aa6
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-19 22:12:44 -07:00
Sujeev Dias
a3c82028fa mhi: core: use fixed-length string for mhi_device_id
If we don't use a fixed-length string, dynamically loadable
modules related to MHI will not load properly.

CRs-Fixed: 2258358
Change-Id: Ice7c6d42c26807a5085e22b44451f57d6edf81dd
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-19 11:47:51 -07:00
Sujeev Dias
a5c630bb28 mhi: core: marked __packed only members that's required
It's recommended style to mark __packed only members that
does not have natural alignment for clarity.

CRs-Fixed: 2258358
Change-Id: Id560e23427d932c9e15cc7e4872366f130d7e8df
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-19 11:47:44 -07:00
Sujeev Dias
2a90a80663 mhi: core: remove having compile option for CONFIG_OF flag
All new targets are compiled with devicetree support, no need
to have compile option in driver.

CRs-Fixed: 2258358
Change-Id: I722dcd2fd1d4b635ac7ec41f6a4dfc3479361bd4
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-19 11:47:33 -07:00
Sujeev Dias
16fb3e8043 mhi: core: use debugfs lookup method to find parent directory
Instead of storing debug_fs directory inode in a global data
structure, use a look up method to get the directory inode.

CRs-Fixed: 2258358
Change-Id: I2df480d7ea29b1cc90dff3a7fa19bb9c46132552
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-18 21:08:50 -07:00
qctecmdr Service
62bde515b8 Merge "mhi: dev: uci: update terminal signals bit settings" 2018-06-16 02:14:48 -07:00
qctecmdr Service
d9fc1ebf0a Merge "mhi: core: bind control device into mhi_bus" 2018-06-15 16:17:28 -07:00
Sujeev Dias
0b19bb1a72 mhi: dev: uci: update terminal signals bit settings
Incorrect bit mask was used when decoding TIOCM_RI bit.
Updated to correct bit settings.

CRs-Fixed: 2260878
Change-Id: Icd752f3fddf493ad212f489314da25beeb4d4f99
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-15 10:20:39 -07:00
Sujeev Dias
8d010cbb77 mhi: dev: uci: release lock as last step during uci_remove
Release device mutex as last step, otherwise uci_release could
free device memory while uci_remove still accessing same device
node.

CRs-Fixed: 2257246
Change-Id: I746eefc704152b528e80be7676f4a8604abcd38d
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-15 10:20:33 -07:00
Sujeev Dias
715523db78 mhi: core: read bhie offset from external modem
MHI BHI/E offset is not always at a constant offset. Read
the offset from the device at power on.

CRs-Fixed: 2261680
Change-Id: I18bfd63a266107bf22d3446da833afc379293ba8
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-15 10:19:33 -07:00
Sujeev Dias
169ec2d62b mhi: core: bind control device into mhi_bus
Add mhi control device to mhi_bus so all devices associated
with mhi is properly linked to mhi_bus.

CRs-Fixed: 2258358
Change-Id: If67fe0a16a42ffd30fe3a6f426e055b3f1384bb1
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-14 09:13:16 -07:00
Sujeev Dias
2ffb2b021d mhi: core: rename iova address to dma_addr
dma_addr are not necessarily same as physical address if iova is
enabled, rename to correct name to avoid confusions.

CRs-Fixed: 2258358
Change-Id: If55418500f94fcc9ebdc08786adea8bbf398cad3
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-14 09:13:06 -07:00
Sujeev Dias
9c5305af73 mhi: controller: generate firmware information based on device id
MHI bus framework no longer gets firmware information from
devicetree, therefore pass the firmware information to MHI
bus framework.

CRs-Fixed: 2258358
Change-Id: I1a3b0c262933f59c75736a213c8b85e5303923c7
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-14 09:12:53 -07:00
Sujeev Dias
da3e875e18 mhi: core: remove firmware info from devicetree
It's not recommended to put firmware information inside
devicetree, get firmware information from mhi control
driver instead of devicetree.

CRs-Fixed: 2258358
Change-Id: Icdb32d674ce5a962733398149e420d5ffed1607c
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-13 13:12:06 -07:00
Sujeev Dias
7b83723429 mhi: controller: reorganize static symbols
reordering static symbols to avoid forward declarations

CRs-Fixed: 2258358
Change-Id: Ia03fc0ff914fd34fed589c3380396c0ffbb68289
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-12 08:06:34 -07:00
Sujeev Dias
5fa6ccabb5 mhi: dev: uci: exit immediately if MHI channel is in disabled state
If write thread woke up because device is in a disabled state,
exit immediately and return error to user.

CRs-Fixed: 2258304
Change-Id: I7de224e29d0ef9b414a014ef0d874156367d0cb6
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-11 13:09:27 -07:00
Gustavo Solaira
dc139576cf mhi: core: add MHI ready state transition support
MHI state transition ready was not handled before, adding support
for MHI ready state.

CRs-Fixed: 2257733
Change-Id: Ib31f353f5a0ca6d160c94b0604d4d836281f58ad
Signed-off-by: Gustavo Solaira <gustavos@codeaurora.org>
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-11 12:38:30 -07:00
Sujeev Dias
5502f90efc mhi: controller: qcom: read memory carveout address from device tree
If bounce buffer is used, then MHI uses a dedicated memory range
for data transfer. Read the address from device tree and assign
to MHI controller.

CRs-Fixed: 2253996
Change-Id: I1d1f61bdbc40de0b39f8c7775c4da7c73cf14505
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-08 07:33:55 -07:00
Sujeev Dias
54cb6f8ffa mhi: core: add support for using bounce buffer
There are some configurations where PCIe controller does not
have same access as kernel, instead only has access to a
reserved memory pool. Copy client buffers into temporarily
allocate buffer from reserved memory pool before passing to
hardware.

CRs-Fixed: 2253996
Change-Id: I64c78df39e6a01d452c3db31ba748c41706d8190
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-08 07:33:39 -07:00
Sujeev Dias
4fc489cb79 mhi: controller: qcom: remove mhi platform driver
MHI no longer needs to have a platform driver since PCI
bus framework supports devicetree binding.

CRs-Fixed: 2253996
Change-Id: I2ab5c05f6a4bf51fbd6960fefa8fc39f8002d28b
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-08 07:33:30 -07:00
Sujeev Dias
0be593ca38 mhi: core: reorganize mhi channel configurations in DT
To make it easier to configure, reorganize how MHI channels
are configured in device node.

CRs-Fixed: 2244344
Change-Id: I5a9cef6fd6fc5083d6a0bc8b6354440fc5c3d816
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-06 08:25:23 -07:00
Sujeev Dias
c7b37e4de7 mhi: dev: uci: do not exceed maximum transfer size supported by mhi host
MHI host doesn't split client packet into multiple descriptors if
size exceed maximum transfer length (mtu) supported by MHI host.
Do not queue buffer bigger than mtu supported by transport layer.

CRs-Fixed: 2254585
Change-Id: I22b0f63c3fadd1600ac795619b98e4c1a9fa3218
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-05 23:06:04 -07:00
Sujeev Dias
e8e017d7da mhi: dev: uci: chain large transfers together
If we're transferring a large (> mtu) packet, then chain the
descriptors together to reduce number of completion events.

CRs-Fixed: 2254571
Change-Id: I015b9b998461566541ddc1e660ccc4fc5991f84e
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-05 23:05:57 -07:00
Sujeev Dias
9787922e7c mhi: core: add support to get external modem time
For accurate synchronizations between external
modem and host processor, mhi host will capture
modem time relative to host time. Client may use
time measurements for adjusting any drift between
host and modem.

CRs-Fixed: 2246653
Change-Id: I35fceea13e0df3929d4b0efd6b77a8de4211099c
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-05 08:08:22 -07:00
Sujeev Dias
46b23f8661 mhi: core: allow setting wake db only if we're on MHI M2 state
WAKE doorbell used for exiting MHI low power mode M2. To prevent
unnecessary interrupts on device side, only allow setting the
register if device is in M2 state

CRs-Fixed: 2248650
Change-Id: If84f57ceeae2ea17e32d2510a7d1da3a6a70c69b
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-06-01 12:02:38 -07:00
Sujeev Dias
1d84beb8d9 mhi: dev: net_dev: do not assert wake during napi_poll
MHI device does not require host to assert wake
when processing downlink data.

CRs-Fixed: 2248650
Change-Id: Ibc8aa75afdeb9176ea936d794b39c6675ad49859
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-05-25 07:07:18 -07:00
Sujeev Dias
d2dd62695b mhi: core: pm lock not needed to read pm state
Acquiring of pm lock is necessary if data is going over the PCIe
link to avoid another thread from turning off the link. For
reading pm state, acquiring pm lock is not necessary so remove
grabbing the lock when entering process ctrl event thread.

CRs-Fixed: 2248650
Change-Id: I68b894f41cac5a4a4c58bc94a20eaef4d70bf311
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-05-25 07:06:58 -07:00
Sujeev Dias
e04e35914c mhi: core: do not assert device wake when processing completion event
When processing completion events, we do not need to assert
wake because device has already completed required work.

CRs-Fixed: 2248650
Change-Id: I0a1981baaae2784a23abf1fdc262bc9e7f2aa460
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-05-25 07:06:31 -07:00
Sujeev Dias
2315437725 mhi: core: for downlink transfer only assert wake if MHI is in lpm mode
When MHI is in an active state, external device CPU cores can go
into a low power mode while device data movers processing data
transfer. Whenever host assert wake, it can cause device CPU to
exit low power mode even though there is no work to be done. For
downlink channels, assert wake only if MHI is in a low power mode
to avoid unnecessary wake ups.

CRs-Fixed: 2248650
Change-Id: I05ca7483a885237711a630844670e887572c13b7
Signed-off-by: Sujeev Dias <sdias@codeaurora.org>
2018-05-25 07:06:01 -07:00