Lines Matching refs:softstate
186 agp_find_bound_keyent(agpgart_softstate_t *softstate, uint32_t pg_offset);
199 agpgart_softstate_t *softstate; in agp_devmap_unmap() local
207 softstate = ctxp->actx_sc; in agp_devmap_unmap()
208 ASSERT(softstate); in agp_devmap_unmap()
212 newctxp1->actx_sc = softstate; in agp_devmap_unmap()
219 newctxp2->actx_sc = softstate; in agp_devmap_unmap()
224 mutex_enter(&softstate->asoft_instmutex); in agp_devmap_unmap()
227 agp_find_bound_keyent(softstate, AGP_BYTES2PAGES(off)); in agp_devmap_unmap()
232 agp_find_bound_keyent(softstate, AGP_BYTES2PAGES(off)); in agp_devmap_unmap()
237 mutex_exit(&softstate->asoft_instmutex); in agp_devmap_unmap()
246 agpgart_softstate_t *softstate; in agp_devmap_map() local
253 softstate = ddi_get_soft_state(agpgart_glob_soft_handle, instance); in agp_devmap_map()
254 if (softstate == NULL) { in agp_devmap_map()
259 ASSERT(softstate); in agp_devmap_map()
260 ASSERT(mutex_owned(&softstate->asoft_instmutex)); in agp_devmap_map()
265 agp_find_bound_keyent(softstate, AGP_BYTES2PAGES(offset)); in agp_devmap_map()
271 newctxp->actx_sc = softstate; in agp_devmap_map()
283 agpgart_softstate_t *softstate; in agp_devmap_dup() local
294 softstate = (agpgart_softstate_t *)newctxp->actx_sc; in agp_devmap_dup()
296 mutex_enter(&softstate->asoft_instmutex); in agp_devmap_dup()
297 mementry = agp_find_bound_keyent(softstate, in agp_devmap_dup()
301 mutex_exit(&softstate->asoft_instmutex); in agp_devmap_dup()
1230 agp_fill_empty_keyent(agpgart_softstate_t *softstate, keytable_ent_t *entryp) in agp_fill_empty_keyent() argument
1235 ASSERT(softstate); in agp_fill_empty_keyent()
1239 ASSERT(mutex_owned(&softstate->asoft_instmutex)); in agp_fill_empty_keyent()
1242 newentryp = &softstate->asoft_table[key]; in agp_fill_empty_keyent()
1278 agp_find_bound_keyent(agpgart_softstate_t *softstate, uint32_t pg_offset) in agp_find_bound_keyent() argument
1283 ASSERT(softstate); in agp_find_bound_keyent()
1284 ASSERT(mutex_owned(&softstate->asoft_instmutex)); in agp_find_bound_keyent()
1287 entryp = &softstate->asoft_table[keycount]; in agp_find_bound_keyent()
1429 agp_unbind_key(agpgart_softstate_t *softstate, keytable_ent_t *entryp) in agp_unbind_key() argument
1449 AGP_MB2PAGES(softstate->asoft_info.agpki_apersize)); in agp_unbind_key()
1450 ASSERT((softstate->asoft_devreg.agprd_arctype != ARC_UNKNOWN)); in agp_unbind_key()
1452 switch (softstate->asoft_devreg.agprd_arctype) { in agp_unbind_key()
1457 &softstate->asoft_devreg); in agp_unbind_key()
1469 softstate->gart_dma_handle, in agp_unbind_key()
1470 (uint32_t *)softstate->gart_vbase); in agp_unbind_key()
1472 lyr_flush_gart_cache(&softstate->asoft_devreg); in agp_unbind_key()
1586 agp_del_allkeys(agpgart_softstate_t *softstate) in agp_del_allkeys() argument
1591 ASSERT(softstate); in agp_del_allkeys()
1593 if (softstate->asoft_table[key].kte_memhdl != NULL) { in agp_del_allkeys()
1599 if (agp_dealloc_mem(softstate, in agp_del_allkeys()
1600 &softstate->asoft_table[key])) in agp_del_allkeys()
1758 copyinfo(agpgart_softstate_t *softstate, agp_info_t *info) in copyinfo() argument
1760 switch (softstate->asoft_devreg.agprd_arctype) { in copyinfo()
1765 info->agpi_devid = softstate->asoft_info.agpki_mdevid; in copyinfo()
1770 info->agpi_version = softstate->asoft_info.agpki_tver; in copyinfo()
1771 info->agpi_devid = softstate->asoft_info.agpki_tdevid; in copyinfo()
1772 info->agpi_mode = softstate->asoft_info.agpki_tstatus; in copyinfo()
1781 info->agpi_aperbase = softstate->asoft_info.agpki_aperbase; in copyinfo()
1782 info->agpi_apersize = softstate->asoft_info.agpki_apersize; in copyinfo()
1783 info->agpi_pgtotal = softstate->asoft_pgtotal; in copyinfo()
1785 info->agpi_pgused = softstate->asoft_pgused; in copyinfo()
1960 agp_setup(agpgart_softstate_t *softstate, uint32_t mode) in agp_setup() argument
1965 tstatus = softstate->asoft_info.agpki_tstatus; in agp_setup()
1966 mstatus = softstate->asoft_info.agpki_mstatus; in agp_setup()
1977 if ((softstate->asoft_info.agpki_tver.agpv_major == 3) && in agp_setup()
1980 if ((softstate->asoft_info.agpki_mver.agpv_major != 3) || in agp_setup()
1987 &softstate->asoft_devreg)) in agp_setup()
1990 softstate->asoft_mode = agp_mode; in agp_setup()
2000 if ((softstate->asoft_info.agpki_mver.agpv_major == 3) && in agp_setup()
2005 if (lyr_set_agp_cmd(agp_mode, &softstate->asoft_devreg)) in agp_setup()
2007 softstate->asoft_mode = agp_mode; in agp_setup()
2030 agp_alloc_kmem(agpgart_softstate_t *softstate, size_t length, int type) in agp_alloc_kmem() argument
2054 if (ddi_dma_alloc_handle(softstate->asoft_dip, in agp_alloc_kmem()
2114 ASSERT(!agp_check_pfns(softstate->asoft_devreg.agprd_arctype, in agp_alloc_kmem()
2116 if (agp_check_pfns(softstate->asoft_devreg.agprd_arctype, in agp_alloc_kmem()
2119 entryp = agp_fill_empty_keyent(softstate, &keyentry); in agp_alloc_kmem()
2380 agp_bind_key(agpgart_softstate_t *softstate, in agp_bind_key() argument
2388 ASSERT(mutex_owned(&softstate->asoft_instmutex)); in agp_bind_key()
2392 if (pg_end > AGP_MB2PAGES(softstate->asoft_info.agpki_apersize)) { in agp_bind_key()
2400 if (agp_check_off(softstate->asoft_table, in agp_bind_key()
2410 switch (softstate->asoft_devreg.agprd_arctype) { in agp_bind_key()
2414 &softstate->asoft_devreg); in agp_bind_key()
2421 softstate->asoft_devreg.agprd_arctype, in agp_bind_key()
2425 softstate->gart_dma_handle, in agp_bind_key()
2426 (uint32_t *)softstate->gart_vbase); in agp_bind_key()
2430 lyr_flush_gart_cache(&softstate->asoft_devreg); in agp_bind_key()
2435 softstate->asoft_devreg.agprd_arctype)); in agp_bind_key()
2445 agpgart_softstate_t *softstate; in agpgart_attach() local
2461 softstate = ddi_get_soft_state(agpgart_glob_soft_handle, instance); in agpgart_attach()
2462 mutex_init(&softstate->asoft_instmutex, NULL, MUTEX_DRIVER, NULL); in agpgart_attach()
2463 softstate->asoft_dip = dip; in agpgart_attach()
2468 if (ldi_ident_from_dip(dip, &softstate->asoft_li)) { in agpgart_attach()
2474 softstate->asoft_devreg.agprd_arctype = ARC_UNKNOWN; in agpgart_attach()
2476 if (agp_init_kstats(softstate)) { in agpgart_attach()
2493 softstate->asoft_table = kmem_zalloc( in agpgart_attach()
2497 list_head_init(&softstate->mapped_list); in agpgart_attach()
2501 agp_fini_kstats(softstate); in agpgart_attach()
2503 ldi_ident_release(softstate->asoft_li); in agpgart_attach()
2631 agpgart_softstate_t *softstate; in agpgart_open() local
2639 softstate = ddi_get_soft_state(agpgart_glob_soft_handle, instance); in agpgart_open()
2640 if (softstate == NULL) { in agpgart_open()
2645 mutex_enter(&softstate->asoft_instmutex); in agpgart_open()
2647 if (softstate->asoft_opened) { in agpgart_open()
2648 softstate->asoft_opened++; in agpgart_open()
2649 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2657 softstate->asoft_pgused = 0; in agpgart_open()
2658 if (lyr_init(&softstate->asoft_devreg, softstate->asoft_li)) { in agpgart_open()
2660 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2665 if (lyr_get_info(&softstate->asoft_info, &softstate->asoft_devreg)) { in agpgart_open()
2667 lyr_end(&softstate->asoft_devreg); in agpgart_open()
2668 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2675 if (IS_INTEL_830(softstate->asoft_devreg.agprd_arctype)) { in agpgart_open()
2676 softstate->asoft_opened++; in agpgart_open()
2678 softstate->asoft_pgtotal = in agpgart_open()
2679 get_max_pages(softstate->asoft_info.agpki_apersize); in agpgart_open()
2681 if (lyr_config_devices(&softstate->asoft_devreg)) { in agpgart_open()
2684 lyr_end(&softstate->asoft_devreg); in agpgart_open()
2685 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2689 devid = softstate->asoft_info.agpki_mdevid; in agpgart_open()
2694 rc = ldi_ioctl(softstate->asoft_devreg.agprd_targethdl, in agpgart_open()
2700 lyr_end(&softstate->asoft_devreg); in agpgart_open()
2701 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2704 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2708 rc = alloc_gart_table(softstate); in agpgart_open()
2718 while ((softstate->asoft_info.agpki_apersize >= 4) && in agpgart_open()
2719 (alloc_gart_table(softstate))) { in agpgart_open()
2720 softstate->asoft_info.agpki_apersize >>= 1; in agpgart_open()
2722 if (softstate->asoft_info.agpki_apersize >= 4) in agpgart_open()
2729 lyr_end(&softstate->asoft_devreg); in agpgart_open()
2730 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2734 softstate->asoft_pgtotal = in agpgart_open()
2735 get_max_pages(softstate->asoft_info.agpki_apersize); in agpgart_open()
2742 if (lyr_set_gart_addr(softstate->gart_pbase, in agpgart_open()
2743 &softstate->asoft_devreg)) { in agpgart_open()
2746 free_gart_table(softstate); in agpgart_open()
2747 lyr_end(&softstate->asoft_devreg); in agpgart_open()
2748 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2751 if (lyr_config_devices(&softstate->asoft_devreg)) { in agpgart_open()
2754 free_gart_table(softstate); in agpgart_open()
2755 lyr_end(&softstate->asoft_devreg); in agpgart_open()
2756 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2760 softstate->asoft_opened++; in agpgart_open()
2761 mutex_exit(&softstate->asoft_instmutex); in agpgart_open()
2789 agpgart_softstate_t *softstate; in agpgart_close() local
2793 softstate = ddi_get_soft_state(agpgart_glob_soft_handle, instance); in agpgart_close()
2794 if (softstate == NULL) { in agpgart_close()
2799 mutex_enter(&softstate->asoft_instmutex); in agpgart_close()
2800 ASSERT(softstate->asoft_opened); in agpgart_close()
2809 if (softstate->asoft_acquired == 1) { in agpgart_close()
2812 release_control(softstate); in agpgart_close()
2815 devid = softstate->asoft_info.agpki_mdevid; in agpgart_close()
2820 rc = ldi_ioctl(softstate->asoft_devreg.agprd_targethdl, in agpgart_close()
2828 if (lyr_unconfig_devices(&softstate->asoft_devreg)) { in agpgart_close()
2831 mutex_exit(&softstate->asoft_instmutex); in agpgart_close()
2834 softstate->asoft_agpen = 0; in agpgart_close()
2836 if (!IS_INTEL_830(softstate->asoft_devreg.agprd_arctype)) { in agpgart_close()
2837 free_gart_table(softstate); in agpgart_close()
2840 lyr_end(&softstate->asoft_devreg); in agpgart_close()
2847 softstate->asoft_opened = 0; in agpgart_close()
2853 (void) agp_del_allkeys(softstate); in agpgart_close()
2855 mutex_exit(&softstate->asoft_instmutex); in agpgart_close()
2861 ioctl_agpgart_info(agpgart_softstate_t *softstate, void *arg, int flags) in ioctl_agpgart_info() argument
2873 if (copyinfo(softstate, &infostruct)) in ioctl_agpgart_info()
2884 if (copyinfo(softstate, &infostruct)) in ioctl_agpgart_info()
3274 agpgart_softstate_t *softstate; in agpgart_ioctl() local
3277 softstate = ddi_get_soft_state(agpgart_glob_soft_handle, instance); in agpgart_ioctl()
3278 if (softstate == NULL) { in agpgart_ioctl()
3283 mutex_enter(&softstate->asoft_instmutex); in agpgart_ioctl()
3287 retval = ioctl_agpgart_info(softstate, arg, flags); in agpgart_ioctl()
3290 retval = ioctl_agpgart_acquire(softstate); in agpgart_ioctl()
3293 retval = ioctl_agpgart_release(softstate); in agpgart_ioctl()
3296 retval = ioctl_agpgart_setup(softstate, arg, flags); in agpgart_ioctl()
3299 retval = ioctl_agpgart_alloc(softstate, arg, flags); in agpgart_ioctl()
3302 retval = ioctl_agpgart_dealloc(softstate, intarg); in agpgart_ioctl()
3305 retval = ioctl_agpgart_bind(softstate, arg, flags); in agpgart_ioctl()
3308 retval = ioctl_agpgart_unbind(softstate, arg, flags); in agpgart_ioctl()
3311 retval = ioctl_agpgart_flush_chipset(softstate); in agpgart_ioctl()
3314 retval = ioctl_agpgart_pages_bind(softstate, arg, flags); in agpgart_ioctl()
3317 retval = ioctl_agpgart_pages_unbind(softstate, arg, flags); in agpgart_ioctl()
3320 retval = ioctl_agpgart_pages_rebind(softstate); in agpgart_ioctl()
3328 mutex_exit(&softstate->asoft_instmutex); in agpgart_ioctl()
3338 struct agpgart_softstate *softstate; in agpgart_segmap() local
3343 softstate = ddi_get_soft_state(agpgart_glob_soft_handle, instance); in agpgart_segmap()
3344 if (softstate == NULL) { in agpgart_segmap()
3351 mutex_enter(&softstate->asoft_instmutex); in agpgart_segmap()
3356 mutex_exit(&softstate->asoft_instmutex); in agpgart_segmap()
3365 struct agpgart_softstate *softstate; in agpgart_devmap() local
3371 softstate = ddi_get_soft_state(agpgart_glob_soft_handle, instance); in agpgart_devmap()
3372 if (softstate == NULL) { in agpgart_devmap()
3378 if (offset > MB2BYTES(softstate->asoft_info.agpki_apersize)) { in agpgart_devmap()
3387 mementry = agp_find_bound_keyent(softstate, AGP_BYTES2PAGES(offset)); in agpgart_devmap()
3405 softstate->asoft_dip, in agpgart_devmap()