Lines Matching refs:ec

19 #include <linux/olpc-ec.h>
79 struct olpc_ec_priv *ec = container_of(w, struct olpc_ec_priv, worker);
84 spin_lock_irqsave(&ec->cmd_q_lock, flags);
85 if (!list_empty(&ec->cmd_q)) {
86 desc = list_first_entry(&ec->cmd_q, struct ec_cmd_desc, node);
89 spin_unlock_irqrestore(&ec->cmd_q_lock, flags);
96 mutex_lock(&ec->cmd_lock);
99 mutex_unlock(&ec->cmd_lock);
105 schedule_work(&ec->worker);
113 struct olpc_ec_priv *ec)
119 spin_lock_irqsave(&ec->cmd_q_lock, flags);
120 list_add_tail(&desc->node, &ec->cmd_q);
121 spin_unlock_irqrestore(&ec->cmd_q_lock, flags);
123 schedule_work(&ec->worker);
128 struct olpc_ec_priv *ec = ec_priv;
138 if (!ec)
142 if (WARN_ON(ec->suspended))
155 queue_ec_descriptor(&desc, ec);
167 struct olpc_ec_priv *ec = ec_priv;
169 if (WARN_ON(!ec))
172 ec->ec_wakeup_mask |= value;
178 struct olpc_ec_priv *ec = ec_priv;
180 if (WARN_ON(!ec))
183 ec->ec_wakeup_mask &= ~value;
189 struct olpc_ec_priv *ec = ec_priv;
191 if (WARN_ON(!ec))
195 if (ec->version >= 0x5f) {
222 struct olpc_ec_priv *ec = ec_priv;
225 if (WARN_ON(!ec))
229 if (ec->version >= 0x5f) {
281 pr_debug("olpc-ec: bad ec cmd: cmd:response-count [arg1 [arg2 ...]]\n");
291 pr_debug("olpc-ec: debugfs cmd 0x%02x with %d args %5ph, want %d returns\n",
298 pr_debug("olpc-ec: response %8ph (%d bytes expected)\n",
334 dbgfs_dir = debugfs_create_dir("olpc-ec", NULL);
352 static int olpc_ec_set_dcon_power(struct olpc_ec_priv *ec, bool state)
357 if (ec->dcon_enabled == state)
364 ec->dcon_enabled = state;
370 struct olpc_ec_priv *ec = rdev_get_drvdata(rdev);
372 return olpc_ec_set_dcon_power(ec, true);
377 struct olpc_ec_priv *ec = rdev_get_drvdata(rdev);
379 return olpc_ec_set_dcon_power(ec, false);
384 struct olpc_ec_priv *ec = rdev_get_drvdata(rdev);
386 return ec->dcon_enabled ? 1 : 0;
406 struct olpc_ec_priv *ec;
414 ec = kzalloc(sizeof(*ec), GFP_KERNEL);
415 if (!ec)
418 ec->drv = ec_driver;
419 INIT_WORK(&ec->worker, olpc_ec_worker);
420 mutex_init(&ec->cmd_lock);
422 INIT_LIST_HEAD(&ec->cmd_q);
423 spin_lock_init(&ec->cmd_q_lock);
425 ec_priv = ec;
426 platform_set_drvdata(pdev, ec);
429 err = olpc_ec_cmd(EC_FIRMWARE_REV, NULL, 0, &ec->version, 1);
434 config.driver_data = ec;
435 ec->dcon_enabled = true;
443 ec->dbgfs_dir = olpc_ec_setup_debugfs();
449 kfree(ec);
456 struct olpc_ec_priv *ec = platform_get_drvdata(pdev);
459 olpc_ec_mask_write(ec->ec_wakeup_mask);
464 ec->suspended = true;
472 struct olpc_ec_priv *ec = platform_get_drvdata(pdev);
474 ec->suspended = false;
486 .name = "olpc-ec",