Lines Matching refs:bus
19 #include "bus.h"
55 struct wfx_sdio_priv *bus = priv;
65 sdio_addr |= (bus->buf_id_rx + 1) << 7;
66 ret = sdio_memcpy_fromio(bus->func, dst, sdio_addr, count);
68 bus->buf_id_rx = (bus->buf_id_rx + 1) % 4;
75 struct wfx_sdio_priv *bus = priv;
85 sdio_addr |= bus->buf_id_tx << 7;
87 ret = sdio_memcpy_toio(bus->func, sdio_addr, (void *)src, count);
89 bus->buf_id_tx = (bus->buf_id_tx + 1) % 32;
96 struct wfx_sdio_priv *bus = priv;
98 sdio_claim_host(bus->func);
103 struct wfx_sdio_priv *bus = priv;
105 sdio_release_host(bus->func);
110 struct wfx_sdio_priv *bus = sdio_get_drvdata(func);
112 wfx_bh_request_rx(bus->core);
117 struct wfx_sdio_priv *bus = priv;
119 sdio_claim_host(bus->func);
120 wfx_bh_request_rx(bus->core);
121 sdio_release_host(bus->func);
127 struct wfx_sdio_priv *bus = priv;
132 if (!bus->of_irq) {
133 sdio_claim_host(bus->func);
134 ret = sdio_claim_irq(bus->func, wfx_sdio_irq_handler);
135 sdio_release_host(bus->func);
139 flags = irq_get_trigger_type(bus->of_irq);
143 ret = devm_request_threaded_irq(&bus->func->dev, bus->of_irq, NULL,
144 wfx_sdio_irq_handler_ext, flags, "wfx", bus);
147 sdio_claim_host(bus->func);
148 cccr = sdio_f0_readb(bus->func, SDIO_CCCR_IENx, NULL);
150 cccr |= BIT(bus->func->num);
151 sdio_f0_writeb(bus->func, cccr, SDIO_CCCR_IENx, NULL);
152 sdio_release_host(bus->func);
158 struct wfx_sdio_priv *bus = priv;
161 if (bus->of_irq)
162 devm_free_irq(&bus->func->dev, bus->of_irq, bus);
163 sdio_claim_host(bus->func);
164 ret = sdio_release_irq(bus->func);
165 sdio_release_host(bus->func);
171 struct wfx_sdio_priv *bus = priv;
173 return sdio_align_size(bus->func, size);
178 struct wfx_sdio_priv *bus = priv;
180 device_set_wakeup_enable(&bus->func->dev, enabled);
206 struct wfx_sdio_priv *bus = sdio_get_drvdata(func);
212 flush_work(&bus->core->hif.bh);
216 if (bus->of_irq) {
217 ret = enable_irq_wake(bus->of_irq);
231 struct wfx_sdio_priv *bus = sdio_get_drvdata(func);
235 if (bus->of_irq)
236 return disable_irq_wake(bus->of_irq);
246 struct wfx_sdio_priv *bus;
260 bus = devm_kzalloc(&func->dev, sizeof(*bus), GFP_KERNEL);
261 if (!bus)
264 bus->func = func;
265 bus->of_irq = irq_of_parse_and_map(np, 0);
266 sdio_set_drvdata(func, bus);
276 bus->core = wfx_init_common(&func->dev, pdata, &wfx_sdio_hwbus_ops, bus);
277 if (!bus->core) {
282 ret = wfx_probe(bus->core);
300 struct wfx_sdio_priv *bus = sdio_get_drvdata(func);
302 wfx_release(bus->core);