summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2022-02-23 18:03:53 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2022-02-23 18:03:53 +0000
commit8bf71adc94af5c17bdb176a5e6e1a56dbe725715 (patch)
tree944275cb5d60d0ce3da3357aa912d41940de0def
parent11e12ea0c07086313bba07308e78ec1574730cd7 (diff)
nusb/audio: use setalt(), make sure endpoint has right direction.
-rw-r--r--sys/src/cmd/nusb/audio/audio.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/sys/src/cmd/nusb/audio/audio.c b/sys/src/cmd/nusb/audio/audio.c
index 121f197ca..b6944a725 100644
--- a/sys/src/cmd/nusb/audio/audio.c
+++ b/sys/src/cmd/nusb/audio/audio.c
@@ -87,10 +87,13 @@ parsedescr(Desc *dd)
Dev*
setupep(Dev *d, Ep *e, int speed)
{
+ int dir = e->dir;
Aconf *c;
Range *f;
for(;e != nil; e = e->next){
+ if(e->dir!=dir && e->dir!=Eboth)
+ continue;
c = e->iface->aux;
if(c == nil)
continue;
@@ -102,10 +105,8 @@ setupep(Dev *d, Ep *e, int speed)
return nil;
Foundaltc:
- if(usbcmd(d, Rh2d|Rstd|Riface, Rsetiface, e->iface->alt, e->iface->id, nil, 0) < 0){
- werrstr("set altc: %r");
+ if(setalt(d, e->iface) < 0)
return nil;
- }
if(c->caps & 1){
uchar b[4];
@@ -113,7 +114,7 @@ Foundaltc:
b[0] = speed;
b[1] = speed >> 8;
b[2] = speed >> 16;
- if(usbcmd(d, Rh2d|Rclass|Rep, Rsetcur, 0x100, (e->type==Ein?0x80:0)|(e->id&Epmax), b, 3) < 0)
+ if(usbcmd(d, Rh2d|Rclass|Rep, Rsetcur, 0x100, (e->dir==Ein?0x80:0)|(e->id&Epmax), b, 3) < 0)
fprint(2, "warning: set freq: %r\n");
}
@@ -124,7 +125,7 @@ Foundaltc:
devctl(d, "samplesz %d", audiochan*audiores/8);
devctl(d, "sampledelay %d", audiodelay);
devctl(d, "hz %d", speed);
- if(e->dir == Ein)
+ if(e->dir==Ein)
devctl(d, "name audioin");
else
devctl(d, "name audio");
@@ -165,10 +166,9 @@ Setup:
return;
}
closedev(d);
- if(audioepin != nil && audioepin != audioepout){
+ if(audioepin != nil && audioepin != audioepout)
if(d = setupep(audiodev, audioepin, speed))
closedev(d);
- }
audiofreq = speed;
} else if(strcmp(f[0], "delay") == 0){
audiodelay = atoi(f[1]);