Lines Matching refs:kcs_bmc

25 u8 kcs_bmc_read_data(struct kcs_bmc_device *kcs_bmc)  in kcs_bmc_read_data()  argument
27 return kcs_bmc->ops->io_inputb(kcs_bmc, kcs_bmc->ioreg.idr); in kcs_bmc_read_data()
31 void kcs_bmc_write_data(struct kcs_bmc_device *kcs_bmc, u8 data) in kcs_bmc_write_data() argument
33 kcs_bmc->ops->io_outputb(kcs_bmc, kcs_bmc->ioreg.odr, data); in kcs_bmc_write_data()
37 u8 kcs_bmc_read_status(struct kcs_bmc_device *kcs_bmc) in kcs_bmc_read_status() argument
39 return kcs_bmc->ops->io_inputb(kcs_bmc, kcs_bmc->ioreg.str); in kcs_bmc_read_status()
43 void kcs_bmc_write_status(struct kcs_bmc_device *kcs_bmc, u8 data) in kcs_bmc_write_status() argument
45 kcs_bmc->ops->io_outputb(kcs_bmc, kcs_bmc->ioreg.str, data); in kcs_bmc_write_status()
49 void kcs_bmc_update_status(struct kcs_bmc_device *kcs_bmc, u8 mask, u8 val) in kcs_bmc_update_status() argument
51 kcs_bmc->ops->io_updateb(kcs_bmc, kcs_bmc->ioreg.str, mask, val); in kcs_bmc_update_status()
55 irqreturn_t kcs_bmc_handle_event(struct kcs_bmc_device *kcs_bmc) in kcs_bmc_handle_event() argument
60 spin_lock(&kcs_bmc->lock); in kcs_bmc_handle_event()
61 client = kcs_bmc->client; in kcs_bmc_handle_event()
64 spin_unlock(&kcs_bmc->lock); in kcs_bmc_handle_event()
70 int kcs_bmc_enable_device(struct kcs_bmc_device *kcs_bmc, struct kcs_bmc_client *client) in kcs_bmc_enable_device() argument
74 spin_lock_irq(&kcs_bmc->lock); in kcs_bmc_enable_device()
75 if (kcs_bmc->client) { in kcs_bmc_enable_device()
80 kcs_bmc->client = client; in kcs_bmc_enable_device()
81 kcs_bmc_update_event_mask(kcs_bmc, mask, mask); in kcs_bmc_enable_device()
84 spin_unlock_irq(&kcs_bmc->lock); in kcs_bmc_enable_device()
90 void kcs_bmc_disable_device(struct kcs_bmc_device *kcs_bmc, struct kcs_bmc_client *client) in kcs_bmc_disable_device() argument
92 spin_lock_irq(&kcs_bmc->lock); in kcs_bmc_disable_device()
93 if (client == kcs_bmc->client) { in kcs_bmc_disable_device()
96 kcs_bmc_update_event_mask(kcs_bmc, mask, 0); in kcs_bmc_disable_device()
97 kcs_bmc->client = NULL; in kcs_bmc_disable_device()
99 spin_unlock_irq(&kcs_bmc->lock); in kcs_bmc_disable_device()
103 int kcs_bmc_add_device(struct kcs_bmc_device *kcs_bmc) in kcs_bmc_add_device() argument
109 spin_lock_init(&kcs_bmc->lock); in kcs_bmc_add_device()
110 kcs_bmc->client = NULL; in kcs_bmc_add_device()
113 list_add(&kcs_bmc->entry, &kcs_bmc_devices); in kcs_bmc_add_device()
115 rc = drv->ops->add_device(kcs_bmc); in kcs_bmc_add_device()
119 dev_err(kcs_bmc->dev, "Failed to add chardev for KCS channel %d: %d", in kcs_bmc_add_device()
120 kcs_bmc->channel, rc); in kcs_bmc_add_device()
129 void kcs_bmc_remove_device(struct kcs_bmc_device *kcs_bmc) in kcs_bmc_remove_device() argument
135 list_del(&kcs_bmc->entry); in kcs_bmc_remove_device()
137 rc = drv->ops->remove_device(kcs_bmc); in kcs_bmc_remove_device()
139 dev_err(kcs_bmc->dev, "Failed to remove chardev for KCS channel %d: %d", in kcs_bmc_remove_device()
140 kcs_bmc->channel, rc); in kcs_bmc_remove_device()
148 struct kcs_bmc_device *kcs_bmc; in kcs_bmc_register_driver() local
153 list_for_each_entry(kcs_bmc, &kcs_bmc_devices, entry) { in kcs_bmc_register_driver()
154 rc = drv->ops->add_device(kcs_bmc); in kcs_bmc_register_driver()
156 dev_err(kcs_bmc->dev, "Failed to add driver for KCS channel %d: %d", in kcs_bmc_register_driver()
157 kcs_bmc->channel, rc); in kcs_bmc_register_driver()
165 struct kcs_bmc_device *kcs_bmc; in kcs_bmc_unregister_driver() local
170 list_for_each_entry(kcs_bmc, &kcs_bmc_devices, entry) { in kcs_bmc_unregister_driver()
171 rc = drv->ops->remove_device(kcs_bmc); in kcs_bmc_unregister_driver()
173 dev_err(kcs_bmc->dev, "Failed to remove driver for KCS channel %d: %d", in kcs_bmc_unregister_driver()
174 kcs_bmc->channel, rc); in kcs_bmc_unregister_driver()
180 void kcs_bmc_update_event_mask(struct kcs_bmc_device *kcs_bmc, u8 mask, u8 events) in kcs_bmc_update_event_mask() argument
182 kcs_bmc->ops->irq_mask_update(kcs_bmc, mask, events); in kcs_bmc_update_event_mask()