cros_ec_cec
static void handle_cec_event(struct cros_ec_cec *cros_ec_cec)
struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
if (port_num >= cros_ec_cec->num_ports) {
port = cros_ec_cec->ports[port_num];
struct cros_ec_cec *cros_ec_cec;
cros_ec_cec = container_of(nb, struct cros_ec_cec, notifier);
cros_ec = cros_ec_cec->cros_ec;
handle_cec_event(cros_ec_cec);
handle_cec_message(cros_ec_cec);
struct cros_ec_cec *cros_ec_cec = port->cros_ec_cec;
struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
struct cros_ec_cec *cros_ec_cec = port->cros_ec_cec;
struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
if (cros_ec_cec->write_cmd_version == 0) {
ret = cros_ec_cmd(cros_ec, cros_ec_cec->write_cmd_version,
struct cros_ec_cec *cros_ec_cec = port->cros_ec_cec;
struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
struct cros_ec_cec *cros_ec_cec = dev_get_drvdata(&pdev->dev);
enable_irq_wake(cros_ec_cec->cros_ec->irq);
struct cros_ec_cec *cros_ec_cec = dev_get_drvdata(&pdev->dev);
disable_irq_wake(cros_ec_cec->cros_ec->irq);
struct cros_ec_cec *cros_ec_cec;
static int cros_ec_cec_get_num_ports(struct cros_ec_cec *cros_ec_cec)
ret = cros_ec_cmd(cros_ec_cec->cros_ec, 0, EC_CMD_CEC_PORT_COUNT, NULL,
cros_ec_cec->num_ports = 1;
dev_err(cros_ec_cec->cros_ec->dev,
dev_err(cros_ec_cec->cros_ec->dev,
cros_ec_cec->num_ports = response.port_count;
static int cros_ec_cec_get_write_cmd_version(struct cros_ec_cec *cros_ec_cec)
struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
cros_ec_cec->write_cmd_version = 1;
if (cros_ec_cec->num_ports != 1) {
cros_ec_cec->num_ports);
cros_ec_cec->write_cmd_version = 0;
struct cros_ec_cec *cros_ec_cec,
port->cros_ec_cec = cros_ec_cec;
cros_ec_cec->ports[port_num] = port;
struct cros_ec_cec *cros_ec_cec;
cros_ec_cec = devm_kzalloc(&pdev->dev, sizeof(*cros_ec_cec),
if (!cros_ec_cec)
platform_set_drvdata(pdev, cros_ec_cec);
cros_ec_cec->cros_ec = cros_ec;
ret = cros_ec_cec_get_num_ports(cros_ec_cec);
ret = cros_ec_cec_get_write_cmd_version(cros_ec_cec);
for (int i = 0; i < cros_ec_cec->num_ports; i++) {
ret = cros_ec_cec_init_port(&pdev->dev, cros_ec_cec, i,
cros_ec_cec->notifier.notifier_call = cros_ec_cec_event;
&cros_ec_cec->notifier);
for (int i = 0; i < cros_ec_cec->num_ports; i++) {
port = cros_ec_cec->ports[i];
struct cros_ec_cec *cros_ec_cec = platform_get_drvdata(pdev);
&cros_ec_cec->cros_ec->event_notifier,
&cros_ec_cec->notifier);
for (int i = 0; i < cros_ec_cec->num_ports; i++) {
port = cros_ec_cec->ports[i];
static void handle_cec_message(struct cros_ec_cec *cros_ec_cec)
struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
if (cros_ec_cec->num_ports != 1) {
cros_ec_cec->num_ports);
port = cros_ec_cec->ports[0];
struct cros_ec_device *cros_ec = port->cros_ec_cec->cros_ec;