Dump the always on counter when write on fenced register gets
timed out. This will help to sync and analyze GMU traces with dmesg.
Change-Id: Ie69c22f0cb81d52989112a9d0e4aa4cfbfa12030
Signed-off-by: Pankaj Gupta <quic_gpankaj@quicinc.com>
Currently, when waiting for hBoost ready times out, error code -EBUSY is
returned. In addition to that, reset the FIFO play logic so that the
following FIFO requests can still be served.
Meanwhile, add 100us before updating HAPTICS_EN for hBoost to have
enough time to handle its power transition as per the hardware
recommendation.
Change-Id: Iebfc98b589bda747e4c2b6fdf6ff78d2f46ece5d
Signed-off-by: Fenglin Wu <quic_fenglinw@quicinc.com>
Use lock to protect maps amongst multiple
threads to avoid race condition.
Change-Id: Ib0c83dd38ea8e5acb54a1478d10b02385c27ba31
Signed-off-by: Swathi K <quic_c_kataka@quicinc.com>
This patch allows to reference a net_device from a MACsec context. This
is needed to allow implementing MACsec operations in net device drivers.
Change-Id: I5f6ea8ef00889987bde03ceca88512ead27d936b
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Mark Starovoytov <mstarovoitov@marvell.com>
Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Git-commit: 8fa9137180b2fd8482b671f7e0bd8cf7538cbf59
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: Akshaya Damodaran <quic_adamodar@quicinc.com>
This patch adds a reference to MACsec ops to the net_device structure,
allowing net device drivers to implement offloading operations for
MACsec.
Change-Id: Iedaffed5dbf005a89a5b79030d1165f1019dd33f
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Mark Starovoytov <mstarovoitov@marvell.com>
Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Git-commit: 30e9bb8472f4454d0544020574bb03d96ffa0e52
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[quic_adamodar@quicinc.com: Fix trivial merge conflicts]
Signed-off-by: Akshaya Damodaran <quic_adamodar@quicinc.com>
This patch introduce a new netdev feature, which will be used by drivers
to state they can perform MACsec transformations in hardware.
The patchset was gathered by Mark, macsec functinality itself
was implemented by Dmitry, Mark and Pavel Belous.
Change-Id: I84cc0abf852a5adb25d3f6d3fd100b1921b66165
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Mark Starovoytov <mstarovoitov@marvell.com>
Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Git-commit: 5908220b2b3d6918f88cd645a39e1dcb84d1c5d9
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[quic_adamodar@quicinc.com: Moved upstream change in
net/ethtool/common.c to net/core/ethtool.c]
Signed-off-by: Akshaya Damodaran <quic_adamodar@quicinc.com>
Below mentioned is the sequence of operations done during a pr swap.
During the issue scenario, the sleep time of 26 ms is almost coinciding
between src_send_capabilities and snk_select_capabilities. Due to this
sink side is not able to receive accept from the source for the message
request sent. Hence, it does a hard reset.
State changes during working scenario.
Source Sink
SRC_Startup SNK_Startup
SRC_Send_Capabilities
sleeps for 26ms then entertains req
from snk
SNK_Evaluate_Capability
SNK_Select_Capability
send message request to src
expects accept in 26ms or else
does hard reset
Message request received from snk
SRC_Negotiate_Capability
Send message accept
SNK_Transition_Sink
SRC_Ready
SNK_READY
Below is the issue scenario
Source Sink
SRC_Startup SNK_Startup
SRC_Send_Capabilities
sleeps for 26ms then entertains req
from snk
SNK_Evaluate_Capability
SNK_Select_Capability
send message request to src
expects accept in 26ms or else
does hard reset
Message request received from snk
during this 26ms sleep, hence it
could not send accept
Perform hard reset as accept
not received within 26ms
Fix this by processing the request message immediately after it is
received. This makes sure that request message sent from another end
is processed quickly, so that it doesn't cause other end to send
a hard reset.
Change-Id: I7ffc0772df9300f6e56bbb4e4ad9aa3f15b10b8a
Signed-off-by: Rohith Kollalsi <quic_rkollals@quicinc.com>
When the msm_serial driver defer probed, if
msm_uart_next_id increased at the beginning
of probe, should decreased when probe failed.
Change-Id: I8a2594afca17c4ab5fef78da822ffdf39377d0bb
Signed-off-by: Yue Liu <quic_yueliu@quicinc.com>
Consider a scenario where user allocates anonymous memory but does not
write to it. Here the physical pages are not yet allocated. Now when this
memory is requested to be imported, a list of newly allocated zero pages
is obtained using get_user_pages(). Currently cache flush is not done for
these pages and hence GPU sees stale data. Fix this by performing cache
flush on these pages.
Change-Id: Id1e8aa20e8a9de112761732ed92f30c01088840b
Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com>
- Fixed header file and warning complain
- Atl-fwd: Fix name string for mac_phy stats in ethtool-dump
- Atl-fwd: Minor additions to ethtool dump implementation
- Atl-fwd: Add ethtool-dump parser
- ATLDRV-1776: Fix for link flip during IPA ring reconfig
- Atl-fwd: Update crash-dump structure to fixed size structure
- Atl-fwd: Correct driver README file and export couple of APIs
- Atl-fwd: Populate Action resolve table and Ring data in the ethtool-dump
- ATLDRV-1766: Fix to update HWTS ring tail value to HW
- Fix error in populating the extended stats
- AQC113 register dump support
- stats+crashdump implementation draft
- Statistics and crash dump API proposal
- factor out fwd stuff to drop headers dependencies
- ATLDRV-1744] - Add FW version check in Atl-fwd driver
- Move check for PTP UDP packets to separate function, Enable TX pad insert and Handle all FFs in ptp tx TS
- ATLDRV-1582] - Link not Up after FLR reset
- ATLDRV-1653] - Packet with vlan id 1 doesn't get received when rx vlan filter is disabled
- ATLDRV-1659] - Failed to compile with CONFIG_ATLFWD_FWD=y flag on RHEL 8.3 kernel.
Change-Id: Ie1c4a42f9938b0b4dfb26418a755010baadad011
Signed-off-by: Sameer Saurabh <ssaurabh@marvell.com>
Git-commit: d86086216c6d511576d63dd216ab2cc1a8d46309
Git-repo: https://github.com/aquantia/linux-4.14-atlantic-forwarding
Signed-off-by: Raihan Haider <quic_rhaider@quicinc.com>
This change enables UAC1 and UAC2 protocol for USB peripheral
audio on sdxnightjar.
Change-Id: Icb804ab221a79ed2c581cebd7107a3a3055f40fd
Signed-off-by: Rohith Kollalsi <quic_rkollals@quicinc.com>
Add support to check RDDM cookie in ERRDBG1,ERRDBG2 and ERRDBG3
registers to debug the the bootup failure when device
failed to enter MISSION mode.
Change-Id: Idaf00c082ffda97805e958ae083a331d9f0909e9
Signed-off-by: Vivek Pernamitta <vpernami@codeaurora.org>
Signed-off-by: Ramya SR <rsr@codeaurora.org>
Currently EDL mode works over USB, if PCIe is early
enumerated on the device add support for EDL over PCIe.
Change-Id: I051ef2a5fa4f63890a1044838dd870fa0195b0b7
Signed-off-by: Yogesh Lal <ylal@codeaurora.org>
Match the QMI request message max length as per IDL changes.
Change-Id: I960c3f07cd738b6324fa4cd13ffe696870f33b4e
Signed-off-by: Michael Adisumarta <quic_madisuma@quicinc.com>
Update the reason for cpuidle state selection as scheduler
bias in case bias timer is set. Make use of unused next_event_us
parameter to replace with cpu bias status.
Change-Id: I42950b3d9d85da0ec5245c9cdbc7bcc5d609be3d
Signed-off-by: Maulik Shah <quic_mkshah@quicinc.com>
mhi_dev_write_channel is called by diag channel. While processing it,
reset interrupt is received from host. During the reset sequence the
work queue mhi_sm_wq is getting destroyed in mhi_dev_sm_exit API. When
the mhi_dev_write_channel is resumed, queuing of work is done as part of
mhi_dev_notify_sm_event. Here, as the work queue is destroyed, crash
occurred with a kernel null pointer deference error. This is a race
condition between reset sequence and mhi_dev_notify_sm_event.
To avoid this race condition added a mutex lock mhi_lock in
mhi_dev_write_channel before calling mhi_dev_notify_sm_event.
Change-Id: Idaf1c33c462b6d659f3e5ddb333afe9c6a967fac
Signed-off-by: Sai Chaitanya Kaveti <quic_skaveti@quicinc.com>
The data on NAND parts degrades overtime. This is known as data decay.
This decay is accelarated by extreme temperatures.
When data on nand is read over and over again this can also cause decay
of data. This is known as read disturb and can degrade the data in
the page/block that is read and the adjacent cells as well.
This data degrade can be corrected to a certain degree by the nand
driver/controller using the ECC but this is not sufficient specially
in products designed to last years.
The only way to combat the decay is to "refresh" the data by moving it
to a new location.
Add scrub_all support to UBI to facilitate the data refresh.
Change-Id: Ifafb82fe4ddb7120277dcfbbff79b3e087ca344d
Signed-off-by: Nikhilesh Reddy <reddyn@codeaurora.org>
Signed-off-by: Pradeep P V K <quic_pragalla@quicinc.com>
To handle corner case where mhi power on success and the boot
debug timer handler execution(i.e dumping register) runs parellel.
Even-though the timer is deleted as soon as mhi is powered on,
as this handler is still running it is armed again. Use
del_timer_sync which makes sure the timer is not queued and
the handler is not running upon its exit.
Change-Id: Ie428f3e8af8870018dfed99a5472afca14116bb3
Signed-off-by: Mohammed Siddiq <quic_msiddiq@quicinc.com>
Suppose if the userspace using ffs failed to open
ep0, it will issue a ep0_release and continuously try to do
ep0_open until it gets through.
The general operation of ep0_release is the it will destroy
the epfile and free the structures. Whole thing follows this
path:
ffs_ep0_release
ffs_data_reset
ffs_data_clear
kfree(epfiles) mark NULL
kfree(raw_desc)
raw_desc =NULL
Now the last few steps of the release process is done without
any mutex. In one functions we do kfree and another we mark
NULL.
This created a potential double free scenario, if a ep0_release
process got preempted before kfree, meanwhile another ep0_release
gets through and freed up the structures but didn't mark NULL
and within that time the preempted process wakes up and tried
to kfree again, due to structure not marked NULL will lead to
double free/invalid free.
Following is the illustration:
CPU2 CPU3
ffs_ep0_release
ffs_data_reset
ffs_data_clear
kfree(epfiles)
epfiles = NULL
--preempted--
ffs_ep0_release
ffs_data_reset
ffs_data_clear
kfree(epfiles)
epfiles = NULL
kfree(ffs->raw_descs_data)
kfree(ffs->raw_strings)
kfree(ffs->stringtabs)
--woke-up--
kfree(ffs->raw_descs_data)
<use-after-free>
raw_desc =NULL
Fix this by performing kfree and NULL operations under
ffs_data_clear within a mutex lock.
Change-Id: I1c8d92ff99c30165b06bafdd00bc9eb610f3bb76
Signed-off-by: Udipto Goswami <quic_ugoswami@quicinc.com>
Add support for pin connectivity test for BT/FM slimbus
Change-Id: Ia913bcb204f6cccc59790b9a4cef20cbd346f05c
Signed-off-by: Satish Kumar Kodishala <quic_skodisha@quicinc.com>
Due to pcie link down, wlan tried to recover from the
failure, it checked for the current context to see if
some memory has to be allocated in atomic context, but
seems it failed to take into account one condition.
To maintain wlan driver code as OS independent, code changes
are done to allocate memory always with GFP_ATOMIC flag inside
cnss_schedule_recovery() function. This avoids adding gfp flags
inside wlan driver code.
Change-Id: I255d22a46288eccc2056d870b5f3ee7575ee71eb
Signed-off-by: Gangadhar Kavalastramath <quic_gkavalas@quicinc.com>
Due to changes in Kconfig default options, genericarmv8 is out of sync.
Sync genericarmv8 defconfig to the latest code.
Change-Id: I15d753b9d9429ac623fd7b7e7eaa936b5ed2a8b1
Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>
The function drivers have no business accessing usb_request::num_mapped_sgs
field. The UDC will use this field to cache the sgs mapped for a given
request.
Change-Id: I6a8c8c2e52a36caedfe977f517b4c04b1ad0045c
Signed-off-by: Pavankumar Kondeti <quic_pkondeti@quicinc.com>