Lines Matching refs:unitp
182 struct ssc050_unit *unitp; in ssc050_open() local
192 unitp = (struct ssc050_unit *) in ssc050_open()
195 if (unitp == NULL) { in ssc050_open()
203 mutex_enter(&unitp->mutex); in ssc050_open()
206 if (unitp->oflag != 0) { in ssc050_open()
209 unitp->oflag = FEXCL; in ssc050_open()
212 if (unitp->oflag == FEXCL) { in ssc050_open()
215 unitp->oflag = FOPEN; in ssc050_open()
219 mutex_exit(&unitp->mutex); in ssc050_open()
229 struct ssc050_unit *unitp; in ssc050_close() local
238 unitp = (struct ssc050_unit *) in ssc050_close()
241 if (unitp == NULL) { in ssc050_close()
245 mutex_enter(&unitp->mutex); in ssc050_close()
247 unitp->oflag = 0; in ssc050_close()
249 mutex_exit(&unitp->mutex); in ssc050_close()
254 ssc050_get(struct ssc050_unit *unitp, int reg, uchar_t *byte, int flags) in ssc050_get() argument
259 (void) i2c_transfer_alloc(unitp->hdl, &i2c_tran_pointer, in ssc050_get()
267 err = i2c_transfer(unitp->hdl, i2c_tran_pointer); in ssc050_get()
270 unitp->name, reg)); in ssc050_get()
275 i2c_transfer_free(unitp->hdl, i2c_tran_pointer); in ssc050_get()
280 ssc050_set(struct ssc050_unit *unitp, int reg, uchar_t byte) in ssc050_set() argument
285 (void) i2c_transfer_alloc(unitp->hdl, &i2c_tran_pointer, in ssc050_set()
289 "i2c_tran_pointer not allocated", unitp->name)); in ssc050_set()
296 D1CMN_ERR((CE_NOTE, "%s: set reg %x to %x", unitp->name, reg, byte)); in ssc050_set()
298 err = i2c_transfer(unitp->hdl, i2c_tran_pointer); in ssc050_set()
301 " i2c_transfer routine", unitp->name)); in ssc050_set()
303 i2c_transfer_free(unitp->hdl, i2c_tran_pointer); in ssc050_set()
313 struct ssc050_unit *unitp; in ssc050_ioctl() local
332 unitp = (struct ssc050_unit *) in ssc050_ioctl()
335 if (unitp == NULL) { in ssc050_ioctl()
339 mutex_enter(&unitp->mutex); in ssc050_ioctl()
341 D3CMN_ERR((CE_NOTE, "%s: ioctl: port = %d", unitp->name, port)); in ssc050_ioctl()
354 err = ssc050_get(unitp, reg, &val8, I2C_SLEEP); in ssc050_ioctl()
363 err = ssc050_set(unitp, reg, in ssc050_ioctl()
372 err = ssc050_get(unitp, port, &val8, I2C_SLEEP); in ssc050_ioctl()
392 err = ssc050_get(unitp, reg, &val8, I2C_SLEEP); in ssc050_ioctl()
398 "contains %x", unitp->name, val8)); in ssc050_ioctl()
404 "NOW contains %x", unitp->name, val8)); in ssc050_ioctl()
406 err = ssc050_set(unitp, reg, val8); in ssc050_ioctl()
411 err = ssc050_get(unitp, port, &val8, I2C_SLEEP); in ssc050_ioctl()
417 "contains %x", unitp->name, val8)); in ssc050_ioctl()
423 "NOW contains %x", unitp->name, val8)); in ssc050_ioctl()
425 err = ssc050_set(unitp, SSC050_GP_REG(port), val8); in ssc050_ioctl()
429 err = ssc050_get(unitp, SSC050_FAN_CONTROL_REG(port), in ssc050_ioctl()
435 D1CMN_ERR((CE_NOTE, "%s: port %d: control = %x", unitp->name, in ssc050_ioctl()
443 err = ssc050_get(unitp, SSC050_COUNT_REG(port), &fan_count, in ssc050_ioctl()
451 "i2c_rbuf = 0", unitp->name)); in ssc050_ioctl()
486 D3CMN_ERR((CE_NOTE, "%s: reg = %x", unitp->name, reg)); in ssc050_ioctl()
489 err = ssc050_get(unitp, reg, &val8, I2C_SLEEP); in ssc050_ioctl()
499 err = ssc050_set(unitp, reg, in ssc050_ioctl()
508 err = ssc050_get(unitp, reg, &val8, I2C_SLEEP); in ssc050_ioctl()
534 D3CMN_ERR((CE_NOTE, "%s: reg = %x", unitp->name, reg)); in ssc050_ioctl()
537 err = ssc050_set(unitp, reg, val8); in ssc050_ioctl()
546 err = ssc050_get(unitp, ioctl_reg.reg_num, &val8, in ssc050_ioctl()
565 err = ssc050_set(unitp, ioctl_reg.reg_num, in ssc050_ioctl()
571 unitp->name, cmd)); in ssc050_ioctl()
575 mutex_exit(&unitp->mutex); in ssc050_ioctl()
626 struct ssc050_unit *unitp; in ssc050_do_attach() local
638 unitp = ddi_get_soft_state(ssc050soft_statep, instance); in ssc050_do_attach()
640 (void) snprintf(unitp->name, sizeof (unitp->name), in ssc050_do_attach()
652 unitp->name, name); in ssc050_do_attach()
658 if (i2c_client_register(dip, &unitp->hdl) != I2C_SUCCESS) { in ssc050_do_attach()
664 mutex_init(&unitp->mutex, NULL, MUTEX_DRIVER, NULL); in ssc050_do_attach()
672 struct ssc050_unit *unitp; in ssc050_do_detach() local
676 unitp = ddi_get_soft_state(ssc050soft_statep, instance); in ssc050_do_detach()
677 i2c_client_unregister(unitp->hdl); in ssc050_do_detach()
679 mutex_destroy(&unitp->mutex); in ssc050_do_detach()
689 struct ssc050_unit *unitp; in ssc050_get_port_bit() local
697 unitp = ddi_get_soft_state(ssc050soft_statep, instance); in ssc050_get_port_bit()
698 if (unitp == NULL) { in ssc050_get_port_bit()
701 return (ssc050_get(unitp, reg, rval, flags)); in ssc050_get_port_bit()