Lines Matching refs:st

1350 is_controlling_proc(agpgart_softstate_t *st)
1352 ASSERT(st);
1354 if (!st->asoft_acquired) {
1359 if (st->asoft_curpid != ddi_get_pid()) {
1368 static void release_control(agpgart_softstate_t *st)
1370 st->asoft_curpid = 0;
1371 st->asoft_acquired = 0;
1374 static void acquire_control(agpgart_softstate_t *st)
1376 st->asoft_curpid = ddi_get_pid();
1377 st->asoft_acquired = 1;
1520 * st driver soft state pointer
1529 agp_dealloc_mem(agpgart_softstate_t *st, keytable_ent_t *entryp)
1533 ASSERT(st);
1535 ASSERT(mutex_owned(&st->asoft_instmutex));
1550 if (st->asoft_opened)
1551 (void) agp_unbind_key(st, entryp);
2159 * st driver soft state pointer
2169 agp_alloc_mem(agpgart_softstate_t *st, size_t length, int type)
2179 ASSERT(st);
2184 return (agp_alloc_kmem(st, length, type));
2202 free_gart_table(agpgart_softstate_t *st)
2205 if (st->gart_dma_handle == NULL)
2208 (void) ddi_dma_unbind_handle(st->gart_dma_handle);
2209 ddi_dma_mem_free(&st->gart_dma_acc_handle);
2210 st->gart_dma_acc_handle = NULL;
2211 ddi_dma_free_handle(&st->gart_dma_handle);
2212 st->gart_dma_handle = NULL;
2213 st->gart_vbase = 0;
2214 st->gart_size = 0;
2226 * st driver soft state pointer
2233 alloc_gart_table(agpgart_softstate_t *st)
2241 num_pages = AGP_MB2PAGES(st->asoft_info.agpki_apersize);
2256 if (st->asoft_devreg.agprd_arctype == ARC_AMD64AGP)
2261 if (ret = ddi_dma_alloc_handle(st->asoft_dip,
2264 NULL, &st->gart_dma_handle)) {
2270 if (ret = ddi_dma_mem_alloc(st->gart_dma_handle,
2275 &st->gart_vbase,
2276 &st->gart_size,
2277 &st->gart_dma_acc_handle)) {
2284 ret = ddi_dma_addr_bind_handle(st->gart_dma_handle,
2285 NULL, st->gart_vbase,
2291 st->gart_pbase = cookie.dmac_address;
2295 (void) ddi_dma_unbind_handle(st->gart_dma_handle);
2303 ddi_dma_mem_free(&st->gart_dma_acc_handle);
2304 st->gart_dma_acc_handle = NULL;
2306 ddi_dma_free_handle(&st->gart_dma_handle);
2307 st->gart_dma_handle = NULL;
2309 st->gart_pbase = 0;
2310 st->gart_size = 0;
2311 st->gart_vbase = 0;
2514 agpgart_softstate_t *st;
2518 st = ddi_get_soft_state(agpgart_glob_soft_handle, instance);
2529 mutex_enter(&st->asoft_instmutex);
2530 if (agp_del_allkeys(st)) {
2535 mutex_exit(&st->asoft_instmutex);
2538 mutex_exit(&st->asoft_instmutex);
2539 if (st->asoft_table) {
2540 kmem_free(st->asoft_table,
2542 st->asoft_table = 0;
2547 list_head_for_each_safe(entry, temp, &st->mapped_list) {
2555 head = &st->mapped_list;
2561 agp_fini_kstats(st);
2562 ldi_ident_release(st->asoft_li);
2563 mutex_destroy(&st->asoft_instmutex);
2574 agpgart_softstate_t *st;
2582 st = ddi_get_soft_state(agpgart_glob_soft_handle, instance);
2583 if (st != NULL) {
2584 mutex_enter(&st->asoft_instmutex);
2585 *resultp = st->asoft_dip;
2586 mutex_exit(&st->asoft_instmutex);
2895 ioctl_agpgart_acquire(agpgart_softstate_t *st)
2897 if (st->asoft_acquired) {
2901 acquire_control(st);
2906 ioctl_agpgart_release(agpgart_softstate_t *st)
2908 if (is_controlling_proc(st) < 0) {
2913 release_control(st);
2918 ioctl_agpgart_setup(agpgart_softstate_t *st, void *arg, int flags)
2923 if (is_controlling_proc(st) < 0) {
2929 if (!IS_TRUE_AGP(st->asoft_devreg.agprd_arctype)) {
2938 if (rc = agp_setup(st, data.agps_mode))
2941 st->asoft_agpen = 1;
2946 ioctl_agpgart_alloc(agpgart_softstate_t *st, void *arg, int flags)
2953 if (is_controlling_proc(st) < 0) {
2963 pg_num = st->asoft_pgused + alloc_info.agpa_pgcount;
2964 if (pg_num > st->asoft_pgtotal) {
2972 st->asoft_pgused, st->asoft_pgtotal));
2978 entryp = agp_alloc_mem(st, length, alloc_info.agpa_type);
2992 st->asoft_pgused += alloc_info.agpa_pgcount;
3004 ioctl_agpgart_dealloc(agpgart_softstate_t *st, intptr_t arg)
3009 if (is_controlling_proc(st) < 0) {
3018 keyent = &st->asoft_table[key];
3023 if (agp_dealloc_mem(st, keyent))
3027 st->asoft_pgused -= keyent->kte_pages;
3034 ioctl_agpgart_bind(agpgart_softstate_t *st, void *arg, int flags)
3042 if (is_controlling_proc(st) < 0) {
3058 if (IS_INTEL_830(st->asoft_devreg.agprd_arctype)) {
3060 st->asoft_info.agpki_presize) {
3065 st->asoft_info.agpki_presize));
3071 keyent = &st->asoft_table[key];
3085 retval = agp_bind_key(st, keyent, pg_offset);
3096 ioctl_agpgart_unbind(agpgart_softstate_t *st, void *arg, int flags)
3102 if (is_controlling_proc(st) < 0) {
3116 keyent = &st->asoft_table[key];
3121 if ((retval = agp_unbind_key(st, keyent)) != 0)
3128 ioctl_agpgart_flush_chipset(agpgart_softstate_t *st)
3133 devid = st->asoft_info.agpki_mdevid;
3134 hdl = st->asoft_devreg.agprd_targethdl;
3145 ioctl_agpgart_pages_bind(agpgart_softstate_t *st, void *arg, int flags)
3178 hdl = st->asoft_devreg.agprd_masterhdl;
3190 list_head_add_new(&st->mapped_list, gttseg);
3195 ioctl_agpgart_pages_unbind(agpgart_softstate_t *st, void *arg, int flags)
3207 list_head_for_each_safe(entry, temp, &st->mapped_list) {
3222 hdl = st->asoft_devreg.agprd_masterhdl;
3237 ioctl_agpgart_pages_rebind(agpgart_softstate_t *st)
3244 hdl = st->asoft_devreg.agprd_masterhdl;
3246 list_head_for_each_safe(entry, temp, &st->mapped_list) {