From 99d99cba4ead704a0c77310ed167bfd42a29746c Mon Sep 17 00:00:00 2001 From: Geoffrey McRae Date: Sat, 31 Oct 2020 19:29:36 +1100 Subject: [PATCH] implemented userspace reset utility --- userspace/vendor-reset | Bin 17496 -> 21456 bytes userspace/vendor-reset.c | 46 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/userspace/vendor-reset b/userspace/vendor-reset index b6f57c7eaebc1094fe66b9d093ae6b1df158749e..a90b65f8e6500ec4d131977add1c23070dcdec50 100755 GIT binary patch literal 21456 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 delta 3130 zcmcbxobg5n;{*wH2LT2!Z~&7G3^%Ny30(O-~70ip*^PnKkgSHfk(3#i@~jFV?ES&1-rwrsI8zqIg{XN|xPjje$> zkJz70e!--o0P-D3Daf@942@tbKw==q#nf}TlO3647%e6rWEP*~$1*vES%fhJ#9>SZ zk&`btvoI=6c4QKnJe{RE7o-R3F$P8kMg}DY23UYFluBiCGB7YP=ztV~LI&zr4k%wi z5W-ME6Mp~=Q3YsJ!PQTm$g0iAGX14G&bumT1K2E(_WofqRgIv;s7Klu<4;?v7&#mK@}|?A8M%oc|y2%Qt|`J`ANjdTkp)lD(!?AWHM! zWI;hOS5*+Z^*{;7{|9McV`0i0Y#sF(7#K?RLp_>p*+5K>&Zi|j9^JM|`V0&&bpQYV z|03i6|NqBWCG{ug2uhmmfLi9lz~C6}(`$QQhk?N{%(L^FW2k56SH}>?&Of0Zy}B24 z7#M=EML0Aq)%*iXZ>~KLQf}`2YVM1_p+nkN^LxOm03v@`uS$icXw+7#J85KK%dB zxS3J-F^?oH4Zz|YlrBNKlqNIk$s0|9rVvSx5K;<~hVo(dOF{Vxc9Vnj^b`+3QwPi$ z22eg1R9Wrhg?i?a>`-0-3xokP?7(D2eSO^ksObOy|MNleFo%7B^6jAVKSBJ-fx!}! z53pr3Y1mD6WRhc4m>g(e%Bc!jDn1+e8Sw!eA0Y^j6&=J;tUK-lXcBy>zP>@nE9-@t+_3^J%yPh7#LVo z7`VCZxS2T^7+CokxVb%r85r20Vtfn?41o*`49pCm#LLL|n~#@)k&zJ;N{kE)jHSh? zMa2b)$*BwsWvO{7`9-=#sl}-!ddUnR6|9U5oJ=rpGYd1aG7GaZaA>?(LtQiVDd)?QD$BShslbL;*zjb z2vZHBnHl&Q7$!G5iZTl@uz+bn28YRwj^gpKav!7$hM5_J8DOOxObkRbGl($2N`4R@ zhM5^e8E)9acnF%AL2NR=lQ^?DgT!P(CvirN$%0OzjFOWbnM5atIF(Gk;4Cp&z?sdP zm!SY!hQjoM;){uamtg^#xFQ3ngyv;{!N|ZM#K6liL2&XW7d6fpMg|5222cP#bP<&iXV8FF zG7!ZK3_>8~OneMe1Sbo*s!2vMf=m==kU&$GKKY=Fczqco1A`!wI0LMvf*H~b5(lLa zsN*5|o`GQ!$Z!T;1_Nlx5DV3?4_s?XFc_fOk^of?YrAMe)h`0OO2P@l_3NM-V3`Y6 z0&WI5hzZlT`$67dy~)VH0It$EGrC(bPEPdD;fs$?&&|(^FD^+eDv6Jue8j_UvWBPA z4)Wf7|l7k&|6-1K2((uOdm9s89?;J zjlz=~yg4*sQNA3i7}iLFrDqsz12R%^E1D_?kWrw9DU@cIT<9-9Il!Mq43v?Nc1@SXPiQfcRfv@<%^;#rF&h44@hmrV5s?G@z}C}09L~@d19bEV>_5FF?nL3IOkued=gkp4J;OK2(djBEM_!$ zVvsoJ7O2?#$%TRP6F0C-76}#+jWB{J^nm6CP>32%whh+iTmWheF)%QEoopB+KY2p1 N1m{#Mh+12a2mo#d%lrTU diff --git a/userspace/vendor-reset.c b/userspace/vendor-reset.c index ec9ef50..0ea500e 100644 --- a/userspace/vendor-reset.c +++ b/userspace/vendor-reset.c @@ -16,7 +16,53 @@ this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "../include/vendor-reset.h" +#include +#include +#include +#include +#include + int main(int argc, char * argv[]) { + int ret; + + if (argc < 4) + { + fprintf(stderr, + "Usage:\n" + " %s \n", + argv[0] + ); + return -1; + } + + int domain = atoi(argv[1]); + int bus = atoi(argv[2]); + int devfn = atoi(argv[3]); + + int fd = open("/dev/vendor_reset", O_RDWR); + if (fd < 0) + { + perror("open"); + return fd; + } + + struct vendor_reset_ioctl dev = + { + .domain = domain, + .bus = bus, + .devfn = devfn + }; + + ret = ioctl(fd, VENDOR_RESET_RESET, &dev); + if (ret < 0) + { + perror("ioctl"); + goto err; + } + +err: + close(fd); return 0; }