Lines Matching refs:pcap

181 	pca9556_unit_t	*pcap;  in pca9556_resume()  local
189 pcap = (pca9556_unit_t *) in pca9556_resume()
192 if (pcap == NULL) in pca9556_resume()
198 pcap->pca9556_transfer->i2c_flags = I2C_WR; in pca9556_resume()
199 pcap->pca9556_transfer->i2c_wlen = 2; in pca9556_resume()
200 pcap->pca9556_transfer->i2c_rlen = 0; in pca9556_resume()
202 if (pcap->pca9555_device) { in pca9556_resume()
218 if (pcap->pca9555_device) in pca9556_resume()
224 pcap->pca9556_transfer->i2c_wbuf[0] = reg + i; in pca9556_resume()
225 pcap->pca9556_transfer->i2c_wbuf[1] = in pca9556_resume()
226 pcap->pca9556_cpr_state[reg_num++]; in pca9556_resume()
228 if (i2c_transfer(pcap->pca9556_hdl, in pca9556_resume()
229 pcap->pca9556_transfer) != DDI_SUCCESS) { in pca9556_resume()
243 pcap->pca9556_name); in pca9556_resume()
249 mutex_enter(&pcap->pca9556_mutex); in pca9556_resume()
250 pcap->pca9556_flags = pcap->pca9556_flags & ~PCA9556_BUSYFLAG; in pca9556_resume()
251 cv_broadcast(&pcap->pca9556_cv); in pca9556_resume()
252 mutex_exit(&pcap->pca9556_mutex); in pca9556_resume()
259 pca9556_unit_t *pcap; in pca9556_detach() local
262 pcap = ddi_get_soft_state(pca9556_soft_statep, instance); in pca9556_detach()
264 if ((pcap->pca9556_flags & PCA9556_REGFLAG) == PCA9556_REGFLAG) { in pca9556_detach()
265 i2c_client_unregister(pcap->pca9556_hdl); in pca9556_detach()
267 if ((pcap->pca9556_flags & PCA9556_TBUFFLAG) == PCA9556_TBUFFLAG) { in pca9556_detach()
268 i2c_transfer_free(pcap->pca9556_hdl, pcap->pca9556_transfer); in pca9556_detach()
270 if ((pcap->pca9556_flags & PCA9556_MINORFLAG) == PCA9556_MINORFLAG) { in pca9556_detach()
273 cv_destroy(&pcap->pca9556_cv); in pca9556_detach()
274 mutex_destroy(&pcap->pca9556_mutex); in pca9556_detach()
282 pca9556_unit_t *pcap; in pca9556_attach() local
295 pcap = ddi_get_soft_state(pca9556_soft_statep, instance); in pca9556_attach()
297 if (pcap == NULL) in pca9556_attach()
300 mutex_init(&pcap->pca9556_mutex, NULL, MUTEX_DRIVER, NULL); in pca9556_attach()
301 cv_init(&pcap->pca9556_cv, NULL, CV_DRIVER, NULL); in pca9556_attach()
303 (void) snprintf(pcap->pca9556_name, sizeof (pcap->pca9556_name), in pca9556_attach()
310 pcap->pca9555_device = B_TRUE; in pca9556_attach()
313 pcap->pca9555_device = B_FALSE; in pca9556_attach()
318 if (!(pcap->pca9555_device)) { in pca9556_attach()
319 (void) snprintf(pcap->pca9556_name, in pca9556_attach()
320 sizeof (pcap->pca9556_name), "%s_%d", in pca9556_attach()
323 pcap->pca9556_name); in pca9556_attach()
333 pcap->pca9556_name, name); in pca9556_attach()
338 pcap->pca9556_flags |= PCA9556_MINORFLAG; in pca9556_attach()
351 if (i2c_transfer_alloc(pcap->pca9556_hdl, &pcap->pca9556_transfer, in pca9556_attach()
354 pcap->pca9556_name); in pca9556_attach()
358 pcap->pca9556_flags |= PCA9556_TBUFFLAG; in pca9556_attach()
359 pcap->pca9556_transfer->i2c_version = I2C_XFER_REV; in pca9556_attach()
361 if (i2c_client_register(dip, &pcap->pca9556_hdl) != I2C_SUCCESS) { in pca9556_attach()
364 pcap->pca9556_name); in pca9556_attach()
368 pcap->pca9556_flags |= PCA9556_REGFLAG; in pca9556_attach()
373 pcap->pca9556_dip = dip; in pca9556_attach()
383 pca9556_unit_t *pcap; in pca9556_info()
388 pcap = ddi_get_soft_state(pca9556_soft_statep, instance); in pca9556_info()
389 if (pcap == NULL) in pca9556_info()
391 *result = (void *)pcap->pca9556_dip; in pca9556_info()
417 pca9556_unit_t *pcap; in pca9556_suspend() local
426 pcap = ddi_get_soft_state(pca9556_soft_statep, instance); in pca9556_suspend()
428 mutex_enter(&pcap->pca9556_mutex); in pca9556_suspend()
429 while ((pcap->pca9556_flags & PCA9556_BUSYFLAG) == PCA9556_BUSYFLAG) { in pca9556_suspend()
430 if (cv_wait_sig(&pcap->pca9556_cv, in pca9556_suspend()
431 &pcap->pca9556_mutex) <= 0) { in pca9556_suspend()
432 mutex_exit(&pcap->pca9556_mutex); in pca9556_suspend()
436 pcap->pca9556_flags |= PCA9556_BUSYFLAG; in pca9556_suspend()
437 mutex_exit(&pcap->pca9556_mutex); in pca9556_suspend()
444 if (pcap->pca9555_device) { in pca9556_suspend()
454 pcap->pca9556_transfer->i2c_flags = I2C_WR_RD; in pca9556_suspend()
455 pcap->pca9556_transfer->i2c_wlen = 1; in pca9556_suspend()
456 pcap->pca9556_transfer->i2c_rlen = 1; in pca9556_suspend()
475 if (pcap->pca9555_device) in pca9556_suspend()
487 pcap->pca9556_transfer->i2c_wbuf[0] = reg + i; in pca9556_suspend()
488 if (i2c_transfer(pcap->pca9556_hdl, in pca9556_suspend()
489 pcap->pca9556_transfer) != DDI_SUCCESS) { in pca9556_suspend()
494 pcap->pca9556_cpr_state[reg_num++] = in pca9556_suspend()
495 pcap->pca9556_transfer->i2c_rbuf[0]; in pca9556_suspend()
507 mutex_enter(&pcap->pca9556_mutex); in pca9556_suspend()
508 pcap->pca9556_flags = pcap->pca9556_flags & ~PCA9556_BUSYFLAG; in pca9556_suspend()
509 cv_broadcast(&pcap->pca9556_cv); in pca9556_suspend()
510 mutex_exit(&pcap->pca9556_mutex); in pca9556_suspend()
512 pcap->pca9556_name); in pca9556_suspend()
536 pca9556_unit_t *pcap; in pca9556_open() local
547 pcap = (pca9556_unit_t *) in pca9556_open()
549 if (pcap == NULL) in pca9556_open()
559 mutex_enter(&pcap->pca9556_mutex); in pca9556_open()
561 if (pcap->pca9556_oflag == 0) { in pca9556_open()
562 pcap->pca9556_oflag = FEXCL; in pca9556_open()
565 } else if (pcap->pca9556_oflag != FEXCL) { in pca9556_open()
566 pcap->pca9556_oflag = (uint16_t)FOPEN; in pca9556_open()
569 mutex_exit(&pcap->pca9556_mutex); in pca9556_open()
577 pca9556_unit_t *pcap; in pca9556_close() local
589 pcap = (pca9556_unit_t *) in pca9556_close()
591 if (pcap == NULL) in pca9556_close()
594 mutex_enter(&pcap->pca9556_mutex); in pca9556_close()
595 pcap->pca9556_oflag = 0; in pca9556_close()
596 mutex_exit(&pcap->pca9556_mutex); in pca9556_close()
604 pca9556_unit_t *pcap; in pca9556_ioctl() local
614 pcap = (pca9556_unit_t *) in pca9556_ioctl()
617 if (pcap->pca9555_device) { in pca9556_ioctl()
627 mutex_enter(&pcap->pca9556_mutex); in pca9556_ioctl()
628 while ((pcap->pca9556_flags & PCA9556_BUSYFLAG) == PCA9556_BUSYFLAG) { in pca9556_ioctl()
629 if (cv_wait_sig(&pcap->pca9556_cv, in pca9556_ioctl()
630 &pcap->pca9556_mutex) <= 0) { in pca9556_ioctl()
631 mutex_exit(&pcap->pca9556_mutex); in pca9556_ioctl()
635 pcap->pca9556_flags |= PCA9556_BUSYFLAG; in pca9556_ioctl()
636 mutex_exit(&pcap->pca9556_mutex); in pca9556_ioctl()
644 pcap->pca9556_transfer->i2c_flags = I2C_WR_RD; in pca9556_ioctl()
645 pcap->pca9556_transfer->i2c_wlen = 1; in pca9556_ioctl()
646 pcap->pca9556_transfer->i2c_rlen = 1; in pca9556_ioctl()
654 if (pcap->pca9555_device) in pca9556_ioctl()
655 pcap->pca9556_transfer->i2c_wbuf[0] = in pca9556_ioctl()
658 pcap->pca9556_transfer->i2c_wbuf[0] = in pca9556_ioctl()
667 if (pcap->pca9555_device) in pca9556_ioctl()
668 pcap->pca9556_transfer->i2c_wbuf[0] = in pca9556_ioctl()
671 pcap->pca9556_transfer->i2c_wbuf[0] = in pca9556_ioctl()
680 if (pcap->pca9555_device) in pca9556_ioctl()
681 pcap->pca9556_transfer->i2c_wbuf[0] = in pca9556_ioctl()
684 pcap->pca9556_transfer->i2c_wbuf[0] = in pca9556_ioctl()
693 if (pcap->pca9555_device) in pca9556_ioctl()
694 pcap->pca9556_transfer->i2c_wbuf[0] = in pca9556_ioctl()
697 pcap->pca9556_transfer->i2c_wbuf[0] = in pca9556_ioctl()
705 if (i2c_transfer(pcap->pca9556_hdl, pcap->pca9556_transfer) in pca9556_ioctl()
716 pcap->pca9556_transfer->i2c_rbuf[0]; in pca9556_ioctl()
720 pcap->pca9556_transfer->i2c_flags = I2C_WR; in pca9556_ioctl()
721 pcap->pca9556_transfer->i2c_wlen = 2; in pca9556_ioctl()
722 pcap->pca9556_transfer->i2c_rlen = 0; in pca9556_ioctl()
728 temp = pcap->pca9556_transfer->i2c_rbuf[0] & (~g_buf.reg_mask); in pca9556_ioctl()
729 pcap->pca9556_transfer->i2c_wbuf[1] = temp| in pca9556_ioctl()
731 if (i2c_transfer(pcap->pca9556_hdl, pcap->pca9556_transfer) in pca9556_ioctl()
738 mutex_enter(&pcap->pca9556_mutex); in pca9556_ioctl()
739 pcap->pca9556_flags = pcap->pca9556_flags & ~PCA9556_BUSYFLAG; in pca9556_ioctl()
740 cv_signal(&pcap->pca9556_cv); in pca9556_ioctl()
741 mutex_exit(&pcap->pca9556_mutex); in pca9556_ioctl()