mirror of
				https://github.com/Telecominfraproject/wlan-ap.git
				synced 2025-10-30 18:07:52 +00:00 
			
		
		
		
	WIFI-14526 CIG smp affinity for supporting 53XX platform with wikiki and pebble
Signed-off-by: Ken <xshi@actiontec.com>
This commit is contained in:
		
							
								
								
									
										77
									
								
								feeds/qca-wifi-7/ipq53xx/base-files/etc/init.d/smp-affinity
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										77
									
								
								feeds/qca-wifi-7/ipq53xx/base-files/etc/init.d/smp-affinity
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,77 @@ | |||||||
|  | #!/bin/sh /etc/rc.common | ||||||
|  |  | ||||||
|  | START=99 | ||||||
|  |  | ||||||
|  | boot() { | ||||||
|  | 	# For CE(assigned 2 core to copy engine) | ||||||
|  | 	# using 3 core will cause firmware crash due to bss channel survey timed out | ||||||
|  | 	i=0 | ||||||
|  | 	cpu_mul=2 | ||||||
|  | 	ce="ce" | ||||||
|  | 	ce1="ce_" | ||||||
|  | 	ce_name="$ce$i" | ||||||
|  | 	ce_name1="$ce1$i" | ||||||
|  | 	while [ $i -lt 15 ] | ||||||
|  | 	do | ||||||
|  | 		cpu=1 | ||||||
|  | 		for irq_num in `grep -e "$ce_name" -e "$ce_name1" /proc/interrupts | cut -d ':' -f 1` | ||||||
|  | 		do | ||||||
|  | 			[ -n "$irq_num" ] && echo $cpu > /proc/irq/$irq_num/smp_affinity | ||||||
|  | 			cpu=$((cpu * cpu_mul)) | ||||||
|  | 			if [ $cpu -gt 4 ] ; then cpu=1; fi | ||||||
|  | 		done | ||||||
|  | 	i=$((i+1)) | ||||||
|  | 	ce_name="$ce$i" | ||||||
|  | 	ce_name1="$ce1$i" | ||||||
|  | 	done | ||||||
|  |  | ||||||
|  | 	#For IPQ5332 2G radio | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'reo2host-destination-ring4' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'reo2host-destination-ring3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'reo2host-destination-ring2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'reo2host-destination-ring1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring4' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring3' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring2' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'wbm2host-tx-completions-ring1' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'reo2ost-exception' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'wbm2host-rx-release' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 	irq_affinity_num=`grep -E -m1 'reo2host-status' /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 	[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  |  | ||||||
|  | 	# 5G and 6G radio | ||||||
|  | 	# pci0 and pci1 for Wkiki (two radio and one radio split mode) | ||||||
|  | 	# pcic1 and pcic2 are for Pebble | ||||||
|  | 	for j in pci0 pci1 pcic1 pcic2; do | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_4 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_5 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_6 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_7 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_0 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 1 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_1 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_2 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 4 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_11 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_3 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 8 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  | 		irq_affinity_num=`grep -E -m1 "$j"_wlan_dp_8 /proc/interrupts | cut -d ':' -f 1 | tail -n1 | tr -d ' '` | ||||||
|  | 		[ -n "$irq_affinity_num" ] && echo 2 > /proc/irq/$irq_affinity_num/smp_affinity | ||||||
|  |         done | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Ken
					Ken