• Home
  • Raw
  • Download

Lines Matching refs:sii

50 static si_info_t *si_doattach(si_info_t *sii, uint devid, osl_t *osh, void *regs,
52 static bool si_buscore_prep(si_info_t *sii, uint bustype, uint devid, void *sdh);
53 static bool si_buscore_setup(si_info_t *sii, chipcregs_t *cc, uint bustype, uint32 savewin,
76 si_info_t *sii; in si_attach() local
79 if ((sii = MALLOC(osh, sizeof (si_info_t))) == NULL) { in si_attach()
84 if (si_doattach(sii, devid, osh, regs, bustype, sdh, vars, varsz) == NULL) { in si_attach()
85 if (NULL != sii->common_info) in si_attach()
86 MFREE(osh, sii->common_info, sizeof(si_common_info_t)); in si_attach()
87 MFREE(osh, sii, sizeof(si_info_t)); in si_attach()
90 sii->vars = vars ? *vars : NULL; in si_attach()
91 sii->varsz = varsz ? *varsz : 0; in si_attach()
93 return (si_t *)sii; in si_attach()
140 si_buscore_prep(si_info_t *sii, uint bustype, uint devid, void *sdh) in si_buscore_prep() argument
144 sii->memseg = TRUE; in si_buscore_prep()
184 si_buscore_setup(si_info_t *sii, chipcregs_t *cc, uint bustype, uint32 savewin, in si_buscore_setup() argument
191 cc = si_setcoreidx(&sii->pub, SI_CC_IDX); in si_buscore_setup()
195 sii->pub.ccrev = (int)si_corerev(&sii->pub); in si_buscore_setup()
198 if (sii->pub.ccrev >= 11) in si_buscore_setup()
199 sii->pub.chipst = R_REG(sii->osh, &cc->chipstatus); in si_buscore_setup()
202 sii->pub.cccaps = R_REG(sii->osh, &cc->capabilities); in si_buscore_setup()
205 if (sii->pub.cccaps & CC_CAP_PMU) { in si_buscore_setup()
206 sii->pub.pmucaps = R_REG(sii->osh, &cc->pmucapabilities); in si_buscore_setup()
207 sii->pub.pmurev = sii->pub.pmucaps & PCAP_REV_MASK; in si_buscore_setup()
211 sii->pub.ccrev, sii->pub.cccaps, sii->pub.chipst, sii->pub.pmurev, in si_buscore_setup()
212 sii->pub.pmucaps)); in si_buscore_setup()
215 sii->pub.buscoretype = NODEV_CORE_ID; in si_buscore_setup()
216 sii->pub.buscorerev = NOREV; in si_buscore_setup()
217 sii->pub.buscoreidx = BADIDX; in si_buscore_setup()
223 for (i = 0; i < sii->numcores; i++) { in si_buscore_setup()
226 si_setcoreidx(&sii->pub, i); in si_buscore_setup()
227 cid = si_coreid(&sii->pub); in si_buscore_setup()
228 crev = si_corerev(&sii->pub); in si_buscore_setup()
232 i, cid, crev, sii->common_info->coresba[i], sii->common_info->regs[i])); in si_buscore_setup()
246 sii->pub.buscorerev = crev; in si_buscore_setup()
247 sii->pub.buscoretype = cid; in si_buscore_setup()
248 sii->pub.buscoreidx = i; in si_buscore_setup()
254 sii->pub.buscorerev = crev; in si_buscore_setup()
255 sii->pub.buscoretype = cid; in si_buscore_setup()
256 sii->pub.buscoreidx = i; in si_buscore_setup()
260 if ((savewin && (savewin == sii->common_info->coresba[i])) || in si_buscore_setup()
261 (regs == sii->common_info->regs[i])) in si_buscore_setup()
266 SI_MSG(("Buscore id/type/rev %d/0x%x/%d\n", sii->pub.buscoreidx, sii->pub.buscoretype, in si_buscore_setup()
267 sii->pub.buscorerev)); in si_buscore_setup()
269 if (BUSTYPE(sii->pub.bustype) == SI_BUS && (CHIPID(sii->pub.chip) == BCM4712_CHIP_ID) && in si_buscore_setup()
270 (sii->pub.chippkg != BCM4712LARGE_PKG_ID) && (sii->pub.chiprev <= 3)) in si_buscore_setup()
271 OR_REG(sii->osh, &cc->slow_clk_ctl, SCC_SS_XTAL); in si_buscore_setup()
278 if (si_setcore(&sii->pub, ARM7S_CORE_ID, 0) || in si_buscore_setup()
279 si_setcore(&sii->pub, ARMCM3_CORE_ID, 0)) in si_buscore_setup()
280 si_core_disable(&sii->pub, 0); in si_buscore_setup()
284 si_setcoreidx(&sii->pub, *origidx); in si_buscore_setup()
292 si_doattach(si_info_t *sii, uint devid, osl_t *osh, void *regs, in si_doattach() argument
295 struct si_pub *sih = &sii->pub; in si_doattach()
303 bzero((uchar*)sii, sizeof(si_info_t)); in si_doattach()
313 sii->common_info = (si_common_info_t *)common_info_alloced; in si_doattach()
314 sii->common_info->attach_count++; in si_doattach()
320 sii->curmap = regs; in si_doattach()
321 sii->sdh = sdh; in si_doattach()
322 sii->osh = osh; in si_doattach()
327 savewin = OSL_PCI_READ_CONFIG(sii->osh, PCI_BAR0_WIN, sizeof(uint32)); in si_doattach()
330 OSL_PCI_WRITE_CONFIG(sii->osh, PCI_BAR0_WIN, 4, SI_ENUM_BASE); in si_doattach()
334 cc = (chipcregs_t *)sii->curmap; in si_doattach()
347 if (!si_buscore_prep(sii, bustype, devid, sdh)) { in si_doattach()
368 if (CHIPTYPE(sii->pub.socitype) == SOCI_SB) { in si_doattach()
370 sb_scan(&sii->pub, regs, devid); in si_doattach()
371 } else if (CHIPTYPE(sii->pub.socitype) == SOCI_AI) { in si_doattach()
374 ai_scan(&sii->pub, (void *)cc, devid); in si_doattach()
380 if (sii->numcores == 0) { in si_doattach()
386 if (!si_buscore_setup(sii, cc, bustype, savewin, &origidx, regs)) { in si_doattach()
395 if (sii->pub.ccrev >= 20) { in si_doattach()
408 return (sii); in si_doattach()
415 si_info_t *sii; in si_detach() local
418 sii = SI_INFO(sih); in si_detach()
420 if (sii == NULL) in si_detach()
425 if (sii->common_info->regs[idx]) { in si_detach()
426 REG_UNMAP(sii->common_info->regs[idx]); in si_detach()
427 sii->common_info->regs[idx] = NULL; in si_detach()
431 if (1 == sii->common_info->attach_count--) { in si_detach()
432 MFREE(sii->osh, sii->common_info, sizeof(si_common_info_t)); in si_detach()
437 if (sii != &ksii) in si_detach()
439 MFREE(sii->osh, sii, sizeof(si_info_t)); in si_detach()
445 si_info_t *sii; in si_osh() local
447 sii = SI_INFO(sih); in si_osh()
448 return sii->osh; in si_osh()
454 si_info_t *sii; in si_setosh() local
456 sii = SI_INFO(sih); in si_setosh()
457 if (sii->osh != NULL) { in si_setosh()
459 ASSERT(!sii->osh); in si_setosh()
461 sii->osh = osh; in si_setosh()
469 si_info_t *sii; in si_register_intr_callback() local
471 sii = SI_INFO(sih); in si_register_intr_callback()
472 sii->intr_arg = intr_arg; in si_register_intr_callback()
473 sii->intrsoff_fn = (si_intrsoff_t)intrsoff_fn; in si_register_intr_callback()
474 sii->intrsrestore_fn = (si_intrsrestore_t)intrsrestore_fn; in si_register_intr_callback()
475 sii->intrsenabled_fn = (si_intrsenabled_t)intrsenabled_fn; in si_register_intr_callback()
479 sii->dev_coreid = sii->common_info->coreid[sii->curidx]; in si_register_intr_callback()
485 si_info_t *sii; in si_deregister_intr_callback() local
487 sii = SI_INFO(sih); in si_deregister_intr_callback()
488 sii->intrsoff_fn = NULL; in si_deregister_intr_callback()
494 si_info_t *sii = SI_INFO(sih); in si_intflag() local
497 (sii->common_info->coresba[SI_CC_IDX]) + SBCONFIGOFF)); in si_intflag()
498 return R_REG(sii->osh, &ccsbr->sbflagst); in si_intflag()
500 return R_REG(sii->osh, ((uint32 *)(uintptr) in si_intflag()
501 (sii->common_info->oob_router + OOB_STATUSA))); in si_intflag()
535 si_info_t *sii; in si_coreid() local
537 sii = SI_INFO(sih); in si_coreid()
538 return sii->common_info->coreid[sii->curidx]; in si_coreid()
544 si_info_t *sii; in si_coreidx() local
546 sii = SI_INFO(sih); in si_coreidx()
547 return sii->curidx; in si_coreidx()
554 si_info_t *sii; in si_coreunit() local
560 sii = SI_INFO(sih); in si_coreunit()
563 idx = sii->curidx; in si_coreunit()
565 ASSERT(GOODREGS(sii->curmap)); in si_coreunit()
570 if (sii->common_info->coreid[i] == coreid) in si_coreunit()
612 si_info_t *sii; in si_findcoreidx() local
616 sii = SI_INFO(sih); in si_findcoreidx()
620 for (i = 0; i < sii->numcores; i++) in si_findcoreidx()
621 if (sii->common_info->coreid[i] == coreid) { in si_findcoreidx()
634 si_info_t *sii; in si_corelist() local
636 sii = SI_INFO(sih); in si_corelist()
638 bcopy((uchar*)sii->common_info->coreid, (uchar*)coreid, (sii->numcores * sizeof(uint))); in si_corelist()
639 return (sii->numcores); in si_corelist()
646 si_info_t *sii; in si_coreregs() local
648 sii = SI_INFO(sih); in si_coreregs()
649 ASSERT(GOODREGS(sii->curmap)); in si_coreregs()
651 return (sii->curmap); in si_coreregs()
695 si_info_t *sii; in si_switch_core() local
697 sii = SI_INFO(sih); in si_switch_core()
699 INTR_OFF(sii, *intr_val); in si_switch_core()
700 *origidx = sii->curidx; in si_switch_core()
710 si_info_t *sii; in si_restore_core() local
712 sii = SI_INFO(sih); in si_restore_core()
715 INTR_RESTORE(sii, intr_val); in si_restore_core()
1009 si_info_t *sii; in si_watchdog_ms() local
1011 sii = SI_INFO(sih); in si_watchdog_ms()
1023 si_info_t *sii = SI_INFO(sih); in si_sdio_init() local
1031 idx = sii->curidx; in si_sdio_init()
1041 sih->buscorerev, idx, sii->curidx, sdpregs)); in si_sdio_init()
1044 W_REG(sii->osh, &sdpregs->hostintmask, I_SBINT); in si_sdio_init()
1045 W_REG(sii->osh, &sdpregs->sbintmask, (I_SB_SERR | I_SB_RESPERR | (1 << idx))); in si_sdio_init()
1052 bcmsdh_intr_enable(sii->sdh); in si_sdio_init()
1134 si_info_t *sii; in si_gpioreserve() local
1136 sii = SI_INFO(sih); in si_gpioreserve()
1169 si_info_t *sii; in si_gpiorelease() local
1171 sii = SI_INFO(sih); in si_gpiorelease()
1200 si_info_t *sii; in si_gpioin() local
1203 sii = SI_INFO(sih); in si_gpioin()
1214 si_info_t *sii; in si_gpiointpolarity() local
1217 sii = SI_INFO(sih); in si_gpiointpolarity()
1235 si_info_t *sii; in si_gpiointmask() local
1238 sii = SI_INFO(sih); in si_gpiointmask()
1256 si_info_t *sii; in si_gpioled() local
1258 sii = SI_INFO(sih); in si_gpioled()
1270 si_info_t *sii; in si_gpiotimerval() local
1272 sii = SI_INFO(sih); in si_gpiotimerval()
1284 si_info_t *sii; in si_gpiopull() local
1287 sii = SI_INFO(sih); in si_gpiopull()
1298 si_info_t *sii; in si_gpioevent() local
1301 sii = SI_INFO(sih); in si_gpioevent()
1321 si_info_t *sii; in si_gpio_handler_register() local
1327 sii = SI_INFO(sih); in si_gpio_handler_register()
1331 if ((gi = MALLOC(sii->osh, sizeof(gpioh_item_t))) == NULL) in si_gpio_handler_register()
1340 gi->next = sii->gpioh_head; in si_gpio_handler_register()
1341 sii->gpioh_head = gi; in si_gpio_handler_register()
1349 si_info_t *sii; in si_gpio_handler_unregister() local
1352 sii = SI_INFO(sih); in si_gpio_handler_unregister()
1356 ASSERT(sii->gpioh_head != NULL); in si_gpio_handler_unregister()
1357 if ((void*)sii->gpioh_head == gpioh) { in si_gpio_handler_unregister()
1358 sii->gpioh_head = sii->gpioh_head->next; in si_gpio_handler_unregister()
1359 MFREE(sii->osh, gpioh, sizeof(gpioh_item_t)); in si_gpio_handler_unregister()
1362 p = sii->gpioh_head; in si_gpio_handler_unregister()
1367 MFREE(sii->osh, gpioh, sizeof(gpioh_item_t)); in si_gpio_handler_unregister()
1381 si_info_t *sii; in si_gpio_handler_process() local
1387 sii = SI_INFO(sih); in si_gpio_handler_process()
1388 for (h = sii->gpioh_head; h != NULL; h = h->next) { in si_gpio_handler_process()
1403 si_info_t *sii; in si_gpio_int_enable() local
1406 sii = SI_INFO(sih); in si_gpio_int_enable()
1419 si_info_t *sii; in si_socram_size() local
1429 sii = SI_INFO(sih); in si_socram_size()
1432 INTR_OFF(sii, intr_val); in si_socram_size()
1443 coreinfo = R_REG(sii->osh, &regs->coreinfo); in si_socram_size()
1468 INTR_RESTORE(sii, intr_val); in si_socram_size()
1477 si_info_t *sii; in si_btcgpiowar() local
1482 sii = SI_INFO(sih); in si_btcgpiowar()
1491 INTR_OFF(sii, intr_val); in si_btcgpiowar()
1498 W_REG(sii->osh, &cc->uart0mcr, R_REG(sii->osh, &cc->uart0mcr) | 0x04); in si_btcgpiowar()
1503 INTR_RESTORE(sii, intr_val); in si_btcgpiowar()
1511 si_info_t *sii; in si_deviceremoved() local
1513 sii = SI_INFO(sih); in si_deviceremoved()
1517 ASSERT(sii->osh != NULL); in si_deviceremoved()
1518 w = OSL_PCI_READ_CONFIG(sii->osh, PCI_CFG_VID, sizeof(uint32)); in si_deviceremoved()