pulse8            139 drivers/media/usb/pulse8-cec/pulse8-cec.c 	struct pulse8 *pulse8 =
pulse8            140 drivers/media/usb/pulse8-cec/pulse8-cec.c 		container_of(work, struct pulse8, work);
pulse8            141 drivers/media/usb/pulse8-cec/pulse8-cec.c 	u8 result = pulse8->work_result;
pulse8            143 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->work_result = 0;
pulse8            146 drivers/media/usb/pulse8-cec/pulse8-cec.c 		cec_received_msg(pulse8->adap, &pulse8->rx_msg);
pulse8            149 drivers/media/usb/pulse8-cec/pulse8-cec.c 		cec_transmit_attempt_done(pulse8->adap, CEC_TX_STATUS_OK);
pulse8            152 drivers/media/usb/pulse8-cec/pulse8-cec.c 		cec_transmit_attempt_done(pulse8->adap, CEC_TX_STATUS_NACK);
pulse8            157 drivers/media/usb/pulse8-cec/pulse8-cec.c 		cec_transmit_attempt_done(pulse8->adap, CEC_TX_STATUS_ERROR);
pulse8            165 drivers/media/usb/pulse8-cec/pulse8-cec.c 	struct pulse8 *pulse8 = serio_get_drvdata(serio);
pulse8            167 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (!pulse8->started && data != MSGSTART)
pulse8            170 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->escape = true;
pulse8            173 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (pulse8->escape) {
pulse8            175 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->escape = false;
pulse8            177 drivers/media/usb/pulse8-cec/pulse8-cec.c 		struct cec_msg *msg = &pulse8->rx_msg;
pulse8            178 drivers/media/usb/pulse8-cec/pulse8-cec.c 		u8 msgcode = pulse8->buf[0];
pulse8            181 drivers/media/usb/pulse8-cec/pulse8-cec.c 			dev_info(pulse8->dev, "received: %*ph\n",
pulse8            182 drivers/media/usb/pulse8-cec/pulse8-cec.c 				 pulse8->idx, pulse8->buf);
pulse8            186 drivers/media/usb/pulse8-cec/pulse8-cec.c 			msg->msg[0] = pulse8->buf[1];
pulse8            191 drivers/media/usb/pulse8-cec/pulse8-cec.c 			msg->msg[msg->len++] = pulse8->buf[1];
pulse8            193 drivers/media/usb/pulse8-cec/pulse8-cec.c 				WARN_ON(pulse8->work_result);
pulse8            194 drivers/media/usb/pulse8-cec/pulse8-cec.c 				pulse8->work_result = msgcode;
pulse8            195 drivers/media/usb/pulse8-cec/pulse8-cec.c 				schedule_work(&pulse8->work);
pulse8            204 drivers/media/usb/pulse8-cec/pulse8-cec.c 			WARN_ON(pulse8->work_result);
pulse8            205 drivers/media/usb/pulse8-cec/pulse8-cec.c 			pulse8->work_result = msgcode;
pulse8            206 drivers/media/usb/pulse8-cec/pulse8-cec.c 			schedule_work(&pulse8->work);
pulse8            216 drivers/media/usb/pulse8-cec/pulse8-cec.c 			if (pulse8->idx == 0)
pulse8            218 drivers/media/usb/pulse8-cec/pulse8-cec.c 			memcpy(pulse8->data, pulse8->buf, pulse8->idx);
pulse8            219 drivers/media/usb/pulse8-cec/pulse8-cec.c 			pulse8->len = pulse8->idx;
pulse8            220 drivers/media/usb/pulse8-cec/pulse8-cec.c 			complete(&pulse8->cmd_done);
pulse8            223 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->idx = 0;
pulse8            224 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->started = false;
pulse8            227 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->idx = 0;
pulse8            228 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->started = true;
pulse8            232 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (pulse8->idx >= DATA_SIZE) {
pulse8            233 drivers/media/usb/pulse8-cec/pulse8-cec.c 		dev_dbg(pulse8->dev,
pulse8            234 drivers/media/usb/pulse8-cec/pulse8-cec.c 			"throwing away %d bytes of garbage\n", pulse8->idx);
pulse8            235 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->idx = 0;
pulse8            237 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->buf[pulse8->idx++] = data;
pulse8            243 drivers/media/usb/pulse8-cec/pulse8-cec.c 	struct pulse8 *pulse8 = serio_get_drvdata(serio);
pulse8            245 drivers/media/usb/pulse8-cec/pulse8-cec.c 	cec_unregister_adapter(pulse8->adap);
pulse8            246 drivers/media/usb/pulse8-cec/pulse8-cec.c 	cancel_delayed_work_sync(&pulse8->ping_eeprom_work);
pulse8            250 drivers/media/usb/pulse8-cec/pulse8-cec.c 	kfree(pulse8);
pulse8            275 drivers/media/usb/pulse8-cec/pulse8-cec.c static int pulse8_send_and_wait_once(struct pulse8 *pulse8,
pulse8            282 drivers/media/usb/pulse8-cec/pulse8-cec.c 	init_completion(&pulse8->cmd_done);
pulse8            284 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send(pulse8->serio, cmd, cmd_len);
pulse8            288 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (!wait_for_completion_timeout(&pulse8->cmd_done, HZ))
pulse8            290 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if ((pulse8->data[0] & 0x3f) == MSGCODE_COMMAND_REJECTED &&
pulse8            296 drivers/media/usb/pulse8-cec/pulse8-cec.c 	    ((pulse8->data[0] & 0x3f) != response || pulse8->len < size + 1)) {
pulse8            297 drivers/media/usb/pulse8-cec/pulse8-cec.c 		dev_info(pulse8->dev, "transmit: failed %02x\n",
pulse8            298 drivers/media/usb/pulse8-cec/pulse8-cec.c 			 pulse8->data[0] & 0x3f);
pulse8            304 drivers/media/usb/pulse8-cec/pulse8-cec.c static int pulse8_send_and_wait(struct pulse8 *pulse8,
pulse8            310 drivers/media/usb/pulse8-cec/pulse8-cec.c 	mutex_lock(&pulse8->write_lock);
pulse8            311 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait_once(pulse8, cmd, cmd_len, response, size);
pulse8            316 drivers/media/usb/pulse8-cec/pulse8-cec.c 		err = pulse8_send_and_wait_once(pulse8, cmd_sc, 2,
pulse8            320 drivers/media/usb/pulse8-cec/pulse8-cec.c 		err = pulse8_send_and_wait_once(pulse8, cmd, cmd_len,
pulse8            325 drivers/media/usb/pulse8-cec/pulse8-cec.c 	mutex_unlock(&pulse8->write_lock);
pulse8            329 drivers/media/usb/pulse8-cec/pulse8-cec.c static int pulse8_setup(struct pulse8 *pulse8, struct serio *serio,
pulse8            332 drivers/media/usb/pulse8-cec/pulse8-cec.c 	u8 *data = pulse8->data + 1;
pulse8            338 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->vers = 0;
pulse8            341 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 1, cmd[0], 2);
pulse8            344 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->vers = (data[0] << 8) | data[1];
pulse8            345 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_info(pulse8->dev, "Firmware version %04x\n", pulse8->vers);
pulse8            346 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (pulse8->vers < 2) {
pulse8            352 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 1, cmd[0], 4);
pulse8            357 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_info(pulse8->dev, "Firmware build date %04ld.%02d.%02d %02d:%02d:%02d\n",
pulse8            361 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_dbg(pulse8->dev, "Persistent config:\n");
pulse8            363 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 1, cmd[0], 1);
pulse8            366 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->autonomous = data[0];
pulse8            367 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_dbg(pulse8->dev, "Autonomous mode: %s",
pulse8            371 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 1, cmd[0], 1);
pulse8            375 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_dbg(pulse8->dev, "Primary device type: %d\n", data[0]);
pulse8            408 drivers/media/usb/pulse8-cec/pulse8-cec.c 		dev_info(pulse8->dev, "Unknown Primary Device Type: %d\n",
pulse8            414 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 1, cmd[0], 2);
pulse8            418 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_dbg(pulse8->dev, "Logical address ACK mask: %x\n",
pulse8            424 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 1, cmd[0], 1);
pulse8            428 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_dbg(pulse8->dev, "Physical address: %x.%x.%x.%x\n",
pulse8            432 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 1, cmd[0], 1);
pulse8            436 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_dbg(pulse8->dev, "CEC version: %d\n", log_addrs->cec_version);
pulse8            439 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 1, cmd[0], 0);
pulse8            443 drivers/media/usb/pulse8-cec/pulse8-cec.c 	dev_dbg(pulse8->dev, "OSD name: %s\n", log_addrs->osd_name);
pulse8            448 drivers/media/usb/pulse8-cec/pulse8-cec.c static int pulse8_apply_persistent_config(struct pulse8 *pulse8,
pulse8            454 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = cec_s_log_addrs(pulse8->adap, log_addrs, false);
pulse8            458 drivers/media/usb/pulse8-cec/pulse8-cec.c 	cec_s_phys_addr(pulse8->adap, pa, false);
pulse8            465 drivers/media/usb/pulse8-cec/pulse8-cec.c 	struct pulse8 *pulse8 = cec_get_drvdata(adap);
pulse8            471 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            478 drivers/media/usb/pulse8-cec/pulse8-cec.c 	struct pulse8 *pulse8 = cec_get_drvdata(adap);
pulse8            484 drivers/media/usb/pulse8-cec/pulse8-cec.c 	mutex_lock(&pulse8->config_lock);
pulse8            490 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 3,
pulse8            492 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if ((err && mask != 0) || pulse8->restoring_config)
pulse8            497 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            501 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->autonomous = cmd[1];
pulse8            507 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            541 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 3,
pulse8            548 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            556 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 3,
pulse8            563 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            581 drivers/media/usb/pulse8-cec/pulse8-cec.c 		err = pulse8_send_and_wait(pulse8, cmd, 1 + osd_len,
pulse8            588 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (pulse8->restoring_config)
pulse8            589 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->restoring_config = false;
pulse8            591 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->config_pending = true;
pulse8            592 drivers/media/usb/pulse8-cec/pulse8-cec.c 	mutex_unlock(&pulse8->config_lock);
pulse8            599 drivers/media/usb/pulse8-cec/pulse8-cec.c 	struct pulse8 *pulse8 = cec_get_drvdata(adap);
pulse8            606 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            611 drivers/media/usb/pulse8-cec/pulse8-cec.c 		err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            616 drivers/media/usb/pulse8-cec/pulse8-cec.c 		err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            622 drivers/media/usb/pulse8-cec/pulse8-cec.c 		err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            628 drivers/media/usb/pulse8-cec/pulse8-cec.c 			err = pulse8_send_and_wait(pulse8, cmd, 2,
pulse8            651 drivers/media/usb/pulse8-cec/pulse8-cec.c 	struct pulse8 *pulse8;
pulse8            656 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8 = kzalloc(sizeof(*pulse8), GFP_KERNEL);
pulse8            658 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (!pulse8)
pulse8            661 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->serio = serio;
pulse8            662 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->adap = cec_allocate_adapter(&pulse8_cec_adap_ops, pulse8,
pulse8            664 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = PTR_ERR_OR_ZERO(pulse8->adap);
pulse8            668 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->dev = &serio->dev;
pulse8            669 drivers/media/usb/pulse8-cec/pulse8-cec.c 	serio_set_drvdata(serio, pulse8);
pulse8            670 drivers/media/usb/pulse8-cec/pulse8-cec.c 	INIT_WORK(&pulse8->work, pulse8_irq_work_handler);
pulse8            671 drivers/media/usb/pulse8-cec/pulse8-cec.c 	mutex_init(&pulse8->write_lock);
pulse8            672 drivers/media/usb/pulse8-cec/pulse8-cec.c 	mutex_init(&pulse8->config_lock);
pulse8            673 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->config_pending = false;
pulse8            679 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = pulse8_setup(pulse8, serio, &log_addrs, &pa);
pulse8            683 drivers/media/usb/pulse8-cec/pulse8-cec.c 	err = cec_register_adapter(pulse8->adap, &serio->dev);
pulse8            687 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8->dev = &pulse8->adap->devnode.dev;
pulse8            689 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (persistent_config && pulse8->autonomous) {
pulse8            690 drivers/media/usb/pulse8-cec/pulse8-cec.c 		err = pulse8_apply_persistent_config(pulse8, &log_addrs, pa);
pulse8            693 drivers/media/usb/pulse8-cec/pulse8-cec.c 		pulse8->restoring_config = true;
pulse8            696 drivers/media/usb/pulse8-cec/pulse8-cec.c 	INIT_DELAYED_WORK(&pulse8->ping_eeprom_work,
pulse8            698 drivers/media/usb/pulse8-cec/pulse8-cec.c 	schedule_delayed_work(&pulse8->ping_eeprom_work, PING_PERIOD);
pulse8            705 drivers/media/usb/pulse8-cec/pulse8-cec.c 	cec_delete_adapter(pulse8->adap);
pulse8            708 drivers/media/usb/pulse8-cec/pulse8-cec.c 	kfree(pulse8);
pulse8            714 drivers/media/usb/pulse8-cec/pulse8-cec.c 	struct pulse8 *pulse8 =
pulse8            715 drivers/media/usb/pulse8-cec/pulse8-cec.c 		container_of(work, struct pulse8, ping_eeprom_work.work);
pulse8            718 drivers/media/usb/pulse8-cec/pulse8-cec.c 	schedule_delayed_work(&pulse8->ping_eeprom_work, PING_PERIOD);
pulse8            720 drivers/media/usb/pulse8-cec/pulse8-cec.c 	pulse8_send_and_wait(pulse8, &cmd, 1,
pulse8            723 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (pulse8->vers < 2)
pulse8            726 drivers/media/usb/pulse8-cec/pulse8-cec.c 	mutex_lock(&pulse8->config_lock);
pulse8            727 drivers/media/usb/pulse8-cec/pulse8-cec.c 	if (pulse8->config_pending && persistent_config) {
pulse8            728 drivers/media/usb/pulse8-cec/pulse8-cec.c 		dev_dbg(pulse8->dev, "writing pending config to EEPROM\n");
pulse8            730 drivers/media/usb/pulse8-cec/pulse8-cec.c 		if (pulse8_send_and_wait(pulse8, &cmd, 1,
pulse8            732 drivers/media/usb/pulse8-cec/pulse8-cec.c 			dev_info(pulse8->dev, "failed to write pending config to EEPROM\n");
pulse8            734 drivers/media/usb/pulse8-cec/pulse8-cec.c 			pulse8->config_pending = false;
pulse8            736 drivers/media/usb/pulse8-cec/pulse8-cec.c 	mutex_unlock(&pulse8->config_lock);