Commit Graph

370 Commits

Author SHA1 Message Date
Bitan Biswas
c86ec7d3e5 iommu: k5.9: remove archdata.iommu accesses
k5.9 build needs below changes:
read archdata.iommu replaced by iommu_get_domain_for_dev
write archdata.iommu removed as alternative implementation used.

k5.9 build error fixed by explicit include of header <linux/iommu.h>

Change-Id: I464fd4144e4317b10aaa5460482f35e46527339a
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2400862
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
rakesh goyal
3dd509ad9c nvethernet: fix kernel panic by adding napi_synchronize
Issue:	Kernel panic if NAPI scheduled in ether_close() path.

Fix:	Disable NAPI before freeing dma resources as well as
	call napi_synchronize() before napi_disable() for
	scheduled NAPI to be completed.

Bug 200650229

Change-Id: I8c57ba90b5094ab3a130ca56221b3e1b16b96025
Signed-off-by: rakesh goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2404266
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
rakesh goyal
3ff1678205 nvethernet: fix Rx DMA suspend issue
Issue:  DMA will be in suspend state if there is no rx buffer allocation
        happen to HW. If DMA is in suspend state, no interrupt will
        occur for channel which leads to not calling of
	osd_receive_packet().

Fix:    Whenever there is rx buffer kernel memory allocation failure,
	desc will be updated with reserve buffer. This reserved RX buffer
	is already allocated at the time of eqos_open. Aim of same to
	make sure rx DMA always have buffer and not go in suspend state.

Bug 200650229

Change-Id: Ic18d9f8f03c69c142d91288a1a7288d26e1c8b42
Signed-off-by: rakesh goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2399011
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bitan Biswas
2b858ac2eb drivers: Kconfig: remove ---help---
Use "help" in Kconfig instead of deprecated option "---help---"
Refer k5.9 commit:
f70f74d15ca80d73eca6d5a731257627fb6370c5 2020-08-14 13:30:03 +0900 Masahiro Yamada ##  kconfig: remove '---help---' support

Change-Id: Id0ba957cf565d51de66e0921a395dabe0d9fc66d
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2400850
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Nagarjuna Kristam
aa31dfba17 nvethernet: Update Makefile
Add eqos_common.c to source and common include path to include section
of the Makefile.

Bug 200630996

Change-Id: I7fc1fd798e91cb125d6181d72925a73804c9fa7a
Signed-off-by: Nagarjuna Kristam <nkristam@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2372241
(cherry picked from commit 643cec090558772cd5acfc8245b790f61b43ad97)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2372144
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Gaurav Asati <gasati@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
narayanr
05756c75fe nvethernet: add copy right header
Bug 200622869

Change-Id: I8f28ba6faf3e3203fcb12f65131e77a1a78ca8bc
Signed-off-by: narayanr <narayanr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2371216
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Sushil Singh
12aeba932b nvethernet:t186 Skip pll_refe clock for t18x
- skip pll_refe clock dt entry parsing for  MAC version
  less than 5.0. in case of t18x platform.

Bug 200591808

Change-Id: I7ce231db4bcbd62dbe0ac14118581d5eea78e53e
Signed-off-by: Sushil Singh <sushilkumars@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2365249
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Manish Bhardwaj
45a2dfb57b ethernet: handle return value properly
Improper handling of return value is causing below crash.

[    2.278898] Unable to handle kernel paging request at virtual address fffffffffffffffe
[    2.287262] Mem abort info:
[    2.289874]   ESR = 0x96000006
[    2.292957]   EC = 0x25: DABT (current EL), IL = 32 bits
[    2.298463]   SET = 0, FnV = 0
[    2.301418]   EA = 0, S1PTW = 0
[    2.304411] Data abort info:
[    2.307042]   ISV = 0, ISS = 0x00000006
[    2.310886]   CM = 0, WnR = 0
[    2.313845] swapper pgtable: 64k pages, 48-bit VAs, pgdp=0000000081710000
[    2.320348] [fffffffffffffffe] pgd=0000000081f50003, pud=0000000081f50003, pmd=0000000000000000
[    2.328919] Internal error: Oops: 96000006 [#1] PREEMPT SMP
[    2.334315] Modules linked in:
[    2.337471] CPU: 6 PID: 1 Comm: swapper/0 Not tainted 5.7.0-tegra #15
[    2.343595] Hardware name: e3550_t194a (DT)
[    2.347800] pstate: 60c00009 (nZCv daif +PAN +UAO)
[    2.352876] pc : ether_probe+0xf84/0x2290
[    2.356981] lr : ether_probe+0xf80/0x2290
[    2.361111] sp : ffff80001218fa70
[    2.364071] x29: ffff80001218fa70 x28: 0000000000000000
[    2.369754] x27: ffff0007c0c1b880 x26: ffff800011591000
[    2.375008] x25: ffff800011177a60 x24: ffff800011591198
[    2.380516] x23: ffff0007c0e8c080 x22: ffff0007c0bee010
[    2.385772] x21: ffff0007c0bee000 x20: ffff800011177000
[    2.391541] x19: ffff800011d15000 x18: ffffffffffffffff
[    2.396620] x17: 0000000000000068 x16: 0000000000000000
[    2.402216] x15: ffff800011d15948 x14: ffff80009218f7c7
[    2.407382] x13: ffff80001218f7d5 x12: ffff800011d2e000
[    2.413065] x11: 0000000005f5e0ff x10: ffff800011d161b8
[    2.418321] x9 : ffff800011890018 x8 : 0000000000000000
[    2.423741] x7 : 0000000000000107 x6 : 000000000000000a
[    2.428822] x5 : 0000000000000003 x4 : fffffffffffffffe
[    2.434527] x3 : 00000000ffffffff x2 : eaa4d7f4484fe300
[    2.439582] x1 : 0000000000000000 x0 : 0000000000000017
[    2.445201] Call trace:
[    2.447638]  ether_probe+0xf84/0x2290
[    2.451157]  platform_drv_probe+0x54/0xa8
[    2.455334]  really_probe+0x110/0x368
[    2.458855]  driver_probe_device+0x5c/0x108
[    2.462856]  device_driver_attach+0x74/0x80
[    2.467056]  __driver_attach+0x8c/0xd8
[    2.470561]  bus_for_each_dev+0x7c/0xd8
[    2.474582]  driver_attach+0x24/0x30
[    2.478081]  bus_add_driver+0x154/0x200
[    2.481764]  driver_register+0x64/0x120
[    2.485783]  __platform_driver_register+0x44/0x50
[    2.490335]  ether_driver_init+0x1c/0x28
[    2.493837]  do_one_initcall+0x60/0x1c0
[    2.498033]  kernel_init_freeable+0x1fc/0x268
[    2.502063]  kernel_init+0x14/0x110
[    2.505561]  ret_from_fork+0x10/0x1c
[    2.509242] Code: b0005820 9106c000 97daf772 f9406fa4 (b9400081)
[    2.515200] ---[ end trace 790e8c45a4a3892a ]---
[    2.519962] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    2.527641] SMP: stopping secondary CPUs
[    2.531822] Kernel Offset: disabled
[    2.535481] CPU features: 0x080002,2300aa30
[    2.539502] Memory Limit: none
[    2.542576] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---

Change-Id: I5a526033fc4537886e004561eda2d6c494782bd3
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2371138
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Sushil Singh
89b049c619 nvethernet:Get local-mac-address prop from DT node
Add logic to read local-mac-address property within ethernet DT node
which will be updated by bootloader during boot.
Fall back to using the old property ether-mac in the "chosen" node
if the new one can't be found for backwards-compatibility.

Bug 2739120

Change-Id: I9787614e024d9a844ab7aff6ac17fbe834105a4d
Signed-off-by: Sushil Singh <sushilkumars@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2304592
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
rakesh goyal
b5d381e7ec nvethernet: use vlan priority to select queue
Adding support to use VLAN priority field
to select correct TX queue. For TX packets which
are for VLAN interface, skb->priority is not used.

Bug 200630202

Change-Id: I4755066ead11e7528a18ee99b1eaba2b7a936d6d
Signed-off-by: rakesh goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2366244
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Nagarjuna Kristam <nkristam@nvidia.com>
Reviewed-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Mahesh Patil
a7a0aea104 nvethernet: Indicate more Rx frames pending
Issue: The function osi_process_rx_completions does
       not provide indication whether there are more
       Rx frames in the HW ring to be processed by SW.
       This indication is needed in OSD layers like
       AUTOSAR MCAL driver as per the spec.
Fix:   Add more rx data flag arg to osi_process_rx_completions() call

Bug 3019362

Change-Id: Ic6c524d1f28b543fc164f2176a8e36d52ca8de58
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2361263
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
0d329bb260 nvethernet: Support for Ethernet selftests
Adds selftest support for -
1) MAC loopback
2) PHY loopback
3) MMC Counters

Bug 200622869

Change-Id: Ib476afa342c283b53d5ab74cc50a1458183ab16d
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2354887
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bibhay Ranjan
81378766ad nvethernet: fix ethtool ops for kernel > 5.4
Bug 200617764

Change-Id: I34d9b640593219a4775c7c38f7ec7034b6d13fe5
Signed-off-by: Bibhay Ranjan <bibhayr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2348800
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Bitan Biswas
0b46274d42 nvethernet : defer probe for reset gpio
nvethernet comes up before gpio and hence reset gpio error below
seen in galen boot log:
###
[    2.252546] nvethernet 2490000.ethernet: Adding to iommu group 0
[    2.257577] nvethernet 2490000.ethernet: failed to get phy reset gpio
[    2.265533] nvethernet 2490000.ethernet: Ethernet MAC address: 00:04:4b:af:62:37
[    2.271764] libphy: nvethernet_mdio_bus: probed
[    2.275940] mdio_bus 2490000.ethernet: MDIO device at address 0 is missing.
[    2.284469] nvethernet 2490000.ethernet: eth0 (HW ver: 50) created with 1 DMA channels

[    2.548104] GPIO line 510 (gpio_default) hogged as output/high
[    2.553598] GPIO line 511 (gpio_default) hogged as output/high
[    2.558156] gpiochip_setup_dev: registered GPIOs 504 to 511 on device: gpiochip0 (max77620-gpio)
##

Returning -EPROBE_DEFER allows the driver initialization once gpio is initialized.
Ethernet works fine in probe retry call once gpio is up. Hence, the defer probe
is needed.

bug 200617764

Change-Id: Icdcf0d7f0b69c564ecb0b142634b504287db3ea1
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2348758
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Bitan Biswas
0e7b230bab nvidia: drivers: fix linux-5.7-rc5 build
Fix build linux-5.7-rc5 errors including following:
	- change timespec to timespec64. replace getnstimeofday
	  with ktime_get_ts64
	- replace usage of macro FIELD_SIZEOF with sizeof_field in ethtool.c
	  nvethernet and eqos files.
	- support 2 arguments for of_get_phy_mode call

bug 200617764

Change-Id: I46067d7d36d08ee9556b2722e9ccec707b8853d4
Signed-off-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2347244
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
rakesh goyal
c6b2d05d26 nvethernet: dump all registers
Dump all valid ethernet IP registers

Bug 200563382

Change-Id: I34ce3c1dc5c2c4e12040d2d349e2ad63ec8bca8b
Signed-off-by: rakesh goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2338198
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
192561087a nvethernet: dump tx/rx descriptors
Bug 200563382

Change-Id: Iefe82119e3812834d115f6bd140f034017527659
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2338197
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: Rakesh Goyal <rgoyal@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
a921c9487b nvethernet: dump HW features through debugfs
cat /sys/kernel/debug/nvethernet-<interface>/hw_features to
dump the HW features

Bug 200563382

Change-Id: Ifd8eab0564123d1f588241fbadb739e6ef553114
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2338196
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: Rakesh Goyal <rgoyal@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Mahesh Patil
d7e0d58393 nvethernet: Free skb for Rx error packets
Issue: Driver does not free skb if OSI_PKT_CX_VALID is reset for Rx
       error packets. It can cause memory leak.
Fix: Free Rx packet skb's for error packets

Bug 2906694

Change-Id: I4364cf9d2974334d2b2d76bfcc22ef89ac406e8c
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2338963
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Mahesh Patil
96c5478e05 nvethernet: Check Rx packets processed or not
Issue: If buffer allocation fails in Rx refill, cur_rx_idx overlaps
       and can result in crash in osi_process_rx_completions()
Fix: Track Rx packet processed or not. If pkt is already processed
     skip further rx packet processing in osi_process_rx_completions()

Bug 2945319

Change-Id: Ieaed3aadf3d29aaa0e9d29d074f1f0f54f77e620
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2338921
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Ajay Gupta <ajayg@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bibhay Ranjan
619f3c7b7d nvethernet: bringup on kernel-5.4
disable chip-id.h APIs on kernel-5.4 since
the file is still not available.

Back compatible with older kernel versions

Bug 200591808

Change-Id: Ib991ad02ba016ac9f186b5c8afdc8608c780d9be
Signed-off-by: Bibhay Ranjan <bibhayr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2304494
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Bibhay Ranjan
e42f49ee42 nvethernet: disable IVC support for Ethernet in K5.4
tegra-ivc driver is not enabled on kernel-5.4 hence
file "linux/tegra-ivc.h" is missing.This driver is
used by virtualization code.

Putting all the virtualization code within kernel
version check and disable it for kernel-5.4

Bug 200591808

Change-Id: I797062db172256e1ec14d22d00d73164513a9685
Signed-off-by: Bibhay Ranjan <bibhayr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2337400
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Bhadram Varka
c4a75f03ac nvethernet: Add support for VM interrupts
Adds VM interrupt handling for VM interrupt
based MAC controllers.

Need to pass below parameters from DT -
o Number of VM IRQ's assigned per OS/VM.
o Number of VM channels assigned to a VM IRQ.
o List of DMA channels assigned to a VM IRQ.

Below is the sample DT representation -

vm_irq_config: vm-irq-config {
	nvidia,num-vm-irqs = <4>;
	vm_irq1 {
		nvidia,num-vm-channels = <2>;
		nvidia,vm-channels = <0 1>;
	};
	vm_irq2 {
		nvidia,num-vm-channels = <2>;
		nvidia,vm-channels = <2 3>;
	};
	vm_irq3 {
		nvidia,num-vm-channels = <2>;
		nvidia,vm-channels = <4 5>;
	};
	vm_irq4 {
		nvidia,num-vm-channels = <2>;
		nvidia,vm-channels = <6 7>;
	};
};

ethernet@<base_addr> {
	[...]
	nvidia,vm-irq-config = <&vm_irq_config>;
	[...]
}

Bug 200548572

Change-Id: I802f247fa95ef6dcd769afbc7c13c6362d2f328e
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2292602
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
3c81e255bd nvethernet: Don't enable clks/resets for EQOS VDK
EQOS clks/resets not enabled on VDK. Bypass clks and
resets for EQOS probe base on OSI Core flag.

Bug 200548572

Change-Id: I8d8400261ecf14ee782b3b1fff61b07cac20cb1b
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2292601
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Gaurav Asati
e62d719a99 nvethernet: Check bit in rxcsum flag.
Issue:
- rxcsum is used as container of flags instead of
  value place holder.

Fix:
- Use binary operation to fetch required bit
  for necessity of checksum.

Bug 200610815
Change-Id: Ie6f3e79868edde2393186a06f257ba4b57dae0ac
Signed-off-by: Gaurav Asati <gasati@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2333164
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Manish Bhardwaj
7bffef3081 nvethernetrm: remove kernel/nvethernertrm as kernel-overlay and adjust Makefile.
Bug 200573260
Bug 200587518

Change-Id: I1ab29eae45eb4f925bfe8b53d40d59c36ae04af0
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2333149
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Manish Bhardwaj
7d18f1c6b0 nvidia: update nvethernetrm source file location in Makefile
Bug 200573260
Bug 200587518

Change-Id: I76881cdb19a0185f0b9dd6ba1f07ceb8a9d6eb9f
Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2329567
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Vipin Kumar <vipink@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Mohan Thadikamalla
89c9124052 nvethernet: Add TXQ, RXQ and Speed get IOCTLs
Bug 200598154

Change-Id: Ic53b56ba59e99366583b133ada4550b5e3cb36aa
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2329743
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Anu Priya <apriya@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: Anu Priya <apriya@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
nannaiah
f48d979e44 nvethernet: Allow to set non zero DMA channel.
1. Add Flag which decides stats work queue is enabled(1) or
   disabled(0)
2. If virtualization is enabled then allow function driver instance
   to specify non zero DMA channel and to read stats flag from DT.

Bug 2694285

Change-Id: Ic97c079e66c117ed78f1b473ffda33173bd3f23c

Signed-off-by: Nagaraj annaiah <nannaiah@nvidia.com>
Change-Id: Ic97c079e66c117ed78f1b473ffda33173bd3f23c
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2327179
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Bhadram Varka
d1c349ccd0 nvethernet: use IRQ-safe variant of raw spinlock
Issue: Deadlock observed because ptp_lock shared
between process context and Interrupt context.

Below is the scenario where deadlock observed -
1) ether_adjust_freq acquired the lock
2) At the same ether_get_ptptime() called from IRQ context
3) ether_adjust_freq() got preempted and ether_get_ptptime()
trying to aquire the lock again which leads to dead lock.

Fix: Disable the interrupts before aquiring the lock
by using IRQ-safe variant of raw spinlock.

Bug 200591192
Bug 200535378

Change-Id: I6f884883bf9cf93877ddb5d0fb7b2927573a1858
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2323211
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
nannaiah
4862fe2d5b nvethernet: Add IVC handling for Common interrupts
When ethernet virtualization exists the common interrupts
are served from ethernet server and server sends ivc messages
to host drivers to handle common interrupts.

Bug 2694285

Change-Id: I0af0c7f97b3f2d34f4adb72c114c3cfca6a623fc

Signed-off-by: Nagaraj Annaiah <nannaiah@nvidia.com>
Change-Id: I8bb71c3704308f26ae97141ba1e8354da31fd70f
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2317274
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
69cf090fde nvethernet: check return code for set_speed
osi_set_speed will return error if there is no set_speed
callback defined or if something error happened while setting speed.

Bug 200565886

Change-Id: I9c74364d1a2e951059c3718c719314424b13c729
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2314494
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Mahesh Patil
35f2dceb54 Revert "nvethernet: Disable EEE feature"
This reverts commit 3b60e4e0d59bbd8d582a85d5e4c3459499c7ae33.

Bug 2813867
Bug 2850086

Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Change-Id: I2891c5db06b4269c1424d8c91e3b3c12129ec973
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2314315
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Ajay Gupta <ajayg@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Mohan Thadikamalla
c547794a00 nvethernet: Add save/restore command
Add a new private IOCTL command to
configure MAC register save and
restore operations from user space.

Bug 200596517

Change-Id: Ic0e7069e064e277b842b5fd3ceb7ea17327687d5
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2315790
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Mohan Thadikamalla
b18ab27659 nvethernet: Remove backup_config checks
As the osi_core_private_data structure
backup_config variable got updated to
core_backup structure type remove this
variable NULL check.

Bug 200596517

Change-Id: I3911ef285eaa7af60f7d9e75b11b23d38773b06b
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2315796
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
narayanr
7ae3a8cdb0 nvethernet: rename ptp to reuse for swcx flag
use reuse instead of ptp, so that it
will be a generic for any descriptors that
we need to skip buffer allocation and DMA
mapping

Bug 2870545

Change-Id: Idae57cab7a36d0cf52fb64883d3452f8e6917d51
Signed-off-by: narayanr <narayanr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2308395
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Bibek Basu <bbasu@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
rakesh goyal
ecf995a8f7 nvethernet: ethtool: counter for pkt_err stats got cleared
Add counter for how many times pkt_err stats got cleared
using osi_clear_tx_pkt_err_stats and
osi_clear_rx_pkt_err_stats call.

Bug 200548007

Change-Id: I3f98256306f9104ad952ff1829c48ccce41c4d4e
Signed-off-by: rakesh goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2304565
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: automaticguardword <automaticguardword@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
narayanr
9980e3e524 nvethernet: enable GPSLCE
Enable Gaint Packet Size Limit Control when
MTU size is greater than 9000

Bug 200561709

Change-Id: Ied21e03e0cc5dddd9a2a8d47ffbaccd542937fb5
Signed-off-by: narayanr <narayanr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2303740
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Mahesh Patil
405a6ed9ed nvethernet: Disable EEE feature
Issue: Enabling EEE feature causing random SSH failures
       in GVS tests.
Fix: Disable EEE feature until root cause issue

Bug 2813867

Change-Id: I462cb7efbe7916a7591e8f0a2dca6ba1cbf9addc
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2294331
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Bhadram Varka
dbdc5e7764 nvethernet: rename EQOS to ETHER
It rename EQOS to ETHER so that it can be used for
other IP's as well.

Bug 200565915

Change-Id: Idbec6f1706ecf594dc13fb48f9936746eb78aecc
Signed-off-by: Narayan Reddy <narayanr@nvidia.com>
Signed-off-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2292241
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Mohan Thadikamalla
dc9401798a nvethernet: Fix invalid MAC filter register count
Issue:
When HW configured for 32 MAC filters Addresses,
driver pdata->num_mac_addr_regs wrongly set to 1.

Fix:
Handle pdata->hw_feat.mac_addr16_sel check properly and set
pdata->num_mac_addr_regs value to 32.

Bug 200565909

Change-Id: I84a6f84b27fff6aaeee9a6636eca5b11f46ba994
Signed-off-by: Mohan Thadikamalla <mohant@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2290788
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Rakesh Goyal <rgoyal@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Mahesh Patil
8c6d96126b nvethernet: Enforce admin permission for ioctl
Issue: Any app without admin permission can change
       MAC configuration using priv ioctl's

Fix: Enfore admin permission check during priv ioctl call.
     Block ioctl call if the calling application does
     not have admin permission.

Bug 2825193

Change-Id: I0d1e0b13b3579d451ea7a75678766a27cd6ffca2
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvidia/+/2287375
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Ajay Gupta <ajayg@nvidia.com>
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
GVS: Gerrit_Virtual_Submit
2022-11-01 14:27:08 +05:30
Srinivas Ramachandran
6fc9bd5147 nvethernet: Invoke API to backup/restore registers
Issue: During SOC suspend, the MAC is placed in reset.
       This causes all dynamic configurations done by
       SW on the MAC core registers is lost. When SOC
       resumes, MAC is initialized to power-on-default
       configuration, while other SW components still
       have previously set configuration. This results
       in mismatch between HW/SW configuration.
Fix:   Invoke APIs osi_save_registers(), osi_restore_registers()
       to backup and restore the MAC core configuration
       registers before suspend and after resume respectively.

Bug 200561046

Change-Id: I22183ba86fe9e7a7d8f9efb6a90c265182c5c68a
Signed-off-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2267402
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Srinivas Ramachandran
1573817944 nvethernet: Honor budget for processing tx completions
Issue: osi_process_tx_completions is run in the BH for
       processing Tx done irq. This function always loops
       till the Tx status for all packets that are Tx'd so
       far is processed.
       1) The NAPI budget for this Tx completions handler is
       not honored.
       2) The condition to invoke napi_complete() is incorrect.
       Currently, processed count should be 0, which can happen
       only if BH is scheduled to run and it finds no packets that
       have completed Tx. THis is a wasted schedule for the BH.
       3) netdev stats for Tx packets is incremented for every Tx
       descriptor instead of packet.

Fix: 1) Add budget parameter to osi_process_tx_completions() API.
     2) Change condition to invoke napi_complete() to avoid wasted
     scheduling of the napi handler.
     3) Increment the netdev stats only when skb is consumed ie.
     entire packet is transmitted).

Bug 2756439

Change-Id: I273bdb2667112b8d252b119dee5cc92055cb2913
Signed-off-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2237821
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:08 +05:30
Mahesh Patil
ece7ed224b nvethernet: Rename functions to match close functionality
Issue: rename functions to match close functionality

Fix:
 1) Renamed osi_poll_for_swr() to osi_poll_for_mac_reset_complete()

Bug 2715276

Change-Id: I939d9804350110b3d28c16ff511390ce5ab0c625
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2209755
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:07 +05:30
narayanr
1559acd4db nvethernet: change the log level for IOCTL func
Currently for unsupported IOCTL numbers driver printing
the debug message at kernel error log level. Change the
log level from ERR to DEBUG.

Bug 200577089

Change-Id: I7c1580e50e49de6b61a3a1d76ddf946ba98ad74c
Signed-off-by: narayanr <narayanr@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2270813
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:07 +05:30
Srinivas Ramachandran
20e4a2fb7a nvethernet: Call netif_carrier_on/off based on PHY link
Issue: When configuring loopback mode, netif_carrier_on/off
       APIs are directly used i.e, netif_carrier_on when
       loopback mode enabled, netif_carrier_off when
       loopback mode is disabled. If anyone enables/disables
       loopback mode when link is alreay up, then link is
       not restored. Stack is not sending packets due
       to netif_carrier_off.
Fix:   Check PHY link status before calling netif_carrier_*
       APIs. If link is up, then PHY framework would have
       already invoked these APIs.

Bug 200512681

Change-Id: I1e07df202a8915737be8992f838aa5bd5534c512
Signed-off-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2267401
GVS: Gerrit_Virtual_Submit
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Narayan Reddy <narayanr@nvidia.com>
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:07 +05:30
rakesh goyal
4901365614 nvethernet: fix hrtimer bug
Issue:
 1) hrtimer code is using index instead of
chan number (TX_NAPI[<index>] instead of TX_NAPI[chan])

Fix:
 1) update code to use channel number

Bug 200529168

Change-Id: I4a554ae3426910dd19b5d481957f41e32b6ff063
Signed-off-by: rakesh goyal <rgoyal@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2263933
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:07 +05:30
Mahesh Patil
5176ea0aa5 nvethernet: Harden while loops
Issue:
 Unsigned int variable in loop condition
 can be stuck forever if variable becomes uint_max-1
 for unknown reason

Fix:
 Add acceptable range condition check for loops

Bug 2715343

Change-Id: I0c29d77fd3c2c7e03e3ff3492acea00b94e3319e
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2244699
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:07 +05:30
Mahesh Patil
fa8c188668 nvethernet: Make promiscuous mode configurable
Make nvethernet promiscuous mode configurable in DT.
It can be enabled or disabled based DT for given platform

Bug 2715400

Change-Id: Ifa32ba8fa9108ad7b9a283b2f4f65c362601cdfc
Signed-off-by: Mahesh Patil <maheshp@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2261454
Reviewed-by: Nagaraj Annaiah <nannaiah@nvidia.com>
Reviewed-by: Ajay Gupta <ajayg@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Tested-by: Srinivas Ramachandran <srinivasra@nvidia.com>
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Ashutosh Jha <ajha@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
2022-11-01 14:27:07 +05:30