/*
* Intel WiFi Link driver.
*
- * Written without any documentation but Damien Bergamini's
- * iwn(4) and Stefan Sperling's iwm(4) OpenBSD driver sources.
- * Requires Intel firmware to be present in /lib/firmware/iw[nm]-*
- * on attach.
+ * Written without any documentation but Damien Bergaminis
+ * OpenBSD iwn(4) and iwm(4) driver sources. Requires intel
+ * firmware to be present in /lib/firmware/iwn-* on attach.
*/
#include "u.h"
SbCpu1Status = 0xa01e30,
SbCpu2Status = 0xa01e34,
- OscClk = 0xa04068,
- OscClkCtrl = 1<<3,
UregChick = 0xa05c00,
UregChickMsiEnable = 1<<24,
Type2030 = 12,
Type2000 = 16,
- Type7260 = 30,
Type8265 = 35,
};
[Type6005] "iwn-6005", /* see in iwlattach() below */
[Type2030] "iwn-2030",
[Type2000] "iwn-2000",
- [Type7260] "iwm-7260-17",
};
static char *qcmd(Ctlr *ctlr, uint qid, uint code, uchar *data, int size, Block *block);
nicunlock(ctlr);
}
- /* Enable the oscillator to count wake up time for L1 exit. (weird W/A) */
- if(ctlr->type == Type7260){
- if((err = niclock(ctlr)) != nil)
- return err;
-
- prphread(ctlr, OscClk);
- prphread(ctlr, OscClk);
- delay(20);
-
- prphwrite(ctlr, OscClk, prphread(ctlr, OscClk) | OscClkCtrl);
-
- prphread(ctlr, OscClk);
- prphread(ctlr, OscClk);
-
- nicunlock(ctlr);
- }
-
if(ctlr->family < 8000){
if((err = niclock(ctlr)) != nil)
return err;
return cmd(ctlr, 210, c, 11*4);
}
-static void
-tttxbackoff(Ctlr *ctlr)
-{
- uchar c[4];
-
- put32(c, 0);
- cmd(ctlr, 126, c, sizeof(c));
-}
-
static char*
updatedevicepower(Ctlr *ctlr)
{
if((err = sendbtcoexadv(ctlr)) != nil)
return err;
- /* Initialize tx backoffs to the minimum. */
- if(ctlr->family == 7000)
- tttxbackoff(ctlr);
-
if((err = updatedevicepower(ctlr)) != nil){
print("can't update device power: %s\n", err);
return err;
iunlock(ctlr);
return "qcmd: broken";
}
- /* wake up the nic (just needed for 7k) */
- if(ctlr->family == 7000 && q->n == 0)
- if(niclock(ctlr) != nil){
- iunlock(ctlr);
- return "qcmd: busy";
- }
q->n++;
q->lastcmd = code;
if(tx != nil && tx->n > 0){
tx->n--;
wakeup(tx);
- /* unlock 7k family nics as all commands are done */
- if(ctlr->family == 7000 && tx->n == 0)
- nicunlock(ctlr);
}
}
family = 0;
fwname = nil;
break;
- case 0x08b1: /* Wireless AC 7260 */
- case 0x08b2: /* Wireless AC 7260 */
- family = 7000;
- fwname = nil;
- break;
case 0x24f3: /* Wireless AC 8260 */
family = 8000;
fwname = "iwm-8000C-34";
quotefmtinstall();
for(i=0; i < t->ntrack; i++){
print("</mnt/cd/a%03d audio/flacenc ", i);
- print("-T 'title='^%q -T 'trackno=%d' ", t->track[i].title, i+1);
+ print("-T 'title='^%q -T 'album='^%q -T 'track=%d' ", t->track[i].title, t->title, i+1);
if(t->year[0] != 0)
print("-T 'year='^%q ", t->year);
if(t->track[i].artist[0] != 0 || t->artist[0] != 0)