host 123 arch/arm/include/asm/kvm_hyp.h struct kvm_cpu_context *host); host 133 arch/arm/mach-pxa/pxa3xx-ulpi.c static int pxa310_start_otg_host_transcvr(struct usb_bus *host) host 151 arch/arm/mach-pxa/pxa3xx-ulpi.c err = otg_set_host(u2d->otg->otg, host); host 158 arch/arm/mach-pxa/pxa3xx-ulpi.c static int pxa310_start_otg_hc(struct usb_bus *host) host 168 arch/arm/mach-pxa/pxa3xx-ulpi.c err = pxa310_start_otg_host_transcvr(host); host 236 arch/arm/mach-pxa/pxa3xx-ulpi.c static inline int pxa310_start_otg_hc(struct usb_bus *host) host 248 arch/arm/mach-pxa/pxa3xx-ulpi.c int pxa3xx_u2d_start_hc(struct usb_bus *host) host 260 arch/arm/mach-pxa/pxa3xx-ulpi.c err = pxa310_start_otg_hc(host); host 267 arch/arm/mach-pxa/pxa3xx-ulpi.c void pxa3xx_u2d_stop_hc(struct usb_bus *host) host 167 arch/arm64/kernel/pci.c struct pci_host_bridge *host; host 194 arch/arm64/kernel/pci.c host = pci_find_host_bridge(bus); host 195 arch/arm64/kernel/pci.c if (host->preserve_config) host 563 arch/arm64/kvm/hyp/switch.c struct kvm_host_data *host; host 566 arch/arm64/kvm/hyp/switch.c host = container_of(host_ctxt, struct kvm_host_data, host_ctxt); host 567 arch/arm64/kvm/hyp/switch.c pmu = &host->pmu_events; host 583 arch/arm64/kvm/hyp/switch.c struct kvm_host_data *host; host 586 arch/arm64/kvm/hyp/switch.c host = container_of(host_ctxt, struct kvm_host_data, host_ctxt); host 587 arch/arm64/kvm/hyp/switch.c pmu = &host->pmu_events; host 167 arch/arm64/kvm/pmu.c struct kvm_host_data *host; host 174 arch/arm64/kvm/pmu.c host = container_of(host_ctxt, struct kvm_host_data, host_ctxt); host 175 arch/arm64/kvm/pmu.c events_guest = host->pmu_events.events_guest; host 176 arch/arm64/kvm/pmu.c events_host = host->pmu_events.events_host; host 188 arch/arm64/kvm/pmu.c struct kvm_host_data *host; host 195 arch/arm64/kvm/pmu.c host = container_of(host_ctxt, struct kvm_host_data, host_ctxt); host 196 arch/arm64/kvm/pmu.c events_guest = host->pmu_events.events_guest; host 197 arch/arm64/kvm/pmu.c events_host = host->pmu_events.events_host; host 85 arch/mips/include/asm/mach-pmcs-msp71xx/msp_usb.h } host; host 433 arch/mips/pci/pci-xtalk-bridge.c struct pci_host_bridge *host; host 453 arch/mips/pci/pci-xtalk-bridge.c host = devm_pci_alloc_host_bridge(dev, sizeof(*bc)); host 454 arch/mips/pci/pci-xtalk-bridge.c if (!host) { host 459 arch/mips/pci/pci-xtalk-bridge.c bc = pci_host_bridge_priv(host); host 468 arch/mips/pci/pci-xtalk-bridge.c pci_add_resource_offset(&host->windows, &bd->mem, bd->mem_offset); host 469 arch/mips/pci/pci-xtalk-bridge.c pci_add_resource_offset(&host->windows, &bd->io, bd->io_offset); host 470 arch/mips/pci/pci-xtalk-bridge.c pci_add_resource(&host->windows, &bc->busn); host 472 arch/mips/pci/pci-xtalk-bridge.c err = devm_request_pci_bus_resources(dev, &host->windows); host 519 arch/mips/pci/pci-xtalk-bridge.c host->dev.parent = dev; host 520 arch/mips/pci/pci-xtalk-bridge.c host->sysdata = bc; host 521 arch/mips/pci/pci-xtalk-bridge.c host->busnr = 0; host 522 arch/mips/pci/pci-xtalk-bridge.c host->ops = &bridge_pci_ops; host 523 arch/mips/pci/pci-xtalk-bridge.c host->map_irq = bridge_map_irq; host 524 arch/mips/pci/pci-xtalk-bridge.c host->swizzle_irq = pci_common_swizzle; host 526 arch/mips/pci/pci-xtalk-bridge.c err = pci_scan_root_bus_bridge(host); host 530 arch/mips/pci/pci-xtalk-bridge.c pci_bus_claim_resources(host->bus); host 531 arch/mips/pci/pci-xtalk-bridge.c pci_bus_add_devices(host->bus); host 533 arch/mips/pci/pci-xtalk-bridge.c platform_set_drvdata(pdev, host->bus); host 538 arch/mips/pci/pci-xtalk-bridge.c pci_free_resource_list(&host->windows); host 19 arch/powerpc/include/asm/dcr-generic.h } host; host 22 arch/powerpc/include/asm/dcr-generic.h extern bool dcr_map_ok_generic(dcr_host_t host); host 26 arch/powerpc/include/asm/dcr-generic.h extern void dcr_unmap_generic(dcr_host_t host, unsigned int dcr_c); host 28 arch/powerpc/include/asm/dcr-generic.h extern u32 dcr_read_generic(dcr_host_t host, unsigned int dcr_n); host 30 arch/powerpc/include/asm/dcr-generic.h extern void dcr_write_generic(dcr_host_t host, unsigned int dcr_n, u32 value); host 19 arch/powerpc/include/asm/dcr-mmio.h static inline bool dcr_map_ok_mmio(dcr_host_mmio_t host) host 21 arch/powerpc/include/asm/dcr-mmio.h return host.token != NULL; host 27 arch/powerpc/include/asm/dcr-mmio.h extern void dcr_unmap_mmio(dcr_host_mmio_t host, unsigned int dcr_c); host 29 arch/powerpc/include/asm/dcr-mmio.h static inline u32 dcr_read_mmio(dcr_host_mmio_t host, unsigned int dcr_n) host 31 arch/powerpc/include/asm/dcr-mmio.h return in_be32(host.token + ((host.base + dcr_n) * host.stride)); host 34 arch/powerpc/include/asm/dcr-mmio.h static inline void dcr_write_mmio(dcr_host_mmio_t host, host 38 arch/powerpc/include/asm/dcr-mmio.h out_be32(host.token + ((host.base + dcr_n) * host.stride), value); host 21 arch/powerpc/include/asm/dcr-native.h static inline bool dcr_map_ok_native(dcr_host_native_t host) host 28 arch/powerpc/include/asm/dcr-native.h #define dcr_unmap_native(host, dcr_c) do {} while (0) host 29 arch/powerpc/include/asm/dcr-native.h #define dcr_read_native(host, dcr_n) mfdcr(dcr_n + host.base) host 30 arch/powerpc/include/asm/dcr-native.h #define dcr_write_native(host, dcr_n, value) mtdcr(dcr_n + host.base, value) host 28 arch/powerpc/include/asm/dcr.h #define DCR_MAP_OK(host) dcr_map_ok_generic(host) host 30 arch/powerpc/include/asm/dcr.h #define dcr_unmap(host, dcr_c) dcr_unmap_generic(host, dcr_c) host 31 arch/powerpc/include/asm/dcr.h #define dcr_read(host, dcr_n) dcr_read_generic(host, dcr_n) host 32 arch/powerpc/include/asm/dcr.h #define dcr_write(host, dcr_n, value) dcr_write_generic(host, dcr_n, value) host 38 arch/powerpc/include/asm/dcr.h #define DCR_MAP_OK(host) dcr_map_ok_native(host) host 40 arch/powerpc/include/asm/dcr.h #define dcr_unmap(host, dcr_c) dcr_unmap_native(host, dcr_c) host 41 arch/powerpc/include/asm/dcr.h #define dcr_read(host, dcr_n) dcr_read_native(host, dcr_n) host 42 arch/powerpc/include/asm/dcr.h #define dcr_write(host, dcr_n, value) dcr_write_native(host, dcr_n, value) host 45 arch/powerpc/include/asm/dcr.h #define DCR_MAP_OK(host) dcr_map_ok_mmio(host) host 47 arch/powerpc/include/asm/dcr.h #define dcr_unmap(host, dcr_c) dcr_unmap_mmio(host, dcr_c) host 48 arch/powerpc/include/asm/dcr.h #define dcr_read(host, dcr_n) dcr_read_mmio(host, dcr_n) host 49 arch/powerpc/include/asm/dcr.h #define dcr_write(host, dcr_n, value) dcr_write_mmio(host, dcr_n, value) host 63 arch/powerpc/include/asm/machdep.h int (*pci_setup_phb)(struct pci_controller *host); host 28 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c struct irq_domain *host; host 95 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c int virq = irq_linear_revmap(priv->host, bit); host 118 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c struct irq_domain *host; host 155 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c host = irq_domain_add_linear(np, NUM_IRQS, &pci_pic_host_ops, priv); host 156 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c if (!host) { host 161 arch/powerpc/platforms/82xx/pq2ads-pci-pic.c priv->host = host; host 52 arch/powerpc/platforms/cell/spider-pic.c struct irq_domain *host; host 199 arch/powerpc/platforms/cell/spider-pic.c virq = irq_linear_revmap(pic->host, cs); host 223 arch/powerpc/platforms/cell/spider-pic.c of_node = irq_domain_get_of_node(pic->host); host 289 arch/powerpc/platforms/cell/spider-pic.c pic->host = irq_domain_add_linear(of_node, SPIDER_SRC_COUNT, host 291 arch/powerpc/platforms/cell/spider-pic.c if (pic->host == NULL) host 203 arch/powerpc/platforms/embedded6xx/hlwd-pic.c struct irq_domain *host; host 211 arch/powerpc/platforms/embedded6xx/hlwd-pic.c host = hlwd_pic_init(np); host 212 arch/powerpc/platforms/embedded6xx/hlwd-pic.c BUG_ON(!host); host 214 arch/powerpc/platforms/embedded6xx/hlwd-pic.c irq_set_handler_data(cascade_virq, host); host 217 arch/powerpc/platforms/embedded6xx/hlwd-pic.c hlwd_irq_host = host; host 182 arch/powerpc/platforms/powermac/low_i2c.c name, __kw_state_names[host->state], isr); \ host 194 arch/powerpc/platforms/powermac/low_i2c.c static inline u8 __kw_read_reg(struct pmac_i2c_host_kw *host, reg_t reg) host 196 arch/powerpc/platforms/powermac/low_i2c.c return readb(host->base + (((unsigned int)reg) << host->bsteps)); host 199 arch/powerpc/platforms/powermac/low_i2c.c static inline void __kw_write_reg(struct pmac_i2c_host_kw *host, host 202 arch/powerpc/platforms/powermac/low_i2c.c writeb(val, host->base + (((unsigned)reg) << host->bsteps)); host 203 arch/powerpc/platforms/powermac/low_i2c.c (void)__kw_read_reg(host, reg_subaddr); host 206 arch/powerpc/platforms/powermac/low_i2c.c #define kw_write_reg(reg, val) __kw_write_reg(host, reg, val) host 207 arch/powerpc/platforms/powermac/low_i2c.c #define kw_read_reg(reg) __kw_read_reg(host, reg) host 209 arch/powerpc/platforms/powermac/low_i2c.c static u8 kw_i2c_wait_interrupt(struct pmac_i2c_host_kw *host) host 223 arch/powerpc/platforms/powermac/low_i2c.c if (host->polled) { host 232 arch/powerpc/platforms/powermac/low_i2c.c static void kw_i2c_do_stop(struct pmac_i2c_host_kw *host, int result) host 235 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_stop; host 236 arch/powerpc/platforms/powermac/low_i2c.c host->result = result; host 240 arch/powerpc/platforms/powermac/low_i2c.c static void kw_i2c_handle_interrupt(struct pmac_i2c_host_kw *host, u8 isr) host 245 arch/powerpc/platforms/powermac/low_i2c.c __kw_state_names[host->state], isr); host 247 arch/powerpc/platforms/powermac/low_i2c.c if (host->state == state_idle) { host 257 arch/powerpc/platforms/powermac/low_i2c.c if (host->state != state_stop) { host 258 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_do_stop(host, -EIO); host 264 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_idle; host 266 arch/powerpc/platforms/powermac/low_i2c.c if (!host->polled) host 267 arch/powerpc/platforms/powermac/low_i2c.c complete(&host->complete); host 273 arch/powerpc/platforms/powermac/low_i2c.c if (host->state != state_addr) { host 275 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_do_stop(host, -EIO); host 278 arch/powerpc/platforms/powermac/low_i2c.c host->result = -ENXIO; host 279 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_stop; host 282 arch/powerpc/platforms/powermac/low_i2c.c if (host->len == 0) host 283 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_do_stop(host, 0); host 284 arch/powerpc/platforms/powermac/low_i2c.c else if (host->rw) { host 285 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_read; host 286 arch/powerpc/platforms/powermac/low_i2c.c if (host->len > 1) host 290 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_write; host 291 arch/powerpc/platforms/powermac/low_i2c.c kw_write_reg(reg_data, *(host->data++)); host 292 arch/powerpc/platforms/powermac/low_i2c.c host->len--; host 299 arch/powerpc/platforms/powermac/low_i2c.c if (host->state == state_read) { host 300 arch/powerpc/platforms/powermac/low_i2c.c *(host->data++) = kw_read_reg(reg_data); host 301 arch/powerpc/platforms/powermac/low_i2c.c host->len--; host 303 arch/powerpc/platforms/powermac/low_i2c.c if (host->len == 0) host 304 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_stop; host 305 arch/powerpc/platforms/powermac/low_i2c.c else if (host->len == 1) host 307 arch/powerpc/platforms/powermac/low_i2c.c } else if (host->state == state_write) { host 311 arch/powerpc/platforms/powermac/low_i2c.c host->result = -EFBIG; host 312 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_stop; host 313 arch/powerpc/platforms/powermac/low_i2c.c } else if (host->len) { host 314 arch/powerpc/platforms/powermac/low_i2c.c kw_write_reg(reg_data, *(host->data++)); host 315 arch/powerpc/platforms/powermac/low_i2c.c host->len--; host 317 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_do_stop(host, 0); host 320 arch/powerpc/platforms/powermac/low_i2c.c if (host->state != state_stop) host 321 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_do_stop(host, -EIO); host 328 arch/powerpc/platforms/powermac/low_i2c.c if (host->state != state_stop) { host 330 arch/powerpc/platforms/powermac/low_i2c.c host->result = -EIO; host 332 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_idle; host 333 arch/powerpc/platforms/powermac/low_i2c.c if (!host->polled) host 334 arch/powerpc/platforms/powermac/low_i2c.c complete(&host->complete); host 346 arch/powerpc/platforms/powermac/low_i2c.c struct pmac_i2c_host_kw *host = dev_id; host 349 arch/powerpc/platforms/powermac/low_i2c.c spin_lock_irqsave(&host->lock, flags); host 350 arch/powerpc/platforms/powermac/low_i2c.c del_timer(&host->timeout_timer); host 351 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_handle_interrupt(host, kw_read_reg(reg_isr)); host 352 arch/powerpc/platforms/powermac/low_i2c.c if (host->state != state_idle) { host 353 arch/powerpc/platforms/powermac/low_i2c.c host->timeout_timer.expires = jiffies + KW_POLL_TIMEOUT; host 354 arch/powerpc/platforms/powermac/low_i2c.c add_timer(&host->timeout_timer); host 356 arch/powerpc/platforms/powermac/low_i2c.c spin_unlock_irqrestore(&host->lock, flags); host 362 arch/powerpc/platforms/powermac/low_i2c.c struct pmac_i2c_host_kw *host = from_timer(host, t, timeout_timer); host 365 arch/powerpc/platforms/powermac/low_i2c.c spin_lock_irqsave(&host->lock, flags); host 371 arch/powerpc/platforms/powermac/low_i2c.c if (timer_pending(&host->timeout_timer)) host 374 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_handle_interrupt(host, kw_read_reg(reg_isr)); host 375 arch/powerpc/platforms/powermac/low_i2c.c if (host->state != state_idle) { host 376 arch/powerpc/platforms/powermac/low_i2c.c host->timeout_timer.expires = jiffies + KW_POLL_TIMEOUT; host 377 arch/powerpc/platforms/powermac/low_i2c.c add_timer(&host->timeout_timer); host 380 arch/powerpc/platforms/powermac/low_i2c.c spin_unlock_irqrestore(&host->lock, flags); host 385 arch/powerpc/platforms/powermac/low_i2c.c struct pmac_i2c_host_kw *host = bus->hostdata; host 386 arch/powerpc/platforms/powermac/low_i2c.c mutex_lock(&host->mutex); host 392 arch/powerpc/platforms/powermac/low_i2c.c struct pmac_i2c_host_kw *host = bus->hostdata; host 393 arch/powerpc/platforms/powermac/low_i2c.c mutex_unlock(&host->mutex); host 399 arch/powerpc/platforms/powermac/low_i2c.c struct pmac_i2c_host_kw *host = bus->hostdata; host 400 arch/powerpc/platforms/powermac/low_i2c.c u8 mode_reg = host->speed; host 401 arch/powerpc/platforms/powermac/low_i2c.c int use_irq = host->irq && !bus->polled; host 440 arch/powerpc/platforms/powermac/low_i2c.c host->data = data; host 441 arch/powerpc/platforms/powermac/low_i2c.c host->len = len; host 442 arch/powerpc/platforms/powermac/low_i2c.c host->state = state_addr; host 443 arch/powerpc/platforms/powermac/low_i2c.c host->result = 0; host 444 arch/powerpc/platforms/powermac/low_i2c.c host->rw = (addrdir & 1); host 445 arch/powerpc/platforms/powermac/low_i2c.c host->polled = bus->polled; host 452 arch/powerpc/platforms/powermac/low_i2c.c reinit_completion(&host->complete); host 456 arch/powerpc/platforms/powermac/low_i2c.c host->timeout_timer.expires = jiffies + KW_POLL_TIMEOUT; host 457 arch/powerpc/platforms/powermac/low_i2c.c add_timer(&host->timeout_timer); host 467 arch/powerpc/platforms/powermac/low_i2c.c wait_for_completion(&host->complete); host 469 arch/powerpc/platforms/powermac/low_i2c.c while(host->state != state_idle) { host 472 arch/powerpc/platforms/powermac/low_i2c.c u8 isr = kw_i2c_wait_interrupt(host); host 473 arch/powerpc/platforms/powermac/low_i2c.c spin_lock_irqsave(&host->lock, flags); host 474 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_handle_interrupt(host, isr); host 475 arch/powerpc/platforms/powermac/low_i2c.c spin_unlock_irqrestore(&host->lock, flags); host 482 arch/powerpc/platforms/powermac/low_i2c.c return host->result; host 487 arch/powerpc/platforms/powermac/low_i2c.c struct pmac_i2c_host_kw *host; host 491 arch/powerpc/platforms/powermac/low_i2c.c host = kzalloc(sizeof(*host), GFP_KERNEL); host 492 arch/powerpc/platforms/powermac/low_i2c.c if (host == NULL) { host 506 arch/powerpc/platforms/powermac/low_i2c.c kfree(host); host 509 arch/powerpc/platforms/powermac/low_i2c.c mutex_init(&host->mutex); host 510 arch/powerpc/platforms/powermac/low_i2c.c init_completion(&host->complete); host 511 arch/powerpc/platforms/powermac/low_i2c.c spin_lock_init(&host->lock); host 512 arch/powerpc/platforms/powermac/low_i2c.c timer_setup(&host->timeout_timer, kw_i2c_timeout, 0); host 516 arch/powerpc/platforms/powermac/low_i2c.c for (host->bsteps = 0; (steps & 0x01) == 0; host->bsteps++) host 519 arch/powerpc/platforms/powermac/low_i2c.c host->speed = KW_I2C_MODE_25KHZ; host 523 arch/powerpc/platforms/powermac/low_i2c.c host->speed = KW_I2C_MODE_100KHZ; host 526 arch/powerpc/platforms/powermac/low_i2c.c host->speed = KW_I2C_MODE_50KHZ; host 529 arch/powerpc/platforms/powermac/low_i2c.c host->speed = KW_I2C_MODE_25KHZ; host 532 arch/powerpc/platforms/powermac/low_i2c.c host->irq = irq_of_parse_and_map(np, 0); host 533 arch/powerpc/platforms/powermac/low_i2c.c if (!host->irq) host 538 arch/powerpc/platforms/powermac/low_i2c.c host->base = ioremap((*addrp), 0x1000); host 539 arch/powerpc/platforms/powermac/low_i2c.c if (host->base == NULL) { host 542 arch/powerpc/platforms/powermac/low_i2c.c kfree(host); host 553 arch/powerpc/platforms/powermac/low_i2c.c if (request_irq(host->irq, kw_i2c_irq, IRQF_NO_SUSPEND, host 554 arch/powerpc/platforms/powermac/low_i2c.c "keywest i2c", host)) host 555 arch/powerpc/platforms/powermac/low_i2c.c host->irq = 0; host 558 arch/powerpc/platforms/powermac/low_i2c.c *addrp, host->irq, np); host 560 arch/powerpc/platforms/powermac/low_i2c.c return host; host 564 arch/powerpc/platforms/powermac/low_i2c.c static void __init kw_i2c_add(struct pmac_i2c_host_kw *host, host 578 arch/powerpc/platforms/powermac/low_i2c.c bus->hostdata = host; host 600 arch/powerpc/platforms/powermac/low_i2c.c struct pmac_i2c_host_kw *host; host 604 arch/powerpc/platforms/powermac/low_i2c.c host = kw_i2c_host_init(np); host 605 arch/powerpc/platforms/powermac/low_i2c.c if (host == NULL) host 630 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_add(host, np, np, i); host 638 arch/powerpc/platforms/powermac/low_i2c.c kw_i2c_add(host, np, child, *reg); host 1191 arch/powerpc/platforms/powermac/pci.c struct pci_controller *host = pci_bus_to_host(dev->bus); host 1202 arch/powerpc/platforms/powermac/pci.c struct resource *r = &host->mem_resources[i]; host 335 arch/powerpc/platforms/powermac/setup.c void note_scsi_host(struct device_node *node, void *host) host 743 arch/powerpc/platforms/ps3/interrupt.c struct irq_domain *host; host 745 arch/powerpc/platforms/ps3/interrupt.c host = irq_domain_add_nomap(NULL, PS3_PLUG_MAX + 1, &ps3_host_ops, NULL); host 746 arch/powerpc/platforms/ps3/interrupt.c irq_set_default_host(host); host 37 arch/powerpc/sysdev/dcr.c bool dcr_map_ok_generic(dcr_host_t host) host 39 arch/powerpc/sysdev/dcr.c if (host.type == DCR_HOST_NATIVE) host 40 arch/powerpc/sysdev/dcr.c return dcr_map_ok_native(host.host.native); host 41 arch/powerpc/sysdev/dcr.c else if (host.type == DCR_HOST_MMIO) host 42 arch/powerpc/sysdev/dcr.c return dcr_map_ok_mmio(host.host.mmio); host 52 arch/powerpc/sysdev/dcr.c dcr_host_t host; host 56 arch/powerpc/sysdev/dcr.c host.type = DCR_HOST_INVALID; host 60 arch/powerpc/sysdev/dcr.c return host; host 67 arch/powerpc/sysdev/dcr.c host.type = DCR_HOST_NATIVE; host 68 arch/powerpc/sysdev/dcr.c host.host.native = dcr_map_native(dev, dcr_n, dcr_c); host 70 arch/powerpc/sysdev/dcr.c host.type = DCR_HOST_MMIO; host 71 arch/powerpc/sysdev/dcr.c host.host.mmio = dcr_map_mmio(dev, dcr_n, dcr_c); host 75 arch/powerpc/sysdev/dcr.c return host; host 79 arch/powerpc/sysdev/dcr.c void dcr_unmap_generic(dcr_host_t host, unsigned int dcr_c) host 81 arch/powerpc/sysdev/dcr.c if (host.type == DCR_HOST_NATIVE) host 82 arch/powerpc/sysdev/dcr.c dcr_unmap_native(host.host.native, dcr_c); host 83 arch/powerpc/sysdev/dcr.c else if (host.type == DCR_HOST_MMIO) host 84 arch/powerpc/sysdev/dcr.c dcr_unmap_mmio(host.host.mmio, dcr_c); host 90 arch/powerpc/sysdev/dcr.c u32 dcr_read_generic(dcr_host_t host, unsigned int dcr_n) host 92 arch/powerpc/sysdev/dcr.c if (host.type == DCR_HOST_NATIVE) host 93 arch/powerpc/sysdev/dcr.c return dcr_read_native(host.host.native, dcr_n); host 94 arch/powerpc/sysdev/dcr.c else if (host.type == DCR_HOST_MMIO) host 95 arch/powerpc/sysdev/dcr.c return dcr_read_mmio(host.host.mmio, dcr_n); host 102 arch/powerpc/sysdev/dcr.c void dcr_write_generic(dcr_host_t host, unsigned int dcr_n, u32 value) host 104 arch/powerpc/sysdev/dcr.c if (host.type == DCR_HOST_NATIVE) host 105 arch/powerpc/sysdev/dcr.c dcr_write_native(host.host.native, dcr_n, value); host 106 arch/powerpc/sysdev/dcr.c else if (host.type == DCR_HOST_MMIO) host 107 arch/powerpc/sysdev/dcr.c dcr_write_mmio(host.host.mmio, dcr_n, value); host 204 arch/powerpc/sysdev/dcr.c void dcr_unmap_mmio(dcr_host_mmio_t host, unsigned int dcr_c) host 206 arch/powerpc/sysdev/dcr.c dcr_host_mmio_t h = host; host 210 arch/powerpc/sysdev/dcr.c h.token += host.base * h.stride; host 50 arch/um/os-Linux/util.c struct utsname host; host 52 arch/um/os-Linux/util.c uname(&host); host 55 arch/um/os-Linux/util.c if (!strcmp(host.machine, "x86_64")) { host 60 arch/um/os-Linux/util.c if (!strcmp(host.machine, "i686")) { host 66 arch/um/os-Linux/util.c strcpy(machine_out, host.machine); host 71 arch/um/os-Linux/util.c struct utsname host; host 73 arch/um/os-Linux/util.c uname(&host); host 74 arch/um/os-Linux/util.c snprintf(buf, len, "%s %s %s %s %s", host.sysname, host.nodename, host 75 arch/um/os-Linux/util.c host.release, host.version, host.machine); host 3341 arch/x86/events/intel/core.c arr[0].host = x86_pmu.intel_ctrl & ~cpuc->intel_ctrl_guest_mask; host 3359 arch/x86/events/intel/core.c arr[1].host = cpuc->pebs_enabled; host 3377 arch/x86/events/intel/core.c arr[idx].host = arr[idx].guest = 0; host 3382 arch/x86/events/intel/core.c arr[idx].host = arr[idx].guest = host 3386 arch/x86/events/intel/core.c arr[idx].host &= ~ARCH_PERFMON_EVENTSEL_ENABLE; host 322 arch/x86/include/asm/perf_event.h u64 host, guest; host 99 arch/x86/kvm/hyperv.c u64 data, bool host) host 112 arch/x86/kvm/hyperv.c if (vector < HV_SYNIC_FIRST_VALID_VECTOR && !host && !masked) host 203 arch/x86/kvm/hyperv.c u32 msr, u64 data, bool host) host 208 arch/x86/kvm/hyperv.c if (!synic->active && !host) host 211 arch/x86/kvm/hyperv.c trace_kvm_hv_synic_set_msr(vcpu->vcpu_id, msr, data, host); host 217 arch/x86/kvm/hyperv.c if (!host) host 221 arch/x86/kvm/hyperv.c if (!host) { host 228 arch/x86/kvm/hyperv.c if ((data & HV_SYNIC_SIEFP_ENABLE) && !host && host 236 arch/x86/kvm/hyperv.c if (!host) host 240 arch/x86/kvm/hyperv.c if ((data & HV_SYNIC_SIMP_ENABLE) && !host && host 248 arch/x86/kvm/hyperv.c if (!host) host 259 arch/x86/kvm/hyperv.c ret = synic_set_sint(synic, msr - HV_X64_MSR_SINT0, data, host); host 269 arch/x86/kvm/hyperv.c bool host) host 273 arch/x86/kvm/hyperv.c if (!synic->active && !host) host 513 arch/x86/kvm/hyperv.c bool host) host 519 arch/x86/kvm/hyperv.c stimer->index, config, host); host 534 arch/x86/kvm/hyperv.c bool host) host 537 arch/x86/kvm/hyperv.c stimer->index, count, host); host 829 arch/x86/kvm/hyperv.c static int kvm_hv_msr_set_crash_ctl(struct kvm_vcpu *vcpu, u64 data, bool host) host 833 arch/x86/kvm/hyperv.c if (host) host 836 arch/x86/kvm/hyperv.c if (!host && (data & HV_CRASH_CTL_CRASH_NOTIFY)) { host 995 arch/x86/kvm/hyperv.c bool host) host 1041 arch/x86/kvm/hyperv.c return kvm_hv_msr_set_crash_ctl(vcpu, data, host); host 1059 arch/x86/kvm/hyperv.c if (!host) host 1080 arch/x86/kvm/hyperv.c static int kvm_hv_set_msr(struct kvm_vcpu *vcpu, u32 msr, u64 data, bool host) host 1090 arch/x86/kvm/hyperv.c if (!host || new_vp_index >= KVM_MAX_VCPUS) host 1147 arch/x86/kvm/hyperv.c if (!host) host 1157 arch/x86/kvm/hyperv.c return synic_set_msr(vcpu_to_synic(vcpu), msr, data, host); host 1165 arch/x86/kvm/hyperv.c data, host); host 1174 arch/x86/kvm/hyperv.c data, host); host 1179 arch/x86/kvm/hyperv.c if (!host) host 1238 arch/x86/kvm/hyperv.c bool host) host 1265 arch/x86/kvm/hyperv.c return synic_get_msr(vcpu_to_synic(vcpu), msr, pdata, host); host 1298 arch/x86/kvm/hyperv.c int kvm_hv_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data, bool host) host 1304 arch/x86/kvm/hyperv.c r = kvm_hv_set_msr_pw(vcpu, msr, data, host); host 1308 arch/x86/kvm/hyperv.c return kvm_hv_set_msr(vcpu, msr, data, host); host 1311 arch/x86/kvm/hyperv.c int kvm_hv_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata, bool host) host 1321 arch/x86/kvm/hyperv.c return kvm_hv_get_msr(vcpu, msr, pdata, host); host 49 arch/x86/kvm/hyperv.h int kvm_hv_set_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 data, bool host); host 50 arch/x86/kvm/hyperv.h int kvm_hv_get_msr_common(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata, bool host); host 207 arch/x86/kvm/svm.c } host; host 2324 arch/x86/kvm/svm.c rdmsrl(MSR_GS_BASE, to_svm(vcpu)->host.gs_base); host 2326 arch/x86/kvm/svm.c savesegment(fs, svm->host.fs); host 2327 arch/x86/kvm/svm.c savesegment(gs, svm->host.gs); host 2328 arch/x86/kvm/svm.c svm->host.ldt = kvm_read_ldt(); host 2359 arch/x86/kvm/svm.c kvm_load_ldt(svm->host.ldt); host 2361 arch/x86/kvm/svm.c loadsegment(fs, svm->host.fs); host 2363 arch/x86/kvm/svm.c load_gs_index(svm->host.gs); host 2366 arch/x86/kvm/svm.c loadsegment(gs, svm->host.gs); host 5798 arch/x86/kvm/svm.c wrmsrl(MSR_GS_BASE, svm->host.gs_base); host 5800 arch/x86/kvm/svm.c loadsegment(fs, svm->host.fs); host 5802 arch/x86/kvm/svm.c loadsegment(gs, svm->host.gs); host 1101 arch/x86/kvm/trace.h TP_PROTO(int vcpu_id, u32 msr, u64 data, bool host), host 1102 arch/x86/kvm/trace.h TP_ARGS(vcpu_id, msr, data, host), host 1108 arch/x86/kvm/trace.h __field(bool, host) host 1115 arch/x86/kvm/trace.h __entry->host = host host 1119 arch/x86/kvm/trace.h __entry->vcpu_id, __entry->msr, __entry->data, __entry->host) host 1126 arch/x86/kvm/trace.h TP_PROTO(int vcpu_id, int timer_index, u64 config, bool host), host 1127 arch/x86/kvm/trace.h TP_ARGS(vcpu_id, timer_index, config, host), host 1133 arch/x86/kvm/trace.h __field(bool, host) host 1140 arch/x86/kvm/trace.h __entry->host = host; host 1145 arch/x86/kvm/trace.h __entry->host) host 1152 arch/x86/kvm/trace.h TP_PROTO(int vcpu_id, int timer_index, u64 count, bool host), host 1153 arch/x86/kvm/trace.h TP_ARGS(vcpu_id, timer_index, count, host), host 1159 arch/x86/kvm/trace.h __field(bool, host) host 1166 arch/x86/kvm/trace.h __entry->host = host; host 1171 arch/x86/kvm/trace.h __entry->host) host 2023 arch/x86/kvm/vmx/nested.c vmcs_write64(VM_EXIT_MSR_LOAD_ADDR, __pa(vmx->msr_autoload.host.val)); host 2289 arch/x86/kvm/vmx/nested.c vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, vmx->msr_autoload.host.nr); host 2832 arch/x86/kvm/vmx/nested.c if (vmx->msr_autoload.host.nr) host 2891 arch/x86/kvm/vmx/nested.c if (vmx->msr_autoload.host.nr) host 2892 arch/x86/kvm/vmx/nested.c vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, vmx->msr_autoload.host.nr); host 4122 arch/x86/kvm/vmx/nested.c vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, vmx->msr_autoload.host.nr); host 857 arch/x86/kvm/vmx/vmx.c i = find_msr(&m->host, msr); host 861 arch/x86/kvm/vmx/vmx.c --m->host.nr; host 862 arch/x86/kvm/vmx/vmx.c m->host.val[i] = m->host.val[m->host.nr]; host 863 arch/x86/kvm/vmx/vmx.c vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, m->host.nr); host 918 arch/x86/kvm/vmx/vmx.c j = find_msr(&m->host, msr); host 921 arch/x86/kvm/vmx/vmx.c (j < 0 && m->host.nr == NR_AUTOLOAD_MSRS)) { host 937 arch/x86/kvm/vmx/vmx.c j = m->host.nr++; host 938 arch/x86/kvm/vmx/vmx.c vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, m->host.nr); host 940 arch/x86/kvm/vmx/vmx.c m->host.val[j].index = msr; host 941 arch/x86/kvm/vmx/vmx.c m->host.val[j].value = host_val; host 1058 arch/x86/kvm/vmx/vmx.c rdmsrl(MSR_IA32_RTIT_CTL, vmx->pt_desc.host.ctl); host 1061 arch/x86/kvm/vmx/vmx.c pt_save_msr(&vmx->pt_desc.host, vmx->pt_desc.addr_range); host 1073 arch/x86/kvm/vmx/vmx.c pt_load_msr(&vmx->pt_desc.host, vmx->pt_desc.addr_range); host 1077 arch/x86/kvm/vmx/vmx.c wrmsrl(MSR_IA32_RTIT_CTL, vmx->pt_desc.host.ctl); host 1080 arch/x86/kvm/vmx/vmx.c void vmx_set_host_fs_gs(struct vmcs_host_state *host, u16 fs_sel, u16 gs_sel, host 1083 arch/x86/kvm/vmx/vmx.c if (unlikely(fs_sel != host->fs_sel)) { host 1088 arch/x86/kvm/vmx/vmx.c host->fs_sel = fs_sel; host 1090 arch/x86/kvm/vmx/vmx.c if (unlikely(gs_sel != host->gs_sel)) { host 1095 arch/x86/kvm/vmx/vmx.c host->gs_sel = gs_sel; host 1097 arch/x86/kvm/vmx/vmx.c if (unlikely(fs_base != host->fs_base)) { host 1099 arch/x86/kvm/vmx/vmx.c host->fs_base = fs_base; host 1101 arch/x86/kvm/vmx/vmx.c if (unlikely(gs_base != host->gs_base)) { host 1103 arch/x86/kvm/vmx/vmx.c host->gs_base = gs_base; host 4203 arch/x86/kvm/vmx/vmx.c vmcs_write64(VM_EXIT_MSR_LOAD_ADDR, __pa(vmx->msr_autoload.host.val)); host 6423 arch/x86/kvm/vmx/vmx.c if (msrs[i].host == msrs[i].guest) host 6427 arch/x86/kvm/vmx/vmx.c msrs[i].host, false); host 86 arch/x86/kvm/vmx/vmx.h struct pt_ctx host; host 230 arch/x86/kvm/vmx/vmx.h struct vmx_msrs host; host 314 arch/x86/kvm/vmx/vmx.h void vmx_set_host_fs_gs(struct vmcs_host_state *host, u16 fs_sel, u16 gs_sel, host 173 arch/x86/kvm/x86.c u64 host; host 258 arch/x86/kvm/x86.c if (values->host != values->curr) { host 259 arch/x86/kvm/x86.c wrmsrl(shared_msrs_global.msrs[slot], values->host); host 260 arch/x86/kvm/x86.c values->curr = values->host; host 278 arch/x86/kvm/x86.c smsr->values[slot].host = value; host 305 arch/x86/kvm/x86.c value = (value & mask) | (smsr->values[slot].host & ~mask); host 2952 arch/x86/kvm/x86.c static int get_msr_mce(struct kvm_vcpu *vcpu, u32 msr, u64 *pdata, bool host) host 2967 arch/x86/kvm/x86.c if (!(mcg_cap & MCG_CTL_P) && !host) host 319 block/compat_ioctl.c struct inode *inode = file->f_mapping->host; host 114 drivers/ata/acard-ahci.c struct ata_host *host = pci_get_drvdata(pdev); host 115 drivers/ata/acard-ahci.c struct ahci_host_priv *hpriv = host->private_data; host 142 drivers/ata/acard-ahci.c struct ata_host *host = pci_get_drvdata(pdev); host 150 drivers/ata/acard-ahci.c rc = ahci_reset_controller(host); host 154 drivers/ata/acard-ahci.c ahci_init_controller(host); host 157 drivers/ata/acard-ahci.c ata_host_resume(host); host 163 drivers/ata/acard-ahci.c static void acard_ahci_pci_print_info(struct ata_host *host) host 165 drivers/ata/acard-ahci.c struct pci_dev *pdev = to_pci_dev(host->dev); host 179 drivers/ata/acard-ahci.c ahci_print_info(host, scc_s); host 279 drivers/ata/acard-ahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 280 drivers/ata/acard-ahci.c struct device *dev = ap->host->dev; host 362 drivers/ata/acard-ahci.c struct ata_host *host; host 416 drivers/ata/acard-ahci.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); host 417 drivers/ata/acard-ahci.c if (!host) host 419 drivers/ata/acard-ahci.c host->private_data = hpriv; host 422 drivers/ata/acard-ahci.c host->flags |= ATA_HOST_PARALLEL_SCAN; host 426 drivers/ata/acard-ahci.c for (i = 0; i < host->n_ports; i++) { host 427 drivers/ata/acard-ahci.c struct ata_port *ap = host->ports[i]; host 450 drivers/ata/acard-ahci.c rc = ahci_reset_controller(host); host 454 drivers/ata/acard-ahci.c ahci_init_controller(host); host 455 drivers/ata/acard-ahci.c acard_ahci_pci_print_info(host); host 458 drivers/ata/acard-ahci.c return ahci_host_activate(host, &acard_ahci_sht); host 641 drivers/ata/ahci.c static void ahci_pci_init_controller(struct ata_host *host) host 643 drivers/ata/ahci.c struct ahci_host_priv *hpriv = host->private_data; host 644 drivers/ata/ahci.c struct pci_dev *pdev = to_pci_dev(host->dev); host 654 drivers/ata/ahci.c port_mmio = __ahci_port_base(host, mv); host 665 drivers/ata/ahci.c ahci_init_controller(host); host 672 drivers/ata/ahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 698 drivers/ata/ahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 759 drivers/ata/ahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 774 drivers/ata/ahci.c struct ata_host *host = ap->host; host 775 drivers/ata/ahci.c struct pci_dev *pdev = to_pci_dev(host->dev); host 812 drivers/ata/ahci.c static void ahci_pci_disable_interrupts(struct ata_host *host) host 814 drivers/ata/ahci.c struct ahci_host_priv *hpriv = host->private_data; host 831 drivers/ata/ahci.c struct ata_host *host = pci_get_drvdata(pdev); host 833 drivers/ata/ahci.c ahci_pci_disable_interrupts(host); host 840 drivers/ata/ahci.c struct ata_host *host = pci_get_drvdata(pdev); host 843 drivers/ata/ahci.c rc = ahci_reset_controller(host); host 846 drivers/ata/ahci.c ahci_pci_init_controller(host); host 854 drivers/ata/ahci.c struct ata_host *host = pci_get_drvdata(pdev); host 855 drivers/ata/ahci.c struct ahci_host_priv *hpriv = host->private_data; host 863 drivers/ata/ahci.c ahci_pci_disable_interrupts(host); host 864 drivers/ata/ahci.c return ata_host_suspend(host, PMSG_SUSPEND); host 870 drivers/ata/ahci.c struct ata_host *host = pci_get_drvdata(pdev); host 878 drivers/ata/ahci.c rc = ahci_reset_controller(host); host 882 drivers/ata/ahci.c ahci_pci_init_controller(host); host 885 drivers/ata/ahci.c ata_host_resume(host); host 914 drivers/ata/ahci.c static void ahci_pci_print_info(struct ata_host *host) host 916 drivers/ata/ahci.c struct pci_dev *pdev = to_pci_dev(host->dev); host 930 drivers/ata/ahci.c ahci_print_info(host, scc_s); host 951 drivers/ata/ahci.c static void ahci_p5wdh_workaround(struct ata_host *host) host 964 drivers/ata/ahci.c struct pci_dev *pdev = to_pci_dev(host->dev); host 968 drivers/ata/ahci.c struct ata_port *ap = host->ports[1]; host 1357 drivers/ata/ahci.c static void ahci_gtf_filter_workaround(struct ata_host *host) host 1386 drivers/ata/ahci.c dev_info(host->dev, "applying extra ACPI _GTF filter 0x%x for %s\n", host 1389 drivers/ata/ahci.c for (i = 0; i < host->n_ports; i++) { host 1390 drivers/ata/ahci.c struct ata_port *ap = host->ports[i]; host 1400 drivers/ata/ahci.c static inline void ahci_gtf_filter_workaround(struct ata_host *host) host 1446 drivers/ata/ahci.c struct ata_host *host = dev_instance; host 1454 drivers/ata/ahci.c hpriv = host->private_data; host 1462 drivers/ata/ahci.c spin_lock(&host->lock); host 1463 drivers/ata/ahci.c rc = ahci_handle_port_intr(host, irq_masked); host 1468 drivers/ata/ahci.c spin_unlock(&host->lock); host 1517 drivers/ata/ahci.c static int ahci_get_irq_vector(struct ata_host *host, int port) host 1519 drivers/ata/ahci.c return pci_irq_vector(to_pci_dev(host->dev), port); host 1633 drivers/ata/ahci.c struct ata_host *host; host 1805 drivers/ata/ahci.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); host 1806 drivers/ata/ahci.c if (!host) host 1808 drivers/ata/ahci.c host->private_data = hpriv; host 1817 drivers/ata/ahci.c host->flags |= ATA_HOST_PARALLEL_SCAN; host 1822 drivers/ata/ahci.c ahci_reset_em(host); host 1824 drivers/ata/ahci.c for (i = 0; i < host->n_ports; i++) { host 1825 drivers/ata/ahci.c struct ata_port *ap = host->ports[i]; host 1843 drivers/ata/ahci.c ahci_p5wdh_workaround(host); host 1846 drivers/ata/ahci.c ahci_gtf_filter_workaround(host); host 1853 drivers/ata/ahci.c rc = ahci_reset_controller(host); host 1857 drivers/ata/ahci.c ahci_pci_init_controller(host); host 1858 drivers/ata/ahci.c ahci_pci_print_info(host); host 1862 drivers/ata/ahci.c rc = ahci_host_activate(host, &ahci_sht); host 369 drivers/ata/ahci.h int (*get_irq_vector)(struct ata_host *host, host 399 drivers/ata/ahci.h void ahci_init_controller(struct ata_host *host); host 400 drivers/ata/ahci.h int ahci_reset_controller(struct ata_host *host); host 418 drivers/ata/ahci.h int ahci_reset_em(struct ata_host *host); host 419 drivers/ata/ahci.h void ahci_print_info(struct ata_host *host, const char *scc_s); host 420 drivers/ata/ahci.h int ahci_host_activate(struct ata_host *host, struct scsi_host_template *sht); host 422 drivers/ata/ahci.h u32 ahci_handle_port_intr(struct ata_host *host, u32 irq_masked); host 424 drivers/ata/ahci.h static inline void __iomem *__ahci_port_base(struct ata_host *host, host 427 drivers/ata/ahci.h struct ahci_host_priv *hpriv = host->private_data; host 435 drivers/ata/ahci.h return __ahci_port_base(ap->host, ap->port_no); host 250 drivers/ata/ahci_brcm.c struct ata_host *host = ap->host; host 251 drivers/ata/ahci_brcm.c struct ahci_host_priv *hpriv = host->private_data; host 267 drivers/ata/ahci_brcm.c spin_lock_irqsave(&host->lock, flags); host 272 drivers/ata/ahci_brcm.c spin_unlock_irqrestore(&host->lock, flags); host 301 drivers/ata/ahci_brcm.c spin_lock_irqsave(&host->lock, flags); host 306 drivers/ata/ahci_brcm.c spin_unlock_irqrestore(&host->lock, flags); host 319 drivers/ata/ahci_brcm.c static void brcm_ahci_host_stop(struct ata_host *host) host 321 drivers/ata/ahci_brcm.c struct ahci_host_priv *hpriv = host->private_data; host 343 drivers/ata/ahci_brcm.c struct ata_host *host = dev_get_drvdata(dev); host 344 drivers/ata/ahci_brcm.c struct ahci_host_priv *hpriv = host->private_data; host 354 drivers/ata/ahci_brcm.c struct ata_host *host = dev_get_drvdata(dev); host 355 drivers/ata/ahci_brcm.c struct ahci_host_priv *hpriv = host->private_data; host 510 drivers/ata/ahci_brcm.c struct ata_host *host = dev_get_drvdata(&pdev->dev); host 511 drivers/ata/ahci_brcm.c struct ahci_host_priv *hpriv = host->private_data; host 299 drivers/ata/ahci_ceva.c struct ata_host *host = dev_get_drvdata(dev); host 300 drivers/ata/ahci_ceva.c struct ahci_host_priv *hpriv = host->private_data; host 115 drivers/ata/ahci_imx.c static void ahci_imx_host_stop(struct ata_host *host); host 750 drivers/ata/ahci_imx.c struct ata_host *host = dev_get_drvdata(ap->dev); host 751 drivers/ata/ahci_imx.c struct ahci_host_priv *hpriv = host->private_data; host 782 drivers/ata/ahci_imx.c struct ata_host *host = dev_get_drvdata(ap->dev); host 783 drivers/ata/ahci_imx.c struct ahci_host_priv *hpriv = host->private_data; host 1187 drivers/ata/ahci_imx.c static void ahci_imx_host_stop(struct ata_host *host) host 1189 drivers/ata/ahci_imx.c struct ahci_host_priv *hpriv = host->private_data; host 1199 drivers/ata/ahci_imx.c struct ata_host *host = dev_get_drvdata(dev); host 1200 drivers/ata/ahci_imx.c struct ahci_host_priv *hpriv = host->private_data; host 1214 drivers/ata/ahci_imx.c struct ata_host *host = dev_get_drvdata(dev); host 1215 drivers/ata/ahci_imx.c struct ahci_host_priv *hpriv = host->private_data; host 161 drivers/ata/ahci_mvebu.c struct ata_host *host = platform_get_drvdata(pdev); host 162 drivers/ata/ahci_mvebu.c struct ahci_host_priv *hpriv = host->private_data; host 91 drivers/ata/ahci_qoriq.c struct ahci_host_priv *hpriv = ap->host->private_data; host 318 drivers/ata/ahci_qoriq.c struct ata_host *host = dev_get_drvdata(dev); host 319 drivers/ata/ahci_qoriq.c struct ahci_host_priv *hpriv = host->private_data; host 82 drivers/ata/ahci_seattle.c struct ahci_host_priv *hpriv = ap->host->private_data; host 87 drivers/ata/ahci_st.c static void st_ahci_host_stop(struct ata_host *host) host 89 drivers/ata/ahci_st.c struct ahci_host_priv *hpriv = host->private_data; host 91 drivers/ata/ahci_st.c struct device *dev = host->dev; host 187 drivers/ata/ahci_st.c struct ata_host *host = dev_get_drvdata(dev); host 188 drivers/ata/ahci_st.c struct ahci_host_priv *hpriv = host->private_data; host 211 drivers/ata/ahci_st.c struct ata_host *host = dev_get_drvdata(dev); host 212 drivers/ata/ahci_st.c struct ahci_host_priv *hpriv = host->private_data; host 150 drivers/ata/ahci_sunxi.c struct ahci_host_priv *hpriv = ap->host->private_data; host 259 drivers/ata/ahci_sunxi.c struct ata_host *host = dev_get_drvdata(dev); host 260 drivers/ata/ahci_sunxi.c struct ahci_host_priv *hpriv = host->private_data; host 425 drivers/ata/ahci_tegra.c static void tegra_ahci_host_stop(struct ata_host *host) host 427 drivers/ata/ahci_tegra.c struct ahci_host_priv *hpriv = host->private_data; host 140 drivers/ata/ahci_xgene.c struct ahci_host_priv *hpriv = ap->host->private_data; host 192 drivers/ata/ahci_xgene.c struct ahci_host_priv *hpriv = ap->host->private_data; host 355 drivers/ata/ahci_xgene.c struct ahci_host_priv *hpriv = ap->host->private_data; host 394 drivers/ata/ahci_xgene.c struct ahci_host_priv *hpriv = ap->host->private_data; host 430 drivers/ata/ahci_xgene.c static void xgene_ahci_host_stop(struct ata_host *host) host 432 drivers/ata/ahci_xgene.c struct ahci_host_priv *hpriv = host->private_data; host 500 drivers/ata/ahci_xgene.c struct ahci_host_priv *hpriv = ap->host->private_data; host 562 drivers/ata/ahci_xgene.c static int xgene_ahci_handle_broken_edge_irq(struct ata_host *host, host 565 drivers/ata/ahci_xgene.c struct ahci_host_priv *hpriv = host->private_data; host 570 drivers/ata/ahci_xgene.c for (i = 0; i < host->n_ports; i++) { host 574 drivers/ata/ahci_xgene.c port_mmio = ahci_port_base(host->ports[i]); host 580 drivers/ata/ahci_xgene.c return ahci_handle_port_intr(host, irq_masked); host 585 drivers/ata/ahci_xgene.c struct ata_host *host = dev_instance; host 593 drivers/ata/ahci_xgene.c hpriv = host->private_data; host 603 drivers/ata/ahci_xgene.c spin_lock(&host->lock); host 611 drivers/ata/ahci_xgene.c rc = xgene_ahci_handle_broken_edge_irq(host, irq_masked); host 613 drivers/ata/ahci_xgene.c spin_unlock(&host->lock); host 54 drivers/ata/ata_generic.c const struct pci_device_id *id = ap->host->private_data; host 507 drivers/ata/ata_piix.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 508 drivers/ata/ata_piix.c struct piix_host_priv *hpriv = ap->host->private_data; host 540 drivers/ata/ata_piix.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 552 drivers/ata/ata_piix.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 665 drivers/ata/ata_piix.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 779 drivers/ata/ata_piix.c struct piix_host_priv *hpriv = ap->host->private_data; host 788 drivers/ata/ata_piix.c struct piix_host_priv *hpriv = link->ap->host->private_data; host 801 drivers/ata/ata_piix.c struct piix_host_priv *hpriv = link->ap->host->private_data; host 990 drivers/ata/ata_piix.c struct ata_host *host = pci_get_drvdata(pdev); host 994 drivers/ata/ata_piix.c rc = ata_host_suspend(host, mesg); host 1014 drivers/ata/ata_piix.c spin_lock_irqsave(&host->lock, flags); host 1015 drivers/ata/ata_piix.c host->flags |= PIIX_HOST_BROKEN_SUSPEND; host 1016 drivers/ata/ata_piix.c spin_unlock_irqrestore(&host->lock, flags); host 1025 drivers/ata/ata_piix.c struct ata_host *host = pci_get_drvdata(pdev); host 1029 drivers/ata/ata_piix.c if (host->flags & PIIX_HOST_BROKEN_SUSPEND) { host 1030 drivers/ata/ata_piix.c spin_lock_irqsave(&host->lock, flags); host 1031 drivers/ata/ata_piix.c host->flags &= ~PIIX_HOST_BROKEN_SUSPEND; host 1032 drivers/ata/ata_piix.c spin_unlock_irqrestore(&host->lock, flags); host 1050 drivers/ata/ata_piix.c ata_host_resume(host); host 1337 drivers/ata/ata_piix.c static void piix_init_pcs(struct ata_host *host, host 1340 drivers/ata/ata_piix.c struct pci_dev *pdev = to_pci_dev(host->dev); host 1401 drivers/ata/ata_piix.c static bool piix_no_sidpr(struct ata_host *host) host 1403 drivers/ata/ata_piix.c struct pci_dev *pdev = to_pci_dev(host->dev); host 1426 drivers/ata/ata_piix.c dev_warn(host->dev, host 1434 drivers/ata/ata_piix.c static int piix_init_sidpr(struct ata_host *host) host 1436 drivers/ata/ata_piix.c struct pci_dev *pdev = to_pci_dev(host->dev); host 1437 drivers/ata/ata_piix.c struct piix_host_priv *hpriv = host->private_data; host 1438 drivers/ata/ata_piix.c struct ata_link *link0 = &host->ports[0]->link; host 1448 drivers/ata/ata_piix.c if (piix_no_sidpr(host)) host 1451 drivers/ata/ata_piix.c if (!(host->ports[0]->flags & PIIX_FLAG_SIDPR)) host 1479 drivers/ata/ata_piix.c dev_info(host->dev, host 1487 drivers/ata/ata_piix.c struct ata_port *ap = host->ports[i]; host 1501 drivers/ata/ata_piix.c static void piix_iocfg_bit18_quirk(struct ata_host *host) host 1518 drivers/ata/ata_piix.c struct pci_dev *pdev = to_pci_dev(host->dev); host 1519 drivers/ata/ata_piix.c struct piix_host_priv *hpriv = host->private_data; host 1577 drivers/ata/ata_piix.c static void piix_ignore_devices_quirk(struct ata_host *host) host 1619 drivers/ata/ata_piix.c host->flags |= ATA_HOST_IGNORE_ATA; host 1620 drivers/ata/ata_piix.c dev_info(host->dev, "%s detected, ATA device ignore set\n", host 1648 drivers/ata/ata_piix.c struct ata_host *host; host 1702 drivers/ata/ata_piix.c rc = ata_pci_bmdma_prepare_host(pdev, ppi, &host); host 1705 drivers/ata/ata_piix.c host->private_data = hpriv; host 1709 drivers/ata/ata_piix.c piix_init_pcs(host, piix_map_db_table[ent->driver_data]); host 1710 drivers/ata/ata_piix.c rc = piix_init_sidpr(host); host 1713 drivers/ata/ata_piix.c if (host->ports[0]->ops == &piix_sidpr_sata_ops) host 1718 drivers/ata/ata_piix.c piix_iocfg_bit18_quirk(host); host 1733 drivers/ata/ata_piix.c host->ports[0]->mwdma_mask = 0; host 1734 drivers/ata/ata_piix.c host->ports[0]->udma_mask = 0; host 1735 drivers/ata/ata_piix.c host->ports[1]->mwdma_mask = 0; host 1736 drivers/ata/ata_piix.c host->ports[1]->udma_mask = 0; host 1738 drivers/ata/ata_piix.c host->flags |= ATA_HOST_PARALLEL_SCAN; host 1741 drivers/ata/ata_piix.c piix_ignore_devices_quirk(host); host 1744 drivers/ata/ata_piix.c return ata_pci_sff_activate_host(host, ata_bmdma_interrupt, sht); host 1749 drivers/ata/ata_piix.c struct ata_host *host = pci_get_drvdata(pdev); host 1750 drivers/ata/ata_piix.c struct piix_host_priv *hpriv = host->private_data; host 243 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 253 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 263 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 288 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 348 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 391 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 564 drivers/ata/libahci.c static void ahci_restore_initial_config(struct ata_host *host) host 566 drivers/ata/libahci.c struct ahci_host_priv *hpriv = host->private_data; host 585 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 633 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 645 drivers/ata/libahci.c dev_err(ap->host->dev, "Failed to wake up port before engine stop\n"); host 661 drivers/ata/libahci.c dev_err(ap->host->dev, "AHCI controller unavailable!\n"); host 682 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 728 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 748 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 820 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 841 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 890 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 909 drivers/ata/libahci.c int ahci_reset_controller(struct ata_host *host) host 911 drivers/ata/libahci.c struct ahci_host_priv *hpriv = host->private_data; host 938 drivers/ata/libahci.c dev_err(host->dev, "controller reset failed (0x%x)\n", host 950 drivers/ata/libahci.c ahci_restore_initial_config(host); host 952 drivers/ata/libahci.c dev_info(host->dev, "skipping global host reset\n"); host 1032 drivers/ata/libahci.c int ahci_reset_em(struct ata_host *host) host 1034 drivers/ata/libahci.c struct ahci_host_priv *hpriv = host->private_data; host 1050 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 1201 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 1230 drivers/ata/libahci.c void ahci_init_controller(struct ata_host *host) host 1232 drivers/ata/libahci.c struct ahci_host_priv *hpriv = host->private_data; host 1238 drivers/ata/libahci.c for (i = 0; i < host->n_ports; i++) { host 1239 drivers/ata/libahci.c struct ata_port *ap = host->ports[i]; host 1245 drivers/ata/libahci.c ahci_port_init(host->dev, ap, i, mmio, port_mmio); host 1258 drivers/ata/libahci.c struct ahci_host_priv *hpriv = dev->link->ap->host->private_data; host 1300 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 1386 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 1538 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 1686 drivers/ata/libahci.c dev_err(ap->host->dev, "failed to clear device error\n"); host 1691 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 1805 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 1915 drivers/ata/libahci.c u32 ahci_handle_port_intr(struct ata_host *host, u32 irq_masked) host 1919 drivers/ata/libahci.c for (i = 0; i < host->n_ports; i++) { host 1925 drivers/ata/libahci.c ap = host->ports[i]; host 1932 drivers/ata/libahci.c dev_warn(host->dev, host 1945 drivers/ata/libahci.c struct ata_host *host = dev_instance; host 1953 drivers/ata/libahci.c hpriv = host->private_data; host 1963 drivers/ata/libahci.c spin_lock(&host->lock); host 1965 drivers/ata/libahci.c rc = ahci_handle_port_intr(host, irq_masked); host 1978 drivers/ata/libahci.c spin_unlock(&host->lock); host 2050 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 2067 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 2093 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 2102 drivers/ata/libahci.c dev_info(ap->host->dev, "port does not support device sleep\n"); host 2173 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 2196 drivers/ata/libahci.c dev_info(ap->host->dev, "FBS is enabled\n"); host 2200 drivers/ata/libahci.c dev_err(ap->host->dev, "Failed to enable FBS\n"); host 2207 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 2229 drivers/ata/libahci.c dev_err(ap->host->dev, "Failed to disable FBS\n"); host 2231 drivers/ata/libahci.c dev_info(ap->host->dev, "FBS is disabled\n"); host 2320 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 2321 drivers/ata/libahci.c struct device *dev = ap->host->dev; host 2331 drivers/ata/libahci.c if (ap->host->n_ports > 1) { host 2417 drivers/ata/libahci.c struct ahci_host_priv *hpriv = ap->host->private_data; host 2435 drivers/ata/libahci.c void ahci_print_info(struct ata_host *host, const char *scc_s) host 2437 drivers/ata/libahci.c struct ahci_host_priv *hpriv = host->private_data; host 2456 drivers/ata/libahci.c dev_info(host->dev, host 2472 drivers/ata/libahci.c dev_info(host->dev, host 2532 drivers/ata/libahci.c static int ahci_host_activate_multi_irqs(struct ata_host *host, host 2535 drivers/ata/libahci.c struct ahci_host_priv *hpriv = host->private_data; host 2538 drivers/ata/libahci.c rc = ata_host_start(host); host 2545 drivers/ata/libahci.c for (i = 0; i < host->n_ports; i++) { host 2546 drivers/ata/libahci.c struct ahci_port_priv *pp = host->ports[i]->private_data; host 2547 drivers/ata/libahci.c int irq = hpriv->get_irq_vector(host, i); host 2555 drivers/ata/libahci.c rc = devm_request_irq(host->dev, irq, ahci_multi_irqs_intr_hard, host 2556 drivers/ata/libahci.c 0, pp->irq_desc, host->ports[i]); host 2560 drivers/ata/libahci.c ata_port_desc(host->ports[i], "irq %d", irq); host 2563 drivers/ata/libahci.c return ata_host_register(host, sht); host 2577 drivers/ata/libahci.c int ahci_host_activate(struct ata_host *host, struct scsi_host_template *sht) host 2579 drivers/ata/libahci.c struct ahci_host_priv *hpriv = host->private_data; host 2586 drivers/ata/libahci.c dev_warn(host->dev, host 2589 drivers/ata/libahci.c dev_err(host->dev, host 2594 drivers/ata/libahci.c rc = ahci_host_activate_multi_irqs(host, sht); host 2596 drivers/ata/libahci.c rc = ata_host_activate(host, irq, hpriv->irq_handler, host 27 drivers/ata/libahci_platform.c static void ahci_host_stop(struct ata_host *host); host 581 drivers/ata/libahci_platform.c struct ata_host *host; host 613 drivers/ata/libahci_platform.c host = ata_host_alloc_pinfo(dev, ppi, n_ports); host 614 drivers/ata/libahci_platform.c if (!host) host 617 drivers/ata/libahci_platform.c host->private_data = hpriv; host 620 drivers/ata/libahci_platform.c host->flags |= ATA_HOST_PARALLEL_SCAN; host 625 drivers/ata/libahci_platform.c ahci_reset_em(host); host 627 drivers/ata/libahci_platform.c for (i = 0; i < host->n_ports; i++) { host 628 drivers/ata/libahci_platform.c struct ata_port *ap = host->ports[i]; host 656 drivers/ata/libahci_platform.c rc = ahci_reset_controller(host); host 660 drivers/ata/libahci_platform.c ahci_init_controller(host); host 661 drivers/ata/libahci_platform.c ahci_print_info(host, "platform"); host 663 drivers/ata/libahci_platform.c return ahci_host_activate(host, sht); host 667 drivers/ata/libahci_platform.c static void ahci_host_stop(struct ata_host *host) host 669 drivers/ata/libahci_platform.c struct ahci_host_priv *hpriv = host->private_data; host 684 drivers/ata/libahci_platform.c struct ata_host *host = platform_get_drvdata(pdev); host 685 drivers/ata/libahci_platform.c struct ahci_host_priv *hpriv = host->private_data; host 689 drivers/ata/libahci_platform.c for (i = 0; i < host->n_ports; i++) { host 690 drivers/ata/libahci_platform.c struct ata_port *ap = host->ports[i]; host 704 drivers/ata/libahci_platform.c writel(GENMASK(host->n_ports, 0), mmio + HOST_IRQ_STAT); host 722 drivers/ata/libahci_platform.c struct ata_host *host = dev_get_drvdata(dev); host 723 drivers/ata/libahci_platform.c struct ahci_host_priv *hpriv = host->private_data; host 745 drivers/ata/libahci_platform.c return ata_host_suspend(host, PMSG_SUSPEND); host 762 drivers/ata/libahci_platform.c struct ata_host *host = dev_get_drvdata(dev); host 763 drivers/ata/libahci_platform.c struct ahci_host_priv *hpriv = host->private_data; host 767 drivers/ata/libahci_platform.c rc = ahci_reset_controller(host); host 771 drivers/ata/libahci_platform.c ahci_init_controller(host); host 777 drivers/ata/libahci_platform.c ata_host_resume(host); host 795 drivers/ata/libahci_platform.c struct ata_host *host = dev_get_drvdata(dev); host 796 drivers/ata/libahci_platform.c struct ahci_host_priv *hpriv = host->private_data; host 821 drivers/ata/libahci_platform.c struct ata_host *host = dev_get_drvdata(dev); host 822 drivers/ata/libahci_platform.c struct ahci_host_priv *hpriv = host->private_data; host 181 drivers/ata/libata-acpi.c struct acpi_device *host_companion = ACPI_COMPANION(ap->host->dev); host 210 drivers/ata/libata-acpi.c struct acpi_device *host_companion = ACPI_COMPANION(ap->host->dev); host 258 drivers/ata/libata-acpi.c void ata_acpi_dissociate(struct ata_host *host) host 265 drivers/ata/libata-acpi.c for (i = 0; i < host->n_ports; i++) { host 266 drivers/ata/libata-acpi.c struct ata_port *ap = host->ports[i]; host 1954 drivers/ata/libata-core.c if (ap->host->flags & ATA_HOST_IGNORE_ATA && host 3657 drivers/ata/libata-core.c if (used_dma && (ap->host->flags & ATA_HOST_SIMPLEX)) host 3658 drivers/ata/libata-core.c ap->host->simplex_claimed = ap; host 3694 drivers/ata/libata-core.c if (link->ap->host->flags & ATA_HOST_PARALLEL_SCAN) host 4730 drivers/ata/libata-core.c struct ata_host *host = ap->host; host 4759 drivers/ata/libata-core.c if ((host->flags & ATA_HOST_SIMPLEX) && host 4760 drivers/ata/libata-core.c host->simplex_claimed && host->simplex_claimed != ap) { host 5868 drivers/ata/libata-core.c int ata_host_suspend(struct ata_host *host, pm_message_t mesg) host 5870 drivers/ata/libata-core.c host->dev->power.power_state = mesg; host 5880 drivers/ata/libata-core.c void ata_host_resume(struct ata_host *host) host 5882 drivers/ata/libata-core.c host->dev->power.power_state = PMSG_ON; host 6010 drivers/ata/libata-core.c struct ata_port *ata_port_alloc(struct ata_host *host) host 6021 drivers/ata/libata-core.c ap->lock = &host->lock; host 6024 drivers/ata/libata-core.c ap->host = host; host 6025 drivers/ata/libata-core.c ap->dev = host->dev; host 6060 drivers/ata/libata-core.c struct ata_host *host = dev_get_drvdata(gendev); host 6063 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6064 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6075 drivers/ata/libata-core.c ata_host_put(host); host 6080 drivers/ata/libata-core.c struct ata_host *host = container_of(kref, struct ata_host, kref); host 6083 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6084 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6089 drivers/ata/libata-core.c host->ports[i] = NULL; host 6091 drivers/ata/libata-core.c kfree(host); host 6094 drivers/ata/libata-core.c void ata_host_get(struct ata_host *host) host 6096 drivers/ata/libata-core.c kref_get(&host->kref); host 6099 drivers/ata/libata-core.c void ata_host_put(struct ata_host *host) host 6101 drivers/ata/libata-core.c kref_put(&host->kref, ata_host_release); host 6126 drivers/ata/libata-core.c struct ata_host *host; host 6135 drivers/ata/libata-core.c host = kzalloc(sz, GFP_KERNEL); host 6136 drivers/ata/libata-core.c if (!host) host 6147 drivers/ata/libata-core.c dev_set_drvdata(dev, host); host 6149 drivers/ata/libata-core.c spin_lock_init(&host->lock); host 6150 drivers/ata/libata-core.c mutex_init(&host->eh_mutex); host 6151 drivers/ata/libata-core.c host->dev = dev; host 6152 drivers/ata/libata-core.c host->n_ports = max_ports; host 6153 drivers/ata/libata-core.c kref_init(&host->kref); host 6159 drivers/ata/libata-core.c ap = ata_port_alloc(host); host 6164 drivers/ata/libata-core.c host->ports[i] = ap; host 6168 drivers/ata/libata-core.c return host; host 6173 drivers/ata/libata-core.c kfree(host); host 6198 drivers/ata/libata-core.c struct ata_host *host; host 6201 drivers/ata/libata-core.c host = ata_host_alloc(dev, n_ports); host 6202 drivers/ata/libata-core.c if (!host) host 6205 drivers/ata/libata-core.c for (i = 0, j = 0, pi = NULL; i < host->n_ports; i++) { host 6206 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6218 drivers/ata/libata-core.c if (!host->ops && (pi->port_ops != &ata_dummy_port_ops)) host 6219 drivers/ata/libata-core.c host->ops = pi->port_ops; host 6222 drivers/ata/libata-core.c return host; host 6289 drivers/ata/libata-core.c struct ata_host *host = dev_get_drvdata(gendev); host 6292 drivers/ata/libata-core.c WARN_ON(!(host->flags & ATA_HOST_STARTED)); host 6294 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6295 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6301 drivers/ata/libata-core.c if (host->ops->host_stop) host 6302 drivers/ata/libata-core.c host->ops->host_stop(host); host 6371 drivers/ata/libata-core.c int ata_host_start(struct ata_host *host) host 6377 drivers/ata/libata-core.c if (host->flags & ATA_HOST_STARTED) host 6380 drivers/ata/libata-core.c ata_finalize_port_ops(host->ops); host 6382 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6383 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6387 drivers/ata/libata-core.c if (!host->ops && !ata_port_is_dummy(ap)) host 6388 drivers/ata/libata-core.c host->ops = ap->ops; host 6394 drivers/ata/libata-core.c if (host->ops->host_stop) host 6403 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6404 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6410 drivers/ata/libata-core.c dev_err(host->dev, host 6420 drivers/ata/libata-core.c devres_add(host->dev, start_dr); host 6421 drivers/ata/libata-core.c host->flags |= ATA_HOST_STARTED; host 6426 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6442 drivers/ata/libata-core.c void ata_host_init(struct ata_host *host, struct device *dev, host 6445 drivers/ata/libata-core.c spin_lock_init(&host->lock); host 6446 drivers/ata/libata-core.c mutex_init(&host->eh_mutex); host 6447 drivers/ata/libata-core.c host->n_tags = ATA_MAX_QUEUE; host 6448 drivers/ata/libata-core.c host->dev = dev; host 6449 drivers/ata/libata-core.c host->ops = ops; host 6450 drivers/ata/libata-core.c kref_init(&host->kref); host 6499 drivers/ata/libata-core.c if (!(ap->host->flags & ATA_HOST_PARALLEL_SCAN) && ap->port_no != 0) host 6526 drivers/ata/libata-core.c int ata_host_register(struct ata_host *host, struct scsi_host_template *sht) host 6530 drivers/ata/libata-core.c host->n_tags = clamp(sht->can_queue, 1, ATA_MAX_QUEUE); host 6533 drivers/ata/libata-core.c if (!(host->flags & ATA_HOST_STARTED)) { host 6534 drivers/ata/libata-core.c dev_err(host->dev, "BUG: trying to register unstarted host\n"); host 6543 drivers/ata/libata-core.c for (i = host->n_ports; host->ports[i]; i++) host 6544 drivers/ata/libata-core.c kfree(host->ports[i]); host 6547 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6548 drivers/ata/libata-core.c host->ports[i]->print_id = atomic_inc_return(&ata_print_id); host 6549 drivers/ata/libata-core.c host->ports[i]->local_port_no = i + 1; host 6553 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6554 drivers/ata/libata-core.c rc = ata_tport_add(host->dev,host->ports[i]); host 6560 drivers/ata/libata-core.c rc = ata_scsi_add_hosts(host, sht); host 6565 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6566 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6593 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6594 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6602 drivers/ata/libata-core.c ata_tport_delete(host->ports[i]); host 6631 drivers/ata/libata-core.c int ata_host_activate(struct ata_host *host, int irq, host 6638 drivers/ata/libata-core.c rc = ata_host_start(host); host 6645 drivers/ata/libata-core.c return ata_host_register(host, sht); host 6648 drivers/ata/libata-core.c irq_desc = devm_kasprintf(host->dev, GFP_KERNEL, "%s[%s]", host 6649 drivers/ata/libata-core.c dev_driver_string(host->dev), host 6650 drivers/ata/libata-core.c dev_name(host->dev)); host 6654 drivers/ata/libata-core.c rc = devm_request_irq(host->dev, irq, irq_handler, irq_flags, host 6655 drivers/ata/libata-core.c irq_desc, host); host 6659 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) host 6660 drivers/ata/libata-core.c ata_port_desc(host->ports[i], "irq %d", irq); host 6662 drivers/ata/libata-core.c rc = ata_host_register(host, sht); host 6665 drivers/ata/libata-core.c devm_free_irq(host->dev, irq, host); host 6731 drivers/ata/libata-core.c void ata_host_detach(struct ata_host *host) host 6738 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) host 6739 drivers/ata/libata-core.c ata_port_detach(host->ports[i]); host 6742 drivers/ata/libata-core.c ata_acpi_dissociate(host); host 6760 drivers/ata/libata-core.c struct ata_host *host = pci_get_drvdata(pdev); host 6762 drivers/ata/libata-core.c ata_host_detach(host); host 6767 drivers/ata/libata-core.c struct ata_host *host = pci_get_drvdata(pdev); host 6770 drivers/ata/libata-core.c for (i = 0; i < host->n_ports; i++) { host 6771 drivers/ata/libata-core.c struct ata_port *ap = host->ports[i]; host 6849 drivers/ata/libata-core.c struct ata_host *host = pci_get_drvdata(pdev); host 6852 drivers/ata/libata-core.c rc = ata_host_suspend(host, mesg); host 6863 drivers/ata/libata-core.c struct ata_host *host = pci_get_drvdata(pdev); host 6868 drivers/ata/libata-core.c ata_host_resume(host); host 6888 drivers/ata/libata-core.c struct ata_host *host = platform_get_drvdata(pdev); host 6890 drivers/ata/libata-core.c ata_host_detach(host); host 7135 drivers/ata/libata-core.c bool owns_eh = ap && ap->host->eh_owner == current; host 273 drivers/ata/libata-eh.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 464 drivers/ata/libata-eh.c mutex_lock(&ap->host->eh_mutex); host 465 drivers/ata/libata-eh.c WARN_ON_ONCE(ap->host->eh_owner); host 466 drivers/ata/libata-eh.c ap->host->eh_owner = current; host 481 drivers/ata/libata-eh.c WARN_ON_ONCE(ap->host->eh_owner != current); host 482 drivers/ata/libata-eh.c ap->host->eh_owner = NULL; host 483 drivers/ata/libata-eh.c mutex_unlock(&ap->host->eh_mutex); host 523 drivers/ata/libata-eh.c void ata_scsi_error(struct Scsi_Host *host) host 525 drivers/ata/libata-eh.c struct ata_port *ap = ata_shost_to_port(host); host 531 drivers/ata/libata-eh.c spin_lock_irqsave(host->host_lock, flags); host 532 drivers/ata/libata-eh.c list_splice_init(&host->eh_cmd_q, &eh_work_q); host 533 drivers/ata/libata-eh.c spin_unlock_irqrestore(host->host_lock, flags); host 535 drivers/ata/libata-eh.c ata_scsi_cmd_error_handler(host, ap, &eh_work_q); host 539 drivers/ata/libata-eh.c ata_scsi_port_error_handler(host, ap); host 557 drivers/ata/libata-eh.c void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap, host 650 drivers/ata/libata-eh.c void ata_scsi_port_error_handler(struct Scsi_Host *host, struct ata_port *ap) host 954 drivers/ata/libata-eh.c struct Scsi_Host *host = ap->scsi_host; host 956 drivers/ata/libata-eh.c host->host_eh_scheduled = 0; host 168 drivers/ata/libata-scsi.c ap = ata_shost_to_port(sdev->host); host 217 drivers/ata/libata-scsi.c ap = ata_shost_to_port(sdev->host); host 270 drivers/ata/libata-scsi.c ap = ata_shost_to_port(sdev->host); host 303 drivers/ata/libata-scsi.c ap = ata_shost_to_port(sdev->host); host 429 drivers/ata/libata-scsi.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 443 drivers/ata/libata-scsi.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 514 drivers/ata/libata-scsi.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 819 drivers/ata/libata-scsi.c return ata_sas_scsi_ioctl(ata_shost_to_port(scsidev->host), host 1301 drivers/ata/libata-scsi.c depth = min(sdev->host->can_queue, ata_id_queue_depth(dev->id)); host 1327 drivers/ata/libata-scsi.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 1355 drivers/ata/libata-scsi.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 1411 drivers/ata/libata-scsi.c queue_depth = min(queue_depth, sdev->host->can_queue); host 1438 drivers/ata/libata-scsi.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 4525 drivers/ata/libata-scsi.c int ata_scsi_add_hosts(struct ata_host *host, struct scsi_host_template *sht) host 4529 drivers/ata/libata-scsi.c for (i = 0; i < host->n_ports; i++) { host 4530 drivers/ata/libata-scsi.c struct ata_port *ap = host->ports[i]; host 4556 drivers/ata/libata-scsi.c rc = scsi_add_host_with_dma(shost, &ap->tdev, ap->host->dev); host 4565 drivers/ata/libata-scsi.c struct Scsi_Host *shost = host->ports[i]->scsi_host; host 4934 drivers/ata/libata-scsi.c struct ata_port *ata_sas_port_alloc(struct ata_host *host, host 4940 drivers/ata/libata-scsi.c ap = ata_port_alloc(host); host 4945 drivers/ata/libata-scsi.c ap->lock = &host->lock; host 5109 drivers/ata/libata-scsi.c unsigned int max_queue = ap->host->n_tags; host 1531 drivers/ata/libata-sff.c struct ata_host *host = dev_instance; host 1538 drivers/ata/libata-sff.c spin_lock_irqsave(&host->lock, flags); host 1542 drivers/ata/libata-sff.c for (i = 0; i < host->n_ports; i++) { host 1543 drivers/ata/libata-sff.c struct ata_port *ap = host->ports[i]; host 1564 drivers/ata/libata-sff.c for (i = 0; i < host->n_ports; i++) { host 1565 drivers/ata/libata-sff.c struct ata_port *ap = host->ports[i]; host 1595 drivers/ata/libata-sff.c spin_unlock_irqrestore(&host->lock, flags); host 2226 drivers/ata/libata-sff.c int ata_pci_sff_init_host(struct ata_host *host) host 2228 drivers/ata/libata-sff.c struct device *gdev = host->dev; host 2235 drivers/ata/libata-sff.c struct ata_port *ap = host->ports[i]; host 2262 drivers/ata/libata-sff.c host->iomap = iomap = pcim_iomap_table(pdev); host 2305 drivers/ata/libata-sff.c struct ata_host *host; host 2311 drivers/ata/libata-sff.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, 2); host 2312 drivers/ata/libata-sff.c if (!host) { host 2318 drivers/ata/libata-sff.c rc = ata_pci_sff_init_host(host); host 2323 drivers/ata/libata-sff.c *r_host = host; host 2348 drivers/ata/libata-sff.c int ata_pci_sff_activate_host(struct ata_host *host, host 2352 drivers/ata/libata-sff.c struct device *dev = host->dev; host 2354 drivers/ata/libata-sff.c const char *drv_name = dev_driver_string(host->dev); host 2357 drivers/ata/libata-sff.c rc = ata_host_start(host); host 2373 drivers/ata/libata-sff.c if (!ata_port_is_dummy(host->ports[0])) host 2375 drivers/ata/libata-sff.c if (!ata_port_is_dummy(host->ports[1])) host 2388 drivers/ata/libata-sff.c IRQF_SHARED, drv_name, host); host 2393 drivers/ata/libata-sff.c if (ata_port_is_dummy(host->ports[i])) host 2395 drivers/ata/libata-sff.c ata_port_desc(host->ports[i], "irq %d", pdev->irq); host 2398 drivers/ata/libata-sff.c if (!ata_port_is_dummy(host->ports[0])) { host 2401 drivers/ata/libata-sff.c drv_name, host); host 2405 drivers/ata/libata-sff.c ata_port_desc(host->ports[0], "irq %d", host 2409 drivers/ata/libata-sff.c if (!ata_port_is_dummy(host->ports[1])) { host 2412 drivers/ata/libata-sff.c drv_name, host); host 2416 drivers/ata/libata-sff.c ata_port_desc(host->ports[1], "irq %d", host 2421 drivers/ata/libata-sff.c rc = ata_host_register(host, sht); host 2452 drivers/ata/libata-sff.c struct ata_host *host = NULL; host 2473 drivers/ata/libata-sff.c rc = ata_pci_bmdma_prepare_host(pdev, ppi, &host); host 2477 drivers/ata/libata-sff.c rc = ata_pci_sff_prepare_host(pdev, ppi, &host); host 2480 drivers/ata/libata-sff.c host->private_data = host_priv; host 2481 drivers/ata/libata-sff.c host->flags |= hflags; host 2486 drivers/ata/libata-sff.c rc = ata_pci_sff_activate_host(host, ata_bmdma_interrupt, sht); host 2489 drivers/ata/libata-sff.c rc = ata_pci_sff_activate_host(host, ata_sff_interrupt, sht); host 3058 drivers/ata/libata-sff.c dmam_alloc_coherent(ap->host->dev, ATA_PRD_TBL_SZ, host 3117 drivers/ata/libata-sff.c static void ata_bmdma_nodma(struct ata_host *host, const char *reason) host 3121 drivers/ata/libata-sff.c dev_err(host->dev, "BMDMA: %s, falling back to PIO\n", reason); host 3124 drivers/ata/libata-sff.c host->ports[i]->mwdma_mask = 0; host 3125 drivers/ata/libata-sff.c host->ports[i]->udma_mask = 0; host 3138 drivers/ata/libata-sff.c void ata_pci_bmdma_init(struct ata_host *host) host 3140 drivers/ata/libata-sff.c struct device *gdev = host->dev; host 3146 drivers/ata/libata-sff.c ata_bmdma_nodma(host, "BAR4 is zero"); host 3158 drivers/ata/libata-sff.c ata_bmdma_nodma(host, "failed to set dma mask"); host 3163 drivers/ata/libata-sff.c ata_bmdma_nodma(host, "failed to request/iomap BAR4"); host 3166 drivers/ata/libata-sff.c host->iomap = pcim_iomap_table(pdev); host 3169 drivers/ata/libata-sff.c struct ata_port *ap = host->ports[i]; host 3170 drivers/ata/libata-sff.c void __iomem *bmdma = host->iomap[4] + 8 * i; host 3178 drivers/ata/libata-sff.c host->flags |= ATA_HOST_SIMPLEX; host 228 drivers/ata/libata-transport.c ata_host_put(ap->host); host 289 drivers/ata/libata-transport.c ata_host_get(ap->host); host 320 drivers/ata/libata-transport.c ata_host_put(ap->host); host 81 drivers/ata/libata.h extern struct ata_port *ata_port_alloc(struct ata_host *host); host 93 drivers/ata/libata.h extern void ata_acpi_dissociate(struct ata_host *host); host 103 drivers/ata/libata.h static inline void ata_acpi_dissociate(struct ata_host *host) { } host 115 drivers/ata/libata.h extern int ata_scsi_add_hosts(struct ata_host *host, host 140 drivers/ata/libata.h extern void ata_scsi_error(struct Scsi_Host *host); host 194 drivers/ata/pata_acpi.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 91 drivers/ata/pata_ali.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 143 drivers/ata/pata_ali.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 172 drivers/ata/pata_ali.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 247 drivers/ata/pata_ali.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 596 drivers/ata/pata_ali.c struct ata_host *host = pci_get_drvdata(pdev); host 603 drivers/ata/pata_ali.c ata_host_resume(host); host 49 drivers/ata/pata_amd.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 140 drivers/ata/pata_amd.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 158 drivers/ata/pata_amd.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 181 drivers/ata/pata_amd.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 281 drivers/ata/pata_amd.c udma = saved_udma = (unsigned long)ap->host->private_data; host 338 drivers/ata/pata_amd.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 383 drivers/ata/pata_amd.c static void nv_host_stop(struct ata_host *host) host 385 drivers/ata/pata_amd.c u32 udma = (unsigned long)host->private_data; host 388 drivers/ata/pata_amd.c pci_write_config_dword(to_pci_dev(host->dev), 0x60, udma); host 581 drivers/ata/pata_amd.c struct ata_host *host = pci_get_drvdata(pdev); host 594 drivers/ata/pata_amd.c ata_host_resume(host); host 187 drivers/ata/pata_arasan_cf.c struct ata_host *host; host 228 drivers/ata/pata_arasan_cf.c struct device *dev = acdev->host->dev; host 284 drivers/ata/pata_arasan_cf.c struct ata_port *ap = acdev->host->ports[0]; host 308 drivers/ata/pata_arasan_cf.c struct arasan_cf_pdata *pdata = dev_get_platdata(acdev->host->dev); host 315 drivers/ata/pata_arasan_cf.c dev_dbg(acdev->host->dev, "clock enable failed"); host 321 drivers/ata/pata_arasan_cf.c dev_warn(acdev->host->dev, "clock set rate failed"); host 326 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 338 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 347 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 353 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 370 drivers/ata/pata_arasan_cf.c ata_sff_interrupt(acdev->irq, acdev->host); host 372 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 375 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 383 drivers/ata/pata_arasan_cf.c dev_err(acdev->host->dev, "%s TimeOut", rw ? "write" : "read"); host 405 drivers/ata/pata_arasan_cf.c dev_err(acdev->host->dev, "device_prep_dma_memcpy failed\n"); host 415 drivers/ata/pata_arasan_cf.c dev_err(acdev->host->dev, "dma_submit_error\n"); host 424 drivers/ata/pata_arasan_cf.c dev_err(acdev->host->dev, "wait_for_completion_timeout\n"); host 457 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 462 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 477 drivers/ata/pata_arasan_cf.c dev_err(acdev->host->dev, "dma failed"); host 499 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 502 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 530 drivers/ata/pata_arasan_cf.c acdev->dma_chan = dma_request_slave_channel(acdev->host->dev, "data"); host 532 drivers/ata/pata_arasan_cf.c dev_err(acdev->host->dev, "Unable to get dma_chan\n"); host 548 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 550 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 562 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 568 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 581 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 583 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 601 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 611 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 619 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 621 drivers/ata/pata_arasan_cf.c dev_err(acdev->host->dev, "pio xfer err irq\n"); host 625 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 645 drivers/ata/pata_arasan_cf.c struct arasan_cf_dev *acdev = ap->host->private_data; host 659 drivers/ata/pata_arasan_cf.c struct arasan_cf_dev *acdev = ap->host->private_data; host 689 drivers/ata/pata_arasan_cf.c struct arasan_cf_dev *acdev = ap->host->private_data; host 722 drivers/ata/pata_arasan_cf.c struct arasan_cf_dev *acdev = ap->host->private_data; host 733 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 743 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 748 drivers/ata/pata_arasan_cf.c struct arasan_cf_dev *acdev = ap->host->private_data; host 752 drivers/ata/pata_arasan_cf.c spin_lock_irqsave(&acdev->host->lock, flags); host 768 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 778 drivers/ata/pata_arasan_cf.c spin_unlock_irqrestore(&acdev->host->lock, flags); host 794 drivers/ata/pata_arasan_cf.c struct ata_host *host; host 842 drivers/ata/pata_arasan_cf.c host = ata_host_alloc(&pdev->dev, 1); host 843 drivers/ata/pata_arasan_cf.c if (!host) { host 848 drivers/ata/pata_arasan_cf.c ap = host->ports[0]; host 849 drivers/ata/pata_arasan_cf.c host->private_data = acdev; host 850 drivers/ata/pata_arasan_cf.c acdev->host = host; host 898 drivers/ata/pata_arasan_cf.c ret = ata_host_activate(host, acdev->irq, irq_handler, 0, host 910 drivers/ata/pata_arasan_cf.c struct ata_host *host = platform_get_drvdata(pdev); host 911 drivers/ata/pata_arasan_cf.c struct arasan_cf_dev *acdev = host->ports[0]->private_data; host 913 drivers/ata/pata_arasan_cf.c ata_host_detach(host); host 922 drivers/ata/pata_arasan_cf.c struct ata_host *host = dev_get_drvdata(dev); host 923 drivers/ata/pata_arasan_cf.c struct arasan_cf_dev *acdev = host->ports[0]->private_data; host 929 drivers/ata/pata_arasan_cf.c return ata_host_suspend(host, PMSG_SUSPEND); host 934 drivers/ata/pata_arasan_cf.c struct ata_host *host = dev_get_drvdata(dev); host 935 drivers/ata/pata_arasan_cf.c struct arasan_cf_dev *acdev = host->ports[0]->private_data; host 938 drivers/ata/pata_arasan_cf.c ata_host_resume(host); host 58 drivers/ata/pata_artop.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 77 drivers/ata/pata_artop.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 101 drivers/ata/pata_artop.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 128 drivers/ata/pata_artop.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 155 drivers/ata/pata_artop.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 182 drivers/ata/pata_artop.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 207 drivers/ata/pata_artop.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 247 drivers/ata/pata_artop.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 279 drivers/ata/pata_artop.c struct ata_host *host = qc->ap->host; host 280 drivers/ata/pata_artop.c struct ata_port *alt = host->ports[1 ^ qc->ap->port_no]; host 429 drivers/ata/pata_artop.c struct ata_host *host = pci_get_drvdata(pdev); host 438 drivers/ata/pata_artop.c ata_host_resume(host); host 51 drivers/ata/pata_atiixp.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 84 drivers/ata/pata_atiixp.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 106 drivers/ata/pata_atiixp.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 153 drivers/ata/pata_atiixp.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 216 drivers/ata/pata_atiixp.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 243 drivers/ata/pata_atiixp.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 69 drivers/ata/pata_atp867x.c #define ATP867X_IOBASE(ap) ((ap)->host->iomap[0]) host 109 drivers/ata/pata_atp867x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 253 drivers/ata/pata_atp867x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 339 drivers/ata/pata_atp867x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 359 drivers/ata/pata_atp867x.c static void atp867x_fixup(struct ata_host *host) host 361 drivers/ata/pata_atp867x.c struct pci_dev *pdev = to_pci_dev(host->dev); host 362 drivers/ata/pata_atp867x.c struct ata_port *ap = host->ports[0]; host 405 drivers/ata/pata_atp867x.c static int atp867x_ata_pci_sff_init_host(struct ata_host *host) host 407 drivers/ata/pata_atp867x.c struct device *gdev = host->dev; host 420 drivers/ata/pata_atp867x.c host->iomap = pcim_iomap_table(pdev); host 427 drivers/ata/pata_atp867x.c (unsigned long long)(host->iomap[i])); host 433 drivers/ata/pata_atp867x.c for (i = 0; i < host->n_ports; i++) { host 434 drivers/ata/pata_atp867x.c struct ata_port *ap = host->ports[i]; host 464 drivers/ata/pata_atp867x.c atp867x_fixup(host); host 479 drivers/ata/pata_atp867x.c struct ata_host *host; host 492 drivers/ata/pata_atp867x.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, ATP867X_NUM_PORTS); host 493 drivers/ata/pata_atp867x.c if (!host) { host 499 drivers/ata/pata_atp867x.c rc = atp867x_ata_pci_sff_init_host(host); host 507 drivers/ata/pata_atp867x.c rc = ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, host 519 drivers/ata/pata_atp867x.c struct ata_host *host = pci_get_drvdata(pdev); host 526 drivers/ata/pata_atp867x.c atp867x_fixup(host); host 528 drivers/ata/pata_atp867x.c ata_host_resume(host); host 295 drivers/ata/pata_bk3710.c struct ata_host *host; host 329 drivers/ata/pata_bk3710.c host = ata_host_alloc(&pdev->dev, 1); host 330 drivers/ata/pata_bk3710.c if (!host) host 332 drivers/ata/pata_bk3710.c ap = host->ports[0]; host 361 drivers/ata/pata_bk3710.c return ata_host_activate(host, irq, ata_sff_interrupt, 0, host 156 drivers/ata/pata_buddha.c struct ata_host *host; host 189 drivers/ata/pata_buddha.c host = ata_host_alloc(&z->dev, nr_ports); host 192 drivers/ata/pata_buddha.c if (!host) host 202 drivers/ata/pata_buddha.c struct ata_port *ap = host->ports[i]; host 243 drivers/ata/pata_buddha.c ata_host_activate(host, IRQ_AMIGA_PORTS, ata_sff_interrupt, host 251 drivers/ata/pata_buddha.c struct ata_host *host = dev_get_drvdata(&z->dev); host 253 drivers/ata/pata_buddha.c ata_host_detach(host); host 55 drivers/ata/pata_cmd640.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 133 drivers/ata/pata_cmd640.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 153 drivers/ata/pata_cmd640.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 166 drivers/ata/pata_cmd640.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 238 drivers/ata/pata_cmd640.c struct ata_host *host = pci_get_drvdata(pdev); host 245 drivers/ata/pata_cmd640.c ata_host_resume(host); host 75 drivers/ata/pata_cmd64x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 96 drivers/ata/pata_cmd64x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 197 drivers/ata/pata_cmd64x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 241 drivers/ata/pata_cmd64x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 261 drivers/ata/pata_cmd64x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 280 drivers/ata/pata_cmd64x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 297 drivers/ata/pata_cmd64x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 494 drivers/ata/pata_cmd64x.c struct ata_host *host = pci_get_drvdata(pdev); host 503 drivers/ata/pata_cmd64x.c ata_host_resume(host); host 62 drivers/ata/pata_cs5520.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 120 drivers/ata/pata_cs5520.c struct ata_host *host; host 148 drivers/ata/pata_cs5520.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, 2); host 149 drivers/ata/pata_cs5520.c if (!host) host 173 drivers/ata/pata_cs5520.c ioaddr = &host->ports[0]->ioaddr; host 180 drivers/ata/pata_cs5520.c ata_port_desc(host->ports[0], host 182 drivers/ata/pata_cs5520.c ata_port_pbar_desc(host->ports[0], 4, 0, "bmdma"); host 184 drivers/ata/pata_cs5520.c ioaddr = &host->ports[1]->ioaddr; host 191 drivers/ata/pata_cs5520.c ata_port_desc(host->ports[1], host 193 drivers/ata/pata_cs5520.c ata_port_pbar_desc(host->ports[1], 4, 8, "bmdma"); host 197 drivers/ata/pata_cs5520.c rc = ata_host_start(host); host 203 drivers/ata/pata_cs5520.c struct ata_port *ap = host->ports[i]; host 209 drivers/ata/pata_cs5520.c ata_bmdma_interrupt, 0, DRV_NAME, host); host 216 drivers/ata/pata_cs5520.c return ata_host_register(host, &cs5520_sht); host 230 drivers/ata/pata_cs5520.c struct ata_host *host = pci_get_drvdata(pdev); host 242 drivers/ata/pata_cs5520.c ata_host_resume(host); host 258 drivers/ata/pata_cs5520.c struct ata_host *host = pci_get_drvdata(pdev); host 261 drivers/ata/pata_cs5520.c rc = ata_host_suspend(host, mesg); host 318 drivers/ata/pata_cs5530.c struct ata_host *host = pci_get_drvdata(pdev); host 329 drivers/ata/pata_cs5530.c ata_host_resume(host); host 68 drivers/ata/pata_cs5535.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 110 drivers/ata/pata_cs5536.c struct pci_dev *pdev = to_pci_dev(adev->link->ap->host->dev); host 131 drivers/ata/pata_cs5536.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 162 drivers/ata/pata_cs5536.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 202 drivers/ata/pata_cs5536.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 54 drivers/ata/pata_cypress.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 44 drivers/ata/pata_efar.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 62 drivers/ata/pata_efar.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 87 drivers/ata/pata_efar.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 160 drivers/ata/pata_efar.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 333 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 360 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 367 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 376 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 417 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 449 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 459 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 472 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 483 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 523 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 552 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 615 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 705 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = qc->ap->host->private_data; host 745 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = qc->ap->host->private_data; host 773 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 852 drivers/ata/pata_ep93xx.c drv_data = ap->host->private_data; host 866 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = ap->host->private_data; host 917 drivers/ata/pata_ep93xx.c struct ata_host *host; host 955 drivers/ata/pata_ep93xx.c host = ata_host_alloc(&pdev->dev, 1); host 956 drivers/ata/pata_ep93xx.c if (!host) { host 963 drivers/ata/pata_ep93xx.c host->private_data = drv_data; host 965 drivers/ata/pata_ep93xx.c ap = host->ports[0]; host 997 drivers/ata/pata_ep93xx.c err = ata_host_activate(host, irq, ata_bmdma_interrupt, 0, host 1011 drivers/ata/pata_ep93xx.c struct ata_host *host = platform_get_drvdata(pdev); host 1012 drivers/ata/pata_ep93xx.c struct ep93xx_pata_data *drv_data = host->private_data; host 1014 drivers/ata/pata_ep93xx.c ata_host_detach(host); host 125 drivers/ata/pata_falcon.c struct ata_host *host; host 145 drivers/ata/pata_falcon.c host = ata_host_alloc(&pdev->dev, 1); host 146 drivers/ata/pata_falcon.c if (!host) host 148 drivers/ata/pata_falcon.c ap = host->ports[0]; host 174 drivers/ata/pata_falcon.c return ata_host_activate(host, 0, NULL, 0, &pata_falcon_sht); host 46 drivers/ata/pata_ftide010.c struct ata_host *host; host 143 drivers/ata/pata_ftide010.c struct ftide010 *ftide = ap->host->private_data; host 222 drivers/ata/pata_ftide010.c struct ftide010 *ftide = ap->host->private_data; host 272 drivers/ata/pata_ftide010.c struct ftide010 *ftide = ap->host->private_data; host 315 drivers/ata/pata_ftide010.c struct ftide010 *ftide = ap->host->private_data; host 341 drivers/ata/pata_ftide010.c struct ftide010 *ftide = ap->host->private_data; host 510 drivers/ata/pata_ftide010.c ftide->host = ata_host_alloc_pinfo(dev, ppi, 1); host 511 drivers/ata/pata_ftide010.c if (!ftide->host) { host 515 drivers/ata/pata_ftide010.c ftide->host->private_data = ftide; host 517 drivers/ata/pata_ftide010.c for (i = 0; i < ftide->host->n_ports; i++) { host 518 drivers/ata/pata_ftide010.c struct ata_port *ap = ftide->host->ports[i]; host 531 drivers/ata/pata_ftide010.c ret = ata_host_activate(ftide->host, irq, ata_bmdma_interrupt, host 546 drivers/ata/pata_ftide010.c struct ata_host *host = platform_get_drvdata(pdev); host 547 drivers/ata/pata_ftide010.c struct ftide010 *ftide = host->private_data; host 549 drivers/ata/pata_ftide010.c ata_host_detach(ftide->host); host 132 drivers/ata/pata_gayle.c struct ata_host *host; host 153 drivers/ata/pata_gayle.c host = ata_host_alloc(&pdev->dev, 1); host 154 drivers/ata/pata_gayle.c if (!host) host 157 drivers/ata/pata_gayle.c ap = host->ports[0]; host 187 drivers/ata/pata_gayle.c ret = ata_host_activate(host, IRQ_AMIGA_PORTS, ata_sff_interrupt, host 192 drivers/ata/pata_gayle.c platform_set_drvdata(pdev, host); host 199 drivers/ata/pata_gayle.c struct ata_host *host = platform_get_drvdata(pdev); host 201 drivers/ata/pata_gayle.c ata_host_detach(host); host 125 drivers/ata/pata_hpt366.c struct hpt_clock *clocks = ap->host->private_data; host 216 drivers/ata/pata_hpt366.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 232 drivers/ata/pata_hpt366.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 390 drivers/ata/pata_hpt366.c struct ata_host *host = pci_get_drvdata(dev); host 397 drivers/ata/pata_hpt366.c ata_host_resume(host); host 213 drivers/ata/pata_hpt37x.c struct hpt_clock *clocks = ap->host->private_data; host 334 drivers/ata/pata_hpt37x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 362 drivers/ata/pata_hpt37x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 392 drivers/ata/pata_hpt37x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 411 drivers/ata/pata_hpt37x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 475 drivers/ata/pata_hpt37x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 505 drivers/ata/pata_hpt37x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 569 drivers/ata/pata_hpt37x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 143 drivers/ata/pata_hpt3x2n.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 173 drivers/ata/pata_hpt3x2n.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 185 drivers/ata/pata_hpt3x2n.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 249 drivers/ata/pata_hpt3x2n.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 302 drivers/ata/pata_hpt3x2n.c long flags = (long)ap->host->private_data; host 315 drivers/ata/pata_hpt3x2n.c struct ata_port *alt = ap->host->ports[ap->port_no ^ 1]; host 316 drivers/ata/pata_hpt3x2n.c int rc, flags = (long)ap->host->private_data; host 332 drivers/ata/pata_hpt3x2n.c int flags = (long)ap->host->private_data; host 338 drivers/ata/pata_hpt3x2n.c ap->host->private_data = (void *)(long)flags; host 39 drivers/ata/pata_hpt3x3.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 69 drivers/ata/pata_hpt3x3.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 201 drivers/ata/pata_hpt3x3.c struct ata_host *host; host 209 drivers/ata/pata_hpt3x3.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, 2); host 210 drivers/ata/pata_hpt3x3.c if (!host) host 223 drivers/ata/pata_hpt3x3.c host->iomap = pcim_iomap_table(pdev); host 228 drivers/ata/pata_hpt3x3.c base = host->iomap[4]; /* Bus mastering base */ host 230 drivers/ata/pata_hpt3x3.c for (i = 0; i < host->n_ports; i++) { host 231 drivers/ata/pata_hpt3x3.c struct ata_port *ap = host->ports[i]; host 245 drivers/ata/pata_hpt3x3.c return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, host 252 drivers/ata/pata_hpt3x3.c struct ata_host *host = pci_get_drvdata(dev); host 261 drivers/ata/pata_hpt3x3.c ata_host_resume(host); host 190 drivers/ata/pata_icside.c struct pata_icside_state *state = ap->host->private_data; host 223 drivers/ata/pata_icside.c struct pata_icside_state *state = ap->host->private_data; host 248 drivers/ata/pata_icside.c struct pata_icside_state *state = ap->host->private_data; host 257 drivers/ata/pata_icside.c struct pata_icside_state *state = ap->host->private_data; host 267 drivers/ata/pata_icside.c struct pata_icside_state *state = ap->host->private_data; host 305 drivers/ata/pata_icside.c struct pata_icside_state *state = ap->host->private_data; host 440 drivers/ata/pata_icside.c struct ata_host *host; host 455 drivers/ata/pata_icside.c host = ata_host_alloc(&ec->dev, info->nr_ports); host 456 drivers/ata/pata_icside.c if (!host) host 459 drivers/ata/pata_icside.c host->private_data = info->state; host 460 drivers/ata/pata_icside.c host->flags = ATA_HOST_SIMPLEX; host 463 drivers/ata/pata_icside.c struct ata_port *ap = host->ports[i]; host 473 drivers/ata/pata_icside.c return ata_host_activate(host, ec->irq, ata_bmdma_interrupt, 0, host 554 drivers/ata/pata_icside.c struct ata_host *host = ecard_get_drvdata(ec); host 571 drivers/ata/pata_icside.c if (host) { host 572 drivers/ata/pata_icside.c struct pata_icside_state *state = host->private_data; host 580 drivers/ata/pata_icside.c struct ata_host *host = ecard_get_drvdata(ec); host 581 drivers/ata/pata_icside.c struct pata_icside_state *state = host->private_data; host 583 drivers/ata/pata_icside.c ata_host_detach(host); host 87 drivers/ata/pata_imx.c struct pata_imx_priv *priv = ap->host->private_data; host 128 drivers/ata/pata_imx.c struct ata_host *host; host 154 drivers/ata/pata_imx.c host = ata_host_alloc(&pdev->dev, 1); host 155 drivers/ata/pata_imx.c if (!host) { host 160 drivers/ata/pata_imx.c host->private_data = priv; host 161 drivers/ata/pata_imx.c ap = host->ports[0]; host 194 drivers/ata/pata_imx.c ret = ata_host_activate(host, irq, ata_sff_interrupt, 0, host 209 drivers/ata/pata_imx.c struct ata_host *host = platform_get_drvdata(pdev); host 210 drivers/ata/pata_imx.c struct pata_imx_priv *priv = host->private_data; host 212 drivers/ata/pata_imx.c ata_host_detach(host); host 224 drivers/ata/pata_imx.c struct ata_host *host = dev_get_drvdata(dev); host 225 drivers/ata/pata_imx.c struct pata_imx_priv *priv = host->private_data; host 228 drivers/ata/pata_imx.c ret = ata_host_suspend(host, PMSG_SUSPEND); host 241 drivers/ata/pata_imx.c struct ata_host *host = dev_get_drvdata(dev); host 242 drivers/ata/pata_imx.c struct pata_imx_priv *priv = host->private_data; host 253 drivers/ata/pata_imx.c ata_host_resume(host); host 50 drivers/ata/pata_isapnp.c struct ata_host *host; host 65 drivers/ata/pata_isapnp.c host = ata_host_alloc(&idev->dev, 1); host 66 drivers/ata/pata_isapnp.c if (!host) host 74 drivers/ata/pata_isapnp.c ap = host->ports[0]; host 97 drivers/ata/pata_isapnp.c return ata_host_activate(host, irq, handler, 0, host 112 drivers/ata/pata_isapnp.c struct ata_host *host = dev_get_drvdata(dev); host 114 drivers/ata/pata_isapnp.c ata_host_detach(host); host 39 drivers/ata/pata_it8213.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 56 drivers/ata/pata_it8213.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 78 drivers/ata/pata_it8213.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 142 drivers/ata/pata_it8213.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 128 drivers/ata/pata_it821x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 157 drivers/ata/pata_it821x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 187 drivers/ata/pata_it821x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 292 drivers/ata/pata_it821x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 737 drivers/ata/pata_it821x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 791 drivers/ata/pata_it821x.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 941 drivers/ata/pata_it821x.c struct ata_host *host = pci_get_drvdata(pdev); host 950 drivers/ata/pata_it821x.c ata_host_resume(host); host 47 drivers/ata/pata_ixp4xx_cf.c struct ixp4xx_pata_data *data = dev_get_platdata(ap->host->dev); host 140 drivers/ata/pata_ixp4xx_cf.c struct ata_host *host; host 152 drivers/ata/pata_ixp4xx_cf.c host = ata_host_alloc(&pdev->dev, 1); host 153 drivers/ata/pata_ixp4xx_cf.c if (!host) host 175 drivers/ata/pata_ixp4xx_cf.c ap = host->ports[0]; host 186 drivers/ata/pata_ixp4xx_cf.c return ata_host_activate(host, irq, ata_sff_interrupt, 0, &ixp4xx_sht); host 45 drivers/ata/pata_jmicron.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 587 drivers/ata/pata_legacy.c ap->host->private_data = ap; host 612 drivers/ata/pata_legacy.c if (ap->host->private_data != ap->host host 613 drivers/ata/pata_legacy.c && ap->host->private_data != NULL) host 641 drivers/ata/pata_legacy.c struct legacy_data *ld_qdi = ap->host->private_data; host 680 drivers/ata/pata_legacy.c struct legacy_data *ld_qdi = ap->host->private_data; host 778 drivers/ata/pata_legacy.c struct legacy_data *ld_winbond = ap->host->private_data; host 940 drivers/ata/pata_legacy.c struct ata_host *host = NULL; host 969 drivers/ata/pata_legacy.c host = ata_host_alloc(&pdev->dev, 1); host 970 drivers/ata/pata_legacy.c if (!host) host 972 drivers/ata/pata_legacy.c ap = host->ports[0]; host 982 drivers/ata/pata_legacy.c ap->host->private_data = ld; host 986 drivers/ata/pata_legacy.c ret = ata_host_activate(host, probe->irq, ata_sff_interrupt, 0, host 998 drivers/ata/pata_legacy.c legacy_host[probe->slot] = host; host 1003 drivers/ata/pata_legacy.c ata_host_detach(host); host 241 drivers/ata/pata_macio.c struct ata_host *host; host 799 drivers/ata/pata_macio.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 857 drivers/ata/pata_macio.c rc = ata_host_suspend(priv->host, mesg); host 902 drivers/ata/pata_macio.c pata_macio_apply_timings(priv->host->ports[0], 0); host 908 drivers/ata/pata_macio.c ata_host_resume(priv->host); host 1059 drivers/ata/pata_macio.c priv->host = ata_host_alloc_pinfo(priv->dev, ppi, 1); host 1060 drivers/ata/pata_macio.c if (priv->host == NULL) { host 1066 drivers/ata/pata_macio.c priv->host->private_data = priv; host 1074 drivers/ata/pata_macio.c priv->host->iomap = &priv->tfregs; host 1094 drivers/ata/pata_macio.c pata_macio_setup_ios(&priv->host->ports[0]->ioaddr, host 1096 drivers/ata/pata_macio.c priv->host->ports[0]->private_data = priv; host 1100 drivers/ata/pata_macio.c pata_macio_apply_timings(priv->host->ports[0], 0); host 1111 drivers/ata/pata_macio.c return ata_host_activate(priv->host, irq, ata_bmdma_interrupt, 0, host 1192 drivers/ata/pata_macio.c struct ata_host *host = macio_get_drvdata(mdev); host 1193 drivers/ata/pata_macio.c struct pata_macio_priv *priv = host->private_data; host 1200 drivers/ata/pata_macio.c priv->host->private_data = NULL; host 1202 drivers/ata/pata_macio.c ata_host_detach(host); host 1212 drivers/ata/pata_macio.c struct ata_host *host = macio_get_drvdata(mdev); host 1214 drivers/ata/pata_macio.c return pata_macio_do_suspend(host->private_data, mesg); host 1219 drivers/ata/pata_macio.c struct ata_host *host = macio_get_drvdata(mdev); host 1221 drivers/ata/pata_macio.c return pata_macio_do_resume(host->private_data); host 1228 drivers/ata/pata_macio.c struct ata_host *host = macio_get_drvdata(mdev); host 1234 drivers/ata/pata_macio.c if (!host || !host->private_data) host 1236 drivers/ata/pata_macio.c ap = host->ports[0]; host 1308 drivers/ata/pata_macio.c struct ata_host *host = pci_get_drvdata(pdev); host 1310 drivers/ata/pata_macio.c ata_host_detach(host); host 1316 drivers/ata/pata_macio.c struct ata_host *host = pci_get_drvdata(pdev); host 1318 drivers/ata/pata_macio.c return pata_macio_do_suspend(host->private_data, mesg); host 1323 drivers/ata/pata_macio.c struct ata_host *host = pci_get_drvdata(pdev); host 1325 drivers/ata/pata_macio.c return pata_macio_do_resume(host->private_data); host 71 drivers/ata/pata_marvell.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 392 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = ap->host->private_data; host 410 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = ap->host->private_data; host 434 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = ap->host->private_data; host 446 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = ap->host->private_data; host 502 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = ap->host->private_data; host 559 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = ap->host->private_data; host 569 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = ap->host->private_data; host 584 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = ap->host->private_data; host 629 drivers/ata/pata_mpc52xx.c struct ata_host *host; host 633 drivers/ata/pata_mpc52xx.c host = ata_host_alloc(dev, 1); host 634 drivers/ata/pata_mpc52xx.c if (!host) host 637 drivers/ata/pata_mpc52xx.c ap = host->ports[0]; host 643 drivers/ata/pata_mpc52xx.c host->private_data = priv; host 663 drivers/ata/pata_mpc52xx.c return ata_host_activate(host, priv->ata_irq, ata_bmdma_interrupt, 0, host 805 drivers/ata/pata_mpc52xx.c struct ata_host *host = platform_get_drvdata(op); host 806 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = host->private_data; host 825 drivers/ata/pata_mpc52xx.c struct ata_host *host = platform_get_drvdata(op); host 827 drivers/ata/pata_mpc52xx.c return ata_host_suspend(host, state); host 833 drivers/ata/pata_mpc52xx.c struct ata_host *host = platform_get_drvdata(op); host 834 drivers/ata/pata_mpc52xx.c struct mpc52xx_ata_priv *priv = host->private_data; host 839 drivers/ata/pata_mpc52xx.c dev_err(host->dev, "error initializing hardware\n"); host 843 drivers/ata/pata_mpc52xx.c ata_host_resume(host); host 52 drivers/ata/pata_mpiix.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 80 drivers/ata/pata_mpiix.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 155 drivers/ata/pata_mpiix.c struct ata_host *host; host 163 drivers/ata/pata_mpiix.c host = ata_host_alloc(&dev->dev, 1); host 164 drivers/ata/pata_mpiix.c if (!host) host 166 drivers/ata/pata_mpiix.c ap = host->ports[0]; host 212 drivers/ata/pata_mpiix.c return ata_host_activate(host, irq, ata_sff_interrupt, IRQF_SHARED, host 105 drivers/ata/pata_ninja32.c struct ata_host *host; host 110 drivers/ata/pata_ninja32.c host = ata_host_alloc(&dev->dev, 1); host 111 drivers/ata/pata_ninja32.c if (!host) host 113 drivers/ata/pata_ninja32.c ap = host->ports[0]; host 125 drivers/ata/pata_ninja32.c host->iomap = pcim_iomap_table(dev); host 133 drivers/ata/pata_ninja32.c base = host->iomap[0]; host 149 drivers/ata/pata_ninja32.c return ata_host_activate(host, dev->irq, ata_bmdma_interrupt, host 156 drivers/ata/pata_ninja32.c struct ata_host *host = pci_get_drvdata(pdev); host 162 drivers/ata/pata_ninja32.c ninja32_program(host->iomap[0]); host 163 drivers/ata/pata_ninja32.c ata_host_resume(host); host 29 drivers/ata/pata_ns87410.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 52 drivers/ata/pata_ns87410.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 55 drivers/ata/pata_ns87415.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 392 drivers/ata/pata_ns87415.c struct ata_host *host = pci_get_drvdata(pdev); host 401 drivers/ata/pata_ns87415.c ata_host_resume(host); host 673 drivers/ata/pata_octeon_cf.c struct ata_host *host = dev_instance; host 679 drivers/ata/pata_octeon_cf.c spin_lock_irqsave(&host->lock, flags); host 682 drivers/ata/pata_octeon_cf.c for (i = 0; i < host->n_ports; i++) { host 689 drivers/ata/pata_octeon_cf.c ap = host->ports[i]; host 734 drivers/ata/pata_octeon_cf.c spin_unlock_irqrestore(&host->lock, flags); host 745 drivers/ata/pata_octeon_cf.c struct ata_host *host = ap->host; host 751 drivers/ata/pata_octeon_cf.c spin_lock_irqsave(&host->lock, flags); host 773 drivers/ata/pata_octeon_cf.c spin_unlock_irqrestore(&host->lock, flags); host 845 drivers/ata/pata_octeon_cf.c struct ata_host *host; host 934 drivers/ata/pata_octeon_cf.c host = ata_host_alloc(&pdev->dev, 1); host 935 drivers/ata/pata_octeon_cf.c if (!host) host 938 drivers/ata/pata_octeon_cf.c ap = host->ports[0]; host 1005 drivers/ata/pata_octeon_cf.c return ata_host_activate(host, irq, irq_handler, host 41 drivers/ata/pata_oldpiix.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 67 drivers/ata/pata_oldpiix.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 128 drivers/ata/pata_oldpiix.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 57 drivers/ata/pata_opti.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 58 drivers/ata/pata_optidma.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 203 drivers/ata/pata_optidma.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 323 drivers/ata/pata_optidma.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 33 drivers/ata/pata_palmld.c struct ata_host *host; host 61 drivers/ata/pata_palmld.c lda->host = ata_host_alloc(dev, 1); host 62 drivers/ata/pata_palmld.c if (!lda->host) host 87 drivers/ata/pata_palmld.c ap = lda->host->ports[0]; host 101 drivers/ata/pata_palmld.c ret = ata_host_activate(lda->host, 0, NULL, IRQF_TRIGGER_RISING, host 188 drivers/ata/pata_pcmcia.c struct ata_host *host; host 248 drivers/ata/pata_pcmcia.c host = ata_host_alloc(&pdev->dev, n_ports); host 249 drivers/ata/pata_pcmcia.c if (!host) host 253 drivers/ata/pata_pcmcia.c ap = host->ports[p]; host 267 drivers/ata/pata_pcmcia.c ret = ata_host_activate(host, pdev->irq, ata_sff_interrupt, host 272 drivers/ata/pata_pcmcia.c pdev->priv = host; host 290 drivers/ata/pata_pcmcia.c struct ata_host *host = pdev->priv; host 292 drivers/ata/pata_pcmcia.c if (host) host 293 drivers/ata/pata_pcmcia.c ata_host_detach(host); host 183 drivers/ata/pata_pdc2027x.c return ap->host->iomap[PDC_MMIO_BAR] + ap->port_no * 0x100 + offset; host 471 drivers/ata/pata_pdc2027x.c static long pdc_read_counter(struct ata_host *host) host 473 drivers/ata/pata_pdc2027x.c void __iomem *mmio_base = host->iomap[PDC_MMIO_BAR]; host 512 drivers/ata/pata_pdc2027x.c static void pdc_adjust_pll(struct ata_host *host, long pll_clock, unsigned int board_idx) host 514 drivers/ata/pata_pdc2027x.c void __iomem *mmio_base = host->iomap[PDC_MMIO_BAR]; host 598 drivers/ata/pata_pdc2027x.c static long pdc_detect_pll_input_clock(struct ata_host *host) host 600 drivers/ata/pata_pdc2027x.c void __iomem *mmio_base = host->iomap[PDC_MMIO_BAR]; host 613 drivers/ata/pata_pdc2027x.c start_count = pdc_read_counter(host); host 620 drivers/ata/pata_pdc2027x.c end_count = pdc_read_counter(host); host 646 drivers/ata/pata_pdc2027x.c static void pdc_hardware_init(struct ata_host *host, unsigned int board_idx) host 656 drivers/ata/pata_pdc2027x.c pll_clock = pdc_detect_pll_input_clock(host); host 658 drivers/ata/pata_pdc2027x.c dev_info(host->dev, "PLL input clock %ld kHz\n", pll_clock/1000); host 661 drivers/ata/pata_pdc2027x.c pdc_adjust_pll(host, pll_clock, board_idx); host 704 drivers/ata/pata_pdc2027x.c struct ata_host *host; host 711 drivers/ata/pata_pdc2027x.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, 2); host 712 drivers/ata/pata_pdc2027x.c if (!host) host 723 drivers/ata/pata_pdc2027x.c host->iomap = pcim_iomap_table(pdev); host 729 drivers/ata/pata_pdc2027x.c mmio_base = host->iomap[PDC_MMIO_BAR]; host 732 drivers/ata/pata_pdc2027x.c struct ata_port *ap = host->ports[i]; host 744 drivers/ata/pata_pdc2027x.c pdc_hardware_init(host, board_idx); host 747 drivers/ata/pata_pdc2027x.c return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, host 754 drivers/ata/pata_pdc2027x.c struct ata_host *host = pci_get_drvdata(pdev); host 768 drivers/ata/pata_pdc2027x.c pdc_hardware_init(host, board_idx); host 770 drivers/ata/pata_pdc2027x.c ata_host_resume(host); host 29 drivers/ata/pata_pdc202xx_old.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 49 drivers/ata/pata_pdc202xx_old.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 81 drivers/ata/pata_pdc202xx_old.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 128 drivers/ata/pata_pdc202xx_old.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 184 drivers/ata/pata_pdc202xx_old.c void __iomem *master = ap->host->ports[0]->ioaddr.bmdma_addr; host 235 drivers/ata/pata_pdc202xx_old.c void __iomem *master = ap->host->ports[0]->ioaddr.bmdma_addr; host 36 drivers/ata/pata_piccolo.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 46 drivers/ata/pata_piccolo.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 100 drivers/ata/pata_platform.c struct ata_host *host; host 123 drivers/ata/pata_platform.c host = ata_host_alloc(dev, 1); host 124 drivers/ata/pata_platform.c if (!host) host 126 drivers/ata/pata_platform.c ap = host->ports[0]; host 176 drivers/ata/pata_platform.c return ata_host_activate(host, irq, irq ? ata_sff_interrupt : NULL, host 159 drivers/ata/pata_pxa.c struct ata_host *host; host 213 drivers/ata/pata_pxa.c host = ata_host_alloc(&pdev->dev, 1); host 214 drivers/ata/pata_pxa.c if (!host) host 217 drivers/ata/pata_pxa.c ap = host->ports[0]; host 288 drivers/ata/pata_pxa.c ret = ata_host_activate(host, irq_res->start, ata_sff_interrupt, host 298 drivers/ata/pata_pxa.c struct ata_host *host = platform_get_drvdata(pdev); host 299 drivers/ata/pata_pxa.c struct pata_pxa_data *data = host->ports[0]->private_data; host 303 drivers/ata/pata_pxa.c ata_host_detach(host); host 43 drivers/ata/pata_radisys.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 93 drivers/ata/pata_radisys.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 42 drivers/ata/pata_rdc.c struct rdc_host_priv *hpriv = ap->host->private_data; host 63 drivers/ata/pata_rdc.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 91 drivers/ata/pata_rdc.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 172 drivers/ata/pata_rdc.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 315 drivers/ata/pata_rdc.c struct ata_host *host; host 338 drivers/ata/pata_rdc.c rc = ata_pci_bmdma_prepare_host(pdev, ppi, &host); host 341 drivers/ata/pata_rdc.c host->private_data = hpriv; host 345 drivers/ata/pata_rdc.c host->flags |= ATA_HOST_PARALLEL_SCAN; host 348 drivers/ata/pata_rdc.c return ata_pci_sff_activate_host(host, ata_bmdma_interrupt, &rdc_sht); host 353 drivers/ata/pata_rdc.c struct ata_host *host = pci_get_drvdata(pdev); host 354 drivers/ata/pata_rdc.c struct rdc_host_priv *hpriv = host->private_data; host 108 drivers/ata/pata_rz1000.c struct ata_host *host = pci_get_drvdata(pdev); host 120 drivers/ata/pata_rz1000.c ata_host_resume(host); host 105 drivers/ata/pata_samsung_cf.c struct s3c_ide_info *info = ap->host->private_data; host 149 drivers/ata/pata_samsung_cf.c static void ata_outb(struct ata_host *host, u8 addr, void __iomem *reg) host 151 drivers/ata/pata_samsung_cf.c struct s3c_ide_info *info = host->private_data; host 160 drivers/ata/pata_samsung_cf.c static u8 ata_inb(struct ata_host *host, void __iomem *reg) host 162 drivers/ata/pata_samsung_cf.c struct s3c_ide_info *info = host->private_data; host 182 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->ctl, ioaddr->ctl_addr); host 188 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->hob_feature, ioaddr->feature_addr); host 189 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->hob_nsect, ioaddr->nsect_addr); host 190 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->hob_lbal, ioaddr->lbal_addr); host 191 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->hob_lbam, ioaddr->lbam_addr); host 192 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->hob_lbah, ioaddr->lbah_addr); host 196 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->feature, ioaddr->feature_addr); host 197 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->nsect, ioaddr->nsect_addr); host 198 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->lbal, ioaddr->lbal_addr); host 199 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->lbam, ioaddr->lbam_addr); host 200 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->lbah, ioaddr->lbah_addr); host 204 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->device, ioaddr->device_addr); host 216 drivers/ata/pata_samsung_cf.c tf->feature = ata_inb(ap->host, ioaddr->error_addr); host 217 drivers/ata/pata_samsung_cf.c tf->nsect = ata_inb(ap->host, ioaddr->nsect_addr); host 218 drivers/ata/pata_samsung_cf.c tf->lbal = ata_inb(ap->host, ioaddr->lbal_addr); host 219 drivers/ata/pata_samsung_cf.c tf->lbam = ata_inb(ap->host, ioaddr->lbam_addr); host 220 drivers/ata/pata_samsung_cf.c tf->lbah = ata_inb(ap->host, ioaddr->lbah_addr); host 221 drivers/ata/pata_samsung_cf.c tf->device = ata_inb(ap->host, ioaddr->device_addr); host 224 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->ctl | ATA_HOB, ioaddr->ctl_addr); host 225 drivers/ata/pata_samsung_cf.c tf->hob_feature = ata_inb(ap->host, ioaddr->error_addr); host 226 drivers/ata/pata_samsung_cf.c tf->hob_nsect = ata_inb(ap->host, ioaddr->nsect_addr); host 227 drivers/ata/pata_samsung_cf.c tf->hob_lbal = ata_inb(ap->host, ioaddr->lbal_addr); host 228 drivers/ata/pata_samsung_cf.c tf->hob_lbam = ata_inb(ap->host, ioaddr->lbam_addr); host 229 drivers/ata/pata_samsung_cf.c tf->hob_lbah = ata_inb(ap->host, ioaddr->lbah_addr); host 230 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->ctl, ioaddr->ctl_addr); host 241 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tf->command, ap->ioaddr.command_addr); host 250 drivers/ata/pata_samsung_cf.c return ata_inb(ap->host, ap->ioaddr.status_addr); host 258 drivers/ata/pata_samsung_cf.c return ata_inb(ap->host, ap->ioaddr.altstatus_addr); host 268 drivers/ata/pata_samsung_cf.c struct s3c_ide_info *info = ap->host->private_data; host 304 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, tmp, ap->ioaddr.device_addr); host 319 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, 0x55, ioaddr->nsect_addr); host 320 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, 0xaa, ioaddr->lbal_addr); host 322 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, 0xaa, ioaddr->nsect_addr); host 323 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, 0x55, ioaddr->lbal_addr); host 325 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, 0x55, ioaddr->nsect_addr); host 326 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, 0xaa, ioaddr->lbal_addr); host 328 drivers/ata/pata_samsung_cf.c nsect = ata_inb(ap->host, ioaddr->nsect_addr); host 329 drivers/ata/pata_samsung_cf.c lbal = ata_inb(ap->host, ioaddr->lbal_addr); host 367 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, ap->ctl, ioaddr->ctl_addr); host 369 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, ap->ctl | ATA_SRST, ioaddr->ctl_addr); host 371 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, ap->ctl, ioaddr->ctl_addr); host 415 drivers/ata/pata_samsung_cf.c ata_outb(ap->host, ctl, ap->ioaddr.ctl_addr); host 450 drivers/ata/pata_samsung_cf.c struct ata_host *host = dev_instance; host 451 drivers/ata/pata_samsung_cf.c struct s3c_ide_info *info = host->private_data; host 499 drivers/ata/pata_samsung_cf.c struct ata_host *host; host 528 drivers/ata/pata_samsung_cf.c host = ata_host_alloc(dev, 1); host 529 drivers/ata/pata_samsung_cf.c if (!host) { host 535 drivers/ata/pata_samsung_cf.c ap = host->ports[0]; host 573 drivers/ata/pata_samsung_cf.c host->private_data = info; host 581 drivers/ata/pata_samsung_cf.c ret = ata_host_activate(host, info->irq, host 596 drivers/ata/pata_samsung_cf.c struct ata_host *host = platform_get_drvdata(pdev); host 597 drivers/ata/pata_samsung_cf.c struct s3c_ide_info *info = host->private_data; host 599 drivers/ata/pata_samsung_cf.c ata_host_detach(host); host 609 drivers/ata/pata_samsung_cf.c struct ata_host *host = dev_get_drvdata(dev); host 611 drivers/ata/pata_samsung_cf.c return ata_host_suspend(host, PMSG_SUSPEND); host 616 drivers/ata/pata_samsung_cf.c struct ata_host *host = dev_get_drvdata(dev); host 618 drivers/ata/pata_samsung_cf.c struct s3c_ide_info *info = host->private_data; host 621 drivers/ata/pata_samsung_cf.c ata_host_resume(host); host 85 drivers/ata/pata_sc1200.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 121 drivers/ata/pata_sc1200.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 179 drivers/ata/pata_sc1200.c struct ata_host *host = qc->ap->host; host 180 drivers/ata/pata_sc1200.c struct ata_port *alt = host->ports[1 ^ qc->ap->port_no]; host 99 drivers/ata/pata_sch.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 128 drivers/ata/pata_sch.c struct pci_dev *dev = to_pci_dev(ap->host->dev); host 70 drivers/ata/pata_serverworks.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 105 drivers/ata/pata_serverworks.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 203 drivers/ata/pata_serverworks.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 234 drivers/ata/pata_serverworks.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 452 drivers/ata/pata_serverworks.c struct ata_host *host = pci_get_drvdata(pdev); host 461 drivers/ata/pata_serverworks.c ata_host_resume(host); host 86 drivers/ata/pata_sil680.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 118 drivers/ata/pata_sil680.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 166 drivers/ata/pata_sil680.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 221 drivers/ata/pata_sil680.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 342 drivers/ata/pata_sil680.c struct ata_host *host; host 371 drivers/ata/pata_sil680.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, 2); host 372 drivers/ata/pata_sil680.c if (!host) host 374 drivers/ata/pata_sil680.c host->iomap = pcim_iomap_table(pdev); host 383 drivers/ata/pata_sil680.c mmio_base = host->iomap[SIL680_MMIO_BAR]; host 384 drivers/ata/pata_sil680.c host->ports[0]->ioaddr.bmdma_addr = mmio_base + 0x00; host 385 drivers/ata/pata_sil680.c host->ports[0]->ioaddr.cmd_addr = mmio_base + 0x80; host 386 drivers/ata/pata_sil680.c host->ports[0]->ioaddr.ctl_addr = mmio_base + 0x8a; host 387 drivers/ata/pata_sil680.c host->ports[0]->ioaddr.altstatus_addr = mmio_base + 0x8a; host 388 drivers/ata/pata_sil680.c ata_sff_std_ports(&host->ports[0]->ioaddr); host 389 drivers/ata/pata_sil680.c host->ports[1]->ioaddr.bmdma_addr = mmio_base + 0x08; host 390 drivers/ata/pata_sil680.c host->ports[1]->ioaddr.cmd_addr = mmio_base + 0xc0; host 391 drivers/ata/pata_sil680.c host->ports[1]->ioaddr.ctl_addr = mmio_base + 0xca; host 392 drivers/ata/pata_sil680.c host->ports[1]->ioaddr.altstatus_addr = mmio_base + 0xca; host 393 drivers/ata/pata_sil680.c ata_sff_std_ports(&host->ports[1]->ioaddr); host 396 drivers/ata/pata_sil680.c return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, host 406 drivers/ata/pata_sil680.c struct ata_host *host = pci_get_drvdata(pdev); host 413 drivers/ata/pata_sil680.c ata_host_resume(host); host 102 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 125 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 145 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 173 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 197 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 229 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 266 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 291 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 339 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 378 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 417 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 451 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 484 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 531 drivers/ata/pata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 726 drivers/ata/pata_sis.c struct pci_dev *host = NULL; host 786 drivers/ata/pata_sis.c host = pci_get_device(PCI_VENDOR_ID_SI, sets->device, NULL); host 787 drivers/ata/pata_sis.c if (host != NULL) { host 790 drivers/ata/pata_sis.c if (host->revision >= 0x30) /* 630 ET */ host 860 drivers/ata/pata_sis.c pci_dev_put(host); host 876 drivers/ata/pata_sis.c struct ata_host *host = pci_get_drvdata(pdev); host 883 drivers/ata/pata_sis.c sis_fixup(pdev, host->private_data); host 885 drivers/ata/pata_sis.c ata_host_resume(host); host 59 drivers/ata/pata_sl82c105.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 80 drivers/ata/pata_sl82c105.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 117 drivers/ata/pata_sl82c105.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 142 drivers/ata/pata_sl82c105.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 215 drivers/ata/pata_sl82c105.c struct ata_host *host = qc->ap->host; host 216 drivers/ata/pata_sl82c105.c struct ata_port *alt = host->ports[1 ^ qc->ap->port_no]; host 233 drivers/ata/pata_sl82c105.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 344 drivers/ata/pata_sl82c105.c struct ata_host *host = pci_get_drvdata(pdev); host 353 drivers/ata/pata_sl82c105.c ata_host_resume(host); host 51 drivers/ata/pata_triflex.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 75 drivers/ata/pata_triflex.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 201 drivers/ata/pata_triflex.c struct ata_host *host = pci_get_drvdata(pdev); host 204 drivers/ata/pata_triflex.c rc = ata_host_suspend(host, mesg); host 182 drivers/ata/pata_via.c const struct via_isa_bridge *config = ap->host->private_data; host 183 drivers/ata/pata_via.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 214 drivers/ata/pata_via.c const struct via_isa_bridge *config = ap->host->private_data; host 221 drivers/ata/pata_via.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 248 drivers/ata/pata_via.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 332 drivers/ata/pata_via.c const struct via_isa_bridge *config = ap->host->private_data; host 340 drivers/ata/pata_via.c const struct via_isa_bridge *config = ap->host->private_data; host 357 drivers/ata/pata_via.c struct ata_host *host = dev->link->ap->host; host 358 drivers/ata/pata_via.c const struct via_isa_bridge *config = host->private_data; host 445 drivers/ata/pata_via.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 676 drivers/ata/pata_via.c struct ata_host *host = pci_get_drvdata(pdev); host 683 drivers/ata/pata_via.c via_fixup(pdev, host->private_data); host 685 drivers/ata/pata_via.c ata_host_resume(host); host 41 drivers/ata/pdc_adma.c ADMA_REGS((ap)->host->iomap[ADMA_MMIO_BAR], ap->port_no) host 409 drivers/ata/pdc_adma.c static inline unsigned int adma_intr_pkt(struct ata_host *host) host 413 drivers/ata/pdc_adma.c for (port_no = 0; port_no < host->n_ports; ++port_no) { host 414 drivers/ata/pdc_adma.c struct ata_port *ap = host->ports[port_no]; host 459 drivers/ata/pdc_adma.c static inline unsigned int adma_intr_mmio(struct ata_host *host) host 463 drivers/ata/pdc_adma.c for (port_no = 0; port_no < host->n_ports; ++port_no) { host 464 drivers/ata/pdc_adma.c struct ata_port *ap = host->ports[port_no]; host 503 drivers/ata/pdc_adma.c struct ata_host *host = dev_instance; host 508 drivers/ata/pdc_adma.c spin_lock(&host->lock); host 509 drivers/ata/pdc_adma.c handled = adma_intr_pkt(host) | adma_intr_mmio(host); host 510 drivers/ata/pdc_adma.c spin_unlock(&host->lock); host 536 drivers/ata/pdc_adma.c struct device *dev = ap->host->dev; host 563 drivers/ata/pdc_adma.c static void adma_host_init(struct ata_host *host, unsigned int chip_id) host 568 drivers/ata/pdc_adma.c writeb(7, host->iomap[ADMA_MMIO_BAR] + ADMA_MODE_LOCK); host 572 drivers/ata/pdc_adma.c adma_reset_engine(host->ports[port_no]); host 580 drivers/ata/pdc_adma.c struct ata_host *host; host 587 drivers/ata/pdc_adma.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, ADMA_PORTS); host 588 drivers/ata/pdc_adma.c if (!host) host 602 drivers/ata/pdc_adma.c host->iomap = pcim_iomap_table(pdev); host 603 drivers/ata/pdc_adma.c mmio_base = host->iomap[ADMA_MMIO_BAR]; host 612 drivers/ata/pdc_adma.c struct ata_port *ap = host->ports[port_no]; host 623 drivers/ata/pdc_adma.c adma_host_init(host, board_idx); host 626 drivers/ata/pdc_adma.c return ata_host_activate(host, pdev->irq, adma_intr, IRQF_SHARED, host 137 drivers/ata/sata_dwc_460ex.c struct ata_host *host; host 164 drivers/ata/sata_dwc_460ex.c #define HSDEV_FROM_HOST(host) ((struct sata_dwc_device *)(host)->private_data) host 165 drivers/ata/sata_dwc_460ex.c #define HSDEV_FROM_AP(ap) ((struct sata_dwc_device *)(ap)->host->private_data) host 167 drivers/ata/sata_dwc_460ex.c #define HSDEV_FROM_QC(qc) ((struct sata_dwc_device *)(qc)->ap->host->private_data) host 333 drivers/ata/sata_dwc_460ex.c struct ata_host *host = (struct ata_host *)hsdev->host; host 339 drivers/ata/sata_dwc_460ex.c spin_lock_irqsave(&host->lock, flags); host 340 drivers/ata/sata_dwc_460ex.c ap = host->ports[port]; host 360 drivers/ata/sata_dwc_460ex.c spin_unlock_irqrestore(&host->lock, flags); host 505 drivers/ata/sata_dwc_460ex.c struct ata_host *host = (struct ata_host *)dev_instance; host 506 drivers/ata/sata_dwc_460ex.c struct sata_dwc_device *hsdev = HSDEV_FROM_HOST(host); host 516 drivers/ata/sata_dwc_460ex.c spin_lock_irqsave(&host->lock, flags); host 521 drivers/ata/sata_dwc_460ex.c ap = host->ports[port]; host 714 drivers/ata/sata_dwc_460ex.c spin_unlock_irqrestore(&host->lock, flags); host 889 drivers/ata/sata_dwc_460ex.c hsdev->host = ap->host; host 890 drivers/ata/sata_dwc_460ex.c pdev = ap->host->dev; host 1206 drivers/ata/sata_dwc_460ex.c struct ata_host *host; host 1213 drivers/ata/sata_dwc_460ex.c host = ata_host_alloc_pinfo(&ofdev->dev, ppi, SATA_DWC_MAX_PORTS); host 1215 drivers/ata/sata_dwc_460ex.c if (!host || !hsdev) host 1218 drivers/ata/sata_dwc_460ex.c host->private_data = hsdev; host 1232 drivers/ata/sata_dwc_460ex.c host->ports[0]->ioaddr.cmd_addr = base; host 1233 drivers/ata/sata_dwc_460ex.c host->ports[0]->ioaddr.scr_addr = base + SATA_DWC_SCR_OFFSET; host 1234 drivers/ata/sata_dwc_460ex.c sata_dwc_setup_port(&host->ports[0]->ioaddr, base); host 1280 drivers/ata/sata_dwc_460ex.c err = ata_host_activate(host, irq, sata_dwc_isr, 0, &sata_dwc_sht); host 1294 drivers/ata/sata_dwc_460ex.c struct ata_host *host = dev_get_drvdata(dev); host 1295 drivers/ata/sata_dwc_460ex.c struct sata_dwc_device *hsdev = host->private_data; host 1297 drivers/ata/sata_dwc_460ex.c ata_host_detach(host); host 289 drivers/ata/sata_fsl.c static void fsl_sata_set_irq_coalescing(struct ata_host *host, host 292 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = host->private_data; host 307 drivers/ata/sata_fsl.c spin_lock_irqsave(&host->lock, flags); host 312 drivers/ata/sata_fsl.c spin_unlock_irqrestore(&host->lock, flags); host 351 drivers/ata/sata_fsl.c struct ata_host *host = dev_get_drvdata(dev); host 352 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = host->private_data; host 355 drivers/ata/sata_fsl.c spin_lock_irqsave(&host->lock, flags); host 359 drivers/ata/sata_fsl.c spin_unlock_irqrestore(&host->lock, flags); host 369 drivers/ata/sata_fsl.c struct ata_host *host = dev_get_drvdata(dev); host 370 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = host->private_data; host 379 drivers/ata/sata_fsl.c spin_lock_irqsave(&host->lock, flags); host 384 drivers/ata/sata_fsl.c spin_unlock_irqrestore(&host->lock, flags); host 509 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 556 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 585 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = qc->ap->host->private_data; host 599 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = link->ap->host->private_data; host 623 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = link->ap->host->private_data; host 646 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 667 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 689 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 699 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 715 drivers/ata/sata_fsl.c struct device *dev = ap->host->dev; host 719 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 771 drivers/ata/sata_fsl.c struct device *dev = ap->host->dev; host 773 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 797 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 820 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 934 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 1078 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 1204 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = ap->host->private_data; host 1305 drivers/ata/sata_fsl.c struct ata_host *host = dev_instance; host 1306 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = host->private_data; host 1321 drivers/ata/sata_fsl.c spin_lock(&host->lock); host 1325 drivers/ata/sata_fsl.c ap = host->ports[0]; host 1329 drivers/ata/sata_fsl.c dev_warn(host->dev, "interrupt on disabled port 0\n"); host 1335 drivers/ata/sata_fsl.c spin_unlock(&host->lock); host 1344 drivers/ata/sata_fsl.c static int sata_fsl_init_controller(struct ata_host *host) host 1346 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = host->private_data; host 1381 drivers/ata/sata_fsl.c fsl_sata_set_irq_coalescing(host, intr_coalescing_count, host 1448 drivers/ata/sata_fsl.c struct ata_host *host = NULL; host 1494 drivers/ata/sata_fsl.c host = ata_host_alloc_pinfo(&ofdev->dev, ppi, SATA_FSL_MAX_PORTS); host 1495 drivers/ata/sata_fsl.c if (!host) { host 1501 drivers/ata/sata_fsl.c host->private_data = host_priv; host 1504 drivers/ata/sata_fsl.c sata_fsl_init_controller(host); host 1511 drivers/ata/sata_fsl.c ata_host_activate(host, irq, sata_fsl_interrupt, SATA_FSL_IRQ_FLAG, host 1519 drivers/ata/sata_fsl.c retval = device_create_file(host->dev, &host_priv->intr_coalescing); host 1528 drivers/ata/sata_fsl.c retval = device_create_file(host->dev, &host_priv->rx_watermark); host 1538 drivers/ata/sata_fsl.c if (host) host 1539 drivers/ata/sata_fsl.c ata_host_detach(host); host 1550 drivers/ata/sata_fsl.c struct ata_host *host = platform_get_drvdata(ofdev); host 1551 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = host->private_data; host 1556 drivers/ata/sata_fsl.c ata_host_detach(host); host 1568 drivers/ata/sata_fsl.c struct ata_host *host = platform_get_drvdata(op); host 1569 drivers/ata/sata_fsl.c return ata_host_suspend(host, state); host 1574 drivers/ata/sata_fsl.c struct ata_host *host = platform_get_drvdata(op); host 1575 drivers/ata/sata_fsl.c struct sata_fsl_host_priv *host_priv = host->private_data; host 1578 drivers/ata/sata_fsl.c struct ata_port *ap = host->ports[0]; host 1581 drivers/ata/sata_fsl.c ret = sata_fsl_init_controller(host); host 1596 drivers/ata/sata_fsl.c ata_host_resume(host); host 131 drivers/ata/sata_highbank.c struct ahci_host_priv *hpriv = ap->host->private_data; host 391 drivers/ata/sata_highbank.c struct ahci_host_priv *hpriv = ap->host->private_data; host 456 drivers/ata/sata_highbank.c struct ata_host *host; host 525 drivers/ata/sata_highbank.c host = ata_host_alloc_pinfo(dev, ppi, n_ports); host 526 drivers/ata/sata_highbank.c if (!host) { host 531 drivers/ata/sata_highbank.c host->private_data = hpriv; host 534 drivers/ata/sata_highbank.c host->flags |= ATA_HOST_PARALLEL_SCAN; host 536 drivers/ata/sata_highbank.c for (i = 0; i < host->n_ports; i++) { host 537 drivers/ata/sata_highbank.c struct ata_port *ap = host->ports[i]; host 551 drivers/ata/sata_highbank.c rc = ahci_reset_controller(host); host 555 drivers/ata/sata_highbank.c ahci_init_controller(host); host 556 drivers/ata/sata_highbank.c ahci_print_info(host, "platform"); host 558 drivers/ata/sata_highbank.c rc = ahci_host_activate(host, &ahci_highbank_platform_sht); host 570 drivers/ata/sata_highbank.c struct ata_host *host = dev_get_drvdata(dev); host 571 drivers/ata/sata_highbank.c struct ahci_host_priv *hpriv = host->private_data; host 591 drivers/ata/sata_highbank.c rc = ata_host_suspend(host, PMSG_SUSPEND); host 600 drivers/ata/sata_highbank.c struct ata_host *host = dev_get_drvdata(dev); host 604 drivers/ata/sata_highbank.c rc = ahci_reset_controller(host); host 608 drivers/ata/sata_highbank.c ahci_init_controller(host); host 611 drivers/ata/sata_highbank.c ata_host_resume(host); host 266 drivers/ata/sata_inic162x.c struct inic_host_priv *hpriv = ap->host->private_data; host 421 drivers/ata/sata_inic162x.c struct ata_host *host = dev_instance; host 422 drivers/ata/sata_inic162x.c struct inic_host_priv *hpriv = host->private_data; host 431 drivers/ata/sata_inic162x.c spin_lock(&host->lock); host 435 drivers/ata/sata_inic162x.c inic_host_intr(host->ports[i]); host 439 drivers/ata/sata_inic162x.c spin_unlock(&host->lock); host 700 drivers/ata/sata_inic162x.c struct device *dev = ap->host->dev; host 797 drivers/ata/sata_inic162x.c struct ata_host *host = pci_get_drvdata(pdev); host 798 drivers/ata/sata_inic162x.c struct inic_host_priv *hpriv = host->private_data; host 811 drivers/ata/sata_inic162x.c ata_host_resume(host); host 820 drivers/ata/sata_inic162x.c struct ata_host *host; host 831 drivers/ata/sata_inic162x.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, NR_PORTS); host 833 drivers/ata/sata_inic162x.c if (!host || !hpriv) host 836 drivers/ata/sata_inic162x.c host->private_data = hpriv; host 853 drivers/ata/sata_inic162x.c host->iomap = iomap = pcim_iomap_table(pdev); host 858 drivers/ata/sata_inic162x.c struct ata_port *ap = host->ports[i]; host 878 drivers/ata/sata_inic162x.c return ata_host_activate(host, pdev->irq, inic_interrupt, IRQF_SHARED, host 585 drivers/ata/sata_mv.c void (*reset_bus)(struct ata_host *host, void __iomem *mmio); host 612 drivers/ata/sata_mv.c static void mv5_reset_bus(struct ata_host *host, void __iomem *mmio); host 630 drivers/ata/sata_mv.c static void mv_soc_reset_bus(struct ata_host *host, void __iomem *mmio); host 633 drivers/ata/sata_mv.c static void mv_reset_pci_bus(struct ata_host *host, void __iomem *mmio); host 916 drivers/ata/sata_mv.c static inline void __iomem *mv_host_base(struct ata_host *host) host 918 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 924 drivers/ata/sata_mv.c return mv_port_base(mv_host_base(ap->host), ap->port_no); host 1036 drivers/ata/sata_mv.c static void mv_set_main_irq_mask(struct ata_host *host, host 1039 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 1060 drivers/ata/sata_mv.c mv_set_main_irq_mask(ap->host, disable_bits, enable_bits); host 1067 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 1070 drivers/ata/sata_mv.c mv_host_base(ap->host), ap->port_no); host 1087 drivers/ata/sata_mv.c static void mv_set_irq_coalescing(struct ata_host *host, host 1090 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 1110 drivers/ata/sata_mv.c spin_lock_irqsave(&host->lock, flags); host 1111 drivers/ata/sata_mv.c mv_set_main_irq_mask(host, coal_disable, 0); host 1145 drivers/ata/sata_mv.c mv_set_main_irq_mask(host, 0, coal_enable); host 1146 drivers/ata/sata_mv.c spin_unlock_irqrestore(&host->lock, flags); host 1171 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 1362 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = link->ap->host->private_data; host 1509 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 1562 drivers/ata/sata_mv.c struct ata_host *host = ap->host; host 1563 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 1570 drivers/ata/sata_mv.c hc_mmio = mv_hc_base_from_port(mv_host_base(host), ap->port_no); host 1577 drivers/ata/sata_mv.c struct ata_host *host = ap->host; host 1578 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 1588 drivers/ata/sata_mv.c struct ata_port *this_ap = host->ports[port]; host 1596 drivers/ata/sata_mv.c hc_mmio = mv_hc_base_from_port(mv_host_base(host), ap->port_no); host 1605 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 1667 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 1706 drivers/ata/sata_mv.c struct device *dev = ap->host->dev; host 1707 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 2401 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 2640 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 2800 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 2881 drivers/ata/sata_mv.c static int mv_host_intr(struct ata_host *host, u32 main_irq_cause) host 2883 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 2892 drivers/ata/sata_mv.c struct ata_port *ap = host->ports[port]; host 2946 drivers/ata/sata_mv.c static int mv_pci_error(struct ata_host *host, void __iomem *mmio) host 2948 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 2957 drivers/ata/sata_mv.c dev_err(host->dev, "PCI ERROR; PCI IRQ cause=0x%08x\n", err_cause); host 2960 drivers/ata/sata_mv.c mv_dump_all_regs(mmio, -1, to_pci_dev(host->dev)); host 2964 drivers/ata/sata_mv.c for (i = 0; i < host->n_ports; i++) { host 2965 drivers/ata/sata_mv.c ap = host->ports[i]; host 3002 drivers/ata/sata_mv.c struct ata_host *host = dev_instance; host 3003 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 3008 drivers/ata/sata_mv.c spin_lock(&host->lock); host 3022 drivers/ata/sata_mv.c handled = mv_pci_error(host, hpriv->base); host 3024 drivers/ata/sata_mv.c handled = mv_host_intr(host, pending_irqs); host 3031 drivers/ata/sata_mv.c spin_unlock(&host->lock); host 3055 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = link->ap->host->private_data; host 3069 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = link->ap->host->private_data; host 3081 drivers/ata/sata_mv.c static void mv5_reset_bus(struct ata_host *host, void __iomem *mmio) host 3083 drivers/ata/sata_mv.c struct pci_dev *pdev = to_pci_dev(host->dev); host 3094 drivers/ata/sata_mv.c mv_reset_pci_bus(host, mmio); host 3216 drivers/ata/sata_mv.c static void mv_reset_pci_bus(struct ata_host *host, void __iomem *mmio) host 3218 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 3495 drivers/ata/sata_mv.c static void mv_soc_reset_bus(struct ata_host *host, void __iomem *mmio) host 3621 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 3665 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = ap->host->private_data; host 3727 drivers/ata/sata_mv.c static unsigned int mv_in_pcix_mode(struct ata_host *host) host 3729 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 3741 drivers/ata/sata_mv.c static int mv_pci_cut_through_okay(struct ata_host *host) host 3743 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 3747 drivers/ata/sata_mv.c if (!mv_in_pcix_mode(host)) { host 3755 drivers/ata/sata_mv.c static void mv_60x1b2_errata_pci7(struct ata_host *host) host 3757 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 3761 drivers/ata/sata_mv.c if (mv_in_pcix_mode(host)) { host 3767 drivers/ata/sata_mv.c static int mv_chip_id(struct ata_host *host, unsigned int board_idx) host 3769 drivers/ata/sata_mv.c struct pci_dev *pdev = to_pci_dev(host->dev); host 3770 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 3820 drivers/ata/sata_mv.c mv_60x1b2_errata_pci7(host); host 3869 drivers/ata/sata_mv.c if (board_idx == chip_6042 && mv_pci_cut_through_okay(host)) host 3893 drivers/ata/sata_mv.c dev_err(host->dev, "BUG: invalid board index %u\n", board_idx); host 3921 drivers/ata/sata_mv.c static int mv_init_host(struct ata_host *host) host 3924 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 3927 drivers/ata/sata_mv.c rc = mv_chip_id(host, hpriv->board_idx); host 3943 drivers/ata/sata_mv.c mv_set_main_irq_mask(host, ~0, 0); host 3945 drivers/ata/sata_mv.c n_hc = mv_get_hc_count(host->ports[0]->flags); host 3947 drivers/ata/sata_mv.c for (port = 0; port < host->n_ports; port++) host 3956 drivers/ata/sata_mv.c hpriv->ops->reset_bus(host, mmio); host 3959 drivers/ata/sata_mv.c for (port = 0; port < host->n_ports; port++) { host 3960 drivers/ata/sata_mv.c struct ata_port *ap = host->ports[port]; host 3990 drivers/ata/sata_mv.c mv_set_main_irq_mask(host, 0, PCI_ERR); host 3991 drivers/ata/sata_mv.c mv_set_irq_coalescing(host, irq_coalescing_io_count, host 4052 drivers/ata/sata_mv.c struct ata_host *host; host 4099 drivers/ata/sata_mv.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); host 4102 drivers/ata/sata_mv.c if (!host || !hpriv) host 4114 drivers/ata/sata_mv.c host->private_data = hpriv; host 4117 drivers/ata/sata_mv.c host->iomap = NULL; host 4178 drivers/ata/sata_mv.c rc = mv_init_host(host); host 4183 drivers/ata/sata_mv.c (unsigned)MV_MAX_Q_DEPTH, host->n_ports); host 4185 drivers/ata/sata_mv.c rc = ata_host_activate(host, irq, mv_interrupt, IRQF_SHARED, &mv6_sht); host 4215 drivers/ata/sata_mv.c struct ata_host *host = platform_get_drvdata(pdev); host 4216 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 4218 drivers/ata/sata_mv.c ata_host_detach(host); host 4224 drivers/ata/sata_mv.c for (port = 0; port < host->n_ports; port++) { host 4237 drivers/ata/sata_mv.c struct ata_host *host = platform_get_drvdata(pdev); host 4238 drivers/ata/sata_mv.c if (host) host 4239 drivers/ata/sata_mv.c return ata_host_suspend(host, state); host 4246 drivers/ata/sata_mv.c struct ata_host *host = platform_get_drvdata(pdev); host 4250 drivers/ata/sata_mv.c if (host) { host 4251 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 4261 drivers/ata/sata_mv.c ret = mv_init_host(host); host 4266 drivers/ata/sata_mv.c ata_host_resume(host); host 4326 drivers/ata/sata_mv.c static void mv_print_info(struct ata_host *host) host 4328 drivers/ata/sata_mv.c struct pci_dev *pdev = to_pci_dev(host->dev); host 4329 drivers/ata/sata_mv.c struct mv_host_priv *hpriv = host->private_data; host 4354 drivers/ata/sata_mv.c gen, (unsigned)MV_MAX_Q_DEPTH, host->n_ports, host 4371 drivers/ata/sata_mv.c struct ata_host *host; host 4380 drivers/ata/sata_mv.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); host 4382 drivers/ata/sata_mv.c if (!host || !hpriv) host 4384 drivers/ata/sata_mv.c host->private_data = hpriv; host 4398 drivers/ata/sata_mv.c host->iomap = pcim_iomap_table(pdev); host 4399 drivers/ata/sata_mv.c hpriv->base = host->iomap[MV_PRIMARY_BAR]; host 4411 drivers/ata/sata_mv.c for (port = 0; port < host->n_ports; port++) { host 4412 drivers/ata/sata_mv.c struct ata_port *ap = host->ports[port]; host 4421 drivers/ata/sata_mv.c rc = mv_init_host(host); host 4430 drivers/ata/sata_mv.c mv_print_info(host); host 4434 drivers/ata/sata_mv.c return ata_host_activate(host, pdev->irq, mv_interrupt, IRQF_SHARED, host 4441 drivers/ata/sata_mv.c struct ata_host *host = pci_get_drvdata(pdev); host 4449 drivers/ata/sata_mv.c rc = mv_init_host(host); host 4453 drivers/ata/sata_mv.c ata_host_resume(host); host 285 drivers/ata/sata_nv.c static void nv_ck804_host_stop(struct ata_host *host); host 313 drivers/ata/sata_nv.c static void nv_adma_host_stop(struct ata_host *host); host 659 drivers/ata/sata_nv.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 662 drivers/ata/sata_nv.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 720 drivers/ata/sata_nv.c port0 = ap->host->ports[0]->private_data; host 721 drivers/ata/sata_nv.c port1 = ap->host->ports[1]->private_data; host 740 drivers/ata/sata_nv.c (unsigned long long)*ap->host->dev->dma_mask, host 871 drivers/ata/sata_nv.c struct ata_host *host = dev_instance; host 875 drivers/ata/sata_nv.c spin_lock(&host->lock); host 877 drivers/ata/sata_nv.c for (i = 0; i < host->n_ports; i++) { host 878 drivers/ata/sata_nv.c struct ata_port *ap = host->ports[i]; host 889 drivers/ata/sata_nv.c u8 irq_stat = readb(host->iomap[NV_MMIO_BAR] + NV_INT_STATUS_CK804) host 897 drivers/ata/sata_nv.c u8 irq_stat = readb(host->iomap[NV_MMIO_BAR] + NV_INT_STATUS_CK804) host 994 drivers/ata/sata_nv.c struct nv_adma_port_priv *pp = host->ports[0]->private_data; host 996 drivers/ata/sata_nv.c pp = host->ports[1]->private_data; host 1000 drivers/ata/sata_nv.c spin_unlock(&host->lock); host 1018 drivers/ata/sata_nv.c ap->host->iomap[NV_MMIO_BAR] + NV_INT_STATUS_CK804); host 1058 drivers/ata/sata_nv.c ap->host->iomap[NV_MMIO_BAR] + NV_INT_STATUS_CK804); host 1072 drivers/ata/sata_nv.c pp = ap->host->ports[0]->private_data; host 1074 drivers/ata/sata_nv.c pp = ap->host->ports[1]->private_data; host 1088 drivers/ata/sata_nv.c struct device *dev = ap->host->dev; host 1116 drivers/ata/sata_nv.c mmio = ap->host->iomap[NV_MMIO_BAR] + NV_ADMA_PORT + host 1119 drivers/ata/sata_nv.c pp->gen_block = ap->host->iomap[NV_MMIO_BAR] + NV_ADMA_GEN; host 1246 drivers/ata/sata_nv.c void __iomem *mmio = ap->host->iomap[NV_MMIO_BAR]; host 1268 drivers/ata/sata_nv.c static int nv_adma_host_init(struct ata_host *host) host 1270 drivers/ata/sata_nv.c struct pci_dev *pdev = to_pci_dev(host->dev); host 1285 drivers/ata/sata_nv.c for (i = 0; i < host->n_ports; i++) host 1286 drivers/ata/sata_nv.c nv_adma_setup_port(host->ports[i]); host 1440 drivers/ata/sata_nv.c struct ata_host *host = dev_instance; host 1445 drivers/ata/sata_nv.c spin_lock_irqsave(&host->lock, flags); host 1447 drivers/ata/sata_nv.c for (i = 0; i < host->n_ports; i++) { host 1448 drivers/ata/sata_nv.c struct ata_port *ap = host->ports[i]; host 1463 drivers/ata/sata_nv.c spin_unlock_irqrestore(&host->lock, flags); host 1468 drivers/ata/sata_nv.c static irqreturn_t nv_do_interrupt(struct ata_host *host, u8 irq_stat) host 1472 drivers/ata/sata_nv.c for (i = 0; i < host->n_ports; i++) { host 1473 drivers/ata/sata_nv.c handled += nv_host_intr(host->ports[i], irq_stat); host 1482 drivers/ata/sata_nv.c struct ata_host *host = dev_instance; host 1486 drivers/ata/sata_nv.c spin_lock(&host->lock); host 1487 drivers/ata/sata_nv.c irq_stat = ioread8(host->ports[0]->ioaddr.scr_addr + NV_INT_STATUS); host 1488 drivers/ata/sata_nv.c ret = nv_do_interrupt(host, irq_stat); host 1489 drivers/ata/sata_nv.c spin_unlock(&host->lock); host 1496 drivers/ata/sata_nv.c struct ata_host *host = dev_instance; host 1500 drivers/ata/sata_nv.c spin_lock(&host->lock); host 1501 drivers/ata/sata_nv.c irq_stat = readb(host->iomap[NV_MMIO_BAR] + NV_INT_STATUS_CK804); host 1502 drivers/ata/sata_nv.c ret = nv_do_interrupt(host, irq_stat); host 1503 drivers/ata/sata_nv.c spin_unlock(&host->lock); host 1560 drivers/ata/sata_nv.c void __iomem *scr_addr = ap->host->ports[0]->ioaddr.scr_addr; host 1571 drivers/ata/sata_nv.c void __iomem *scr_addr = ap->host->ports[0]->ioaddr.scr_addr; host 1584 drivers/ata/sata_nv.c void __iomem *mmio_base = ap->host->iomap[NV_MMIO_BAR]; host 1595 drivers/ata/sata_nv.c void __iomem *mmio_base = ap->host->iomap[NV_MMIO_BAR]; host 1608 drivers/ata/sata_nv.c void __iomem *mmio_base = ap->host->iomap[NV_MMIO_BAR]; host 1621 drivers/ata/sata_nv.c void __iomem *mmio_base = ap->host->iomap[NV_MMIO_BAR]; host 1816 drivers/ata/sata_nv.c void __iomem *mmio = ap->host->iomap[NV_MMIO_BAR]; host 1835 drivers/ata/sata_nv.c void __iomem *mmio = ap->host->iomap[NV_MMIO_BAR]; host 1852 drivers/ata/sata_nv.c static void nv_swncq_host_init(struct ata_host *host) host 1855 drivers/ata/sata_nv.c void __iomem *mmio = host->iomap[NV_MMIO_BAR]; host 1856 drivers/ata/sata_nv.c struct pci_dev *pdev = to_pci_dev(host->dev); host 1880 drivers/ata/sata_nv.c struct ata_port *ap = ata_shost_to_port(sdev->host); host 1881 drivers/ata/sata_nv.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 1926 drivers/ata/sata_nv.c struct device *dev = ap->host->dev; host 1927 drivers/ata/sata_nv.c void __iomem *mmio = ap->host->iomap[NV_MMIO_BAR]; host 2284 drivers/ata/sata_nv.c struct ata_host *host = dev_instance; host 2290 drivers/ata/sata_nv.c spin_lock_irqsave(&host->lock, flags); host 2292 drivers/ata/sata_nv.c irq_stat = readl(host->iomap[NV_MMIO_BAR] + NV_INT_STATUS_MCP55); host 2294 drivers/ata/sata_nv.c for (i = 0; i < host->n_ports; i++) { host 2295 drivers/ata/sata_nv.c struct ata_port *ap = host->ports[i]; host 2309 drivers/ata/sata_nv.c spin_unlock_irqrestore(&host->lock, flags); host 2318 drivers/ata/sata_nv.c struct ata_host *host; host 2349 drivers/ata/sata_nv.c rc = ata_pci_bmdma_prepare_host(pdev, ppi, &host); host 2357 drivers/ata/sata_nv.c host->private_data = hpriv; host 2365 drivers/ata/sata_nv.c base = host->iomap[NV_MMIO_BAR]; host 2366 drivers/ata/sata_nv.c host->ports[0]->ioaddr.scr_addr = base + NV_PORT0_SCR_REG_OFFSET; host 2367 drivers/ata/sata_nv.c host->ports[1]->ioaddr.scr_addr = base + NV_PORT1_SCR_REG_OFFSET; host 2380 drivers/ata/sata_nv.c rc = nv_adma_host_init(host); host 2384 drivers/ata/sata_nv.c nv_swncq_host_init(host); host 2392 drivers/ata/sata_nv.c return ata_pci_sff_activate_host(host, ipriv->irq_handler, ipriv->sht); host 2398 drivers/ata/sata_nv.c struct ata_host *host = pci_get_drvdata(pdev); host 2399 drivers/ata/sata_nv.c struct nv_host_priv *hpriv = host->private_data; host 2420 drivers/ata/sata_nv.c pp = host->ports[0]->private_data; host 2427 drivers/ata/sata_nv.c pp = host->ports[1]->private_data; host 2439 drivers/ata/sata_nv.c ata_host_resume(host); host 2445 drivers/ata/sata_nv.c static void nv_ck804_host_stop(struct ata_host *host) host 2447 drivers/ata/sata_nv.c struct pci_dev *pdev = to_pci_dev(host->dev); host 2456 drivers/ata/sata_nv.c static void nv_adma_host_stop(struct ata_host *host) host 2458 drivers/ata/sata_nv.c struct pci_dev *pdev = to_pci_dev(host->dev); host 2470 drivers/ata/sata_nv.c nv_ck804_host_stop(host); host 317 drivers/ata/sata_promise.c struct device *dev = ap->host->dev; host 690 drivers/ata/sata_promise.c const struct ata_host *host = ap->host; host 694 drivers/ata/sata_promise.c for (i = 0; i < nr_ports && host->ports[i] != ap; ++i) host 714 drivers/ata/sata_promise.c struct ata_host *host = ap->host; host 715 drivers/ata/sata_promise.c void __iomem *host_mmio = host->iomap[PDC_MMIO_BAR]; host 752 drivers/ata/sata_promise.c struct ata_host *host = ap->host; host 753 drivers/ata/sata_promise.c void __iomem *host_mmio = host->iomap[PDC_MMIO_BAR]; host 780 drivers/ata/sata_promise.c void __iomem *host_mmio = ap->host->iomap[PDC_MMIO_BAR]; host 788 drivers/ata/sata_promise.c void __iomem *host_mmio = ap->host->iomap[PDC_MMIO_BAR]; host 791 drivers/ata/sata_promise.c struct pdc_host_priv *hpriv = ap->host->private_data; host 919 drivers/ata/sata_promise.c struct ata_host *host = dev_instance; host 931 drivers/ata/sata_promise.c if (!host || !host->iomap[PDC_MMIO_BAR]) { host 936 drivers/ata/sata_promise.c host_mmio = host->iomap[PDC_MMIO_BAR]; host 938 drivers/ata/sata_promise.c spin_lock(&host->lock); host 941 drivers/ata/sata_promise.c if (host->ports[0]->flags & PDC_FLAG_GEN_II) { host 966 drivers/ata/sata_promise.c is_sataii_tx4 = pdc_is_sataii_tx4(host->ports[0]->flags); host 968 drivers/ata/sata_promise.c for (i = 0; i < host->n_ports; i++) { host 970 drivers/ata/sata_promise.c ap = host->ports[i]; host 999 drivers/ata/sata_promise.c spin_unlock(&host->lock); host 1007 drivers/ata/sata_promise.c void __iomem *host_mmio = ap->host->iomap[PDC_MMIO_BAR]; host 1112 drivers/ata/sata_promise.c static void pdc_host_init(struct ata_host *host) host 1114 drivers/ata/sata_promise.c void __iomem *host_mmio = host->iomap[PDC_MMIO_BAR]; host 1115 drivers/ata/sata_promise.c int is_gen2 = host->ports[0]->flags & PDC_FLAG_GEN_II; host 1172 drivers/ata/sata_promise.c struct ata_host *host; host 1205 drivers/ata/sata_promise.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); host 1206 drivers/ata/sata_promise.c if (!host) { host 1214 drivers/ata/sata_promise.c host->private_data = hpriv; host 1215 drivers/ata/sata_promise.c host->iomap = pcim_iomap_table(pdev); host 1218 drivers/ata/sata_promise.c for (i = 0; i < host->n_ports; i++) { host 1219 drivers/ata/sata_promise.c struct ata_port *ap = host->ports[i]; host 1231 drivers/ata/sata_promise.c pdc_host_init(host); host 1239 drivers/ata/sata_promise.c return ata_host_activate(host, pdev->irq, pdc_interrupt, IRQF_SHARED, host 102 drivers/ata/sata_qstor.c static void qs_host_stop(struct ata_host *host); host 161 drivers/ata/sata_qstor.c static void __iomem *qs_mmio_base(struct ata_host *host) host 163 drivers/ata/sata_qstor.c return host->iomap[QS_MMIO_BAR]; host 173 drivers/ata/sata_qstor.c u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000); host 183 drivers/ata/sata_qstor.c u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000); host 192 drivers/ata/sata_qstor.c u8 __iomem *mmio_base = qs_mmio_base(ap->host); host 200 drivers/ata/sata_qstor.c u8 __iomem *mmio_base = qs_mmio_base(ap->host); host 303 drivers/ata/sata_qstor.c u8 __iomem *chan = qs_mmio_base(ap->host) + (ap->port_no * 0x4000); host 355 drivers/ata/sata_qstor.c static inline unsigned int qs_intr_pkt(struct ata_host *host) host 359 drivers/ata/sata_qstor.c u8 __iomem *mmio_base = qs_mmio_base(host); host 371 drivers/ata/sata_qstor.c struct ata_port *ap = host->ports[port_no]; host 397 drivers/ata/sata_qstor.c static inline unsigned int qs_intr_mmio(struct ata_host *host) host 401 drivers/ata/sata_qstor.c for (port_no = 0; port_no < host->n_ports; ++port_no) { host 402 drivers/ata/sata_qstor.c struct ata_port *ap = host->ports[port_no]; host 432 drivers/ata/sata_qstor.c struct ata_host *host = dev_instance; host 438 drivers/ata/sata_qstor.c spin_lock_irqsave(&host->lock, flags); host 439 drivers/ata/sata_qstor.c handled = qs_intr_pkt(host) | qs_intr_mmio(host); host 440 drivers/ata/sata_qstor.c spin_unlock_irqrestore(&host->lock, flags); host 467 drivers/ata/sata_qstor.c struct device *dev = ap->host->dev; host 469 drivers/ata/sata_qstor.c void __iomem *mmio_base = qs_mmio_base(ap->host); host 489 drivers/ata/sata_qstor.c static void qs_host_stop(struct ata_host *host) host 491 drivers/ata/sata_qstor.c void __iomem *mmio_base = qs_mmio_base(host); host 497 drivers/ata/sata_qstor.c static void qs_host_init(struct ata_host *host, unsigned int chip_id) host 499 drivers/ata/sata_qstor.c void __iomem *mmio_base = host->iomap[QS_MMIO_BAR]; host 506 drivers/ata/sata_qstor.c for (port_no = 0; port_no < host->n_ports; ++port_no) { host 514 drivers/ata/sata_qstor.c for (port_no = 0; port_no < host->n_ports; ++port_no) { host 554 drivers/ata/sata_qstor.c struct ata_host *host; host 560 drivers/ata/sata_qstor.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, QS_PORTS); host 561 drivers/ata/sata_qstor.c if (!host) host 575 drivers/ata/sata_qstor.c host->iomap = pcim_iomap_table(pdev); host 577 drivers/ata/sata_qstor.c rc = qs_set_dma_masks(pdev, host->iomap[QS_MMIO_BAR]); host 581 drivers/ata/sata_qstor.c for (port_no = 0; port_no < host->n_ports; ++port_no) { host 582 drivers/ata/sata_qstor.c struct ata_port *ap = host->ports[port_no]; host 584 drivers/ata/sata_qstor.c void __iomem *chan = host->iomap[QS_MMIO_BAR] + offset; host 593 drivers/ata/sata_qstor.c qs_host_init(host, board_idx); host 596 drivers/ata/sata_qstor.c return ata_host_activate(host, pdev->irq, qs_intr, IRQF_SHARED, host 224 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = ap->host->private_data; host 234 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = ap->host->private_data; host 565 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = ap->host->private_data; host 591 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = ap->host->private_data; host 605 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = ap->host->private_data; host 623 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = ap->host->private_data; host 677 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = ap->host->private_data; host 722 drivers/ata/sata_rcar.c struct ata_host *host = dev_instance; host 723 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = host->private_data; host 730 drivers/ata/sata_rcar.c spin_lock_irqsave(&host->lock, flags); host 739 drivers/ata/sata_rcar.c ap = host->ports[0]; host 749 drivers/ata/sata_rcar.c spin_unlock_irqrestore(&host->lock, flags); host 754 drivers/ata/sata_rcar.c static void sata_rcar_setup_port(struct ata_host *host) host 756 drivers/ata/sata_rcar.c struct ata_port *ap = host->ports[0]; host 758 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = host->private_data; host 816 drivers/ata/sata_rcar.c static void sata_rcar_init_controller(struct ata_host *host) host 818 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = host->private_data; host 835 drivers/ata/sata_rcar.c dev_warn(host->dev, "SATA phy is not initialized\n"); host 887 drivers/ata/sata_rcar.c struct ata_host *host; host 910 drivers/ata/sata_rcar.c host = ata_host_alloc(dev, 1); host 911 drivers/ata/sata_rcar.c if (!host) { host 916 drivers/ata/sata_rcar.c host->private_data = priv; host 926 drivers/ata/sata_rcar.c sata_rcar_setup_port(host); host 929 drivers/ata/sata_rcar.c sata_rcar_init_controller(host); host 931 drivers/ata/sata_rcar.c ret = ata_host_activate(host, irq, sata_rcar_interrupt, 0, host 945 drivers/ata/sata_rcar.c struct ata_host *host = platform_get_drvdata(pdev); host 946 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = host->private_data; host 949 drivers/ata/sata_rcar.c ata_host_detach(host); host 966 drivers/ata/sata_rcar.c struct ata_host *host = dev_get_drvdata(dev); host 967 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = host->private_data; host 971 drivers/ata/sata_rcar.c ret = ata_host_suspend(host, PMSG_SUSPEND); host 986 drivers/ata/sata_rcar.c struct ata_host *host = dev_get_drvdata(dev); host 987 drivers/ata/sata_rcar.c struct sata_rcar_priv *priv = host->private_data; host 1007 drivers/ata/sata_rcar.c ata_host_resume(host); host 1014 drivers/ata/sata_rcar.c struct ata_host *host = dev_get_drvdata(dev); host 1021 drivers/ata/sata_rcar.c sata_rcar_setup_port(host); host 1024 drivers/ata/sata_rcar.c sata_rcar_init_controller(host); host 1026 drivers/ata/sata_rcar.c ata_host_resume(host); host 254 drivers/ata/sata_sil.c void __iomem *mmio_base = ap->host->iomap[SIL_MMIO_BAR]; host 280 drivers/ata/sata_sil.c void __iomem *mmio_base = ap->host->iomap[SIL_MMIO_BAR]; host 347 drivers/ata/sata_sil.c void __iomem *mmio_base = ap->host->iomap[SIL_MMIO_BAR]; host 507 drivers/ata/sata_sil.c struct ata_host *host = dev_instance; host 508 drivers/ata/sata_sil.c void __iomem *mmio_base = host->iomap[SIL_MMIO_BAR]; host 512 drivers/ata/sata_sil.c spin_lock(&host->lock); host 514 drivers/ata/sata_sil.c for (i = 0; i < host->n_ports; i++) { host 515 drivers/ata/sata_sil.c struct ata_port *ap = host->ports[i]; host 530 drivers/ata/sata_sil.c spin_unlock(&host->lock); host 537 drivers/ata/sata_sil.c void __iomem *mmio_base = ap->host->iomap[SIL_MMIO_BAR]; host 565 drivers/ata/sata_sil.c void __iomem *mmio_base = ap->host->iomap[SIL_MMIO_BAR]; host 649 drivers/ata/sata_sil.c static void sil_init_controller(struct ata_host *host) host 651 drivers/ata/sata_sil.c struct pci_dev *pdev = to_pci_dev(host->dev); host 652 drivers/ata/sata_sil.c void __iomem *mmio_base = host->iomap[SIL_MMIO_BAR]; host 662 drivers/ata/sata_sil.c for (i = 0; i < host->n_ports; i++) host 670 drivers/ata/sata_sil.c if (host->ports[0]->flags & SIL_FLAG_RERR_ON_DMA_ACT) { host 673 drivers/ata/sata_sil.c for (i = 0, cnt = 0; i < host->n_ports; i++) { host 685 drivers/ata/sata_sil.c if (host->n_ports == 4) { host 725 drivers/ata/sata_sil.c struct ata_host *host; host 744 drivers/ata/sata_sil.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); host 745 drivers/ata/sata_sil.c if (!host) host 758 drivers/ata/sata_sil.c host->iomap = pcim_iomap_table(pdev); host 764 drivers/ata/sata_sil.c mmio_base = host->iomap[SIL_MMIO_BAR]; host 766 drivers/ata/sata_sil.c for (i = 0; i < host->n_ports; i++) { host 767 drivers/ata/sata_sil.c struct ata_port *ap = host->ports[i]; host 782 drivers/ata/sata_sil.c sil_init_controller(host); host 785 drivers/ata/sata_sil.c return ata_host_activate(host, pdev->irq, sil_interrupt, IRQF_SHARED, host 792 drivers/ata/sata_sil.c struct ata_host *host = pci_get_drvdata(pdev); host 799 drivers/ata/sata_sil.c sil_init_controller(host); host 800 drivers/ata/sata_sil.c ata_host_resume(host); host 466 drivers/ata/sata_sil24.c return ap->host->iomap[SIL24_PORT_BAR] + sil24_port_offset(ap); host 1139 drivers/ata/sata_sil24.c struct ata_host *host = dev_instance; host 1140 drivers/ata/sata_sil24.c void __iomem *host_base = host->iomap[SIL24_HOST_BAR]; host 1148 drivers/ata/sata_sil24.c dev_err(host->dev, "IRQ status == 0xffffffff, " host 1156 drivers/ata/sata_sil24.c spin_lock(&host->lock); host 1158 drivers/ata/sata_sil24.c for (i = 0; i < host->n_ports; i++) host 1160 drivers/ata/sata_sil24.c sil24_host_intr(host->ports[i]); host 1164 drivers/ata/sata_sil24.c spin_unlock(&host->lock); host 1192 drivers/ata/sata_sil24.c struct device *dev = ap->host->dev; host 1217 drivers/ata/sata_sil24.c static void sil24_init_controller(struct ata_host *host) host 1219 drivers/ata/sata_sil24.c void __iomem *host_base = host->iomap[SIL24_HOST_BAR]; host 1230 drivers/ata/sata_sil24.c for (i = 0; i < host->n_ports; i++) { host 1231 drivers/ata/sata_sil24.c struct ata_port *ap = host->ports[i]; host 1246 drivers/ata/sata_sil24.c dev_err(host->dev, host 1264 drivers/ata/sata_sil24.c struct ata_host *host; host 1297 drivers/ata/sata_sil24.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, host 1299 drivers/ata/sata_sil24.c if (!host) host 1301 drivers/ata/sata_sil24.c host->iomap = iomap; host 1315 drivers/ata/sata_sil24.c sil24_init_controller(host); host 1323 drivers/ata/sata_sil24.c return ata_host_activate(host, pdev->irq, sil24_interrupt, IRQF_SHARED, host 1330 drivers/ata/sata_sil24.c struct ata_host *host = pci_get_drvdata(pdev); host 1331 drivers/ata/sata_sil24.c void __iomem *host_base = host->iomap[SIL24_HOST_BAR]; host 1341 drivers/ata/sata_sil24.c sil24_init_controller(host); host 1343 drivers/ata/sata_sil24.c ata_host_resume(host); host 102 drivers/ata/sata_sis.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 131 drivers/ata/sata_sis.c struct pci_dev *pdev = to_pci_dev(link->ap->host->dev); host 144 drivers/ata/sata_sis.c struct pci_dev *pdev = to_pci_dev(link->ap->host->dev); host 185 drivers/ata/sata_sis.c struct ata_host *host; host 265 drivers/ata/sata_sis.c rc = ata_pci_bmdma_prepare_host(pdev, ppi, &host); host 270 drivers/ata/sata_sis.c struct ata_port *ap = host->ports[i]; host 286 drivers/ata/sata_sis.c mmio = host->iomap[SIS_SCR_PCI_BAR]; host 288 drivers/ata/sata_sis.c host->ports[0]->ioaddr.scr_addr = mmio; host 289 drivers/ata/sata_sis.c host->ports[1]->ioaddr.scr_addr = mmio + port2_start; host 294 drivers/ata/sata_sis.c return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, host 315 drivers/ata/sata_svw.c np = pci_device_to_OF_node(to_pci_dev(ap->host->dev)); host 320 drivers/ata/sata_svw.c index = (ap == ap->host->ports[0]) ? 0 : 1; host 413 drivers/ata/sata_svw.c struct ata_host *host; host 424 drivers/ata/sata_svw.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); host 425 drivers/ata/sata_svw.c if (!host) host 458 drivers/ata/sata_svw.c host->iomap = pcim_iomap_table(pdev); host 459 drivers/ata/sata_svw.c mmio_base = host->iomap[bar_pos]; host 464 drivers/ata/sata_svw.c for (i = 0; i < host->n_ports; i++) { host 465 drivers/ata/sata_svw.c struct ata_port *ap = host->ports[i]; host 490 drivers/ata/sata_svw.c return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, host 208 drivers/ata/sata_sx4.c static unsigned int pdc20621_dimm_init(struct ata_host *host); host 209 drivers/ata/sata_sx4.c static int pdc20621_detect_dimm(struct ata_host *host); host 210 drivers/ata/sata_sx4.c static unsigned int pdc20621_i2c_read(struct ata_host *host, host 212 drivers/ata/sata_sx4.c static int pdc20621_prog_dimm0(struct ata_host *host); host 213 drivers/ata/sata_sx4.c static unsigned int pdc20621_prog_dimm_global(struct ata_host *host); host 215 drivers/ata/sata_sx4.c static void pdc20621_get_from_dimm(struct ata_host *host, host 218 drivers/ata/sata_sx4.c static void pdc20621_put_to_dimm(struct ata_host *host, host 285 drivers/ata/sata_sx4.c struct device *dev = ap->host->dev; host 442 drivers/ata/sata_sx4.c void __iomem *mmio = ap->host->iomap[PDC_MMIO_BAR]; host 443 drivers/ata/sata_sx4.c void __iomem *dimm_mmio = ap->host->iomap[PDC_DIMM_BAR]; host 502 drivers/ata/sata_sx4.c void __iomem *mmio = ap->host->iomap[PDC_MMIO_BAR]; host 503 drivers/ata/sata_sx4.c void __iomem *dimm_mmio = ap->host->iomap[PDC_DIMM_BAR]; host 552 drivers/ata/sata_sx4.c struct ata_host *host = ap->host; host 553 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 570 drivers/ata/sata_sx4.c struct pdc_host_priv *pp = ap->host->private_data; host 588 drivers/ata/sata_sx4.c struct pdc_host_priv *pp = ap->host->private_data; host 607 drivers/ata/sata_sx4.c void __iomem *dimm_mmio = ap->host->iomap[PDC_DIMM_BAR]; host 624 drivers/ata/sata_sx4.c struct ata_host *host = ap->host; host 626 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 775 drivers/ata/sata_sx4.c struct ata_host *host = dev_instance; host 784 drivers/ata/sata_sx4.c if (!host || !host->iomap[PDC_MMIO_BAR]) { host 789 drivers/ata/sata_sx4.c mmio_base = host->iomap[PDC_MMIO_BAR]; host 806 drivers/ata/sata_sx4.c spin_lock(&host->lock); host 812 drivers/ata/sata_sx4.c if (port_no >= host->n_ports) host 815 drivers/ata/sata_sx4.c ap = host->ports[port_no]; host 828 drivers/ata/sata_sx4.c spin_unlock(&host->lock); host 981 drivers/ata/sata_sx4.c static void pdc20621_get_from_dimm(struct ata_host *host, void *psource, host 988 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 989 drivers/ata/sata_sx4.c void __iomem *dimm_mmio = host->iomap[PDC_DIMM_BAR]; host 1033 drivers/ata/sata_sx4.c static void pdc20621_put_to_dimm(struct ata_host *host, void *psource, host 1040 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 1041 drivers/ata/sata_sx4.c void __iomem *dimm_mmio = host->iomap[PDC_DIMM_BAR]; host 1083 drivers/ata/sata_sx4.c static unsigned int pdc20621_i2c_read(struct ata_host *host, u32 device, host 1086 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 1119 drivers/ata/sata_sx4.c static int pdc20621_detect_dimm(struct ata_host *host) host 1122 drivers/ata/sata_sx4.c if (pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS, host 1129 drivers/ata/sata_sx4.c if (pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS, 9, &data)) { host 1139 drivers/ata/sata_sx4.c static int pdc20621_prog_dimm0(struct ata_host *host) host 1145 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 1168 drivers/ata/sata_sx4.c pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS, host 1204 drivers/ata/sata_sx4.c static unsigned int pdc20621_prog_dimm_global(struct ata_host *host) host 1208 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 1225 drivers/ata/sata_sx4.c if (!pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS, host 1256 drivers/ata/sata_sx4.c static unsigned int pdc20621_dimm_init(struct ata_host *host) host 1265 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 1324 drivers/ata/sata_sx4.c if (!(speed = pdc20621_detect_dimm(host))) { host 1331 drivers/ata/sata_sx4.c size = pdc20621_prog_dimm0(host); host 1335 drivers/ata/sata_sx4.c if (pdc20621_prog_dimm_global(host)) { host 1350 drivers/ata/sata_sx4.c pdc20621_put_to_dimm(host, test_parttern2, 0x10040, 40); host 1351 drivers/ata/sata_sx4.c pdc20621_put_to_dimm(host, test_parttern2, 0x40, 40); host 1353 drivers/ata/sata_sx4.c pdc20621_put_to_dimm(host, test_parttern1, 0x10040, 40); host 1354 drivers/ata/sata_sx4.c pdc20621_get_from_dimm(host, test_parttern2, 0x40, 40); host 1357 drivers/ata/sata_sx4.c pdc20621_get_from_dimm(host, test_parttern2, 0x10040, host 1362 drivers/ata/sata_sx4.c pdc20621_put_to_dimm(host, test_parttern1, 0x40, 40); host 1363 drivers/ata/sata_sx4.c pdc20621_get_from_dimm(host, test_parttern2, 0x40, 40); host 1371 drivers/ata/sata_sx4.c if (!pdc20621_i2c_read(host, PDC_DIMM0_SPD_DEV_ADDRESS, host 1386 drivers/ata/sata_sx4.c pdc20621_put_to_dimm(host, buf, addr, host 1397 drivers/ata/sata_sx4.c static void pdc_20621_init(struct ata_host *host) host 1400 drivers/ata/sata_sx4.c void __iomem *mmio = host->iomap[PDC_MMIO_BAR]; host 1433 drivers/ata/sata_sx4.c struct ata_host *host; host 1440 drivers/ata/sata_sx4.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, 4); host 1442 drivers/ata/sata_sx4.c if (!host || !hpriv) host 1445 drivers/ata/sata_sx4.c host->private_data = hpriv; host 1458 drivers/ata/sata_sx4.c host->iomap = pcim_iomap_table(pdev); host 1461 drivers/ata/sata_sx4.c struct ata_port *ap = host->ports[i]; host 1462 drivers/ata/sata_sx4.c void __iomem *base = host->iomap[PDC_MMIO_BAR] + PDC_CHIP0_OFS; host 1477 drivers/ata/sata_sx4.c if (pdc20621_dimm_init(host)) host 1479 drivers/ata/sata_sx4.c pdc_20621_init(host); host 1482 drivers/ata/sata_sx4.c return ata_host_activate(host, pdev->irq, pdc20621_interrupt, host 89 drivers/ata/sata_uli.c struct uli_priv *hpriv = ap->host->private_data; host 95 drivers/ata/sata_uli.c struct pci_dev *pdev = to_pci_dev(link->ap->host->dev); host 105 drivers/ata/sata_uli.c struct pci_dev *pdev = to_pci_dev(link->ap->host->dev); host 133 drivers/ata/sata_uli.c struct ata_host *host; host 150 drivers/ata/sata_uli.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, n_ports); host 151 drivers/ata/sata_uli.c if (!host) host 157 drivers/ata/sata_uli.c host->private_data = hpriv; host 160 drivers/ata/sata_uli.c rc = ata_pci_sff_init_host(host); host 164 drivers/ata/sata_uli.c ata_pci_bmdma_init(host); host 166 drivers/ata/sata_uli.c iomap = host->iomap; host 176 drivers/ata/sata_uli.c ioaddr = &host->ports[2]->ioaddr; host 185 drivers/ata/sata_uli.c ata_port_desc(host->ports[2], host 191 drivers/ata/sata_uli.c ioaddr = &host->ports[3]->ioaddr; host 200 drivers/ata/sata_uli.c ata_port_desc(host->ports[2], host 225 drivers/ata/sata_uli.c return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, host 204 drivers/ata/sata_via.c struct pci_dev *pdev = to_pci_dev(link->ap->host->dev); host 252 drivers/ata/sata_via.c struct pci_dev *pdev = to_pci_dev(link->ap->host->dev); host 393 drivers/ata/sata_via.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 404 drivers/ata/sata_via.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 412 drivers/ata/sata_via.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 438 drivers/ata/sata_via.c void __iomem * const * iomap = ap->host->iomap; host 459 drivers/ata/sata_via.c struct ata_host *host; host 467 drivers/ata/sata_via.c rc = ata_pci_bmdma_prepare_host(pdev, ppi, &host); host 470 drivers/ata/sata_via.c *r_host = host; host 478 drivers/ata/sata_via.c host->ports[0]->ioaddr.scr_addr = svia_scr_addr(host->iomap[5], 0); host 479 drivers/ata/sata_via.c host->ports[1]->ioaddr.scr_addr = svia_scr_addr(host->iomap[5], 1); host 488 drivers/ata/sata_via.c struct ata_host *host; host 491 drivers/ata/sata_via.c *r_host = host = ata_host_alloc_pinfo(&pdev->dev, ppi, ARRAY_SIZE(ppi)); host 492 drivers/ata/sata_via.c if (!host) { host 503 drivers/ata/sata_via.c host->iomap = pcim_iomap_table(pdev); host 505 drivers/ata/sata_via.c for (i = 0; i < host->n_ports; i++) host 506 drivers/ata/sata_via.c vt6421_init_addrs(host->ports[i]); host 514 drivers/ata/sata_via.c struct ata_host *host; host 517 drivers/ata/sata_via.c rc = ata_pci_bmdma_prepare_host(pdev, ppi, &host); host 520 drivers/ata/sata_via.c *r_host = host; host 529 drivers/ata/sata_via.c for (i = 0; i < host->n_ports; i++) host 530 drivers/ata/sata_via.c ata_slave_link_init(host->ports[i]); host 545 drivers/ata/sata_via.c struct ata_host *host = dev_instance; host 553 drivers/ata/sata_via.c spin_lock_irqsave(&host->lock, flags); host 555 drivers/ata/sata_via.c svia_scr_read(&host->ports[0]->link, SCR_ERROR, &serror); host 557 drivers/ata/sata_via.c ata_ehi_hotplugged(&host->ports[0]->link.eh_info); host 558 drivers/ata/sata_via.c ata_port_freeze(host->ports[0]); host 562 drivers/ata/sata_via.c svia_scr_read(&host->ports[1]->link, SCR_ERROR, &serror); host 564 drivers/ata/sata_via.c ata_ehi_hotplugged(&host->ports[1]->link.eh_info); host 565 drivers/ata/sata_via.c ata_port_freeze(host->ports[1]); host 568 drivers/ata/sata_via.c spin_unlock_irqrestore(&host->lock, flags); host 576 drivers/ata/sata_via.c struct svia_priv *hpriv = ap->host->private_data; host 577 drivers/ata/sata_via.c struct pci_dev *pdev = to_pci_dev(ap->host->dev); host 680 drivers/ata/sata_via.c struct ata_host *host = NULL; host 709 drivers/ata/sata_via.c rc = vt6420_prepare_host(pdev, &host); host 712 drivers/ata/sata_via.c rc = vt6421_prepare_host(pdev, &host); host 715 drivers/ata/sata_via.c rc = vt8251_prepare_host(pdev, &host); host 726 drivers/ata/sata_via.c host->private_data = hpriv; host 732 drivers/ata/sata_via.c return ata_host_activate(host, pdev->irq, vt642x_interrupt, host 735 drivers/ata/sata_via.c return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, host 742 drivers/ata/sata_via.c struct ata_host *host = pci_get_drvdata(pdev); host 743 drivers/ata/sata_via.c struct svia_priv *hpriv = host->private_data; host 752 drivers/ata/sata_via.c ata_host_resume(host); host 108 drivers/ata/sata_vsc.c mask_addr = ap->host->iomap[VSC_MMIO_BAR] + host 119 drivers/ata/sata_vsc.c mask_addr = ap->host->iomap[VSC_MMIO_BAR] + host 131 drivers/ata/sata_vsc.c mask_addr = ap->host->iomap[VSC_MMIO_BAR] + host 250 drivers/ata/sata_vsc.c struct ata_host *host = dev_instance; host 255 drivers/ata/sata_vsc.c status = readl(host->iomap[VSC_MMIO_BAR] + VSC_SATA_INT_STAT_OFFSET); host 259 drivers/ata/sata_vsc.c dev_err(host->dev, host 264 drivers/ata/sata_vsc.c spin_lock(&host->lock); host 266 drivers/ata/sata_vsc.c for (i = 0; i < host->n_ports; i++) { host 269 drivers/ata/sata_vsc.c vsc_port_intr(port_status, host->ports[i]); host 274 drivers/ata/sata_vsc.c spin_unlock(&host->lock); host 331 drivers/ata/sata_vsc.c struct ata_host *host; host 339 drivers/ata/sata_vsc.c host = ata_host_alloc_pinfo(&pdev->dev, ppi, 4); host 340 drivers/ata/sata_vsc.c if (!host) host 357 drivers/ata/sata_vsc.c host->iomap = pcim_iomap_table(pdev); host 359 drivers/ata/sata_vsc.c mmio_base = host->iomap[VSC_MMIO_BAR]; host 361 drivers/ata/sata_vsc.c for (i = 0; i < host->n_ports; i++) { host 362 drivers/ata/sata_vsc.c struct ata_port *ap = host->ports[i]; host 398 drivers/ata/sata_vsc.c return ata_host_activate(host, pdev->irq, vsc_sata_interrupt, host 149 drivers/block/loop.c loopsize = i_size_read(file->f_mapping->host); host 174 drivers/block/loop.c struct inode *inode = mapping->host; host 652 drivers/block/loop.c struct inode *i = file->f_mapping->host; host 659 drivers/block/loop.c struct inode *inode = file->f_mapping->host; host 666 drivers/block/loop.c if (f->f_mapping->host->i_bdev == bdev) host 669 drivers/block/loop.c l = f->f_mapping->host->i_bdev->bd_disk->private_data; host 864 drivers/block/loop.c struct inode *inode = file->f_mapping->host; host 936 drivers/block/loop.c struct inode *file_inode = file->f_mapping->host; host 996 drivers/block/loop.c inode = mapping->host; host 245 drivers/block/sx8.c struct carm_host *host; host 461 drivers/block/sx8.c static inline void *carm_ref_msg(struct carm_host *host, host 464 drivers/block/sx8.c return host->msg_base + (msg_idx * CARM_MSG_SIZE); host 467 drivers/block/sx8.c static inline dma_addr_t carm_ref_msg_dma(struct carm_host *host, host 470 drivers/block/sx8.c return host->msg_dma + (msg_idx * CARM_MSG_SIZE); host 473 drivers/block/sx8.c static int carm_send_msg(struct carm_host *host, host 476 drivers/block/sx8.c void __iomem *mmio = host->mmio; host 477 drivers/block/sx8.c u32 msg = (u32) carm_ref_msg_dma(host, tag); host 502 drivers/block/sx8.c static int carm_array_info (struct carm_host *host, unsigned int array_idx) host 511 drivers/block/sx8.c rq = blk_mq_alloc_request(host->oob_q, REQ_OP_DRV_OUT, 0); host 518 drivers/block/sx8.c ioc = carm_ref_msg(host, rq->tag); host 519 drivers/block/sx8.c msg_dma = carm_ref_msg_dma(host, rq->tag); host 536 drivers/block/sx8.c spin_lock_irq(&host->lock); host 537 drivers/block/sx8.c assert(host->state == HST_DEV_SCAN_START || host 538 drivers/block/sx8.c host->state == HST_DEV_SCAN); host 539 drivers/block/sx8.c spin_unlock_irq(&host->lock); host 542 drivers/block/sx8.c blk_execute_rq_nowait(host->oob_q, NULL, rq, true, NULL); host 547 drivers/block/sx8.c spin_lock_irq(&host->lock); host 548 drivers/block/sx8.c host->state = HST_ERROR; host 549 drivers/block/sx8.c spin_unlock_irq(&host->lock); host 555 drivers/block/sx8.c static int carm_send_special (struct carm_host *host, carm_sspc_t func) host 564 drivers/block/sx8.c rq = blk_mq_alloc_request(host->oob_q, REQ_OP_DRV_OUT, 0); host 569 drivers/block/sx8.c mem = carm_ref_msg(host, rq->tag); host 571 drivers/block/sx8.c msg_size = func(host, rq->tag, mem); host 581 drivers/block/sx8.c blk_execute_rq_nowait(host->oob_q, NULL, rq, true, NULL); host 586 drivers/block/sx8.c static unsigned int carm_fill_sync_time(struct carm_host *host, host 602 drivers/block/sx8.c static unsigned int carm_fill_alloc_buf(struct carm_host *host, host 613 drivers/block/sx8.c ab->addr = cpu_to_le32(host->shm_dma + (PDC_SHM_SIZE >> 1)); host 615 drivers/block/sx8.c ab->evt_pool = cpu_to_le32(host->shm_dma + (16 * 1024)); host 617 drivers/block/sx8.c ab->rbuf_pool = cpu_to_le32(host->shm_dma); host 619 drivers/block/sx8.c ab->msg_pool = cpu_to_le32(host->shm_dma + RBUF_LEN); host 621 drivers/block/sx8.c ab->sg[0].start = cpu_to_le32(host->shm_dma + (PDC_SHM_SIZE >> 1)); host 627 drivers/block/sx8.c static unsigned int carm_fill_scan_channels(struct carm_host *host, host 631 drivers/block/sx8.c u32 msg_data = (u32) (carm_ref_msg_dma(host, idx) + host 647 drivers/block/sx8.c static unsigned int carm_fill_get_fw_ver(struct carm_host *host, host 651 drivers/block/sx8.c u32 msg_data = (u32) (carm_ref_msg_dma(host, idx) + sizeof(*ioc)); host 663 drivers/block/sx8.c static inline void carm_push_q (struct carm_host *host, struct request_queue *q) host 665 drivers/block/sx8.c unsigned int idx = host->wait_q_prod % CARM_MAX_WAIT_Q; host 670 drivers/block/sx8.c host->wait_q[idx] = q; host 671 drivers/block/sx8.c host->wait_q_prod++; host 672 drivers/block/sx8.c BUG_ON(host->wait_q_prod == host->wait_q_cons); /* overrun */ host 675 drivers/block/sx8.c static inline struct request_queue *carm_pop_q(struct carm_host *host) host 679 drivers/block/sx8.c if (host->wait_q_prod == host->wait_q_cons) host 682 drivers/block/sx8.c idx = host->wait_q_cons % CARM_MAX_WAIT_Q; host 683 drivers/block/sx8.c host->wait_q_cons++; host 685 drivers/block/sx8.c return host->wait_q[idx]; host 688 drivers/block/sx8.c static inline void carm_round_robin(struct carm_host *host) host 690 drivers/block/sx8.c struct request_queue *q = carm_pop_q(host); host 708 drivers/block/sx8.c struct carm_host *host = port->host; host 721 drivers/block/sx8.c spin_lock_irq(&host->lock); host 732 drivers/block/sx8.c n_elem = dma_map_sg(&host->pdev->dev, sg, n_elem, carm_rq_dir(rq)); host 737 drivers/block/sx8.c if (host->hw_sg_used >= CARM_MAX_HOST_SG - n_elem) host 741 drivers/block/sx8.c host->hw_sg_used += n_elem; host 748 drivers/block/sx8.c msg = (struct carm_msg_rw *) carm_ref_msg(host, rq->tag); host 783 drivers/block/sx8.c rc = carm_send_msg(host, crq, rq->tag); host 785 drivers/block/sx8.c host->hw_sg_used -= n_elem; host 789 drivers/block/sx8.c spin_unlock_irq(&host->lock); host 792 drivers/block/sx8.c dma_unmap_sg(&host->pdev->dev, &crq->sg[0], n_elem, carm_rq_dir(rq)); host 793 drivers/block/sx8.c carm_push_q(host, q); host 794 drivers/block/sx8.c spin_unlock_irq(&host->lock); host 797 drivers/block/sx8.c carm_round_robin(host); host 798 drivers/block/sx8.c spin_unlock_irq(&host->lock); host 802 drivers/block/sx8.c static void carm_handle_array_info(struct carm_host *host, host 820 drivers/block/sx8.c cur_port = host->cur_scan_dev; host 829 drivers/block/sx8.c port = &host->port[cur_port]; host 839 drivers/block/sx8.c host->dev_active |= (1 << cur_port); host 850 drivers/block/sx8.c pci_name(host->pdev), port->port_no, host 853 drivers/block/sx8.c pci_name(host->pdev), port->port_no, port->name); host 856 drivers/block/sx8.c assert(host->state == HST_DEV_SCAN); host 857 drivers/block/sx8.c schedule_work(&host->fsm_task); host 860 drivers/block/sx8.c static void carm_handle_scan_chan(struct carm_host *host, host 878 drivers/block/sx8.c host->dev_present |= (1 << i); host 883 drivers/block/sx8.c pci_name(host->pdev), dev_count); host 886 drivers/block/sx8.c assert(host->state == HST_PORT_SCAN); host 887 drivers/block/sx8.c host->state = new_state; host 888 drivers/block/sx8.c schedule_work(&host->fsm_task); host 891 drivers/block/sx8.c static void carm_handle_generic(struct carm_host *host, host 897 drivers/block/sx8.c assert(host->state == cur_state); host 899 drivers/block/sx8.c host->state = HST_ERROR; host 901 drivers/block/sx8.c host->state = next_state; host 902 drivers/block/sx8.c schedule_work(&host->fsm_task); host 905 drivers/block/sx8.c static inline void carm_handle_resp(struct carm_host *host, host 919 drivers/block/sx8.c pci_name(host->pdev), handle); host 926 drivers/block/sx8.c rq = blk_mq_tag_to_rq(host->tag_set.tags[0], msg_idx); host 932 drivers/block/sx8.c dma_unmap_sg(&host->pdev->dev, &crq->sg[0], crq->n_elem, host 937 drivers/block/sx8.c mem = carm_ref_msg(host, msg_idx); host 943 drivers/block/sx8.c carm_handle_scan_chan(host, crq, mem, error); host 955 drivers/block/sx8.c carm_handle_generic(host, crq, error, host 959 drivers/block/sx8.c carm_handle_generic(host, crq, error, host 966 drivers/block/sx8.c host->fw_ver = le32_to_cpu(ver->version); host 967 drivers/block/sx8.c host->flags |= (ver->features & FL_FW_VER_MASK); host 969 drivers/block/sx8.c carm_handle_generic(host, crq, error, host 983 drivers/block/sx8.c carm_handle_array_info(host, crq, mem, error); host 1001 drivers/block/sx8.c pci_name(host->pdev), crq->msg_type, crq->msg_subtype); host 1004 drivers/block/sx8.c host->hw_sg_used -= crq->n_elem; host 1007 drivers/block/sx8.c if (host->hw_sg_used <= CARM_SG_LOW_WATER) host 1008 drivers/block/sx8.c carm_round_robin(host); host 1011 drivers/block/sx8.c static inline void carm_handle_responses(struct carm_host *host) host 1013 drivers/block/sx8.c void __iomem *mmio = host->mmio; host 1014 drivers/block/sx8.c struct carm_response *resp = (struct carm_response *) host->shm; host 1016 drivers/block/sx8.c unsigned int idx = host->resp_idx % RMSG_Q_LEN; host 1030 drivers/block/sx8.c carm_handle_resp(host, resp[idx].ret_handle, status); host 1039 drivers/block/sx8.c pci_name(host->pdev), (int) evt_type); host 1048 drivers/block/sx8.c host->resp_idx += work; host 1053 drivers/block/sx8.c struct carm_host *host = __host; host 1059 drivers/block/sx8.c if (!host) { host 1064 drivers/block/sx8.c spin_lock_irqsave(&host->lock, flags); host 1066 drivers/block/sx8.c mmio = host->mmio; host 1079 drivers/block/sx8.c if (unlikely(host->state == HST_INVALID)) { host 1086 drivers/block/sx8.c carm_handle_responses(host); host 1090 drivers/block/sx8.c spin_unlock_irqrestore(&host->lock, flags); host 1097 drivers/block/sx8.c struct carm_host *host = host 1105 drivers/block/sx8.c spin_lock_irqsave(&host->lock, flags); host 1106 drivers/block/sx8.c state = host->state; host 1107 drivers/block/sx8.c spin_unlock_irqrestore(&host->lock, flags); host 1118 drivers/block/sx8.c rc = carm_send_special(host, carm_fill_alloc_buf); host 1126 drivers/block/sx8.c rc = carm_send_special(host, carm_fill_sync_time); host 1134 drivers/block/sx8.c rc = carm_send_special(host, carm_fill_get_fw_ver); host 1142 drivers/block/sx8.c rc = carm_send_special(host, carm_fill_scan_channels); host 1150 drivers/block/sx8.c host->cur_scan_dev = -1; host 1157 drivers/block/sx8.c for (i = host->cur_scan_dev + 1; i < CARM_MAX_PORTS; i++) host 1158 drivers/block/sx8.c if (host->dev_present & (1 << i)) { host 1164 drivers/block/sx8.c host->cur_scan_dev = next_dev; host 1165 drivers/block/sx8.c rc = carm_array_info(host, next_dev); host 1179 drivers/block/sx8.c if (host->dev_active & (1 << i)) { host 1180 drivers/block/sx8.c struct carm_port *port = &host->port[i]; host 1189 drivers/block/sx8.c pci_name(host->pdev), activated); host 1197 drivers/block/sx8.c complete(&host->probe_comp); host 1212 drivers/block/sx8.c spin_lock_irqsave(&host->lock, flags); host 1213 drivers/block/sx8.c host->state = new_state; host 1214 drivers/block/sx8.c spin_unlock_irqrestore(&host->lock, flags); host 1217 drivers/block/sx8.c schedule_work(&host->fsm_task); host 1244 drivers/block/sx8.c static void carm_init_responses(struct carm_host *host) host 1246 drivers/block/sx8.c void __iomem *mmio = host->mmio; host 1248 drivers/block/sx8.c struct carm_response *resp = (struct carm_response *) host->shm; host 1256 drivers/block/sx8.c static int carm_init_host(struct carm_host *host) host 1258 drivers/block/sx8.c void __iomem *mmio = host->mmio; host 1307 drivers/block/sx8.c writel(host->shm_dma & 0xffffffff, mmio + RBUF_ADDR_LO); host 1308 drivers/block/sx8.c writel((host->shm_dma >> 16) >> 16, mmio + RBUF_ADDR_HI); host 1325 drivers/block/sx8.c carm_init_responses(host); host 1328 drivers/block/sx8.c spin_lock_irq(&host->lock); host 1329 drivers/block/sx8.c assert(host->state == HST_INVALID); host 1330 drivers/block/sx8.c host->state = HST_PROBE_START; host 1331 drivers/block/sx8.c spin_unlock_irq(&host->lock); host 1332 drivers/block/sx8.c schedule_work(&host->fsm_task); host 1342 drivers/block/sx8.c static int carm_init_disk(struct carm_host *host, unsigned int port_no) host 1344 drivers/block/sx8.c struct carm_port *port = &host->port[port_no]; host 1348 drivers/block/sx8.c port->host = host; host 1357 drivers/block/sx8.c (unsigned int)host->id * CARM_MAX_PORTS + port_no); host 1358 drivers/block/sx8.c disk->major = host->major; host 1363 drivers/block/sx8.c q = blk_mq_init_queue(&host->tag_set); host 1375 drivers/block/sx8.c static void carm_free_disk(struct carm_host *host, unsigned int port_no) host 1377 drivers/block/sx8.c struct carm_port *port = &host->port[port_no]; host 1390 drivers/block/sx8.c static int carm_init_shm(struct carm_host *host) host 1392 drivers/block/sx8.c host->shm = dma_alloc_coherent(&host->pdev->dev, CARM_SHM_SIZE, host 1393 drivers/block/sx8.c &host->shm_dma, GFP_KERNEL); host 1394 drivers/block/sx8.c if (!host->shm) host 1397 drivers/block/sx8.c host->msg_base = host->shm + RBUF_LEN; host 1398 drivers/block/sx8.c host->msg_dma = host->shm_dma + RBUF_LEN; host 1400 drivers/block/sx8.c memset(host->shm, 0xff, RBUF_LEN); host 1401 drivers/block/sx8.c memset(host->msg_base, 0, PDC_SHM_SIZE - RBUF_LEN); host 1408 drivers/block/sx8.c struct carm_host *host; host 1430 drivers/block/sx8.c host = kzalloc(sizeof(*host), GFP_KERNEL); host 1431 drivers/block/sx8.c if (!host) { host 1438 drivers/block/sx8.c host->pdev = pdev; host 1439 drivers/block/sx8.c spin_lock_init(&host->lock); host 1440 drivers/block/sx8.c INIT_WORK(&host->fsm_task, carm_fsm_task); host 1441 drivers/block/sx8.c init_completion(&host->probe_comp); host 1443 drivers/block/sx8.c host->mmio = ioremap(pci_resource_start(pdev, 0), host 1445 drivers/block/sx8.c if (!host->mmio) { host 1452 drivers/block/sx8.c rc = carm_init_shm(host); host 1459 drivers/block/sx8.c memset(&host->tag_set, 0, sizeof(host->tag_set)); host 1460 drivers/block/sx8.c host->tag_set.ops = &carm_mq_ops; host 1461 drivers/block/sx8.c host->tag_set.cmd_size = sizeof(struct carm_request); host 1462 drivers/block/sx8.c host->tag_set.nr_hw_queues = 1; host 1463 drivers/block/sx8.c host->tag_set.nr_maps = 1; host 1464 drivers/block/sx8.c host->tag_set.queue_depth = max_queue; host 1465 drivers/block/sx8.c host->tag_set.numa_node = NUMA_NO_NODE; host 1466 drivers/block/sx8.c host->tag_set.flags = BLK_MQ_F_SHOULD_MERGE; host 1468 drivers/block/sx8.c rc = blk_mq_alloc_tag_set(&host->tag_set); host 1472 drivers/block/sx8.c q = blk_mq_init_queue(&host->tag_set); host 1475 drivers/block/sx8.c blk_mq_free_tag_set(&host->tag_set); host 1479 drivers/block/sx8.c host->oob_q = q; host 1480 drivers/block/sx8.c q->queuedata = host; host 1486 drivers/block/sx8.c host->major = 160; host 1488 drivers/block/sx8.c host->major = 161; host 1490 drivers/block/sx8.c host->flags |= FL_DYN_MAJOR; host 1492 drivers/block/sx8.c host->id = carm_host_id; host 1493 drivers/block/sx8.c sprintf(host->name, DRV_NAME "%d", carm_host_id); host 1495 drivers/block/sx8.c rc = register_blkdev(host->major, host->name); host 1498 drivers/block/sx8.c if (host->flags & FL_DYN_MAJOR) host 1499 drivers/block/sx8.c host->major = rc; host 1502 drivers/block/sx8.c rc = carm_init_disk(host, i); host 1509 drivers/block/sx8.c rc = request_irq(pdev->irq, carm_interrupt, IRQF_SHARED, DRV_NAME, host); host 1516 drivers/block/sx8.c rc = carm_init_host(host); host 1521 drivers/block/sx8.c wait_for_completion(&host->probe_comp); host 1524 drivers/block/sx8.c host->name, pci_name(pdev), (int) CARM_MAX_PORTS, host 1526 drivers/block/sx8.c pdev->irq, host->major); host 1529 drivers/block/sx8.c pci_set_drvdata(pdev, host); host 1533 drivers/block/sx8.c free_irq(pdev->irq, host); host 1536 drivers/block/sx8.c carm_free_disk(host, i); host 1537 drivers/block/sx8.c unregister_blkdev(host->major, host->name); host 1539 drivers/block/sx8.c if (host->major == 160) host 1541 drivers/block/sx8.c else if (host->major == 161) host 1543 drivers/block/sx8.c blk_cleanup_queue(host->oob_q); host 1544 drivers/block/sx8.c blk_mq_free_tag_set(&host->tag_set); host 1546 drivers/block/sx8.c dma_free_coherent(&pdev->dev, CARM_SHM_SIZE, host->shm, host->shm_dma); host 1548 drivers/block/sx8.c iounmap(host->mmio); host 1550 drivers/block/sx8.c kfree(host); host 1560 drivers/block/sx8.c struct carm_host *host = pci_get_drvdata(pdev); host 1563 drivers/block/sx8.c if (!host) { host 1569 drivers/block/sx8.c free_irq(pdev->irq, host); host 1571 drivers/block/sx8.c carm_free_disk(host, i); host 1572 drivers/block/sx8.c unregister_blkdev(host->major, host->name); host 1573 drivers/block/sx8.c if (host->major == 160) host 1575 drivers/block/sx8.c else if (host->major == 161) host 1577 drivers/block/sx8.c blk_cleanup_queue(host->oob_q); host 1578 drivers/block/sx8.c blk_mq_free_tag_set(&host->tag_set); host 1579 drivers/block/sx8.c dma_free_coherent(&pdev->dev, CARM_SHM_SIZE, host->shm, host->shm_dma); host 1580 drivers/block/sx8.c iounmap(host->mmio); host 1581 drivers/block/sx8.c kfree(host); host 482 drivers/block/zram/zram_drv.c inode = mapping->host; host 285 drivers/bluetooth/btsdio.c !mmc_card_is_removable(func->card->host)) { host 345 drivers/bus/hisi_lpc.c struct acpi_device *host, host 351 drivers/bus/hisi_lpc.c sys_port = logic_pio_trans_hwaddr(&host->fwnode, res->start, len); host 379 drivers/bus/hisi_lpc.c struct acpi_device *host; host 389 drivers/bus/hisi_lpc.c host = to_acpi_device(hostdev); host 433 drivers/bus/hisi_lpc.c ret = hisi_lpc_acpi_xlat_io_res(adev, host, &resources[i]); host 376 drivers/dax/device.c inode->i_mapping->host = __dax_inode; host 215 drivers/dax/super.c const char *host; host 397 drivers/dax/super.c static int dax_host_hash(const char *host) host 399 drivers/dax/super.c return hashlen_hash(hashlen_string("DAX", host)) % DAX_HASH_SIZE; host 451 drivers/dax/super.c kfree(dax_dev->host); host 452 drivers/dax/super.c dax_dev->host = NULL; host 527 drivers/dax/super.c static void dax_add_host(struct dax_device *dax_dev, const char *host) host 536 drivers/dax/super.c dax_dev->host = host; host 537 drivers/dax/super.c if (!host) host 540 drivers/dax/super.c hash = dax_host_hash(host); host 550 drivers/dax/super.c const char *host; host 554 drivers/dax/super.c host = kstrdup(__host, GFP_KERNEL); host 555 drivers/dax/super.c if (__host && !host) host 567 drivers/dax/super.c dax_add_host(dax_dev, host); host 578 drivers/dax/super.c kfree(host); host 595 drivers/dax/super.c struct dax_device *dax_get_by_host(const char *host) host 600 drivers/dax/super.c if (!host) host 603 drivers/dax/super.c hash = dax_host_hash(host); host 609 drivers/dax/super.c || strcmp(host, dax_dev->host) != 0) host 254 drivers/dma/amba-pl08x.c struct pl08x_driver_data *host; host 335 drivers/dma/amba-pl08x.c const struct pl08x_platform_data *pd = plchan->host->pd; host 352 drivers/dma/amba-pl08x.c const struct pl08x_platform_data *pd = plchan->host->pd; host 529 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 755 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 861 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 883 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 905 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 1517 drivers/dma/amba-pl08x.c pl08x_free_txd(plchan->host, txd); host 1894 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 1927 drivers/dma/amba-pl08x.c ret = pl08x_fill_llis_for_desc(plchan->host, txd); host 1942 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 2055 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 2081 drivers/dma/amba-pl08x.c ret = pl08x_fill_llis_for_desc(plchan->host, txd); host 2097 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 2124 drivers/dma/amba-pl08x.c ret = pl08x_fill_llis_for_desc(plchan->host, txd); host 2138 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 2163 drivers/dma/amba-pl08x.c struct pl08x_driver_data *pl08x = plchan->host; host 2387 drivers/dma/amba-pl08x.c chan->host = pl08x; host 198 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *host; host 221 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *host; host 261 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 288 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 341 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = phy->host; host 442 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 538 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 561 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 583 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 652 drivers/dma/s3c24xx-dma.c dev_dbg(&phy->host->pdev->dev, "interrupt on channel %d\n", phy->id); host 662 drivers/dma/s3c24xx-dma.c dev_err(&phy->host->pdev->dev, "interrupt on unused channel %d\n", host 711 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 820 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 882 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 980 drivers/dma/s3c24xx-dma.c struct s3c24xx_dma_engine *s3cdma = s3cchan->host; host 1107 drivers/dma/s3c24xx-dma.c chan->host = s3cdma; host 1237 drivers/dma/s3c24xx-dma.c phy->host = s3cdma; host 246 drivers/firmware/ti_sci.c hdr->type, hdr->host, hdr->seq, hdr->flags); host 376 drivers/firmware/ti_sci.c hdr->host = info->host_id; host 91 drivers/firmware/ti_sci.h u8 host; host 142 drivers/gpu/drm/bridge/adv7511/adv7533.c struct mipi_dsi_host *host; host 150 drivers/gpu/drm/bridge/adv7511/adv7533.c host = of_find_mipi_dsi_host_by_node(adv->host_node); host 151 drivers/gpu/drm/bridge/adv7511/adv7533.c if (!host) { host 156 drivers/gpu/drm/bridge/adv7511/adv7533.c dsi = mipi_dsi_device_register_full(host, &info); host 473 drivers/gpu/drm/bridge/cdns-dsi.c static inline struct cdns_dsi *to_cdns_dsi(struct mipi_dsi_host *host) host 475 drivers/gpu/drm/bridge/cdns-dsi.c return container_of(host, struct cdns_dsi, base); host 923 drivers/gpu/drm/bridge/cdns-dsi.c static int cdns_dsi_attach(struct mipi_dsi_host *host, host 926 drivers/gpu/drm/bridge/cdns-dsi.c struct cdns_dsi *dsi = to_cdns_dsi(host); host 970 drivers/gpu/drm/bridge/cdns-dsi.c dev_err(host->dev, "failed to add DSI device %s (err = %d)", host 989 drivers/gpu/drm/bridge/cdns-dsi.c static int cdns_dsi_detach(struct mipi_dsi_host *host, host 992 drivers/gpu/drm/bridge/cdns-dsi.c struct cdns_dsi *dsi = to_cdns_dsi(host); host 1021 drivers/gpu/drm/bridge/cdns-dsi.c static ssize_t cdns_dsi_transfer(struct mipi_dsi_host *host, host 1024 drivers/gpu/drm/bridge/cdns-dsi.c struct cdns_dsi *dsi = to_cdns_dsi(host); host 1029 drivers/gpu/drm/bridge/cdns-dsi.c ret = pm_runtime_get_sync(host->dev); host 1133 drivers/gpu/drm/bridge/cdns-dsi.c pm_runtime_put(host->dev); host 273 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c static inline struct dw_mipi_dsi *host_to_dsi(struct mipi_dsi_host *host) host 275 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c return container_of(host, struct dw_mipi_dsi, dsi_host); host 293 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c static int dw_mipi_dsi_host_attach(struct mipi_dsi_host *host, host 296 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c struct dw_mipi_dsi *dsi = host_to_dsi(host); host 313 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c ret = drm_of_find_panel_or_bridge(host->dev->of_node, 1, 0, host 337 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c static int dw_mipi_dsi_host_detach(struct mipi_dsi_host *host, host 340 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c struct dw_mipi_dsi *dsi = host_to_dsi(host); host 350 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c drm_of_panel_bridge_remove(host->dev->of_node, 1, 0); host 469 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c static ssize_t dw_mipi_dsi_host_transfer(struct mipi_dsi_host *host, host 472 drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi.c struct dw_mipi_dsi *dsi = host_to_dsi(host); host 270 drivers/gpu/drm/bridge/ti-sn65dsi86.c struct mipi_dsi_host *host; host 300 drivers/gpu/drm/bridge/ti-sn65dsi86.c host = of_find_mipi_dsi_host_by_node(pdata->host_node); host 301 drivers/gpu/drm/bridge/ti-sn65dsi86.c if (!host) { host 307 drivers/gpu/drm/bridge/ti-sn65dsi86.c dsi = mipi_dsi_device_register_full(host, &info); host 126 drivers/gpu/drm/drm_mipi_dsi.c static struct mipi_dsi_device *mipi_dsi_device_alloc(struct mipi_dsi_host *host) host 134 drivers/gpu/drm/drm_mipi_dsi.c dsi->host = host; host 136 drivers/gpu/drm/drm_mipi_dsi.c dsi->dev.parent = host->dev; host 146 drivers/gpu/drm/drm_mipi_dsi.c struct mipi_dsi_host *host = dsi->host; host 148 drivers/gpu/drm/drm_mipi_dsi.c dev_set_name(&dsi->dev, "%s.%d", dev_name(host->dev), dsi->channel); host 155 drivers/gpu/drm/drm_mipi_dsi.c of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node) host 157 drivers/gpu/drm/drm_mipi_dsi.c struct device *dev = host->dev; host 177 drivers/gpu/drm/drm_mipi_dsi.c return mipi_dsi_device_register_full(host, &info); host 181 drivers/gpu/drm/drm_mipi_dsi.c of_mipi_dsi_device_add(struct mipi_dsi_host *host, struct device_node *node) host 200 drivers/gpu/drm/drm_mipi_dsi.c mipi_dsi_device_register_full(struct mipi_dsi_host *host, host 204 drivers/gpu/drm/drm_mipi_dsi.c struct device *dev = host->dev; host 217 drivers/gpu/drm/drm_mipi_dsi.c dsi = mipi_dsi_device_alloc(host); host 263 drivers/gpu/drm/drm_mipi_dsi.c struct mipi_dsi_host *host; host 267 drivers/gpu/drm/drm_mipi_dsi.c list_for_each_entry(host, &host_list, list) { host 268 drivers/gpu/drm/drm_mipi_dsi.c if (host->dev->of_node == node) { host 270 drivers/gpu/drm/drm_mipi_dsi.c return host; host 280 drivers/gpu/drm/drm_mipi_dsi.c int mipi_dsi_host_register(struct mipi_dsi_host *host) host 284 drivers/gpu/drm/drm_mipi_dsi.c for_each_available_child_of_node(host->dev->of_node, node) { host 288 drivers/gpu/drm/drm_mipi_dsi.c of_mipi_dsi_device_add(host, node); host 292 drivers/gpu/drm/drm_mipi_dsi.c list_add_tail(&host->list, &host_list); host 308 drivers/gpu/drm/drm_mipi_dsi.c void mipi_dsi_host_unregister(struct mipi_dsi_host *host) host 310 drivers/gpu/drm/drm_mipi_dsi.c device_for_each_child(host->dev, NULL, mipi_dsi_remove_device_fn); host 313 drivers/gpu/drm/drm_mipi_dsi.c list_del_init(&host->list); host 324 drivers/gpu/drm/drm_mipi_dsi.c const struct mipi_dsi_host_ops *ops = dsi->host->ops; host 329 drivers/gpu/drm/drm_mipi_dsi.c return ops->attach(dsi->host, dsi); host 339 drivers/gpu/drm/drm_mipi_dsi.c const struct mipi_dsi_host_ops *ops = dsi->host->ops; host 344 drivers/gpu/drm/drm_mipi_dsi.c return ops->detach(dsi->host, dsi); host 351 drivers/gpu/drm/drm_mipi_dsi.c const struct mipi_dsi_host_ops *ops = dsi->host->ops; host 359 drivers/gpu/drm/drm_mipi_dsi.c return ops->transfer(dsi->host, msg); host 285 drivers/gpu/drm/exynos/exynos_drm_dsi.c #define host_to_dsi(host) container_of(host, struct exynos_dsi, dsi_host) host 1512 drivers/gpu/drm/exynos/exynos_drm_dsi.c static int exynos_dsi_host_attach(struct mipi_dsi_host *host, host 1515 drivers/gpu/drm/exynos/exynos_drm_dsi.c struct exynos_dsi *dsi = host_to_dsi(host); host 1573 drivers/gpu/drm/exynos/exynos_drm_dsi.c static int exynos_dsi_host_detach(struct mipi_dsi_host *host, host 1576 drivers/gpu/drm/exynos/exynos_drm_dsi.c struct exynos_dsi *dsi = host_to_dsi(host); host 1600 drivers/gpu/drm/exynos/exynos_drm_dsi.c static ssize_t exynos_dsi_host_transfer(struct mipi_dsi_host *host, host 1603 drivers/gpu/drm/exynos/exynos_drm_dsi.c struct exynos_dsi *dsi = host_to_dsi(host); host 38 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c #define host_to_dsi(host) \ host 39 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c container_of(host, struct dw_dsi, host) host 84 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c struct mipi_dsi_host host; host 727 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c static int dsi_host_attach(struct mipi_dsi_host *host, host 730 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c struct dw_dsi *dsi = host_to_dsi(host); host 744 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c static int dsi_host_detach(struct mipi_dsi_host *host, host 758 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c struct mipi_dsi_host *host = &dsi->host; host 761 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c host->dev = dev; host 762 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c host->ops = &dsi_host_ops; host 763 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c ret = mipi_dsi_host_register(host); host 117 drivers/gpu/drm/i915/display/icl_dsi.c static bool add_payld_to_queue(struct intel_dsi_host *host, const u8 *data, host 120 drivers/gpu/drm/i915/display/icl_dsi.c struct intel_dsi *intel_dsi = host->intel_dsi; host 122 drivers/gpu/drm/i915/display/icl_dsi.c enum transcoder dsi_trans = dsi_port_to_transcoder(host->port); host 144 drivers/gpu/drm/i915/display/icl_dsi.c static int dsi_send_pkt_hdr(struct intel_dsi_host *host, host 147 drivers/gpu/drm/i915/display/icl_dsi.c struct intel_dsi *intel_dsi = host->intel_dsi; host 149 drivers/gpu/drm/i915/display/icl_dsi.c enum transcoder dsi_trans = dsi_port_to_transcoder(host->port); host 182 drivers/gpu/drm/i915/display/icl_dsi.c static int dsi_send_pkt_payld(struct intel_dsi_host *host, host 192 drivers/gpu/drm/i915/display/icl_dsi.c if (!add_payld_to_queue(host, pkt.payload, host 1367 drivers/gpu/drm/i915/display/icl_dsi.c static int gen11_dsi_host_attach(struct mipi_dsi_host *host, host 1373 drivers/gpu/drm/i915/display/icl_dsi.c static int gen11_dsi_host_detach(struct mipi_dsi_host *host, host 1379 drivers/gpu/drm/i915/display/icl_dsi.c static ssize_t gen11_dsi_host_transfer(struct mipi_dsi_host *host, host 1382 drivers/gpu/drm/i915/display/icl_dsi.c struct intel_dsi_host *intel_dsi_host = to_intel_dsi_host(host); host 1624 drivers/gpu/drm/i915/display/icl_dsi.c struct intel_dsi_host *host; host 1626 drivers/gpu/drm/i915/display/icl_dsi.c host = intel_dsi_host_init(intel_dsi, &gen11_dsi_host_ops, port); host 1627 drivers/gpu/drm/i915/display/icl_dsi.c if (!host) host 1630 drivers/gpu/drm/i915/display/icl_dsi.c intel_dsi->dsi_hosts[port] = host; host 83 drivers/gpu/drm/i915/display/intel_dsi.c struct intel_dsi_host *host; host 86 drivers/gpu/drm/i915/display/intel_dsi.c host = kzalloc(sizeof(*host), GFP_KERNEL); host 87 drivers/gpu/drm/i915/display/intel_dsi.c if (!host) host 90 drivers/gpu/drm/i915/display/intel_dsi.c host->base.ops = funcs; host 91 drivers/gpu/drm/i915/display/intel_dsi.c host->intel_dsi = intel_dsi; host 92 drivers/gpu/drm/i915/display/intel_dsi.c host->port = port; host 103 drivers/gpu/drm/i915/display/intel_dsi.c kfree(host); host 107 drivers/gpu/drm/i915/display/intel_dsi.c device->host = &host->base; host 108 drivers/gpu/drm/i915/display/intel_dsi.c host->device = device; host 110 drivers/gpu/drm/i915/display/intel_dsi.c return host; host 122 drivers/gpu/drm/i915/display/vlv_dsi.c static ssize_t intel_dsi_host_transfer(struct mipi_dsi_host *host, host 125 drivers/gpu/drm/i915/display/vlv_dsi.c struct intel_dsi_host *intel_dsi_host = to_intel_dsi_host(host); host 189 drivers/gpu/drm/i915/display/vlv_dsi.c static int intel_dsi_host_attach(struct mipi_dsi_host *host, host 195 drivers/gpu/drm/i915/display/vlv_dsi.c static int intel_dsi_host_detach(struct mipi_dsi_host *host, host 1889 drivers/gpu/drm/i915/display/vlv_dsi.c struct intel_dsi_host *host; host 1891 drivers/gpu/drm/i915/display/vlv_dsi.c host = intel_dsi_host_init(intel_dsi, &intel_dsi_host_ops, host 1893 drivers/gpu/drm/i915/display/vlv_dsi.c if (!host) host 1896 drivers/gpu/drm/i915/display/vlv_dsi.c intel_dsi->dsi_hosts[port] = host; host 78 drivers/gpu/drm/mcde/mcde_dsi.c d = host_to_mcde_dsi(mdsi->host); host 133 drivers/gpu/drm/mcde/mcde_dsi.c static int mcde_dsi_host_attach(struct mipi_dsi_host *host, host 136 drivers/gpu/drm/mcde/mcde_dsi.c struct mcde_dsi *d = host_to_mcde_dsi(host); host 156 drivers/gpu/drm/mcde/mcde_dsi.c static int mcde_dsi_host_detach(struct mipi_dsi_host *host, host 159 drivers/gpu/drm/mcde/mcde_dsi.c struct mcde_dsi *d = host_to_mcde_dsi(host); host 174 drivers/gpu/drm/mcde/mcde_dsi.c static ssize_t mcde_dsi_host_transfer(struct mipi_dsi_host *host, host 177 drivers/gpu/drm/mcde/mcde_dsi.c struct mcde_dsi *d = host_to_mcde_dsi(host); host 332 drivers/gpu/drm/mcde/mcde_dsi.c d = host_to_mcde_dsi(mdsi->host); host 1003 drivers/gpu/drm/mcde/mcde_dsi.c struct mipi_dsi_host *host; host 1032 drivers/gpu/drm/mcde/mcde_dsi.c host = &d->dsi_host; host 1033 drivers/gpu/drm/mcde/mcde_dsi.c host->dev = dev; host 1034 drivers/gpu/drm/mcde/mcde_dsi.c host->ops = &mcde_dsi_host_ops; host 1035 drivers/gpu/drm/mcde/mcde_dsi.c ret = mipi_dsi_host_register(host); host 156 drivers/gpu/drm/mediatek/mtk_dsi.c struct mipi_dsi_host host; host 193 drivers/gpu/drm/mediatek/mtk_dsi.c return container_of(h, struct mtk_dsi, host); host 872 drivers/gpu/drm/mediatek/mtk_dsi.c static int mtk_dsi_host_attach(struct mipi_dsi_host *host, host 875 drivers/gpu/drm/mediatek/mtk_dsi.c struct mtk_dsi *dsi = host_to_dsi(host); host 887 drivers/gpu/drm/mediatek/mtk_dsi.c static int mtk_dsi_host_detach(struct mipi_dsi_host *host, host 890 drivers/gpu/drm/mediatek/mtk_dsi.c struct mtk_dsi *dsi = host_to_dsi(host); host 980 drivers/gpu/drm/mediatek/mtk_dsi.c static ssize_t mtk_dsi_host_transfer(struct mipi_dsi_host *host, host 983 drivers/gpu/drm/mediatek/mtk_dsi.c struct mtk_dsi *dsi = host_to_dsi(host); host 1052 drivers/gpu/drm/mediatek/mtk_dsi.c ret = mipi_dsi_host_register(&dsi->host); host 1067 drivers/gpu/drm/mediatek/mtk_dsi.c mipi_dsi_host_unregister(&dsi->host); host 1080 drivers/gpu/drm/mediatek/mtk_dsi.c mipi_dsi_host_unregister(&dsi->host); host 1102 drivers/gpu/drm/mediatek/mtk_dsi.c dsi->host.ops = &mtk_dsi_ops; host 1103 drivers/gpu/drm/mediatek/mtk_dsi.c dsi->host.dev = dev; host 57 drivers/gpu/drm/msm/dsi/dsi.c if (msm_dsi->host) { host 58 drivers/gpu/drm/msm/dsi/dsi.c msm_dsi_host_destroy(msm_dsi->host); host 59 drivers/gpu/drm/msm/dsi/dsi.c msm_dsi->host = NULL; host 203 drivers/gpu/drm/msm/dsi/dsi.c ret = msm_dsi_host_modeset_init(msm_dsi->host, dev); host 228 drivers/gpu/drm/msm/dsi/dsi.c ext_bridge = msm_dsi_host_get_bridge(msm_dsi->host); host 65 drivers/gpu/drm/msm/dsi/dsi.h struct mipi_dsi_host *host; host 145 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_xfer_prepare(struct mipi_dsi_host *host, host 147 drivers/gpu/drm/msm/dsi/dsi.h void msm_dsi_host_xfer_restore(struct mipi_dsi_host *host, host 149 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_cmd_tx(struct mipi_dsi_host *host, host 151 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_cmd_rx(struct mipi_dsi_host *host, host 153 drivers/gpu/drm/msm/dsi/dsi.h void msm_dsi_host_cmd_xfer_commit(struct mipi_dsi_host *host, host 155 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_enable(struct mipi_dsi_host *host); host 156 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_disable(struct mipi_dsi_host *host); host 157 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_power_on(struct mipi_dsi_host *host, host 160 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_power_off(struct mipi_dsi_host *host); host 161 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_set_display_mode(struct mipi_dsi_host *host, host 163 drivers/gpu/drm/msm/dsi/dsi.h struct drm_panel *msm_dsi_host_get_panel(struct mipi_dsi_host *host); host 164 drivers/gpu/drm/msm/dsi/dsi.h unsigned long msm_dsi_host_get_mode_flags(struct mipi_dsi_host *host); host 165 drivers/gpu/drm/msm/dsi/dsi.h struct drm_bridge *msm_dsi_host_get_bridge(struct mipi_dsi_host *host); host 166 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_register(struct mipi_dsi_host *host, bool check_defer); host 167 drivers/gpu/drm/msm/dsi/dsi.h void msm_dsi_host_unregister(struct mipi_dsi_host *host); host 168 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_set_src_pll(struct mipi_dsi_host *host, host 170 drivers/gpu/drm/msm/dsi/dsi.h void msm_dsi_host_reset_phy(struct mipi_dsi_host *host); host 171 drivers/gpu/drm/msm/dsi/dsi.h void msm_dsi_host_get_phy_clk_req(struct mipi_dsi_host *host, host 174 drivers/gpu/drm/msm/dsi/dsi.h void msm_dsi_host_destroy(struct mipi_dsi_host *host); host 175 drivers/gpu/drm/msm/dsi/dsi.h int msm_dsi_host_modeset_init(struct mipi_dsi_host *host, host 255 drivers/gpu/drm/msm/dsi/dsi_host.c static inline struct msm_dsi_host *to_msm_dsi_host(struct mipi_dsi_host *host) host 257 drivers/gpu/drm/msm/dsi/dsi_host.c return container_of(host, struct msm_dsi_host, base); host 484 drivers/gpu/drm/msm/dsi/dsi_host.c struct mipi_dsi_host *host = msm_dsi->host; host 485 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 499 drivers/gpu/drm/msm/dsi/dsi_host.c struct mipi_dsi_host *host = msm_dsi->host; host 500 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 1581 drivers/gpu/drm/msm/dsi/dsi_host.c static int dsi_host_attach(struct mipi_dsi_host *host, host 1584 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 1607 drivers/gpu/drm/msm/dsi/dsi_host.c static int dsi_host_detach(struct mipi_dsi_host *host, host 1610 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 1621 drivers/gpu/drm/msm/dsi/dsi_host.c static ssize_t dsi_host_transfer(struct mipi_dsi_host *host, host 1624 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 1813 drivers/gpu/drm/msm/dsi/dsi_host.c msm_dsi->host = &msm_host->base; host 1886 drivers/gpu/drm/msm/dsi/dsi_host.c void msm_dsi_host_destroy(struct mipi_dsi_host *host) host 1888 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 1904 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_modeset_init(struct mipi_dsi_host *host, host 1907 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 1938 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_register(struct mipi_dsi_host *host, bool check_defer) host 1940 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 1945 drivers/gpu/drm/msm/dsi/dsi_host.c host->dev = &msm_host->pdev->dev; host 1946 drivers/gpu/drm/msm/dsi/dsi_host.c host->ops = &dsi_host_ops; host 1947 drivers/gpu/drm/msm/dsi/dsi_host.c ret = mipi_dsi_host_register(host); host 1971 drivers/gpu/drm/msm/dsi/dsi_host.c void msm_dsi_host_unregister(struct mipi_dsi_host *host) host 1973 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 1976 drivers/gpu/drm/msm/dsi/dsi_host.c mipi_dsi_host_unregister(host); host 1977 drivers/gpu/drm/msm/dsi/dsi_host.c host->dev = NULL; host 1978 drivers/gpu/drm/msm/dsi/dsi_host.c host->ops = NULL; host 1983 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_xfer_prepare(struct mipi_dsi_host *host, host 1986 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2017 drivers/gpu/drm/msm/dsi/dsi_host.c void msm_dsi_host_xfer_restore(struct mipi_dsi_host *host, host 2020 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2035 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_cmd_tx(struct mipi_dsi_host *host, host 2038 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2043 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_cmd_rx(struct mipi_dsi_host *host, host 2046 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2178 drivers/gpu/drm/msm/dsi/dsi_host.c void msm_dsi_host_cmd_xfer_commit(struct mipi_dsi_host *host, u32 dma_base, host 2181 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2191 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_set_src_pll(struct mipi_dsi_host *host, host 2194 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2242 drivers/gpu/drm/msm/dsi/dsi_host.c void msm_dsi_host_reset_phy(struct mipi_dsi_host *host) host 2244 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2255 drivers/gpu/drm/msm/dsi/dsi_host.c void msm_dsi_host_get_phy_clk_req(struct mipi_dsi_host *host, host 2259 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2273 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_enable(struct mipi_dsi_host *host) host 2275 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2293 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_disable(struct mipi_dsi_host *host) host 2295 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2324 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_power_on(struct mipi_dsi_host *host, host 2328 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2384 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_power_off(struct mipi_dsi_host *host) host 2386 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2418 drivers/gpu/drm/msm/dsi/dsi_host.c int msm_dsi_host_set_display_mode(struct mipi_dsi_host *host, host 2421 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 2437 drivers/gpu/drm/msm/dsi/dsi_host.c struct drm_panel *msm_dsi_host_get_panel(struct mipi_dsi_host *host) host 2439 drivers/gpu/drm/msm/dsi/dsi_host.c return of_drm_find_panel(to_msm_dsi_host(host)->device_node); host 2442 drivers/gpu/drm/msm/dsi/dsi_host.c unsigned long msm_dsi_host_get_mode_flags(struct mipi_dsi_host *host) host 2444 drivers/gpu/drm/msm/dsi/dsi_host.c return to_msm_dsi_host(host)->mode_flags; host 2447 drivers/gpu/drm/msm/dsi/dsi_host.c struct drm_bridge *msm_dsi_host_get_bridge(struct mipi_dsi_host *host) host 2449 drivers/gpu/drm/msm/dsi/dsi_host.c struct msm_dsi_host *msm_host = to_msm_dsi_host(host); host 77 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_register(msm_dsi->host, true); host 85 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_set_src_pll(msm_dsi->host, src_pll); host 100 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_register(slave_link_dsi->host, false); host 103 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_register(master_link_dsi->host, true); host 115 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_set_src_pll(msm_dsi->host, src_pll); host 118 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_set_src_pll(other_dsi->host, src_pll); host 131 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_get_phy_clk_req(msm_dsi->host, &clk_req, is_dual_dsi); host 156 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_reset_phy(mdsi->host); host 157 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_reset_phy(sdsi->host); host 171 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_reset_phy(msm_dsi->host); host 230 drivers/gpu/drm/msm/dsi/dsi_manager.c unsigned long host_flags = msm_dsi_host_get_mode_flags(msm_dsi->host); host 268 drivers/gpu/drm/msm/dsi/dsi_manager.c panel = msm_dsi_host_get_panel(master_dsi->host); host 375 drivers/gpu/drm/msm/dsi/dsi_manager.c struct mipi_dsi_host *host = msm_dsi->host; host 393 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_power_on(host, &phy_shared_timings[id], is_dual_dsi); host 400 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_power_on(msm_dsi1->host, host 421 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_enable(host); host 428 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_enable(msm_dsi1->host); host 448 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_disable(msm_dsi1->host); host 450 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_disable(host); host 456 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_power_off(msm_dsi1->host); host 458 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_power_off(host); host 480 drivers/gpu/drm/msm/dsi/dsi_manager.c struct mipi_dsi_host *host = msm_dsi->host; host 506 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_disable(host); host 511 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_disable(msm_dsi1->host); host 527 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_power_off(host); host 532 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_power_off(msm_dsi1->host); host 549 drivers/gpu/drm/msm/dsi/dsi_manager.c struct mipi_dsi_host *host = msm_dsi->host; host 557 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_set_display_mode(host, adjusted_mode); host 559 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_set_display_mode(other_dsi->host, adjusted_mode); host 696 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_get_bridge(msm_dsi->host); host 726 drivers/gpu/drm/msm/dsi/dsi_manager.c struct mipi_dsi_host *host = msm_dsi->host; host 743 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_xfer_prepare(msm_dsi0->host, msg); host 750 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = msm_dsi_host_xfer_prepare(host, msg); host 756 drivers/gpu/drm/msm/dsi/dsi_manager.c ret = is_read ? msm_dsi_host_cmd_rx(host, msg) : host 757 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_cmd_tx(host, msg); host 759 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_xfer_restore(host, msg); host 763 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_xfer_restore(msm_dsi0->host, msg); host 772 drivers/gpu/drm/msm/dsi/dsi_manager.c struct mipi_dsi_host *host = msm_dsi->host; host 778 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_cmd_xfer_commit(msm_dsi0->host, dma_base, len); host 780 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_cmd_xfer_commit(host, dma_base, len); host 827 drivers/gpu/drm/msm/dsi/dsi_manager.c if (msm_dsi->host) host 828 drivers/gpu/drm/msm/dsi/dsi_manager.c msm_dsi_host_unregister(msm_dsi->host); host 27 drivers/gpu/drm/nouveau/include/nvif/if0008.h __u8 host; host 28 drivers/gpu/drm/nouveau/include/nvif/if000c.h __u8 host; host 27 drivers/gpu/drm/nouveau/include/nvif/vmm.h bool host:1; host 264 drivers/gpu/drm/nouveau/nouveau_bo.c (!vmm->page[i].host || vmm->page[i].shift > PAGE_SHIFT)) host 101 drivers/gpu/drm/nouveau/nvif/mmu.c if (args.host) mmu->type[i].type |= NVIF_MEM_HOST; host 160 drivers/gpu/drm/nouveau/nvif/vmm.c vmm->page[i].host = args.host; host 92 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/ummu.c args->v0.host = !!(type & NVKM_MEM_HOST); host 324 drivers/gpu/drm/nouveau/nvkm/subdev/mmu/uvmm.c args->v0.host = !!(type & NVKM_VMM_PAGE_HOST); host 463 drivers/gpu/drm/panel/panel-orisetech-otm8009a.c dsi->host->dev, ctx, host 366 drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c struct mipi_dsi_host *host; host 409 drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c host = of_find_mipi_dsi_host_by_node(dsi_host_node); host 411 drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c if (!host) { host 422 drivers/gpu/drm/panel/panel-raspberrypi-touchscreen.c ts->dsi = mipi_dsi_device_register_full(host, &info); host 940 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c static int sun6i_dsi_attach(struct mipi_dsi_host *host, host 943 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c struct sun6i_dsi *dsi = host_to_sun6i_dsi(host); host 950 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c dev_info(host->dev, "Attached device %s\n", device->name); host 955 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c static int sun6i_dsi_detach(struct mipi_dsi_host *host, host 958 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c struct sun6i_dsi *dsi = host_to_sun6i_dsi(host); host 966 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c static ssize_t sun6i_dsi_transfer(struct mipi_dsi_host *host, host 969 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c struct sun6i_dsi *dsi = host_to_sun6i_dsi(host); host 1093 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c dsi->host.ops = &sun6i_dsi_host_ops; host 1094 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c dsi->host.dev = dev; host 1137 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c ret = mipi_dsi_host_register(&dsi->host); host 1152 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c mipi_dsi_host_unregister(&dsi->host); host 1166 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c mipi_dsi_host_unregister(&dsi->host); host 21 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h struct mipi_dsi_host host; host 35 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h static inline struct sun6i_dsi *host_to_sun6i_dsi(struct mipi_dsi_host *host) host 37 drivers/gpu/drm/sun4i/sun6i_mipi_dsi.h return container_of(host, struct sun6i_dsi, host); host 543 drivers/gpu/drm/tegra/drm.c struct host1x *host = dev_get_drvdata(drm->dev->parent); host 547 drivers/gpu/drm/tegra/drm.c sp = host1x_syncpt_get(host, args->id); host 73 drivers/gpu/drm/tegra/dsi.c struct mipi_dsi_host host; host 91 drivers/gpu/drm/tegra/dsi.c static inline struct tegra_dsi *host_to_tegra(struct mipi_dsi_host *host) host 93 drivers/gpu/drm/tegra/dsi.c return container_of(host, struct tegra_dsi, host); host 1237 drivers/gpu/drm/tegra/dsi.c static ssize_t tegra_dsi_host_transfer(struct mipi_dsi_host *host, host 1240 drivers/gpu/drm/tegra/dsi.c struct tegra_dsi *dsi = host_to_tegra(host); host 1382 drivers/gpu/drm/tegra/dsi.c static int tegra_dsi_host_attach(struct mipi_dsi_host *host, host 1385 drivers/gpu/drm/tegra/dsi.c struct tegra_dsi *dsi = host_to_tegra(host); host 1425 drivers/gpu/drm/tegra/dsi.c static int tegra_dsi_host_detach(struct mipi_dsi_host *host, host 1428 drivers/gpu/drm/tegra/dsi.c struct tegra_dsi *dsi = host_to_tegra(host); host 1545 drivers/gpu/drm/tegra/dsi.c dsi->host.ops = &tegra_dsi_host_ops; host 1546 drivers/gpu/drm/tegra/dsi.c dsi->host.dev = &pdev->dev; host 1548 drivers/gpu/drm/tegra/dsi.c err = mipi_dsi_host_register(&dsi->host); host 1571 drivers/gpu/drm/tegra/dsi.c mipi_dsi_host_unregister(&dsi->host); host 1593 drivers/gpu/drm/tegra/dsi.c mipi_dsi_host_unregister(&dsi->host); host 545 drivers/gpu/drm/vc4/vc4_dsi.c #define host_to_dsi(host) container_of(host, struct vc4_dsi, dsi_host) host 1083 drivers/gpu/drm/vc4/vc4_dsi.c static ssize_t vc4_dsi_host_transfer(struct mipi_dsi_host *host, host 1086 drivers/gpu/drm/vc4/vc4_dsi.c struct vc4_dsi *dsi = host_to_dsi(host); host 1239 drivers/gpu/drm/vc4/vc4_dsi.c static int vc4_dsi_host_attach(struct mipi_dsi_host *host, host 1242 drivers/gpu/drm/vc4/vc4_dsi.c struct vc4_dsi *dsi = host_to_dsi(host); host 1280 drivers/gpu/drm/vc4/vc4_dsi.c static int vc4_dsi_host_detach(struct mipi_dsi_host *host, host 556 drivers/gpu/drm/vmwgfx/device_include/svga3d_cmd.h SVGA3dSurfaceImageId host; host 1554 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c &cmd->body.host.sid, NULL); host 168 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c if (cmd->dma.host.face != 0 || cmd->dma.host.mipmap != 0) { host 510 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c cmd->body.host.sid = stdu->display_srf->res.id; host 511 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c cmd->body.host.face = 0; host 512 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c cmd->body.host.mipmap = 0; host 1215 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c cmd_dma->body.host.sid = stdu->display_srf->res.id; host 1216 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c cmd_dma->body.host.face = 0; host 1217 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c cmd_dma->body.host.mipmap = 0; host 299 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c body->host.sid = srf->res.id; host 300 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c body->host.face = cur_offset->face; host 301 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c body->host.mipmap = cur_offset->mip; host 276 drivers/gpu/host1x/cdma.c struct host1x *host = cdma_to_host1x(cdma); host 284 drivers/gpu/host1x/cdma.c cdma->timeout.syncpt = host1x_syncpt_get(host, job->syncpt_id); host 45 drivers/gpu/host1x/channel.c struct host1x *host = dev_get_drvdata(job->channel->dev->parent); host 47 drivers/gpu/host1x/channel.c return host1x_hw_channel_submit(host, job); host 67 drivers/gpu/host1x/channel.c struct host1x_channel *host1x_channel_get_index(struct host1x *host, host 70 drivers/gpu/host1x/channel.c struct host1x_channel *ch = &host->channel_list.channels[index]; host 82 drivers/gpu/host1x/channel.c struct host1x *host = dev_get_drvdata(channel->dev->parent); host 83 drivers/gpu/host1x/channel.c struct host1x_channel_list *chlist = &host->channel_list; host 85 drivers/gpu/host1x/channel.c host1x_hw_cdma_stop(host, &channel->cdma); host 97 drivers/gpu/host1x/channel.c static struct host1x_channel *acquire_unused_channel(struct host1x *host) host 99 drivers/gpu/host1x/channel.c struct host1x_channel_list *chlist = &host->channel_list; host 100 drivers/gpu/host1x/channel.c unsigned int max_channels = host->info->nb_channels; host 105 drivers/gpu/host1x/channel.c dev_err(host->dev, "failed to find free channel\n"); host 125 drivers/gpu/host1x/channel.c struct host1x *host = dev_get_drvdata(dev->parent); host 126 drivers/gpu/host1x/channel.c struct host1x_channel_list *chlist = &host->channel_list; host 130 drivers/gpu/host1x/channel.c channel = acquire_unused_channel(host); host 138 drivers/gpu/host1x/channel.c err = host1x_hw_channel_init(host, channel, channel->id); host 37 drivers/gpu/host1x/channel.h struct host1x_channel *host1x_channel_get_index(struct host1x *host, host 168 drivers/gpu/host1x/dev.c static void host1x_setup_sid_table(struct host1x *host) host 170 drivers/gpu/host1x/dev.c const struct host1x_info *info = host->info; host 176 drivers/gpu/host1x/dev.c host1x_hypervisor_writel(host, entry->offset, entry->base); host 177 drivers/gpu/host1x/dev.c host1x_hypervisor_writel(host, entry->limit, entry->base + 4); host 183 drivers/gpu/host1x/dev.c struct host1x *host; host 188 drivers/gpu/host1x/dev.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 189 drivers/gpu/host1x/dev.c if (!host) host 192 drivers/gpu/host1x/dev.c host->info = of_device_get_match_data(&pdev->dev); host 194 drivers/gpu/host1x/dev.c if (host->info->has_hypervisor) { host 222 drivers/gpu/host1x/dev.c mutex_init(&host->devices_lock); host 223 drivers/gpu/host1x/dev.c INIT_LIST_HEAD(&host->devices); host 224 drivers/gpu/host1x/dev.c INIT_LIST_HEAD(&host->list); host 225 drivers/gpu/host1x/dev.c host->dev = &pdev->dev; host 228 drivers/gpu/host1x/dev.c platform_set_drvdata(pdev, host); host 230 drivers/gpu/host1x/dev.c host->regs = devm_ioremap_resource(&pdev->dev, regs); host 231 drivers/gpu/host1x/dev.c if (IS_ERR(host->regs)) host 232 drivers/gpu/host1x/dev.c return PTR_ERR(host->regs); host 234 drivers/gpu/host1x/dev.c if (host->info->has_hypervisor) { host 235 drivers/gpu/host1x/dev.c host->hv_regs = devm_ioremap_resource(&pdev->dev, hv_regs); host 236 drivers/gpu/host1x/dev.c if (IS_ERR(host->hv_regs)) host 237 drivers/gpu/host1x/dev.c return PTR_ERR(host->hv_regs); host 240 drivers/gpu/host1x/dev.c dma_set_mask_and_coherent(host->dev, host->info->dma_mask); host 242 drivers/gpu/host1x/dev.c if (host->info->init) { host 243 drivers/gpu/host1x/dev.c err = host->info->init(host); host 248 drivers/gpu/host1x/dev.c host->clk = devm_clk_get(&pdev->dev, NULL); host 249 drivers/gpu/host1x/dev.c if (IS_ERR(host->clk)) { host 250 drivers/gpu/host1x/dev.c err = PTR_ERR(host->clk); host 258 drivers/gpu/host1x/dev.c host->rst = devm_reset_control_get(&pdev->dev, "host1x"); host 259 drivers/gpu/host1x/dev.c if (IS_ERR(host->rst)) { host 260 drivers/gpu/host1x/dev.c err = PTR_ERR(host->rst); host 265 drivers/gpu/host1x/dev.c if (host->dev->archdata.mapping) { host 267 drivers/gpu/host1x/dev.c to_dma_iommu_mapping(host->dev); host 268 drivers/gpu/host1x/dev.c arm_iommu_detach_device(host->dev); host 275 drivers/gpu/host1x/dev.c host->group = iommu_group_get(&pdev->dev); host 276 drivers/gpu/host1x/dev.c if (host->group) { host 278 drivers/gpu/host1x/dev.c u64 mask = dma_get_mask(host->dev); host 286 drivers/gpu/host1x/dev.c host->domain = iommu_domain_alloc(&platform_bus_type); host 287 drivers/gpu/host1x/dev.c if (!host->domain) { host 292 drivers/gpu/host1x/dev.c err = iommu_attach_group(host->domain, host->group); host 295 drivers/gpu/host1x/dev.c iommu_domain_free(host->domain); host 296 drivers/gpu/host1x/dev.c host->domain = NULL; host 298 drivers/gpu/host1x/dev.c iommu_group_put(host->group); host 299 drivers/gpu/host1x/dev.c host->group = NULL; host 306 drivers/gpu/host1x/dev.c geometry = &host->domain->geometry; host 310 drivers/gpu/host1x/dev.c order = __ffs(host->domain->pgsize_bitmap); host 311 drivers/gpu/host1x/dev.c init_iova_domain(&host->iova, 1UL << order, start >> order); host 312 drivers/gpu/host1x/dev.c host->iova_end = end; host 316 drivers/gpu/host1x/dev.c err = host1x_channel_list_init(&host->channel_list, host 317 drivers/gpu/host1x/dev.c host->info->nb_channels); host 323 drivers/gpu/host1x/dev.c err = clk_prepare_enable(host->clk); host 329 drivers/gpu/host1x/dev.c err = reset_control_deassert(host->rst); host 335 drivers/gpu/host1x/dev.c err = host1x_syncpt_init(host); host 341 drivers/gpu/host1x/dev.c err = host1x_intr_init(host, syncpt_irq); host 347 drivers/gpu/host1x/dev.c host1x_debug_init(host); host 349 drivers/gpu/host1x/dev.c if (host->info->has_hypervisor) host 350 drivers/gpu/host1x/dev.c host1x_setup_sid_table(host); host 352 drivers/gpu/host1x/dev.c err = host1x_register(host); host 359 drivers/gpu/host1x/dev.c host1x_intr_deinit(host); host 361 drivers/gpu/host1x/dev.c host1x_syncpt_deinit(host); host 363 drivers/gpu/host1x/dev.c reset_control_assert(host->rst); host 365 drivers/gpu/host1x/dev.c clk_disable_unprepare(host->clk); host 367 drivers/gpu/host1x/dev.c host1x_channel_list_free(&host->channel_list); host 369 drivers/gpu/host1x/dev.c if (host->group && host->domain) { host 370 drivers/gpu/host1x/dev.c put_iova_domain(&host->iova); host 371 drivers/gpu/host1x/dev.c iommu_detach_group(host->domain, host->group); host 374 drivers/gpu/host1x/dev.c if (host->domain) host 375 drivers/gpu/host1x/dev.c iommu_domain_free(host->domain); host 377 drivers/gpu/host1x/dev.c if (host->group) host 380 drivers/gpu/host1x/dev.c iommu_group_put(host->group); host 387 drivers/gpu/host1x/dev.c struct host1x *host = platform_get_drvdata(pdev); host 389 drivers/gpu/host1x/dev.c host1x_unregister(host); host 390 drivers/gpu/host1x/dev.c host1x_intr_deinit(host); host 391 drivers/gpu/host1x/dev.c host1x_syncpt_deinit(host); host 392 drivers/gpu/host1x/dev.c reset_control_assert(host->rst); host 393 drivers/gpu/host1x/dev.c clk_disable_unprepare(host->clk); host 395 drivers/gpu/host1x/dev.c if (host->domain) { host 396 drivers/gpu/host1x/dev.c put_iova_domain(&host->iova); host 397 drivers/gpu/host1x/dev.c iommu_detach_group(host->domain, host->group); host 398 drivers/gpu/host1x/dev.c iommu_domain_free(host->domain); host 400 drivers/gpu/host1x/dev.c iommu_group_put(host->group); host 31 drivers/gpu/host1x/dev.h int (*init)(struct host1x_channel *channel, struct host1x *host, host 54 drivers/gpu/host1x/dev.h void (*show_channel_cdma)(struct host1x *host, host 57 drivers/gpu/host1x/dev.h void (*show_channel_fifo)(struct host1x *host, host 60 drivers/gpu/host1x/dev.h void (*show_mlocks)(struct host1x *host, struct output *output); host 72 drivers/gpu/host1x/dev.h void (*enable_protection)(struct host1x *host); host 76 drivers/gpu/host1x/dev.h int (*init_host_sync)(struct host1x *host, u32 cpm, host 79 drivers/gpu/host1x/dev.h struct host1x *host, unsigned int id, u32 thresh); host 80 drivers/gpu/host1x/dev.h void (*enable_syncpt_intr)(struct host1x *host, unsigned int id); host 81 drivers/gpu/host1x/dev.h void (*disable_syncpt_intr)(struct host1x *host, unsigned int id); host 82 drivers/gpu/host1x/dev.h void (*disable_all_syncpt_intrs)(struct host1x *host); host 83 drivers/gpu/host1x/dev.h int (*free_syncpt_irq)(struct host1x *host); host 152 drivers/gpu/host1x/dev.h static inline void host1x_hw_syncpt_restore(struct host1x *host, host 155 drivers/gpu/host1x/dev.h host->syncpt_op->restore(sp); host 158 drivers/gpu/host1x/dev.h static inline void host1x_hw_syncpt_restore_wait_base(struct host1x *host, host 161 drivers/gpu/host1x/dev.h host->syncpt_op->restore_wait_base(sp); host 164 drivers/gpu/host1x/dev.h static inline void host1x_hw_syncpt_load_wait_base(struct host1x *host, host 167 drivers/gpu/host1x/dev.h host->syncpt_op->load_wait_base(sp); host 170 drivers/gpu/host1x/dev.h static inline u32 host1x_hw_syncpt_load(struct host1x *host, host 173 drivers/gpu/host1x/dev.h return host->syncpt_op->load(sp); host 176 drivers/gpu/host1x/dev.h static inline int host1x_hw_syncpt_cpu_incr(struct host1x *host, host 179 drivers/gpu/host1x/dev.h return host->syncpt_op->cpu_incr(sp); host 183 drivers/gpu/host1x/dev.h struct host1x *host, struct host1x_syncpt *sp, host 186 drivers/gpu/host1x/dev.h return host->syncpt_op->assign_to_channel(sp, ch); host 189 drivers/gpu/host1x/dev.h static inline void host1x_hw_syncpt_enable_protection(struct host1x *host) host 191 drivers/gpu/host1x/dev.h return host->syncpt_op->enable_protection(host); host 194 drivers/gpu/host1x/dev.h static inline int host1x_hw_intr_init_host_sync(struct host1x *host, u32 cpm, host 197 drivers/gpu/host1x/dev.h return host->intr_op->init_host_sync(host, cpm, syncpt_thresh_work); host 200 drivers/gpu/host1x/dev.h static inline void host1x_hw_intr_set_syncpt_threshold(struct host1x *host, host 204 drivers/gpu/host1x/dev.h host->intr_op->set_syncpt_threshold(host, id, thresh); host 207 drivers/gpu/host1x/dev.h static inline void host1x_hw_intr_enable_syncpt_intr(struct host1x *host, host 210 drivers/gpu/host1x/dev.h host->intr_op->enable_syncpt_intr(host, id); host 213 drivers/gpu/host1x/dev.h static inline void host1x_hw_intr_disable_syncpt_intr(struct host1x *host, host 216 drivers/gpu/host1x/dev.h host->intr_op->disable_syncpt_intr(host, id); host 219 drivers/gpu/host1x/dev.h static inline void host1x_hw_intr_disable_all_syncpt_intrs(struct host1x *host) host 221 drivers/gpu/host1x/dev.h host->intr_op->disable_all_syncpt_intrs(host); host 224 drivers/gpu/host1x/dev.h static inline int host1x_hw_intr_free_syncpt_irq(struct host1x *host) host 226 drivers/gpu/host1x/dev.h return host->intr_op->free_syncpt_irq(host); host 229 drivers/gpu/host1x/dev.h static inline int host1x_hw_channel_init(struct host1x *host, host 233 drivers/gpu/host1x/dev.h return host->channel_op->init(channel, host, id); host 236 drivers/gpu/host1x/dev.h static inline int host1x_hw_channel_submit(struct host1x *host, host 239 drivers/gpu/host1x/dev.h return host->channel_op->submit(job); host 242 drivers/gpu/host1x/dev.h static inline void host1x_hw_cdma_start(struct host1x *host, host 245 drivers/gpu/host1x/dev.h host->cdma_op->start(cdma); host 248 drivers/gpu/host1x/dev.h static inline void host1x_hw_cdma_stop(struct host1x *host, host 251 drivers/gpu/host1x/dev.h host->cdma_op->stop(cdma); host 254 drivers/gpu/host1x/dev.h static inline void host1x_hw_cdma_flush(struct host1x *host, host 257 drivers/gpu/host1x/dev.h host->cdma_op->flush(cdma); host 260 drivers/gpu/host1x/dev.h static inline int host1x_hw_cdma_timeout_init(struct host1x *host, host 264 drivers/gpu/host1x/dev.h return host->cdma_op->timeout_init(cdma, syncpt); host 267 drivers/gpu/host1x/dev.h static inline void host1x_hw_cdma_timeout_destroy(struct host1x *host, host 270 drivers/gpu/host1x/dev.h host->cdma_op->timeout_destroy(cdma); host 273 drivers/gpu/host1x/dev.h static inline void host1x_hw_cdma_freeze(struct host1x *host, host 276 drivers/gpu/host1x/dev.h host->cdma_op->freeze(cdma); host 279 drivers/gpu/host1x/dev.h static inline void host1x_hw_cdma_resume(struct host1x *host, host 282 drivers/gpu/host1x/dev.h host->cdma_op->resume(cdma, getptr); host 285 drivers/gpu/host1x/dev.h static inline void host1x_hw_cdma_timeout_cpu_incr(struct host1x *host, host 291 drivers/gpu/host1x/dev.h host->cdma_op->timeout_cpu_incr(cdma, getptr, syncpt_incrs, syncval, host 295 drivers/gpu/host1x/dev.h static inline void host1x_hw_pushbuffer_init(struct host1x *host, host 298 drivers/gpu/host1x/dev.h host->cdma_pb_op->init(pb); host 301 drivers/gpu/host1x/dev.h static inline void host1x_hw_debug_init(struct host1x *host, struct dentry *de) host 303 drivers/gpu/host1x/dev.h if (host->debug_op && host->debug_op->debug_init) host 304 drivers/gpu/host1x/dev.h host->debug_op->debug_init(de); host 307 drivers/gpu/host1x/dev.h static inline void host1x_hw_show_channel_cdma(struct host1x *host, host 311 drivers/gpu/host1x/dev.h host->debug_op->show_channel_cdma(host, channel, o); host 314 drivers/gpu/host1x/dev.h static inline void host1x_hw_show_channel_fifo(struct host1x *host, host 318 drivers/gpu/host1x/dev.h host->debug_op->show_channel_fifo(host, channel, o); host 321 drivers/gpu/host1x/dev.h static inline void host1x_hw_show_mlocks(struct host1x *host, struct output *o) host 323 drivers/gpu/host1x/dev.h host->debug_op->show_mlocks(host, o); host 170 drivers/gpu/host1x/hw/cdma_hw.c static void cdma_hw_cmdproc_stop(struct host1x *host, struct host1x_channel *ch, host 176 drivers/gpu/host1x/hw/cdma_hw.c u32 cmdproc_stop = host1x_sync_readl(host, HOST1X_SYNC_CMDPROC_STOP); host 181 drivers/gpu/host1x/hw/cdma_hw.c host1x_sync_writel(host, cmdproc_stop, HOST1X_SYNC_CMDPROC_STOP); host 185 drivers/gpu/host1x/hw/cdma_hw.c static void cdma_hw_teardown(struct host1x *host, struct host1x_channel *ch) host 190 drivers/gpu/host1x/hw/cdma_hw.c host1x_sync_writel(host, BIT(ch->id), HOST1X_SYNC_CH_TEARDOWN); host 200 drivers/gpu/host1x/hw/cdma_hw.c struct host1x *host = cdma_to_host1x(cdma); host 204 drivers/gpu/host1x/hw/cdma_hw.c dev_warn(host->dev, "Already torn down\n"); host 208 drivers/gpu/host1x/hw/cdma_hw.c dev_dbg(host->dev, "freezing channel (id %d)\n", ch->id); host 210 drivers/gpu/host1x/hw/cdma_hw.c cdma_hw_cmdproc_stop(host, ch, true); host 212 drivers/gpu/host1x/hw/cdma_hw.c dev_dbg(host->dev, "%s: DMA GET 0x%x, PUT HW 0x%x / shadow 0x%x\n", host 220 drivers/gpu/host1x/hw/cdma_hw.c cdma_hw_teardown(host, ch); host 89 drivers/gpu/host1x/hw/channel_hw.c struct host1x *host = dev_get_drvdata(job->channel->dev->parent); host 90 drivers/gpu/host1x/hw/channel_hw.c struct host1x_syncpt *sp = host->syncpt + job->syncpt_id; host 127 drivers/gpu/host1x/hw/channel_hw.c struct host1x *host = dev_get_drvdata(ch->dev->parent); host 129 drivers/gpu/host1x/hw/channel_hw.c sp = host->syncpt + job->syncpt_id; host 176 drivers/gpu/host1x/hw/channel_hw.c host1x_hw_syncpt_assign_to_channel(host, sp, ch); host 194 drivers/gpu/host1x/hw/channel_hw.c err = host1x_intr_add_action(host, sp, syncval, host 209 drivers/gpu/host1x/hw/channel_hw.c static void enable_gather_filter(struct host1x *host, host 215 drivers/gpu/host1x/hw/channel_hw.c if (!host->hv_regs) host 219 drivers/gpu/host1x/hw/channel_hw.c host, HOST1X_HV_CH_KERNEL_FILTER_GBUFFER(ch->id / 32)); host 222 drivers/gpu/host1x/hw/channel_hw.c host, val, HOST1X_HV_CH_KERNEL_FILTER_GBUFFER(ch->id / 32)); host 14 drivers/gpu/host1x/hw/debug_hw_1x01.c static void host1x_debug_show_channel_cdma(struct host1x *host, host 26 drivers/gpu/host1x/hw/debug_hw_1x01.c cbread = host1x_sync_readl(host, HOST1X_SYNC_CBREAD(ch->id)); host 27 drivers/gpu/host1x/hw/debug_hw_1x01.c cbstat = host1x_sync_readl(host, HOST1X_SYNC_CBSTAT(ch->id)); host 48 drivers/gpu/host1x/hw/debug_hw_1x01.c host1x_sync_readl(host, HOST1X_SYNC_SYNCPT_BASE(base)); host 67 drivers/gpu/host1x/hw/debug_hw_1x01.c static void host1x_debug_show_channel_fifo(struct host1x *host, host 83 drivers/gpu/host1x/hw/debug_hw_1x01.c host1x_sync_writel(host, 0x0, HOST1X_SYNC_CFPEEK_CTRL); host 84 drivers/gpu/host1x/hw/debug_hw_1x01.c host1x_sync_writel(host, HOST1X_SYNC_CFPEEK_CTRL_ENA_F(1) | host 88 drivers/gpu/host1x/hw/debug_hw_1x01.c val = host1x_sync_readl(host, HOST1X_SYNC_CFPEEK_PTRS); host 92 drivers/gpu/host1x/hw/debug_hw_1x01.c val = host1x_sync_readl(host, HOST1X_SYNC_CF_SETUP(ch->id)); host 97 drivers/gpu/host1x/hw/debug_hw_1x01.c host1x_sync_writel(host, 0x0, HOST1X_SYNC_CFPEEK_CTRL); host 98 drivers/gpu/host1x/hw/debug_hw_1x01.c host1x_sync_writel(host, HOST1X_SYNC_CFPEEK_CTRL_ENA_F(1) | host 102 drivers/gpu/host1x/hw/debug_hw_1x01.c val = host1x_sync_readl(host, HOST1X_SYNC_CFPEEK_READ); host 123 drivers/gpu/host1x/hw/debug_hw_1x01.c host1x_sync_writel(host, 0x0, HOST1X_SYNC_CFPEEK_CTRL); host 126 drivers/gpu/host1x/hw/debug_hw_1x01.c static void host1x_debug_show_mlocks(struct host1x *host, struct output *o) host 132 drivers/gpu/host1x/hw/debug_hw_1x01.c for (i = 0; i < host1x_syncpt_nb_mlocks(host); i++) { host 134 drivers/gpu/host1x/hw/debug_hw_1x01.c host1x_sync_readl(host, HOST1X_SYNC_MLOCK_OWNER(i)); host 14 drivers/gpu/host1x/hw/debug_hw_1x06.c static void host1x_debug_show_channel_cdma(struct host1x *host, host 52 drivers/gpu/host1x/hw/debug_hw_1x06.c static void host1x_debug_show_channel_fifo(struct host1x *host, host 77 drivers/gpu/host1x/hw/debug_hw_1x06.c host1x_hypervisor_writel(host, 0x1, HOST1X_HV_ICG_EN_OVERRIDE); host 82 drivers/gpu/host1x/hw/debug_hw_1x06.c host1x_hypervisor_writel(host, val, HOST1X_HV_CMDFIFO_PEEK_CTRL); host 84 drivers/gpu/host1x/hw/debug_hw_1x06.c val = host1x_hypervisor_readl(host, HOST1X_HV_CMDFIFO_PEEK_PTRS); host 88 drivers/gpu/host1x/hw/debug_hw_1x06.c val = host1x_hypervisor_readl(host, HOST1X_HV_CMDFIFO_SETUP(ch->id)); host 97 drivers/gpu/host1x/hw/debug_hw_1x06.c host1x_hypervisor_writel(host, val, host 100 drivers/gpu/host1x/hw/debug_hw_1x06.c val = host1x_hypervisor_readl(host, host 123 drivers/gpu/host1x/hw/debug_hw_1x06.c host1x_hypervisor_writel(host, 0x0, HOST1X_HV_CMDFIFO_PEEK_CTRL); host 124 drivers/gpu/host1x/hw/debug_hw_1x06.c host1x_hypervisor_writel(host, 0x0, HOST1X_HV_ICG_EN_OVERRIDE); host 128 drivers/gpu/host1x/hw/debug_hw_1x06.c static void host1x_debug_show_mlocks(struct host1x *host, struct output *o) host 23 drivers/gpu/host1x/hw/host1x01.c int host1x01_init(struct host1x *host) host 25 drivers/gpu/host1x/hw/host1x01.c host->channel_op = &host1x_channel_ops; host 26 drivers/gpu/host1x/hw/host1x01.c host->cdma_op = &host1x_cdma_ops; host 27 drivers/gpu/host1x/hw/host1x01.c host->cdma_pb_op = &host1x_pushbuffer_ops; host 28 drivers/gpu/host1x/hw/host1x01.c host->syncpt_op = &host1x_syncpt_ops; host 29 drivers/gpu/host1x/hw/host1x01.c host->intr_op = &host1x_intr_ops; host 30 drivers/gpu/host1x/hw/host1x01.c host->debug_op = &host1x_debug_ops; host 12 drivers/gpu/host1x/hw/host1x01.h int host1x01_init(struct host1x *host); host 23 drivers/gpu/host1x/hw/host1x02.c int host1x02_init(struct host1x *host) host 25 drivers/gpu/host1x/hw/host1x02.c host->channel_op = &host1x_channel_ops; host 26 drivers/gpu/host1x/hw/host1x02.c host->cdma_op = &host1x_cdma_ops; host 27 drivers/gpu/host1x/hw/host1x02.c host->cdma_pb_op = &host1x_pushbuffer_ops; host 28 drivers/gpu/host1x/hw/host1x02.c host->syncpt_op = &host1x_syncpt_ops; host 29 drivers/gpu/host1x/hw/host1x02.c host->intr_op = &host1x_intr_ops; host 30 drivers/gpu/host1x/hw/host1x02.c host->debug_op = &host1x_debug_ops; host 13 drivers/gpu/host1x/hw/host1x02.h int host1x02_init(struct host1x *host); host 23 drivers/gpu/host1x/hw/host1x04.c int host1x04_init(struct host1x *host) host 25 drivers/gpu/host1x/hw/host1x04.c host->channel_op = &host1x_channel_ops; host 26 drivers/gpu/host1x/hw/host1x04.c host->cdma_op = &host1x_cdma_ops; host 27 drivers/gpu/host1x/hw/host1x04.c host->cdma_pb_op = &host1x_pushbuffer_ops; host 28 drivers/gpu/host1x/hw/host1x04.c host->syncpt_op = &host1x_syncpt_ops; host 29 drivers/gpu/host1x/hw/host1x04.c host->intr_op = &host1x_intr_ops; host 30 drivers/gpu/host1x/hw/host1x04.c host->debug_op = &host1x_debug_ops; host 13 drivers/gpu/host1x/hw/host1x04.h int host1x04_init(struct host1x *host); host 23 drivers/gpu/host1x/hw/host1x05.c int host1x05_init(struct host1x *host) host 25 drivers/gpu/host1x/hw/host1x05.c host->channel_op = &host1x_channel_ops; host 26 drivers/gpu/host1x/hw/host1x05.c host->cdma_op = &host1x_cdma_ops; host 27 drivers/gpu/host1x/hw/host1x05.c host->cdma_pb_op = &host1x_pushbuffer_ops; host 28 drivers/gpu/host1x/hw/host1x05.c host->syncpt_op = &host1x_syncpt_ops; host 29 drivers/gpu/host1x/hw/host1x05.c host->intr_op = &host1x_intr_ops; host 30 drivers/gpu/host1x/hw/host1x05.c host->debug_op = &host1x_debug_ops; host 13 drivers/gpu/host1x/hw/host1x05.h int host1x05_init(struct host1x *host); host 23 drivers/gpu/host1x/hw/host1x06.c int host1x06_init(struct host1x *host) host 25 drivers/gpu/host1x/hw/host1x06.c host->channel_op = &host1x_channel_ops; host 26 drivers/gpu/host1x/hw/host1x06.c host->cdma_op = &host1x_cdma_ops; host 27 drivers/gpu/host1x/hw/host1x06.c host->cdma_pb_op = &host1x_pushbuffer_ops; host 28 drivers/gpu/host1x/hw/host1x06.c host->syncpt_op = &host1x_syncpt_ops; host 29 drivers/gpu/host1x/hw/host1x06.c host->intr_op = &host1x_intr_ops; host 30 drivers/gpu/host1x/hw/host1x06.c host->debug_op = &host1x_debug_ops; host 13 drivers/gpu/host1x/hw/host1x06.h int host1x06_init(struct host1x *host); host 23 drivers/gpu/host1x/hw/host1x07.c int host1x07_init(struct host1x *host) host 25 drivers/gpu/host1x/hw/host1x07.c host->channel_op = &host1x_channel_ops; host 26 drivers/gpu/host1x/hw/host1x07.c host->cdma_op = &host1x_cdma_ops; host 27 drivers/gpu/host1x/hw/host1x07.c host->cdma_pb_op = &host1x_pushbuffer_ops; host 28 drivers/gpu/host1x/hw/host1x07.c host->syncpt_op = &host1x_syncpt_ops; host 29 drivers/gpu/host1x/hw/host1x07.c host->intr_op = &host1x_intr_ops; host 30 drivers/gpu/host1x/hw/host1x07.c host->debug_op = &host1x_debug_ops; host 13 drivers/gpu/host1x/hw/host1x07.h int host1x07_init(struct host1x *host); host 23 drivers/gpu/host1x/hw/intr_hw.c struct host1x *host = syncpt->host; host 25 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, BIT(id % 32), host 27 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, BIT(id % 32), host 35 drivers/gpu/host1x/hw/intr_hw.c struct host1x *host = dev_id; host 39 drivers/gpu/host1x/hw/intr_hw.c for (i = 0; i < DIV_ROUND_UP(host->info->nb_pts, 32); i++) { host 40 drivers/gpu/host1x/hw/intr_hw.c reg = host1x_sync_readl(host, host 44 drivers/gpu/host1x/hw/intr_hw.c host->syncpt + (i * 32 + id); host 52 drivers/gpu/host1x/hw/intr_hw.c static void _host1x_intr_disable_all_syncpt_intrs(struct host1x *host) host 56 drivers/gpu/host1x/hw/intr_hw.c for (i = 0; i < DIV_ROUND_UP(host->info->nb_pts, 32); ++i) { host 57 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, 0xffffffffu, host 59 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, 0xffffffffu, host 64 drivers/gpu/host1x/hw/intr_hw.c static void intr_hw_init(struct host1x *host, u32 cpm) host 68 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, 0, HOST1X_SYNC_IP_BUSY_TIMEOUT); host 74 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, 0xff, HOST1X_SYNC_CTXSW_TIMEOUT_CFG); host 77 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, cpm, HOST1X_SYNC_USEC_CLK); host 82 drivers/gpu/host1x/hw/intr_hw.c _host1x_intr_init_host_sync(struct host1x *host, u32 cpm, host 88 drivers/gpu/host1x/hw/intr_hw.c host1x_hw_intr_disable_all_syncpt_intrs(host); host 90 drivers/gpu/host1x/hw/intr_hw.c for (i = 0; i < host->info->nb_pts; i++) host 91 drivers/gpu/host1x/hw/intr_hw.c INIT_WORK(&host->syncpt[i].intr.work, syncpt_thresh_work); host 93 drivers/gpu/host1x/hw/intr_hw.c err = devm_request_irq(host->dev, host->intr_syncpt_irq, host 95 drivers/gpu/host1x/hw/intr_hw.c "host1x_syncpt", host); host 101 drivers/gpu/host1x/hw/intr_hw.c intr_hw_init(host, cpm); host 106 drivers/gpu/host1x/hw/intr_hw.c static void _host1x_intr_set_syncpt_threshold(struct host1x *host, host 110 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, thresh, HOST1X_SYNC_SYNCPT_INT_THRESH(id)); host 113 drivers/gpu/host1x/hw/intr_hw.c static void _host1x_intr_enable_syncpt_intr(struct host1x *host, host 116 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, BIT(id % 32), host 120 drivers/gpu/host1x/hw/intr_hw.c static void _host1x_intr_disable_syncpt_intr(struct host1x *host, host 123 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, BIT(id % 32), host 125 drivers/gpu/host1x/hw/intr_hw.c host1x_sync_writel(host, BIT(id % 32), host 129 drivers/gpu/host1x/hw/intr_hw.c static int _host1x_free_syncpt_irq(struct host1x *host) host 133 drivers/gpu/host1x/hw/intr_hw.c devm_free_irq(host->dev, host->intr_syncpt_irq, host); host 135 drivers/gpu/host1x/hw/intr_hw.c for (i = 0; i < host->info->nb_pts; i++) host 136 drivers/gpu/host1x/hw/intr_hw.c cancel_work_sync(&host->syncpt[i].intr.work); host 19 drivers/gpu/host1x/hw/syncpt_hw.c struct host1x *host = sp->host; host 21 drivers/gpu/host1x/hw/syncpt_hw.c host1x_sync_writel(host, min, HOST1X_SYNC_SYNCPT(sp->id)); host 30 drivers/gpu/host1x/hw/syncpt_hw.c struct host1x *host = sp->host; host 32 drivers/gpu/host1x/hw/syncpt_hw.c host1x_sync_writel(host, sp->base_val, host 43 drivers/gpu/host1x/hw/syncpt_hw.c struct host1x *host = sp->host; host 46 drivers/gpu/host1x/hw/syncpt_hw.c host1x_sync_readl(host, HOST1X_SYNC_SYNCPT_BASE(sp->id)); host 55 drivers/gpu/host1x/hw/syncpt_hw.c struct host1x *host = sp->host; host 61 drivers/gpu/host1x/hw/syncpt_hw.c live = host1x_sync_readl(host, HOST1X_SYNC_SYNCPT(sp->id)); host 65 drivers/gpu/host1x/hw/syncpt_hw.c dev_err(host->dev, "%s failed: id=%u, min=%d, max=%d\n", host 78 drivers/gpu/host1x/hw/syncpt_hw.c struct host1x *host = sp->host; host 85 drivers/gpu/host1x/hw/syncpt_hw.c host1x_sync_writel(host, BIT(sp->id % 32), host 107 drivers/gpu/host1x/hw/syncpt_hw.c struct host1x *host = sp->host; host 109 drivers/gpu/host1x/hw/syncpt_hw.c if (!host->hv_regs) host 112 drivers/gpu/host1x/hw/syncpt_hw.c host1x_sync_writel(host, host 125 drivers/gpu/host1x/hw/syncpt_hw.c static void syncpt_enable_protection(struct host1x *host) host 128 drivers/gpu/host1x/hw/syncpt_hw.c if (!host->hv_regs) host 131 drivers/gpu/host1x/hw/syncpt_hw.c host1x_hypervisor_writel(host, HOST1X_HV_SYNCPT_PROT_EN_CH_EN, host 88 drivers/gpu/host1x/intr.c static void reset_threshold_interrupt(struct host1x *host, host 95 drivers/gpu/host1x/intr.c host1x_hw_intr_set_syncpt_threshold(host, id, thresh); host 96 drivers/gpu/host1x/intr.c host1x_hw_intr_enable_syncpt_intr(host, id); host 155 drivers/gpu/host1x/intr.c static int process_wait_list(struct host1x *host, host 173 drivers/gpu/host1x/intr.c host1x_hw_intr_disable_syncpt_intr(host, syncpt->id); host 175 drivers/gpu/host1x/intr.c reset_threshold_interrupt(host, &syncpt->intr.wait_head, host 197 drivers/gpu/host1x/intr.c struct host1x *host = syncpt->host; host 199 drivers/gpu/host1x/intr.c (void)process_wait_list(host, syncpt, host 200 drivers/gpu/host1x/intr.c host1x_syncpt_load(host->syncpt + id)); host 203 drivers/gpu/host1x/intr.c int host1x_intr_add_action(struct host1x *host, struct host1x_syncpt *syncpt, host 232 drivers/gpu/host1x/intr.c host1x_hw_intr_set_syncpt_threshold(host, syncpt->id, thresh); host 236 drivers/gpu/host1x/intr.c host1x_hw_intr_enable_syncpt_intr(host, syncpt->id); host 246 drivers/gpu/host1x/intr.c void host1x_intr_put_ref(struct host1x *host, unsigned int id, void *ref) host 255 drivers/gpu/host1x/intr.c syncpt = host->syncpt + id; host 256 drivers/gpu/host1x/intr.c (void)process_wait_list(host, syncpt, host 257 drivers/gpu/host1x/intr.c host1x_syncpt_load(host->syncpt + id)); host 262 drivers/gpu/host1x/intr.c int host1x_intr_init(struct host1x *host, unsigned int irq_sync) host 265 drivers/gpu/host1x/intr.c u32 nb_pts = host1x_syncpt_nb_pts(host); host 267 drivers/gpu/host1x/intr.c mutex_init(&host->intr_mutex); host 268 drivers/gpu/host1x/intr.c host->intr_syncpt_irq = irq_sync; host 271 drivers/gpu/host1x/intr.c struct host1x_syncpt *syncpt = host->syncpt + id; host 280 drivers/gpu/host1x/intr.c host1x_intr_start(host); host 285 drivers/gpu/host1x/intr.c void host1x_intr_deinit(struct host1x *host) host 287 drivers/gpu/host1x/intr.c host1x_intr_stop(host); host 290 drivers/gpu/host1x/intr.c void host1x_intr_start(struct host1x *host) host 292 drivers/gpu/host1x/intr.c u32 hz = clk_get_rate(host->clk); host 295 drivers/gpu/host1x/intr.c mutex_lock(&host->intr_mutex); host 296 drivers/gpu/host1x/intr.c err = host1x_hw_intr_init_host_sync(host, DIV_ROUND_UP(hz, 1000000), host 299 drivers/gpu/host1x/intr.c mutex_unlock(&host->intr_mutex); host 302 drivers/gpu/host1x/intr.c mutex_unlock(&host->intr_mutex); host 305 drivers/gpu/host1x/intr.c void host1x_intr_stop(struct host1x *host) host 308 drivers/gpu/host1x/intr.c struct host1x_syncpt *syncpt = host->syncpt; host 309 drivers/gpu/host1x/intr.c u32 nb_pts = host1x_syncpt_nb_pts(host); host 311 drivers/gpu/host1x/intr.c mutex_lock(&host->intr_mutex); host 313 drivers/gpu/host1x/intr.c host1x_hw_intr_disable_all_syncpt_intrs(host); host 329 drivers/gpu/host1x/intr.c mutex_unlock(&host->intr_mutex); host 336 drivers/gpu/host1x/intr.c host1x_hw_intr_free_syncpt_irq(host); host 338 drivers/gpu/host1x/intr.c mutex_unlock(&host->intr_mutex); host 68 drivers/gpu/host1x/intr.h int host1x_intr_add_action(struct host1x *host, struct host1x_syncpt *syncpt, host 78 drivers/gpu/host1x/intr.h void host1x_intr_put_ref(struct host1x *host, unsigned int id, void *ref); host 81 drivers/gpu/host1x/intr.h int host1x_intr_init(struct host1x *host, unsigned int irq_sync); host 84 drivers/gpu/host1x/intr.h void host1x_intr_deinit(struct host1x *host); host 87 drivers/gpu/host1x/intr.h void host1x_intr_start(struct host1x *host); host 90 drivers/gpu/host1x/intr.h void host1x_intr_stop(struct host1x *host); host 100 drivers/gpu/host1x/job.c static unsigned int pin_job(struct host1x *host, struct host1x_job *job) host 144 drivers/gpu/host1x/job.c if (!IS_ENABLED(CONFIG_TEGRA_HOST1X_FIREWALL) && host->domain) { host 147 drivers/gpu/host1x/job.c gather_size = iova_align(&host->iova, gather_size); host 149 drivers/gpu/host1x/job.c shift = iova_shift(&host->iova); host 150 drivers/gpu/host1x/job.c alloc = alloc_iova(&host->iova, gather_size >> shift, host 151 drivers/gpu/host1x/job.c host->iova_end >> shift, true); host 157 drivers/gpu/host1x/job.c err = iommu_map_sg(host->domain, host 158 drivers/gpu/host1x/job.c iova_dma_addr(&host->iova, alloc), host 161 drivers/gpu/host1x/job.c __free_iova(&host->iova, alloc); host 167 drivers/gpu/host1x/job.c iova_dma_addr(&host->iova, alloc); host 439 drivers/gpu/host1x/job.c static inline int copy_gathers(struct device *host, struct host1x_job *job, host 463 drivers/gpu/host1x/job.c job->gather_copy_mapped = dma_alloc_wc(host, size, &job->gather_copy, host 468 drivers/gpu/host1x/job.c job->gather_copy_mapped = dma_alloc_wc(host, size, host 508 drivers/gpu/host1x/job.c struct host1x *host = dev_get_drvdata(dev->parent); host 511 drivers/gpu/host1x/job.c err = pin_job(host, job); host 516 drivers/gpu/host1x/job.c err = copy_gathers(host->dev, job, dev); host 556 drivers/gpu/host1x/job.c struct host1x *host = dev_get_drvdata(job->channel->dev->parent); host 563 drivers/gpu/host1x/job.c unpin->size && host->domain) { host 564 drivers/gpu/host1x/job.c iommu_unmap(host->domain, job->addr_phys[i], host 566 drivers/gpu/host1x/job.c free_iova(&host->iova, host 567 drivers/gpu/host1x/job.c iova_pfn(&host->iova, job->addr_phys[i])); host 577 drivers/gpu/host1x/job.c dma_free_wc(host->dev, job->gather_copy_size, host 23 drivers/gpu/host1x/syncpt.c host1x_syncpt_base_request(struct host1x *host) host 25 drivers/gpu/host1x/syncpt.c struct host1x_syncpt_base *bases = host->bases; host 28 drivers/gpu/host1x/syncpt.c for (i = 0; i < host->info->nb_bases; i++) host 32 drivers/gpu/host1x/syncpt.c if (i >= host->info->nb_bases) host 45 drivers/gpu/host1x/syncpt.c static struct host1x_syncpt *host1x_syncpt_alloc(struct host1x *host, host 49 drivers/gpu/host1x/syncpt.c struct host1x_syncpt *sp = host->syncpt; host 53 drivers/gpu/host1x/syncpt.c mutex_lock(&host->syncpt_mutex); host 55 drivers/gpu/host1x/syncpt.c for (i = 0; i < host->info->nb_pts && sp->name; i++, sp++) host 58 drivers/gpu/host1x/syncpt.c if (i >= host->info->nb_pts) host 62 drivers/gpu/host1x/syncpt.c sp->base = host1x_syncpt_base_request(host); host 80 drivers/gpu/host1x/syncpt.c mutex_unlock(&host->syncpt_mutex); host 87 drivers/gpu/host1x/syncpt.c mutex_unlock(&host->syncpt_mutex); host 119 drivers/gpu/host1x/syncpt.c void host1x_syncpt_restore(struct host1x *host) host 121 drivers/gpu/host1x/syncpt.c struct host1x_syncpt *sp_base = host->syncpt; host 124 drivers/gpu/host1x/syncpt.c for (i = 0; i < host1x_syncpt_nb_pts(host); i++) host 125 drivers/gpu/host1x/syncpt.c host1x_hw_syncpt_restore(host, sp_base + i); host 127 drivers/gpu/host1x/syncpt.c for (i = 0; i < host1x_syncpt_nb_bases(host); i++) host 128 drivers/gpu/host1x/syncpt.c host1x_hw_syncpt_restore_wait_base(host, sp_base + i); host 137 drivers/gpu/host1x/syncpt.c void host1x_syncpt_save(struct host1x *host) host 139 drivers/gpu/host1x/syncpt.c struct host1x_syncpt *sp_base = host->syncpt; host 142 drivers/gpu/host1x/syncpt.c for (i = 0; i < host1x_syncpt_nb_pts(host); i++) { host 144 drivers/gpu/host1x/syncpt.c host1x_hw_syncpt_load(host, sp_base + i); host 149 drivers/gpu/host1x/syncpt.c for (i = 0; i < host1x_syncpt_nb_bases(host); i++) host 150 drivers/gpu/host1x/syncpt.c host1x_hw_syncpt_load_wait_base(host, sp_base + i); host 161 drivers/gpu/host1x/syncpt.c val = host1x_hw_syncpt_load(sp->host, sp); host 172 drivers/gpu/host1x/syncpt.c host1x_hw_syncpt_load_wait_base(sp->host, sp); host 183 drivers/gpu/host1x/syncpt.c return host1x_hw_syncpt_cpu_incr(sp->host, sp); host 193 drivers/gpu/host1x/syncpt.c host1x_hw_syncpt_load(sp->host, sp); host 226 drivers/gpu/host1x/syncpt.c val = host1x_hw_syncpt_load(sp->host, sp); host 247 drivers/gpu/host1x/syncpt.c err = host1x_intr_add_action(sp->host, sp, thresh, host 283 drivers/gpu/host1x/syncpt.c dev_warn(sp->host->dev, host 288 drivers/gpu/host1x/syncpt.c host1x_debug_dump_syncpts(sp->host); host 291 drivers/gpu/host1x/syncpt.c host1x_debug_dump(sp->host); host 297 drivers/gpu/host1x/syncpt.c host1x_intr_put_ref(sp->host, sp->id, ref); host 365 drivers/gpu/host1x/syncpt.c int host1x_syncpt_init(struct host1x *host) host 371 drivers/gpu/host1x/syncpt.c syncpt = devm_kcalloc(host->dev, host->info->nb_pts, sizeof(*syncpt), host 376 drivers/gpu/host1x/syncpt.c bases = devm_kcalloc(host->dev, host->info->nb_bases, sizeof(*bases), host 381 drivers/gpu/host1x/syncpt.c for (i = 0; i < host->info->nb_pts; i++) { host 383 drivers/gpu/host1x/syncpt.c syncpt[i].host = host; host 390 drivers/gpu/host1x/syncpt.c host1x_hw_syncpt_assign_to_channel(host, &syncpt[i], NULL); host 393 drivers/gpu/host1x/syncpt.c for (i = 0; i < host->info->nb_bases; i++) host 396 drivers/gpu/host1x/syncpt.c mutex_init(&host->syncpt_mutex); host 397 drivers/gpu/host1x/syncpt.c host->syncpt = syncpt; host 398 drivers/gpu/host1x/syncpt.c host->bases = bases; host 400 drivers/gpu/host1x/syncpt.c host1x_syncpt_restore(host); host 401 drivers/gpu/host1x/syncpt.c host1x_hw_syncpt_enable_protection(host); host 404 drivers/gpu/host1x/syncpt.c host->nop_sp = host1x_syncpt_alloc(host, NULL, 0); host 405 drivers/gpu/host1x/syncpt.c if (!host->nop_sp) host 424 drivers/gpu/host1x/syncpt.c struct host1x *host = dev_get_drvdata(client->parent->parent); host 426 drivers/gpu/host1x/syncpt.c return host1x_syncpt_alloc(host, client, flags); host 445 drivers/gpu/host1x/syncpt.c mutex_lock(&sp->host->syncpt_mutex); host 454 drivers/gpu/host1x/syncpt.c mutex_unlock(&sp->host->syncpt_mutex); host 458 drivers/gpu/host1x/syncpt.c void host1x_syncpt_deinit(struct host1x *host) host 460 drivers/gpu/host1x/syncpt.c struct host1x_syncpt *sp = host->syncpt; host 463 drivers/gpu/host1x/syncpt.c for (i = 0; i < host->info->nb_pts; i++, sp++) host 507 drivers/gpu/host1x/syncpt.c unsigned int host1x_syncpt_nb_pts(struct host1x *host) host 509 drivers/gpu/host1x/syncpt.c return host->info->nb_pts; host 512 drivers/gpu/host1x/syncpt.c unsigned int host1x_syncpt_nb_bases(struct host1x *host) host 514 drivers/gpu/host1x/syncpt.c return host->info->nb_bases; host 517 drivers/gpu/host1x/syncpt.c unsigned int host1x_syncpt_nb_mlocks(struct host1x *host) host 519 drivers/gpu/host1x/syncpt.c return host->info->nb_mlocks; host 527 drivers/gpu/host1x/syncpt.c struct host1x_syncpt *host1x_syncpt_get(struct host1x *host, unsigned int id) host 529 drivers/gpu/host1x/syncpt.c if (id >= host->info->nb_pts) host 532 drivers/gpu/host1x/syncpt.c return host->syncpt + id; host 35 drivers/gpu/host1x/syncpt.h struct host1x *host; host 44 drivers/gpu/host1x/syncpt.h int host1x_syncpt_init(struct host1x *host); host 47 drivers/gpu/host1x/syncpt.h void host1x_syncpt_deinit(struct host1x *host); host 50 drivers/gpu/host1x/syncpt.h unsigned int host1x_syncpt_nb_pts(struct host1x *host); host 53 drivers/gpu/host1x/syncpt.h unsigned int host1x_syncpt_nb_bases(struct host1x *host); host 56 drivers/gpu/host1x/syncpt.h unsigned int host1x_syncpt_nb_mlocks(struct host1x *host); host 99 drivers/gpu/host1x/syncpt.h void host1x_syncpt_save(struct host1x *host); host 102 drivers/gpu/host1x/syncpt.h void host1x_syncpt_restore(struct host1x *host); host 113 drivers/gpu/host1x/syncpt.h return sp->id < host1x_syncpt_nb_pts(sp->host); host 50 drivers/i2c/busses/i2c-cbus-gpio.c static void cbus_send_bit(struct cbus_host *host, unsigned bit) host 52 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->dat, bit ? 1 : 0); host 53 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->clk, 1); host 54 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->clk, 0); host 63 drivers/i2c/busses/i2c-cbus-gpio.c static void cbus_send_data(struct cbus_host *host, unsigned data, unsigned len) host 68 drivers/i2c/busses/i2c-cbus-gpio.c cbus_send_bit(host, data & (1 << (i - 1))); host 75 drivers/i2c/busses/i2c-cbus-gpio.c static int cbus_receive_bit(struct cbus_host *host) host 79 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->clk, 1); host 80 drivers/i2c/busses/i2c-cbus-gpio.c ret = gpiod_get_value(host->dat); host 81 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->clk, 0); host 89 drivers/i2c/busses/i2c-cbus-gpio.c static int cbus_receive_word(struct cbus_host *host) host 95 drivers/i2c/busses/i2c-cbus-gpio.c int bit = cbus_receive_bit(host); host 114 drivers/i2c/busses/i2c-cbus-gpio.c static int cbus_transfer(struct cbus_host *host, char rw, unsigned dev, host 121 drivers/i2c/busses/i2c-cbus-gpio.c spin_lock_irqsave(&host->lock, flags); host 124 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->sel, 0); host 127 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_direction_output(host->dat, 1); host 130 drivers/i2c/busses/i2c-cbus-gpio.c cbus_send_data(host, dev, CBUS_ADDR_BITS); host 133 drivers/i2c/busses/i2c-cbus-gpio.c cbus_send_bit(host, rw == I2C_SMBUS_READ); host 136 drivers/i2c/busses/i2c-cbus-gpio.c cbus_send_data(host, reg, CBUS_REG_BITS); host 139 drivers/i2c/busses/i2c-cbus-gpio.c cbus_send_data(host, data, 16); host 142 drivers/i2c/busses/i2c-cbus-gpio.c ret = gpiod_direction_input(host->dat); host 144 drivers/i2c/busses/i2c-cbus-gpio.c dev_dbg(host->dev, "failed setting direction\n"); host 147 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->clk, 1); host 149 drivers/i2c/busses/i2c-cbus-gpio.c ret = cbus_receive_word(host); host 151 drivers/i2c/busses/i2c-cbus-gpio.c dev_dbg(host->dev, "failed receiving data\n"); host 157 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->sel, 1); host 158 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->clk, 1); host 159 drivers/i2c/busses/i2c-cbus-gpio.c gpiod_set_value(host->clk, 0); host 162 drivers/i2c/busses/i2c-cbus-gpio.c spin_unlock_irqrestore(&host->lock, flags); host 88 drivers/ide/aec62xx.c struct ide_host *host = pci_get_drvdata(dev); host 89 drivers/ide/aec62xx.c struct chipset_bus_clock_list_entry *bus_clock = host->host_priv; host 116 drivers/ide/aec62xx.c struct ide_host *host = pci_get_drvdata(dev); host 117 drivers/ide/aec62xx.c struct chipset_bus_clock_list_entry *bus_clock = host->host_priv; host 505 drivers/ide/au1xxx-ide.c struct ide_host *host; host 556 drivers/ide/au1xxx-ide.c ret = ide_host_add(&au1xxx_port_info, hws, 1, &host); host 560 drivers/ide/au1xxx-ide.c auide_hwif.hwif = host->ports[0]; host 562 drivers/ide/au1xxx-ide.c platform_set_drvdata(dev, host); host 573 drivers/ide/au1xxx-ide.c struct ide_host *host = platform_get_drvdata(dev); host 576 drivers/ide/au1xxx-ide.c ide_host_remove(host); host 197 drivers/ide/cy82c693.c struct ide_host *host = pci_get_drvdata(dev); host 198 drivers/ide/cy82c693.c struct pci_dev *dev2 = host->dev[1] ? to_pci_dev(host->dev[1]) : NULL; host 76 drivers/ide/delkin_cb.c struct ide_host *host; host 101 drivers/ide/delkin_cb.c rc = ide_host_add(&delkin_cb_port_info, hws, 1, &host); host 105 drivers/ide/delkin_cb.c pci_set_drvdata(dev, host); host 118 drivers/ide/delkin_cb.c struct ide_host *host = pci_get_drvdata(dev); host 120 drivers/ide/delkin_cb.c ide_host_remove(host); host 138 drivers/ide/delkin_cb.c struct ide_host *host = pci_get_drvdata(dev); host 150 drivers/ide/delkin_cb.c if (host->init_chipset) host 151 drivers/ide/delkin_cb.c host->init_chipset(dev); host 139 drivers/ide/falconide.c struct ide_host *host; host 155 drivers/ide/falconide.c host = ide_host_alloc(&falconide_port_info, hws, 1); host 156 drivers/ide/falconide.c if (host == NULL) { host 162 drivers/ide/falconide.c rc = ide_host_register(host, &falconide_port_info, hws); host 170 drivers/ide/falconide.c ide_host_free(host); host 126 drivers/ide/gayle.c struct ide_host *host; host 156 drivers/ide/gayle.c error = ide_host_add(&d, hws, i, &host); host 160 drivers/ide/gayle.c platform_set_drvdata(pdev, host); host 170 drivers/ide/gayle.c struct ide_host *host = platform_get_drvdata(pdev); host 173 drivers/ide/gayle.c ide_host_remove(host); host 542 drivers/ide/hpt366.c struct ide_host *host = dev_get_drvdata(dev); host 543 drivers/ide/hpt366.c struct hpt_info *info = (struct hpt_info *)host->host_priv; host 545 drivers/ide/hpt366.c return dev == host->dev[1] ? info + 1 : info; host 878 drivers/ide/hpt366.c struct ide_host *host = pci_get_drvdata(dev); host 879 drivers/ide/hpt366.c struct hpt_info *info = host->host_priv + (&dev->dev == host->dev[1]); host 1216 drivers/ide/hpt366.c hwif->host->host_flags |= IDE_HFLAG_SERIALIZE; host 1501 drivers/ide/hpt366.c struct ide_host *host = pci_get_drvdata(dev); host 1502 drivers/ide/hpt366.c struct ide_info *info = host->host_priv; host 1503 drivers/ide/hpt366.c struct pci_dev *dev2 = host->dev[1] ? to_pci_dev(host->dev[1]) : NULL; host 75 drivers/ide/icside.c struct ide_host *host; host 414 drivers/ide/icside.c struct ide_host *host; host 436 drivers/ide/icside.c host = ide_host_alloc(&icside_v5_port_info, hws, 1); host 437 drivers/ide/icside.c if (host == NULL) host 440 drivers/ide/icside.c state->host = host; host 444 drivers/ide/icside.c ret = ide_host_register(host, &icside_v5_port_info, hws); host 450 drivers/ide/icside.c ide_host_free(host); host 468 drivers/ide/icside.c struct ide_host *host; host 511 drivers/ide/icside.c host = ide_host_alloc(&d, hws, 2); host 512 drivers/ide/icside.c if (host == NULL) host 515 drivers/ide/icside.c state->host = host; host 527 drivers/ide/icside.c ret = ide_host_register(host, &d, hws); host 533 drivers/ide/icside.c ide_host_free(host); host 64 drivers/ide/ide-cs.c struct ide_host *host; host 118 drivers/ide/ide-cs.c struct ide_host *host; host 141 drivers/ide/ide-cs.c rc = ide_host_add(&idecs_port_info, hws, 1, &host); host 145 drivers/ide/ide-cs.c hwif = host->ports[0]; host 148 drivers/ide/ide-cs.c return host; host 155 drivers/ide/ide-cs.c return host; host 158 drivers/ide/ide-cs.c return host; host 194 drivers/ide/ide-cs.c struct ide_host *host; host 227 drivers/ide/ide-cs.c host = idecs_register(io_base, ctl_base, link->irq, link); host 228 drivers/ide/ide-cs.c if (host == NULL && resource_size(link->resource[0]) == 0x20) { host 230 drivers/ide/ide-cs.c host = idecs_register(io_base + 0x10, ctl_base + 0x10, host 234 drivers/ide/ide-cs.c if (host == NULL) host 238 drivers/ide/ide-cs.c info->host = host; host 240 drivers/ide/ide-cs.c 'a' + host->ports[0]->index * 2, host 253 drivers/ide/ide-cs.c struct ide_host *host = info->host; host 258 drivers/ide/ide-cs.c ide_hwif_t *hwif = host->ports[0]; host 264 drivers/ide/ide-cs.c ide_host_remove(host); host 421 drivers/ide/ide-io.c static inline int ide_lock_host(struct ide_host *host, ide_hwif_t *hwif) host 425 drivers/ide/ide-io.c if (host->host_flags & IDE_HFLAG_SERIALIZE) { host 426 drivers/ide/ide-io.c rc = test_and_set_bit_lock(IDE_HOST_BUSY, &host->host_busy); host 428 drivers/ide/ide-io.c if (host->get_lock) host 429 drivers/ide/ide-io.c host->get_lock(ide_intr, hwif); host 435 drivers/ide/ide-io.c static inline void ide_unlock_host(struct ide_host *host) host 437 drivers/ide/ide-io.c if (host->host_flags & IDE_HFLAG_SERIALIZE) { host 438 drivers/ide/ide-io.c if (host->release_lock) host 439 drivers/ide/ide-io.c host->release_lock(); host 440 drivers/ide/ide-io.c clear_bit_unlock(IDE_HOST_BUSY, &host->host_busy); host 460 drivers/ide/ide-io.c struct ide_host *host = hwif->host; host 471 drivers/ide/ide-io.c if (ide_lock_host(host, hwif)) host 481 drivers/ide/ide-io.c prev_port = hwif->host->cur_port; host 488 drivers/ide/ide-io.c if ((hwif->host->host_flags & IDE_HFLAG_SERIALIZE) && host 503 drivers/ide/ide-io.c hwif->host->cur_port = hwif; host 549 drivers/ide/ide-io.c ide_unlock_host(host); host 558 drivers/ide/ide-io.c ide_unlock_host(host); host 699 drivers/ide/ide-io.c ide_unlock_host(hwif->host); host 779 drivers/ide/ide-io.c struct ide_host *host = hwif->host; host 788 drivers/ide/ide-io.c if (host->host_flags & IDE_HFLAG_SERIALIZE) { host 789 drivers/ide/ide-io.c if (hwif != host->cur_port) host 814 drivers/ide/ide-io.c if ((host->irq_flags & IRQF_SHARED) == 0) { host 877 drivers/ide/ide-io.c ide_unlock_host(hwif->host); host 30 drivers/ide/ide-pnp.c struct ide_host *host; host 60 drivers/ide/ide-pnp.c rc = ide_host_add(&ide_pnp_port_info, hws, 1, &host); host 64 drivers/ide/ide-pnp.c pnp_set_drvdata(dev, host); host 76 drivers/ide/ide-pnp.c struct ide_host *host = pnp_get_drvdata(dev); host 78 drivers/ide/ide-pnp.c ide_host_remove(host); host 853 drivers/ide/ide-probe.c static void ide_host_enable_irqs(struct ide_host *host) host 858 drivers/ide/ide-probe.c ide_host_for_each_port(i, hwif, host) { host 877 drivers/ide/ide-probe.c struct ide_host *host = hwif->host; host 878 drivers/ide/ide-probe.c irq_handler_t irq_handler = host->irq_handler; host 879 drivers/ide/ide-probe.c int sa = host->irq_flags; host 884 drivers/ide/ide-probe.c if (!host->get_lock) host 896 drivers/ide/ide-probe.c if (hwif->host->host_flags & IDE_HFLAG_SERIALIZE) host 1128 drivers/ide/ide-probe.c hwif->host->host_flags |= IDE_HFLAG_SERIALIZE; host 1350 drivers/ide/ide-probe.c struct ide_host *host; host 1355 drivers/ide/ide-probe.c host = kzalloc_node(sizeof(*host), GFP_KERNEL, node); host 1356 drivers/ide/ide-probe.c if (host == NULL) host 1386 drivers/ide/ide-probe.c hwif->host = host; host 1388 drivers/ide/ide-probe.c host->ports[i] = hwif; host 1389 drivers/ide/ide-probe.c host->n_ports++; host 1392 drivers/ide/ide-probe.c if (host->n_ports == 0) { host 1393 drivers/ide/ide-probe.c kfree(host); host 1397 drivers/ide/ide-probe.c host->dev[0] = dev; host 1400 drivers/ide/ide-probe.c host->init_chipset = d->init_chipset; host 1401 drivers/ide/ide-probe.c host->get_lock = d->get_lock; host 1402 drivers/ide/ide-probe.c host->release_lock = d->release_lock; host 1403 drivers/ide/ide-probe.c host->host_flags = d->host_flags; host 1404 drivers/ide/ide-probe.c host->irq_flags = d->irq_flags; host 1407 drivers/ide/ide-probe.c return host; host 1420 drivers/ide/ide-probe.c struct ide_host *host = hwif->host; host 1426 drivers/ide/ide-probe.c if (host->ports[i] == hwif) { host 1427 drivers/ide/ide-probe.c host->ports[i] = NULL; host 1428 drivers/ide/ide-probe.c host->n_ports--; host 1435 drivers/ide/ide-probe.c int ide_host_register(struct ide_host *host, const struct ide_port_info *d, host 1444 drivers/ide/ide-probe.c ide_host_for_each_port(i, hwif, host) { host 1468 drivers/ide/ide-probe.c ide_host_for_each_port(i, hwif, host) { host 1489 drivers/ide/ide-probe.c ide_host_enable_irqs(host); host 1491 drivers/ide/ide-probe.c ide_host_for_each_port(i, hwif, host) { host 1518 drivers/ide/ide-probe.c ide_host_for_each_port(i, hwif, host) { host 1538 drivers/ide/ide-probe.c struct ide_host *host; host 1541 drivers/ide/ide-probe.c host = ide_host_alloc(d, hws, n_ports); host 1542 drivers/ide/ide-probe.c if (host == NULL) host 1545 drivers/ide/ide-probe.c rc = ide_host_register(host, d, hws); host 1547 drivers/ide/ide-probe.c ide_host_free(host); host 1552 drivers/ide/ide-probe.c *hostp = host; host 1607 drivers/ide/ide-probe.c if (!hwif->host->get_lock) host 1626 drivers/ide/ide-probe.c void ide_host_free(struct ide_host *host) host 1631 drivers/ide/ide-probe.c ide_host_for_each_port(i, hwif, host) { host 1636 drivers/ide/ide-probe.c kfree(host); host 1640 drivers/ide/ide-probe.c void ide_host_remove(struct ide_host *host) host 1645 drivers/ide/ide-probe.c ide_host_for_each_port(i, hwif, host) { host 1650 drivers/ide/ide-probe.c ide_host_free(host); host 80 drivers/ide/ide.c host_dev = drive->hwif->host->dev[0]; host 102 drivers/ide/ide.c struct device *host_dev = drive->hwif->host->dev[0]; host 50 drivers/ide/ide_platform.c struct ide_host *host; host 100 drivers/ide/ide_platform.c ret = ide_host_add(&d, hws, 1, &host); host 104 drivers/ide/ide_platform.c platform_set_drvdata(pdev, host); host 114 drivers/ide/ide_platform.c struct ide_host *host = dev_get_drvdata(&pdev->dev); host 116 drivers/ide/ide_platform.c ide_host_remove(host); host 534 drivers/ide/it821x.c struct ide_host *host = pci_get_drvdata(dev); host 535 drivers/ide/it821x.c struct it821x_dev *itdevs = host->host_priv; host 672 drivers/ide/it821x.c struct ide_host *host = pci_get_drvdata(dev); host 673 drivers/ide/it821x.c struct it821x_dev *itdevs = host->host_priv; host 514 drivers/ide/pdc202xx_new.c struct ide_host *host = pci_get_drvdata(dev); host 515 drivers/ide/pdc202xx_new.c struct pci_dev *dev2 = host->dev[1] ? to_pci_dev(host->dev[1]) : NULL; host 1021 drivers/ide/pmac.c struct ide_host *host; host 1073 drivers/ide/pmac.c host = ide_host_alloc(&d, hws, 1); host 1074 drivers/ide/pmac.c if (host == NULL) { host 1078 drivers/ide/pmac.c hwif = pmif->hwif = host->ports[0]; host 1104 drivers/ide/pmac.c rc = ide_host_register(host, &d, hws); host 1112 drivers/ide/pmac.c if (rc && host) host 1113 drivers/ide/pmac.c ide_host_free(host); host 36 drivers/ide/rapide.c struct ide_host *host; host 54 drivers/ide/rapide.c ret = ide_host_add(&rapide_port_info, hws, 1, &host); host 58 drivers/ide/rapide.c ecard_set_drvdata(ec, host); host 69 drivers/ide/rapide.c struct ide_host *host = ecard_get_drvdata(ec); host 73 drivers/ide/rapide.c ide_host_remove(host); host 238 drivers/ide/sc1200.c struct ide_host *host = pci_get_drvdata(dev); host 239 drivers/ide/sc1200.c struct sc1200_saved_state *ss = host->host_priv; host 257 drivers/ide/sc1200.c struct ide_host *host = pci_get_drvdata(dev); host 258 drivers/ide/sc1200.c struct sc1200_saved_state *ss = host->host_priv; host 537 drivers/ide/setup-pci.c struct ide_host *host; host 564 drivers/ide/setup-pci.c host = ide_host_alloc(d, hws, n_ports); host 565 drivers/ide/setup-pci.c if (host == NULL) { host 570 drivers/ide/setup-pci.c host->dev[0] = &dev1->dev; host 572 drivers/ide/setup-pci.c host->dev[1] = &dev2->dev; host 574 drivers/ide/setup-pci.c host->host_priv = priv; host 575 drivers/ide/setup-pci.c host->irq_flags = IRQF_SHARED; host 577 drivers/ide/setup-pci.c pci_set_drvdata(pdev[0], host); host 579 drivers/ide/setup-pci.c pci_set_drvdata(pdev[1], host); host 599 drivers/ide/setup-pci.c ret = ide_host_register(host, d, hws); host 601 drivers/ide/setup-pci.c ide_host_free(host); host 623 drivers/ide/setup-pci.c struct ide_host *host = pci_get_drvdata(dev); host 624 drivers/ide/setup-pci.c struct pci_dev *dev2 = host->dev[1] ? to_pci_dev(host->dev[1]) : NULL; host 627 drivers/ide/setup-pci.c if (host->host_flags & IDE_HFLAG_SINGLE) host 632 drivers/ide/setup-pci.c if ((host->host_flags & IDE_HFLAG_NO_DMA) == 0) { host 633 drivers/ide/setup-pci.c if (host->host_flags & IDE_HFLAG_CS5520) host 639 drivers/ide/setup-pci.c ide_host_remove(host); host 664 drivers/ide/setup-pci.c struct ide_host *host = pci_get_drvdata(dev); host 676 drivers/ide/setup-pci.c if (host->init_chipset) host 677 drivers/ide/setup-pci.c host->init_chipset(dev); host 131 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 134 drivers/ide/siimage.c if (host->host_priv) host 144 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 147 drivers/ide/siimage.c if (host->host_priv) host 157 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 159 drivers/ide/siimage.c if (host->host_priv) host 167 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 169 drivers/ide/siimage.c if (host->host_priv) host 177 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 179 drivers/ide/siimage.c if (host->host_priv) host 455 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 456 drivers/ide/siimage.c void __iomem *ioaddr = host->host_priv; host 552 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 553 drivers/ide/siimage.c void *addr = host->host_priv; host 652 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 659 drivers/ide/siimage.c if (host->host_priv) host 794 drivers/ide/siimage.c struct ide_host *host = pci_get_drvdata(dev); host 795 drivers/ide/siimage.c void __iomem *ioaddr = host->host_priv; host 367 drivers/ide/sis5513.c struct pci_dev *host; host 374 drivers/ide/sis5513.c host = pci_get_device(PCI_VENDOR_ID_SI, SiSHostChipInfo[i].host_id, NULL); host 376 drivers/ide/sis5513.c if (!host) host 383 drivers/ide/sis5513.c if (host->revision >= 0x30) host 386 drivers/ide/sis5513.c pci_dev_put(host); host 133 drivers/ide/tx4938ide.c struct ide_host *host; host 184 drivers/ide/tx4938ide.c ret = ide_host_add(&d, hws, 1, &host); host 186 drivers/ide/tx4938ide.c platform_set_drvdata(pdev, host); host 192 drivers/ide/tx4938ide.c struct ide_host *host = platform_get_drvdata(pdev); host 194 drivers/ide/tx4938ide.c ide_host_remove(host); host 539 drivers/ide/tx4939ide.c struct ide_host *host; host 581 drivers/ide/tx4939ide.c host = ide_host_alloc(&tx4939ide_port_info, hws, 1); host 582 drivers/ide/tx4939ide.c if (!host) host 585 drivers/ide/tx4939ide.c host->ports[0]->extra_base = mapbase; host 586 drivers/ide/tx4939ide.c ret = ide_host_register(host, &tx4939ide_port_info, hws); host 588 drivers/ide/tx4939ide.c ide_host_free(host); host 591 drivers/ide/tx4939ide.c platform_set_drvdata(pdev, host); host 597 drivers/ide/tx4939ide.c struct ide_host *host = platform_get_drvdata(pdev); host 599 drivers/ide/tx4939ide.c ide_host_remove(host); host 606 drivers/ide/tx4939ide.c struct ide_host *host = platform_get_drvdata(dev); host 607 drivers/ide/tx4939ide.c ide_hwif_t *hwif = host->ports[0]; host 124 drivers/ide/via82cxxx.c struct ide_host *host = pci_get_drvdata(dev); host 125 drivers/ide/via82cxxx.c struct via82cxxx_dev *vdev = host->host_priv; host 179 drivers/ide/via82cxxx.c struct ide_host *host = pci_get_drvdata(dev); host 180 drivers/ide/via82cxxx.c struct via82cxxx_dev *vdev = host->host_priv; host 295 drivers/ide/via82cxxx.c struct ide_host *host = pci_get_drvdata(dev); host 296 drivers/ide/via82cxxx.c struct via82cxxx_dev *vdev = host->host_priv; host 381 drivers/ide/via82cxxx.c struct ide_host *host = pci_get_drvdata(pdev); host 382 drivers/ide/via82cxxx.c struct via82cxxx_dev *vdev = host->host_priv; host 490 drivers/ide/via82cxxx.c struct ide_host *host = pci_get_drvdata(dev); host 491 drivers/ide/via82cxxx.c struct via82cxxx_dev *vdev = host->host_priv; host 211 drivers/infiniband/ulp/srp/ib_srp.c static inline struct srp_target_port *host_to_target(struct Scsi_Host *host) host 213 drivers/infiniband/ulp/srp/ib_srp.c return (struct srp_target_port *) host->hostdata; host 216 drivers/infiniband/ulp/srp/ib_srp.c static const char *srp_target_info(struct Scsi_Host *host) host 218 drivers/infiniband/ulp/srp/ib_srp.c return host_to_target(host)->target_name; host 231 drivers/infiniband/ulp/srp/ib_srp.c static struct srp_iu *srp_alloc_iu(struct srp_host *host, size_t size, host 245 drivers/infiniband/ulp/srp/ib_srp.c iu->dma = ib_dma_map_single(host->srp_dev->dev, iu->buf, size, host 247 drivers/infiniband/ulp/srp/ib_srp.c if (ib_dma_mapping_error(host->srp_dev->dev, iu->dma)) host 263 drivers/infiniband/ulp/srp/ib_srp.c static void srp_free_iu(struct srp_host *host, struct srp_iu *iu) host 268 drivers/infiniband/ulp/srp/ib_srp.c ib_dma_unmap_single(host->srp_dev->dev, iu->dma, iu->size, host 819 drivers/infiniband/ulp/srp/ib_srp.c static u8 srp_get_subnet_timeout(struct srp_host *host) host 825 drivers/infiniband/ulp/srp/ib_srp.c ret = ib_query_port(host->srp_dev->dev, host->port, &attr); host 831 drivers/infiniband/ulp/srp/ib_srp.c dev_name(&host->srp_dev->dev->dev), subnet_timeout); host 2977 drivers/infiniband/ulp/srp/ib_srp.c struct srp_target_port *target = host_to_target(scmnd->device->host); host 3015 drivers/infiniband/ulp/srp/ib_srp.c struct srp_target_port *target = host_to_target(scmnd->device->host); host 3033 drivers/infiniband/ulp/srp/ib_srp.c struct srp_target_port *target = host_to_target(scmnd->device->host); host 3052 drivers/infiniband/ulp/srp/ib_srp.c struct Scsi_Host *shost = sdev->host; host 3269 drivers/infiniband/ulp/srp/ib_srp.c static int srp_sdev_count(struct Scsi_Host *host) host 3274 drivers/infiniband/ulp/srp/ib_srp.c shost_for_each_device(sdev, host) host 3287 drivers/infiniband/ulp/srp/ib_srp.c static int srp_add_target(struct srp_host *host, struct srp_target_port *target) host 3296 drivers/infiniband/ulp/srp/ib_srp.c if (scsi_add_host(target->scsi_host, host->srp_dev->dev->dev.parent)) host 3311 drivers/infiniband/ulp/srp/ib_srp.c spin_lock(&host->target_lock); host 3312 drivers/infiniband/ulp/srp/ib_srp.c list_add_tail(&target->list, &host->target_list); host 3313 drivers/infiniband/ulp/srp/ib_srp.c spin_unlock(&host->target_lock); host 3341 drivers/infiniband/ulp/srp/ib_srp.c struct srp_host *host = host 3344 drivers/infiniband/ulp/srp/ib_srp.c complete(&host->released); host 3357 drivers/infiniband/ulp/srp/ib_srp.c static bool srp_conn_unique(struct srp_host *host, host 3368 drivers/infiniband/ulp/srp/ib_srp.c spin_lock(&host->target_lock); host 3369 drivers/infiniband/ulp/srp/ib_srp.c list_for_each_entry(t, &host->target_list, list) { host 3378 drivers/infiniband/ulp/srp/ib_srp.c spin_unlock(&host->target_lock); host 3771 drivers/infiniband/ulp/srp/ib_srp.c struct srp_host *host = host 3776 drivers/infiniband/ulp/srp/ib_srp.c struct srp_device *srp_dev = host->srp_dev; host 3803 drivers/infiniband/ulp/srp/ib_srp.c target->srp_host = host; host 3804 drivers/infiniband/ulp/srp/ib_srp.c target->lkey = host->srp_dev->pd->local_dma_lkey; host 3805 drivers/infiniband/ulp/srp/ib_srp.c target->global_rkey = host->srp_dev->global_rkey; host 3818 drivers/infiniband/ulp/srp/ib_srp.c ret = mutex_lock_interruptible(&host->add_target_mutex); host 3896 drivers/infiniband/ulp/srp/ib_srp.c ret = rdma_query_gid(ibdev, host->port, 0, &target->sgid); host 3979 drivers/infiniband/ulp/srp/ib_srp.c ret = srp_add_target(host, target); host 4005 drivers/infiniband/ulp/srp/ib_srp.c mutex_unlock(&host->add_target_mutex); host 4041 drivers/infiniband/ulp/srp/ib_srp.c struct srp_host *host = container_of(dev, struct srp_host, dev); host 4043 drivers/infiniband/ulp/srp/ib_srp.c return sprintf(buf, "%s\n", dev_name(&host->srp_dev->dev->dev)); host 4051 drivers/infiniband/ulp/srp/ib_srp.c struct srp_host *host = container_of(dev, struct srp_host, dev); host 4053 drivers/infiniband/ulp/srp/ib_srp.c return sprintf(buf, "%d\n", host->port); host 4060 drivers/infiniband/ulp/srp/ib_srp.c struct srp_host *host; host 4062 drivers/infiniband/ulp/srp/ib_srp.c host = kzalloc(sizeof *host, GFP_KERNEL); host 4063 drivers/infiniband/ulp/srp/ib_srp.c if (!host) host 4066 drivers/infiniband/ulp/srp/ib_srp.c INIT_LIST_HEAD(&host->target_list); host 4067 drivers/infiniband/ulp/srp/ib_srp.c spin_lock_init(&host->target_lock); host 4068 drivers/infiniband/ulp/srp/ib_srp.c init_completion(&host->released); host 4069 drivers/infiniband/ulp/srp/ib_srp.c mutex_init(&host->add_target_mutex); host 4070 drivers/infiniband/ulp/srp/ib_srp.c host->srp_dev = device; host 4071 drivers/infiniband/ulp/srp/ib_srp.c host->port = port; host 4073 drivers/infiniband/ulp/srp/ib_srp.c host->dev.class = &srp_class; host 4074 drivers/infiniband/ulp/srp/ib_srp.c host->dev.parent = device->dev->dev.parent; host 4075 drivers/infiniband/ulp/srp/ib_srp.c dev_set_name(&host->dev, "srp-%s-%d", dev_name(&device->dev->dev), host 4078 drivers/infiniband/ulp/srp/ib_srp.c if (device_register(&host->dev)) host 4080 drivers/infiniband/ulp/srp/ib_srp.c if (device_create_file(&host->dev, &dev_attr_add_target)) host 4082 drivers/infiniband/ulp/srp/ib_srp.c if (device_create_file(&host->dev, &dev_attr_ibdev)) host 4084 drivers/infiniband/ulp/srp/ib_srp.c if (device_create_file(&host->dev, &dev_attr_port)) host 4087 drivers/infiniband/ulp/srp/ib_srp.c return host; host 4090 drivers/infiniband/ulp/srp/ib_srp.c device_unregister(&host->dev); host 4093 drivers/infiniband/ulp/srp/ib_srp.c kfree(host); host 4101 drivers/infiniband/ulp/srp/ib_srp.c struct srp_host *host, *tmp_host; host 4103 drivers/infiniband/ulp/srp/ib_srp.c list_for_each_entry_safe(host, tmp_host, &srp_dev->dev_list, list) { host 4107 drivers/infiniband/ulp/srp/ib_srp.c dev_name(&device->dev), host->port); host 4108 drivers/infiniband/ulp/srp/ib_srp.c device_rename(&host->dev, name); host 4116 drivers/infiniband/ulp/srp/ib_srp.c struct srp_host *host; host 4186 drivers/infiniband/ulp/srp/ib_srp.c host = srp_add_port(srp_dev, p); host 4187 drivers/infiniband/ulp/srp/ib_srp.c if (host) host 4188 drivers/infiniband/ulp/srp/ib_srp.c list_add_tail(&host->list, &srp_dev->dev_list); host 4201 drivers/infiniband/ulp/srp/ib_srp.c struct srp_host *host, *tmp_host; host 4208 drivers/infiniband/ulp/srp/ib_srp.c list_for_each_entry_safe(host, tmp_host, &srp_dev->dev_list, list) { host 4209 drivers/infiniband/ulp/srp/ib_srp.c device_unregister(&host->dev); host 4214 drivers/infiniband/ulp/srp/ib_srp.c wait_for_completion(&host->released); host 4219 drivers/infiniband/ulp/srp/ib_srp.c spin_lock(&host->target_lock); host 4220 drivers/infiniband/ulp/srp/ib_srp.c list_for_each_entry(target, &host->target_list, list) host 4222 drivers/infiniband/ulp/srp/ib_srp.c spin_unlock(&host->target_lock); host 4230 drivers/infiniband/ulp/srp/ib_srp.c kfree(host); host 624 drivers/md/md-bitmap.c loff_t isize = i_size_read(bitmap->storage.file->f_mapping->host); host 1093 drivers/md/md-bitmap.c if (file && i_size_read(file->f_mapping->host) < store->bytes) { host 1096 drivers/md/md-bitmap.c (unsigned long) i_size_read(file->f_mapping->host), host 6839 drivers/md/md.c inode = f->f_mapping->host; host 88 drivers/media/dvb-core/dvb_net.c struct dvb_net *host; host 4264 drivers/media/dvb-frontends/dib8000.c static int dib8000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, host 4269 drivers/media/dvb-frontends/dib8000.c struct i2c_device client = {.adap = host }; host 58 drivers/media/dvb-frontends/dib8000.h int (*i2c_enumeration)(struct i2c_adapter *host, int no_of_demods, host 74 drivers/media/dvb-frontends/dib9000.c } host; host 950 drivers/media/dvb-frontends/dib9000.c if (!state->platform.host.mobile_mode) host 33 drivers/media/dvb-frontends/dib9000.h extern int dib9000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr); host 58 drivers/media/dvb-frontends/dib9000.h static inline int dib9000_i2c_enumeration(struct i2c_adapter *host, int no_of_demods, u8 default_addr, u8 first_addr) host 1457 drivers/media/platform/exynos4-is/fimc-capture.c fimc = si ? source_to_sensor_info(si)->host : NULL; host 53 drivers/media/platform/exynos4-is/media-dev.c md_si->host = v4l2_get_subdevdata(fimc_sd); host 90 drivers/media/platform/exynos4-is/media-dev.h struct fimc_dev *host; host 181 drivers/memstick/core/memstick.c struct memstick_host *host = container_of(dev, struct memstick_host, host 183 drivers/memstick/core/memstick.c kfree(host); host 207 drivers/memstick/core/memstick.c void memstick_detect_change(struct memstick_host *host) host 209 drivers/memstick/core/memstick.c queue_work(workqueue, &host->media_checker); host 223 drivers/memstick/core/memstick.c int memstick_next_req(struct memstick_host *host, struct memstick_request **mrq) host 227 drivers/memstick/core/memstick.c if ((*mrq) && (*mrq)->error && host->retries) { host 229 drivers/memstick/core/memstick.c host->retries--; host 233 drivers/memstick/core/memstick.c if (host->card && host->card->next_request) host 234 drivers/memstick/core/memstick.c rc = host->card->next_request(host->card, mrq); host 237 drivers/memstick/core/memstick.c host->retries = cmd_retries > 1 ? cmd_retries - 1 : 1; host 249 drivers/memstick/core/memstick.c void memstick_new_req(struct memstick_host *host) host 251 drivers/memstick/core/memstick.c if (host->card) { host 252 drivers/memstick/core/memstick.c host->retries = cmd_retries; host 253 drivers/memstick/core/memstick.c reinit_completion(&host->card->mrq_complete); host 254 drivers/memstick/core/memstick.c host->request(host); host 371 drivers/memstick/core/memstick.c memstick_new_req(card->host); host 378 drivers/memstick/core/memstick.c static struct memstick_dev *memstick_alloc_card(struct memstick_host *host) host 382 drivers/memstick/core/memstick.c struct memstick_dev *old_card = host->card; host 386 drivers/memstick/core/memstick.c card->host = host; host 387 drivers/memstick/core/memstick.c dev_set_name(&card->dev, "%s", dev_name(&host->dev)); host 388 drivers/memstick/core/memstick.c card->dev.parent = &host->dev; host 400 drivers/memstick/core/memstick.c host->card = card; host 405 drivers/memstick/core/memstick.c memstick_new_req(host); host 411 drivers/memstick/core/memstick.c host->card = old_card; host 414 drivers/memstick/core/memstick.c host->card = old_card; host 419 drivers/memstick/core/memstick.c static int memstick_power_on(struct memstick_host *host) host 421 drivers/memstick/core/memstick.c int rc = host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); host 424 drivers/memstick/core/memstick.c rc = host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); host 431 drivers/memstick/core/memstick.c struct memstick_host *host = container_of(work, struct memstick_host, host 435 drivers/memstick/core/memstick.c dev_dbg(&host->dev, "memstick_check started\n"); host 436 drivers/memstick/core/memstick.c pm_runtime_get_noresume(host->dev.parent); host 437 drivers/memstick/core/memstick.c mutex_lock(&host->lock); host 438 drivers/memstick/core/memstick.c if (!host->card) { host 439 drivers/memstick/core/memstick.c if (memstick_power_on(host)) host 441 drivers/memstick/core/memstick.c } else if (host->card->stop) host 442 drivers/memstick/core/memstick.c host->card->stop(host->card); host 444 drivers/memstick/core/memstick.c card = memstick_alloc_card(host); host 447 drivers/memstick/core/memstick.c if (host->card) { host 448 drivers/memstick/core/memstick.c device_unregister(&host->card->dev); host 449 drivers/memstick/core/memstick.c host->card = NULL; host 452 drivers/memstick/core/memstick.c dev_dbg(&host->dev, "new card %02x, %02x, %02x\n", host 454 drivers/memstick/core/memstick.c if (host->card) { host 455 drivers/memstick/core/memstick.c if (memstick_set_rw_addr(host->card) host 456 drivers/memstick/core/memstick.c || !memstick_dev_match(host->card, &card->id) host 457 drivers/memstick/core/memstick.c || !(host->card->check(host->card))) { host 458 drivers/memstick/core/memstick.c device_unregister(&host->card->dev); host 459 drivers/memstick/core/memstick.c host->card = NULL; host 460 drivers/memstick/core/memstick.c } else if (host->card->start) host 461 drivers/memstick/core/memstick.c host->card->start(host->card); host 464 drivers/memstick/core/memstick.c if (!host->card) { host 465 drivers/memstick/core/memstick.c host->card = card; host 468 drivers/memstick/core/memstick.c kfree(host->card); host 469 drivers/memstick/core/memstick.c host->card = NULL; host 476 drivers/memstick/core/memstick.c if (!host->card) host 477 drivers/memstick/core/memstick.c host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); host 479 drivers/memstick/core/memstick.c mutex_unlock(&host->lock); host 480 drivers/memstick/core/memstick.c pm_runtime_put(host->dev.parent); host 481 drivers/memstick/core/memstick.c dev_dbg(&host->dev, "memstick_check finished\n"); host 492 drivers/memstick/core/memstick.c struct memstick_host *host; host 494 drivers/memstick/core/memstick.c host = kzalloc(sizeof(struct memstick_host) + extra, GFP_KERNEL); host 495 drivers/memstick/core/memstick.c if (host) { host 496 drivers/memstick/core/memstick.c mutex_init(&host->lock); host 497 drivers/memstick/core/memstick.c INIT_WORK(&host->media_checker, memstick_check); host 498 drivers/memstick/core/memstick.c host->dev.class = &memstick_host_class; host 499 drivers/memstick/core/memstick.c host->dev.parent = dev; host 500 drivers/memstick/core/memstick.c device_initialize(&host->dev); host 502 drivers/memstick/core/memstick.c return host; host 510 drivers/memstick/core/memstick.c int memstick_add_host(struct memstick_host *host) host 517 drivers/memstick/core/memstick.c rc = idr_alloc(&memstick_host_idr, host, 0, 0, GFP_NOWAIT); host 519 drivers/memstick/core/memstick.c host->id = rc; host 526 drivers/memstick/core/memstick.c dev_set_name(&host->dev, "memstick%u", host->id); host 528 drivers/memstick/core/memstick.c rc = device_add(&host->dev); host 531 drivers/memstick/core/memstick.c idr_remove(&memstick_host_idr, host->id); host 536 drivers/memstick/core/memstick.c host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); host 537 drivers/memstick/core/memstick.c memstick_detect_change(host); host 546 drivers/memstick/core/memstick.c void memstick_remove_host(struct memstick_host *host) host 549 drivers/memstick/core/memstick.c mutex_lock(&host->lock); host 550 drivers/memstick/core/memstick.c if (host->card) host 551 drivers/memstick/core/memstick.c device_unregister(&host->card->dev); host 552 drivers/memstick/core/memstick.c host->card = NULL; host 553 drivers/memstick/core/memstick.c host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); host 554 drivers/memstick/core/memstick.c mutex_unlock(&host->lock); host 557 drivers/memstick/core/memstick.c idr_remove(&memstick_host_idr, host->id); host 559 drivers/memstick/core/memstick.c device_del(&host->dev); host 567 drivers/memstick/core/memstick.c void memstick_free_host(struct memstick_host *host) host 569 drivers/memstick/core/memstick.c mutex_destroy(&host->lock); host 570 drivers/memstick/core/memstick.c put_device(&host->dev); host 578 drivers/memstick/core/memstick.c void memstick_suspend_host(struct memstick_host *host) host 580 drivers/memstick/core/memstick.c mutex_lock(&host->lock); host 581 drivers/memstick/core/memstick.c host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); host 582 drivers/memstick/core/memstick.c mutex_unlock(&host->lock); host 590 drivers/memstick/core/memstick.c void memstick_resume_host(struct memstick_host *host) host 594 drivers/memstick/core/memstick.c mutex_lock(&host->lock); host 595 drivers/memstick/core/memstick.c if (host->card) host 596 drivers/memstick/core/memstick.c rc = memstick_power_on(host); host 597 drivers/memstick/core/memstick.c mutex_unlock(&host->lock); host 600 drivers/memstick/core/memstick.c memstick_detect_change(host); host 230 drivers/memstick/core/ms_block.c memstick_new_req(card->host); host 681 drivers/memstick/core/ms_block.c struct memstick_host *host = card->host; host 706 drivers/memstick/core/ms_block.c host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_PAR4); host 726 drivers/memstick/core/ms_block.c struct memstick_host *host = card->host; host 733 drivers/memstick/core/ms_block.c error = host->set_param(host, host 740 drivers/memstick/core/ms_block.c error = host->set_param(host, host 745 drivers/memstick/core/ms_block.c error = host->set_param(host, host 1693 drivers/memstick/core/ms_block.c struct memstick_host *host = card->host; host 1711 drivers/memstick/core/ms_block.c if (host->caps & MEMSTICK_CAP_PAR4) host 1767 drivers/memstick/core/ms_block.c if (host->caps & msb->caps & MEMSTICK_CAP_PAR4) host 2246 drivers/memstick/core/ms_block.c mutex_lock(&card->host->lock); host 2291 drivers/memstick/core/ms_block.c mutex_unlock(&card->host->lock); host 732 drivers/memstick/core/mspro_block.c memstick_new_req(card->host); host 863 drivers/memstick/core/mspro_block.c memstick_new_req(card->host); host 871 drivers/memstick/core/mspro_block.c struct memstick_host *host = card->host; host 884 drivers/memstick/core/mspro_block.c memstick_new_req(host); host 891 drivers/memstick/core/mspro_block.c struct memstick_host *host = card->host; host 909 drivers/memstick/core/mspro_block.c host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_PAR4); host 918 drivers/memstick/core/mspro_block.c host->set_param(host, MEMSTICK_INTERFACE, host 932 drivers/memstick/core/mspro_block.c memstick_new_req(card->host); host 941 drivers/memstick/core/mspro_block.c host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); host 943 drivers/memstick/core/mspro_block.c host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); host 944 drivers/memstick/core/mspro_block.c host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); host 996 drivers/memstick/core/mspro_block.c memstick_new_req(card->host); host 1099 drivers/memstick/core/mspro_block.c memstick_new_req(card->host); host 1121 drivers/memstick/core/mspro_block.c struct memstick_host *host = card->host; host 1135 drivers/memstick/core/mspro_block.c msb->caps = host->caps; host 1154 drivers/memstick/core/mspro_block.c memstick_new_req(card->host); host 1372 drivers/memstick/core/mspro_block.c struct memstick_host *host = card->host; host 1376 drivers/memstick/core/mspro_block.c mutex_lock(&host->lock); host 1408 drivers/memstick/core/mspro_block.c mutex_unlock(&host->lock); host 154 drivers/memstick/host/jmb38x_ms.c static unsigned int jmb38x_ms_read_data(struct jmb38x_ms_host *host, host 159 drivers/memstick/host/jmb38x_ms.c while (host->io_pos && length) { host 160 drivers/memstick/host/jmb38x_ms.c buf[off++] = host->io_word[0] & 0xff; host 161 drivers/memstick/host/jmb38x_ms.c host->io_word[0] >>= 8; host 163 drivers/memstick/host/jmb38x_ms.c host->io_pos--; host 169 drivers/memstick/host/jmb38x_ms.c while (!(STATUS_FIFO_EMPTY & readl(host->addr + STATUS))) { host 172 drivers/memstick/host/jmb38x_ms.c *(unsigned int *)(buf + off) = __raw_readl(host->addr + DATA); host 178 drivers/memstick/host/jmb38x_ms.c && !(STATUS_FIFO_EMPTY & readl(host->addr + STATUS))) { host 179 drivers/memstick/host/jmb38x_ms.c host->io_word[0] = readl(host->addr + DATA); host 180 drivers/memstick/host/jmb38x_ms.c for (host->io_pos = 4; host->io_pos; --host->io_pos) { host 181 drivers/memstick/host/jmb38x_ms.c buf[off++] = host->io_word[0] & 0xff; host 182 drivers/memstick/host/jmb38x_ms.c host->io_word[0] >>= 8; host 192 drivers/memstick/host/jmb38x_ms.c static unsigned int jmb38x_ms_read_reg_data(struct jmb38x_ms_host *host, host 198 drivers/memstick/host/jmb38x_ms.c while (host->io_pos > 4 && length) { host 199 drivers/memstick/host/jmb38x_ms.c buf[off++] = host->io_word[0] & 0xff; host 200 drivers/memstick/host/jmb38x_ms.c host->io_word[0] >>= 8; host 202 drivers/memstick/host/jmb38x_ms.c host->io_pos--; host 208 drivers/memstick/host/jmb38x_ms.c while (host->io_pos && length) { host 209 drivers/memstick/host/jmb38x_ms.c buf[off++] = host->io_word[1] & 0xff; host 210 drivers/memstick/host/jmb38x_ms.c host->io_word[1] >>= 8; host 212 drivers/memstick/host/jmb38x_ms.c host->io_pos--; host 218 drivers/memstick/host/jmb38x_ms.c static unsigned int jmb38x_ms_write_data(struct jmb38x_ms_host *host, host 224 drivers/memstick/host/jmb38x_ms.c if (host->io_pos) { host 225 drivers/memstick/host/jmb38x_ms.c while (host->io_pos < 4 && length) { host 226 drivers/memstick/host/jmb38x_ms.c host->io_word[0] |= buf[off++] << (host->io_pos * 8); host 227 drivers/memstick/host/jmb38x_ms.c host->io_pos++; host 232 drivers/memstick/host/jmb38x_ms.c if (host->io_pos == 4 host 233 drivers/memstick/host/jmb38x_ms.c && !(STATUS_FIFO_FULL & readl(host->addr + STATUS))) { host 234 drivers/memstick/host/jmb38x_ms.c writel(host->io_word[0], host->addr + DATA); host 235 drivers/memstick/host/jmb38x_ms.c host->io_pos = 0; host 236 drivers/memstick/host/jmb38x_ms.c host->io_word[0] = 0; host 237 drivers/memstick/host/jmb38x_ms.c } else if (host->io_pos) { host 244 drivers/memstick/host/jmb38x_ms.c while (!(STATUS_FIFO_FULL & readl(host->addr + STATUS))) { host 249 drivers/memstick/host/jmb38x_ms.c host->addr + DATA); host 256 drivers/memstick/host/jmb38x_ms.c host->io_word[0] |= buf[off + 2] << 16; host 257 drivers/memstick/host/jmb38x_ms.c host->io_pos++; host 260 drivers/memstick/host/jmb38x_ms.c host->io_word[0] |= buf[off + 1] << 8; host 261 drivers/memstick/host/jmb38x_ms.c host->io_pos++; host 264 drivers/memstick/host/jmb38x_ms.c host->io_word[0] |= buf[off]; host 265 drivers/memstick/host/jmb38x_ms.c host->io_pos++; host 268 drivers/memstick/host/jmb38x_ms.c off += host->io_pos; host 273 drivers/memstick/host/jmb38x_ms.c static unsigned int jmb38x_ms_write_reg_data(struct jmb38x_ms_host *host, host 279 drivers/memstick/host/jmb38x_ms.c while (host->io_pos < 4 && length) { host 280 drivers/memstick/host/jmb38x_ms.c host->io_word[0] &= ~(0xff << (host->io_pos * 8)); host 281 drivers/memstick/host/jmb38x_ms.c host->io_word[0] |= buf[off++] << (host->io_pos * 8); host 282 drivers/memstick/host/jmb38x_ms.c host->io_pos++; host 289 drivers/memstick/host/jmb38x_ms.c while (host->io_pos < 8 && length) { host 290 drivers/memstick/host/jmb38x_ms.c host->io_word[1] &= ~(0xff << (host->io_pos * 8)); host 291 drivers/memstick/host/jmb38x_ms.c host->io_word[1] |= buf[off++] << (host->io_pos * 8); host 292 drivers/memstick/host/jmb38x_ms.c host->io_pos++; host 299 drivers/memstick/host/jmb38x_ms.c static int jmb38x_ms_transfer_data(struct jmb38x_ms_host *host) host 308 drivers/memstick/host/jmb38x_ms.c if (host->req->long_data) { host 309 drivers/memstick/host/jmb38x_ms.c length = host->req->sg.length - host->block_pos; host 310 drivers/memstick/host/jmb38x_ms.c off = host->req->sg.offset + host->block_pos; host 312 drivers/memstick/host/jmb38x_ms.c length = host->req->data_len - host->block_pos; host 319 drivers/memstick/host/jmb38x_ms.c if (host->req->long_data) { host 320 drivers/memstick/host/jmb38x_ms.c pg = nth_page(sg_page(&host->req->sg), host 329 drivers/memstick/host/jmb38x_ms.c buf = host->req->data + host->block_pos; host 330 drivers/memstick/host/jmb38x_ms.c p_cnt = host->req->data_len - host->block_pos; host 333 drivers/memstick/host/jmb38x_ms.c if (host->req->data_dir == WRITE) host 334 drivers/memstick/host/jmb38x_ms.c t_size = !(host->cmd_flags & REG_DATA) host 335 drivers/memstick/host/jmb38x_ms.c ? jmb38x_ms_write_data(host, buf, p_cnt) host 336 drivers/memstick/host/jmb38x_ms.c : jmb38x_ms_write_reg_data(host, buf, p_cnt); host 338 drivers/memstick/host/jmb38x_ms.c t_size = !(host->cmd_flags & REG_DATA) host 339 drivers/memstick/host/jmb38x_ms.c ? jmb38x_ms_read_data(host, buf, p_cnt) host 340 drivers/memstick/host/jmb38x_ms.c : jmb38x_ms_read_reg_data(host, buf, p_cnt); host 342 drivers/memstick/host/jmb38x_ms.c if (host->req->long_data) { host 349 drivers/memstick/host/jmb38x_ms.c host->block_pos += t_size; host 354 drivers/memstick/host/jmb38x_ms.c if (!length && host->req->data_dir == WRITE) { host 355 drivers/memstick/host/jmb38x_ms.c if (host->cmd_flags & REG_DATA) { host 356 drivers/memstick/host/jmb38x_ms.c writel(host->io_word[0], host->addr + TPC_P0); host 357 drivers/memstick/host/jmb38x_ms.c writel(host->io_word[1], host->addr + TPC_P1); host 358 drivers/memstick/host/jmb38x_ms.c } else if (host->io_pos) { host 359 drivers/memstick/host/jmb38x_ms.c writel(host->io_word[0], host->addr + DATA); host 368 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host = memstick_priv(msh); host 371 drivers/memstick/host/jmb38x_ms.c if (!(STATUS_HAS_MEDIA & readl(host->addr + STATUS))) { host 373 drivers/memstick/host/jmb38x_ms.c host->req->error = -ETIME; host 374 drivers/memstick/host/jmb38x_ms.c return host->req->error; host 377 drivers/memstick/host/jmb38x_ms.c dev_dbg(&msh->dev, "control %08x\n", readl(host->addr + HOST_CONTROL)); host 378 drivers/memstick/host/jmb38x_ms.c dev_dbg(&msh->dev, "status %08x\n", readl(host->addr + INT_STATUS)); host 379 drivers/memstick/host/jmb38x_ms.c dev_dbg(&msh->dev, "hstatus %08x\n", readl(host->addr + STATUS)); host 381 drivers/memstick/host/jmb38x_ms.c host->cmd_flags = 0; host 382 drivers/memstick/host/jmb38x_ms.c host->block_pos = 0; host 383 drivers/memstick/host/jmb38x_ms.c host->io_pos = 0; host 384 drivers/memstick/host/jmb38x_ms.c host->io_word[0] = 0; host 385 drivers/memstick/host/jmb38x_ms.c host->io_word[1] = 0; host 387 drivers/memstick/host/jmb38x_ms.c cmd = host->req->tpc << 16; host 390 drivers/memstick/host/jmb38x_ms.c if (host->req->data_dir == READ) host 393 drivers/memstick/host/jmb38x_ms.c if (host->req->need_card_int) { host 394 drivers/memstick/host/jmb38x_ms.c if (host->ifmode == MEMSTICK_SERIAL) host 401 drivers/memstick/host/jmb38x_ms.c host->cmd_flags |= DMA_DATA; host 403 drivers/memstick/host/jmb38x_ms.c if (host->req->long_data) { host 404 drivers/memstick/host/jmb38x_ms.c data_len = host->req->sg.length; host 406 drivers/memstick/host/jmb38x_ms.c data_len = host->req->data_len; host 407 drivers/memstick/host/jmb38x_ms.c host->cmd_flags &= ~DMA_DATA; host 412 drivers/memstick/host/jmb38x_ms.c host->cmd_flags |= REG_DATA; host 414 drivers/memstick/host/jmb38x_ms.c host->cmd_flags &= ~DMA_DATA; host 417 drivers/memstick/host/jmb38x_ms.c if (host->cmd_flags & DMA_DATA) { host 418 drivers/memstick/host/jmb38x_ms.c if (1 != dma_map_sg(&host->chip->pdev->dev, &host->req->sg, 1, host 419 drivers/memstick/host/jmb38x_ms.c host->req->data_dir == READ host 422 drivers/memstick/host/jmb38x_ms.c host->req->error = -ENOMEM; host 423 drivers/memstick/host/jmb38x_ms.c return host->req->error; host 425 drivers/memstick/host/jmb38x_ms.c data_len = sg_dma_len(&host->req->sg); host 426 drivers/memstick/host/jmb38x_ms.c writel(sg_dma_address(&host->req->sg), host 427 drivers/memstick/host/jmb38x_ms.c host->addr + DMA_ADDRESS); host 430 drivers/memstick/host/jmb38x_ms.c host->addr + BLOCK); host 431 drivers/memstick/host/jmb38x_ms.c writel(DMA_CONTROL_ENABLE, host->addr + DMA_CONTROL); host 432 drivers/memstick/host/jmb38x_ms.c } else if (!(host->cmd_flags & REG_DATA)) { host 435 drivers/memstick/host/jmb38x_ms.c host->addr + BLOCK); host 436 drivers/memstick/host/jmb38x_ms.c t_val = readl(host->addr + INT_STATUS_ENABLE); host 437 drivers/memstick/host/jmb38x_ms.c t_val |= host->req->data_dir == READ host 441 drivers/memstick/host/jmb38x_ms.c writel(t_val, host->addr + INT_STATUS_ENABLE); host 442 drivers/memstick/host/jmb38x_ms.c writel(t_val, host->addr + INT_SIGNAL_ENABLE); host 445 drivers/memstick/host/jmb38x_ms.c host->cmd_flags |= REG_DATA; host 448 drivers/memstick/host/jmb38x_ms.c if (host->req->data_dir == WRITE) { host 449 drivers/memstick/host/jmb38x_ms.c jmb38x_ms_transfer_data(host); host 450 drivers/memstick/host/jmb38x_ms.c writel(host->io_word[0], host->addr + TPC_P0); host 451 drivers/memstick/host/jmb38x_ms.c writel(host->io_word[1], host->addr + TPC_P1); host 455 drivers/memstick/host/jmb38x_ms.c mod_timer(&host->timer, jiffies + host->timeout_jiffies); host 456 drivers/memstick/host/jmb38x_ms.c writel(HOST_CONTROL_LED | readl(host->addr + HOST_CONTROL), host 457 drivers/memstick/host/jmb38x_ms.c host->addr + HOST_CONTROL); host 458 drivers/memstick/host/jmb38x_ms.c host->req->error = 0; host 460 drivers/memstick/host/jmb38x_ms.c writel(cmd, host->addr + TPC); host 468 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host = memstick_priv(msh); host 472 drivers/memstick/host/jmb38x_ms.c del_timer(&host->timer); host 475 drivers/memstick/host/jmb38x_ms.c readl(host->addr + HOST_CONTROL)); host 477 drivers/memstick/host/jmb38x_ms.c readl(host->addr + INT_STATUS)); host 478 drivers/memstick/host/jmb38x_ms.c dev_dbg(&msh->dev, "c hstatus %08x\n", readl(host->addr + STATUS)); host 480 drivers/memstick/host/jmb38x_ms.c host->req->int_reg = readl(host->addr + STATUS) & 0xff; host 482 drivers/memstick/host/jmb38x_ms.c writel(0, host->addr + BLOCK); host 483 drivers/memstick/host/jmb38x_ms.c writel(0, host->addr + DMA_CONTROL); host 485 drivers/memstick/host/jmb38x_ms.c if (host->cmd_flags & DMA_DATA) { host 486 drivers/memstick/host/jmb38x_ms.c dma_unmap_sg(&host->chip->pdev->dev, &host->req->sg, 1, host 487 drivers/memstick/host/jmb38x_ms.c host->req->data_dir == READ host 490 drivers/memstick/host/jmb38x_ms.c t_val = readl(host->addr + INT_STATUS_ENABLE); host 491 drivers/memstick/host/jmb38x_ms.c if (host->req->data_dir == READ) host 496 drivers/memstick/host/jmb38x_ms.c writel(t_val, host->addr + INT_STATUS_ENABLE); host 497 drivers/memstick/host/jmb38x_ms.c writel(t_val, host->addr + INT_SIGNAL_ENABLE); host 500 drivers/memstick/host/jmb38x_ms.c writel((~HOST_CONTROL_LED) & readl(host->addr + HOST_CONTROL), host 501 drivers/memstick/host/jmb38x_ms.c host->addr + HOST_CONTROL); host 505 drivers/memstick/host/jmb38x_ms.c rc = memstick_next_req(msh, &host->req); host 509 drivers/memstick/host/jmb38x_ms.c rc = memstick_next_req(msh, &host->req); host 511 drivers/memstick/host/jmb38x_ms.c host->req->error = -ETIME; host 519 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host = memstick_priv(msh); host 522 drivers/memstick/host/jmb38x_ms.c spin_lock(&host->lock); host 523 drivers/memstick/host/jmb38x_ms.c irq_status = readl(host->addr + INT_STATUS); host 524 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "irq_status = %08x\n", irq_status); host 526 drivers/memstick/host/jmb38x_ms.c spin_unlock(&host->lock); host 530 drivers/memstick/host/jmb38x_ms.c if (host->req) { host 533 drivers/memstick/host/jmb38x_ms.c host->req->error = -EILSEQ; host 535 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "TPC_ERR\n"); host 538 drivers/memstick/host/jmb38x_ms.c host->req->error = -ETIME; host 540 drivers/memstick/host/jmb38x_ms.c if (host->cmd_flags & DMA_DATA) { host 542 drivers/memstick/host/jmb38x_ms.c host->cmd_flags |= FIFO_READY; host 546 drivers/memstick/host/jmb38x_ms.c jmb38x_ms_transfer_data(host); host 549 drivers/memstick/host/jmb38x_ms.c jmb38x_ms_transfer_data(host); host 550 drivers/memstick/host/jmb38x_ms.c host->cmd_flags |= FIFO_READY; host 555 drivers/memstick/host/jmb38x_ms.c host->cmd_flags |= CMD_READY; host 556 drivers/memstick/host/jmb38x_ms.c if (host->cmd_flags & REG_DATA) { host 557 drivers/memstick/host/jmb38x_ms.c if (host->req->data_dir == READ) { host 558 drivers/memstick/host/jmb38x_ms.c host->io_word[0] host 559 drivers/memstick/host/jmb38x_ms.c = readl(host->addr host 561 drivers/memstick/host/jmb38x_ms.c host->io_word[1] host 562 drivers/memstick/host/jmb38x_ms.c = readl(host->addr host 564 drivers/memstick/host/jmb38x_ms.c host->io_pos = 8; host 566 drivers/memstick/host/jmb38x_ms.c jmb38x_ms_transfer_data(host); host 568 drivers/memstick/host/jmb38x_ms.c host->cmd_flags |= FIFO_READY; host 575 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "media changed\n"); host 579 drivers/memstick/host/jmb38x_ms.c writel(irq_status, host->addr + INT_STATUS); host 581 drivers/memstick/host/jmb38x_ms.c if (host->req host 582 drivers/memstick/host/jmb38x_ms.c && (((host->cmd_flags & CMD_READY) host 583 drivers/memstick/host/jmb38x_ms.c && (host->cmd_flags & FIFO_READY)) host 584 drivers/memstick/host/jmb38x_ms.c || host->req->error)) host 587 drivers/memstick/host/jmb38x_ms.c spin_unlock(&host->lock); host 593 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host = from_timer(host, t, timer); host 594 drivers/memstick/host/jmb38x_ms.c struct memstick_host *msh = host->msh; host 597 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "abort\n"); host 598 drivers/memstick/host/jmb38x_ms.c spin_lock_irqsave(&host->lock, flags); host 599 drivers/memstick/host/jmb38x_ms.c if (host->req) { host 600 drivers/memstick/host/jmb38x_ms.c host->req->error = -ETIME; host 603 drivers/memstick/host/jmb38x_ms.c spin_unlock_irqrestore(&host->lock, flags); host 609 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host = memstick_priv(msh); host 613 drivers/memstick/host/jmb38x_ms.c spin_lock_irqsave(&host->lock, flags); host 614 drivers/memstick/host/jmb38x_ms.c if (!host->req) { host 616 drivers/memstick/host/jmb38x_ms.c rc = memstick_next_req(msh, &host->req); host 617 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "tasklet req %d\n", rc); host 620 drivers/memstick/host/jmb38x_ms.c spin_unlock_irqrestore(&host->lock, flags); host 630 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host = memstick_priv(msh); host 632 drivers/memstick/host/jmb38x_ms.c tasklet_schedule(&host->notify); host 635 drivers/memstick/host/jmb38x_ms.c static int jmb38x_ms_reset(struct jmb38x_ms_host *host) host 640 drivers/memstick/host/jmb38x_ms.c | readl(host->addr + HOST_CONTROL), host 641 drivers/memstick/host/jmb38x_ms.c host->addr + HOST_CONTROL); host 645 drivers/memstick/host/jmb38x_ms.c & readl(host->addr + HOST_CONTROL))) host 650 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "reset_req timeout\n"); host 654 drivers/memstick/host/jmb38x_ms.c | readl(host->addr + HOST_CONTROL), host 655 drivers/memstick/host/jmb38x_ms.c host->addr + HOST_CONTROL); host 659 drivers/memstick/host/jmb38x_ms.c & readl(host->addr + HOST_CONTROL))) host 664 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "reset timeout\n"); host 668 drivers/memstick/host/jmb38x_ms.c writel(INT_STATUS_ALL, host->addr + INT_SIGNAL_ENABLE); host 669 drivers/memstick/host/jmb38x_ms.c writel(INT_STATUS_ALL, host->addr + INT_STATUS_ENABLE); host 677 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host = memstick_priv(msh); host 678 drivers/memstick/host/jmb38x_ms.c unsigned int host_ctl = readl(host->addr + HOST_CONTROL); host 685 drivers/memstick/host/jmb38x_ms.c rc = jmb38x_ms_reset(host); host 692 drivers/memstick/host/jmb38x_ms.c writel(host_ctl, host->addr + HOST_CONTROL); host 694 drivers/memstick/host/jmb38x_ms.c writel(host->id ? PAD_PU_PD_ON_MS_SOCK1 host 696 drivers/memstick/host/jmb38x_ms.c host->addr + PAD_PU_PD); host 699 drivers/memstick/host/jmb38x_ms.c host->addr + PAD_OUTPUT_ENABLE); host 702 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "power on\n"); host 706 drivers/memstick/host/jmb38x_ms.c writel(host_ctl, host->addr + HOST_CONTROL); host 707 drivers/memstick/host/jmb38x_ms.c writel(0, host->addr + PAD_OUTPUT_ENABLE); host 708 drivers/memstick/host/jmb38x_ms.c writel(PAD_PU_PD_OFF, host->addr + PAD_PU_PD); host 709 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, "power off\n"); host 714 drivers/memstick/host/jmb38x_ms.c dev_dbg(&host->chip->pdev->dev, host 743 drivers/memstick/host/jmb38x_ms.c writel(host_ctl, host->addr + HOST_CONTROL); host 744 drivers/memstick/host/jmb38x_ms.c writel(CLOCK_CONTROL_OFF, host->addr + CLOCK_CONTROL); host 745 drivers/memstick/host/jmb38x_ms.c writel(clock_ctl, host->addr + CLOCK_CONTROL); host 746 drivers/memstick/host/jmb38x_ms.c pci_write_config_byte(host->chip->pdev, host 749 drivers/memstick/host/jmb38x_ms.c host->ifmode = value; host 866 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host; host 873 drivers/memstick/host/jmb38x_ms.c host = memstick_priv(msh); host 874 drivers/memstick/host/jmb38x_ms.c host->msh = msh; host 875 drivers/memstick/host/jmb38x_ms.c host->chip = jm; host 876 drivers/memstick/host/jmb38x_ms.c host->addr = ioremap(pci_resource_start(jm->pdev, cnt), host 878 drivers/memstick/host/jmb38x_ms.c if (!host->addr) host 881 drivers/memstick/host/jmb38x_ms.c spin_lock_init(&host->lock); host 882 drivers/memstick/host/jmb38x_ms.c host->id = cnt; host 883 drivers/memstick/host/jmb38x_ms.c snprintf(host->host_id, sizeof(host->host_id), DRIVER_NAME ":slot%d", host 884 drivers/memstick/host/jmb38x_ms.c host->id); host 885 drivers/memstick/host/jmb38x_ms.c host->irq = jm->pdev->irq; host 886 drivers/memstick/host/jmb38x_ms.c host->timeout_jiffies = msecs_to_jiffies(1000); host 888 drivers/memstick/host/jmb38x_ms.c tasklet_init(&host->notify, jmb38x_ms_req_tasklet, (unsigned long)msh); host 894 drivers/memstick/host/jmb38x_ms.c timer_setup(&host->timer, jmb38x_ms_abort, 0); host 896 drivers/memstick/host/jmb38x_ms.c if (!request_irq(host->irq, jmb38x_ms_isr, IRQF_SHARED, host->host_id, host 900 drivers/memstick/host/jmb38x_ms.c iounmap(host->addr); host 908 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host = memstick_priv(msh); host 910 drivers/memstick/host/jmb38x_ms.c free_irq(host->irq, msh); host 911 drivers/memstick/host/jmb38x_ms.c iounmap(host->addr); host 990 drivers/memstick/host/jmb38x_ms.c struct jmb38x_ms_host *host; host 998 drivers/memstick/host/jmb38x_ms.c host = memstick_priv(jm->hosts[cnt]); host 1001 drivers/memstick/host/jmb38x_ms.c tasklet_kill(&host->notify); host 1002 drivers/memstick/host/jmb38x_ms.c writel(0, host->addr + INT_SIGNAL_ENABLE); host 1003 drivers/memstick/host/jmb38x_ms.c writel(0, host->addr + INT_STATUS_ENABLE); host 1005 drivers/memstick/host/jmb38x_ms.c spin_lock_irqsave(&host->lock, flags); host 1006 drivers/memstick/host/jmb38x_ms.c if (host->req) { host 1007 drivers/memstick/host/jmb38x_ms.c host->req->error = -ETIME; host 1010 drivers/memstick/host/jmb38x_ms.c spin_unlock_irqrestore(&host->lock, flags); host 572 drivers/memstick/host/r592.c error = memstick_next_req(dev->host, &dev->req); host 620 drivers/memstick/host/r592.c memstick_detect_change(dev->host); host 680 drivers/memstick/host/r592.c static int r592_set_param(struct memstick_host *host, host 683 drivers/memstick/host/r592.c struct r592_device *dev = memstick_priv(host); host 710 drivers/memstick/host/r592.c static void r592_submit_req(struct memstick_host *host) host 712 drivers/memstick/host/r592.c struct r592_device *dev = memstick_priv(host); host 734 drivers/memstick/host/r592.c struct memstick_host *host; host 738 drivers/memstick/host/r592.c host = memstick_alloc_host(sizeof(struct r592_device), &pdev->dev); host 739 drivers/memstick/host/r592.c if (!host) host 742 drivers/memstick/host/r592.c dev = memstick_priv(host); host 743 drivers/memstick/host/r592.c dev->host = host; host 773 drivers/memstick/host/r592.c host->caps = MEMSTICK_CAP_PAR4; host 774 drivers/memstick/host/r592.c host->request = r592_submit_req; host 775 drivers/memstick/host/r592.c host->set_param = r592_set_param; host 794 drivers/memstick/host/r592.c if (memstick_add_host(host)) host 814 drivers/memstick/host/r592.c memstick_free_host(host); host 832 drivers/memstick/host/r592.c error = memstick_next_req(dev->host, &dev->req); host 834 drivers/memstick/host/r592.c memstick_remove_host(dev->host); host 840 drivers/memstick/host/r592.c memstick_free_host(dev->host); host 853 drivers/memstick/host/r592.c memstick_suspend_host(dev->host); host 864 drivers/memstick/host/r592.c memstick_resume_host(dev->host); host 130 drivers/memstick/host/r592.h struct memstick_host *host; /* host backpointer */ host 33 drivers/memstick/host/rtsx_pci_ms.c static inline struct device *ms_dev(struct realtek_pci_ms *host) host 35 drivers/memstick/host/rtsx_pci_ms.c return &(host->pdev->dev); host 38 drivers/memstick/host/rtsx_pci_ms.c static inline void ms_clear_error(struct realtek_pci_ms *host) host 40 drivers/memstick/host/rtsx_pci_ms.c rtsx_pci_write_register(host->pcr, CARD_STOP, host 46 drivers/memstick/host/rtsx_pci_ms.c static void ms_print_debug_regs(struct realtek_pci_ms *host) host 48 drivers/memstick/host/rtsx_pci_ms.c struct rtsx_pcr *pcr = host->pcr; host 62 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", i, *(ptr++)); host 64 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", i, *(ptr++)); host 69 drivers/memstick/host/rtsx_pci_ms.c #define ms_print_debug_regs(host) host 73 drivers/memstick/host/rtsx_pci_ms.c static int ms_power_on(struct realtek_pci_ms *host) host 75 drivers/memstick/host/rtsx_pci_ms.c struct rtsx_pcr *pcr = host->pcr; host 107 drivers/memstick/host/rtsx_pci_ms.c static int ms_power_off(struct realtek_pci_ms *host) host 109 drivers/memstick/host/rtsx_pci_ms.c struct rtsx_pcr *pcr = host->pcr; host 128 drivers/memstick/host/rtsx_pci_ms.c static int ms_transfer_data(struct realtek_pci_ms *host, unsigned char data_dir, host 131 drivers/memstick/host/rtsx_pci_ms.c struct rtsx_pcr *pcr = host->pcr; host 136 drivers/memstick/host/rtsx_pci_ms.c struct memstick_dev *card = host->msh->card; host 139 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "%s: tpc = 0x%02x, data_dir = %s, length = %d\n", host 182 drivers/memstick/host/rtsx_pci_ms.c ms_clear_error(host); host 199 drivers/memstick/host/rtsx_pci_ms.c static int ms_write_bytes(struct realtek_pci_ms *host, u8 tpc, host 202 drivers/memstick/host/rtsx_pci_ms.c struct rtsx_pcr *pcr = host->pcr; host 205 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "%s: tpc = 0x%02x\n", __func__, tpc); host 237 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "MS_TRANS_CFG: 0x%02x\n", val); host 242 drivers/memstick/host/rtsx_pci_ms.c ms_print_debug_regs(host); host 244 drivers/memstick/host/rtsx_pci_ms.c ms_clear_error(host); host 267 drivers/memstick/host/rtsx_pci_ms.c static int ms_read_bytes(struct realtek_pci_ms *host, u8 tpc, host 270 drivers/memstick/host/rtsx_pci_ms.c struct rtsx_pcr *pcr = host->pcr; host 274 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "%s: tpc = 0x%02x\n", __func__, tpc); host 306 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "MS_TRANS_CFG: 0x%02x\n", val); host 311 drivers/memstick/host/rtsx_pci_ms.c ms_print_debug_regs(host); host 313 drivers/memstick/host/rtsx_pci_ms.c ms_clear_error(host); host 338 drivers/memstick/host/rtsx_pci_ms.c static int rtsx_pci_ms_issue_cmd(struct realtek_pci_ms *host) host 340 drivers/memstick/host/rtsx_pci_ms.c struct memstick_request *req = host->req; host 344 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "%s\n", __func__); host 347 drivers/memstick/host/rtsx_pci_ms.c if (host->ifmode != MEMSTICK_SERIAL) host 352 drivers/memstick/host/rtsx_pci_ms.c err = ms_transfer_data(host, req->data_dir, host 356 drivers/memstick/host/rtsx_pci_ms.c err = ms_read_bytes(host, req->tpc, cfg, host 359 drivers/memstick/host/rtsx_pci_ms.c err = ms_write_bytes(host, req->tpc, cfg, host 366 drivers/memstick/host/rtsx_pci_ms.c if (req->need_card_int && (host->ifmode == MEMSTICK_SERIAL)) { host 367 drivers/memstick/host/rtsx_pci_ms.c err = ms_read_bytes(host, MS_TPC_GET_INT, host 374 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "int_reg: 0x%02x\n", int_reg); host 391 drivers/memstick/host/rtsx_pci_ms.c struct realtek_pci_ms *host = container_of(work, host 393 drivers/memstick/host/rtsx_pci_ms.c struct rtsx_pcr *pcr = host->pcr; host 394 drivers/memstick/host/rtsx_pci_ms.c struct memstick_host *msh = host->msh; host 401 drivers/memstick/host/rtsx_pci_ms.c rtsx_pci_switch_clock(host->pcr, host->clock, host->ssc_depth, host 407 drivers/memstick/host/rtsx_pci_ms.c if (!host->req) { host 409 drivers/memstick/host/rtsx_pci_ms.c rc = memstick_next_req(msh, &host->req); host 410 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "next req %d\n", rc); host 413 drivers/memstick/host/rtsx_pci_ms.c host->req->error = rtsx_pci_ms_issue_cmd(host); host 422 drivers/memstick/host/rtsx_pci_ms.c struct realtek_pci_ms *host = memstick_priv(msh); host 424 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "--> %s\n", __func__); host 426 drivers/memstick/host/rtsx_pci_ms.c if (rtsx_pci_card_exclusive_check(host->pcr, RTSX_MS_CARD)) host 429 drivers/memstick/host/rtsx_pci_ms.c schedule_work(&host->handle_req); host 435 drivers/memstick/host/rtsx_pci_ms.c struct realtek_pci_ms *host = memstick_priv(msh); host 436 drivers/memstick/host/rtsx_pci_ms.c struct rtsx_pcr *pcr = host->pcr; host 441 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "%s: param = %d, value = %d\n", host 444 drivers/memstick/host/rtsx_pci_ms.c err = rtsx_pci_card_exclusive_check(host->pcr, RTSX_MS_CARD); host 451 drivers/memstick/host/rtsx_pci_ms.c err = ms_power_on(host); host 453 drivers/memstick/host/rtsx_pci_ms.c err = ms_power_off(host); host 484 drivers/memstick/host/rtsx_pci_ms.c host->ssc_depth = ssc_depth; host 485 drivers/memstick/host/rtsx_pci_ms.c host->clock = clock; host 486 drivers/memstick/host/rtsx_pci_ms.c host->ifmode = value; host 497 drivers/memstick/host/rtsx_pci_ms.c struct realtek_pci_ms *host = platform_get_drvdata(pdev); host 498 drivers/memstick/host/rtsx_pci_ms.c struct memstick_host *msh = host->msh; host 500 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "--> %s\n", __func__); host 508 drivers/memstick/host/rtsx_pci_ms.c struct realtek_pci_ms *host = platform_get_drvdata(pdev); host 509 drivers/memstick/host/rtsx_pci_ms.c struct memstick_host *msh = host->msh; host 511 drivers/memstick/host/rtsx_pci_ms.c dev_dbg(ms_dev(host), "--> %s\n", __func__); host 526 drivers/memstick/host/rtsx_pci_ms.c struct realtek_pci_ms *host = platform_get_drvdata(pdev); host 528 drivers/memstick/host/rtsx_pci_ms.c memstick_detect_change(host->msh); host 534 drivers/memstick/host/rtsx_pci_ms.c struct realtek_pci_ms *host; host 549 drivers/memstick/host/rtsx_pci_ms.c msh = memstick_alloc_host(sizeof(*host), &pdev->dev); host 553 drivers/memstick/host/rtsx_pci_ms.c host = memstick_priv(msh); host 554 drivers/memstick/host/rtsx_pci_ms.c host->pcr = pcr; host 555 drivers/memstick/host/rtsx_pci_ms.c host->msh = msh; host 556 drivers/memstick/host/rtsx_pci_ms.c host->pdev = pdev; host 557 drivers/memstick/host/rtsx_pci_ms.c platform_set_drvdata(pdev, host); host 561 drivers/memstick/host/rtsx_pci_ms.c mutex_init(&host->host_mutex); host 563 drivers/memstick/host/rtsx_pci_ms.c INIT_WORK(&host->handle_req, rtsx_pci_ms_handle_req); host 579 drivers/memstick/host/rtsx_pci_ms.c struct realtek_pci_ms *host = platform_get_drvdata(pdev); host 584 drivers/memstick/host/rtsx_pci_ms.c if (!host) host 587 drivers/memstick/host/rtsx_pci_ms.c pcr = host->pcr; host 590 drivers/memstick/host/rtsx_pci_ms.c msh = host->msh; host 591 drivers/memstick/host/rtsx_pci_ms.c host->eject = true; host 592 drivers/memstick/host/rtsx_pci_ms.c cancel_work_sync(&host->handle_req); host 594 drivers/memstick/host/rtsx_pci_ms.c mutex_lock(&host->host_mutex); host 595 drivers/memstick/host/rtsx_pci_ms.c if (host->req) { host 602 drivers/memstick/host/rtsx_pci_ms.c host->req->error = -ENOMEDIUM; host 604 drivers/memstick/host/rtsx_pci_ms.c rc = memstick_next_req(msh, &host->req); host 606 drivers/memstick/host/rtsx_pci_ms.c host->req->error = -ENOMEDIUM; host 609 drivers/memstick/host/rtsx_pci_ms.c mutex_unlock(&host->host_mutex); host 42 drivers/memstick/host/rtsx_usb_ms.c static inline struct device *ms_dev(struct rtsx_usb_ms *host) host 44 drivers/memstick/host/rtsx_usb_ms.c return &(host->pdev->dev); host 47 drivers/memstick/host/rtsx_usb_ms.c static inline void ms_clear_error(struct rtsx_usb_ms *host) host 49 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 60 drivers/memstick/host/rtsx_usb_ms.c static void ms_print_debug_regs(struct rtsx_usb_ms *host) host 62 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 92 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", i, *(ptr++)); host 94 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", i, *(ptr++)); host 96 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", i, *(ptr++)); host 98 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", CARD_DATA_SOURCE, *(ptr++)); host 99 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", CARD_SELECT, *(ptr++)); host 100 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", CARD_CLK_EN, *(ptr++)); host 101 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "0x%04X: 0x%02x\n", CARD_PWR_CTL, *(ptr++)); host 106 drivers/memstick/host/rtsx_usb_ms.c static void ms_print_debug_regs(struct rtsx_usb_ms *host) host 168 drivers/memstick/host/rtsx_usb_ms.c static int ms_power_on(struct rtsx_usb_ms *host) host 170 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 173 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "%s\n", __func__); host 208 drivers/memstick/host/rtsx_usb_ms.c static int ms_power_off(struct rtsx_usb_ms *host) host 210 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 213 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "%s\n", __func__); host 230 drivers/memstick/host/rtsx_usb_ms.c static int ms_transfer_data(struct rtsx_usb_ms *host, unsigned char data_dir, host 233 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 239 drivers/memstick/host/rtsx_usb_ms.c struct memstick_dev *card = host->msh->card; host 241 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "%s: tpc = 0x%02x, data_dir = %s, length = %d\n", host 312 drivers/memstick/host/rtsx_usb_ms.c ms_clear_error(host); host 316 drivers/memstick/host/rtsx_usb_ms.c static int ms_write_bytes(struct rtsx_usb_ms *host, u8 tpc, host 319 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 322 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "%s: tpc = 0x%02x\n", __func__, tpc); host 355 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "MS_TRANS_CFG: 0x%02x\n", val); host 360 drivers/memstick/host/rtsx_usb_ms.c ms_print_debug_regs(host); host 362 drivers/memstick/host/rtsx_usb_ms.c ms_clear_error(host); host 383 drivers/memstick/host/rtsx_usb_ms.c static int ms_read_bytes(struct rtsx_usb_ms *host, u8 tpc, host 386 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 390 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "%s: tpc = 0x%02x\n", __func__, tpc); host 423 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "MS_TRANS_CFG: 0x%02x\n", val); host 425 drivers/memstick/host/rtsx_usb_ms.c if (int_reg && (host->ifmode != MEMSTICK_SERIAL)) host 428 drivers/memstick/host/rtsx_usb_ms.c ms_print_debug_regs(host); host 430 drivers/memstick/host/rtsx_usb_ms.c ms_clear_error(host); host 450 drivers/memstick/host/rtsx_usb_ms.c if (int_reg && (host->ifmode != MEMSTICK_SERIAL)) host 456 drivers/memstick/host/rtsx_usb_ms.c static int rtsx_usb_ms_issue_cmd(struct rtsx_usb_ms *host) host 458 drivers/memstick/host/rtsx_usb_ms.c struct memstick_request *req = host->req; host 462 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "%s\n", __func__); host 465 drivers/memstick/host/rtsx_usb_ms.c if (host->ifmode != MEMSTICK_SERIAL) host 470 drivers/memstick/host/rtsx_usb_ms.c err = ms_transfer_data(host, req->data_dir, host 474 drivers/memstick/host/rtsx_usb_ms.c err = ms_read_bytes(host, req->tpc, cfg, host 477 drivers/memstick/host/rtsx_usb_ms.c err = ms_write_bytes(host, req->tpc, cfg, host 484 drivers/memstick/host/rtsx_usb_ms.c if (host->ifmode == MEMSTICK_SERIAL) { host 485 drivers/memstick/host/rtsx_usb_ms.c err = ms_read_bytes(host, MS_TPC_GET_INT, host 500 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "int_reg: 0x%02x\n", req->int_reg); host 508 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = container_of(work, host 510 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 511 drivers/memstick/host/rtsx_usb_ms.c struct memstick_host *msh = host->msh; host 514 drivers/memstick/host/rtsx_usb_ms.c if (!host->req) { host 515 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_get_sync(ms_dev(host)); host 517 drivers/memstick/host/rtsx_usb_ms.c rc = memstick_next_req(msh, &host->req); host 518 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "next req %d\n", rc); host 525 drivers/memstick/host/rtsx_usb_ms.c host->req->error = -EIO; host 527 drivers/memstick/host/rtsx_usb_ms.c host->req->error = host 528 drivers/memstick/host/rtsx_usb_ms.c rtsx_usb_ms_issue_cmd(host); host 532 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "req result %d\n", host 533 drivers/memstick/host/rtsx_usb_ms.c host->req->error); host 536 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_put_sync(ms_dev(host)); host 543 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = memstick_priv(msh); host 545 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "--> %s\n", __func__); host 547 drivers/memstick/host/rtsx_usb_ms.c if (!host->eject) host 548 drivers/memstick/host/rtsx_usb_ms.c schedule_work(&host->handle_req); host 554 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = memstick_priv(msh); host 555 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 560 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "%s: param = %d, value = %d\n", host 563 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_get_sync(ms_dev(host)); host 572 drivers/memstick/host/rtsx_usb_ms.c if (value == host->power_mode) host 576 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_get_noresume(ms_dev(host)); host 577 drivers/memstick/host/rtsx_usb_ms.c err = ms_power_on(host); host 579 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_put_noidle(ms_dev(host)); host 581 drivers/memstick/host/rtsx_usb_ms.c err = ms_power_off(host); host 583 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_put_noidle(ms_dev(host)); host 587 drivers/memstick/host/rtsx_usb_ms.c host->power_mode = value; host 615 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "switch clock failed\n"); host 619 drivers/memstick/host/rtsx_usb_ms.c host->ssc_depth = ssc_depth; host 620 drivers/memstick/host/rtsx_usb_ms.c host->clock = clock; host 621 drivers/memstick/host/rtsx_usb_ms.c host->ifmode = value; host 629 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_put_sync(ms_dev(host)); host 635 drivers/memstick/host/rtsx_usb_ms.c if (!host->eject) host 636 drivers/memstick/host/rtsx_usb_ms.c schedule_delayed_work(&host->poll_card, 100); host 639 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "%s: return = %d\n", __func__, err); host 646 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = dev_get_drvdata(dev); host 647 drivers/memstick/host/rtsx_usb_ms.c struct memstick_host *msh = host->msh; host 664 drivers/memstick/host/rtsx_usb_ms.c host->system_suspending = true; host 672 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = dev_get_drvdata(dev); host 673 drivers/memstick/host/rtsx_usb_ms.c struct memstick_host *msh = host->msh; host 676 drivers/memstick/host/rtsx_usb_ms.c host->system_suspending = false; host 685 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = dev_get_drvdata(dev); host 687 drivers/memstick/host/rtsx_usb_ms.c if (host->system_suspending) host 690 drivers/memstick/host/rtsx_usb_ms.c if (host->msh->card || host->power_mode != MEMSTICK_POWER_OFF) host 698 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = dev_get_drvdata(dev); host 701 drivers/memstick/host/rtsx_usb_ms.c if (host->system_suspending) host 704 drivers/memstick/host/rtsx_usb_ms.c memstick_detect_change(host->msh); host 718 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = container_of(work, struct rtsx_usb_ms, host 720 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_ucr *ucr = host->ucr; host 724 drivers/memstick/host/rtsx_usb_ms.c if (host->eject || host->power_mode != MEMSTICK_POWER_ON) host 727 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_get_sync(ms_dev(host)); host 745 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), "MS slot change detected\n"); host 746 drivers/memstick/host/rtsx_usb_ms.c memstick_detect_change(host->msh); host 750 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_put_sync(ms_dev(host)); host 752 drivers/memstick/host/rtsx_usb_ms.c if (!host->eject && host->power_mode == MEMSTICK_POWER_ON) host 753 drivers/memstick/host/rtsx_usb_ms.c schedule_delayed_work(&host->poll_card, 100); host 759 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host; host 770 drivers/memstick/host/rtsx_usb_ms.c msh = memstick_alloc_host(sizeof(*host), &pdev->dev); host 774 drivers/memstick/host/rtsx_usb_ms.c host = memstick_priv(msh); host 775 drivers/memstick/host/rtsx_usb_ms.c host->ucr = ucr; host 776 drivers/memstick/host/rtsx_usb_ms.c host->msh = msh; host 777 drivers/memstick/host/rtsx_usb_ms.c host->pdev = pdev; host 778 drivers/memstick/host/rtsx_usb_ms.c host->power_mode = MEMSTICK_POWER_OFF; host 779 drivers/memstick/host/rtsx_usb_ms.c platform_set_drvdata(pdev, host); host 781 drivers/memstick/host/rtsx_usb_ms.c mutex_init(&host->host_mutex); host 782 drivers/memstick/host/rtsx_usb_ms.c INIT_WORK(&host->handle_req, rtsx_usb_ms_handle_req); host 784 drivers/memstick/host/rtsx_usb_ms.c INIT_DELAYED_WORK(&host->poll_card, rtsx_usb_ms_poll_card); host 790 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_get_noresume(ms_dev(host)); host 791 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_set_active(ms_dev(host)); host 792 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_enable(ms_dev(host)); host 798 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_put(ms_dev(host)); host 803 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_disable(ms_dev(host)); host 804 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_put_noidle(ms_dev(host)); host 810 drivers/memstick/host/rtsx_usb_ms.c struct rtsx_usb_ms *host = platform_get_drvdata(pdev); host 811 drivers/memstick/host/rtsx_usb_ms.c struct memstick_host *msh = host->msh; host 814 drivers/memstick/host/rtsx_usb_ms.c host->eject = true; host 815 drivers/memstick/host/rtsx_usb_ms.c cancel_work_sync(&host->handle_req); host 817 drivers/memstick/host/rtsx_usb_ms.c mutex_lock(&host->host_mutex); host 818 drivers/memstick/host/rtsx_usb_ms.c if (host->req) { host 819 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), host 822 drivers/memstick/host/rtsx_usb_ms.c host->req->error = -ENOMEDIUM; host 824 drivers/memstick/host/rtsx_usb_ms.c err = memstick_next_req(msh, &host->req); host 826 drivers/memstick/host/rtsx_usb_ms.c host->req->error = -ENOMEDIUM; host 829 drivers/memstick/host/rtsx_usb_ms.c mutex_unlock(&host->host_mutex); host 837 drivers/memstick/host/rtsx_usb_ms.c if (pm_runtime_active(ms_dev(host))) host 838 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_put(ms_dev(host)); host 840 drivers/memstick/host/rtsx_usb_ms.c pm_runtime_disable(ms_dev(host)); host 843 drivers/memstick/host/rtsx_usb_ms.c dev_dbg(ms_dev(host), host 82 drivers/memstick/host/tifm_ms.c static unsigned int tifm_ms_read_data(struct tifm_ms *host, host 85 drivers/memstick/host/tifm_ms.c struct tifm_dev *sock = host->dev; host 88 drivers/memstick/host/tifm_ms.c while (host->io_pos && length) { host 89 drivers/memstick/host/tifm_ms.c buf[off++] = host->io_word & 0xff; host 90 drivers/memstick/host/tifm_ms.c host->io_word >>= 8; host 92 drivers/memstick/host/tifm_ms.c host->io_pos--; host 109 drivers/memstick/host/tifm_ms.c host->io_word = readl(sock->addr + SOCK_MS_DATA); host 110 drivers/memstick/host/tifm_ms.c for (host->io_pos = 4; host->io_pos; --host->io_pos) { host 111 drivers/memstick/host/tifm_ms.c buf[off++] = host->io_word & 0xff; host 112 drivers/memstick/host/tifm_ms.c host->io_word >>= 8; host 122 drivers/memstick/host/tifm_ms.c static unsigned int tifm_ms_write_data(struct tifm_ms *host, host 125 drivers/memstick/host/tifm_ms.c struct tifm_dev *sock = host->dev; host 128 drivers/memstick/host/tifm_ms.c if (host->io_pos) { host 129 drivers/memstick/host/tifm_ms.c while (host->io_pos < 4 && length) { host 130 drivers/memstick/host/tifm_ms.c host->io_word |= buf[off++] << (host->io_pos * 8); host 131 drivers/memstick/host/tifm_ms.c host->io_pos++; host 136 drivers/memstick/host/tifm_ms.c if (host->io_pos == 4 host 140 drivers/memstick/host/tifm_ms.c writel(host->io_word, sock->addr + SOCK_MS_DATA); host 141 drivers/memstick/host/tifm_ms.c host->io_pos = 0; host 142 drivers/memstick/host/tifm_ms.c host->io_word = 0; host 143 drivers/memstick/host/tifm_ms.c } else if (host->io_pos) { host 163 drivers/memstick/host/tifm_ms.c host->io_word |= buf[off + 2] << 16; host 164 drivers/memstick/host/tifm_ms.c host->io_pos++; host 167 drivers/memstick/host/tifm_ms.c host->io_word |= buf[off + 1] << 8; host 168 drivers/memstick/host/tifm_ms.c host->io_pos++; host 171 drivers/memstick/host/tifm_ms.c host->io_word |= buf[off]; host 172 drivers/memstick/host/tifm_ms.c host->io_pos++; host 175 drivers/memstick/host/tifm_ms.c off += host->io_pos; host 180 drivers/memstick/host/tifm_ms.c static unsigned int tifm_ms_transfer_data(struct tifm_ms *host) host 182 drivers/memstick/host/tifm_ms.c struct tifm_dev *sock = host->dev; host 190 drivers/memstick/host/tifm_ms.c if (host->req->long_data) { host 191 drivers/memstick/host/tifm_ms.c length = host->req->sg.length - host->block_pos; host 192 drivers/memstick/host/tifm_ms.c off = host->req->sg.offset + host->block_pos; host 194 drivers/memstick/host/tifm_ms.c length = host->req->data_len - host->block_pos; host 198 drivers/memstick/host/tifm_ms.c host->block_pos); host 203 drivers/memstick/host/tifm_ms.c if (host->req->long_data) { host 204 drivers/memstick/host/tifm_ms.c pg = nth_page(sg_page(&host->req->sg), host 213 drivers/memstick/host/tifm_ms.c buf = host->req->data + host->block_pos; host 214 drivers/memstick/host/tifm_ms.c p_cnt = host->req->data_len - host->block_pos; host 217 drivers/memstick/host/tifm_ms.c t_size = host->req->data_dir == WRITE host 218 drivers/memstick/host/tifm_ms.c ? tifm_ms_write_data(host, buf, p_cnt) host 219 drivers/memstick/host/tifm_ms.c : tifm_ms_read_data(host, buf, p_cnt); host 221 drivers/memstick/host/tifm_ms.c if (host->req->long_data) { host 228 drivers/memstick/host/tifm_ms.c host->block_pos += t_size; host 234 drivers/memstick/host/tifm_ms.c if (!length && (host->req->data_dir == WRITE)) { host 235 drivers/memstick/host/tifm_ms.c if (host->io_pos) { host 239 drivers/memstick/host/tifm_ms.c writel(host->io_word, sock->addr + SOCK_MS_DATA); host 252 drivers/memstick/host/tifm_ms.c static int tifm_ms_issue_cmd(struct tifm_ms *host) host 254 drivers/memstick/host/tifm_ms.c struct tifm_dev *sock = host->dev; host 257 drivers/memstick/host/tifm_ms.c host->cmd_flags = 0; host 258 drivers/memstick/host/tifm_ms.c host->block_pos = 0; host 259 drivers/memstick/host/tifm_ms.c host->io_pos = 0; host 260 drivers/memstick/host/tifm_ms.c host->io_word = 0; host 261 drivers/memstick/host/tifm_ms.c host->cmd_flags = 0; host 263 drivers/memstick/host/tifm_ms.c host->use_dma = !no_dma; host 265 drivers/memstick/host/tifm_ms.c if (host->req->long_data) { host 266 drivers/memstick/host/tifm_ms.c data_len = host->req->sg.length; host 268 drivers/memstick/host/tifm_ms.c host->use_dma = 0; host 270 drivers/memstick/host/tifm_ms.c data_len = host->req->data_len; host 271 drivers/memstick/host/tifm_ms.c host->use_dma = 0; host 279 drivers/memstick/host/tifm_ms.c if (host->use_dma) { host 280 drivers/memstick/host/tifm_ms.c if (1 != tifm_map_sg(sock, &host->req->sg, 1, host 281 drivers/memstick/host/tifm_ms.c host->req->data_dir == READ host 284 drivers/memstick/host/tifm_ms.c host->req->error = -ENOMEM; host 285 drivers/memstick/host/tifm_ms.c return host->req->error; host 287 drivers/memstick/host/tifm_ms.c data_len = sg_dma_len(&host->req->sg); host 294 drivers/memstick/host/tifm_ms.c if (host->req->data_dir == WRITE) host 300 drivers/memstick/host/tifm_ms.c writel(sg_dma_address(&host->req->sg), host 304 drivers/memstick/host/tifm_ms.c writel(host->mode_mask | TIFM_MS_SYS_FIFO, host 311 drivers/memstick/host/tifm_ms.c mod_timer(&host->timer, jiffies + host->timeout_jiffies); host 314 drivers/memstick/host/tifm_ms.c host->req->error = 0; host 319 drivers/memstick/host/tifm_ms.c if (host->use_dma) host 326 drivers/memstick/host/tifm_ms.c cmd = (host->req->tpc & 0xf) << 12; host 334 drivers/memstick/host/tifm_ms.c static void tifm_ms_complete_cmd(struct tifm_ms *host) host 336 drivers/memstick/host/tifm_ms.c struct tifm_dev *sock = host->dev; host 340 drivers/memstick/host/tifm_ms.c del_timer(&host->timer); host 342 drivers/memstick/host/tifm_ms.c host->req->int_reg = readl(sock->addr + SOCK_MS_STATUS) & 0xff; host 343 drivers/memstick/host/tifm_ms.c host->req->int_reg = (host->req->int_reg & 1) host 344 drivers/memstick/host/tifm_ms.c | ((host->req->int_reg << 4) & 0xe0); host 350 drivers/memstick/host/tifm_ms.c if (host->use_dma) { host 351 drivers/memstick/host/tifm_ms.c tifm_unmap_sg(sock, &host->req->sg, 1, host 352 drivers/memstick/host/tifm_ms.c host->req->data_dir == READ host 362 drivers/memstick/host/tifm_ms.c rc = memstick_next_req(msh, &host->req); host 363 drivers/memstick/host/tifm_ms.c } while (!rc && tifm_ms_issue_cmd(host)); host 366 drivers/memstick/host/tifm_ms.c static int tifm_ms_check_status(struct tifm_ms *host) host 368 drivers/memstick/host/tifm_ms.c if (!host->req->error) { host 369 drivers/memstick/host/tifm_ms.c if (!(host->cmd_flags & CMD_READY)) host 371 drivers/memstick/host/tifm_ms.c if (!(host->cmd_flags & FIFO_READY)) host 373 drivers/memstick/host/tifm_ms.c if (host->req->need_card_int host 374 drivers/memstick/host/tifm_ms.c && !(host->cmd_flags & CARD_INT)) host 383 drivers/memstick/host/tifm_ms.c struct tifm_ms *host; host 388 drivers/memstick/host/tifm_ms.c host = memstick_priv((struct memstick_host *)tifm_get_drvdata(sock)); host 393 drivers/memstick/host/tifm_ms.c fifo_status, host_status, host->cmd_flags); host 395 drivers/memstick/host/tifm_ms.c if (host->req) { host 396 drivers/memstick/host/tifm_ms.c if (host->use_dma && (fifo_status & 1)) { host 397 drivers/memstick/host/tifm_ms.c host->cmd_flags |= FIFO_READY; host 398 drivers/memstick/host/tifm_ms.c rc = tifm_ms_check_status(host); host 400 drivers/memstick/host/tifm_ms.c if (!host->use_dma && (fifo_status & TIFM_FIFO_MORE)) { host 401 drivers/memstick/host/tifm_ms.c if (!tifm_ms_transfer_data(host)) { host 402 drivers/memstick/host/tifm_ms.c host->cmd_flags |= FIFO_READY; host 403 drivers/memstick/host/tifm_ms.c rc = tifm_ms_check_status(host); host 410 drivers/memstick/host/tifm_ms.c tifm_ms_complete_cmd(host); host 419 drivers/memstick/host/tifm_ms.c struct tifm_ms *host; host 424 drivers/memstick/host/tifm_ms.c host = memstick_priv((struct memstick_host *)tifm_get_drvdata(sock)); host 427 drivers/memstick/host/tifm_ms.c host_status, host->cmd_flags); host 429 drivers/memstick/host/tifm_ms.c if (host->req) { host 431 drivers/memstick/host/tifm_ms.c host->req->error = -ETIME; host 433 drivers/memstick/host/tifm_ms.c host->req->error = -EILSEQ; host 436 drivers/memstick/host/tifm_ms.c host->cmd_flags |= CMD_READY; host 439 drivers/memstick/host/tifm_ms.c host->cmd_flags |= CARD_INT; host 441 drivers/memstick/host/tifm_ms.c rc = tifm_ms_check_status(host); host 449 drivers/memstick/host/tifm_ms.c tifm_ms_complete_cmd(host); host 458 drivers/memstick/host/tifm_ms.c struct tifm_ms *host = memstick_priv(msh); host 459 drivers/memstick/host/tifm_ms.c struct tifm_dev *sock = host->dev; host 464 drivers/memstick/host/tifm_ms.c if (!host->req) { host 465 drivers/memstick/host/tifm_ms.c if (host->eject) { host 467 drivers/memstick/host/tifm_ms.c rc = memstick_next_req(msh, &host->req); host 469 drivers/memstick/host/tifm_ms.c host->req->error = -ETIME; host 476 drivers/memstick/host/tifm_ms.c rc = memstick_next_req(msh, &host->req); host 477 drivers/memstick/host/tifm_ms.c } while (!rc && tifm_ms_issue_cmd(host)); host 489 drivers/memstick/host/tifm_ms.c struct tifm_ms *host = memstick_priv(msh); host 491 drivers/memstick/host/tifm_ms.c tasklet_schedule(&host->notify); host 498 drivers/memstick/host/tifm_ms.c struct tifm_ms *host = memstick_priv(msh); host 499 drivers/memstick/host/tifm_ms.c struct tifm_dev *sock = host->dev; host 505 drivers/memstick/host/tifm_ms.c host->mode_mask = TIFM_MS_SYS_SRAC | TIFM_MS_SYS_REI; host 519 drivers/memstick/host/tifm_ms.c host->mode_mask = TIFM_MS_SYS_SRAC | TIFM_MS_SYS_REI; host 524 drivers/memstick/host/tifm_ms.c host->mode_mask = 0; host 538 drivers/memstick/host/tifm_ms.c struct tifm_ms *host = from_timer(host, t, timer); host 540 drivers/memstick/host/tifm_ms.c dev_dbg(&host->dev->dev, "status %x\n", host 541 drivers/memstick/host/tifm_ms.c readl(host->dev->addr + SOCK_MS_STATUS)); host 545 drivers/memstick/host/tifm_ms.c dev_name(&host->dev->dev), host->req ? host->req->tpc : 0, host 546 drivers/memstick/host/tifm_ms.c host->cmd_flags); host 548 drivers/memstick/host/tifm_ms.c tifm_eject(host->dev); host 554 drivers/memstick/host/tifm_ms.c struct tifm_ms *host; host 568 drivers/memstick/host/tifm_ms.c host = memstick_priv(msh); host 570 drivers/memstick/host/tifm_ms.c host->dev = sock; host 571 drivers/memstick/host/tifm_ms.c host->timeout_jiffies = msecs_to_jiffies(1000); host 573 drivers/memstick/host/tifm_ms.c timer_setup(&host->timer, tifm_ms_abort, 0); host 574 drivers/memstick/host/tifm_ms.c tasklet_init(&host->notify, tifm_ms_req_tasklet, (unsigned long)msh); host 594 drivers/memstick/host/tifm_ms.c struct tifm_ms *host = memstick_priv(msh); host 599 drivers/memstick/host/tifm_ms.c tasklet_kill(&host->notify); host 601 drivers/memstick/host/tifm_ms.c host->eject = 1; host 602 drivers/memstick/host/tifm_ms.c if (host->req) { host 603 drivers/memstick/host/tifm_ms.c del_timer(&host->timer); host 607 drivers/memstick/host/tifm_ms.c if (host->use_dma) host 608 drivers/memstick/host/tifm_ms.c tifm_unmap_sg(sock, &host->req->sg, 1, host 609 drivers/memstick/host/tifm_ms.c host->req->data_dir == READ host 612 drivers/memstick/host/tifm_ms.c host->req->error = -ETIME; host 615 drivers/memstick/host/tifm_ms.c rc = memstick_next_req(msh, &host->req); host 617 drivers/memstick/host/tifm_ms.c host->req->error = -ETIME; host 2590 drivers/message/fusion/mptctl.c if (ioc->sh->host_no != karg.hdr.host) host 366 drivers/message/fusion/mptctl.h unsigned int host; host 192 drivers/message/fusion/mptfc.c struct Scsi_Host *shost = sdev->host; host 199 drivers/message/fusion/mptfc.c hd = shost_priv(SCpnt->device->host); host 581 drivers/message/fusion/mptfc.c sdev->host->host_no, host 612 drivers/message/fusion/mptfc.c hd = shost_priv(sdev->host); host 1687 drivers/message/fusion/mptsas.c struct Scsi_Host *host = sdev->host; host 1688 drivers/message/fusion/mptsas.c MPT_SCSI_HOST *hd = shost_priv(host); host 1717 drivers/message/fusion/mptsas.c struct Scsi_Host *host = dev_to_shost(&starget->dev); host 1718 drivers/message/fusion/mptsas.c MPT_SCSI_HOST *hd = shost_priv(host); host 1795 drivers/message/fusion/mptsas.c struct Scsi_Host *host = dev_to_shost(&starget->dev); host 1796 drivers/message/fusion/mptsas.c MPT_SCSI_HOST *hd = shost_priv(host); host 1844 drivers/message/fusion/mptsas.c struct Scsi_Host *host = sdev->host; host 1845 drivers/message/fusion/mptsas.c MPT_SCSI_HOST *hd = shost_priv(host); host 1934 drivers/message/fusion/mptsas.c hd = shost_priv(sc->device->host); host 697 drivers/message/fusion/mptscsih.c sc->device->host->host_no, sc->device->channel, host 1154 drivers/message/fusion/mptscsih.c if (sc->device->host == NULL) host 1156 drivers/message/fusion/mptscsih.c if ((hd = shost_priv(sc->device->host)) == NULL) host 1177 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = ioc->sh; host 1181 drivers/message/fusion/mptscsih.c if((hd = shost_priv(host)) == NULL) host 1204 drivers/message/fusion/mptscsih.c scsi_host_put(host); host 1285 drivers/message/fusion/mptscsih.c int mptscsih_show_info(struct seq_file *m, struct Scsi_Host *host) host 1287 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 1327 drivers/message/fusion/mptscsih.c hd = shost_priv(SCpnt->device->host); host 1694 drivers/message/fusion/mptscsih.c if ((hd = shost_priv(SCpnt->device->host)) == NULL) { host 1814 drivers/message/fusion/mptscsih.c if ((hd = shost_priv(SCpnt->device->host)) == NULL){ host 1874 drivers/message/fusion/mptscsih.c if ((hd = shost_priv(SCpnt->device->host)) == NULL){ host 1923 drivers/message/fusion/mptscsih.c if ((hd = shost_priv(SCpnt->device->host)) == NULL){ host 2285 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = sdev->host; host 2286 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 2315 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(sdev->host); host 2353 drivers/message/fusion/mptscsih.c struct Scsi_Host *sh = sdev->host; host 3045 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3046 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3061 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3062 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3077 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3078 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3090 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3091 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3104 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3105 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3118 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3119 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3131 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3132 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3143 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3144 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3156 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3157 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3169 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3170 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3182 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3183 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3195 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3196 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 3205 drivers/message/fusion/mptscsih.c struct Scsi_Host *host = class_to_shost(dev); host 3206 drivers/message/fusion/mptscsih.c MPT_SCSI_HOST *hd = shost_priv(host); host 718 drivers/message/fusion/mptspi.c MPT_SCSI_HOST *hd = shost_priv(sdev->host); host 751 drivers/message/fusion/mptspi.c struct _MPT_SCSI_HOST *hd = shost_priv(sdev->host); host 129 drivers/misc/vmw_vmci/vmci_queue_pair.c bool host; /* Host or guest? */ host 303 drivers/misc/vmw_vmci/vmci_queue_pair.c queue->kernel_if->host = false; host 345 drivers/misc/vmw_vmci/vmci_queue_pair.c if (kernel_if->host) host 359 drivers/misc/vmw_vmci/vmci_queue_pair.c if (kernel_if->host) host 364 drivers/misc/vmw_vmci/vmci_queue_pair.c if (kernel_if->host) host 393 drivers/misc/vmw_vmci/vmci_queue_pair.c if (kernel_if->host) host 407 drivers/misc/vmw_vmci/vmci_queue_pair.c if (kernel_if->host) host 412 drivers/misc/vmw_vmci/vmci_queue_pair.c if (kernel_if->host) host 545 drivers/misc/vmw_vmci/vmci_queue_pair.c queue->kernel_if->host = true; host 581 drivers/misc/vmw_vmci/vmci_queue_pair.c if (produce_q->kernel_if->host) { host 594 drivers/misc/vmw_vmci/vmci_queue_pair.c if (produce_q->kernel_if->host) { host 607 drivers/misc/vmw_vmci/vmci_queue_pair.c if (queue->kernel_if->host) host 618 drivers/misc/vmw_vmci/vmci_queue_pair.c if (queue->kernel_if->host) host 417 drivers/mmc/core/block.c mmc_hostname(card->host), __func__); host 423 drivers/mmc/core/block.c mmc_hostname(card->host), __func__); host 431 drivers/mmc/core/block.c mmc_hostname(card->host), __func__, err); host 433 drivers/mmc/core/block.c pr_debug("%s: %s - SANITIZE COMPLETED\n", mmc_hostname(card->host), host 461 drivers/mmc/core/block.c dev_err(mmc_dev(card->host), host 475 drivers/mmc/core/block.c dev_err(mmc_dev(card->host), host 565 drivers/mmc/core/block.c err = mmc_app_cmd(card->host, card); host 593 drivers/mmc/core/block.c mmc_wait_for_req(card->host, &mrq); host 596 drivers/mmc/core/block.c dev_err(mmc_dev(card->host), "%s: cmd error %d\n", host 601 drivers/mmc/core/block.c dev_err(mmc_dev(card->host), "%s: data error %d\n", host 847 drivers/mmc/core/block.c mmc_retune_pause(card->host); host 859 drivers/mmc/core/block.c mmc_retune_unpause(card->host); host 919 drivers/mmc/core/block.c err = mmc_wait_for_cmd(card->host, &cmd, 0); host 922 drivers/mmc/core/block.c if (!mmc_host_is_spi(card->host) && !(cmd.resp[0] & R1_APP_CMD)) host 947 drivers/mmc/core/block.c mmc_wait_for_req(card->host, &mrq); host 960 drivers/mmc/core/block.c static unsigned int mmc_blk_clock_khz(struct mmc_host *host) host 962 drivers/mmc/core/block.c if (host->actual_clock) host 963 drivers/mmc/core/block.c return host->actual_clock / 1000; host 966 drivers/mmc/core/block.c if (host->ios.clock) host 967 drivers/mmc/core/block.c return host->ios.clock / 2000; host 974 drivers/mmc/core/block.c static unsigned int mmc_blk_data_timeout_ms(struct mmc_host *host, host 981 drivers/mmc/core/block.c khz = mmc_blk_clock_khz(host); host 988 drivers/mmc/core/block.c static int mmc_blk_reset(struct mmc_blk_data *md, struct mmc_host *host, host 997 drivers/mmc/core/block.c err = mmc_hw_reset(host); host 1001 drivers/mmc/core/block.c dev_get_drvdata(&host->card->dev); host 1005 drivers/mmc/core/block.c part_err = mmc_blk_part_switch(host->card, md->part_type); host 1114 drivers/mmc/core/block.c } while (err == -EIO && !mmc_blk_reset(md, card->host, type)); host 1185 drivers/mmc/core/block.c if (err && !mmc_blk_reset(md, card->host, type)) host 1330 drivers/mmc/core/block.c if (brq->data.blocks > card->host->max_blk_count) host 1331 drivers/mmc/core/block.c brq->data.blocks = card->host->max_blk_count; host 1339 drivers/mmc/core/block.c if (mmc_host_is_spi(card->host) && (rq_data_dir(req) == READ) && host 1356 drivers/mmc/core/block.c if (card->host->ops->multi_io_quirk) host 1357 drivers/mmc/core/block.c brq->data.blocks = card->host->ops->multi_io_quirk(card, host 1419 drivers/mmc/core/block.c struct mmc_host *host = mq->card->host; host 1425 drivers/mmc/core/block.c mmc_cqe_post_req(host, mrq); host 1468 drivers/mmc/core/block.c struct mmc_host *host = card->host; host 1471 drivers/mmc/core/block.c pr_debug("%s: CQE recovery start\n", mmc_hostname(host)); host 1473 drivers/mmc/core/block.c err = mmc_cqe_recovery(host); host 1475 drivers/mmc/core/block.c mmc_blk_reset(mq->blkdata, host, MMC_BLK_CQE_RECOVERY); host 1479 drivers/mmc/core/block.c pr_debug("%s: CQE recovery done\n", mmc_hostname(host)); host 1500 drivers/mmc/core/block.c static int mmc_blk_cqe_start_req(struct mmc_host *host, struct mmc_request *mrq) host 1505 drivers/mmc/core/block.c return mmc_cqe_start_req(host, mrq); host 1533 drivers/mmc/core/block.c return mmc_blk_cqe_start_req(mq->card->host, mrq); host 1542 drivers/mmc/core/block.c return mmc_blk_cqe_start_req(mq->card->host, &mqrq->brq.mrq); host 1569 drivers/mmc/core/block.c if (!mmc_host_is_spi(card->host) || host 1624 drivers/mmc/core/block.c return mmc_wait_for_cmd(card->host, &cmd, 5); host 1631 drivers/mmc/core/block.c unsigned int timeout = mmc_blk_data_timeout_ms(card->host, &brq->data); host 1634 drivers/mmc/core/block.c mmc_retune_hold_now(card->host); host 1640 drivers/mmc/core/block.c mmc_retune_release(card->host); host 1653 drivers/mmc/core/block.c struct mmc_host *host = card->host; host 1663 drivers/mmc/core/block.c mmc_wait_for_req(host, mrq); host 1669 drivers/mmc/core/block.c if (!mmc_host_is_spi(host) && host 1683 drivers/mmc/core/block.c (!mmc_host_is_spi(host) && host 1722 drivers/mmc/core/block.c if (mmc_host_is_spi(mq->card->host)) host 1774 drivers/mmc/core/block.c mmc_retune_release(card->host); host 1787 drivers/mmc/core/block.c if (err && mmc_detect_card_removed(card->host)) host 1791 drivers/mmc/core/block.c if (!mmc_host_is_spi(mq->card->host) && host 1808 drivers/mmc/core/block.c if (!mmc_host_is_spi(mq->card->host) && host 1809 drivers/mmc/core/block.c err && mmc_blk_reset(md, card->host, type)) { host 1824 drivers/mmc/core/block.c mmc_blk_reset(md, card->host, type); host 1859 drivers/mmc/core/block.c if (mmc_host_is_spi(card->host) || rq_data_dir(req) == READ) host 1912 drivers/mmc/core/block.c return mmc_card_mmc(mq->card) && !mmc_host_is_spi(mq->card->host) && host 1938 drivers/mmc/core/block.c struct mmc_host *host = mq->card->host; host 1945 drivers/mmc/core/block.c mmc_retune_release(host); host 1972 drivers/mmc/core/block.c struct mmc_host *host = mq->card->host; host 1974 drivers/mmc/core/block.c mmc_post_req(host, mrq, 0); host 1991 drivers/mmc/core/block.c struct mmc_host *host = mq->card->host; host 1998 drivers/mmc/core/block.c mmc_retune_hold_now(host); host 2010 drivers/mmc/core/block.c if (mmc_host_done_complete(mq->card->host)) host 2046 drivers/mmc/core/block.c struct mmc_host *host = mq->card->host; host 2049 drivers/mmc/core/block.c if (!mmc_host_done_complete(host)) { host 2136 drivers/mmc/core/block.c struct mmc_host *host = mq->card->host; host 2144 drivers/mmc/core/block.c mmc_pre_req(host, &mqrq->brq.mrq); host 2152 drivers/mmc/core/block.c err = mmc_start_request(host, &mqrq->brq.mrq); host 2161 drivers/mmc/core/block.c if (err || mmc_host_done_complete(host)) host 2162 drivers/mmc/core/block.c mmc_retune_release(host); host 2166 drivers/mmc/core/block.c mmc_post_req(host, &mqrq->brq.mrq, err); host 2171 drivers/mmc/core/block.c static int mmc_blk_wait_for_idle(struct mmc_queue *mq, struct mmc_host *host) host 2174 drivers/mmc/core/block.c return host->cqe_ops->cqe_wait_for_idle(host); host 2183 drivers/mmc/core/block.c struct mmc_host *host = card->host; host 2192 drivers/mmc/core/block.c ret = mmc_blk_wait_for_idle(mq, host); host 2266 drivers/mmc/core/block.c dev_err(mmc_dev(card->host), host 2339 drivers/mmc/core/block.c "mmcblk%u%s", card->host->index, subname ? subname : ""); host 2343 drivers/mmc/core/block.c if (mmc_host_cmd23(card->host)) { host 2526 drivers/mmc/core/block.c "mmcblk%u%s", card->host->index, subname ? subname : ""); host 2941 drivers/mmc/core/block.c mmc_claim_host(card->host); host 2943 drivers/mmc/core/block.c mmc_release_host(card->host); host 131 drivers/mmc/core/bus.c struct mmc_host *host = card->host; host 137 drivers/mmc/core/bus.c if (host->bus_ops->shutdown) { host 138 drivers/mmc/core/bus.c ret = host->bus_ops->shutdown(host); host 141 drivers/mmc/core/bus.c mmc_hostname(host), ret); host 149 drivers/mmc/core/bus.c struct mmc_host *host = card->host; host 156 drivers/mmc/core/bus.c ret = host->bus_ops->suspend(host); host 166 drivers/mmc/core/bus.c struct mmc_host *host = card->host; host 169 drivers/mmc/core/bus.c ret = host->bus_ops->resume(host); host 172 drivers/mmc/core/bus.c mmc_hostname(host), ret); host 183 drivers/mmc/core/bus.c struct mmc_host *host = card->host; host 185 drivers/mmc/core/bus.c return host->bus_ops->runtime_suspend(host); host 191 drivers/mmc/core/bus.c struct mmc_host *host = card->host; host 193 drivers/mmc/core/bus.c return host->bus_ops->runtime_resume(host); host 261 drivers/mmc/core/bus.c struct mmc_card *mmc_alloc_card(struct mmc_host *host, struct device_type *type) host 269 drivers/mmc/core/bus.c card->host = host; host 273 drivers/mmc/core/bus.c card->dev.parent = mmc_classdev(host); host 298 drivers/mmc/core/bus.c dev_set_name(&card->dev, "%s:%04x", mmc_hostname(card->host), card->rca); host 330 drivers/mmc/core/bus.c if (mmc_host_is_spi(card->host)) { host 332 drivers/mmc/core/bus.c mmc_hostname(card->host), host 338 drivers/mmc/core/bus.c mmc_hostname(card->host), host 351 drivers/mmc/core/bus.c card->dev.of_node = mmc_of_find_child_device(card->host, 0); host 370 drivers/mmc/core/bus.c struct mmc_host *host = card->host; host 376 drivers/mmc/core/bus.c if (host->cqe_enabled) { host 377 drivers/mmc/core/bus.c host->cqe_ops->cqe_disable(host); host 378 drivers/mmc/core/bus.c host->cqe_enabled = false; host 382 drivers/mmc/core/bus.c if (mmc_host_is_spi(card->host)) { host 384 drivers/mmc/core/bus.c mmc_hostname(card->host)); host 387 drivers/mmc/core/bus.c mmc_hostname(card->host), card->rca); host 24 drivers/mmc/core/bus.h struct mmc_card *mmc_alloc_card(struct mmc_host *host, host 81 drivers/mmc/core/core.c static void mmc_should_fail_request(struct mmc_host *host, host 96 drivers/mmc/core/core.c !should_fail(&host->fail_mmc_request, data->blksz * data->blocks)) host 105 drivers/mmc/core/core.c static inline void mmc_should_fail_request(struct mmc_host *host, host 118 drivers/mmc/core/core.c void mmc_command_done(struct mmc_host *host, struct mmc_request *mrq) host 126 drivers/mmc/core/core.c mmc_hostname(host), mrq->cmd->opcode); host 138 drivers/mmc/core/core.c void mmc_request_done(struct mmc_host *host, struct mmc_request *mrq) host 146 drivers/mmc/core/core.c !host->retune_crc_disable && host 150 drivers/mmc/core/core.c mmc_retune_needed(host); host 152 drivers/mmc/core/core.c if (err && cmd->retries && mmc_host_is_spi(host)) { host 157 drivers/mmc/core/core.c if (host->ongoing_mrq == mrq) host 158 drivers/mmc/core/core.c host->ongoing_mrq = NULL; host 162 drivers/mmc/core/core.c trace_mmc_request_done(host, mrq); host 173 drivers/mmc/core/core.c if (!err || !cmd->retries || mmc_card_removed(host->card)) { host 174 drivers/mmc/core/core.c mmc_should_fail_request(host, mrq); host 176 drivers/mmc/core/core.c if (!host->ongoing_mrq) host 177 drivers/mmc/core/core.c led_trigger_event(host->led, LED_OFF); host 181 drivers/mmc/core/core.c mmc_hostname(host), mrq->sbc->opcode, host 188 drivers/mmc/core/core.c mmc_hostname(host), cmd->opcode, err, host 194 drivers/mmc/core/core.c mmc_hostname(host), host 200 drivers/mmc/core/core.c mmc_hostname(host), mrq->stop->opcode, host 216 drivers/mmc/core/core.c static void __mmc_start_request(struct mmc_host *host, struct mmc_request *mrq) host 221 drivers/mmc/core/core.c err = mmc_retune(host); host 224 drivers/mmc/core/core.c mmc_request_done(host, mrq); host 234 drivers/mmc/core/core.c host->ops->card_busy) { host 237 drivers/mmc/core/core.c while (host->ops->card_busy(host) && --tries) host 242 drivers/mmc/core/core.c mmc_request_done(host, mrq); host 248 drivers/mmc/core/core.c host->ongoing_mrq = mrq; host 256 drivers/mmc/core/core.c trace_mmc_request_start(host, mrq); host 258 drivers/mmc/core/core.c if (host->cqe_on) host 259 drivers/mmc/core/core.c host->cqe_ops->cqe_off(host); host 261 drivers/mmc/core/core.c host->ops->request(host, mrq); host 264 drivers/mmc/core/core.c static void mmc_mrq_pr_debug(struct mmc_host *host, struct mmc_request *mrq, host 269 drivers/mmc/core/core.c mmc_hostname(host), mrq->sbc->opcode, host 275 drivers/mmc/core/core.c mmc_hostname(host), cqe ? "CQE direct " : "", host 279 drivers/mmc/core/core.c mmc_hostname(host), mrq->tag, mrq->data->blk_addr); host 285 drivers/mmc/core/core.c mmc_hostname(host), mrq->data->blksz, host 293 drivers/mmc/core/core.c mmc_hostname(host), mrq->stop->opcode, host 298 drivers/mmc/core/core.c static int mmc_mrq_prep(struct mmc_host *host, struct mmc_request *mrq) host 313 drivers/mmc/core/core.c if (mrq->data->blksz > host->max_blk_size || host 314 drivers/mmc/core/core.c mrq->data->blocks > host->max_blk_count || host 315 drivers/mmc/core/core.c mrq->data->blocks * mrq->data->blksz > host->max_req_size) host 335 drivers/mmc/core/core.c int mmc_start_request(struct mmc_host *host, struct mmc_request *mrq) host 341 drivers/mmc/core/core.c mmc_retune_hold(host); host 343 drivers/mmc/core/core.c if (mmc_card_removed(host->card)) host 346 drivers/mmc/core/core.c mmc_mrq_pr_debug(host, mrq, false); host 348 drivers/mmc/core/core.c WARN_ON(!host->claimed); host 350 drivers/mmc/core/core.c err = mmc_mrq_prep(host, mrq); host 354 drivers/mmc/core/core.c led_trigger_event(host->led, LED_FULL); host 355 drivers/mmc/core/core.c __mmc_start_request(host, mrq); host 366 drivers/mmc/core/core.c static inline void mmc_wait_ongoing_tfr_cmd(struct mmc_host *host) host 368 drivers/mmc/core/core.c struct mmc_request *ongoing_mrq = READ_ONCE(host->ongoing_mrq); host 378 drivers/mmc/core/core.c static int __mmc_start_req(struct mmc_host *host, struct mmc_request *mrq) host 382 drivers/mmc/core/core.c mmc_wait_ongoing_tfr_cmd(host); host 387 drivers/mmc/core/core.c err = mmc_start_request(host, mrq); host 397 drivers/mmc/core/core.c void mmc_wait_for_req_done(struct mmc_host *host, struct mmc_request *mrq) host 413 drivers/mmc/core/core.c if (!mmc_interrupt_hpi(host->card)) { host 415 drivers/mmc/core/core.c mmc_hostname(host), __func__); host 420 drivers/mmc/core/core.c mmc_hostname(host), __func__); host 424 drivers/mmc/core/core.c mmc_card_removed(host->card)) host 427 drivers/mmc/core/core.c mmc_retune_recheck(host); host 430 drivers/mmc/core/core.c mmc_hostname(host), cmd->opcode, cmd->error); host 433 drivers/mmc/core/core.c __mmc_start_request(host, mrq); host 436 drivers/mmc/core/core.c mmc_retune_release(host); host 448 drivers/mmc/core/core.c int mmc_cqe_start_req(struct mmc_host *host, struct mmc_request *mrq) host 458 drivers/mmc/core/core.c err = mmc_retune(host); host 462 drivers/mmc/core/core.c mrq->host = host; host 464 drivers/mmc/core/core.c mmc_mrq_pr_debug(host, mrq, true); host 466 drivers/mmc/core/core.c err = mmc_mrq_prep(host, mrq); host 470 drivers/mmc/core/core.c err = host->cqe_ops->cqe_request(host, mrq); host 474 drivers/mmc/core/core.c trace_mmc_request_start(host, mrq); host 481 drivers/mmc/core/core.c mmc_hostname(host), mrq->cmd->opcode, err); host 484 drivers/mmc/core/core.c mmc_hostname(host), mrq->tag, err); host 498 drivers/mmc/core/core.c void mmc_cqe_request_done(struct mmc_host *host, struct mmc_request *mrq) host 500 drivers/mmc/core/core.c mmc_should_fail_request(host, mrq); host 505 drivers/mmc/core/core.c mmc_retune_needed(host); host 507 drivers/mmc/core/core.c trace_mmc_request_done(host, mrq); host 511 drivers/mmc/core/core.c mmc_hostname(host), mrq->cmd->opcode, mrq->cmd->error); host 514 drivers/mmc/core/core.c mmc_hostname(host), mrq->tag); host 519 drivers/mmc/core/core.c mmc_hostname(host), host 532 drivers/mmc/core/core.c void mmc_cqe_post_req(struct mmc_host *host, struct mmc_request *mrq) host 534 drivers/mmc/core/core.c if (host->cqe_ops->cqe_post_req) host 535 drivers/mmc/core/core.c host->cqe_ops->cqe_post_req(host, mrq); host 551 drivers/mmc/core/core.c int mmc_cqe_recovery(struct mmc_host *host) host 556 drivers/mmc/core/core.c mmc_retune_hold_now(host); host 562 drivers/mmc/core/core.c pr_warn("%s: running CQE recovery\n", mmc_hostname(host)); host 564 drivers/mmc/core/core.c host->cqe_ops->cqe_recovery_start(host); host 571 drivers/mmc/core/core.c mmc_wait_for_cmd(host, &cmd, 0); host 579 drivers/mmc/core/core.c err = mmc_wait_for_cmd(host, &cmd, 0); host 581 drivers/mmc/core/core.c host->cqe_ops->cqe_recovery_finish(host); host 583 drivers/mmc/core/core.c mmc_retune_release(host); host 601 drivers/mmc/core/core.c bool mmc_is_req_done(struct mmc_host *host, struct mmc_request *mrq) host 619 drivers/mmc/core/core.c void mmc_wait_for_req(struct mmc_host *host, struct mmc_request *mrq) host 621 drivers/mmc/core/core.c __mmc_start_req(host, mrq); host 624 drivers/mmc/core/core.c mmc_wait_for_req_done(host, mrq); host 638 drivers/mmc/core/core.c int mmc_wait_for_cmd(struct mmc_host *host, struct mmc_command *cmd, int retries) host 642 drivers/mmc/core/core.c WARN_ON(!host->claimed); host 650 drivers/mmc/core/core.c mmc_wait_for_req(host, &mrq); host 700 drivers/mmc/core/core.c if (card->host->ios.clock) host 702 drivers/mmc/core/core.c (card->host->ios.clock / 1000); host 747 drivers/mmc/core/core.c if (mmc_host_is_spi(card->host)) { host 763 drivers/mmc/core/core.c static inline bool mmc_ctx_matches(struct mmc_host *host, struct mmc_ctx *ctx, host 766 drivers/mmc/core/core.c return host->claimer == ctx || host 767 drivers/mmc/core/core.c (!ctx && task && host->claimer->task == task); host 770 drivers/mmc/core/core.c static inline void mmc_ctx_set_claimer(struct mmc_host *host, host 774 drivers/mmc/core/core.c if (!host->claimer) { host 776 drivers/mmc/core/core.c host->claimer = ctx; host 778 drivers/mmc/core/core.c host->claimer = &host->default_ctx; host 781 drivers/mmc/core/core.c host->claimer->task = task; host 796 drivers/mmc/core/core.c int __mmc_claim_host(struct mmc_host *host, struct mmc_ctx *ctx, host 807 drivers/mmc/core/core.c add_wait_queue(&host->wq, &wait); host 808 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 812 drivers/mmc/core/core.c if (stop || !host->claimed || mmc_ctx_matches(host, ctx, task)) host 814 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 816 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 820 drivers/mmc/core/core.c host->claimed = 1; host 821 drivers/mmc/core/core.c mmc_ctx_set_claimer(host, ctx, task); host 822 drivers/mmc/core/core.c host->claim_cnt += 1; host 823 drivers/mmc/core/core.c if (host->claim_cnt == 1) host 826 drivers/mmc/core/core.c wake_up(&host->wq); host 827 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 828 drivers/mmc/core/core.c remove_wait_queue(&host->wq, &wait); host 831 drivers/mmc/core/core.c pm_runtime_get_sync(mmc_dev(host)); host 844 drivers/mmc/core/core.c void mmc_release_host(struct mmc_host *host) host 848 drivers/mmc/core/core.c WARN_ON(!host->claimed); host 850 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 851 drivers/mmc/core/core.c if (--host->claim_cnt) { host 853 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 855 drivers/mmc/core/core.c host->claimed = 0; host 856 drivers/mmc/core/core.c host->claimer->task = NULL; host 857 drivers/mmc/core/core.c host->claimer = NULL; host 858 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 859 drivers/mmc/core/core.c wake_up(&host->wq); host 860 drivers/mmc/core/core.c pm_runtime_mark_last_busy(mmc_dev(host)); host 861 drivers/mmc/core/core.c if (host->caps & MMC_CAP_SYNC_RUNTIME_PM) host 862 drivers/mmc/core/core.c pm_runtime_put_sync_suspend(mmc_dev(host)); host 864 drivers/mmc/core/core.c pm_runtime_put_autosuspend(mmc_dev(host)); host 876 drivers/mmc/core/core.c __mmc_claim_host(card->host, ctx, NULL); host 886 drivers/mmc/core/core.c struct mmc_host *host = card->host; host 888 drivers/mmc/core/core.c WARN_ON(ctx && host->claimer != ctx); host 890 drivers/mmc/core/core.c mmc_release_host(host); host 900 drivers/mmc/core/core.c static inline void mmc_set_ios(struct mmc_host *host) host 902 drivers/mmc/core/core.c struct mmc_ios *ios = &host->ios; host 906 drivers/mmc/core/core.c mmc_hostname(host), ios->clock, ios->bus_mode, host 910 drivers/mmc/core/core.c host->ops->set_ios(host, ios); host 916 drivers/mmc/core/core.c void mmc_set_chip_select(struct mmc_host *host, int mode) host 918 drivers/mmc/core/core.c host->ios.chip_select = mode; host 919 drivers/mmc/core/core.c mmc_set_ios(host); host 926 drivers/mmc/core/core.c void mmc_set_clock(struct mmc_host *host, unsigned int hz) host 928 drivers/mmc/core/core.c WARN_ON(hz && hz < host->f_min); host 930 drivers/mmc/core/core.c if (hz > host->f_max) host 931 drivers/mmc/core/core.c hz = host->f_max; host 933 drivers/mmc/core/core.c host->ios.clock = hz; host 934 drivers/mmc/core/core.c mmc_set_ios(host); host 939 drivers/mmc/core/core.c struct mmc_host *host = card->host; host 943 drivers/mmc/core/core.c if (!host->ops->execute_tuning) host 946 drivers/mmc/core/core.c if (host->cqe_on) host 947 drivers/mmc/core/core.c host->cqe_ops->cqe_off(host); host 954 drivers/mmc/core/core.c err = host->ops->execute_tuning(host, opcode); host 958 drivers/mmc/core/core.c mmc_hostname(host), err); host 960 drivers/mmc/core/core.c mmc_retune_enable(host); host 968 drivers/mmc/core/core.c void mmc_set_bus_mode(struct mmc_host *host, unsigned int mode) host 970 drivers/mmc/core/core.c host->ios.bus_mode = mode; host 971 drivers/mmc/core/core.c mmc_set_ios(host); host 977 drivers/mmc/core/core.c void mmc_set_bus_width(struct mmc_host *host, unsigned int width) host 979 drivers/mmc/core/core.c host->ios.bus_width = width; host 980 drivers/mmc/core/core.c mmc_set_ios(host); host 986 drivers/mmc/core/core.c void mmc_set_initial_state(struct mmc_host *host) host 988 drivers/mmc/core/core.c if (host->cqe_on) host 989 drivers/mmc/core/core.c host->cqe_ops->cqe_off(host); host 991 drivers/mmc/core/core.c mmc_retune_disable(host); host 993 drivers/mmc/core/core.c if (mmc_host_is_spi(host)) host 994 drivers/mmc/core/core.c host->ios.chip_select = MMC_CS_HIGH; host 996 drivers/mmc/core/core.c host->ios.chip_select = MMC_CS_DONTCARE; host 997 drivers/mmc/core/core.c host->ios.bus_mode = MMC_BUSMODE_PUSHPULL; host 998 drivers/mmc/core/core.c host->ios.bus_width = MMC_BUS_WIDTH_1; host 999 drivers/mmc/core/core.c host->ios.timing = MMC_TIMING_LEGACY; host 1000 drivers/mmc/core/core.c host->ios.drv_type = 0; host 1001 drivers/mmc/core/core.c host->ios.enhanced_strobe = false; host 1007 drivers/mmc/core/core.c if ((host->caps2 & MMC_CAP2_HS400_ES) && host 1008 drivers/mmc/core/core.c host->ops->hs400_enhanced_strobe) host 1009 drivers/mmc/core/core.c host->ops->hs400_enhanced_strobe(host, &host->ios); host 1011 drivers/mmc/core/core.c mmc_set_ios(host); host 1099 drivers/mmc/core/core.c struct device_node *mmc_of_find_child_device(struct mmc_host *host, host 1104 drivers/mmc/core/core.c if (!host->parent || !host->parent->of_node) host 1107 drivers/mmc/core/core.c for_each_child_of_node(host->parent->of_node, node) { host 1119 drivers/mmc/core/core.c u32 mmc_select_voltage(struct mmc_host *host, u32 ocr) host 1128 drivers/mmc/core/core.c dev_warn(mmc_dev(host), host 1133 drivers/mmc/core/core.c ocr &= host->ocr_avail; host 1135 drivers/mmc/core/core.c dev_warn(mmc_dev(host), "no support for card's volts\n"); host 1139 drivers/mmc/core/core.c if (host->caps2 & MMC_CAP2_FULL_PWR_CYCLE) { host 1142 drivers/mmc/core/core.c mmc_power_cycle(host, ocr); host 1146 drivers/mmc/core/core.c if (bit != host->ios.vdd) host 1147 drivers/mmc/core/core.c dev_warn(mmc_dev(host), "exceeding card's volts\n"); host 1153 drivers/mmc/core/core.c int mmc_set_signal_voltage(struct mmc_host *host, int signal_voltage) host 1156 drivers/mmc/core/core.c int old_signal_voltage = host->ios.signal_voltage; host 1158 drivers/mmc/core/core.c host->ios.signal_voltage = signal_voltage; host 1159 drivers/mmc/core/core.c if (host->ops->start_signal_voltage_switch) host 1160 drivers/mmc/core/core.c err = host->ops->start_signal_voltage_switch(host, &host->ios); host 1163 drivers/mmc/core/core.c host->ios.signal_voltage = old_signal_voltage; host 1169 drivers/mmc/core/core.c void mmc_set_initial_signal_voltage(struct mmc_host *host) host 1172 drivers/mmc/core/core.c if (!mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_330)) host 1173 drivers/mmc/core/core.c dev_dbg(mmc_dev(host), "Initial signal voltage of 3.3v\n"); host 1174 drivers/mmc/core/core.c else if (!mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180)) host 1175 drivers/mmc/core/core.c dev_dbg(mmc_dev(host), "Initial signal voltage of 1.8v\n"); host 1176 drivers/mmc/core/core.c else if (!mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_120)) host 1177 drivers/mmc/core/core.c dev_dbg(mmc_dev(host), "Initial signal voltage of 1.2v\n"); host 1180 drivers/mmc/core/core.c int mmc_host_set_uhs_voltage(struct mmc_host *host) host 1188 drivers/mmc/core/core.c clock = host->ios.clock; host 1189 drivers/mmc/core/core.c host->ios.clock = 0; host 1190 drivers/mmc/core/core.c mmc_set_ios(host); host 1192 drivers/mmc/core/core.c if (mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180)) host 1197 drivers/mmc/core/core.c host->ios.clock = clock; host 1198 drivers/mmc/core/core.c mmc_set_ios(host); host 1203 drivers/mmc/core/core.c int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr) host 1212 drivers/mmc/core/core.c if (!host->ops->start_signal_voltage_switch) host 1214 drivers/mmc/core/core.c if (!host->ops->card_busy) host 1216 drivers/mmc/core/core.c mmc_hostname(host)); host 1222 drivers/mmc/core/core.c err = mmc_wait_for_cmd(host, &cmd, 0); host 1226 drivers/mmc/core/core.c if (!mmc_host_is_spi(host) && (cmd.resp[0] & R1_ERROR)) host 1234 drivers/mmc/core/core.c if (host->ops->card_busy && !host->ops->card_busy(host)) { host 1239 drivers/mmc/core/core.c if (mmc_host_set_uhs_voltage(host)) { host 1255 drivers/mmc/core/core.c if (host->ops->card_busy && host->ops->card_busy(host)) host 1261 drivers/mmc/core/core.c "power cycling card\n", mmc_hostname(host)); host 1262 drivers/mmc/core/core.c mmc_power_cycle(host, ocr); host 1271 drivers/mmc/core/core.c void mmc_set_timing(struct mmc_host *host, unsigned int timing) host 1273 drivers/mmc/core/core.c host->ios.timing = timing; host 1274 drivers/mmc/core/core.c mmc_set_ios(host); host 1280 drivers/mmc/core/core.c void mmc_set_driver_type(struct mmc_host *host, unsigned int drv_type) host 1282 drivers/mmc/core/core.c host->ios.drv_type = drv_type; host 1283 drivers/mmc/core/core.c mmc_set_ios(host); host 1289 drivers/mmc/core/core.c struct mmc_host *host = card->host; host 1294 drivers/mmc/core/core.c if (!host->ops->select_drive_strength) host 1298 drivers/mmc/core/core.c if (host->caps & MMC_CAP_DRIVER_TYPE_A) host 1301 drivers/mmc/core/core.c if (host->caps & MMC_CAP_DRIVER_TYPE_C) host 1304 drivers/mmc/core/core.c if (host->caps & MMC_CAP_DRIVER_TYPE_D) host 1313 drivers/mmc/core/core.c return host->ops->select_drive_strength(card, max_dtr, host 1330 drivers/mmc/core/core.c void mmc_power_up(struct mmc_host *host, u32 ocr) host 1332 drivers/mmc/core/core.c if (host->ios.power_mode == MMC_POWER_ON) host 1335 drivers/mmc/core/core.c mmc_pwrseq_pre_power_on(host); host 1337 drivers/mmc/core/core.c host->ios.vdd = fls(ocr) - 1; host 1338 drivers/mmc/core/core.c host->ios.power_mode = MMC_POWER_UP; host 1340 drivers/mmc/core/core.c mmc_set_initial_state(host); host 1342 drivers/mmc/core/core.c mmc_set_initial_signal_voltage(host); host 1348 drivers/mmc/core/core.c mmc_delay(host->ios.power_delay_ms); host 1350 drivers/mmc/core/core.c mmc_pwrseq_post_power_on(host); host 1352 drivers/mmc/core/core.c host->ios.clock = host->f_init; host 1354 drivers/mmc/core/core.c host->ios.power_mode = MMC_POWER_ON; host 1355 drivers/mmc/core/core.c mmc_set_ios(host); host 1361 drivers/mmc/core/core.c mmc_delay(host->ios.power_delay_ms); host 1364 drivers/mmc/core/core.c void mmc_power_off(struct mmc_host *host) host 1366 drivers/mmc/core/core.c if (host->ios.power_mode == MMC_POWER_OFF) host 1369 drivers/mmc/core/core.c mmc_pwrseq_power_off(host); host 1371 drivers/mmc/core/core.c host->ios.clock = 0; host 1372 drivers/mmc/core/core.c host->ios.vdd = 0; host 1374 drivers/mmc/core/core.c host->ios.power_mode = MMC_POWER_OFF; host 1376 drivers/mmc/core/core.c mmc_set_initial_state(host); host 1386 drivers/mmc/core/core.c void mmc_power_cycle(struct mmc_host *host, u32 ocr) host 1388 drivers/mmc/core/core.c mmc_power_off(host); host 1391 drivers/mmc/core/core.c mmc_power_up(host, ocr); host 1397 drivers/mmc/core/core.c static void __mmc_release_bus(struct mmc_host *host) host 1399 drivers/mmc/core/core.c WARN_ON(!host->bus_dead); host 1401 drivers/mmc/core/core.c host->bus_ops = NULL; host 1407 drivers/mmc/core/core.c static inline void mmc_bus_get(struct mmc_host *host) host 1411 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 1412 drivers/mmc/core/core.c host->bus_refs++; host 1413 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 1420 drivers/mmc/core/core.c static inline void mmc_bus_put(struct mmc_host *host) host 1424 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 1425 drivers/mmc/core/core.c host->bus_refs--; host 1426 drivers/mmc/core/core.c if ((host->bus_refs == 0) && host->bus_ops) host 1427 drivers/mmc/core/core.c __mmc_release_bus(host); host 1428 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 1435 drivers/mmc/core/core.c void mmc_attach_bus(struct mmc_host *host, const struct mmc_bus_ops *ops) host 1439 drivers/mmc/core/core.c WARN_ON(!host->claimed); host 1441 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 1443 drivers/mmc/core/core.c WARN_ON(host->bus_ops); host 1444 drivers/mmc/core/core.c WARN_ON(host->bus_refs); host 1446 drivers/mmc/core/core.c host->bus_ops = ops; host 1447 drivers/mmc/core/core.c host->bus_refs = 1; host 1448 drivers/mmc/core/core.c host->bus_dead = 0; host 1450 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 1456 drivers/mmc/core/core.c void mmc_detach_bus(struct mmc_host *host) host 1460 drivers/mmc/core/core.c WARN_ON(!host->claimed); host 1461 drivers/mmc/core/core.c WARN_ON(!host->bus_ops); host 1463 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 1465 drivers/mmc/core/core.c host->bus_dead = 1; host 1467 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 1469 drivers/mmc/core/core.c mmc_bus_put(host); host 1472 drivers/mmc/core/core.c void _mmc_detect_change(struct mmc_host *host, unsigned long delay, bool cd_irq) host 1478 drivers/mmc/core/core.c if (cd_irq && !(host->caps & MMC_CAP_NEEDS_POLL) && host 1479 drivers/mmc/core/core.c device_can_wakeup(mmc_dev(host))) host 1480 drivers/mmc/core/core.c pm_wakeup_event(mmc_dev(host), 5000); host 1482 drivers/mmc/core/core.c host->detect_change = 1; host 1483 drivers/mmc/core/core.c mmc_schedule_delayed_work(&host->detect, delay); host 1496 drivers/mmc/core/core.c void mmc_detect_change(struct mmc_host *host, unsigned long delay) host 1498 drivers/mmc/core/core.c _mmc_detect_change(host, delay, true); host 1582 drivers/mmc/core/core.c (card->host->ios.clock / 1000); host 1608 drivers/mmc/core/core.c if (mmc_host_is_spi(card->host) && erase_timeout < 1000) host 1665 drivers/mmc/core/core.c mmc_retune_hold(card->host); host 1703 drivers/mmc/core/core.c err = mmc_wait_for_cmd(card->host, &cmd, 0); host 1718 drivers/mmc/core/core.c err = mmc_wait_for_cmd(card->host, &cmd, 0); host 1738 drivers/mmc/core/core.c if (!(card->host->caps & MMC_CAP_NEED_RSP_BUSY) && host 1739 drivers/mmc/core/core.c card->host->max_busy_timeout && host 1740 drivers/mmc/core/core.c busy_timeout > card->host->max_busy_timeout) { host 1748 drivers/mmc/core/core.c err = mmc_wait_for_cmd(card->host, &cmd, 0); host 1756 drivers/mmc/core/core.c if (mmc_host_is_spi(card->host)) host 1763 drivers/mmc/core/core.c if ((card->host->caps & MMC_CAP_WAIT_WHILE_BUSY) && use_r1b_resp) host 1773 drivers/mmc/core/core.c err = mmc_wait_for_cmd(card->host, &cmd, 0); host 1786 drivers/mmc/core/core.c mmc_hostname(card->host), __func__); host 1800 drivers/mmc/core/core.c mmc_retune_release(card->host); host 1867 drivers/mmc/core/core.c if (!(card->host->caps & MMC_CAP_ERASE) || host 1924 drivers/mmc/core/core.c if ((card->host->caps & MMC_CAP_ERASE) && host 1985 drivers/mmc/core/core.c struct mmc_host *host = card->host; host 1988 drivers/mmc/core/core.c unsigned int max_busy_timeout = host->max_busy_timeout ? host 1989 drivers/mmc/core/core.c host->max_busy_timeout : MMC_ERASE_TIMEOUT_MS; host 2062 drivers/mmc/core/core.c struct mmc_host *host = card->host; host 2082 drivers/mmc/core/core.c mmc_hostname(host), max_discard, host->max_busy_timeout ? host 2083 drivers/mmc/core/core.c host->max_busy_timeout : MMC_ERASE_TIMEOUT_MS); host 2105 drivers/mmc/core/core.c return mmc_wait_for_cmd(card->host, &cmd, 5); host 2109 drivers/mmc/core/core.c static void mmc_hw_reset_for_init(struct mmc_host *host) host 2111 drivers/mmc/core/core.c mmc_pwrseq_reset(host); host 2113 drivers/mmc/core/core.c if (!(host->caps & MMC_CAP_HW_RESET) || !host->ops->hw_reset) host 2115 drivers/mmc/core/core.c host->ops->hw_reset(host); host 2118 drivers/mmc/core/core.c int mmc_hw_reset(struct mmc_host *host) host 2122 drivers/mmc/core/core.c if (!host->card) host 2125 drivers/mmc/core/core.c mmc_bus_get(host); host 2126 drivers/mmc/core/core.c if (!host->bus_ops || host->bus_dead || !host->bus_ops->hw_reset) { host 2127 drivers/mmc/core/core.c mmc_bus_put(host); host 2131 drivers/mmc/core/core.c ret = host->bus_ops->hw_reset(host); host 2132 drivers/mmc/core/core.c mmc_bus_put(host); host 2136 drivers/mmc/core/core.c mmc_hostname(host), ret); host 2142 drivers/mmc/core/core.c int mmc_sw_reset(struct mmc_host *host) host 2146 drivers/mmc/core/core.c if (!host->card) host 2149 drivers/mmc/core/core.c mmc_bus_get(host); host 2150 drivers/mmc/core/core.c if (!host->bus_ops || host->bus_dead || !host->bus_ops->sw_reset) { host 2151 drivers/mmc/core/core.c mmc_bus_put(host); host 2155 drivers/mmc/core/core.c ret = host->bus_ops->sw_reset(host); host 2156 drivers/mmc/core/core.c mmc_bus_put(host); host 2160 drivers/mmc/core/core.c mmc_hostname(host), ret); host 2166 drivers/mmc/core/core.c static int mmc_rescan_try_freq(struct mmc_host *host, unsigned freq) host 2168 drivers/mmc/core/core.c host->f_init = freq; host 2171 drivers/mmc/core/core.c mmc_hostname(host), __func__, host->f_init); host 2173 drivers/mmc/core/core.c mmc_power_up(host, host->ocr_avail); host 2179 drivers/mmc/core/core.c mmc_hw_reset_for_init(host); host 2187 drivers/mmc/core/core.c if (!(host->caps2 & MMC_CAP2_NO_SDIO)) host 2188 drivers/mmc/core/core.c sdio_reset(host); host 2190 drivers/mmc/core/core.c mmc_go_idle(host); host 2192 drivers/mmc/core/core.c if (!(host->caps2 & MMC_CAP2_NO_SD)) host 2193 drivers/mmc/core/core.c mmc_send_if_cond(host, host->ocr_avail); host 2196 drivers/mmc/core/core.c if (!(host->caps2 & MMC_CAP2_NO_SDIO)) host 2197 drivers/mmc/core/core.c if (!mmc_attach_sdio(host)) host 2200 drivers/mmc/core/core.c if (!(host->caps2 & MMC_CAP2_NO_SD)) host 2201 drivers/mmc/core/core.c if (!mmc_attach_sd(host)) host 2204 drivers/mmc/core/core.c if (!(host->caps2 & MMC_CAP2_NO_MMC)) host 2205 drivers/mmc/core/core.c if (!mmc_attach_mmc(host)) host 2208 drivers/mmc/core/core.c mmc_power_off(host); host 2212 drivers/mmc/core/core.c int _mmc_detect_card_removed(struct mmc_host *host) host 2216 drivers/mmc/core/core.c if (!host->card || mmc_card_removed(host->card)) host 2219 drivers/mmc/core/core.c ret = host->bus_ops->alive(host); host 2228 drivers/mmc/core/core.c if (!ret && host->ops->get_cd && !host->ops->get_cd(host)) { host 2229 drivers/mmc/core/core.c mmc_detect_change(host, msecs_to_jiffies(200)); host 2230 drivers/mmc/core/core.c pr_debug("%s: card removed too slowly\n", mmc_hostname(host)); host 2234 drivers/mmc/core/core.c mmc_card_set_removed(host->card); host 2235 drivers/mmc/core/core.c pr_debug("%s: card remove detected\n", mmc_hostname(host)); host 2241 drivers/mmc/core/core.c int mmc_detect_card_removed(struct mmc_host *host) host 2243 drivers/mmc/core/core.c struct mmc_card *card = host->card; host 2246 drivers/mmc/core/core.c WARN_ON(!host->claimed); host 2251 drivers/mmc/core/core.c if (!mmc_card_is_removable(host)) host 2259 drivers/mmc/core/core.c if (!host->detect_change && !(host->caps & MMC_CAP_NEEDS_POLL)) host 2262 drivers/mmc/core/core.c host->detect_change = 0; host 2264 drivers/mmc/core/core.c ret = _mmc_detect_card_removed(host); host 2265 drivers/mmc/core/core.c if (ret && (host->caps & MMC_CAP_NEEDS_POLL)) { host 2270 drivers/mmc/core/core.c cancel_delayed_work(&host->detect); host 2271 drivers/mmc/core/core.c _mmc_detect_change(host, 0, false); host 2281 drivers/mmc/core/core.c struct mmc_host *host = host 2285 drivers/mmc/core/core.c if (host->rescan_disable) host 2289 drivers/mmc/core/core.c if (!mmc_card_is_removable(host) && host->rescan_entered) host 2291 drivers/mmc/core/core.c host->rescan_entered = 1; host 2293 drivers/mmc/core/core.c if (host->trigger_card_event && host->ops->card_event) { host 2294 drivers/mmc/core/core.c mmc_claim_host(host); host 2295 drivers/mmc/core/core.c host->ops->card_event(host); host 2296 drivers/mmc/core/core.c mmc_release_host(host); host 2297 drivers/mmc/core/core.c host->trigger_card_event = false; host 2300 drivers/mmc/core/core.c mmc_bus_get(host); host 2303 drivers/mmc/core/core.c if (host->bus_ops && !host->bus_dead) host 2304 drivers/mmc/core/core.c host->bus_ops->detect(host); host 2306 drivers/mmc/core/core.c host->detect_change = 0; host 2312 drivers/mmc/core/core.c mmc_bus_put(host); host 2313 drivers/mmc/core/core.c mmc_bus_get(host); host 2316 drivers/mmc/core/core.c if (host->bus_ops != NULL) { host 2317 drivers/mmc/core/core.c mmc_bus_put(host); host 2325 drivers/mmc/core/core.c mmc_bus_put(host); host 2327 drivers/mmc/core/core.c mmc_claim_host(host); host 2328 drivers/mmc/core/core.c if (mmc_card_is_removable(host) && host->ops->get_cd && host 2329 drivers/mmc/core/core.c host->ops->get_cd(host) == 0) { host 2330 drivers/mmc/core/core.c mmc_power_off(host); host 2331 drivers/mmc/core/core.c mmc_release_host(host); host 2336 drivers/mmc/core/core.c if (!mmc_rescan_try_freq(host, max(freqs[i], host->f_min))) host 2338 drivers/mmc/core/core.c if (freqs[i] <= host->f_min) host 2341 drivers/mmc/core/core.c mmc_release_host(host); host 2344 drivers/mmc/core/core.c if (host->caps & MMC_CAP_NEEDS_POLL) host 2345 drivers/mmc/core/core.c mmc_schedule_delayed_work(&host->detect, HZ); host 2348 drivers/mmc/core/core.c void mmc_start_host(struct mmc_host *host) host 2350 drivers/mmc/core/core.c host->f_init = max(freqs[0], host->f_min); host 2351 drivers/mmc/core/core.c host->rescan_disable = 0; host 2352 drivers/mmc/core/core.c host->ios.power_mode = MMC_POWER_UNDEFINED; host 2354 drivers/mmc/core/core.c if (!(host->caps2 & MMC_CAP2_NO_PRESCAN_POWERUP)) { host 2355 drivers/mmc/core/core.c mmc_claim_host(host); host 2356 drivers/mmc/core/core.c mmc_power_up(host, host->ocr_avail); host 2357 drivers/mmc/core/core.c mmc_release_host(host); host 2360 drivers/mmc/core/core.c mmc_gpiod_request_cd_irq(host); host 2361 drivers/mmc/core/core.c _mmc_detect_change(host, 0, false); host 2364 drivers/mmc/core/core.c void mmc_stop_host(struct mmc_host *host) host 2366 drivers/mmc/core/core.c if (host->slot.cd_irq >= 0) { host 2367 drivers/mmc/core/core.c mmc_gpio_set_cd_wake(host, false); host 2368 drivers/mmc/core/core.c disable_irq(host->slot.cd_irq); host 2371 drivers/mmc/core/core.c host->rescan_disable = 1; host 2372 drivers/mmc/core/core.c cancel_delayed_work_sync(&host->detect); host 2375 drivers/mmc/core/core.c host->pm_flags = 0; host 2377 drivers/mmc/core/core.c mmc_bus_get(host); host 2378 drivers/mmc/core/core.c if (host->bus_ops && !host->bus_dead) { host 2380 drivers/mmc/core/core.c host->bus_ops->remove(host); host 2381 drivers/mmc/core/core.c mmc_claim_host(host); host 2382 drivers/mmc/core/core.c mmc_detach_bus(host); host 2383 drivers/mmc/core/core.c mmc_power_off(host); host 2384 drivers/mmc/core/core.c mmc_release_host(host); host 2385 drivers/mmc/core/core.c mmc_bus_put(host); host 2388 drivers/mmc/core/core.c mmc_bus_put(host); host 2390 drivers/mmc/core/core.c mmc_claim_host(host); host 2391 drivers/mmc/core/core.c mmc_power_off(host); host 2392 drivers/mmc/core/core.c mmc_release_host(host); host 2403 drivers/mmc/core/core.c struct mmc_host *host = container_of( host 2412 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 2413 drivers/mmc/core/core.c host->rescan_disable = 1; host 2414 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 2415 drivers/mmc/core/core.c cancel_delayed_work_sync(&host->detect); host 2417 drivers/mmc/core/core.c if (!host->bus_ops) host 2421 drivers/mmc/core/core.c if (host->bus_ops->pre_suspend) host 2422 drivers/mmc/core/core.c err = host->bus_ops->pre_suspend(host); host 2426 drivers/mmc/core/core.c if (!mmc_card_is_removable(host)) { host 2427 drivers/mmc/core/core.c dev_warn(mmc_dev(host), host 2435 drivers/mmc/core/core.c host->bus_ops->remove(host); host 2436 drivers/mmc/core/core.c mmc_claim_host(host); host 2437 drivers/mmc/core/core.c mmc_detach_bus(host); host 2438 drivers/mmc/core/core.c mmc_power_off(host); host 2439 drivers/mmc/core/core.c mmc_release_host(host); host 2440 drivers/mmc/core/core.c host->pm_flags = 0; host 2447 drivers/mmc/core/core.c spin_lock_irqsave(&host->lock, flags); host 2448 drivers/mmc/core/core.c host->rescan_disable = 0; host 2449 drivers/mmc/core/core.c spin_unlock_irqrestore(&host->lock, flags); host 2450 drivers/mmc/core/core.c _mmc_detect_change(host, 0, false); host 2457 drivers/mmc/core/core.c void mmc_register_pm_notifier(struct mmc_host *host) host 2459 drivers/mmc/core/core.c host->pm_notify.notifier_call = mmc_pm_notify; host 2460 drivers/mmc/core/core.c register_pm_notifier(&host->pm_notify); host 2463 drivers/mmc/core/core.c void mmc_unregister_pm_notifier(struct mmc_host *host) host 2465 drivers/mmc/core/core.c unregister_pm_notifier(&host->pm_notify); host 34 drivers/mmc/core/core.h void mmc_attach_bus(struct mmc_host *host, const struct mmc_bus_ops *ops); host 35 drivers/mmc/core/core.h void mmc_detach_bus(struct mmc_host *host); host 37 drivers/mmc/core/core.h struct device_node *mmc_of_find_child_device(struct mmc_host *host, host 42 drivers/mmc/core/core.h void mmc_set_chip_select(struct mmc_host *host, int mode); host 43 drivers/mmc/core/core.h void mmc_set_clock(struct mmc_host *host, unsigned int hz); host 44 drivers/mmc/core/core.h void mmc_set_bus_mode(struct mmc_host *host, unsigned int mode); host 45 drivers/mmc/core/core.h void mmc_set_bus_width(struct mmc_host *host, unsigned int width); host 46 drivers/mmc/core/core.h u32 mmc_select_voltage(struct mmc_host *host, u32 ocr); host 47 drivers/mmc/core/core.h int mmc_set_uhs_voltage(struct mmc_host *host, u32 ocr); host 48 drivers/mmc/core/core.h int mmc_host_set_uhs_voltage(struct mmc_host *host); host 49 drivers/mmc/core/core.h int mmc_set_signal_voltage(struct mmc_host *host, int signal_voltage); host 50 drivers/mmc/core/core.h void mmc_set_initial_signal_voltage(struct mmc_host *host); host 51 drivers/mmc/core/core.h void mmc_set_timing(struct mmc_host *host, unsigned int timing); host 52 drivers/mmc/core/core.h void mmc_set_driver_type(struct mmc_host *host, unsigned int drv_type); host 55 drivers/mmc/core/core.h void mmc_power_up(struct mmc_host *host, u32 ocr); host 56 drivers/mmc/core/core.h void mmc_power_off(struct mmc_host *host); host 57 drivers/mmc/core/core.h void mmc_power_cycle(struct mmc_host *host, u32 ocr); host 58 drivers/mmc/core/core.h void mmc_set_initial_state(struct mmc_host *host); host 70 drivers/mmc/core/core.h void mmc_start_host(struct mmc_host *host); host 71 drivers/mmc/core/core.h void mmc_stop_host(struct mmc_host *host); host 73 drivers/mmc/core/core.h void _mmc_detect_change(struct mmc_host *host, unsigned long delay, host 75 drivers/mmc/core/core.h int _mmc_detect_card_removed(struct mmc_host *host); host 76 drivers/mmc/core/core.h int mmc_detect_card_removed(struct mmc_host *host); host 78 drivers/mmc/core/core.h int mmc_attach_mmc(struct mmc_host *host); host 79 drivers/mmc/core/core.h int mmc_attach_sd(struct mmc_host *host); host 80 drivers/mmc/core/core.h int mmc_attach_sdio(struct mmc_host *host); host 86 drivers/mmc/core/core.h void mmc_add_host_debugfs(struct mmc_host *host); host 87 drivers/mmc/core/core.h void mmc_remove_host_debugfs(struct mmc_host *host); host 97 drivers/mmc/core/core.h void mmc_register_pm_notifier(struct mmc_host *host); host 98 drivers/mmc/core/core.h void mmc_unregister_pm_notifier(struct mmc_host *host); host 100 drivers/mmc/core/core.h static inline void mmc_register_pm_notifier(struct mmc_host *host) { } host 101 drivers/mmc/core/core.h static inline void mmc_unregister_pm_notifier(struct mmc_host *host) { } host 104 drivers/mmc/core/core.h void mmc_wait_for_req_done(struct mmc_host *host, struct mmc_request *mrq); host 105 drivers/mmc/core/core.h bool mmc_is_req_done(struct mmc_host *host, struct mmc_request *mrq); host 107 drivers/mmc/core/core.h int mmc_start_request(struct mmc_host *host, struct mmc_request *mrq); host 122 drivers/mmc/core/core.h int __mmc_claim_host(struct mmc_host *host, struct mmc_ctx *ctx, host 124 drivers/mmc/core/core.h void mmc_release_host(struct mmc_host *host); host 134 drivers/mmc/core/core.h static inline void mmc_claim_host(struct mmc_host *host) host 136 drivers/mmc/core/core.h __mmc_claim_host(host, NULL, NULL); host 139 drivers/mmc/core/core.h int mmc_cqe_start_req(struct mmc_host *host, struct mmc_request *mrq); host 140 drivers/mmc/core/core.h void mmc_cqe_post_req(struct mmc_host *host, struct mmc_request *mrq); host 141 drivers/mmc/core/core.h int mmc_cqe_recovery(struct mmc_host *host); host 152 drivers/mmc/core/core.h static inline void mmc_pre_req(struct mmc_host *host, struct mmc_request *mrq) host 154 drivers/mmc/core/core.h if (host->ops->pre_req) host 155 drivers/mmc/core/core.h host->ops->pre_req(host, mrq); host 167 drivers/mmc/core/core.h static inline void mmc_post_req(struct mmc_host *host, struct mmc_request *mrq, host 170 drivers/mmc/core/core.h if (host->ops->post_req) host 171 drivers/mmc/core/core.h host->ops->post_req(host, mrq, err); host 54 drivers/mmc/core/debugfs.c struct mmc_host *host = s->private; host 55 drivers/mmc/core/debugfs.c struct mmc_ios *ios = &host->ios; host 59 drivers/mmc/core/debugfs.c if (host->actual_clock) host 60 drivers/mmc/core/debugfs.c seq_printf(s, "actual clock:\t%u Hz\n", host->actual_clock); host 150 drivers/mmc/core/debugfs.c str = mmc_card_hs400es(host->card) ? host 200 drivers/mmc/core/debugfs.c struct mmc_host *host = data; host 202 drivers/mmc/core/debugfs.c *val = host->ios.clock; host 209 drivers/mmc/core/debugfs.c struct mmc_host *host = data; host 212 drivers/mmc/core/debugfs.c if (val != 0 && (val > host->f_max || val < host->f_min)) host 215 drivers/mmc/core/debugfs.c mmc_claim_host(host); host 216 drivers/mmc/core/debugfs.c mmc_set_clock(host, (unsigned int) val); host 217 drivers/mmc/core/debugfs.c mmc_release_host(host); host 225 drivers/mmc/core/debugfs.c void mmc_add_host_debugfs(struct mmc_host *host) host 229 drivers/mmc/core/debugfs.c root = debugfs_create_dir(mmc_hostname(host), NULL); host 230 drivers/mmc/core/debugfs.c host->debugfs_root = root; host 232 drivers/mmc/core/debugfs.c debugfs_create_file("ios", S_IRUSR, root, host, &mmc_ios_fops); host 233 drivers/mmc/core/debugfs.c debugfs_create_x32("caps", S_IRUSR, root, &host->caps); host 234 drivers/mmc/core/debugfs.c debugfs_create_x32("caps2", S_IRUSR, root, &host->caps2); host 235 drivers/mmc/core/debugfs.c debugfs_create_file("clock", S_IRUSR | S_IWUSR, root, host, host 241 drivers/mmc/core/debugfs.c host->fail_mmc_request = fail_default_attr; host 243 drivers/mmc/core/debugfs.c &host->fail_mmc_request); host 247 drivers/mmc/core/debugfs.c void mmc_remove_host_debugfs(struct mmc_host *host) host 249 drivers/mmc/core/debugfs.c debugfs_remove_recursive(host->debugfs_root); host 254 drivers/mmc/core/debugfs.c struct mmc_host *host = card->host; host 257 drivers/mmc/core/debugfs.c if (!host->debugfs_root) host 260 drivers/mmc/core/debugfs.c root = debugfs_create_dir(mmc_card_id(card), host->debugfs_root); host 38 drivers/mmc/core/host.c struct mmc_host *host = cls_dev_to_mmc_host(dev); host 39 drivers/mmc/core/host.c ida_simple_remove(&mmc_host_ida, host->index); host 40 drivers/mmc/core/host.c kfree(host); host 58 drivers/mmc/core/host.c void mmc_retune_enable(struct mmc_host *host) host 60 drivers/mmc/core/host.c host->can_retune = 1; host 61 drivers/mmc/core/host.c if (host->retune_period) host 62 drivers/mmc/core/host.c mod_timer(&host->retune_timer, host 63 drivers/mmc/core/host.c jiffies + host->retune_period * HZ); host 70 drivers/mmc/core/host.c void mmc_retune_pause(struct mmc_host *host) host 72 drivers/mmc/core/host.c if (!host->retune_paused) { host 73 drivers/mmc/core/host.c host->retune_paused = 1; host 74 drivers/mmc/core/host.c mmc_retune_needed(host); host 75 drivers/mmc/core/host.c mmc_retune_hold(host); host 80 drivers/mmc/core/host.c void mmc_retune_unpause(struct mmc_host *host) host 82 drivers/mmc/core/host.c if (host->retune_paused) { host 83 drivers/mmc/core/host.c host->retune_paused = 0; host 84 drivers/mmc/core/host.c mmc_retune_release(host); host 89 drivers/mmc/core/host.c void mmc_retune_disable(struct mmc_host *host) host 91 drivers/mmc/core/host.c mmc_retune_unpause(host); host 92 drivers/mmc/core/host.c host->can_retune = 0; host 93 drivers/mmc/core/host.c del_timer_sync(&host->retune_timer); host 94 drivers/mmc/core/host.c host->retune_now = 0; host 95 drivers/mmc/core/host.c host->need_retune = 0; host 98 drivers/mmc/core/host.c void mmc_retune_timer_stop(struct mmc_host *host) host 100 drivers/mmc/core/host.c del_timer_sync(&host->retune_timer); host 104 drivers/mmc/core/host.c void mmc_retune_hold(struct mmc_host *host) host 106 drivers/mmc/core/host.c if (!host->hold_retune) host 107 drivers/mmc/core/host.c host->retune_now = 1; host 108 drivers/mmc/core/host.c host->hold_retune += 1; host 111 drivers/mmc/core/host.c void mmc_retune_release(struct mmc_host *host) host 113 drivers/mmc/core/host.c if (host->hold_retune) host 114 drivers/mmc/core/host.c host->hold_retune -= 1; host 120 drivers/mmc/core/host.c int mmc_retune(struct mmc_host *host) host 125 drivers/mmc/core/host.c if (host->retune_now) host 126 drivers/mmc/core/host.c host->retune_now = 0; host 130 drivers/mmc/core/host.c if (!host->need_retune || host->doing_retune || !host->card) host 133 drivers/mmc/core/host.c host->need_retune = 0; host 135 drivers/mmc/core/host.c host->doing_retune = 1; host 137 drivers/mmc/core/host.c if (host->ios.timing == MMC_TIMING_MMC_HS400) { host 138 drivers/mmc/core/host.c err = mmc_hs400_to_hs200(host->card); host 145 drivers/mmc/core/host.c err = mmc_execute_tuning(host->card); host 150 drivers/mmc/core/host.c err = mmc_hs200_to_hs400(host->card); host 152 drivers/mmc/core/host.c host->doing_retune = 0; host 159 drivers/mmc/core/host.c struct mmc_host *host = from_timer(host, t, retune_timer); host 161 drivers/mmc/core/host.c mmc_retune_needed(host); host 173 drivers/mmc/core/host.c int mmc_of_parse(struct mmc_host *host) host 175 drivers/mmc/core/host.c struct device *dev = host->parent; host 185 drivers/mmc/core/host.c dev_dbg(host->parent, host 192 drivers/mmc/core/host.c host->caps |= MMC_CAP_8_BIT_DATA; host 195 drivers/mmc/core/host.c host->caps |= MMC_CAP_4_BIT_DATA; host 200 drivers/mmc/core/host.c dev_err(host->parent, host 206 drivers/mmc/core/host.c device_property_read_u32(dev, "max-frequency", &host->f_max); host 222 drivers/mmc/core/host.c host->caps |= MMC_CAP_NONREMOVABLE; host 231 drivers/mmc/core/host.c host->caps |= MMC_CAP_NEEDS_POLL; host 233 drivers/mmc/core/host.c ret = mmc_gpiod_request_cd(host, "cd", 0, false, host 237 drivers/mmc/core/host.c dev_info(host->parent, "Got CD GPIO\n"); host 253 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH; host 259 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH; host 261 drivers/mmc/core/host.c ret = mmc_gpiod_request_ro(host, "wp", 0, 0, NULL); host 263 drivers/mmc/core/host.c dev_info(host->parent, "Got WP GPIO\n"); host 268 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_NO_WRITE_PROTECT; host 271 drivers/mmc/core/host.c host->caps |= MMC_CAP_SD_HIGHSPEED; host 273 drivers/mmc/core/host.c host->caps |= MMC_CAP_MMC_HIGHSPEED; host 275 drivers/mmc/core/host.c host->caps |= MMC_CAP_UHS_SDR12; host 277 drivers/mmc/core/host.c host->caps |= MMC_CAP_UHS_SDR25; host 279 drivers/mmc/core/host.c host->caps |= MMC_CAP_UHS_SDR50; host 281 drivers/mmc/core/host.c host->caps |= MMC_CAP_UHS_SDR104; host 283 drivers/mmc/core/host.c host->caps |= MMC_CAP_UHS_DDR50; host 285 drivers/mmc/core/host.c host->caps |= MMC_CAP_POWER_OFF_CARD; host 287 drivers/mmc/core/host.c host->caps |= MMC_CAP_HW_RESET; host 289 drivers/mmc/core/host.c host->caps |= MMC_CAP_SDIO_IRQ; host 291 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_FULL_PWR_CYCLE; host 293 drivers/mmc/core/host.c host->pm_caps |= MMC_PM_KEEP_POWER; host 296 drivers/mmc/core/host.c host->pm_caps |= MMC_PM_WAKE_SDIO_IRQ; host 298 drivers/mmc/core/host.c host->caps |= MMC_CAP_3_3V_DDR; host 300 drivers/mmc/core/host.c host->caps |= MMC_CAP_1_8V_DDR; host 302 drivers/mmc/core/host.c host->caps |= MMC_CAP_1_2V_DDR; host 304 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_HS200_1_8V_SDR; host 306 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_HS200_1_2V_SDR; host 308 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_HS400_1_8V | MMC_CAP2_HS200_1_8V_SDR; host 310 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_HS400_1_2V | MMC_CAP2_HS200_1_2V_SDR; host 312 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_HS400_ES; host 314 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_NO_SDIO; host 316 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_NO_SD; host 318 drivers/mmc/core/host.c host->caps2 |= MMC_CAP2_NO_MMC; host 322 drivers/mmc/core/host.c if (host->caps & MMC_CAP_NONREMOVABLE) host 323 drivers/mmc/core/host.c host->fixed_drv_type = drv_type; host 325 drivers/mmc/core/host.c dev_err(host->parent, host 329 drivers/mmc/core/host.c host->dsr_req = !device_property_read_u32(dev, "dsr", &host->dsr); host 330 drivers/mmc/core/host.c if (host->dsr_req && (host->dsr & ~0xffff)) { host 331 drivers/mmc/core/host.c dev_err(host->parent, host 333 drivers/mmc/core/host.c host->dsr); host 334 drivers/mmc/core/host.c host->dsr_req = 0; host 338 drivers/mmc/core/host.c &host->ios.power_delay_ms); host 340 drivers/mmc/core/host.c return mmc_pwrseq_alloc(host); host 399 drivers/mmc/core/host.c struct mmc_host *host; host 401 drivers/mmc/core/host.c host = kzalloc(sizeof(struct mmc_host) + extra, GFP_KERNEL); host 402 drivers/mmc/core/host.c if (!host) host 406 drivers/mmc/core/host.c host->rescan_disable = 1; host 410 drivers/mmc/core/host.c kfree(host); host 414 drivers/mmc/core/host.c host->index = err; host 416 drivers/mmc/core/host.c dev_set_name(&host->class_dev, "mmc%d", host->index); host 418 drivers/mmc/core/host.c host->parent = dev; host 419 drivers/mmc/core/host.c host->class_dev.parent = dev; host 420 drivers/mmc/core/host.c host->class_dev.class = &mmc_host_class; host 421 drivers/mmc/core/host.c device_initialize(&host->class_dev); host 422 drivers/mmc/core/host.c device_enable_async_suspend(&host->class_dev); host 424 drivers/mmc/core/host.c if (mmc_gpio_alloc(host)) { host 425 drivers/mmc/core/host.c put_device(&host->class_dev); host 429 drivers/mmc/core/host.c spin_lock_init(&host->lock); host 430 drivers/mmc/core/host.c init_waitqueue_head(&host->wq); host 431 drivers/mmc/core/host.c INIT_DELAYED_WORK(&host->detect, mmc_rescan); host 432 drivers/mmc/core/host.c INIT_DELAYED_WORK(&host->sdio_irq_work, sdio_irq_work); host 433 drivers/mmc/core/host.c timer_setup(&host->retune_timer, mmc_retune_timer, 0); host 439 drivers/mmc/core/host.c host->max_segs = 1; host 440 drivers/mmc/core/host.c host->max_seg_size = PAGE_SIZE; host 442 drivers/mmc/core/host.c host->max_req_size = PAGE_SIZE; host 443 drivers/mmc/core/host.c host->max_blk_size = 512; host 444 drivers/mmc/core/host.c host->max_blk_count = PAGE_SIZE / 512; host 446 drivers/mmc/core/host.c host->fixed_drv_type = -EINVAL; host 447 drivers/mmc/core/host.c host->ios.power_delay_ms = 10; host 449 drivers/mmc/core/host.c return host; host 462 drivers/mmc/core/host.c int mmc_add_host(struct mmc_host *host) host 466 drivers/mmc/core/host.c WARN_ON((host->caps & MMC_CAP_SDIO_IRQ) && host 467 drivers/mmc/core/host.c !host->ops->enable_sdio_irq); host 469 drivers/mmc/core/host.c err = device_add(&host->class_dev); host 473 drivers/mmc/core/host.c led_trigger_register_simple(dev_name(&host->class_dev), &host->led); host 476 drivers/mmc/core/host.c mmc_add_host_debugfs(host); host 479 drivers/mmc/core/host.c mmc_start_host(host); host 480 drivers/mmc/core/host.c mmc_register_pm_notifier(host); host 495 drivers/mmc/core/host.c void mmc_remove_host(struct mmc_host *host) host 497 drivers/mmc/core/host.c mmc_unregister_pm_notifier(host); host 498 drivers/mmc/core/host.c mmc_stop_host(host); host 501 drivers/mmc/core/host.c mmc_remove_host_debugfs(host); host 504 drivers/mmc/core/host.c device_del(&host->class_dev); host 506 drivers/mmc/core/host.c led_trigger_unregister_simple(host->led); host 517 drivers/mmc/core/host.c void mmc_free_host(struct mmc_host *host) host 519 drivers/mmc/core/host.c mmc_pwrseq_free(host); host 520 drivers/mmc/core/host.c put_device(&host->class_dev); host 16 drivers/mmc/core/host.h void mmc_retune_enable(struct mmc_host *host); host 17 drivers/mmc/core/host.h void mmc_retune_disable(struct mmc_host *host); host 18 drivers/mmc/core/host.h void mmc_retune_hold(struct mmc_host *host); host 19 drivers/mmc/core/host.h void mmc_retune_release(struct mmc_host *host); host 20 drivers/mmc/core/host.h int mmc_retune(struct mmc_host *host); host 21 drivers/mmc/core/host.h void mmc_retune_pause(struct mmc_host *host); host 22 drivers/mmc/core/host.h void mmc_retune_unpause(struct mmc_host *host); host 24 drivers/mmc/core/host.h static inline void mmc_retune_hold_now(struct mmc_host *host) host 26 drivers/mmc/core/host.h host->retune_now = 0; host 27 drivers/mmc/core/host.h host->hold_retune += 1; host 30 drivers/mmc/core/host.h static inline void mmc_retune_recheck(struct mmc_host *host) host 32 drivers/mmc/core/host.h if (host->hold_retune <= 1) host 33 drivers/mmc/core/host.h host->retune_now = 1; host 36 drivers/mmc/core/host.h static inline int mmc_host_cmd23(struct mmc_host *host) host 38 drivers/mmc/core/host.h return host->caps & MMC_CAP_CMD23; host 41 drivers/mmc/core/host.h static inline bool mmc_host_done_complete(struct mmc_host *host) host 43 drivers/mmc/core/host.h return host->caps & MMC_CAP_DONE_COMPLETE; host 46 drivers/mmc/core/host.h static inline int mmc_boot_partition_access(struct mmc_host *host) host 48 drivers/mmc/core/host.h return !(host->caps2 & MMC_CAP2_BOOTPART_NOACC); host 51 drivers/mmc/core/host.h static inline int mmc_host_uhs(struct mmc_host *host) host 53 drivers/mmc/core/host.h return host->caps & host 57 drivers/mmc/core/host.h host->caps & MMC_CAP_4_BIT_DATA; host 62 drivers/mmc/core/host.h return card->host->ios.timing == MMC_TIMING_MMC_HS200; host 67 drivers/mmc/core/host.h return card->host->ios.timing == MMC_TIMING_MMC_DDR52; host 72 drivers/mmc/core/host.h return card->host->ios.timing == MMC_TIMING_MMC_HS400; host 77 drivers/mmc/core/host.h return card->host->ios.enhanced_strobe; host 113 drivers/mmc/core/mmc.c mmc_hostname(card->host), card->csd.mmca_vsn); host 147 drivers/mmc/core/mmc.c mmc_hostname(card->host), csd->structure); host 187 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 189 drivers/mmc/core/mmc.c u32 caps = host->caps, caps2 = host->caps2; host 295 drivers/mmc/core/mmc.c mmc_hostname(card->host)); host 337 drivers/mmc/core/mmc.c mmc_hostname(card->host)); host 374 drivers/mmc/core/mmc.c "version %d\n", mmc_hostname(card->host), host 381 drivers/mmc/core/mmc.c np = mmc_of_find_child_device(card->host, 0); host 449 drivers/mmc/core/mmc.c if (ext_csd[EXT_CSD_BOOT_MULT] && mmc_boot_partition_access(card->host)) { host 536 drivers/mmc/core/mmc.c mmc_hostname(card->host)); host 542 drivers/mmc/core/mmc.c mmc_hostname(card->host)); host 568 drivers/mmc/core/mmc.c if (ext_csd[EXT_CSD_RPMB_MULT] && mmc_host_cmd23(card->host)) { host 648 drivers/mmc/core/mmc.c mmc_hostname(card->host), host 679 drivers/mmc/core/mmc.c mmc_hostname(card->host)); host 682 drivers/mmc/core/mmc.c mmc_hostname(card->host)); host 816 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 818 drivers/mmc/core/mmc.c if (card->csd.dsr_imp && host->dsr_req) host 819 drivers/mmc/core/mmc.c return sprintf(buf, "0x%x\n", host->dsr); host 869 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 874 drivers/mmc/core/mmc.c switch (1 << host->ios.vdd) { host 876 drivers/mmc/core/mmc.c if (host->ios.clock <= MMC_HIGH_26_MAX_DTR) host 878 drivers/mmc/core/mmc.c else if (host->ios.clock <= MMC_HIGH_52_MAX_DTR) host 882 drivers/mmc/core/mmc.c else if (host->ios.clock <= MMC_HS200_MAX_DTR) host 894 drivers/mmc/core/mmc.c if (host->ios.clock <= MMC_HIGH_26_MAX_DTR) host 896 drivers/mmc/core/mmc.c else if (host->ios.clock <= MMC_HIGH_52_MAX_DTR) host 900 drivers/mmc/core/mmc.c else if (host->ios.clock <= MMC_HS200_MAX_DTR) host 907 drivers/mmc/core/mmc.c mmc_hostname(host)); host 931 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 939 drivers/mmc/core/mmc.c bus_width = host->ios.bus_width; host 955 drivers/mmc/core/mmc.c mmc_hostname(host), 1 << bus_width, ddr); host 975 drivers/mmc/core/mmc.c mmc_set_clock(card->host, max_dtr); host 993 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 998 drivers/mmc/core/mmc.c !(host->caps & (MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA))) host 1001 drivers/mmc/core/mmc.c idx = (host->caps & MMC_CAP_8_BIT_DATA) ? 0 : 1; host 1025 drivers/mmc/core/mmc.c mmc_set_bus_width(host, bus_width); host 1032 drivers/mmc/core/mmc.c if (!(host->caps & MMC_CAP_BUS_WIDTH_TEST)) host 1042 drivers/mmc/core/mmc.c mmc_hostname(host), 1 << bus_width); host 1062 drivers/mmc/core/mmc.c mmc_hostname(card->host), err); host 1072 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 1079 drivers/mmc/core/mmc.c bus_width = host->ios.bus_width; host 1094 drivers/mmc/core/mmc.c mmc_hostname(host), 1 << bus_width); host 1124 drivers/mmc/core/mmc.c err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_120); host 1130 drivers/mmc/core/mmc.c host->caps & MMC_CAP_1_8V_DDR) host 1131 drivers/mmc/core/mmc.c err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180); host 1135 drivers/mmc/core/mmc.c err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_330); host 1142 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 1151 drivers/mmc/core/mmc.c host->ios.bus_width == MMC_BUS_WIDTH_8)) host 1162 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 1167 drivers/mmc/core/mmc.c mmc_set_timing(card->host, MMC_TIMING_MMC_HS); host 1170 drivers/mmc/core/mmc.c if (host->ops->hs400_downgrade) host 1171 drivers/mmc/core/mmc.c host->ops->hs400_downgrade(host); host 1175 drivers/mmc/core/mmc.c mmc_set_clock(host, max_dtr); host 1181 drivers/mmc/core/mmc.c if (host->ops->hs400_prepare_ddr) host 1182 drivers/mmc/core/mmc.c host->ops->hs400_prepare_ddr(host); host 1191 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 1204 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 1209 drivers/mmc/core/mmc.c mmc_set_timing(host, MMC_TIMING_MMC_HS400); host 1212 drivers/mmc/core/mmc.c if (host->ops->hs400_complete) host 1213 drivers/mmc/core/mmc.c host->ops->hs400_complete(host); host 1222 drivers/mmc/core/mmc.c pr_err("%s: %s failed, error %d\n", mmc_hostname(card->host), host 1234 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 1241 drivers/mmc/core/mmc.c mmc_set_clock(host, max_dtr); host 1251 drivers/mmc/core/mmc.c mmc_set_timing(host, MMC_TIMING_MMC_DDR52); host 1264 drivers/mmc/core/mmc.c mmc_set_timing(host, MMC_TIMING_MMC_HS); host 1266 drivers/mmc/core/mmc.c if (host->ops->hs400_downgrade) host 1267 drivers/mmc/core/mmc.c host->ops->hs400_downgrade(host); host 1282 drivers/mmc/core/mmc.c mmc_set_timing(host, MMC_TIMING_MMC_HS200); host 1296 drivers/mmc/core/mmc.c if (host->ops->prepare_hs400_tuning) host 1297 drivers/mmc/core/mmc.c host->ops->prepare_hs400_tuning(host, &host->ios); host 1302 drivers/mmc/core/mmc.c pr_err("%s: %s failed, error %d\n", mmc_hostname(card->host), host 1310 drivers/mmc/core/mmc.c int fixed_drv_type = card->host->fixed_drv_type; host 1326 drivers/mmc/core/mmc.c mmc_set_driver_type(card->host, drv_type); host 1331 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 1335 drivers/mmc/core/mmc.c if (!(host->caps & MMC_CAP_8_BIT_DATA)) { host 1341 drivers/mmc/core/mmc.c err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_120); host 1344 drivers/mmc/core/mmc.c err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180); host 1353 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 1365 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 1369 drivers/mmc/core/mmc.c mmc_set_timing(host, MMC_TIMING_MMC_HS); host 1374 drivers/mmc/core/mmc.c mmc_set_clock(host, card->ext_csd.hs_max_dtr); host 1384 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 1399 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 1404 drivers/mmc/core/mmc.c mmc_set_timing(host, MMC_TIMING_MMC_HS400); host 1407 drivers/mmc/core/mmc.c host->ios.enhanced_strobe = true; host 1408 drivers/mmc/core/mmc.c if (host->ops->hs400_enhanced_strobe) host 1409 drivers/mmc/core/mmc.c host->ops->hs400_enhanced_strobe(host, &host->ios); host 1418 drivers/mmc/core/mmc.c pr_err("%s: %s failed, error %d\n", mmc_hostname(card->host), host 1432 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 1437 drivers/mmc/core/mmc.c old_signal_voltage = host->ios.signal_voltage; host 1439 drivers/mmc/core/mmc.c err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_120); host 1442 drivers/mmc/core/mmc.c err = mmc_set_signal_voltage(host, MMC_SIGNAL_VOLTAGE_180); host 1464 drivers/mmc/core/mmc.c old_timing = host->ios.timing; host 1465 drivers/mmc/core/mmc.c mmc_set_timing(host, MMC_TIMING_MMC_HS200); host 1479 drivers/mmc/core/mmc.c mmc_set_timing(host, old_timing); host 1484 drivers/mmc/core/mmc.c if (mmc_set_signal_voltage(host, old_signal_voltage)) host 1487 drivers/mmc/core/mmc.c pr_err("%s: %s failed, error %d\n", mmc_hostname(card->host), host 1528 drivers/mmc/core/mmc.c struct mmc_host *host = card->host; host 1535 drivers/mmc/core/mmc.c host->ios.bus_width == MMC_BUS_WIDTH_8) host 1536 drivers/mmc/core/mmc.c if (host->ops->prepare_hs400_tuning) host 1537 drivers/mmc/core/mmc.c host->ops->prepare_hs400_tuning(host, &host->ios); host 1548 drivers/mmc/core/mmc.c static int mmc_init_card(struct mmc_host *host, u32 ocr, host 1556 drivers/mmc/core/mmc.c WARN_ON(!host->claimed); host 1559 drivers/mmc/core/mmc.c if (!mmc_host_is_spi(host)) host 1560 drivers/mmc/core/mmc.c mmc_set_bus_mode(host, MMC_BUSMODE_OPENDRAIN); host 1569 drivers/mmc/core/mmc.c mmc_go_idle(host); host 1572 drivers/mmc/core/mmc.c err = mmc_send_op_cond(host, ocr | (1 << 30), &rocr); host 1579 drivers/mmc/core/mmc.c if (mmc_host_is_spi(host)) { host 1580 drivers/mmc/core/mmc.c err = mmc_spi_set_crc(host, use_spi_crc); host 1588 drivers/mmc/core/mmc.c err = mmc_send_cid(host, cid); host 1595 drivers/mmc/core/mmc.c mmc_hostname(host)); host 1605 drivers/mmc/core/mmc.c card = mmc_alloc_card(host, &mmc_type); host 1620 drivers/mmc/core/mmc.c if (host->ops->init_card) host 1621 drivers/mmc/core/mmc.c host->ops->init_card(host, card); host 1626 drivers/mmc/core/mmc.c if (!mmc_host_is_spi(host)) { host 1631 drivers/mmc/core/mmc.c mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL); host 1654 drivers/mmc/core/mmc.c if (card->csd.dsr_imp && host->dsr_req) host 1655 drivers/mmc/core/mmc.c mmc_set_dsr(host); host 1660 drivers/mmc/core/mmc.c if (!mmc_host_is_spi(host)) { host 1794 drivers/mmc/core/mmc.c mmc_hostname(card->host)); host 1823 drivers/mmc/core/mmc.c mmc_hostname(card->host), err); host 1836 drivers/mmc/core/mmc.c if (card->ext_csd.cmdq_support && host->caps2 & MMC_CAP2_CQE) { host 1842 drivers/mmc/core/mmc.c mmc_hostname(card->host)); host 1855 drivers/mmc/core/mmc.c if (card->ext_csd.cmdq_en && !host->cqe_enabled) { host 1856 drivers/mmc/core/mmc.c err = host->cqe_ops->cqe_enable(host, card); host 1859 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 1861 drivers/mmc/core/mmc.c host->cqe_enabled = true; host 1863 drivers/mmc/core/mmc.c mmc_hostname(host)); host 1867 drivers/mmc/core/mmc.c if (host->caps2 & MMC_CAP2_AVOID_3_3V && host 1868 drivers/mmc/core/mmc.c host->ios.signal_voltage == MMC_SIGNAL_VOLTAGE_330) { host 1870 drivers/mmc/core/mmc.c mmc_hostname(host)); host 1876 drivers/mmc/core/mmc.c host->card = card; host 1892 drivers/mmc/core/mmc.c static int mmc_sleep(struct mmc_host *host) host 1895 drivers/mmc/core/mmc.c struct mmc_card *card = host->card; host 1900 drivers/mmc/core/mmc.c mmc_retune_hold(host); host 1902 drivers/mmc/core/mmc.c err = mmc_deselect_cards(host); host 1918 drivers/mmc/core/mmc.c if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && host->max_busy_timeout && host 1919 drivers/mmc/core/mmc.c (timeout_ms > host->max_busy_timeout)) { host 1926 drivers/mmc/core/mmc.c err = mmc_wait_for_cmd(host, &cmd, 0); host 1936 drivers/mmc/core/mmc.c if (!cmd.busy_timeout || !(host->caps & MMC_CAP_WAIT_WHILE_BUSY)) host 1940 drivers/mmc/core/mmc.c mmc_retune_release(host); host 1965 drivers/mmc/core/mmc.c mmc_hostname(card->host), timeout); host 1976 drivers/mmc/core/mmc.c static void mmc_remove(struct mmc_host *host) host 1978 drivers/mmc/core/mmc.c mmc_remove_card(host->card); host 1979 drivers/mmc/core/mmc.c host->card = NULL; host 1985 drivers/mmc/core/mmc.c static int mmc_alive(struct mmc_host *host) host 1987 drivers/mmc/core/mmc.c return mmc_send_status(host->card, NULL); host 1993 drivers/mmc/core/mmc.c static void mmc_detect(struct mmc_host *host) host 1997 drivers/mmc/core/mmc.c mmc_get_card(host->card, NULL); host 2002 drivers/mmc/core/mmc.c err = _mmc_detect_card_removed(host); host 2004 drivers/mmc/core/mmc.c mmc_put_card(host->card, NULL); host 2007 drivers/mmc/core/mmc.c mmc_remove(host); host 2009 drivers/mmc/core/mmc.c mmc_claim_host(host); host 2010 drivers/mmc/core/mmc.c mmc_detach_bus(host); host 2011 drivers/mmc/core/mmc.c mmc_power_off(host); host 2012 drivers/mmc/core/mmc.c mmc_release_host(host); host 2016 drivers/mmc/core/mmc.c static int _mmc_suspend(struct mmc_host *host, bool is_suspend) host 2022 drivers/mmc/core/mmc.c mmc_claim_host(host); host 2024 drivers/mmc/core/mmc.c if (mmc_card_suspended(host->card)) host 2027 drivers/mmc/core/mmc.c err = mmc_flush_cache(host->card); host 2031 drivers/mmc/core/mmc.c if (mmc_can_poweroff_notify(host->card) && host 2032 drivers/mmc/core/mmc.c ((host->caps2 & MMC_CAP2_FULL_PWR_CYCLE) || !is_suspend)) host 2033 drivers/mmc/core/mmc.c err = mmc_poweroff_notify(host->card, notify_type); host 2034 drivers/mmc/core/mmc.c else if (mmc_can_sleep(host->card)) host 2035 drivers/mmc/core/mmc.c err = mmc_sleep(host); host 2036 drivers/mmc/core/mmc.c else if (!mmc_host_is_spi(host)) host 2037 drivers/mmc/core/mmc.c err = mmc_deselect_cards(host); host 2040 drivers/mmc/core/mmc.c mmc_power_off(host); host 2041 drivers/mmc/core/mmc.c mmc_card_set_suspended(host->card); host 2044 drivers/mmc/core/mmc.c mmc_release_host(host); host 2051 drivers/mmc/core/mmc.c static int mmc_suspend(struct mmc_host *host) host 2055 drivers/mmc/core/mmc.c err = _mmc_suspend(host, true); host 2057 drivers/mmc/core/mmc.c pm_runtime_disable(&host->card->dev); host 2058 drivers/mmc/core/mmc.c pm_runtime_set_suspended(&host->card->dev); host 2068 drivers/mmc/core/mmc.c static int _mmc_resume(struct mmc_host *host) host 2072 drivers/mmc/core/mmc.c mmc_claim_host(host); host 2074 drivers/mmc/core/mmc.c if (!mmc_card_suspended(host->card)) host 2077 drivers/mmc/core/mmc.c mmc_power_up(host, host->card->ocr); host 2078 drivers/mmc/core/mmc.c err = mmc_init_card(host, host->card->ocr, host->card); host 2079 drivers/mmc/core/mmc.c mmc_card_clr_suspended(host->card); host 2082 drivers/mmc/core/mmc.c mmc_release_host(host); host 2089 drivers/mmc/core/mmc.c static int mmc_shutdown(struct mmc_host *host) host 2097 drivers/mmc/core/mmc.c if (mmc_can_poweroff_notify(host->card) && host 2098 drivers/mmc/core/mmc.c !(host->caps2 & MMC_CAP2_FULL_PWR_CYCLE)) host 2099 drivers/mmc/core/mmc.c err = _mmc_resume(host); host 2102 drivers/mmc/core/mmc.c err = _mmc_suspend(host, false); host 2110 drivers/mmc/core/mmc.c static int mmc_resume(struct mmc_host *host) host 2112 drivers/mmc/core/mmc.c pm_runtime_enable(&host->card->dev); host 2119 drivers/mmc/core/mmc.c static int mmc_runtime_suspend(struct mmc_host *host) host 2123 drivers/mmc/core/mmc.c if (!(host->caps & MMC_CAP_AGGRESSIVE_PM)) host 2126 drivers/mmc/core/mmc.c err = _mmc_suspend(host, true); host 2129 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 2137 drivers/mmc/core/mmc.c static int mmc_runtime_resume(struct mmc_host *host) host 2141 drivers/mmc/core/mmc.c err = _mmc_resume(host); host 2144 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 2159 drivers/mmc/core/mmc.c static int _mmc_hw_reset(struct mmc_host *host) host 2161 drivers/mmc/core/mmc.c struct mmc_card *card = host->card; host 2167 drivers/mmc/core/mmc.c mmc_flush_cache(host->card); host 2169 drivers/mmc/core/mmc.c if ((host->caps & MMC_CAP_HW_RESET) && host->ops->hw_reset && host 2172 drivers/mmc/core/mmc.c mmc_set_clock(host, host->f_init); host 2173 drivers/mmc/core/mmc.c host->ops->hw_reset(host); host 2175 drivers/mmc/core/mmc.c mmc_set_initial_state(host); host 2178 drivers/mmc/core/mmc.c mmc_power_cycle(host, card->ocr); host 2179 drivers/mmc/core/mmc.c mmc_pwrseq_reset(host); host 2181 drivers/mmc/core/mmc.c return mmc_init_card(host, card->ocr, card); host 2199 drivers/mmc/core/mmc.c int mmc_attach_mmc(struct mmc_host *host) host 2204 drivers/mmc/core/mmc.c WARN_ON(!host->claimed); host 2207 drivers/mmc/core/mmc.c if (!mmc_host_is_spi(host)) host 2208 drivers/mmc/core/mmc.c mmc_set_bus_mode(host, MMC_BUSMODE_OPENDRAIN); host 2210 drivers/mmc/core/mmc.c err = mmc_send_op_cond(host, 0, &ocr); host 2214 drivers/mmc/core/mmc.c mmc_attach_bus(host, &mmc_ops); host 2215 drivers/mmc/core/mmc.c if (host->ocr_avail_mmc) host 2216 drivers/mmc/core/mmc.c host->ocr_avail = host->ocr_avail_mmc; host 2221 drivers/mmc/core/mmc.c if (mmc_host_is_spi(host)) { host 2222 drivers/mmc/core/mmc.c err = mmc_spi_read_ocr(host, 1, &ocr); host 2227 drivers/mmc/core/mmc.c rocr = mmc_select_voltage(host, ocr); host 2240 drivers/mmc/core/mmc.c err = mmc_init_card(host, rocr, NULL); host 2244 drivers/mmc/core/mmc.c mmc_release_host(host); host 2245 drivers/mmc/core/mmc.c err = mmc_add_card(host->card); host 2249 drivers/mmc/core/mmc.c mmc_claim_host(host); host 2253 drivers/mmc/core/mmc.c mmc_remove_card(host->card); host 2254 drivers/mmc/core/mmc.c mmc_claim_host(host); host 2255 drivers/mmc/core/mmc.c host->card = NULL; host 2257 drivers/mmc/core/mmc.c mmc_detach_bus(host); host 2260 drivers/mmc/core/mmc.c mmc_hostname(host), err); host 60 drivers/mmc/core/mmc_ops.c if (!mmc_host_is_spi(card->host)) host 64 drivers/mmc/core/mmc_ops.c err = mmc_wait_for_cmd(card->host, &cmd, retries); host 84 drivers/mmc/core/mmc_ops.c static int _mmc_select_card(struct mmc_host *host, struct mmc_card *card) host 98 drivers/mmc/core/mmc_ops.c return mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); host 104 drivers/mmc/core/mmc_ops.c return _mmc_select_card(card->host, card); host 107 drivers/mmc/core/mmc_ops.c int mmc_deselect_cards(struct mmc_host *host) host 109 drivers/mmc/core/mmc_ops.c return _mmc_select_card(host, NULL); host 120 drivers/mmc/core/mmc_ops.c int mmc_set_dsr(struct mmc_host *host) host 126 drivers/mmc/core/mmc_ops.c cmd.arg = (host->dsr << 16) | 0xffff; host 129 drivers/mmc/core/mmc_ops.c return mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); host 132 drivers/mmc/core/mmc_ops.c int mmc_go_idle(struct mmc_host *host) host 146 drivers/mmc/core/mmc_ops.c if (!mmc_host_is_spi(host)) { host 147 drivers/mmc/core/mmc_ops.c mmc_set_chip_select(host, MMC_CS_HIGH); host 155 drivers/mmc/core/mmc_ops.c err = mmc_wait_for_cmd(host, &cmd, 0); host 159 drivers/mmc/core/mmc_ops.c if (!mmc_host_is_spi(host)) { host 160 drivers/mmc/core/mmc_ops.c mmc_set_chip_select(host, MMC_CS_DONTCARE); host 164 drivers/mmc/core/mmc_ops.c host->use_spi_crc = 0; host 169 drivers/mmc/core/mmc_ops.c int mmc_send_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr) host 175 drivers/mmc/core/mmc_ops.c cmd.arg = mmc_host_is_spi(host) ? 0 : ocr; host 179 drivers/mmc/core/mmc_ops.c err = mmc_wait_for_cmd(host, &cmd, 0); host 184 drivers/mmc/core/mmc_ops.c if (mmc_host_is_spi(host)) { host 203 drivers/mmc/core/mmc_ops.c if (!ocr && !mmc_host_is_spi(host)) host 207 drivers/mmc/core/mmc_ops.c if (rocr && !mmc_host_is_spi(host)) host 221 drivers/mmc/core/mmc_ops.c return mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES); host 225 drivers/mmc/core/mmc_ops.c mmc_send_cxd_native(struct mmc_host *host, u32 arg, u32 *cxd, int opcode) host 234 drivers/mmc/core/mmc_ops.c err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); host 248 drivers/mmc/core/mmc_ops.c mmc_send_cxd_data(struct mmc_card *card, struct mmc_host *host, host 287 drivers/mmc/core/mmc_ops.c mmc_wait_for_req(host, &mrq); host 306 drivers/mmc/core/mmc_ops.c ret = mmc_send_cxd_data(card, card->host, MMC_SEND_CSD, csd_tmp, 16); host 320 drivers/mmc/core/mmc_ops.c if (mmc_host_is_spi(card->host)) host 323 drivers/mmc/core/mmc_ops.c return mmc_send_cxd_native(card->host, card->rca << 16, csd, host 327 drivers/mmc/core/mmc_ops.c static int mmc_spi_send_cid(struct mmc_host *host, u32 *cid) host 336 drivers/mmc/core/mmc_ops.c ret = mmc_send_cxd_data(NULL, host, MMC_SEND_CID, cid_tmp, 16); host 348 drivers/mmc/core/mmc_ops.c int mmc_send_cid(struct mmc_host *host, u32 *cid) host 350 drivers/mmc/core/mmc_ops.c if (mmc_host_is_spi(host)) host 351 drivers/mmc/core/mmc_ops.c return mmc_spi_send_cid(host, cid); host 353 drivers/mmc/core/mmc_ops.c return mmc_send_cxd_native(host, 0, cid, MMC_ALL_SEND_CID); host 375 drivers/mmc/core/mmc_ops.c err = mmc_send_cxd_data(card, card->host, MMC_SEND_EXT_CSD, ext_csd, host 386 drivers/mmc/core/mmc_ops.c int mmc_spi_read_ocr(struct mmc_host *host, int highcap, u32 *ocrp) host 395 drivers/mmc/core/mmc_ops.c err = mmc_wait_for_cmd(host, &cmd, 0); host 401 drivers/mmc/core/mmc_ops.c int mmc_spi_set_crc(struct mmc_host *host, int use_crc) host 410 drivers/mmc/core/mmc_ops.c err = mmc_wait_for_cmd(host, &cmd, 0); host 412 drivers/mmc/core/mmc_ops.c host->use_spi_crc = use_crc; host 416 drivers/mmc/core/mmc_ops.c static int mmc_switch_status_error(struct mmc_host *host, u32 status) host 418 drivers/mmc/core/mmc_ops.c if (mmc_host_is_spi(host)) { host 424 drivers/mmc/core/mmc_ops.c mmc_hostname(host), status); host 443 drivers/mmc/core/mmc_ops.c return mmc_switch_status_error(card->host, status); host 454 drivers/mmc/core/mmc_ops.c struct mmc_host *host = card->host; host 470 drivers/mmc/core/mmc_ops.c if (!send_status && !host->ops->card_busy) { host 483 drivers/mmc/core/mmc_ops.c if (host->ops->card_busy) { host 484 drivers/mmc/core/mmc_ops.c busy = host->ops->card_busy(host); host 492 drivers/mmc/core/mmc_ops.c err = mmc_switch_status_error(host, status); host 502 drivers/mmc/core/mmc_ops.c mmc_hostname(host), __func__); host 529 drivers/mmc/core/mmc_ops.c struct mmc_host *host = card->host; host 533 drivers/mmc/core/mmc_ops.c unsigned char old_timing = host->ios.timing; host 535 drivers/mmc/core/mmc_ops.c mmc_retune_hold(host); host 545 drivers/mmc/core/mmc_ops.c if (!(host->caps & MMC_CAP_NEED_RSP_BUSY) && timeout_ms && host 546 drivers/mmc/core/mmc_ops.c host->max_busy_timeout && (timeout_ms > host->max_busy_timeout)) host 569 drivers/mmc/core/mmc_ops.c err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); host 578 drivers/mmc/core/mmc_ops.c if (((host->caps & MMC_CAP_WAIT_WHILE_BUSY) && use_r1b_resp) || host 579 drivers/mmc/core/mmc_ops.c mmc_host_is_spi(host)) host 590 drivers/mmc/core/mmc_ops.c mmc_set_timing(host, timing); host 595 drivers/mmc/core/mmc_ops.c mmc_set_timing(host, old_timing); host 598 drivers/mmc/core/mmc_ops.c mmc_retune_release(host); host 611 drivers/mmc/core/mmc_ops.c int mmc_send_tuning(struct mmc_host *host, u32 opcode, int *cmd_error) host 617 drivers/mmc/core/mmc_ops.c struct mmc_ios *ios = &host->ios; host 656 drivers/mmc/core/mmc_ops.c mmc_wait_for_req(host, &mrq); host 680 drivers/mmc/core/mmc_ops.c int mmc_abort_tuning(struct mmc_host *host, u32 opcode) host 701 drivers/mmc/core/mmc_ops.c return mmc_wait_for_cmd(host, &cmd, 0); host 706 drivers/mmc/core/mmc_ops.c mmc_send_bus_test(struct mmc_card *card, struct mmc_host *host, u8 opcode, host 732 drivers/mmc/core/mmc_ops.c mmc_hostname(host), len); host 763 drivers/mmc/core/mmc_ops.c mmc_wait_for_req(host, &mrq); host 799 drivers/mmc/core/mmc_ops.c mmc_send_bus_test(card, card->host, MMC_BUS_TEST_W, width); host 800 drivers/mmc/core/mmc_ops.c return mmc_send_bus_test(card, card->host, MMC_BUS_TEST_R, width); host 818 drivers/mmc/core/mmc_ops.c err = mmc_wait_for_cmd(card->host, &cmd, 0); host 821 drivers/mmc/core/mmc_ops.c "HPI command response %#x\n", mmc_hostname(card->host), host 845 drivers/mmc/core/mmc_ops.c pr_info("%s: HPI enable bit unset\n", mmc_hostname(card->host)); host 851 drivers/mmc/core/mmc_ops.c pr_err("%s: Get card status fail\n", mmc_hostname(card->host)); host 870 drivers/mmc/core/mmc_ops.c mmc_hostname(card->host), R1_CURRENT_STATE(status)); host 930 drivers/mmc/core/mmc_ops.c mmc_hostname(card->host), err); host 938 drivers/mmc/core/mmc_ops.c mmc_retune_hold(card->host); host 949 drivers/mmc/core/mmc_ops.c mmc_hostname(card->host), err); host 951 drivers/mmc/core/mmc_ops.c mmc_retune_release(card->host); host 969 drivers/mmc/core/mmc_ops.c mmc_hostname(card->host), err); host 17 drivers/mmc/core/mmc_ops.h int mmc_deselect_cards(struct mmc_host *host); host 18 drivers/mmc/core/mmc_ops.h int mmc_set_dsr(struct mmc_host *host); host 19 drivers/mmc/core/mmc_ops.h int mmc_go_idle(struct mmc_host *host); host 20 drivers/mmc/core/mmc_ops.h int mmc_send_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr); host 25 drivers/mmc/core/mmc_ops.h int mmc_send_cid(struct mmc_host *host, u32 *cid); host 26 drivers/mmc/core/mmc_ops.h int mmc_spi_read_ocr(struct mmc_host *host, int highcap, u32 *ocrp); host 27 drivers/mmc/core/mmc_ops.h int mmc_spi_set_crc(struct mmc_host *host, int use_crc); host 193 drivers/mmc/core/mmc_test.c if (!mrq->sbc || !mmc_host_cmd23(card->host) || host 270 drivers/mmc/core/mmc_test.c ret = mmc_wait_for_cmd(test->card->host, &cmd, 0); host 276 drivers/mmc/core/mmc_test.c if (test->card->host->caps & MMC_CAP_WAIT_WHILE_BUSY) host 278 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host)); host 306 drivers/mmc/core/mmc_test.c mmc_wait_for_req(test->card->host, &mrq); host 570 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), sectors, sectors >> 1, host 597 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), count, sectors, count, host 807 drivers/mmc/core/mmc_test.c struct mmc_host *host = test->card->host; host 813 drivers/mmc/core/mmc_test.c mmc_pre_req(host, mrq); host 824 drivers/mmc/core/mmc_test.c err = mmc_start_request(host, mrq); host 826 drivers/mmc/core/mmc_test.c mmc_retune_release(host); host 830 drivers/mmc/core/mmc_test.c mmc_post_req(host, prev_mrq, 0); host 833 drivers/mmc/core/mmc_test.c mmc_post_req(host, mrq, err); host 899 drivers/mmc/core/mmc_test.c mmc_wait_for_req(test->card->host, &mrq); host 928 drivers/mmc/core/mmc_test.c mmc_wait_for_req(test->card->host, &mrq); host 1075 drivers/mmc/core/mmc_test.c if (test->card->host->max_blk_count == 1) host 1079 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_req_size); host 1080 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_seg_size); host 1081 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_blk_count * 512); host 1096 drivers/mmc/core/mmc_test.c if (test->card->host->max_blk_count == 1) host 1100 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_req_size); host 1101 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_seg_size); host 1102 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_blk_count * 512); host 1220 drivers/mmc/core/mmc_test.c if (test->card->host->max_blk_count == 1) host 1224 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_req_size); host 1225 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_seg_size); host 1226 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_blk_count * 512); host 1247 drivers/mmc/core/mmc_test.c if (test->card->host->max_blk_count == 1) host 1251 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_req_size); host 1252 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_seg_size); host 1253 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_blk_count * 512); host 1294 drivers/mmc/core/mmc_test.c if (test->card->host->max_blk_count == 1) host 1308 drivers/mmc/core/mmc_test.c if (test->card->host->max_blk_count == 1) host 1345 drivers/mmc/core/mmc_test.c if (test->card->host->max_blk_count == 1) host 1349 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_req_size); host 1350 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_seg_size); host 1351 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_blk_count * 512); host 1367 drivers/mmc/core/mmc_test.c if (test->card->host->max_blk_count == 1) host 1371 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_req_size); host 1372 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_seg_size); host 1373 drivers/mmc/core/mmc_test.c size = min(size, test->card->host->max_blk_count * 512); host 1389 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host)); host 1416 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host)); host 1558 drivers/mmc/core/mmc_test.c t->max_segs = test->card->host->max_segs; host 1559 drivers/mmc/core/mmc_test.c t->max_seg_sz = test->card->host->max_seg_size; host 1563 drivers/mmc/core/mmc_test.c if (t->max_tfr >> 9 > test->card->host->max_blk_count) host 1564 drivers/mmc/core/mmc_test.c t->max_tfr = test->card->host->max_blk_count << 9; host 1565 drivers/mmc/core/mmc_test.c if (t->max_tfr > test->card->host->max_req_size) host 1566 drivers/mmc/core/mmc_test.c t->max_tfr = test->card->host->max_req_size; host 2125 drivers/mmc/core/mmc_test.c void *pre_req = test->card->host->ops->pre_req; host 2126 drivers/mmc/core/mmc_test.c void *post_req = test->card->host->ops->post_req; host 2315 drivers/mmc/core/mmc_test.c struct mmc_host *host = card->host; host 2318 drivers/mmc/core/mmc_test.c err = mmc_hw_reset(host); host 2340 drivers/mmc/core/mmc_test.c if (!mmc_host_is_spi(test->card->host)) host 2344 drivers/mmc/core/mmc_test.c return mmc_wait_for_cmd(test->card->host, cmd, 0); host 2352 drivers/mmc/core/mmc_test.c struct mmc_host *host = test->card->host; host 2373 drivers/mmc/core/mmc_test.c ret = mmc_host_cmd23(host) ? host 2385 drivers/mmc/core/mmc_test.c mmc_wait_for_req(host, mrq); host 2403 drivers/mmc/core/mmc_test.c if (mmc_is_req_done(host, mrq)) host 2409 drivers/mmc/core/mmc_test.c mmc_hostname(host), status); host 2419 drivers/mmc/core/mmc_test.c mmc_wait_for_req_done(test->card->host, mrq); host 2428 drivers/mmc/core/mmc_test.c mmc_wait_for_cmd(host, mrq->data->stop, 0); host 2430 drivers/mmc/core/mmc_test.c ret = mmc_wait_for_cmd(host, mrq->data->stop, 0); host 2438 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), status, cmd_ret); host 2451 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), count, t->blocks); host 2468 drivers/mmc/core/mmc_test.c if (!(test->card->host->caps & MMC_CAP_CMD_DURING_TFR)) host 2928 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), mmc_card_id(test->card)); host 2930 drivers/mmc/core/mmc_test.c mmc_claim_host(test->card->host); host 2939 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), i + 1, host 2946 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), host 2974 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host)); host 2978 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host)); host 2982 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host)); host 2986 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host)); host 2990 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), ret); host 3001 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host), host 3007 drivers/mmc/core/mmc_test.c mmc_release_host(test->card->host); host 3010 drivers/mmc/core/mmc_test.c mmc_hostname(test->card->host)); host 3219 drivers/mmc/core/mmc_test.c mmc_claim_host(card->host); host 3221 drivers/mmc/core/mmc_test.c mmc_release_host(card->host); host 3234 drivers/mmc/core/mmc_test.c mmc_claim_host(card->host); host 3236 drivers/mmc/core/mmc_test.c mmc_release_host(card->host); host 21 drivers/mmc/core/pwrseq.c int mmc_pwrseq_alloc(struct mmc_host *host) host 26 drivers/mmc/core/pwrseq.c np = of_parse_phandle(host->parent->of_node, "mmc-pwrseq", 0); host 34 drivers/mmc/core/pwrseq.c dev_err(host->parent, host 37 drivers/mmc/core/pwrseq.c host->pwrseq = p; host 46 drivers/mmc/core/pwrseq.c if (!host->pwrseq) host 49 drivers/mmc/core/pwrseq.c dev_info(host->parent, "allocated mmc-pwrseq\n"); host 54 drivers/mmc/core/pwrseq.c void mmc_pwrseq_pre_power_on(struct mmc_host *host) host 56 drivers/mmc/core/pwrseq.c struct mmc_pwrseq *pwrseq = host->pwrseq; host 59 drivers/mmc/core/pwrseq.c pwrseq->ops->pre_power_on(host); host 62 drivers/mmc/core/pwrseq.c void mmc_pwrseq_post_power_on(struct mmc_host *host) host 64 drivers/mmc/core/pwrseq.c struct mmc_pwrseq *pwrseq = host->pwrseq; host 67 drivers/mmc/core/pwrseq.c pwrseq->ops->post_power_on(host); host 70 drivers/mmc/core/pwrseq.c void mmc_pwrseq_power_off(struct mmc_host *host) host 72 drivers/mmc/core/pwrseq.c struct mmc_pwrseq *pwrseq = host->pwrseq; host 75 drivers/mmc/core/pwrseq.c pwrseq->ops->power_off(host); host 78 drivers/mmc/core/pwrseq.c void mmc_pwrseq_reset(struct mmc_host *host) host 80 drivers/mmc/core/pwrseq.c struct mmc_pwrseq *pwrseq = host->pwrseq; host 83 drivers/mmc/core/pwrseq.c pwrseq->ops->reset(host); host 86 drivers/mmc/core/pwrseq.c void mmc_pwrseq_free(struct mmc_host *host) host 88 drivers/mmc/core/pwrseq.c struct mmc_pwrseq *pwrseq = host->pwrseq; host 92 drivers/mmc/core/pwrseq.c host->pwrseq = NULL; host 17 drivers/mmc/core/pwrseq.h void (*pre_power_on)(struct mmc_host *host); host 18 drivers/mmc/core/pwrseq.h void (*post_power_on)(struct mmc_host *host); host 19 drivers/mmc/core/pwrseq.h void (*power_off)(struct mmc_host *host); host 20 drivers/mmc/core/pwrseq.h void (*reset)(struct mmc_host *host); host 35 drivers/mmc/core/pwrseq.h int mmc_pwrseq_alloc(struct mmc_host *host); host 36 drivers/mmc/core/pwrseq.h void mmc_pwrseq_pre_power_on(struct mmc_host *host); host 37 drivers/mmc/core/pwrseq.h void mmc_pwrseq_post_power_on(struct mmc_host *host); host 38 drivers/mmc/core/pwrseq.h void mmc_pwrseq_power_off(struct mmc_host *host); host 39 drivers/mmc/core/pwrseq.h void mmc_pwrseq_reset(struct mmc_host *host); host 40 drivers/mmc/core/pwrseq.h void mmc_pwrseq_free(struct mmc_host *host); host 49 drivers/mmc/core/pwrseq.h static inline int mmc_pwrseq_alloc(struct mmc_host *host) { return 0; } host 50 drivers/mmc/core/pwrseq.h static inline void mmc_pwrseq_pre_power_on(struct mmc_host *host) {} host 51 drivers/mmc/core/pwrseq.h static inline void mmc_pwrseq_post_power_on(struct mmc_host *host) {} host 52 drivers/mmc/core/pwrseq.h static inline void mmc_pwrseq_power_off(struct mmc_host *host) {} host 53 drivers/mmc/core/pwrseq.h static inline void mmc_pwrseq_reset(struct mmc_host *host) {} host 54 drivers/mmc/core/pwrseq.h static inline void mmc_pwrseq_free(struct mmc_host *host) {} host 32 drivers/mmc/core/pwrseq_emmc.c static void mmc_pwrseq_emmc_reset(struct mmc_host *host) host 34 drivers/mmc/core/pwrseq_emmc.c struct mmc_pwrseq_emmc *pwrseq = to_pwrseq_emmc(host->pwrseq); host 34 drivers/mmc/core/pwrseq_sd8787.c static void mmc_pwrseq_sd8787_pre_power_on(struct mmc_host *host) host 36 drivers/mmc/core/pwrseq_sd8787.c struct mmc_pwrseq_sd8787 *pwrseq = to_pwrseq_sd8787(host->pwrseq); host 44 drivers/mmc/core/pwrseq_sd8787.c static void mmc_pwrseq_sd8787_power_off(struct mmc_host *host) host 46 drivers/mmc/core/pwrseq_sd8787.c struct mmc_pwrseq_sd8787 *pwrseq = to_pwrseq_sd8787(host->pwrseq); host 61 drivers/mmc/core/pwrseq_simple.c static void mmc_pwrseq_simple_pre_power_on(struct mmc_host *host) host 63 drivers/mmc/core/pwrseq_simple.c struct mmc_pwrseq_simple *pwrseq = to_pwrseq_simple(host->pwrseq); host 73 drivers/mmc/core/pwrseq_simple.c static void mmc_pwrseq_simple_post_power_on(struct mmc_host *host) host 75 drivers/mmc/core/pwrseq_simple.c struct mmc_pwrseq_simple *pwrseq = to_pwrseq_simple(host->pwrseq); host 83 drivers/mmc/core/pwrseq_simple.c static void mmc_pwrseq_simple_power_off(struct mmc_host *host) host 85 drivers/mmc/core/pwrseq_simple.c struct mmc_pwrseq_simple *pwrseq = to_pwrseq_simple(host->pwrseq); host 40 drivers/mmc/core/queue.c static inline bool mmc_cqe_can_dcmd(struct mmc_host *host) host 42 drivers/mmc/core/queue.c return host->caps2 & MMC_CAP2_CQE_DCMD; host 45 drivers/mmc/core/queue.c static enum mmc_issue_type mmc_cqe_issue_type(struct mmc_host *host, host 55 drivers/mmc/core/queue.c return mmc_cqe_can_dcmd(host) ? MMC_ISSUE_DCMD : MMC_ISSUE_SYNC; host 63 drivers/mmc/core/queue.c struct mmc_host *host = mq->card->host; host 66 drivers/mmc/core/queue.c return mmc_cqe_issue_type(host, req); host 101 drivers/mmc/core/queue.c struct mmc_host *host = mq->card->host; host 108 drivers/mmc/core/queue.c if (host->cqe_ops->cqe_timeout(host, mrq, &recovery_needed)) { host 192 drivers/mmc/core/queue.c static unsigned int mmc_get_max_segments(struct mmc_host *host) host 194 drivers/mmc/core/queue.c return host->can_dma_map_merge ? MMC_DMA_MAP_MERGE_SEGMENTS : host 195 drivers/mmc/core/queue.c host->max_segs; host 209 drivers/mmc/core/queue.c struct mmc_host *host = card->host; host 211 drivers/mmc/core/queue.c mq_rq->sg = mmc_alloc_sg(mmc_get_max_segments(host), gfp); host 247 drivers/mmc/core/queue.c struct mmc_host *host = card->host; host 307 drivers/mmc/core/queue.c host->retune_now = host->need_retune && cqe_retune_ok && host 308 drivers/mmc/core/queue.c !host->hold_retune; host 355 drivers/mmc/core/queue.c struct mmc_host *host = card->host; host 363 drivers/mmc/core/queue.c if (!mmc_dev(host)->dma_mask || !*mmc_dev(host)->dma_mask) host 366 drivers/mmc/core/queue.c min(host->max_blk_count, host->max_req_size / 512)); host 367 drivers/mmc/core/queue.c if (host->can_dma_map_merge) host 369 drivers/mmc/core/queue.c mmc_dev(host)), host 371 drivers/mmc/core/queue.c blk_queue_max_segments(mq->queue, mmc_get_max_segments(host)); host 382 drivers/mmc/core/queue.c if (!host->can_dma_map_merge) host 384 drivers/mmc/core/queue.c round_down(host->max_seg_size, block_size)); host 386 drivers/mmc/core/queue.c dma_set_max_seg_size(mmc_dev(host), queue_max_segment_size(mq->queue)); host 396 drivers/mmc/core/queue.c static inline bool mmc_merge_capable(struct mmc_host *host) host 398 drivers/mmc/core/queue.c return host->caps2 & MMC_CAP2_MERGE_CAPABLE; host 413 drivers/mmc/core/queue.c struct mmc_host *host = card->host; host 417 drivers/mmc/core/queue.c mq->use_cqe = host->cqe_enabled; host 429 drivers/mmc/core/queue.c min_t(int, card->ext_csd.cmdq_depth, host->cqe_qdepth); host 443 drivers/mmc/core/queue.c if (mmc_merge_capable(host) && host 444 drivers/mmc/core/queue.c host->max_segs < MMC_DMA_MAP_MERGE_SEGMENTS && host 445 drivers/mmc/core/queue.c dma_get_merge_boundary(mmc_dev(host))) host 446 drivers/mmc/core/queue.c host->can_dma_map_merge = 1; host 448 drivers/mmc/core/queue.c host->can_dma_map_merge = 0; host 460 drivers/mmc/core/queue.c if (mmc_host_is_spi(host) && host->use_spi_crc) host 483 drivers/mmc/core/queue.c mmc_claim_host(mq->card->host); host 484 drivers/mmc/core/queue.c mmc_release_host(mq->card->host); host 175 drivers/mmc/core/sd.c mmc_hostname(card->host), csd_struct); host 199 drivers/mmc/core/sd.c mmc_hostname(card->host), scr_struct); host 225 drivers/mmc/core/sd.c pr_err("%s: invalid bus width\n", mmc_hostname(card->host)); host 245 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 255 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 282 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 310 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 333 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 369 drivers/mmc/core/sd.c if (!(card->host->caps & MMC_CAP_SD_HIGHSPEED)) host 385 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 416 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 423 drivers/mmc/core/sd.c mmc_set_driver_type(card->host, drv_type); host 434 drivers/mmc/core/sd.c if (!mmc_host_uhs(card->host)) { host 439 drivers/mmc/core/sd.c if ((card->host->caps & MMC_CAP_UHS_SDR104) && host 442 drivers/mmc/core/sd.c } else if ((card->host->caps & MMC_CAP_UHS_DDR50) && host 445 drivers/mmc/core/sd.c } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | host 449 drivers/mmc/core/sd.c } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | host 453 drivers/mmc/core/sd.c } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | host 497 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 499 drivers/mmc/core/sd.c mmc_set_timing(card->host, timing); host 500 drivers/mmc/core/sd.c mmc_set_clock(card->host, card->sw_caps.uhs_max_dtr); host 507 drivers/mmc/core/sd.c static u32 sd_get_host_max_current(struct mmc_host *host) host 511 drivers/mmc/core/sd.c voltage = 1 << host->ios.vdd; host 514 drivers/mmc/core/sd.c max_current = host->max_current_180; host 518 drivers/mmc/core/sd.c max_current = host->max_current_300; host 522 drivers/mmc/core/sd.c max_current = host->max_current_330; host 551 drivers/mmc/core/sd.c max_current = sd_get_host_max_current(card->host); host 588 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 615 drivers/mmc/core/sd.c mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4); host 642 drivers/mmc/core/sd.c if (!mmc_host_is_spi(card->host) && host 643 drivers/mmc/core/sd.c (card->host->ios.timing == MMC_TIMING_UHS_SDR50 || host 644 drivers/mmc/core/sd.c card->host->ios.timing == MMC_TIMING_UHS_DDR50 || host 645 drivers/mmc/core/sd.c card->host->ios.timing == MMC_TIMING_UHS_SDR104)) { host 655 drivers/mmc/core/sd.c if (err && card->host->ios.timing == MMC_TIMING_UHS_DDR50) { host 657 drivers/mmc/core/sd.c mmc_hostname(card->host)); host 699 drivers/mmc/core/sd.c struct mmc_host *host = card->host; host 701 drivers/mmc/core/sd.c if (card->csd.dsr_imp && host->dsr_req) host 702 drivers/mmc/core/sd.c return sprintf(buf, "0x%x\n", host->dsr); host 738 drivers/mmc/core/sd.c int mmc_sd_get_cid(struct mmc_host *host, u32 ocr, u32 *cid, u32 *rocr) host 748 drivers/mmc/core/sd.c pr_warn("%s: Skipping voltage switch\n", mmc_hostname(host)); host 757 drivers/mmc/core/sd.c mmc_go_idle(host); host 765 drivers/mmc/core/sd.c err = mmc_send_if_cond(host, ocr); host 774 drivers/mmc/core/sd.c if (retries && mmc_host_uhs(host)) host 781 drivers/mmc/core/sd.c max_current = sd_get_host_max_current(host); host 785 drivers/mmc/core/sd.c err = mmc_send_app_op_cond(host, ocr, rocr); host 793 drivers/mmc/core/sd.c if (!mmc_host_is_spi(host) && rocr && host 795 drivers/mmc/core/sd.c err = mmc_set_uhs_voltage(host, pocr); host 805 drivers/mmc/core/sd.c err = mmc_send_cid(host, cid); host 809 drivers/mmc/core/sd.c int mmc_sd_get_csd(struct mmc_host *host, struct mmc_card *card) host 827 drivers/mmc/core/sd.c static int mmc_sd_get_ro(struct mmc_host *host) host 836 drivers/mmc/core/sd.c if (host->caps2 & MMC_CAP2_NO_WRITE_PROTECT) host 839 drivers/mmc/core/sd.c if (!host->ops->get_ro) host 842 drivers/mmc/core/sd.c ro = host->ops->get_ro(host); host 847 drivers/mmc/core/sd.c int mmc_sd_setup_card(struct mmc_host *host, struct mmc_card *card, host 888 drivers/mmc/core/sd.c if (mmc_host_is_spi(host)) { host 889 drivers/mmc/core/sd.c err = mmc_spi_set_crc(host, use_spi_crc); host 898 drivers/mmc/core/sd.c int ro = mmc_sd_get_ro(host); host 902 drivers/mmc/core/sd.c mmc_hostname(host)); host 943 drivers/mmc/core/sd.c static int mmc_sd_init_card(struct mmc_host *host, u32 ocr, host 952 drivers/mmc/core/sd.c WARN_ON(!host->claimed); host 954 drivers/mmc/core/sd.c err = mmc_sd_get_cid(host, ocr, cid, &rocr); host 961 drivers/mmc/core/sd.c mmc_hostname(host)); host 970 drivers/mmc/core/sd.c card = mmc_alloc_card(host, &sd_type); host 982 drivers/mmc/core/sd.c if (host->ops->init_card) host 983 drivers/mmc/core/sd.c host->ops->init_card(host, card); host 988 drivers/mmc/core/sd.c if (!mmc_host_is_spi(host)) { host 989 drivers/mmc/core/sd.c err = mmc_send_relative_addr(host, &card->rca); host 995 drivers/mmc/core/sd.c err = mmc_sd_get_csd(host, card); host 1006 drivers/mmc/core/sd.c if (card->csd.dsr_imp && host->dsr_req) host 1007 drivers/mmc/core/sd.c mmc_set_dsr(host); host 1012 drivers/mmc/core/sd.c if (!mmc_host_is_spi(host)) { host 1018 drivers/mmc/core/sd.c err = mmc_sd_setup_card(host, card, oldcard != NULL); host 1027 drivers/mmc/core/sd.c if (!v18_fixup_failed && !mmc_host_is_spi(host) && mmc_host_uhs(host) && host 1029 drivers/mmc/core/sd.c host->ios.signal_voltage != MMC_SIGNAL_VOLTAGE_180) { host 1040 drivers/mmc/core/sd.c if (mmc_host_set_uhs_voltage(host) || host 1043 drivers/mmc/core/sd.c mmc_power_cycle(host, ocr); host 1053 drivers/mmc/core/sd.c if (rocr & SD_ROCR_S18A && mmc_host_uhs(host)) { host 1063 drivers/mmc/core/sd.c mmc_set_timing(card->host, MMC_TIMING_SD_HS); host 1070 drivers/mmc/core/sd.c mmc_set_clock(host, mmc_sd_get_max_clock(card)); host 1075 drivers/mmc/core/sd.c if ((host->caps & MMC_CAP_4_BIT_DATA) && host 1081 drivers/mmc/core/sd.c mmc_set_bus_width(host, MMC_BUS_WIDTH_4); host 1085 drivers/mmc/core/sd.c if (host->caps2 & MMC_CAP2_AVOID_3_3V && host 1086 drivers/mmc/core/sd.c host->ios.signal_voltage == MMC_SIGNAL_VOLTAGE_330) { host 1088 drivers/mmc/core/sd.c mmc_hostname(host)); host 1093 drivers/mmc/core/sd.c host->card = card; host 1106 drivers/mmc/core/sd.c static void mmc_sd_remove(struct mmc_host *host) host 1108 drivers/mmc/core/sd.c mmc_remove_card(host->card); host 1109 drivers/mmc/core/sd.c host->card = NULL; host 1115 drivers/mmc/core/sd.c static int mmc_sd_alive(struct mmc_host *host) host 1117 drivers/mmc/core/sd.c return mmc_send_status(host->card, NULL); host 1123 drivers/mmc/core/sd.c static void mmc_sd_detect(struct mmc_host *host) host 1127 drivers/mmc/core/sd.c mmc_get_card(host->card, NULL); host 1132 drivers/mmc/core/sd.c err = _mmc_detect_card_removed(host); host 1134 drivers/mmc/core/sd.c mmc_put_card(host->card, NULL); host 1137 drivers/mmc/core/sd.c mmc_sd_remove(host); host 1139 drivers/mmc/core/sd.c mmc_claim_host(host); host 1140 drivers/mmc/core/sd.c mmc_detach_bus(host); host 1141 drivers/mmc/core/sd.c mmc_power_off(host); host 1142 drivers/mmc/core/sd.c mmc_release_host(host); host 1146 drivers/mmc/core/sd.c static int _mmc_sd_suspend(struct mmc_host *host) host 1150 drivers/mmc/core/sd.c mmc_claim_host(host); host 1152 drivers/mmc/core/sd.c if (mmc_card_suspended(host->card)) host 1155 drivers/mmc/core/sd.c if (!mmc_host_is_spi(host)) host 1156 drivers/mmc/core/sd.c err = mmc_deselect_cards(host); host 1159 drivers/mmc/core/sd.c mmc_power_off(host); host 1160 drivers/mmc/core/sd.c mmc_card_set_suspended(host->card); host 1164 drivers/mmc/core/sd.c mmc_release_host(host); host 1171 drivers/mmc/core/sd.c static int mmc_sd_suspend(struct mmc_host *host) host 1175 drivers/mmc/core/sd.c err = _mmc_sd_suspend(host); host 1177 drivers/mmc/core/sd.c pm_runtime_disable(&host->card->dev); host 1178 drivers/mmc/core/sd.c pm_runtime_set_suspended(&host->card->dev); host 1188 drivers/mmc/core/sd.c static int _mmc_sd_resume(struct mmc_host *host) host 1192 drivers/mmc/core/sd.c mmc_claim_host(host); host 1194 drivers/mmc/core/sd.c if (!mmc_card_suspended(host->card)) host 1197 drivers/mmc/core/sd.c mmc_power_up(host, host->card->ocr); host 1198 drivers/mmc/core/sd.c err = mmc_sd_init_card(host, host->card->ocr, host->card); host 1199 drivers/mmc/core/sd.c mmc_card_clr_suspended(host->card); host 1202 drivers/mmc/core/sd.c mmc_release_host(host); host 1209 drivers/mmc/core/sd.c static int mmc_sd_resume(struct mmc_host *host) host 1211 drivers/mmc/core/sd.c pm_runtime_enable(&host->card->dev); host 1218 drivers/mmc/core/sd.c static int mmc_sd_runtime_suspend(struct mmc_host *host) host 1222 drivers/mmc/core/sd.c if (!(host->caps & MMC_CAP_AGGRESSIVE_PM)) host 1225 drivers/mmc/core/sd.c err = _mmc_sd_suspend(host); host 1228 drivers/mmc/core/sd.c mmc_hostname(host), err); host 1236 drivers/mmc/core/sd.c static int mmc_sd_runtime_resume(struct mmc_host *host) host 1240 drivers/mmc/core/sd.c err = _mmc_sd_resume(host); host 1243 drivers/mmc/core/sd.c mmc_hostname(host), err); host 1248 drivers/mmc/core/sd.c static int mmc_sd_hw_reset(struct mmc_host *host) host 1250 drivers/mmc/core/sd.c mmc_power_cycle(host, host->card->ocr); host 1251 drivers/mmc/core/sd.c return mmc_sd_init_card(host, host->card->ocr, host->card); host 1269 drivers/mmc/core/sd.c int mmc_attach_sd(struct mmc_host *host) host 1274 drivers/mmc/core/sd.c WARN_ON(!host->claimed); host 1276 drivers/mmc/core/sd.c err = mmc_send_app_op_cond(host, 0, &ocr); host 1280 drivers/mmc/core/sd.c mmc_attach_bus(host, &mmc_sd_ops); host 1281 drivers/mmc/core/sd.c if (host->ocr_avail_sd) host 1282 drivers/mmc/core/sd.c host->ocr_avail = host->ocr_avail_sd; host 1287 drivers/mmc/core/sd.c if (mmc_host_is_spi(host)) { host 1288 drivers/mmc/core/sd.c mmc_go_idle(host); host 1290 drivers/mmc/core/sd.c err = mmc_spi_read_ocr(host, 0, &ocr); host 1301 drivers/mmc/core/sd.c rocr = mmc_select_voltage(host, ocr); host 1314 drivers/mmc/core/sd.c err = mmc_sd_init_card(host, rocr, NULL); host 1318 drivers/mmc/core/sd.c mmc_release_host(host); host 1319 drivers/mmc/core/sd.c err = mmc_add_card(host->card); host 1323 drivers/mmc/core/sd.c mmc_claim_host(host); host 1327 drivers/mmc/core/sd.c mmc_remove_card(host->card); host 1328 drivers/mmc/core/sd.c host->card = NULL; host 1329 drivers/mmc/core/sd.c mmc_claim_host(host); host 1331 drivers/mmc/core/sd.c mmc_detach_bus(host); host 1334 drivers/mmc/core/sd.c mmc_hostname(host), err); host 12 drivers/mmc/core/sd.h int mmc_sd_get_cid(struct mmc_host *host, u32 ocr, u32 *cid, u32 *rocr); host 13 drivers/mmc/core/sd.h int mmc_sd_get_csd(struct mmc_host *host, struct mmc_card *card); host 15 drivers/mmc/core/sd.h int mmc_sd_setup_card(struct mmc_host *host, struct mmc_card *card, host 21 drivers/mmc/core/sd_ops.c int mmc_app_cmd(struct mmc_host *host, struct mmc_card *card) host 26 drivers/mmc/core/sd_ops.c if (WARN_ON(card && card->host != host)) host 39 drivers/mmc/core/sd_ops.c err = mmc_wait_for_cmd(host, &cmd, 0); host 44 drivers/mmc/core/sd_ops.c if (!mmc_host_is_spi(host) && !(cmd.resp[0] & R1_APP_CMD)) host 51 drivers/mmc/core/sd_ops.c static int mmc_wait_for_app_cmd(struct mmc_host *host, struct mmc_card *card, host 62 drivers/mmc/core/sd_ops.c err = mmc_app_cmd(host, card); host 65 drivers/mmc/core/sd_ops.c if (mmc_host_is_spi(host)) { host 80 drivers/mmc/core/sd_ops.c mmc_wait_for_req(host, &mrq); host 87 drivers/mmc/core/sd_ops.c if (mmc_host_is_spi(host)) { host 114 drivers/mmc/core/sd_ops.c return mmc_wait_for_app_cmd(card->host, card, &cmd); host 117 drivers/mmc/core/sd_ops.c int mmc_send_app_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr) host 123 drivers/mmc/core/sd_ops.c if (mmc_host_is_spi(host)) host 130 drivers/mmc/core/sd_ops.c err = mmc_wait_for_app_cmd(host, NULL, &cmd); host 139 drivers/mmc/core/sd_ops.c if (mmc_host_is_spi(host)) { host 153 drivers/mmc/core/sd_ops.c pr_err("%s: card never left busy state\n", mmc_hostname(host)); host 155 drivers/mmc/core/sd_ops.c if (rocr && !mmc_host_is_spi(host)) host 161 drivers/mmc/core/sd_ops.c int mmc_send_if_cond(struct mmc_host *host, u32 ocr) host 177 drivers/mmc/core/sd_ops.c err = mmc_wait_for_cmd(host, &cmd, 0); host 181 drivers/mmc/core/sd_ops.c if (mmc_host_is_spi(host)) host 192 drivers/mmc/core/sd_ops.c int mmc_send_relative_addr(struct mmc_host *host, unsigned int *rca) host 201 drivers/mmc/core/sd_ops.c err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); host 221 drivers/mmc/core/sd_ops.c err = mmc_app_cmd(card->host, card); host 249 drivers/mmc/core/sd_ops.c mmc_wait_for_req(card->host, &mrq); host 296 drivers/mmc/core/sd_ops.c mmc_wait_for_req(card->host, &mrq); host 316 drivers/mmc/core/sd_ops.c err = mmc_app_cmd(card->host, card); host 337 drivers/mmc/core/sd_ops.c mmc_wait_for_req(card->host, &mrq); host 17 drivers/mmc/core/sd_ops.h int mmc_send_app_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr); host 18 drivers/mmc/core/sd_ops.h int mmc_send_if_cond(struct mmc_host *host, u32 ocr); host 19 drivers/mmc/core/sd_ops.h int mmc_send_relative_addr(struct mmc_host *host, unsigned int *rca); host 24 drivers/mmc/core/sd_ops.h int mmc_app_cmd(struct mmc_host *host, struct mmc_card *card); host 117 drivers/mmc/core/sdio.c mmc_hostname(card->host), cccr_vsn); host 158 drivers/mmc/core/sdio.c if (mmc_host_uhs(card->host)) { host 206 drivers/mmc/core/sdio.c if (!(card->host->caps & MMC_CAP_4_BIT_DATA)) host 218 drivers/mmc/core/sdio.c mmc_hostname(card->host), ctrl); host 263 drivers/mmc/core/sdio.c if (!(card->host->caps & MMC_CAP_4_BIT_DATA)) host 283 drivers/mmc/core/sdio.c mmc_set_bus_width(card->host, MMC_BUS_WIDTH_1); host 295 drivers/mmc/core/sdio.c else if ((card->host->caps & MMC_CAP_4_BIT_DATA) && host 307 drivers/mmc/core/sdio.c mmc_set_bus_width(card->host, MMC_BUS_WIDTH_4); host 323 drivers/mmc/core/sdio.c if (!(card->host->caps & MMC_CAP_SD_HIGHSPEED)) host 434 drivers/mmc/core/sdio.c mmc_set_driver_type(card->host, drv_type); host 449 drivers/mmc/core/sdio.c if (!mmc_host_uhs(card->host)) host 454 drivers/mmc/core/sdio.c if ((card->host->caps & MMC_CAP_UHS_SDR104) && host 460 drivers/mmc/core/sdio.c } else if ((card->host->caps & MMC_CAP_UHS_DDR50) && host 466 drivers/mmc/core/sdio.c } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | host 473 drivers/mmc/core/sdio.c } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | host 480 drivers/mmc/core/sdio.c } else if ((card->host->caps & (MMC_CAP_UHS_SDR104 | host 504 drivers/mmc/core/sdio.c mmc_set_timing(card->host, timing); host 505 drivers/mmc/core/sdio.c mmc_set_clock(card->host, max_rate); host 538 drivers/mmc/core/sdio.c if (!mmc_host_is_spi(card->host) && host 539 drivers/mmc/core/sdio.c ((card->host->ios.timing == MMC_TIMING_UHS_SDR50) || host 540 drivers/mmc/core/sdio.c (card->host->ios.timing == MMC_TIMING_UHS_SDR104))) host 546 drivers/mmc/core/sdio.c static void mmc_sdio_resend_if_cond(struct mmc_host *host, host 549 drivers/mmc/core/sdio.c sdio_reset(host); host 550 drivers/mmc/core/sdio.c mmc_go_idle(host); host 551 drivers/mmc/core/sdio.c mmc_send_if_cond(host, host->ocr_avail); host 561 drivers/mmc/core/sdio.c static int mmc_sdio_init_card(struct mmc_host *host, u32 ocr, host 570 drivers/mmc/core/sdio.c WARN_ON(!host->claimed); host 573 drivers/mmc/core/sdio.c if (mmc_host_uhs(host)) host 578 drivers/mmc/core/sdio.c pr_warn("%s: Skipping voltage switch\n", mmc_hostname(host)); host 585 drivers/mmc/core/sdio.c err = mmc_send_io_op_cond(host, ocr, &rocr); host 592 drivers/mmc/core/sdio.c if (mmc_host_is_spi(host)) { host 593 drivers/mmc/core/sdio.c err = mmc_spi_set_crc(host, use_spi_crc); host 601 drivers/mmc/core/sdio.c card = mmc_alloc_card(host, NULL); host 606 drivers/mmc/core/sdio.c mmc_sd_get_cid(host, ocr & rocr, card->raw_cid, NULL) == 0) { host 626 drivers/mmc/core/sdio.c if (host->ops->init_card) host 627 drivers/mmc/core/sdio.c host->ops->init_card(host, card); host 641 drivers/mmc/core/sdio.c err = mmc_set_uhs_voltage(host, ocr_card); host 643 drivers/mmc/core/sdio.c mmc_sdio_resend_if_cond(host, card); host 654 drivers/mmc/core/sdio.c if (!mmc_host_is_spi(host)) { host 655 drivers/mmc/core/sdio.c err = mmc_send_relative_addr(host, &card->rca); host 672 drivers/mmc/core/sdio.c err = mmc_sd_get_csd(host, card); host 682 drivers/mmc/core/sdio.c if (!mmc_host_is_spi(host)) { host 695 drivers/mmc/core/sdio.c mmc_set_clock(host, card->cis.max_dtr); host 698 drivers/mmc/core/sdio.c mmc_set_timing(card->host, MMC_TIMING_SD_HS); host 704 drivers/mmc/core/sdio.c host->card = card; host 715 drivers/mmc/core/sdio.c mmc_sdio_resend_if_cond(host, card); host 745 drivers/mmc/core/sdio.c err = mmc_sd_setup_card(host, card, oldcard != NULL); host 748 drivers/mmc/core/sdio.c mmc_go_idle(host); host 749 drivers/mmc/core/sdio.c if (mmc_host_is_spi(host)) host 751 drivers/mmc/core/sdio.c mmc_spi_set_crc(host, use_spi_crc); host 776 drivers/mmc/core/sdio.c mmc_set_timing(card->host, MMC_TIMING_SD_HS); host 783 drivers/mmc/core/sdio.c mmc_set_clock(host, mmc_sdio_get_max_clock(card)); host 793 drivers/mmc/core/sdio.c if (host->caps2 & MMC_CAP2_AVOID_3_3V && host 794 drivers/mmc/core/sdio.c host->ios.signal_voltage == MMC_SIGNAL_VOLTAGE_330) { host 796 drivers/mmc/core/sdio.c mmc_hostname(host)); host 801 drivers/mmc/core/sdio.c host->card = card; host 805 drivers/mmc/core/sdio.c pr_debug("%s: Perhaps the card was replaced\n", mmc_hostname(host)); host 812 drivers/mmc/core/sdio.c static int mmc_sdio_reinit_card(struct mmc_host *host) host 833 drivers/mmc/core/sdio.c sdio_reset(host); host 834 drivers/mmc/core/sdio.c mmc_go_idle(host); host 835 drivers/mmc/core/sdio.c mmc_send_if_cond(host, host->card->ocr); host 837 drivers/mmc/core/sdio.c ret = mmc_send_io_op_cond(host, 0, NULL); host 841 drivers/mmc/core/sdio.c return mmc_sdio_init_card(host, host->card->ocr, host->card); host 847 drivers/mmc/core/sdio.c static void mmc_sdio_remove(struct mmc_host *host) host 851 drivers/mmc/core/sdio.c for (i = 0;i < host->card->sdio_funcs;i++) { host 852 drivers/mmc/core/sdio.c if (host->card->sdio_func[i]) { host 853 drivers/mmc/core/sdio.c sdio_remove_func(host->card->sdio_func[i]); host 854 drivers/mmc/core/sdio.c host->card->sdio_func[i] = NULL; host 858 drivers/mmc/core/sdio.c mmc_remove_card(host->card); host 859 drivers/mmc/core/sdio.c host->card = NULL; host 865 drivers/mmc/core/sdio.c static int mmc_sdio_alive(struct mmc_host *host) host 867 drivers/mmc/core/sdio.c return mmc_select_card(host->card); host 873 drivers/mmc/core/sdio.c static void mmc_sdio_detect(struct mmc_host *host) host 878 drivers/mmc/core/sdio.c if (host->caps & MMC_CAP_POWER_OFF_CARD) { host 879 drivers/mmc/core/sdio.c err = pm_runtime_get_sync(&host->card->dev); host 881 drivers/mmc/core/sdio.c pm_runtime_put_noidle(&host->card->dev); host 886 drivers/mmc/core/sdio.c mmc_claim_host(host); host 891 drivers/mmc/core/sdio.c err = _mmc_detect_card_removed(host); host 893 drivers/mmc/core/sdio.c mmc_release_host(host); host 906 drivers/mmc/core/sdio.c if (host->caps & MMC_CAP_POWER_OFF_CARD) host 907 drivers/mmc/core/sdio.c pm_runtime_put_sync(&host->card->dev); host 911 drivers/mmc/core/sdio.c mmc_sdio_remove(host); host 913 drivers/mmc/core/sdio.c mmc_claim_host(host); host 914 drivers/mmc/core/sdio.c mmc_detach_bus(host); host 915 drivers/mmc/core/sdio.c mmc_power_off(host); host 916 drivers/mmc/core/sdio.c mmc_release_host(host); host 925 drivers/mmc/core/sdio.c static int mmc_sdio_pre_suspend(struct mmc_host *host) host 929 drivers/mmc/core/sdio.c for (i = 0; i < host->card->sdio_funcs; i++) { host 930 drivers/mmc/core/sdio.c struct sdio_func *func = host->card->sdio_func[i]; host 947 drivers/mmc/core/sdio.c static int mmc_sdio_suspend(struct mmc_host *host) host 949 drivers/mmc/core/sdio.c WARN_ON(host->sdio_irqs && !mmc_card_keep_power(host)); host 952 drivers/mmc/core/sdio.c mmc_card_set_suspended(host->card); host 953 drivers/mmc/core/sdio.c cancel_delayed_work_sync(&host->sdio_irq_work); host 955 drivers/mmc/core/sdio.c mmc_claim_host(host); host 957 drivers/mmc/core/sdio.c if (mmc_card_keep_power(host) && mmc_card_wake_sdio_irq(host)) host 958 drivers/mmc/core/sdio.c sdio_disable_wide(host->card); host 960 drivers/mmc/core/sdio.c if (!mmc_card_keep_power(host)) { host 961 drivers/mmc/core/sdio.c mmc_power_off(host); host 962 drivers/mmc/core/sdio.c } else if (host->retune_period) { host 963 drivers/mmc/core/sdio.c mmc_retune_timer_stop(host); host 964 drivers/mmc/core/sdio.c mmc_retune_needed(host); host 967 drivers/mmc/core/sdio.c mmc_release_host(host); host 972 drivers/mmc/core/sdio.c static int mmc_sdio_resume(struct mmc_host *host) host 977 drivers/mmc/core/sdio.c mmc_claim_host(host); host 984 drivers/mmc/core/sdio.c if (!mmc_card_keep_power(host)) { host 985 drivers/mmc/core/sdio.c mmc_power_up(host, host->card->ocr); host 992 drivers/mmc/core/sdio.c if (host->caps & MMC_CAP_POWER_OFF_CARD) { host 993 drivers/mmc/core/sdio.c pm_runtime_disable(&host->card->dev); host 994 drivers/mmc/core/sdio.c pm_runtime_set_active(&host->card->dev); host 995 drivers/mmc/core/sdio.c pm_runtime_enable(&host->card->dev); host 997 drivers/mmc/core/sdio.c err = mmc_sdio_reinit_card(host); host 998 drivers/mmc/core/sdio.c } else if (mmc_card_wake_sdio_irq(host)) { host 1000 drivers/mmc/core/sdio.c err = sdio_enable_4bit_bus(host->card); host 1007 drivers/mmc/core/sdio.c mmc_card_clr_suspended(host->card); host 1009 drivers/mmc/core/sdio.c if (host->sdio_irqs) { host 1010 drivers/mmc/core/sdio.c if (!(host->caps2 & MMC_CAP2_SDIO_IRQ_NOTHREAD)) host 1011 drivers/mmc/core/sdio.c wake_up_process(host->sdio_irq_thread); host 1012 drivers/mmc/core/sdio.c else if (host->caps & MMC_CAP_SDIO_IRQ) host 1013 drivers/mmc/core/sdio.c queue_delayed_work(system_wq, &host->sdio_irq_work, 0); host 1017 drivers/mmc/core/sdio.c mmc_release_host(host); host 1019 drivers/mmc/core/sdio.c host->pm_flags &= ~MMC_PM_KEEP_POWER; host 1023 drivers/mmc/core/sdio.c static int mmc_sdio_runtime_suspend(struct mmc_host *host) host 1026 drivers/mmc/core/sdio.c mmc_claim_host(host); host 1027 drivers/mmc/core/sdio.c mmc_power_off(host); host 1028 drivers/mmc/core/sdio.c mmc_release_host(host); host 1033 drivers/mmc/core/sdio.c static int mmc_sdio_runtime_resume(struct mmc_host *host) host 1038 drivers/mmc/core/sdio.c mmc_claim_host(host); host 1039 drivers/mmc/core/sdio.c mmc_power_up(host, host->card->ocr); host 1040 drivers/mmc/core/sdio.c ret = mmc_sdio_reinit_card(host); host 1041 drivers/mmc/core/sdio.c mmc_release_host(host); host 1052 drivers/mmc/core/sdio.c static int mmc_sdio_hw_reset(struct mmc_host *host) host 1054 drivers/mmc/core/sdio.c struct mmc_card *card = host->card; host 1064 drivers/mmc/core/sdio.c host->rescan_entered = 0; host 1066 drivers/mmc/core/sdio.c _mmc_detect_change(host, 0, false); host 1074 drivers/mmc/core/sdio.c mmc_power_cycle(host, card->ocr); host 1075 drivers/mmc/core/sdio.c return mmc_sdio_reinit_card(host); host 1078 drivers/mmc/core/sdio.c static int mmc_sdio_sw_reset(struct mmc_host *host) host 1080 drivers/mmc/core/sdio.c mmc_set_clock(host, host->f_init); host 1081 drivers/mmc/core/sdio.c sdio_reset(host); host 1082 drivers/mmc/core/sdio.c mmc_go_idle(host); host 1084 drivers/mmc/core/sdio.c mmc_set_initial_state(host); host 1085 drivers/mmc/core/sdio.c mmc_set_initial_signal_voltage(host); host 1087 drivers/mmc/core/sdio.c return mmc_sdio_reinit_card(host); host 1107 drivers/mmc/core/sdio.c int mmc_attach_sdio(struct mmc_host *host) host 1113 drivers/mmc/core/sdio.c WARN_ON(!host->claimed); host 1115 drivers/mmc/core/sdio.c err = mmc_send_io_op_cond(host, 0, &ocr); host 1119 drivers/mmc/core/sdio.c mmc_attach_bus(host, &mmc_sdio_ops); host 1120 drivers/mmc/core/sdio.c if (host->ocr_avail_sdio) host 1121 drivers/mmc/core/sdio.c host->ocr_avail = host->ocr_avail_sdio; host 1124 drivers/mmc/core/sdio.c rocr = mmc_select_voltage(host, ocr); host 1137 drivers/mmc/core/sdio.c err = mmc_sdio_init_card(host, rocr, NULL); host 1141 drivers/mmc/core/sdio.c card = host->card; host 1146 drivers/mmc/core/sdio.c if (host->caps & MMC_CAP_POWER_OFF_CARD) { host 1177 drivers/mmc/core/sdio.c err = sdio_init_func(host->card, i + 1); host 1184 drivers/mmc/core/sdio.c if (host->caps & MMC_CAP_POWER_OFF_CARD) host 1191 drivers/mmc/core/sdio.c mmc_release_host(host); host 1192 drivers/mmc/core/sdio.c err = mmc_add_card(host->card); host 1200 drivers/mmc/core/sdio.c err = sdio_add_func(host->card->sdio_func[i]); host 1205 drivers/mmc/core/sdio.c if (host->caps & MMC_CAP_POWER_OFF_CARD) host 1208 drivers/mmc/core/sdio.c mmc_claim_host(host); host 1213 drivers/mmc/core/sdio.c mmc_release_host(host); host 1221 drivers/mmc/core/sdio.c mmc_sdio_remove(host); host 1222 drivers/mmc/core/sdio.c mmc_claim_host(host); host 1224 drivers/mmc/core/sdio.c mmc_detach_bus(host); host 1227 drivers/mmc/core/sdio.c mmc_hostname(host), err); host 149 drivers/mmc/core/sdio_bus.c if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD) { host 174 drivers/mmc/core/sdio_bus.c if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD) host 186 drivers/mmc/core/sdio_bus.c if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD) host 201 drivers/mmc/core/sdio_bus.c if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD) host 205 drivers/mmc/core/sdio_bus.c if (func->card->host->caps & MMC_CAP_POWER_OFF_CARD) host 311 drivers/mmc/core/sdio_bus.c struct mmc_host *host = func->card->host; host 312 drivers/mmc/core/sdio_bus.c u64 addr = ((u64)host->slotno << 16) | func->num; host 314 drivers/mmc/core/sdio_bus.c acpi_preset_companion(&func->dev, ACPI_COMPANION(host->parent), addr); host 322 drivers/mmc/core/sdio_bus.c struct mmc_host *host = func->card->host; host 324 drivers/mmc/core/sdio_bus.c func->dev.of_node = mmc_of_find_child_device(host, func->num); host 132 drivers/mmc/core/sdio_cis.c mmc_hostname(card->host), tpl_descr, code, size); host 178 drivers/mmc/core/sdio_cis.c mmc_hostname(card->host)); host 321 drivers/mmc/core/sdio_cis.c mmc_hostname(card->host), host 32 drivers/mmc/core/sdio_io.c mmc_claim_host(func->card->host); host 48 drivers/mmc/core/sdio_io.c mmc_release_host(func->card->host); host 163 drivers/mmc/core/sdio_io.c if (blksz > func->card->host->max_blk_size) host 167 drivers/mmc/core/sdio_io.c blksz = min(func->max_blksize, func->card->host->max_blk_size); host 191 drivers/mmc/core/sdio_io.c unsigned mval = func->card->host->max_blk_size; host 329 drivers/mmc/core/sdio_io.c max_blocks = min(func->card->host->max_blk_count, 511u); host 705 drivers/mmc/core/sdio_io.c return func->card->host->pm_caps; host 723 drivers/mmc/core/sdio_io.c struct mmc_host *host; host 728 drivers/mmc/core/sdio_io.c host = func->card->host; host 730 drivers/mmc/core/sdio_io.c if (flags & ~host->pm_caps) host 734 drivers/mmc/core/sdio_io.c host->pm_flags |= flags; host 760 drivers/mmc/core/sdio_io.c func->card->host->retune_crc_disable = true; host 772 drivers/mmc/core/sdio_io.c func->card->host->retune_crc_disable = false; host 795 drivers/mmc/core/sdio_io.c mmc_retune_hold_now(func->card->host); host 811 drivers/mmc/core/sdio_io.c mmc_retune_release(func->card->host); host 30 drivers/mmc/core/sdio_irq.c static int sdio_get_pending_irqs(struct mmc_host *host, u8 *pending) host 32 drivers/mmc/core/sdio_irq.c struct mmc_card *card = host->card; host 35 drivers/mmc/core/sdio_irq.c WARN_ON(!host->claimed); host 45 drivers/mmc/core/sdio_irq.c !(host->caps & MMC_CAP_SDIO_IRQ)) { host 58 drivers/mmc/core/sdio_irq.c static int process_sdio_pending_irqs(struct mmc_host *host) host 60 drivers/mmc/core/sdio_irq.c struct mmc_card *card = host->card; host 62 drivers/mmc/core/sdio_irq.c bool sdio_irq_pending = host->sdio_irq_pending; host 71 drivers/mmc/core/sdio_irq.c host->sdio_irq_pending = false; host 84 drivers/mmc/core/sdio_irq.c ret = sdio_get_pending_irqs(host, &pending); host 113 drivers/mmc/core/sdio_irq.c static void sdio_run_irqs(struct mmc_host *host) host 115 drivers/mmc/core/sdio_irq.c mmc_claim_host(host); host 116 drivers/mmc/core/sdio_irq.c if (host->sdio_irqs) { host 117 drivers/mmc/core/sdio_irq.c process_sdio_pending_irqs(host); host 118 drivers/mmc/core/sdio_irq.c if (!host->sdio_irq_pending) host 119 drivers/mmc/core/sdio_irq.c host->ops->ack_sdio_irq(host); host 121 drivers/mmc/core/sdio_irq.c mmc_release_host(host); host 126 drivers/mmc/core/sdio_irq.c struct mmc_host *host = host 129 drivers/mmc/core/sdio_irq.c sdio_run_irqs(host); host 132 drivers/mmc/core/sdio_irq.c void sdio_signal_irq(struct mmc_host *host) host 134 drivers/mmc/core/sdio_irq.c host->sdio_irq_pending = true; host 135 drivers/mmc/core/sdio_irq.c queue_delayed_work(system_wq, &host->sdio_irq_work, 0); host 141 drivers/mmc/core/sdio_irq.c struct mmc_host *host = _host; host 155 drivers/mmc/core/sdio_irq.c period = (host->caps & MMC_CAP_SDIO_IRQ) ? host 159 drivers/mmc/core/sdio_irq.c mmc_hostname(host), period); host 175 drivers/mmc/core/sdio_irq.c ret = __mmc_claim_host(host, NULL, host 176 drivers/mmc/core/sdio_irq.c &host->sdio_irq_thread_abort); host 179 drivers/mmc/core/sdio_irq.c ret = process_sdio_pending_irqs(host); host 180 drivers/mmc/core/sdio_irq.c mmc_release_host(host); host 198 drivers/mmc/core/sdio_irq.c if (!(host->caps & MMC_CAP_SDIO_IRQ)) { host 209 drivers/mmc/core/sdio_irq.c if (host->caps & MMC_CAP_SDIO_IRQ) host 210 drivers/mmc/core/sdio_irq.c host->ops->enable_sdio_irq(host, 1); host 216 drivers/mmc/core/sdio_irq.c if (host->caps & MMC_CAP_SDIO_IRQ) host 217 drivers/mmc/core/sdio_irq.c host->ops->enable_sdio_irq(host, 0); host 220 drivers/mmc/core/sdio_irq.c mmc_hostname(host), ret); host 227 drivers/mmc/core/sdio_irq.c struct mmc_host *host = card->host; host 229 drivers/mmc/core/sdio_irq.c WARN_ON(!host->claimed); host 231 drivers/mmc/core/sdio_irq.c if (!host->sdio_irqs++) { host 232 drivers/mmc/core/sdio_irq.c if (!(host->caps2 & MMC_CAP2_SDIO_IRQ_NOTHREAD)) { host 233 drivers/mmc/core/sdio_irq.c atomic_set(&host->sdio_irq_thread_abort, 0); host 234 drivers/mmc/core/sdio_irq.c host->sdio_irq_thread = host 235 drivers/mmc/core/sdio_irq.c kthread_run(sdio_irq_thread, host, host 236 drivers/mmc/core/sdio_irq.c "ksdioirqd/%s", mmc_hostname(host)); host 237 drivers/mmc/core/sdio_irq.c if (IS_ERR(host->sdio_irq_thread)) { host 238 drivers/mmc/core/sdio_irq.c int err = PTR_ERR(host->sdio_irq_thread); host 239 drivers/mmc/core/sdio_irq.c host->sdio_irqs--; host 242 drivers/mmc/core/sdio_irq.c } else if (host->caps & MMC_CAP_SDIO_IRQ) { host 243 drivers/mmc/core/sdio_irq.c host->ops->enable_sdio_irq(host, 1); host 252 drivers/mmc/core/sdio_irq.c struct mmc_host *host = card->host; host 254 drivers/mmc/core/sdio_irq.c WARN_ON(!host->claimed); host 256 drivers/mmc/core/sdio_irq.c if (host->sdio_irqs < 1) host 259 drivers/mmc/core/sdio_irq.c if (!--host->sdio_irqs) { host 260 drivers/mmc/core/sdio_irq.c if (!(host->caps2 & MMC_CAP2_SDIO_IRQ_NOTHREAD)) { host 261 drivers/mmc/core/sdio_irq.c atomic_set(&host->sdio_irq_thread_abort, 1); host 262 drivers/mmc/core/sdio_irq.c kthread_stop(host->sdio_irq_thread); host 263 drivers/mmc/core/sdio_irq.c } else if (host->caps & MMC_CAP_SDIO_IRQ) { host 264 drivers/mmc/core/sdio_irq.c host->ops->enable_sdio_irq(host, 0); host 278 drivers/mmc/core/sdio_irq.c if ((card->host->caps & MMC_CAP_SDIO_IRQ) && host 279 drivers/mmc/core/sdio_irq.c card->host->sdio_irqs == 1) host 18 drivers/mmc/core/sdio_ops.c int mmc_send_io_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr) host 28 drivers/mmc/core/sdio_ops.c err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); host 37 drivers/mmc/core/sdio_ops.c if (mmc_host_is_spi(host)) { host 57 drivers/mmc/core/sdio_ops.c *rocr = cmd.resp[mmc_host_is_spi(host) ? 1 : 0]; host 62 drivers/mmc/core/sdio_ops.c static int mmc_io_rw_direct_host(struct mmc_host *host, int write, unsigned fn, host 83 drivers/mmc/core/sdio_ops.c err = mmc_wait_for_cmd(host, &cmd, 0); host 87 drivers/mmc/core/sdio_ops.c if (mmc_host_is_spi(host)) { host 99 drivers/mmc/core/sdio_ops.c if (mmc_host_is_spi(host)) host 111 drivers/mmc/core/sdio_ops.c return mmc_io_rw_direct_host(card->host, write, fn, addr, in, out); host 123 drivers/mmc/core/sdio_ops.c unsigned int seg_size = card->host->max_seg_size; host 173 drivers/mmc/core/sdio_ops.c mmc_wait_for_req(card->host, &mrq); host 183 drivers/mmc/core/sdio_ops.c if (mmc_host_is_spi(card->host)) { host 197 drivers/mmc/core/sdio_ops.c int sdio_reset(struct mmc_host *host) host 204 drivers/mmc/core/sdio_ops.c ret = mmc_io_rw_direct_host(host, 0, 0, SDIO_CCCR_ABORT, 0, &abort); host 210 drivers/mmc/core/sdio_ops.c return mmc_io_rw_direct_host(host, 1, 0, SDIO_CCCR_ABORT, abort, NULL); host 18 drivers/mmc/core/sdio_ops.h int mmc_send_io_op_cond(struct mmc_host *host, u32 ocr, u32 *rocr); host 23 drivers/mmc/core/sdio_ops.h int sdio_reset(struct mmc_host *host); host 32 drivers/mmc/core/slot-gpio.c struct mmc_host *host = dev_id; host 33 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 35 drivers/mmc/core/slot-gpio.c host->trigger_card_event = true; host 36 drivers/mmc/core/slot-gpio.c mmc_detect_change(host, msecs_to_jiffies(ctx->cd_debounce_delay_ms)); host 41 drivers/mmc/core/slot-gpio.c int mmc_gpio_alloc(struct mmc_host *host) host 43 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = devm_kzalloc(host->parent, host 48 drivers/mmc/core/slot-gpio.c ctx->cd_label = devm_kasprintf(host->parent, GFP_KERNEL, host 49 drivers/mmc/core/slot-gpio.c "%s cd", dev_name(host->parent)); host 52 drivers/mmc/core/slot-gpio.c ctx->ro_label = devm_kasprintf(host->parent, GFP_KERNEL, host 53 drivers/mmc/core/slot-gpio.c "%s ro", dev_name(host->parent)); host 56 drivers/mmc/core/slot-gpio.c host->slot.handler_priv = ctx; host 57 drivers/mmc/core/slot-gpio.c host->slot.cd_irq = -EINVAL; host 63 drivers/mmc/core/slot-gpio.c int mmc_gpio_get_ro(struct mmc_host *host) host 65 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 74 drivers/mmc/core/slot-gpio.c int mmc_gpio_get_cd(struct mmc_host *host) host 76 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 87 drivers/mmc/core/slot-gpio.c return !value ^ !!(host->caps2 & MMC_CAP2_CD_ACTIVE_HIGH); host 96 drivers/mmc/core/slot-gpio.c void mmc_gpiod_request_cd_irq(struct mmc_host *host) host 98 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 102 drivers/mmc/core/slot-gpio.c if (host->slot.cd_irq >= 0 || !ctx || !ctx->cd_gpio) host 109 drivers/mmc/core/slot-gpio.c if (!(host->caps & MMC_CAP_NEEDS_POLL)) host 115 drivers/mmc/core/slot-gpio.c ret = devm_request_threaded_irq(host->parent, irq, host 118 drivers/mmc/core/slot-gpio.c ctx->cd_label, host); host 123 drivers/mmc/core/slot-gpio.c host->slot.cd_irq = irq; host 126 drivers/mmc/core/slot-gpio.c host->caps |= MMC_CAP_NEEDS_POLL; host 130 drivers/mmc/core/slot-gpio.c int mmc_gpio_set_cd_wake(struct mmc_host *host, bool on) host 134 drivers/mmc/core/slot-gpio.c if (!(host->caps & MMC_CAP_CD_WAKE) || host 135 drivers/mmc/core/slot-gpio.c host->slot.cd_irq < 0 || host 136 drivers/mmc/core/slot-gpio.c on == host->slot.cd_wake_enabled) host 140 drivers/mmc/core/slot-gpio.c ret = enable_irq_wake(host->slot.cd_irq); host 141 drivers/mmc/core/slot-gpio.c host->slot.cd_wake_enabled = !ret; host 143 drivers/mmc/core/slot-gpio.c disable_irq_wake(host->slot.cd_irq); host 144 drivers/mmc/core/slot-gpio.c host->slot.cd_wake_enabled = false; host 154 drivers/mmc/core/slot-gpio.c void mmc_gpio_set_cd_isr(struct mmc_host *host, host 157 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 179 drivers/mmc/core/slot-gpio.c int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id, host 183 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 187 drivers/mmc/core/slot-gpio.c desc = devm_gpiod_get_index(host->parent, con_id, idx, GPIOD_IN); host 207 drivers/mmc/core/slot-gpio.c bool mmc_can_gpio_cd(struct mmc_host *host) host 209 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 226 drivers/mmc/core/slot-gpio.c int mmc_gpiod_request_ro(struct mmc_host *host, const char *con_id, host 230 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 234 drivers/mmc/core/slot-gpio.c desc = devm_gpiod_get_index(host->parent, con_id, idx, GPIOD_IN); host 244 drivers/mmc/core/slot-gpio.c if (host->caps2 & MMC_CAP2_RO_ACTIVE_HIGH) host 256 drivers/mmc/core/slot-gpio.c bool mmc_can_gpio_ro(struct mmc_host *host) host 258 drivers/mmc/core/slot-gpio.c struct mmc_gpio *ctx = host->slot.handler_priv; host 12 drivers/mmc/core/slot-gpio.h int mmc_gpio_alloc(struct mmc_host *host); host 72 drivers/mmc/host/alcor.c static inline void alcor_rmw8(struct alcor_sdmmc_host *host, unsigned int addr, host 75 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 87 drivers/mmc/host/alcor.c static inline void alcor_mask_sd_irqs(struct alcor_sdmmc_host *host) host 89 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 94 drivers/mmc/host/alcor.c static inline void alcor_unmask_sd_irqs(struct alcor_sdmmc_host *host) host 96 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 104 drivers/mmc/host/alcor.c static void alcor_reset(struct alcor_sdmmc_host *host, u8 val) host 106 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 116 drivers/mmc/host/alcor.c dev_err(host->dev, "%s: timeout\n", __func__); host 122 drivers/mmc/host/alcor.c static void alcor_data_set_dma(struct alcor_sdmmc_host *host) host 124 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 127 drivers/mmc/host/alcor.c if (!host->sg_count) host 130 drivers/mmc/host/alcor.c if (!host->sg) { host 131 drivers/mmc/host/alcor.c dev_err(host->dev, "have blocks, but no SG\n"); host 135 drivers/mmc/host/alcor.c if (!sg_dma_len(host->sg)) { host 136 drivers/mmc/host/alcor.c dev_err(host->dev, "DMA SG len == 0\n"); host 141 drivers/mmc/host/alcor.c addr = (u32)sg_dma_address(host->sg); host 144 drivers/mmc/host/alcor.c host->sg = sg_next(host->sg); host 145 drivers/mmc/host/alcor.c host->sg_count--; host 148 drivers/mmc/host/alcor.c static void alcor_trigger_data_transfer(struct alcor_sdmmc_host *host) host 150 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 151 drivers/mmc/host/alcor.c struct mmc_data *data = host->data; host 166 drivers/mmc/host/alcor.c alcor_data_set_dma(host); host 168 drivers/mmc/host/alcor.c host->dma_on = 1; host 185 drivers/mmc/host/alcor.c static void alcor_trf_block_pio(struct alcor_sdmmc_host *host, bool read) host 187 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 191 drivers/mmc/host/alcor.c if (!host->blocks) host 194 drivers/mmc/host/alcor.c if (host->dma_on) { host 195 drivers/mmc/host/alcor.c dev_err(host->dev, "configured DMA but got PIO request.\n"); host 199 drivers/mmc/host/alcor.c if (!!(host->data->flags & MMC_DATA_READ) != read) { host 200 drivers/mmc/host/alcor.c dev_err(host->dev, "got unexpected direction %i != %i\n", host 201 drivers/mmc/host/alcor.c !!(host->data->flags & MMC_DATA_READ), read); host 204 drivers/mmc/host/alcor.c if (!sg_miter_next(&host->sg_miter)) host 207 drivers/mmc/host/alcor.c blksize = host->data->blksz; host 208 drivers/mmc/host/alcor.c len = min(host->sg_miter.length, blksize); host 210 drivers/mmc/host/alcor.c dev_dbg(host->dev, "PIO, %s block size: 0x%zx\n", host 213 drivers/mmc/host/alcor.c host->sg_miter.consumed = len; host 214 drivers/mmc/host/alcor.c host->blocks--; host 216 drivers/mmc/host/alcor.c buf = host->sg_miter.addr; host 223 drivers/mmc/host/alcor.c sg_miter_stop(&host->sg_miter); host 226 drivers/mmc/host/alcor.c static void alcor_prepare_sg_miter(struct alcor_sdmmc_host *host) host 229 drivers/mmc/host/alcor.c struct mmc_data *data = host->data; host 235 drivers/mmc/host/alcor.c sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags); host 238 drivers/mmc/host/alcor.c static void alcor_prepare_data(struct alcor_sdmmc_host *host, host 241 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 248 drivers/mmc/host/alcor.c host->data = data; host 249 drivers/mmc/host/alcor.c host->data->bytes_xfered = 0; host 250 drivers/mmc/host/alcor.c host->blocks = data->blocks; host 251 drivers/mmc/host/alcor.c host->sg = data->sg; host 252 drivers/mmc/host/alcor.c host->sg_count = data->sg_count; host 253 drivers/mmc/host/alcor.c dev_dbg(host->dev, "prepare DATA: sg %i, blocks: %i\n", host 254 drivers/mmc/host/alcor.c host->sg_count, host->blocks); host 257 drivers/mmc/host/alcor.c alcor_prepare_sg_miter(host); host 262 drivers/mmc/host/alcor.c static void alcor_send_cmd(struct alcor_sdmmc_host *host, host 265 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 269 drivers/mmc/host/alcor.c host->cmd = cmd; host 270 drivers/mmc/host/alcor.c alcor_prepare_data(host, cmd); host 272 drivers/mmc/host/alcor.c dev_dbg(host->dev, "send CMD. opcode: 0x%02x, arg; 0x%08x\n", host 294 drivers/mmc/host/alcor.c dev_err(host->dev, "%s: cmd->flag (0x%02x) is not valid\n", host 295 drivers/mmc/host/alcor.c mmc_hostname(mmc_from_priv(host)), mmc_resp_type(cmd)); host 305 drivers/mmc/host/alcor.c schedule_delayed_work(&host->timeout_work, host 309 drivers/mmc/host/alcor.c dev_dbg(host->dev, "xfer ctrl: 0x%02x; timeout: %lu\n", ctrl, timeout); host 314 drivers/mmc/host/alcor.c static void alcor_request_complete(struct alcor_sdmmc_host *host, host 323 drivers/mmc/host/alcor.c if (!host->mrq) host 327 drivers/mmc/host/alcor.c cancel_delayed_work(&host->timeout_work); host 329 drivers/mmc/host/alcor.c mrq = host->mrq; host 331 drivers/mmc/host/alcor.c host->mrq = NULL; host 332 drivers/mmc/host/alcor.c host->cmd = NULL; host 333 drivers/mmc/host/alcor.c host->data = NULL; host 334 drivers/mmc/host/alcor.c host->dma_on = 0; host 336 drivers/mmc/host/alcor.c mmc_request_done(mmc_from_priv(host), mrq); host 339 drivers/mmc/host/alcor.c static void alcor_finish_data(struct alcor_sdmmc_host *host) host 343 drivers/mmc/host/alcor.c data = host->data; host 344 drivers/mmc/host/alcor.c host->data = NULL; host 345 drivers/mmc/host/alcor.c host->dma_on = 0; host 366 drivers/mmc/host/alcor.c !host->mrq->sbc)) { host 373 drivers/mmc/host/alcor.c alcor_reset(host, AU6601_RESET_CMD | AU6601_RESET_DATA); host 375 drivers/mmc/host/alcor.c alcor_unmask_sd_irqs(host); host 376 drivers/mmc/host/alcor.c alcor_send_cmd(host, data->stop, false); host 380 drivers/mmc/host/alcor.c alcor_request_complete(host, 1); host 383 drivers/mmc/host/alcor.c static void alcor_err_irq(struct alcor_sdmmc_host *host, u32 intmask) host 385 drivers/mmc/host/alcor.c dev_dbg(host->dev, "ERR IRQ %x\n", intmask); host 387 drivers/mmc/host/alcor.c if (host->cmd) { host 389 drivers/mmc/host/alcor.c host->cmd->error = -ETIMEDOUT; host 391 drivers/mmc/host/alcor.c host->cmd->error = -EILSEQ; host 394 drivers/mmc/host/alcor.c if (host->data) { host 396 drivers/mmc/host/alcor.c host->data->error = -ETIMEDOUT; host 398 drivers/mmc/host/alcor.c host->data->error = -EILSEQ; host 400 drivers/mmc/host/alcor.c host->data->bytes_xfered = 0; host 403 drivers/mmc/host/alcor.c alcor_reset(host, AU6601_RESET_CMD | AU6601_RESET_DATA); host 404 drivers/mmc/host/alcor.c alcor_request_complete(host, 1); host 407 drivers/mmc/host/alcor.c static int alcor_cmd_irq_done(struct alcor_sdmmc_host *host, u32 intmask) host 409 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 419 drivers/mmc/host/alcor.c if (!host->cmd) host 422 drivers/mmc/host/alcor.c if (host->cmd->flags & MMC_RSP_PRESENT) { host 423 drivers/mmc/host/alcor.c struct mmc_command *cmd = host->cmd; host 426 drivers/mmc/host/alcor.c dev_dbg(host->dev, "RSP0: 0x%04x\n", cmd->resp[0]); host 427 drivers/mmc/host/alcor.c if (host->cmd->flags & MMC_RSP_136) { host 434 drivers/mmc/host/alcor.c dev_dbg(host->dev, "RSP1,2,3: 0x%04x 0x%04x 0x%04x\n", host 440 drivers/mmc/host/alcor.c host->cmd->error = 0; host 443 drivers/mmc/host/alcor.c if (!host->data) host 446 drivers/mmc/host/alcor.c alcor_trigger_data_transfer(host); host 447 drivers/mmc/host/alcor.c host->cmd = NULL; host 451 drivers/mmc/host/alcor.c static void alcor_cmd_irq_thread(struct alcor_sdmmc_host *host, u32 intmask) host 458 drivers/mmc/host/alcor.c if (!host->cmd && intmask & AU6601_INT_CMD_END) { host 459 drivers/mmc/host/alcor.c dev_dbg(host->dev, "Got command interrupt 0x%08x even though no command operation was in progress.\n", host 464 drivers/mmc/host/alcor.c if (!host->data) host 465 drivers/mmc/host/alcor.c alcor_request_complete(host, 1); host 467 drivers/mmc/host/alcor.c alcor_trigger_data_transfer(host); host 468 drivers/mmc/host/alcor.c host->cmd = NULL; host 471 drivers/mmc/host/alcor.c static int alcor_data_irq_done(struct alcor_sdmmc_host *host, u32 intmask) host 484 drivers/mmc/host/alcor.c if (!host->data && intmask == AU6601_INT_DATA_END) host 488 drivers/mmc/host/alcor.c if (!host->data) host 497 drivers/mmc/host/alcor.c alcor_trf_block_pio(host, true); host 500 drivers/mmc/host/alcor.c alcor_trf_block_pio(host, false); host 503 drivers/mmc/host/alcor.c if (!host->sg_count) host 506 drivers/mmc/host/alcor.c alcor_data_set_dma(host); host 509 drivers/mmc/host/alcor.c dev_err(host->dev, "Got READ_BUF_RDY and WRITE_BUF_RDY at same time\n"); host 514 drivers/mmc/host/alcor.c if (!host->dma_on && host->blocks) { host 515 drivers/mmc/host/alcor.c alcor_trigger_data_transfer(host); host 525 drivers/mmc/host/alcor.c static void alcor_data_irq_thread(struct alcor_sdmmc_host *host, u32 intmask) host 532 drivers/mmc/host/alcor.c if (!host->data) { host 533 drivers/mmc/host/alcor.c dev_dbg(host->dev, "Got data interrupt 0x%08x even though no data operation was in progress.\n", host 535 drivers/mmc/host/alcor.c alcor_reset(host, AU6601_RESET_DATA); host 539 drivers/mmc/host/alcor.c if (alcor_data_irq_done(host, intmask)) host 542 drivers/mmc/host/alcor.c if ((intmask & AU6601_INT_DATA_END) || !host->blocks || host 543 drivers/mmc/host/alcor.c (host->dma_on && !host->sg_count)) host 544 drivers/mmc/host/alcor.c alcor_finish_data(host); host 547 drivers/mmc/host/alcor.c static void alcor_cd_irq(struct alcor_sdmmc_host *host, u32 intmask) host 549 drivers/mmc/host/alcor.c dev_dbg(host->dev, "card %s\n", host 552 drivers/mmc/host/alcor.c if (host->mrq) { host 553 drivers/mmc/host/alcor.c dev_dbg(host->dev, "cancel all pending tasks.\n"); host 555 drivers/mmc/host/alcor.c if (host->data) host 556 drivers/mmc/host/alcor.c host->data->error = -ENOMEDIUM; host 558 drivers/mmc/host/alcor.c if (host->cmd) host 559 drivers/mmc/host/alcor.c host->cmd->error = -ENOMEDIUM; host 561 drivers/mmc/host/alcor.c host->mrq->cmd->error = -ENOMEDIUM; host 563 drivers/mmc/host/alcor.c alcor_request_complete(host, 1); host 566 drivers/mmc/host/alcor.c mmc_detect_change(mmc_from_priv(host), msecs_to_jiffies(1)); host 571 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = d; host 575 drivers/mmc/host/alcor.c mutex_lock(&host->cmd_mutex); host 577 drivers/mmc/host/alcor.c intmask = host->irq_status_sd; host 581 drivers/mmc/host/alcor.c dev_dbg(host->dev, "unexpected IRQ: 0x%04x\n", intmask); host 589 drivers/mmc/host/alcor.c alcor_err_irq(host, tmp); host 591 drivers/mmc/host/alcor.c alcor_cmd_irq_thread(host, tmp); host 592 drivers/mmc/host/alcor.c alcor_data_irq_thread(host, tmp); host 598 drivers/mmc/host/alcor.c alcor_cd_irq(host, intmask); host 603 drivers/mmc/host/alcor.c dev_warn(host->dev, host 609 drivers/mmc/host/alcor.c dev_dbg(host->dev, "got not handled IRQ: 0x%04x\n", intmask); host 612 drivers/mmc/host/alcor.c mutex_unlock(&host->cmd_mutex); host 613 drivers/mmc/host/alcor.c alcor_unmask_sd_irqs(host); host 620 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = d; host 621 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 636 drivers/mmc/host/alcor.c cmd_done = alcor_cmd_irq_done(host, tmp); host 637 drivers/mmc/host/alcor.c data_done = alcor_data_irq_done(host, tmp); host 645 drivers/mmc/host/alcor.c host->irq_status_sd = status; host 647 drivers/mmc/host/alcor.c alcor_mask_sd_irqs(host); host 652 drivers/mmc/host/alcor.c static void alcor_set_clock(struct alcor_sdmmc_host *host, unsigned int clock) host 654 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 685 drivers/mmc/host/alcor.c dev_dbg(host->dev, "set freq %d cal freq %d, use div %d, mod %x\n", host 694 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 697 drivers/mmc/host/alcor.c alcor_rmw8(host, AU6601_CLK_DELAY, host 700 drivers/mmc/host/alcor.c alcor_rmw8(host, AU6601_CLK_DELAY, host 707 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 708 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 716 drivers/mmc/host/alcor.c dev_err(host->dev, "Unknown BUS mode\n"); host 722 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 723 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 734 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 735 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 746 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 747 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 758 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 760 drivers/mmc/host/alcor.c mutex_lock(&host->cmd_mutex); host 762 drivers/mmc/host/alcor.c host->mrq = mrq; host 766 drivers/mmc/host/alcor.c alcor_send_cmd(host, mrq->cmd, true); host 769 drivers/mmc/host/alcor.c alcor_request_complete(host, 1); host 772 drivers/mmc/host/alcor.c mutex_unlock(&host->cmd_mutex); host 778 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 817 drivers/mmc/host/alcor.c sg_len = dma_map_sg(host->dev, data->sg, data->sg_len, host 829 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 836 drivers/mmc/host/alcor.c dma_unmap_sg(host->dev, host 847 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 848 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 852 drivers/mmc/host/alcor.c alcor_set_clock(host, ios->clock); host 880 drivers/mmc/host/alcor.c alcor_set_clock(host, ios->clock); host 887 drivers/mmc/host/alcor.c alcor_set_clock(host, ios->clock); host 902 drivers/mmc/host/alcor.c dev_err(host->dev, "Unknown power parameter\n"); host 908 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 910 drivers/mmc/host/alcor.c mutex_lock(&host->cmd_mutex); host 912 drivers/mmc/host/alcor.c dev_dbg(host->dev, "set ios. bus width: %x, power mode: %x\n", host 915 drivers/mmc/host/alcor.c if (ios->power_mode != host->cur_power_mode) { host 917 drivers/mmc/host/alcor.c host->cur_power_mode = ios->power_mode; host 921 drivers/mmc/host/alcor.c alcor_set_clock(host, ios->clock); host 924 drivers/mmc/host/alcor.c mutex_unlock(&host->cmd_mutex); host 930 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = mmc_priv(mmc); host 932 drivers/mmc/host/alcor.c mutex_lock(&host->cmd_mutex); host 936 drivers/mmc/host/alcor.c alcor_rmw8(host, AU6601_OPT, AU6601_OPT_SD_18V, 0); host 939 drivers/mmc/host/alcor.c alcor_rmw8(host, AU6601_OPT, 0, AU6601_OPT_SD_18V); host 946 drivers/mmc/host/alcor.c mutex_unlock(&host->cmd_mutex); host 964 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = container_of(d, struct alcor_sdmmc_host, host 966 drivers/mmc/host/alcor.c mutex_lock(&host->cmd_mutex); host 968 drivers/mmc/host/alcor.c dev_dbg(host->dev, "triggered timeout\n"); host 969 drivers/mmc/host/alcor.c if (host->mrq) { host 970 drivers/mmc/host/alcor.c dev_err(host->dev, "Timeout waiting for hardware interrupt.\n"); host 972 drivers/mmc/host/alcor.c if (host->data) { host 973 drivers/mmc/host/alcor.c host->data->error = -ETIMEDOUT; host 975 drivers/mmc/host/alcor.c if (host->cmd) host 976 drivers/mmc/host/alcor.c host->cmd->error = -ETIMEDOUT; host 978 drivers/mmc/host/alcor.c host->mrq->cmd->error = -ETIMEDOUT; host 981 drivers/mmc/host/alcor.c alcor_reset(host, AU6601_RESET_CMD | AU6601_RESET_DATA); host 982 drivers/mmc/host/alcor.c alcor_request_complete(host, 0); host 985 drivers/mmc/host/alcor.c mutex_unlock(&host->cmd_mutex); host 988 drivers/mmc/host/alcor.c static void alcor_hw_init(struct alcor_sdmmc_host *host) host 990 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 999 drivers/mmc/host/alcor.c alcor_reset(host, AU6601_RESET_CMD); host 1009 drivers/mmc/host/alcor.c alcor_reset(host, AU6601_RESET_DATA); host 1030 drivers/mmc/host/alcor.c alcor_unmask_sd_irqs(host); host 1033 drivers/mmc/host/alcor.c static void alcor_hw_uninit(struct alcor_sdmmc_host *host) host 1035 drivers/mmc/host/alcor.c struct alcor_pci_priv *priv = host->alcor_pci; host 1037 drivers/mmc/host/alcor.c alcor_mask_sd_irqs(host); host 1038 drivers/mmc/host/alcor.c alcor_reset(host, AU6601_RESET_CMD | AU6601_RESET_DATA); host 1048 drivers/mmc/host/alcor.c static void alcor_init_mmc(struct alcor_sdmmc_host *host) host 1050 drivers/mmc/host/alcor.c struct mmc_host *mmc = mmc_from_priv(host); host 1076 drivers/mmc/host/alcor.c dma_set_max_seg_size(host->dev, mmc->max_seg_size); host 1083 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host; host 1086 drivers/mmc/host/alcor.c mmc = mmc_alloc_host(sizeof(*host), &pdev->dev); host 1092 drivers/mmc/host/alcor.c host = mmc_priv(mmc); host 1093 drivers/mmc/host/alcor.c host->dev = &pdev->dev; host 1094 drivers/mmc/host/alcor.c host->cur_power_mode = MMC_POWER_UNDEFINED; host 1095 drivers/mmc/host/alcor.c host->alcor_pci = priv; host 1103 drivers/mmc/host/alcor.c DRV_NAME_ALCOR_PCI_SDMMC, host); host 1110 drivers/mmc/host/alcor.c mutex_init(&host->cmd_mutex); host 1111 drivers/mmc/host/alcor.c INIT_DELAYED_WORK(&host->timeout_work, alcor_timeout_timer); host 1113 drivers/mmc/host/alcor.c alcor_init_mmc(host); host 1114 drivers/mmc/host/alcor.c alcor_hw_init(host); host 1116 drivers/mmc/host/alcor.c dev_set_drvdata(&pdev->dev, host); host 1127 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = dev_get_drvdata(&pdev->dev); host 1128 drivers/mmc/host/alcor.c struct mmc_host *mmc = mmc_from_priv(host); host 1130 drivers/mmc/host/alcor.c if (cancel_delayed_work_sync(&host->timeout_work)) host 1131 drivers/mmc/host/alcor.c alcor_request_complete(host, 0); host 1133 drivers/mmc/host/alcor.c alcor_hw_uninit(host); host 1143 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = dev_get_drvdata(dev); host 1145 drivers/mmc/host/alcor.c if (cancel_delayed_work_sync(&host->timeout_work)) host 1146 drivers/mmc/host/alcor.c alcor_request_complete(host, 0); host 1148 drivers/mmc/host/alcor.c alcor_hw_uninit(host); host 1155 drivers/mmc/host/alcor.c struct alcor_sdmmc_host *host = dev_get_drvdata(dev); host 1157 drivers/mmc/host/alcor.c alcor_hw_init(host); host 53 drivers/mmc/host/android-goldfish.c #define GOLDFISH_MMC_READ(host, addr) (readl(host->reg_base + addr)) host 54 drivers/mmc/host/android-goldfish.c #define GOLDFISH_MMC_WRITE(host, addr, x) (writel(x, host->reg_base + addr)) host 129 drivers/mmc/host/android-goldfish.c goldfish_mmc_cover_is_open(struct goldfish_mmc_host *host) host 138 drivers/mmc/host/android-goldfish.c struct goldfish_mmc_host *host = dev_get_drvdata(dev); host 140 drivers/mmc/host/android-goldfish.c return sprintf(buf, "%s\n", goldfish_mmc_cover_is_open(host) ? "open" : host 147 drivers/mmc/host/android-goldfish.c goldfish_mmc_start_command(struct goldfish_mmc_host *host, struct mmc_command *cmd) host 153 drivers/mmc/host/android-goldfish.c host->cmd = cmd; host 174 drivers/mmc/host/android-goldfish.c dev_err(mmc_dev(mmc_from_priv(host)), host 190 drivers/mmc/host/android-goldfish.c if (host->bus_mode == MMC_BUSMODE_OPENDRAIN) host 196 drivers/mmc/host/android-goldfish.c if (host->data && !(host->data->flags & MMC_DATA_WRITE)) host 199 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_ARG, cmd->arg); host 200 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_CMD, cmdreg); host 203 drivers/mmc/host/android-goldfish.c static void goldfish_mmc_xfer_done(struct goldfish_mmc_host *host, host 206 drivers/mmc/host/android-goldfish.c if (host->dma_in_use) { host 216 drivers/mmc/host/android-goldfish.c sg_copy_from_buffer(data->sg, 1, host->virt_base, host 219 drivers/mmc/host/android-goldfish.c host->data->bytes_xfered += data->sg->length; host 220 drivers/mmc/host/android-goldfish.c dma_unmap_sg(mmc_dev(mmc_from_priv(host)), data->sg, host 221 drivers/mmc/host/android-goldfish.c host->sg_len, dma_data_dir); host 224 drivers/mmc/host/android-goldfish.c host->data = NULL; host 225 drivers/mmc/host/android-goldfish.c host->sg_len = 0; host 234 drivers/mmc/host/android-goldfish.c host->mrq = NULL; host 235 drivers/mmc/host/android-goldfish.c mmc_request_done(mmc_from_priv(host), data->mrq); host 239 drivers/mmc/host/android-goldfish.c goldfish_mmc_start_command(host, data->stop); host 242 drivers/mmc/host/android-goldfish.c static void goldfish_mmc_end_of_data(struct goldfish_mmc_host *host, host 245 drivers/mmc/host/android-goldfish.c if (!host->dma_in_use) { host 246 drivers/mmc/host/android-goldfish.c goldfish_mmc_xfer_done(host, data); host 249 drivers/mmc/host/android-goldfish.c if (host->dma_done) host 250 drivers/mmc/host/android-goldfish.c goldfish_mmc_xfer_done(host, data); host 253 drivers/mmc/host/android-goldfish.c static void goldfish_mmc_cmd_done(struct goldfish_mmc_host *host, host 256 drivers/mmc/host/android-goldfish.c host->cmd = NULL; host 261 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_READ(host, MMC_RESP_0); host 263 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_READ(host, MMC_RESP_1); host 265 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_READ(host, MMC_RESP_2); host 267 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_READ(host, MMC_RESP_3); host 271 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_READ(host, MMC_RESP_0); host 275 drivers/mmc/host/android-goldfish.c if (host->data == NULL || cmd->error) { host 276 drivers/mmc/host/android-goldfish.c host->mrq = NULL; host 277 drivers/mmc/host/android-goldfish.c mmc_request_done(mmc_from_priv(host), cmd->mrq); host 283 drivers/mmc/host/android-goldfish.c struct goldfish_mmc_host *host = (struct goldfish_mmc_host *)dev_id; host 290 drivers/mmc/host/android-goldfish.c while ((status = GOLDFISH_MMC_READ(host, MMC_INT_STATUS)) != 0) { host 291 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_INT_STATUS, status); host 309 drivers/mmc/host/android-goldfish.c struct mmc_request *mrq = host->mrq; host 311 drivers/mmc/host/android-goldfish.c host->mrq = NULL; host 312 drivers/mmc/host/android-goldfish.c mmc_request_done(mmc_from_priv(host), mrq); host 316 drivers/mmc/host/android-goldfish.c goldfish_mmc_cmd_done(host, host->cmd); host 319 drivers/mmc/host/android-goldfish.c host->dma_done = 1; host 320 drivers/mmc/host/android-goldfish.c goldfish_mmc_end_of_data(host, host->data); host 321 drivers/mmc/host/android-goldfish.c } else if (host->data != NULL) { host 330 drivers/mmc/host/android-goldfish.c host->dma_done = 1; host 331 drivers/mmc/host/android-goldfish.c goldfish_mmc_end_of_data(host, host->data); host 335 drivers/mmc/host/android-goldfish.c u32 state = GOLDFISH_MMC_READ(host, MMC_STATE); host 338 drivers/mmc/host/android-goldfish.c mmc_detect_change(mmc_from_priv(host), 0); host 342 drivers/mmc/host/android-goldfish.c status = GOLDFISH_MMC_READ(host, MMC_INT_STATUS); host 343 drivers/mmc/host/android-goldfish.c dev_info(mmc_dev(mmc_from_priv(host)), "spurious irq 0x%04x\n", host 346 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_INT_STATUS, status); host 347 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_INT_ENABLE, 0); host 354 drivers/mmc/host/android-goldfish.c static void goldfish_mmc_prepare_data(struct goldfish_mmc_host *host, host 362 drivers/mmc/host/android-goldfish.c host->data = data; host 364 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_BLOCK_LENGTH, 0); host 365 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_BLOCK_COUNT, 0); host 366 drivers/mmc/host/android-goldfish.c host->dma_in_use = 0; host 372 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_BLOCK_COUNT, data->blocks - 1); host 373 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_BLOCK_LENGTH, block_size - 1); host 383 drivers/mmc/host/android-goldfish.c host->sg_len = dma_map_sg(mmc_dev(mmc_from_priv(host)), data->sg, host 385 drivers/mmc/host/android-goldfish.c host->dma_done = 0; host 386 drivers/mmc/host/android-goldfish.c host->dma_in_use = 1; host 393 drivers/mmc/host/android-goldfish.c sg_copy_to_buffer(data->sg, 1, host->virt_base, host 400 drivers/mmc/host/android-goldfish.c struct goldfish_mmc_host *host = mmc_priv(mmc); host 402 drivers/mmc/host/android-goldfish.c WARN_ON(host->mrq != NULL); host 404 drivers/mmc/host/android-goldfish.c host->mrq = req; host 405 drivers/mmc/host/android-goldfish.c goldfish_mmc_prepare_data(host, req); host 406 drivers/mmc/host/android-goldfish.c goldfish_mmc_start_command(host, req->cmd); host 419 drivers/mmc/host/android-goldfish.c struct goldfish_mmc_host *host = mmc_priv(mmc); host 421 drivers/mmc/host/android-goldfish.c host->bus_mode = ios->bus_mode; host 422 drivers/mmc/host/android-goldfish.c host->hw_bus_mode = host->bus_mode; host 428 drivers/mmc/host/android-goldfish.c struct goldfish_mmc_host *host = mmc_priv(mmc); host 430 drivers/mmc/host/android-goldfish.c state = GOLDFISH_MMC_READ(host, MMC_STATE); host 443 drivers/mmc/host/android-goldfish.c struct goldfish_mmc_host *host = NULL; host 460 drivers/mmc/host/android-goldfish.c host = mmc_priv(mmc); host 463 drivers/mmc/host/android-goldfish.c host->reg_base = ioremap(res->start, resource_size(res)); host 464 drivers/mmc/host/android-goldfish.c if (host->reg_base == NULL) { host 468 drivers/mmc/host/android-goldfish.c host->virt_base = dma_alloc_coherent(&pdev->dev, BUFFER_SIZE, host 471 drivers/mmc/host/android-goldfish.c if (host->virt_base == 0) { host 475 drivers/mmc/host/android-goldfish.c host->phys_base = buf_addr; host 477 drivers/mmc/host/android-goldfish.c host->id = pdev->id; host 478 drivers/mmc/host/android-goldfish.c host->irq = irq; host 496 drivers/mmc/host/android-goldfish.c ret = request_irq(host->irq, goldfish_mmc_irq, 0, DRIVER_NAME, host); host 502 drivers/mmc/host/android-goldfish.c host->dev = &pdev->dev; host 503 drivers/mmc/host/android-goldfish.c platform_set_drvdata(pdev, host); host 509 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_SET_BUFFER, host->phys_base); host 510 drivers/mmc/host/android-goldfish.c GOLDFISH_MMC_WRITE(host, MMC_INT_ENABLE, host 518 drivers/mmc/host/android-goldfish.c dma_free_coherent(&pdev->dev, BUFFER_SIZE, host->virt_base, host 519 drivers/mmc/host/android-goldfish.c host->phys_base); host 521 drivers/mmc/host/android-goldfish.c iounmap(host->reg_base); host 530 drivers/mmc/host/android-goldfish.c struct goldfish_mmc_host *host = platform_get_drvdata(pdev); host 531 drivers/mmc/host/android-goldfish.c struct mmc_host *mmc = mmc_from_priv(host); host 533 drivers/mmc/host/android-goldfish.c BUG_ON(host == NULL); host 536 drivers/mmc/host/android-goldfish.c free_irq(host->irq, host); host 537 drivers/mmc/host/android-goldfish.c dma_free_coherent(&pdev->dev, BUFFER_SIZE, host->virt_base, host->phys_base); host 538 drivers/mmc/host/android-goldfish.c iounmap(host->reg_base); host 348 drivers/mmc/host/atmel-mci.c u32 (*prepare_data)(struct atmel_mci *host, struct mmc_data *data); host 349 drivers/mmc/host/atmel-mci.c void (*submit_data)(struct atmel_mci *host, struct mmc_data *data); host 350 drivers/mmc/host/atmel-mci.c void (*stop_transfer)(struct atmel_mci *host); host 374 drivers/mmc/host/atmel-mci.c struct atmel_mci *host; host 395 drivers/mmc/host/atmel-mci.c #define atmci_test_and_clear_pending(host, event) \ host 396 drivers/mmc/host/atmel-mci.c test_and_clear_bit(event, &host->pending_events) host 397 drivers/mmc/host/atmel-mci.c #define atmci_set_completed(host, event) \ host 398 drivers/mmc/host/atmel-mci.c set_bit(event, &host->completed_events) host 399 drivers/mmc/host/atmel-mci.c #define atmci_set_pending(host, event) \ host 400 drivers/mmc/host/atmel-mci.c set_bit(event, &host->pending_events) host 415 drivers/mmc/host/atmel-mci.c spin_lock_bh(&slot->host->lock); host 441 drivers/mmc/host/atmel-mci.c spin_unlock_bh(&slot->host->lock); host 496 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = s->private; host 505 drivers/mmc/host/atmel-mci.c pm_runtime_get_sync(&host->pdev->dev); host 512 drivers/mmc/host/atmel-mci.c spin_lock_bh(&host->lock); host 513 drivers/mmc/host/atmel-mci.c memcpy_fromio(buf, host->regs, ATMCI_REGS_SIZE); host 514 drivers/mmc/host/atmel-mci.c spin_unlock_bh(&host->lock); host 516 drivers/mmc/host/atmel-mci.c pm_runtime_mark_last_busy(&host->pdev->dev); host 517 drivers/mmc/host/atmel-mci.c pm_runtime_put_autosuspend(&host->pdev->dev); host 523 drivers/mmc/host/atmel-mci.c if (host->caps.has_odd_clk_div) host 537 drivers/mmc/host/atmel-mci.c if (host->caps.has_cstor_reg) host 545 drivers/mmc/host/atmel-mci.c if (host->caps.has_dma_conf_reg) { host 555 drivers/mmc/host/atmel-mci.c if (host->caps.has_cfg_reg) { host 577 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = slot->host; host 584 drivers/mmc/host/atmel-mci.c debugfs_create_file("regs", S_IRUSR, root, host, &atmci_regs_fops); host 586 drivers/mmc/host/atmel-mci.c debugfs_create_u32("state", S_IRUSR, root, (u32 *)&host->state); host 588 drivers/mmc/host/atmel-mci.c (u32 *)&host->pending_events); host 590 drivers/mmc/host/atmel-mci.c (u32 *)&host->completed_events); host 659 drivers/mmc/host/atmel-mci.c static inline unsigned int atmci_get_version(struct atmel_mci *host) host 661 drivers/mmc/host/atmel-mci.c return atmci_readl(host, ATMCI_VERSION) & 0x00000fff; host 672 drivers/mmc/host/atmel-mci.c static inline unsigned int atmci_convert_chksize(struct atmel_mci *host, host 675 drivers/mmc/host/atmel-mci.c unsigned int version = atmci_get_version(host); host 689 drivers/mmc/host/atmel-mci.c struct atmel_mci *host; host 691 drivers/mmc/host/atmel-mci.c host = from_timer(host, t, timer); host 693 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "software timeout\n"); host 695 drivers/mmc/host/atmel-mci.c if (host->mrq->cmd->data) { host 696 drivers/mmc/host/atmel-mci.c host->mrq->cmd->data->error = -ETIMEDOUT; host 697 drivers/mmc/host/atmel-mci.c host->data = NULL; host 703 drivers/mmc/host/atmel-mci.c if (host->state == STATE_DATA_XFER) host 704 drivers/mmc/host/atmel-mci.c host->stop_transfer(host); host 706 drivers/mmc/host/atmel-mci.c host->mrq->cmd->error = -ETIMEDOUT; host 707 drivers/mmc/host/atmel-mci.c host->cmd = NULL; host 709 drivers/mmc/host/atmel-mci.c host->need_reset = 1; host 710 drivers/mmc/host/atmel-mci.c host->state = STATE_END_REQUEST; host 712 drivers/mmc/host/atmel-mci.c tasklet_schedule(&host->tasklet); host 715 drivers/mmc/host/atmel-mci.c static inline unsigned int atmci_ns_to_clocks(struct atmel_mci *host, host 725 drivers/mmc/host/atmel-mci.c return us * (DIV_ROUND_UP(host->bus_hz, 2000000)); host 728 drivers/mmc/host/atmel-mci.c static void atmci_set_timeout(struct atmel_mci *host, host 738 drivers/mmc/host/atmel-mci.c timeout = atmci_ns_to_clocks(host, data->timeout_ns) host 755 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_DTOR, (ATMCI_DTOMUL(dtomul) | ATMCI_DTOCYC(dtocyc))); host 808 drivers/mmc/host/atmel-mci.c static void atmci_send_command(struct atmel_mci *host, host 811 drivers/mmc/host/atmel-mci.c WARN_ON(host->cmd); host 812 drivers/mmc/host/atmel-mci.c host->cmd = cmd; host 814 drivers/mmc/host/atmel-mci.c dev_vdbg(&host->pdev->dev, host 818 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_ARGR, cmd->arg); host 819 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CMDR, cmd_flags); host 822 drivers/mmc/host/atmel-mci.c static void atmci_send_stop_cmd(struct atmel_mci *host, struct mmc_data *data) host 824 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "send stop command\n"); host 825 drivers/mmc/host/atmel-mci.c atmci_send_command(host, data->stop, host->stop_cmdr); host 826 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_CMDRDY); host 833 drivers/mmc/host/atmel-mci.c static void atmci_pdc_set_single_buf(struct atmel_mci *host, host 852 drivers/mmc/host/atmel-mci.c if (!host->caps.has_rwproof) { host 853 drivers/mmc/host/atmel-mci.c buf_size = host->buf_size; host 854 drivers/mmc/host/atmel-mci.c atmci_writel(host, pointer_reg, host->buf_phys_addr); host 856 drivers/mmc/host/atmel-mci.c buf_size = sg_dma_len(host->sg); host 857 drivers/mmc/host/atmel-mci.c atmci_writel(host, pointer_reg, sg_dma_address(host->sg)); host 860 drivers/mmc/host/atmel-mci.c if (host->data_size <= buf_size) { host 861 drivers/mmc/host/atmel-mci.c if (host->data_size & 0x3) { host 863 drivers/mmc/host/atmel-mci.c atmci_writel(host, counter_reg, host->data_size); host 864 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_MR, host->mode_reg | ATMCI_MR_PDCFBYTE); host 867 drivers/mmc/host/atmel-mci.c atmci_writel(host, counter_reg, host->data_size / 4); host 869 drivers/mmc/host/atmel-mci.c host->data_size = 0; host 872 drivers/mmc/host/atmel-mci.c atmci_writel(host, counter_reg, sg_dma_len(host->sg) / 4); host 873 drivers/mmc/host/atmel-mci.c host->data_size -= sg_dma_len(host->sg); host 874 drivers/mmc/host/atmel-mci.c if (host->data_size) host 875 drivers/mmc/host/atmel-mci.c host->sg = sg_next(host->sg); host 884 drivers/mmc/host/atmel-mci.c static void atmci_pdc_set_both_buf(struct atmel_mci *host, int dir) host 886 drivers/mmc/host/atmel-mci.c atmci_pdc_set_single_buf(host, dir, PDC_FIRST_BUF); host 887 drivers/mmc/host/atmel-mci.c if (host->data_size) host 888 drivers/mmc/host/atmel-mci.c atmci_pdc_set_single_buf(host, dir, PDC_SECOND_BUF); host 894 drivers/mmc/host/atmel-mci.c static void atmci_pdc_cleanup(struct atmel_mci *host) host 896 drivers/mmc/host/atmel-mci.c struct mmc_data *data = host->data; host 899 drivers/mmc/host/atmel-mci.c dma_unmap_sg(&host->pdev->dev, host 909 drivers/mmc/host/atmel-mci.c static void atmci_pdc_complete(struct atmel_mci *host) host 911 drivers/mmc/host/atmel-mci.c int transfer_size = host->data->blocks * host->data->blksz; host 914 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMEL_PDC_PTCR, ATMEL_PDC_RXTDIS | ATMEL_PDC_TXTDIS); host 916 drivers/mmc/host/atmel-mci.c if ((!host->caps.has_rwproof) host 917 drivers/mmc/host/atmel-mci.c && (host->data->flags & MMC_DATA_READ)) { host 918 drivers/mmc/host/atmel-mci.c if (host->caps.has_bad_data_ordering) host 920 drivers/mmc/host/atmel-mci.c host->buffer[i] = swab32(host->buffer[i]); host 921 drivers/mmc/host/atmel-mci.c sg_copy_from_buffer(host->data->sg, host->data->sg_len, host 922 drivers/mmc/host/atmel-mci.c host->buffer, transfer_size); host 925 drivers/mmc/host/atmel-mci.c atmci_pdc_cleanup(host); host 927 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "(%s) set pending xfer complete\n", __func__); host 928 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_XFER_COMPLETE); host 929 drivers/mmc/host/atmel-mci.c tasklet_schedule(&host->tasklet); host 932 drivers/mmc/host/atmel-mci.c static void atmci_dma_cleanup(struct atmel_mci *host) host 934 drivers/mmc/host/atmel-mci.c struct mmc_data *data = host->data; host 937 drivers/mmc/host/atmel-mci.c dma_unmap_sg(host->dma.chan->device->dev, host 947 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = arg; host 948 drivers/mmc/host/atmel-mci.c struct mmc_data *data = host->data; host 950 drivers/mmc/host/atmel-mci.c dev_vdbg(&host->pdev->dev, "DMA complete\n"); host 952 drivers/mmc/host/atmel-mci.c if (host->caps.has_dma_conf_reg) host 954 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_DMA, atmci_readl(host, ATMCI_DMA) & ~ATMCI_DMAEN); host 956 drivers/mmc/host/atmel-mci.c atmci_dma_cleanup(host); host 963 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, host 965 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_XFER_COMPLETE); host 966 drivers/mmc/host/atmel-mci.c tasklet_schedule(&host->tasklet); host 988 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); host 996 drivers/mmc/host/atmel-mci.c static u32 atmci_prepare_data(struct atmel_mci *host, struct mmc_data *data) host 1002 drivers/mmc/host/atmel-mci.c host->sg = data->sg; host 1003 drivers/mmc/host/atmel-mci.c host->sg_len = data->sg_len; host 1004 drivers/mmc/host/atmel-mci.c host->data = data; host 1005 drivers/mmc/host/atmel-mci.c host->data_chan = NULL; host 1018 drivers/mmc/host/atmel-mci.c host->need_reset = true; host 1020 drivers/mmc/host/atmel-mci.c host->pio_offset = 0; host 1036 drivers/mmc/host/atmel-mci.c atmci_prepare_data_pdc(struct atmel_mci *host, struct mmc_data *data) host 1043 drivers/mmc/host/atmel-mci.c host->data = data; host 1044 drivers/mmc/host/atmel-mci.c host->sg = data->sg; host 1048 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_MR, host->mode_reg | ATMCI_MR_PDCMODE); host 1056 drivers/mmc/host/atmel-mci.c tmp = atmci_readl(host, ATMCI_MR); host 1059 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_MR, tmp); host 1062 drivers/mmc/host/atmel-mci.c host->data_size = data->blocks * data->blksz; host 1063 drivers/mmc/host/atmel-mci.c dma_map_sg(&host->pdev->dev, data->sg, data->sg_len, host 1066 drivers/mmc/host/atmel-mci.c if ((!host->caps.has_rwproof) host 1067 drivers/mmc/host/atmel-mci.c && (host->data->flags & MMC_DATA_WRITE)) { host 1068 drivers/mmc/host/atmel-mci.c sg_copy_to_buffer(host->data->sg, host->data->sg_len, host 1069 drivers/mmc/host/atmel-mci.c host->buffer, host->data_size); host 1070 drivers/mmc/host/atmel-mci.c if (host->caps.has_bad_data_ordering) host 1071 drivers/mmc/host/atmel-mci.c for (i = 0; i < host->data_size; i++) host 1072 drivers/mmc/host/atmel-mci.c host->buffer[i] = swab32(host->buffer[i]); host 1075 drivers/mmc/host/atmel-mci.c if (host->data_size) host 1076 drivers/mmc/host/atmel-mci.c atmci_pdc_set_both_buf(host, data->flags & MMC_DATA_READ ? host 1082 drivers/mmc/host/atmel-mci.c atmci_prepare_data_dma(struct atmel_mci *host, struct mmc_data *data) host 1095 drivers/mmc/host/atmel-mci.c WARN_ON(host->data); host 1096 drivers/mmc/host/atmel-mci.c host->sg = NULL; host 1097 drivers/mmc/host/atmel-mci.c host->data = data; host 1107 drivers/mmc/host/atmel-mci.c return atmci_prepare_data(host, data); host 1109 drivers/mmc/host/atmel-mci.c return atmci_prepare_data(host, data); host 1113 drivers/mmc/host/atmel-mci.c return atmci_prepare_data(host, data); host 1117 drivers/mmc/host/atmel-mci.c chan = host->dma.chan; host 1119 drivers/mmc/host/atmel-mci.c host->data_chan = chan; host 1125 drivers/mmc/host/atmel-mci.c host->dma_conf.direction = slave_dirn = DMA_DEV_TO_MEM; host 1126 drivers/mmc/host/atmel-mci.c maxburst = atmci_convert_chksize(host, host 1127 drivers/mmc/host/atmel-mci.c host->dma_conf.src_maxburst); host 1129 drivers/mmc/host/atmel-mci.c host->dma_conf.direction = slave_dirn = DMA_MEM_TO_DEV; host 1130 drivers/mmc/host/atmel-mci.c maxburst = atmci_convert_chksize(host, host 1131 drivers/mmc/host/atmel-mci.c host->dma_conf.dst_maxburst); host 1134 drivers/mmc/host/atmel-mci.c if (host->caps.has_dma_conf_reg) host 1135 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_DMA, ATMCI_DMA_CHKSIZE(maxburst) | host 1141 drivers/mmc/host/atmel-mci.c dmaengine_slave_config(chan, &host->dma_conf); host 1148 drivers/mmc/host/atmel-mci.c host->dma.data_desc = desc; host 1150 drivers/mmc/host/atmel-mci.c desc->callback_param = host; host 1160 drivers/mmc/host/atmel-mci.c atmci_submit_data(struct atmel_mci *host, struct mmc_data *data) host 1169 drivers/mmc/host/atmel-mci.c atmci_submit_data_pdc(struct atmel_mci *host, struct mmc_data *data) host 1172 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMEL_PDC_PTCR, ATMEL_PDC_RXTEN); host 1174 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMEL_PDC_PTCR, ATMEL_PDC_TXTEN); host 1178 drivers/mmc/host/atmel-mci.c atmci_submit_data_dma(struct atmel_mci *host, struct mmc_data *data) host 1180 drivers/mmc/host/atmel-mci.c struct dma_chan *chan = host->data_chan; host 1181 drivers/mmc/host/atmel-mci.c struct dma_async_tx_descriptor *desc = host->dma.data_desc; host 1189 drivers/mmc/host/atmel-mci.c static void atmci_stop_transfer(struct atmel_mci *host) host 1191 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, host 1193 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_XFER_COMPLETE); host 1194 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); host 1200 drivers/mmc/host/atmel-mci.c static void atmci_stop_transfer_pdc(struct atmel_mci *host) host 1202 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMEL_PDC_PTCR, ATMEL_PDC_RXTDIS | ATMEL_PDC_TXTDIS); host 1205 drivers/mmc/host/atmel-mci.c static void atmci_stop_transfer_dma(struct atmel_mci *host) host 1207 drivers/mmc/host/atmel-mci.c struct dma_chan *chan = host->data_chan; host 1211 drivers/mmc/host/atmel-mci.c atmci_dma_cleanup(host); host 1214 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, host 1216 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_XFER_COMPLETE); host 1217 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); host 1225 drivers/mmc/host/atmel-mci.c static void atmci_start_request(struct atmel_mci *host, host 1235 drivers/mmc/host/atmel-mci.c host->cur_slot = slot; host 1236 drivers/mmc/host/atmel-mci.c host->mrq = mrq; host 1238 drivers/mmc/host/atmel-mci.c host->pending_events = 0; host 1239 drivers/mmc/host/atmel-mci.c host->completed_events = 0; host 1240 drivers/mmc/host/atmel-mci.c host->cmd_status = 0; host 1241 drivers/mmc/host/atmel-mci.c host->data_status = 0; host 1243 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "start request: cmd %u\n", mrq->cmd->opcode); host 1245 drivers/mmc/host/atmel-mci.c if (host->need_reset || host->caps.need_reset_after_xfer) { host 1246 drivers/mmc/host/atmel-mci.c iflags = atmci_readl(host, ATMCI_IMR); host 1248 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST); host 1249 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIEN); host 1250 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_MR, host->mode_reg); host 1251 drivers/mmc/host/atmel-mci.c if (host->caps.has_cfg_reg) host 1252 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CFG, host->cfg_reg); host 1253 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, iflags); host 1254 drivers/mmc/host/atmel-mci.c host->need_reset = false; host 1256 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_SDCR, slot->sdc_reg); host 1258 drivers/mmc/host/atmel-mci.c iflags = atmci_readl(host, ATMCI_IMR); host 1265 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CMDR, ATMCI_CMDR_SPCMD_INIT); host 1266 drivers/mmc/host/atmel-mci.c while (!(atmci_readl(host, ATMCI_SR) & ATMCI_CMDRDY)) host 1272 drivers/mmc/host/atmel-mci.c atmci_set_timeout(host, slot, data); host 1275 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_BLKR, ATMCI_BCNT(data->blocks) host 1280 drivers/mmc/host/atmel-mci.c iflags |= host->prepare_data(host, data); host 1293 drivers/mmc/host/atmel-mci.c if (host->submit_data != &atmci_submit_data_dma) host 1294 drivers/mmc/host/atmel-mci.c atmci_send_command(host, cmd, cmdflags); host 1297 drivers/mmc/host/atmel-mci.c host->submit_data(host, data); host 1299 drivers/mmc/host/atmel-mci.c if (host->submit_data == &atmci_submit_data_dma) host 1300 drivers/mmc/host/atmel-mci.c atmci_send_command(host, cmd, cmdflags); host 1303 drivers/mmc/host/atmel-mci.c host->stop_cmdr = atmci_prepare_command(slot->mmc, mrq->stop); host 1304 drivers/mmc/host/atmel-mci.c host->stop_cmdr |= ATMCI_CMDR_STOP_XFER; host 1306 drivers/mmc/host/atmel-mci.c host->stop_cmdr |= ATMCI_CMDR_TRDIR_READ; host 1307 drivers/mmc/host/atmel-mci.c host->stop_cmdr |= ATMCI_CMDR_MULTI_BLOCK; host 1316 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, iflags); host 1318 drivers/mmc/host/atmel-mci.c mod_timer(&host->timer, jiffies + msecs_to_jiffies(2000)); host 1321 drivers/mmc/host/atmel-mci.c static void atmci_queue_request(struct atmel_mci *host, host 1325 drivers/mmc/host/atmel-mci.c host->state); host 1327 drivers/mmc/host/atmel-mci.c spin_lock_bh(&host->lock); host 1329 drivers/mmc/host/atmel-mci.c if (host->state == STATE_IDLE) { host 1330 drivers/mmc/host/atmel-mci.c host->state = STATE_SENDING_CMD; host 1331 drivers/mmc/host/atmel-mci.c atmci_start_request(host, slot); host 1333 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "queue request\n"); host 1334 drivers/mmc/host/atmel-mci.c list_add_tail(&slot->queue_node, &host->queue); host 1336 drivers/mmc/host/atmel-mci.c spin_unlock_bh(&host->lock); host 1342 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = slot->host; host 1346 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "MRQ: cmd %u\n", mrq->cmd->opcode); host 1369 drivers/mmc/host/atmel-mci.c atmci_queue_request(host, slot, mrq); host 1375 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = slot->host; host 1395 drivers/mmc/host/atmel-mci.c spin_lock_bh(&host->lock); host 1396 drivers/mmc/host/atmel-mci.c if (!host->mode_reg) { host 1397 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST); host 1398 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIEN); host 1399 drivers/mmc/host/atmel-mci.c if (host->caps.has_cfg_reg) host 1400 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CFG, host->cfg_reg); host 1409 drivers/mmc/host/atmel-mci.c if (host->slot[i] && host->slot[i]->clock host 1410 drivers/mmc/host/atmel-mci.c && host->slot[i]->clock < clock_min) host 1411 drivers/mmc/host/atmel-mci.c clock_min = host->slot[i]->clock; host 1415 drivers/mmc/host/atmel-mci.c if (host->caps.has_odd_clk_div) { host 1416 drivers/mmc/host/atmel-mci.c clkdiv = DIV_ROUND_UP(host->bus_hz, clock_min) - 2; host 1420 drivers/mmc/host/atmel-mci.c clock_min, host->bus_hz / 2); host 1425 drivers/mmc/host/atmel-mci.c clock_min, host->bus_hz / (511 + 2)); host 1428 drivers/mmc/host/atmel-mci.c host->mode_reg = ATMCI_MR_CLKDIV(clkdiv >> 1) host 1431 drivers/mmc/host/atmel-mci.c clkdiv = DIV_ROUND_UP(host->bus_hz, 2 * clock_min) - 1; host 1435 drivers/mmc/host/atmel-mci.c clock_min, host->bus_hz / (2 * 256)); host 1438 drivers/mmc/host/atmel-mci.c host->mode_reg = ATMCI_MR_CLKDIV(clkdiv); host 1446 drivers/mmc/host/atmel-mci.c if (host->caps.has_rwproof) host 1447 drivers/mmc/host/atmel-mci.c host->mode_reg |= (ATMCI_MR_WRPROOF | ATMCI_MR_RDPROOF); host 1449 drivers/mmc/host/atmel-mci.c if (host->caps.has_cfg_reg) { host 1452 drivers/mmc/host/atmel-mci.c host->cfg_reg |= ATMCI_CFG_HSMODE; host 1454 drivers/mmc/host/atmel-mci.c host->cfg_reg &= ~ATMCI_CFG_HSMODE; host 1457 drivers/mmc/host/atmel-mci.c if (list_empty(&host->queue)) { host 1458 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_MR, host->mode_reg); host 1459 drivers/mmc/host/atmel-mci.c if (host->caps.has_cfg_reg) host 1460 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CFG, host->cfg_reg); host 1462 drivers/mmc/host/atmel-mci.c host->need_clock_update = true; host 1465 drivers/mmc/host/atmel-mci.c spin_unlock_bh(&host->lock); host 1469 drivers/mmc/host/atmel-mci.c spin_lock_bh(&host->lock); host 1472 drivers/mmc/host/atmel-mci.c if (host->slot[i] && host->slot[i]->clock) { host 1478 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIDIS); host 1479 drivers/mmc/host/atmel-mci.c if (host->mode_reg) { host 1480 drivers/mmc/host/atmel-mci.c atmci_readl(host, ATMCI_MR); host 1482 drivers/mmc/host/atmel-mci.c host->mode_reg = 0; host 1484 drivers/mmc/host/atmel-mci.c spin_unlock_bh(&host->lock); host 1534 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = slot->host; host 1537 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, slot->sdio_irq); host 1539 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, slot->sdio_irq); host 1551 drivers/mmc/host/atmel-mci.c static void atmci_request_end(struct atmel_mci *host, struct mmc_request *mrq) host 1552 drivers/mmc/host/atmel-mci.c __releases(&host->lock) host 1553 drivers/mmc/host/atmel-mci.c __acquires(&host->lock) host 1556 drivers/mmc/host/atmel-mci.c struct mmc_host *prev_mmc = host->cur_slot->mmc; host 1558 drivers/mmc/host/atmel-mci.c WARN_ON(host->cmd || host->data); host 1565 drivers/mmc/host/atmel-mci.c if (host->need_clock_update) { host 1566 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_MR, host->mode_reg); host 1567 drivers/mmc/host/atmel-mci.c if (host->caps.has_cfg_reg) host 1568 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CFG, host->cfg_reg); host 1571 drivers/mmc/host/atmel-mci.c host->cur_slot->mrq = NULL; host 1572 drivers/mmc/host/atmel-mci.c host->mrq = NULL; host 1573 drivers/mmc/host/atmel-mci.c if (!list_empty(&host->queue)) { host 1574 drivers/mmc/host/atmel-mci.c slot = list_entry(host->queue.next, host 1577 drivers/mmc/host/atmel-mci.c dev_vdbg(&host->pdev->dev, "list not empty: %s is next\n", host 1579 drivers/mmc/host/atmel-mci.c host->state = STATE_SENDING_CMD; host 1580 drivers/mmc/host/atmel-mci.c atmci_start_request(host, slot); host 1582 drivers/mmc/host/atmel-mci.c dev_vdbg(&host->pdev->dev, "list empty\n"); host 1583 drivers/mmc/host/atmel-mci.c host->state = STATE_IDLE; host 1586 drivers/mmc/host/atmel-mci.c del_timer(&host->timer); host 1588 drivers/mmc/host/atmel-mci.c spin_unlock(&host->lock); host 1590 drivers/mmc/host/atmel-mci.c spin_lock(&host->lock); host 1593 drivers/mmc/host/atmel-mci.c static void atmci_command_complete(struct atmel_mci *host, host 1596 drivers/mmc/host/atmel-mci.c u32 status = host->cmd_status; host 1599 drivers/mmc/host/atmel-mci.c cmd->resp[0] = atmci_readl(host, ATMCI_RSPR); host 1600 drivers/mmc/host/atmel-mci.c cmd->resp[1] = atmci_readl(host, ATMCI_RSPR); host 1601 drivers/mmc/host/atmel-mci.c cmd->resp[2] = atmci_readl(host, ATMCI_RSPR); host 1602 drivers/mmc/host/atmel-mci.c cmd->resp[3] = atmci_readl(host, ATMCI_RSPR); host 1610 drivers/mmc/host/atmel-mci.c else if (host->mrq->data && (host->mrq->data->blksz & 3)) { host 1611 drivers/mmc/host/atmel-mci.c if (host->caps.need_blksz_mul_4) { host 1613 drivers/mmc/host/atmel-mci.c host->need_reset = 1; host 1644 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = slot->host; host 1650 drivers/mmc/host/atmel-mci.c spin_lock(&host->lock); host 1660 drivers/mmc/host/atmel-mci.c if (mrq == host->mrq) { host 1665 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST); host 1666 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIEN); host 1667 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_MR, host->mode_reg); host 1668 drivers/mmc/host/atmel-mci.c if (host->caps.has_cfg_reg) host 1669 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CFG, host->cfg_reg); host 1671 drivers/mmc/host/atmel-mci.c host->data = NULL; host 1672 drivers/mmc/host/atmel-mci.c host->cmd = NULL; host 1674 drivers/mmc/host/atmel-mci.c switch (host->state) { host 1680 drivers/mmc/host/atmel-mci.c host->stop_transfer(host); host 1684 drivers/mmc/host/atmel-mci.c host->stop_transfer(host); host 1696 drivers/mmc/host/atmel-mci.c atmci_request_end(host, mrq); host 1705 drivers/mmc/host/atmel-mci.c spin_unlock(&host->lock); host 1707 drivers/mmc/host/atmel-mci.c spin_lock(&host->lock); host 1710 drivers/mmc/host/atmel-mci.c spin_unlock(&host->lock); host 1718 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = (struct atmel_mci *)priv; host 1719 drivers/mmc/host/atmel-mci.c struct mmc_request *mrq = host->mrq; host 1720 drivers/mmc/host/atmel-mci.c struct mmc_data *data = host->data; host 1721 drivers/mmc/host/atmel-mci.c enum atmel_mci_state state = host->state; host 1725 drivers/mmc/host/atmel-mci.c spin_lock(&host->lock); host 1727 drivers/mmc/host/atmel-mci.c state = host->state; host 1729 drivers/mmc/host/atmel-mci.c dev_vdbg(&host->pdev->dev, host 1731 drivers/mmc/host/atmel-mci.c state, host->pending_events, host->completed_events, host 1732 drivers/mmc/host/atmel-mci.c atmci_readl(host, ATMCI_IMR)); host 1736 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "FSM: state=%d\n", state); host 1749 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "FSM: cmd ready?\n"); host 1750 drivers/mmc/host/atmel-mci.c if (!atmci_test_and_clear_pending(host, host 1754 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "set completed cmd ready\n"); host 1755 drivers/mmc/host/atmel-mci.c host->cmd = NULL; host 1756 drivers/mmc/host/atmel-mci.c atmci_set_completed(host, EVENT_CMD_RDY); host 1757 drivers/mmc/host/atmel-mci.c atmci_command_complete(host, mrq->cmd); host 1759 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, host 1766 drivers/mmc/host/atmel-mci.c host->stop_transfer(host); host 1767 drivers/mmc/host/atmel-mci.c host->data = NULL; host 1768 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, host 1775 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, host 1777 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); host 1785 drivers/mmc/host/atmel-mci.c if (atmci_test_and_clear_pending(host, host 1787 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "set completed data error\n"); host 1788 drivers/mmc/host/atmel-mci.c atmci_set_completed(host, EVENT_DATA_ERROR); host 1800 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "FSM: xfer complete?\n"); host 1801 drivers/mmc/host/atmel-mci.c if (!atmci_test_and_clear_pending(host, host 1805 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, host 1808 drivers/mmc/host/atmel-mci.c atmci_set_completed(host, EVENT_XFER_COMPLETE); host 1810 drivers/mmc/host/atmel-mci.c if (host->caps.need_notbusy_for_read_ops || host 1811 drivers/mmc/host/atmel-mci.c (host->data->flags & MMC_DATA_WRITE)) { host 1812 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); host 1814 drivers/mmc/host/atmel-mci.c } else if (host->mrq->stop) { host 1815 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_CMDRDY); host 1816 drivers/mmc/host/atmel-mci.c atmci_send_stop_cmd(host, data); host 1819 drivers/mmc/host/atmel-mci.c host->data = NULL; host 1833 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "FSM: not busy?\n"); host 1834 drivers/mmc/host/atmel-mci.c if (!atmci_test_and_clear_pending(host, host 1838 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "set completed not busy\n"); host 1839 drivers/mmc/host/atmel-mci.c atmci_set_completed(host, EVENT_NOTBUSY); host 1841 drivers/mmc/host/atmel-mci.c if (host->data) { host 1847 drivers/mmc/host/atmel-mci.c if (host->mrq->stop) { host 1848 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, host 1850 drivers/mmc/host/atmel-mci.c atmci_send_stop_cmd(host, data); host 1853 drivers/mmc/host/atmel-mci.c host->data = NULL; host 1870 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "FSM: cmd ready?\n"); host 1871 drivers/mmc/host/atmel-mci.c if (!atmci_test_and_clear_pending(host, host 1875 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "FSM: cmd ready\n"); host 1876 drivers/mmc/host/atmel-mci.c host->cmd = NULL; host 1879 drivers/mmc/host/atmel-mci.c atmci_command_complete(host, mrq->stop); host 1881 drivers/mmc/host/atmel-mci.c host->stop_transfer(host); host 1882 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, host 1887 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); host 1890 drivers/mmc/host/atmel-mci.c host->data = NULL; host 1894 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_TXRDY | ATMCI_RXRDY host 1896 drivers/mmc/host/atmel-mci.c status = host->data_status; host 1898 drivers/mmc/host/atmel-mci.c host->stop_transfer(host); host 1899 drivers/mmc/host/atmel-mci.c host->data = NULL; host 1911 drivers/mmc/host/atmel-mci.c atmci_request_end(host, host->mrq); host 1917 drivers/mmc/host/atmel-mci.c host->state = state; host 1920 drivers/mmc/host/atmel-mci.c spin_unlock(&host->lock); host 1923 drivers/mmc/host/atmel-mci.c static void atmci_read_data_pio(struct atmel_mci *host) host 1925 drivers/mmc/host/atmel-mci.c struct scatterlist *sg = host->sg; host 1926 drivers/mmc/host/atmel-mci.c unsigned int offset = host->pio_offset; host 1927 drivers/mmc/host/atmel-mci.c struct mmc_data *data = host->data; host 1933 drivers/mmc/host/atmel-mci.c value = atmci_readl(host, ATMCI_RDR); host 1942 drivers/mmc/host/atmel-mci.c host->sg = sg = sg_next(sg); host 1943 drivers/mmc/host/atmel-mci.c host->sg_len--; host 1944 drivers/mmc/host/atmel-mci.c if (!sg || !host->sg_len) host 1956 drivers/mmc/host/atmel-mci.c host->sg = sg = sg_next(sg); host 1957 drivers/mmc/host/atmel-mci.c host->sg_len--; host 1958 drivers/mmc/host/atmel-mci.c if (!sg || !host->sg_len) host 1967 drivers/mmc/host/atmel-mci.c status = atmci_readl(host, ATMCI_SR); host 1969 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, (ATMCI_NOTBUSY | ATMCI_RXRDY host 1971 drivers/mmc/host/atmel-mci.c host->data_status = status; host 1977 drivers/mmc/host/atmel-mci.c host->pio_offset = offset; host 1983 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_RXRDY); host 1984 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); host 1987 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_XFER_COMPLETE); host 1990 drivers/mmc/host/atmel-mci.c static void atmci_write_data_pio(struct atmel_mci *host) host 1992 drivers/mmc/host/atmel-mci.c struct scatterlist *sg = host->sg; host 1993 drivers/mmc/host/atmel-mci.c unsigned int offset = host->pio_offset; host 1994 drivers/mmc/host/atmel-mci.c struct mmc_data *data = host->data; host 2002 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_TDR, value); host 2007 drivers/mmc/host/atmel-mci.c host->sg = sg = sg_next(sg); host 2008 drivers/mmc/host/atmel-mci.c host->sg_len--; host 2009 drivers/mmc/host/atmel-mci.c if (!sg || !host->sg_len) host 2021 drivers/mmc/host/atmel-mci.c host->sg = sg = sg_next(sg); host 2022 drivers/mmc/host/atmel-mci.c host->sg_len--; host 2023 drivers/mmc/host/atmel-mci.c if (!sg || !host->sg_len) { host 2024 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_TDR, value); host 2031 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_TDR, value); host 2035 drivers/mmc/host/atmel-mci.c status = atmci_readl(host, ATMCI_SR); host 2037 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, (ATMCI_NOTBUSY | ATMCI_TXRDY host 2039 drivers/mmc/host/atmel-mci.c host->data_status = status; host 2045 drivers/mmc/host/atmel-mci.c host->pio_offset = offset; host 2051 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_TXRDY); host 2052 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_NOTBUSY); host 2055 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_XFER_COMPLETE); host 2058 drivers/mmc/host/atmel-mci.c static void atmci_sdio_interrupt(struct atmel_mci *host, u32 status) host 2063 drivers/mmc/host/atmel-mci.c struct atmel_mci_slot *slot = host->slot[i]; host 2073 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = dev_id; host 2078 drivers/mmc/host/atmel-mci.c status = atmci_readl(host, ATMCI_SR); host 2079 drivers/mmc/host/atmel-mci.c mask = atmci_readl(host, ATMCI_IMR); host 2085 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "IRQ: data error\n"); host 2086 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_DATA_ERROR_FLAGS host 2091 drivers/mmc/host/atmel-mci.c host->data_status = status; host 2092 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "set pending data error\n"); host 2094 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_DATA_ERROR); host 2095 drivers/mmc/host/atmel-mci.c tasklet_schedule(&host->tasklet); host 2099 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "IRQ: tx buffer empty\n"); host 2100 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_TXBUFE); host 2101 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_ENDTX); host 2107 drivers/mmc/host/atmel-mci.c if (host->data_size) { host 2108 drivers/mmc/host/atmel-mci.c atmci_pdc_set_both_buf(host, XFER_TRANSMIT); host 2109 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_ENDTX); host 2110 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_TXBUFE); host 2112 drivers/mmc/host/atmel-mci.c atmci_pdc_complete(host); host 2115 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "IRQ: end of tx buffer\n"); host 2116 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_ENDTX); host 2118 drivers/mmc/host/atmel-mci.c if (host->data_size) { host 2119 drivers/mmc/host/atmel-mci.c atmci_pdc_set_single_buf(host, host 2121 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_ENDTX); host 2126 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "IRQ: rx buffer full\n"); host 2127 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_RXBUFF); host 2128 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_ENDRX); host 2134 drivers/mmc/host/atmel-mci.c if (host->data_size) { host 2135 drivers/mmc/host/atmel-mci.c atmci_pdc_set_both_buf(host, XFER_RECEIVE); host 2136 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_ENDRX); host 2137 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_RXBUFF); host 2139 drivers/mmc/host/atmel-mci.c atmci_pdc_complete(host); host 2142 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "IRQ: end of rx buffer\n"); host 2143 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_ENDRX); host 2145 drivers/mmc/host/atmel-mci.c if (host->data_size) { host 2146 drivers/mmc/host/atmel-mci.c atmci_pdc_set_single_buf(host, host 2148 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IER, ATMCI_ENDRX); host 2159 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "IRQ: blke\n"); host 2160 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_BLKE); host 2162 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "set pending notbusy\n"); host 2163 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_NOTBUSY); host 2164 drivers/mmc/host/atmel-mci.c tasklet_schedule(&host->tasklet); host 2168 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "IRQ: not_busy\n"); host 2169 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_NOTBUSY); host 2171 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "set pending notbusy\n"); host 2172 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_NOTBUSY); host 2173 drivers/mmc/host/atmel-mci.c tasklet_schedule(&host->tasklet); host 2177 drivers/mmc/host/atmel-mci.c atmci_read_data_pio(host); host 2179 drivers/mmc/host/atmel-mci.c atmci_write_data_pio(host); host 2182 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "IRQ: cmd ready\n"); host 2183 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ATMCI_CMDRDY); host 2184 drivers/mmc/host/atmel-mci.c host->cmd_status = status; host 2186 drivers/mmc/host/atmel-mci.c dev_dbg(&host->pdev->dev, "set pending cmd rdy\n"); host 2187 drivers/mmc/host/atmel-mci.c atmci_set_pending(host, EVENT_CMD_RDY); host 2188 drivers/mmc/host/atmel-mci.c tasklet_schedule(&host->tasklet); host 2192 drivers/mmc/host/atmel-mci.c atmci_sdio_interrupt(host, status); host 2214 drivers/mmc/host/atmel-mci.c static int atmci_init_slot(struct atmel_mci *host, host 2221 drivers/mmc/host/atmel-mci.c mmc = mmc_alloc_host(sizeof(struct atmel_mci_slot), &host->pdev->dev); host 2227 drivers/mmc/host/atmel-mci.c slot->host = host; host 2242 drivers/mmc/host/atmel-mci.c mmc->f_min = DIV_ROUND_UP(host->bus_hz, 512); host 2243 drivers/mmc/host/atmel-mci.c mmc->f_max = host->bus_hz / 2; host 2247 drivers/mmc/host/atmel-mci.c if (host->caps.has_highspeed) host 2254 drivers/mmc/host/atmel-mci.c if ((slot_data->bus_width >= 4) && host->caps.has_rwproof) { host 2260 drivers/mmc/host/atmel-mci.c if (atmci_get_version(host) < 0x200) { host 2276 drivers/mmc/host/atmel-mci.c if (devm_gpio_request(&host->pdev->dev, slot->detect_pin, host 2294 drivers/mmc/host/atmel-mci.c if (devm_gpio_request(&host->pdev->dev, slot->wp_pin, host 2301 drivers/mmc/host/atmel-mci.c host->slot[id] = slot; host 2344 drivers/mmc/host/atmel-mci.c slot->host->slot[id] = NULL; host 2348 drivers/mmc/host/atmel-mci.c static int atmci_configure_dma(struct atmel_mci *host) host 2350 drivers/mmc/host/atmel-mci.c host->dma.chan = dma_request_slave_channel_reason(&host->pdev->dev, host 2353 drivers/mmc/host/atmel-mci.c if (PTR_ERR(host->dma.chan) == -ENODEV) { host 2354 drivers/mmc/host/atmel-mci.c struct mci_platform_data *pdata = host->pdev->dev.platform_data; host 2363 drivers/mmc/host/atmel-mci.c host->dma.chan = dma_request_channel(mask, pdata->dma_filter, host 2365 drivers/mmc/host/atmel-mci.c if (!host->dma.chan) host 2366 drivers/mmc/host/atmel-mci.c host->dma.chan = ERR_PTR(-ENODEV); host 2369 drivers/mmc/host/atmel-mci.c if (IS_ERR(host->dma.chan)) host 2370 drivers/mmc/host/atmel-mci.c return PTR_ERR(host->dma.chan); host 2372 drivers/mmc/host/atmel-mci.c dev_info(&host->pdev->dev, "using %s for DMA transfers\n", host 2373 drivers/mmc/host/atmel-mci.c dma_chan_name(host->dma.chan)); host 2375 drivers/mmc/host/atmel-mci.c host->dma_conf.src_addr = host->mapbase + ATMCI_RDR; host 2376 drivers/mmc/host/atmel-mci.c host->dma_conf.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 2377 drivers/mmc/host/atmel-mci.c host->dma_conf.src_maxburst = 1; host 2378 drivers/mmc/host/atmel-mci.c host->dma_conf.dst_addr = host->mapbase + ATMCI_TDR; host 2379 drivers/mmc/host/atmel-mci.c host->dma_conf.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 2380 drivers/mmc/host/atmel-mci.c host->dma_conf.dst_maxburst = 1; host 2381 drivers/mmc/host/atmel-mci.c host->dma_conf.device_fc = false; host 2391 drivers/mmc/host/atmel-mci.c static void atmci_get_cap(struct atmel_mci *host) host 2395 drivers/mmc/host/atmel-mci.c version = atmci_get_version(host); host 2396 drivers/mmc/host/atmel-mci.c dev_info(&host->pdev->dev, host 2399 drivers/mmc/host/atmel-mci.c host->caps.has_dma_conf_reg = 0; host 2400 drivers/mmc/host/atmel-mci.c host->caps.has_pdc = 1; host 2401 drivers/mmc/host/atmel-mci.c host->caps.has_cfg_reg = 0; host 2402 drivers/mmc/host/atmel-mci.c host->caps.has_cstor_reg = 0; host 2403 drivers/mmc/host/atmel-mci.c host->caps.has_highspeed = 0; host 2404 drivers/mmc/host/atmel-mci.c host->caps.has_rwproof = 0; host 2405 drivers/mmc/host/atmel-mci.c host->caps.has_odd_clk_div = 0; host 2406 drivers/mmc/host/atmel-mci.c host->caps.has_bad_data_ordering = 1; host 2407 drivers/mmc/host/atmel-mci.c host->caps.need_reset_after_xfer = 1; host 2408 drivers/mmc/host/atmel-mci.c host->caps.need_blksz_mul_4 = 1; host 2409 drivers/mmc/host/atmel-mci.c host->caps.need_notbusy_for_read_ops = 0; host 2415 drivers/mmc/host/atmel-mci.c host->caps.has_odd_clk_div = 1; host 2419 drivers/mmc/host/atmel-mci.c host->caps.has_dma_conf_reg = 1; host 2420 drivers/mmc/host/atmel-mci.c host->caps.has_pdc = 0; host 2421 drivers/mmc/host/atmel-mci.c host->caps.has_cfg_reg = 1; host 2422 drivers/mmc/host/atmel-mci.c host->caps.has_cstor_reg = 1; host 2423 drivers/mmc/host/atmel-mci.c host->caps.has_highspeed = 1; host 2426 drivers/mmc/host/atmel-mci.c host->caps.has_rwproof = 1; host 2427 drivers/mmc/host/atmel-mci.c host->caps.need_blksz_mul_4 = 0; host 2428 drivers/mmc/host/atmel-mci.c host->caps.need_notbusy_for_read_ops = 1; host 2431 drivers/mmc/host/atmel-mci.c host->caps.has_bad_data_ordering = 0; host 2432 drivers/mmc/host/atmel-mci.c host->caps.need_reset_after_xfer = 0; host 2437 drivers/mmc/host/atmel-mci.c host->caps.has_pdc = 0; host 2438 drivers/mmc/host/atmel-mci.c dev_warn(&host->pdev->dev, host 2447 drivers/mmc/host/atmel-mci.c struct atmel_mci *host; host 2469 drivers/mmc/host/atmel-mci.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 2470 drivers/mmc/host/atmel-mci.c if (!host) host 2473 drivers/mmc/host/atmel-mci.c host->pdev = pdev; host 2474 drivers/mmc/host/atmel-mci.c spin_lock_init(&host->lock); host 2475 drivers/mmc/host/atmel-mci.c INIT_LIST_HEAD(&host->queue); host 2477 drivers/mmc/host/atmel-mci.c host->mck = devm_clk_get(&pdev->dev, "mci_clk"); host 2478 drivers/mmc/host/atmel-mci.c if (IS_ERR(host->mck)) host 2479 drivers/mmc/host/atmel-mci.c return PTR_ERR(host->mck); host 2481 drivers/mmc/host/atmel-mci.c host->regs = devm_ioremap(&pdev->dev, regs->start, resource_size(regs)); host 2482 drivers/mmc/host/atmel-mci.c if (!host->regs) host 2485 drivers/mmc/host/atmel-mci.c ret = clk_prepare_enable(host->mck); host 2489 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST); host 2490 drivers/mmc/host/atmel-mci.c host->bus_hz = clk_get_rate(host->mck); host 2492 drivers/mmc/host/atmel-mci.c host->mapbase = regs->start; host 2494 drivers/mmc/host/atmel-mci.c tasklet_init(&host->tasklet, atmci_tasklet_func, (unsigned long)host); host 2496 drivers/mmc/host/atmel-mci.c ret = request_irq(irq, atmci_interrupt, 0, dev_name(&pdev->dev), host); host 2498 drivers/mmc/host/atmel-mci.c clk_disable_unprepare(host->mck); host 2503 drivers/mmc/host/atmel-mci.c atmci_get_cap(host); host 2504 drivers/mmc/host/atmel-mci.c ret = atmci_configure_dma(host); host 2508 drivers/mmc/host/atmel-mci.c host->prepare_data = &atmci_prepare_data_dma; host 2509 drivers/mmc/host/atmel-mci.c host->submit_data = &atmci_submit_data_dma; host 2510 drivers/mmc/host/atmel-mci.c host->stop_transfer = &atmci_stop_transfer_dma; host 2511 drivers/mmc/host/atmel-mci.c } else if (host->caps.has_pdc) { host 2513 drivers/mmc/host/atmel-mci.c host->prepare_data = &atmci_prepare_data_pdc; host 2514 drivers/mmc/host/atmel-mci.c host->submit_data = &atmci_submit_data_pdc; host 2515 drivers/mmc/host/atmel-mci.c host->stop_transfer = &atmci_stop_transfer_pdc; host 2518 drivers/mmc/host/atmel-mci.c host->prepare_data = &atmci_prepare_data; host 2519 drivers/mmc/host/atmel-mci.c host->submit_data = &atmci_submit_data; host 2520 drivers/mmc/host/atmel-mci.c host->stop_transfer = &atmci_stop_transfer; host 2523 drivers/mmc/host/atmel-mci.c platform_set_drvdata(pdev, host); host 2525 drivers/mmc/host/atmel-mci.c timer_setup(&host->timer, atmci_timeout_timer, 0); host 2537 drivers/mmc/host/atmel-mci.c ret = atmci_init_slot(host, &pdata->slot[0], host 2541 drivers/mmc/host/atmel-mci.c host->buf_size = host->slot[0]->mmc->max_req_size; host 2545 drivers/mmc/host/atmel-mci.c ret = atmci_init_slot(host, &pdata->slot[1], host 2549 drivers/mmc/host/atmel-mci.c if (host->slot[1]->mmc->max_req_size > host->buf_size) host 2550 drivers/mmc/host/atmel-mci.c host->buf_size = host 2551 drivers/mmc/host/atmel-mci.c host->slot[1]->mmc->max_req_size; host 2560 drivers/mmc/host/atmel-mci.c if (!host->caps.has_rwproof) { host 2561 drivers/mmc/host/atmel-mci.c host->buffer = dma_alloc_coherent(&pdev->dev, host->buf_size, host 2562 drivers/mmc/host/atmel-mci.c &host->buf_phys_addr, host 2564 drivers/mmc/host/atmel-mci.c if (!host->buffer) { host 2573 drivers/mmc/host/atmel-mci.c host->mapbase, irq, nr_slots); host 2575 drivers/mmc/host/atmel-mci.c pm_runtime_mark_last_busy(&host->pdev->dev); host 2582 drivers/mmc/host/atmel-mci.c if (host->slot[i]) host 2583 drivers/mmc/host/atmel-mci.c atmci_cleanup_slot(host->slot[i], i); host 2586 drivers/mmc/host/atmel-mci.c clk_disable_unprepare(host->mck); host 2591 drivers/mmc/host/atmel-mci.c del_timer_sync(&host->timer); host 2592 drivers/mmc/host/atmel-mci.c if (!IS_ERR(host->dma.chan)) host 2593 drivers/mmc/host/atmel-mci.c dma_release_channel(host->dma.chan); host 2595 drivers/mmc/host/atmel-mci.c free_irq(irq, host); host 2601 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = platform_get_drvdata(pdev); host 2606 drivers/mmc/host/atmel-mci.c if (host->buffer) host 2607 drivers/mmc/host/atmel-mci.c dma_free_coherent(&pdev->dev, host->buf_size, host 2608 drivers/mmc/host/atmel-mci.c host->buffer, host->buf_phys_addr); host 2611 drivers/mmc/host/atmel-mci.c if (host->slot[i]) host 2612 drivers/mmc/host/atmel-mci.c atmci_cleanup_slot(host->slot[i], i); host 2615 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_IDR, ~0UL); host 2616 drivers/mmc/host/atmel-mci.c atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIDIS); host 2617 drivers/mmc/host/atmel-mci.c atmci_readl(host, ATMCI_SR); host 2619 drivers/mmc/host/atmel-mci.c del_timer_sync(&host->timer); host 2620 drivers/mmc/host/atmel-mci.c if (!IS_ERR(host->dma.chan)) host 2621 drivers/mmc/host/atmel-mci.c dma_release_channel(host->dma.chan); host 2623 drivers/mmc/host/atmel-mci.c free_irq(platform_get_irq(pdev, 0), host); host 2625 drivers/mmc/host/atmel-mci.c clk_disable_unprepare(host->mck); host 2636 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = dev_get_drvdata(dev); host 2638 drivers/mmc/host/atmel-mci.c clk_disable_unprepare(host->mck); host 2647 drivers/mmc/host/atmel-mci.c struct atmel_mci *host = dev_get_drvdata(dev); host 2651 drivers/mmc/host/atmel-mci.c return clk_prepare_enable(host->mck); host 164 drivers/mmc/host/au1xmmc.c static inline void IRQ_ON(struct au1xmmc_host *host, u32 mask) host 166 drivers/mmc/host/au1xmmc.c u32 val = __raw_readl(HOST_CONFIG(host)); host 168 drivers/mmc/host/au1xmmc.c __raw_writel(val, HOST_CONFIG(host)); host 172 drivers/mmc/host/au1xmmc.c static inline void FLUSH_FIFO(struct au1xmmc_host *host) host 174 drivers/mmc/host/au1xmmc.c u32 val = __raw_readl(HOST_CONFIG2(host)); host 176 drivers/mmc/host/au1xmmc.c __raw_writel(val | SD_CONFIG2_FF, HOST_CONFIG2(host)); host 183 drivers/mmc/host/au1xmmc.c __raw_writel(val, HOST_CONFIG2(host)); host 187 drivers/mmc/host/au1xmmc.c static inline void IRQ_OFF(struct au1xmmc_host *host, u32 mask) host 189 drivers/mmc/host/au1xmmc.c u32 val = __raw_readl(HOST_CONFIG(host)); host 191 drivers/mmc/host/au1xmmc.c __raw_writel(val, HOST_CONFIG(host)); host 195 drivers/mmc/host/au1xmmc.c static inline void SEND_STOP(struct au1xmmc_host *host) host 199 drivers/mmc/host/au1xmmc.c WARN_ON(host->status != HOST_S_DATA); host 200 drivers/mmc/host/au1xmmc.c host->status = HOST_S_STOP; host 202 drivers/mmc/host/au1xmmc.c config2 = __raw_readl(HOST_CONFIG2(host)); host 203 drivers/mmc/host/au1xmmc.c __raw_writel(config2 | SD_CONFIG2_DF, HOST_CONFIG2(host)); host 207 drivers/mmc/host/au1xmmc.c __raw_writel(STOP_CMD, HOST_CMD(host)); host 211 drivers/mmc/host/au1xmmc.c static void au1xmmc_set_power(struct au1xmmc_host *host, int state) host 213 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->set_power) host 214 drivers/mmc/host/au1xmmc.c host->platdata->set_power(host->mmc, state); host 219 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = mmc_priv(mmc); host 221 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->card_inserted) host 222 drivers/mmc/host/au1xmmc.c return !!host->platdata->card_inserted(host->mmc); host 229 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = mmc_priv(mmc); host 231 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->card_readonly) host 232 drivers/mmc/host/au1xmmc.c return !!host->platdata->card_readonly(mmc); host 237 drivers/mmc/host/au1xmmc.c static void au1xmmc_finish_request(struct au1xmmc_host *host) host 239 drivers/mmc/host/au1xmmc.c struct mmc_request *mrq = host->mrq; host 241 drivers/mmc/host/au1xmmc.c host->mrq = NULL; host 242 drivers/mmc/host/au1xmmc.c host->flags &= HOST_F_ACTIVE | HOST_F_DMA; host 244 drivers/mmc/host/au1xmmc.c host->dma.len = 0; host 245 drivers/mmc/host/au1xmmc.c host->dma.dir = 0; host 247 drivers/mmc/host/au1xmmc.c host->pio.index = 0; host 248 drivers/mmc/host/au1xmmc.c host->pio.offset = 0; host 249 drivers/mmc/host/au1xmmc.c host->pio.len = 0; host 251 drivers/mmc/host/au1xmmc.c host->status = HOST_S_IDLE; host 253 drivers/mmc/host/au1xmmc.c mmc_request_done(host->mmc, mrq); host 258 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = (struct au1xmmc_host *) param; host 259 drivers/mmc/host/au1xmmc.c au1xmmc_finish_request(host); host 262 drivers/mmc/host/au1xmmc.c static int au1xmmc_send_command(struct au1xmmc_host *host, int wait, host 302 drivers/mmc/host/au1xmmc.c __raw_writel(cmd->arg, HOST_CMDARG(host)); host 306 drivers/mmc/host/au1xmmc.c IRQ_OFF(host, SD_CONFIG_CR); host 308 drivers/mmc/host/au1xmmc.c __raw_writel((mmccmd | SD_CMD_GO), HOST_CMD(host)); host 312 drivers/mmc/host/au1xmmc.c while (__raw_readl(HOST_CMD(host)) & SD_CMD_GO) host 317 drivers/mmc/host/au1xmmc.c u32 status = __raw_readl(HOST_STATUS(host)); host 320 drivers/mmc/host/au1xmmc.c status = __raw_readl(HOST_STATUS(host)); host 323 drivers/mmc/host/au1xmmc.c __raw_writel(SD_STATUS_CR, HOST_STATUS(host)); host 325 drivers/mmc/host/au1xmmc.c IRQ_ON(host, SD_CONFIG_CR); host 331 drivers/mmc/host/au1xmmc.c static void au1xmmc_data_complete(struct au1xmmc_host *host, u32 status) host 333 drivers/mmc/host/au1xmmc.c struct mmc_request *mrq = host->mrq; host 337 drivers/mmc/host/au1xmmc.c WARN_ON((host->status != HOST_S_DATA) && (host->status != HOST_S_STOP)); host 339 drivers/mmc/host/au1xmmc.c if (host->mrq == NULL) host 345 drivers/mmc/host/au1xmmc.c status = __raw_readl(HOST_STATUS(host)); host 348 drivers/mmc/host/au1xmmc.c while ((host->flags & HOST_F_XMIT) && (status & SD_STATUS_DB)) host 349 drivers/mmc/host/au1xmmc.c status = __raw_readl(HOST_STATUS(host)); host 352 drivers/mmc/host/au1xmmc.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host->dma.dir); host 356 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_XMIT) host 363 drivers/mmc/host/au1xmmc.c __raw_writel(SD_STATUS_WC | SD_STATUS_RC, HOST_STATUS(host)); host 368 drivers/mmc/host/au1xmmc.c if (host->flags & (HOST_F_DMA | HOST_F_DBDMA)) { host 369 drivers/mmc/host/au1xmmc.c u32 chan = DMA_CHANNEL(host); host 376 drivers/mmc/host/au1xmmc.c (data->blocks * data->blksz) - host->pio.len; host 379 drivers/mmc/host/au1xmmc.c au1xmmc_finish_request(host); host 384 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = (struct au1xmmc_host *)param; host 386 drivers/mmc/host/au1xmmc.c u32 status = __raw_readl(HOST_STATUS(host)); host 387 drivers/mmc/host/au1xmmc.c au1xmmc_data_complete(host, status); host 392 drivers/mmc/host/au1xmmc.c static void au1xmmc_send_pio(struct au1xmmc_host *host) host 400 drivers/mmc/host/au1xmmc.c data = host->mrq->data; host 402 drivers/mmc/host/au1xmmc.c if (!(host->flags & HOST_F_XMIT)) host 406 drivers/mmc/host/au1xmmc.c sg = &data->sg[host->pio.index]; host 407 drivers/mmc/host/au1xmmc.c sg_ptr = kmap_atomic(sg_page(sg)) + sg->offset + host->pio.offset; host 410 drivers/mmc/host/au1xmmc.c sg_len = data->sg[host->pio.index].length - host->pio.offset; host 413 drivers/mmc/host/au1xmmc.c max = (sg_len > host->pio.len) ? host->pio.len : sg_len; host 418 drivers/mmc/host/au1xmmc.c status = __raw_readl(HOST_STATUS(host)); host 425 drivers/mmc/host/au1xmmc.c __raw_writel((unsigned long)val, HOST_TXPORT(host)); host 430 drivers/mmc/host/au1xmmc.c host->pio.len -= count; host 431 drivers/mmc/host/au1xmmc.c host->pio.offset += count; host 434 drivers/mmc/host/au1xmmc.c host->pio.index++; host 435 drivers/mmc/host/au1xmmc.c host->pio.offset = 0; host 438 drivers/mmc/host/au1xmmc.c if (host->pio.len == 0) { host 439 drivers/mmc/host/au1xmmc.c IRQ_OFF(host, SD_CONFIG_TH); host 441 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_STOP) host 442 drivers/mmc/host/au1xmmc.c SEND_STOP(host); host 444 drivers/mmc/host/au1xmmc.c tasklet_schedule(&host->data_task); host 448 drivers/mmc/host/au1xmmc.c static void au1xmmc_receive_pio(struct au1xmmc_host *host) host 456 drivers/mmc/host/au1xmmc.c data = host->mrq->data; host 458 drivers/mmc/host/au1xmmc.c if (!(host->flags & HOST_F_RECV)) host 461 drivers/mmc/host/au1xmmc.c max = host->pio.len; host 463 drivers/mmc/host/au1xmmc.c if (host->pio.index < host->dma.len) { host 464 drivers/mmc/host/au1xmmc.c sg = &data->sg[host->pio.index]; host 465 drivers/mmc/host/au1xmmc.c sg_ptr = kmap_atomic(sg_page(sg)) + sg->offset + host->pio.offset; host 468 drivers/mmc/host/au1xmmc.c sg_len = sg_dma_len(&data->sg[host->pio.index]) - host->pio.offset; host 479 drivers/mmc/host/au1xmmc.c status = __raw_readl(HOST_STATUS(host)); host 485 drivers/mmc/host/au1xmmc.c DBG("RX CRC Error [%d + %d].\n", host->pdev->id, host 486 drivers/mmc/host/au1xmmc.c host->pio.len, count); host 491 drivers/mmc/host/au1xmmc.c DBG("RX Overrun [%d + %d]\n", host->pdev->id, host 492 drivers/mmc/host/au1xmmc.c host->pio.len, count); host 496 drivers/mmc/host/au1xmmc.c DBG("RX Underrun [%d + %d]\n", host->pdev->id, host 497 drivers/mmc/host/au1xmmc.c host->pio.len, count); host 501 drivers/mmc/host/au1xmmc.c val = __raw_readl(HOST_RXPORT(host)); host 509 drivers/mmc/host/au1xmmc.c host->pio.len -= count; host 510 drivers/mmc/host/au1xmmc.c host->pio.offset += count; host 513 drivers/mmc/host/au1xmmc.c host->pio.index++; host 514 drivers/mmc/host/au1xmmc.c host->pio.offset = 0; host 517 drivers/mmc/host/au1xmmc.c if (host->pio.len == 0) { host 519 drivers/mmc/host/au1xmmc.c IRQ_OFF(host, SD_CONFIG_NE); host 521 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_STOP) host 522 drivers/mmc/host/au1xmmc.c SEND_STOP(host); host 524 drivers/mmc/host/au1xmmc.c tasklet_schedule(&host->data_task); host 531 drivers/mmc/host/au1xmmc.c static void au1xmmc_cmd_complete(struct au1xmmc_host *host, u32 status) host 533 drivers/mmc/host/au1xmmc.c struct mmc_request *mrq = host->mrq; host 538 drivers/mmc/host/au1xmmc.c if (!host->mrq) host 546 drivers/mmc/host/au1xmmc.c r[0] = __raw_readl(host->iobase + SD_RESP3); host 547 drivers/mmc/host/au1xmmc.c r[1] = __raw_readl(host->iobase + SD_RESP2); host 548 drivers/mmc/host/au1xmmc.c r[2] = __raw_readl(host->iobase + SD_RESP1); host 549 drivers/mmc/host/au1xmmc.c r[3] = __raw_readl(host->iobase + SD_RESP0); host 568 drivers/mmc/host/au1xmmc.c cmd->resp[0] = __raw_readl(host->iobase + SD_RESP0); host 576 drivers/mmc/host/au1xmmc.c trans = host->flags & (HOST_F_XMIT | HOST_F_RECV); host 579 drivers/mmc/host/au1xmmc.c IRQ_OFF(host, SD_CONFIG_TH | SD_CONFIG_RA | SD_CONFIG_RF); host 580 drivers/mmc/host/au1xmmc.c tasklet_schedule(&host->finish_task); host 584 drivers/mmc/host/au1xmmc.c host->status = HOST_S_DATA; host 586 drivers/mmc/host/au1xmmc.c if ((host->flags & (HOST_F_DMA | HOST_F_DBDMA))) { host 587 drivers/mmc/host/au1xmmc.c u32 channel = DMA_CHANNEL(host); host 591 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_RECV) { host 595 drivers/mmc/host/au1xmmc.c status = __raw_readl(HOST_STATUS(host)); host 602 drivers/mmc/host/au1xmmc.c static void au1xmmc_set_clock(struct au1xmmc_host *host, int rate) host 604 drivers/mmc/host/au1xmmc.c unsigned int pbus = clk_get_rate(host->clk); host 608 drivers/mmc/host/au1xmmc.c config = __raw_readl(HOST_CONFIG(host)); host 613 drivers/mmc/host/au1xmmc.c __raw_writel(config, HOST_CONFIG(host)); host 617 drivers/mmc/host/au1xmmc.c static int au1xmmc_prepare_data(struct au1xmmc_host *host, host 623 drivers/mmc/host/au1xmmc.c host->flags |= HOST_F_RECV; host 625 drivers/mmc/host/au1xmmc.c host->flags |= HOST_F_XMIT; host 627 drivers/mmc/host/au1xmmc.c if (host->mrq->stop) host 628 drivers/mmc/host/au1xmmc.c host->flags |= HOST_F_STOP; host 630 drivers/mmc/host/au1xmmc.c host->dma.dir = DMA_BIDIRECTIONAL; host 632 drivers/mmc/host/au1xmmc.c host->dma.len = dma_map_sg(mmc_dev(host->mmc), data->sg, host 633 drivers/mmc/host/au1xmmc.c data->sg_len, host->dma.dir); host 635 drivers/mmc/host/au1xmmc.c if (host->dma.len == 0) host 638 drivers/mmc/host/au1xmmc.c __raw_writel(data->blksz - 1, HOST_BLKSIZE(host)); host 640 drivers/mmc/host/au1xmmc.c if (host->flags & (HOST_F_DMA | HOST_F_DBDMA)) { host 642 drivers/mmc/host/au1xmmc.c u32 channel = DMA_CHANNEL(host); host 646 drivers/mmc/host/au1xmmc.c for (i = 0; i < host->dma.len; i++) { host 653 drivers/mmc/host/au1xmmc.c if (i == host->dma.len - 1) host 656 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_XMIT) { host 670 drivers/mmc/host/au1xmmc.c host->pio.index = 0; host 671 drivers/mmc/host/au1xmmc.c host->pio.offset = 0; host 672 drivers/mmc/host/au1xmmc.c host->pio.len = datalen; host 674 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_XMIT) host 675 drivers/mmc/host/au1xmmc.c IRQ_ON(host, SD_CONFIG_TH); host 677 drivers/mmc/host/au1xmmc.c IRQ_ON(host, SD_CONFIG_NE); host 684 drivers/mmc/host/au1xmmc.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 685 drivers/mmc/host/au1xmmc.c host->dma.dir); host 692 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = mmc_priv(mmc); host 696 drivers/mmc/host/au1xmmc.c WARN_ON(host->status != HOST_S_IDLE); host 698 drivers/mmc/host/au1xmmc.c host->mrq = mrq; host 699 drivers/mmc/host/au1xmmc.c host->status = HOST_S_CMD; host 704 drivers/mmc/host/au1xmmc.c au1xmmc_finish_request(host); host 709 drivers/mmc/host/au1xmmc.c FLUSH_FIFO(host); host 710 drivers/mmc/host/au1xmmc.c ret = au1xmmc_prepare_data(host, mrq->data); host 714 drivers/mmc/host/au1xmmc.c ret = au1xmmc_send_command(host, 0, mrq->cmd, mrq->data); host 718 drivers/mmc/host/au1xmmc.c au1xmmc_finish_request(host); host 722 drivers/mmc/host/au1xmmc.c static void au1xmmc_reset_controller(struct au1xmmc_host *host) host 725 drivers/mmc/host/au1xmmc.c __raw_writel(SD_ENABLE_CE, HOST_ENABLE(host)); host 729 drivers/mmc/host/au1xmmc.c __raw_writel(SD_ENABLE_R | SD_ENABLE_CE, HOST_ENABLE(host)); host 733 drivers/mmc/host/au1xmmc.c __raw_writel(~0, HOST_STATUS(host)); host 736 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_BLKSIZE(host)); host 737 drivers/mmc/host/au1xmmc.c __raw_writel(0x001fffff, HOST_TIMEOUT(host)); host 740 drivers/mmc/host/au1xmmc.c __raw_writel(SD_CONFIG2_EN, HOST_CONFIG2(host)); host 743 drivers/mmc/host/au1xmmc.c __raw_writel(SD_CONFIG2_EN | SD_CONFIG2_FF, HOST_CONFIG2(host)); host 747 drivers/mmc/host/au1xmmc.c __raw_writel(SD_CONFIG2_EN, HOST_CONFIG2(host)); host 751 drivers/mmc/host/au1xmmc.c __raw_writel(AU1XMMC_INTERRUPTS, HOST_CONFIG(host)); host 758 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = mmc_priv(mmc); host 762 drivers/mmc/host/au1xmmc.c au1xmmc_set_power(host, 0); host 764 drivers/mmc/host/au1xmmc.c au1xmmc_set_power(host, 1); host 767 drivers/mmc/host/au1xmmc.c if (ios->clock && ios->clock != host->clock) { host 768 drivers/mmc/host/au1xmmc.c au1xmmc_set_clock(host, ios->clock); host 769 drivers/mmc/host/au1xmmc.c host->clock = ios->clock; host 772 drivers/mmc/host/au1xmmc.c config2 = __raw_readl(HOST_CONFIG2(host)); host 785 drivers/mmc/host/au1xmmc.c __raw_writel(config2, HOST_CONFIG2(host)); host 795 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = dev_id; host 798 drivers/mmc/host/au1xmmc.c status = __raw_readl(HOST_STATUS(host)); host 804 drivers/mmc/host/au1xmmc.c mmc_signal_sdio_irq(host->mmc); host 806 drivers/mmc/host/au1xmmc.c if (host->mrq && (status & STATUS_TIMEOUT)) { host 808 drivers/mmc/host/au1xmmc.c host->mrq->cmd->error = -ETIMEDOUT; host 810 drivers/mmc/host/au1xmmc.c host->mrq->data->error = -ETIMEDOUT; host 813 drivers/mmc/host/au1xmmc.c IRQ_OFF(host, SD_CONFIG_NE | SD_CONFIG_TH); host 816 drivers/mmc/host/au1xmmc.c tasklet_schedule(&host->finish_task); host 821 drivers/mmc/host/au1xmmc.c if (!(host->flags & HOST_F_DMA) && (status & SD_STATUS_NE)) host 822 drivers/mmc/host/au1xmmc.c au1xmmc_receive_pio(host); host 824 drivers/mmc/host/au1xmmc.c au1xmmc_data_complete(host, status); host 830 drivers/mmc/host/au1xmmc.c if (host->status == HOST_S_CMD) host 831 drivers/mmc/host/au1xmmc.c au1xmmc_cmd_complete(host, status); host 833 drivers/mmc/host/au1xmmc.c } else if (!(host->flags & HOST_F_DMA)) { host 834 drivers/mmc/host/au1xmmc.c if ((host->flags & HOST_F_XMIT) && (status & STATUS_DATA_OUT)) host 835 drivers/mmc/host/au1xmmc.c au1xmmc_send_pio(host); host 836 drivers/mmc/host/au1xmmc.c else if ((host->flags & HOST_F_RECV) && (status & STATUS_DATA_IN)) host 837 drivers/mmc/host/au1xmmc.c au1xmmc_receive_pio(host); host 840 drivers/mmc/host/au1xmmc.c DBG("Unhandled status %8.8x\n", host->pdev->id, host 844 drivers/mmc/host/au1xmmc.c __raw_writel(status, HOST_STATUS(host)); host 864 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = (struct au1xmmc_host *)dev_id; host 867 drivers/mmc/host/au1xmmc.c if (!host->mrq) host 870 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_STOP) host 871 drivers/mmc/host/au1xmmc.c SEND_STOP(host); host 873 drivers/mmc/host/au1xmmc.c tasklet_schedule(&host->data_task); host 876 drivers/mmc/host/au1xmmc.c static int au1xmmc_dbdma_init(struct au1xmmc_host *host) host 881 drivers/mmc/host/au1xmmc.c res = platform_get_resource(host->pdev, IORESOURCE_DMA, 0); host 886 drivers/mmc/host/au1xmmc.c res = platform_get_resource(host->pdev, IORESOURCE_DMA, 1); host 894 drivers/mmc/host/au1xmmc.c host->tx_chan = au1xxx_dbdma_chan_alloc(memid, txid, host 895 drivers/mmc/host/au1xmmc.c au1xmmc_dbdma_callback, (void *)host); host 896 drivers/mmc/host/au1xmmc.c if (!host->tx_chan) { host 897 drivers/mmc/host/au1xmmc.c dev_err(&host->pdev->dev, "cannot allocate TX DMA\n"); host 901 drivers/mmc/host/au1xmmc.c host->rx_chan = au1xxx_dbdma_chan_alloc(rxid, memid, host 902 drivers/mmc/host/au1xmmc.c au1xmmc_dbdma_callback, (void *)host); host 903 drivers/mmc/host/au1xmmc.c if (!host->rx_chan) { host 904 drivers/mmc/host/au1xmmc.c dev_err(&host->pdev->dev, "cannot allocate RX DMA\n"); host 905 drivers/mmc/host/au1xmmc.c au1xxx_dbdma_chan_free(host->tx_chan); host 909 drivers/mmc/host/au1xmmc.c au1xxx_dbdma_set_devwidth(host->tx_chan, 8); host 910 drivers/mmc/host/au1xmmc.c au1xxx_dbdma_set_devwidth(host->rx_chan, 8); host 912 drivers/mmc/host/au1xmmc.c au1xxx_dbdma_ring_alloc(host->tx_chan, AU1XMMC_DESCRIPTOR_COUNT); host 913 drivers/mmc/host/au1xmmc.c au1xxx_dbdma_ring_alloc(host->rx_chan, AU1XMMC_DESCRIPTOR_COUNT); host 916 drivers/mmc/host/au1xmmc.c host->flags |= HOST_F_DMA | HOST_F_DBDMA; host 921 drivers/mmc/host/au1xmmc.c static void au1xmmc_dbdma_shutdown(struct au1xmmc_host *host) host 923 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_DMA) { host 924 drivers/mmc/host/au1xmmc.c host->flags &= ~HOST_F_DMA; host 925 drivers/mmc/host/au1xmmc.c au1xxx_dbdma_chan_free(host->tx_chan); host 926 drivers/mmc/host/au1xmmc.c au1xxx_dbdma_chan_free(host->rx_chan); host 932 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = mmc_priv(mmc); host 935 drivers/mmc/host/au1xmmc.c IRQ_ON(host, SD_CONFIG_SI); host 937 drivers/mmc/host/au1xmmc.c IRQ_OFF(host, SD_CONFIG_SI); host 951 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host; host 962 drivers/mmc/host/au1xmmc.c host = mmc_priv(mmc); host 963 drivers/mmc/host/au1xmmc.c host->mmc = mmc; host 964 drivers/mmc/host/au1xmmc.c host->platdata = pdev->dev.platform_data; host 965 drivers/mmc/host/au1xmmc.c host->pdev = pdev; host 974 drivers/mmc/host/au1xmmc.c host->ioarea = request_mem_region(r->start, resource_size(r), host 976 drivers/mmc/host/au1xmmc.c if (!host->ioarea) { host 981 drivers/mmc/host/au1xmmc.c host->iobase = ioremap(r->start, 0x3c); host 982 drivers/mmc/host/au1xmmc.c if (!host->iobase) { host 992 drivers/mmc/host/au1xmmc.c host->irq = r->start; host 1019 drivers/mmc/host/au1xmmc.c if (host->ioarea->start == AU1100_SD0_PHYS_ADDR) host 1024 drivers/mmc/host/au1xmmc.c ret = request_irq(host->irq, au1xmmc_irq, iflag, DRIVER_NAME, host); host 1030 drivers/mmc/host/au1xmmc.c host->clk = clk_get(&pdev->dev, ALCHEMY_PERIPH_CLK); host 1031 drivers/mmc/host/au1xmmc.c if (IS_ERR(host->clk)) { host 1033 drivers/mmc/host/au1xmmc.c ret = PTR_ERR(host->clk); host 1037 drivers/mmc/host/au1xmmc.c ret = clk_prepare_enable(host->clk); host 1043 drivers/mmc/host/au1xmmc.c host->status = HOST_S_IDLE; host 1046 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->cd_setup) { host 1047 drivers/mmc/host/au1xmmc.c ret = host->platdata->cd_setup(mmc, 1); host 1056 drivers/mmc/host/au1xmmc.c if (host->platdata) host 1057 drivers/mmc/host/au1xmmc.c mmc->caps &= ~(host->platdata->mask_host_caps); host 1059 drivers/mmc/host/au1xmmc.c tasklet_init(&host->data_task, au1xmmc_tasklet_data, host 1060 drivers/mmc/host/au1xmmc.c (unsigned long)host); host 1062 drivers/mmc/host/au1xmmc.c tasklet_init(&host->finish_task, au1xmmc_tasklet_finish, host 1063 drivers/mmc/host/au1xmmc.c (unsigned long)host); host 1066 drivers/mmc/host/au1xmmc.c ret = au1xmmc_dbdma_init(host); host 1072 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->led) { host 1073 drivers/mmc/host/au1xmmc.c struct led_classdev *led = host->platdata->led; host 1083 drivers/mmc/host/au1xmmc.c au1xmmc_reset_controller(host); host 1091 drivers/mmc/host/au1xmmc.c platform_set_drvdata(pdev, host); host 1094 drivers/mmc/host/au1xmmc.c " (mode=%s)\n", pdev->id, host->iobase, host 1095 drivers/mmc/host/au1xmmc.c host->flags & HOST_F_DMA ? "dma" : "pio"); host 1101 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->led) host 1102 drivers/mmc/host/au1xmmc.c led_classdev_unregister(host->platdata->led); host 1105 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_ENABLE(host)); host 1106 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_CONFIG(host)); host 1107 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_CONFIG2(host)); host 1110 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_DBDMA) host 1111 drivers/mmc/host/au1xmmc.c au1xmmc_dbdma_shutdown(host); host 1113 drivers/mmc/host/au1xmmc.c tasklet_kill(&host->data_task); host 1114 drivers/mmc/host/au1xmmc.c tasklet_kill(&host->finish_task); host 1116 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->cd_setup && host 1118 drivers/mmc/host/au1xmmc.c host->platdata->cd_setup(mmc, 0); host 1120 drivers/mmc/host/au1xmmc.c clk_disable_unprepare(host->clk); host 1121 drivers/mmc/host/au1xmmc.c clk_put(host->clk); host 1123 drivers/mmc/host/au1xmmc.c free_irq(host->irq, host); host 1125 drivers/mmc/host/au1xmmc.c iounmap((void *)host->iobase); host 1127 drivers/mmc/host/au1xmmc.c release_resource(host->ioarea); host 1128 drivers/mmc/host/au1xmmc.c kfree(host->ioarea); host 1137 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = platform_get_drvdata(pdev); host 1139 drivers/mmc/host/au1xmmc.c if (host) { host 1140 drivers/mmc/host/au1xmmc.c mmc_remove_host(host->mmc); host 1143 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->led) host 1144 drivers/mmc/host/au1xmmc.c led_classdev_unregister(host->platdata->led); host 1147 drivers/mmc/host/au1xmmc.c if (host->platdata && host->platdata->cd_setup && host 1148 drivers/mmc/host/au1xmmc.c !(host->mmc->caps & MMC_CAP_NEEDS_POLL)) host 1149 drivers/mmc/host/au1xmmc.c host->platdata->cd_setup(host->mmc, 0); host 1151 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_ENABLE(host)); host 1152 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_CONFIG(host)); host 1153 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_CONFIG2(host)); host 1156 drivers/mmc/host/au1xmmc.c tasklet_kill(&host->data_task); host 1157 drivers/mmc/host/au1xmmc.c tasklet_kill(&host->finish_task); host 1159 drivers/mmc/host/au1xmmc.c if (host->flags & HOST_F_DBDMA) host 1160 drivers/mmc/host/au1xmmc.c au1xmmc_dbdma_shutdown(host); host 1162 drivers/mmc/host/au1xmmc.c au1xmmc_set_power(host, 0); host 1164 drivers/mmc/host/au1xmmc.c clk_disable_unprepare(host->clk); host 1165 drivers/mmc/host/au1xmmc.c clk_put(host->clk); host 1167 drivers/mmc/host/au1xmmc.c free_irq(host->irq, host); host 1168 drivers/mmc/host/au1xmmc.c iounmap((void *)host->iobase); host 1169 drivers/mmc/host/au1xmmc.c release_resource(host->ioarea); host 1170 drivers/mmc/host/au1xmmc.c kfree(host->ioarea); host 1172 drivers/mmc/host/au1xmmc.c mmc_free_host(host->mmc); host 1180 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = platform_get_drvdata(pdev); host 1182 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_CONFIG2(host)); host 1183 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_CONFIG(host)); host 1184 drivers/mmc/host/au1xmmc.c __raw_writel(0xffffffff, HOST_STATUS(host)); host 1185 drivers/mmc/host/au1xmmc.c __raw_writel(0, HOST_ENABLE(host)); host 1193 drivers/mmc/host/au1xmmc.c struct au1xmmc_host *host = platform_get_drvdata(pdev); host 1195 drivers/mmc/host/au1xmmc.c au1xmmc_reset_controller(host); host 192 drivers/mmc/host/bcm2835.c static void bcm2835_dumpcmd(struct bcm2835_host *host, struct mmc_command *cmd, host 195 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 201 drivers/mmc/host/bcm2835.c (cmd == host->cmd) ? '>' : ' ', host 207 drivers/mmc/host/bcm2835.c static void bcm2835_dumpregs(struct bcm2835_host *host) host 209 drivers/mmc/host/bcm2835.c struct mmc_request *mrq = host->mrq; host 210 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 213 drivers/mmc/host/bcm2835.c bcm2835_dumpcmd(host, mrq->sbc, "sbc"); host 214 drivers/mmc/host/bcm2835.c bcm2835_dumpcmd(host, mrq->cmd, "cmd"); host 221 drivers/mmc/host/bcm2835.c bcm2835_dumpcmd(host, mrq->stop, "stop"); host 225 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDCMD 0x%08x\n", readl(host->ioaddr + SDCMD)); host 226 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDARG 0x%08x\n", readl(host->ioaddr + SDARG)); host 227 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDTOUT 0x%08x\n", readl(host->ioaddr + SDTOUT)); host 228 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDCDIV 0x%08x\n", readl(host->ioaddr + SDCDIV)); host 229 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDRSP0 0x%08x\n", readl(host->ioaddr + SDRSP0)); host 230 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDRSP1 0x%08x\n", readl(host->ioaddr + SDRSP1)); host 231 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDRSP2 0x%08x\n", readl(host->ioaddr + SDRSP2)); host 232 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDRSP3 0x%08x\n", readl(host->ioaddr + SDRSP3)); host 233 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDHSTS 0x%08x\n", readl(host->ioaddr + SDHSTS)); host 234 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDVDD 0x%08x\n", readl(host->ioaddr + SDVDD)); host 235 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDEDM 0x%08x\n", readl(host->ioaddr + SDEDM)); host 236 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDHCFG 0x%08x\n", readl(host->ioaddr + SDHCFG)); host 237 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDHBCT 0x%08x\n", readl(host->ioaddr + SDHBCT)); host 238 drivers/mmc/host/bcm2835.c dev_dbg(dev, "SDHBLC 0x%08x\n", readl(host->ioaddr + SDHBLC)); host 242 drivers/mmc/host/bcm2835.c static void bcm2835_reset_internal(struct bcm2835_host *host) host 246 drivers/mmc/host/bcm2835.c writel(SDVDD_POWER_OFF, host->ioaddr + SDVDD); host 247 drivers/mmc/host/bcm2835.c writel(0, host->ioaddr + SDCMD); host 248 drivers/mmc/host/bcm2835.c writel(0, host->ioaddr + SDARG); host 249 drivers/mmc/host/bcm2835.c writel(0xf00000, host->ioaddr + SDTOUT); host 250 drivers/mmc/host/bcm2835.c writel(0, host->ioaddr + SDCDIV); host 251 drivers/mmc/host/bcm2835.c writel(0x7f8, host->ioaddr + SDHSTS); /* Write 1s to clear */ host 252 drivers/mmc/host/bcm2835.c writel(0, host->ioaddr + SDHCFG); host 253 drivers/mmc/host/bcm2835.c writel(0, host->ioaddr + SDHBCT); host 254 drivers/mmc/host/bcm2835.c writel(0, host->ioaddr + SDHBLC); host 257 drivers/mmc/host/bcm2835.c temp = readl(host->ioaddr + SDEDM); host 262 drivers/mmc/host/bcm2835.c writel(temp, host->ioaddr + SDEDM); host 264 drivers/mmc/host/bcm2835.c writel(SDVDD_POWER_ON, host->ioaddr + SDVDD); host 266 drivers/mmc/host/bcm2835.c host->clock = 0; host 267 drivers/mmc/host/bcm2835.c writel(host->hcfg, host->ioaddr + SDHCFG); host 268 drivers/mmc/host/bcm2835.c writel(host->cdiv, host->ioaddr + SDCDIV); host 273 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = mmc_priv(mmc); host 275 drivers/mmc/host/bcm2835.c if (host->dma_chan) host 276 drivers/mmc/host/bcm2835.c dmaengine_terminate_sync(host->dma_chan); host 277 drivers/mmc/host/bcm2835.c host->dma_chan = NULL; host 278 drivers/mmc/host/bcm2835.c bcm2835_reset_internal(host); host 281 drivers/mmc/host/bcm2835.c static void bcm2835_finish_command(struct bcm2835_host *host); host 283 drivers/mmc/host/bcm2835.c static void bcm2835_wait_transfer_complete(struct bcm2835_host *host) host 288 drivers/mmc/host/bcm2835.c alternate_idle = (host->mrq->data->flags & MMC_DATA_READ) ? host 296 drivers/mmc/host/bcm2835.c edm = readl(host->ioaddr + SDEDM); host 304 drivers/mmc/host/bcm2835.c host->ioaddr + SDEDM); host 310 drivers/mmc/host/bcm2835.c dev_err(&host->pdev->dev, host 313 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 314 drivers/mmc/host/bcm2835.c host->mrq->data->error = -ETIMEDOUT; host 323 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = param; host 325 drivers/mmc/host/bcm2835.c schedule_work(&host->dma_work); host 328 drivers/mmc/host/bcm2835.c static void bcm2835_transfer_block_pio(struct bcm2835_host *host, bool is_read) host 334 drivers/mmc/host/bcm2835.c blksize = host->data->blksz; host 346 drivers/mmc/host/bcm2835.c if (!sg_miter_next(&host->sg_miter)) { host 347 drivers/mmc/host/bcm2835.c host->data->error = -EINVAL; host 351 drivers/mmc/host/bcm2835.c len = min(host->sg_miter.length, blksize); host 353 drivers/mmc/host/bcm2835.c host->data->error = -EINVAL; host 358 drivers/mmc/host/bcm2835.c host->sg_miter.consumed = len; host 360 drivers/mmc/host/bcm2835.c buf = (u32 *)host->sg_miter.addr; host 369 drivers/mmc/host/bcm2835.c edm = readl(host->ioaddr + SDEDM); host 377 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 387 drivers/mmc/host/bcm2835.c hsts = readl(host->ioaddr + SDHSTS); host 402 drivers/mmc/host/bcm2835.c host->ns_per_fifo_word); host 412 drivers/mmc/host/bcm2835.c *(buf++) = readl(host->ioaddr + SDDATA); host 414 drivers/mmc/host/bcm2835.c writel(*(buf++), host->ioaddr + SDDATA); host 423 drivers/mmc/host/bcm2835.c sg_miter_stop(&host->sg_miter); host 428 drivers/mmc/host/bcm2835.c static void bcm2835_transfer_pio(struct bcm2835_host *host) host 430 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 434 drivers/mmc/host/bcm2835.c is_read = (host->data->flags & MMC_DATA_READ) != 0; host 435 drivers/mmc/host/bcm2835.c bcm2835_transfer_block_pio(host, is_read); host 437 drivers/mmc/host/bcm2835.c sdhsts = readl(host->ioaddr + SDHSTS); host 443 drivers/mmc/host/bcm2835.c host->data->error = -EILSEQ; host 448 drivers/mmc/host/bcm2835.c host->data->error = -ETIMEDOUT; host 453 drivers/mmc/host/bcm2835.c void bcm2835_prepare_dma(struct bcm2835_host *host, struct mmc_data *data) host 459 drivers/mmc/host/bcm2835.c dma_chan = host->dma_chan_rxtx; host 475 drivers/mmc/host/bcm2835.c host->drain_words = 0; host 488 drivers/mmc/host/bcm2835.c host->drain_page = sg_page(sg); host 489 drivers/mmc/host/bcm2835.c host->drain_offset = sg->offset + sg->length; host 492 drivers/mmc/host/bcm2835.c host->drain_words = len / 4; host 498 drivers/mmc/host/bcm2835.c &host->dma_cfg_rx : host 499 drivers/mmc/host/bcm2835.c &host->dma_cfg_tx); host 515 drivers/mmc/host/bcm2835.c desc->callback_param = host; host 516 drivers/mmc/host/bcm2835.c host->dma_desc = desc; host 517 drivers/mmc/host/bcm2835.c host->dma_chan = dma_chan; host 518 drivers/mmc/host/bcm2835.c host->dma_dir = dir_data; host 521 drivers/mmc/host/bcm2835.c static void bcm2835_start_dma(struct bcm2835_host *host) host 523 drivers/mmc/host/bcm2835.c dmaengine_submit(host->dma_desc); host 524 drivers/mmc/host/bcm2835.c dma_async_issue_pending(host->dma_chan); host 527 drivers/mmc/host/bcm2835.c static void bcm2835_set_transfer_irqs(struct bcm2835_host *host) host 532 drivers/mmc/host/bcm2835.c if (host->dma_desc) { host 533 drivers/mmc/host/bcm2835.c host->hcfg = (host->hcfg & ~all_irqs) | host 536 drivers/mmc/host/bcm2835.c host->hcfg = (host->hcfg & ~all_irqs) | host 541 drivers/mmc/host/bcm2835.c writel(host->hcfg, host->ioaddr + SDHCFG); host 545 drivers/mmc/host/bcm2835.c void bcm2835_prepare_data(struct bcm2835_host *host, struct mmc_command *cmd) host 549 drivers/mmc/host/bcm2835.c WARN_ON(host->data); host 551 drivers/mmc/host/bcm2835.c host->data = data; host 555 drivers/mmc/host/bcm2835.c host->data_complete = false; host 556 drivers/mmc/host/bcm2835.c host->data->bytes_xfered = 0; host 558 drivers/mmc/host/bcm2835.c if (!host->dma_desc) { host 566 drivers/mmc/host/bcm2835.c sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags); host 567 drivers/mmc/host/bcm2835.c host->blocks = data->blocks; host 570 drivers/mmc/host/bcm2835.c bcm2835_set_transfer_irqs(host); host 572 drivers/mmc/host/bcm2835.c writel(data->blksz, host->ioaddr + SDHBCT); host 573 drivers/mmc/host/bcm2835.c writel(data->blocks, host->ioaddr + SDHBLC); host 576 drivers/mmc/host/bcm2835.c static u32 bcm2835_read_wait_sdcmd(struct bcm2835_host *host, u32 max_ms) host 578 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 582 drivers/mmc/host/bcm2835.c ret = readl_poll_timeout(host->ioaddr + SDCMD, value, host 586 drivers/mmc/host/bcm2835.c ret = readl_poll_timeout(host->ioaddr + SDCMD, value, host 595 drivers/mmc/host/bcm2835.c static void bcm2835_finish_request(struct bcm2835_host *host) host 600 drivers/mmc/host/bcm2835.c cancel_delayed_work(&host->timeout_work); host 602 drivers/mmc/host/bcm2835.c mrq = host->mrq; host 604 drivers/mmc/host/bcm2835.c host->mrq = NULL; host 605 drivers/mmc/host/bcm2835.c host->cmd = NULL; host 606 drivers/mmc/host/bcm2835.c host->data = NULL; host 608 drivers/mmc/host/bcm2835.c host->dma_desc = NULL; host 609 drivers/mmc/host/bcm2835.c terminate_chan = host->dma_chan; host 610 drivers/mmc/host/bcm2835.c host->dma_chan = NULL; host 616 drivers/mmc/host/bcm2835.c dev_err(&host->pdev->dev, host 620 drivers/mmc/host/bcm2835.c mmc_request_done(mmc_from_priv(host), mrq); host 624 drivers/mmc/host/bcm2835.c bool bcm2835_send_command(struct bcm2835_host *host, struct mmc_command *cmd) host 626 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 630 drivers/mmc/host/bcm2835.c WARN_ON(host->cmd); host 632 drivers/mmc/host/bcm2835.c sdcmd = bcm2835_read_wait_sdcmd(host, 100); host 635 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 637 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 645 drivers/mmc/host/bcm2835.c schedule_delayed_work(&host->timeout_work, timeout); host 647 drivers/mmc/host/bcm2835.c host->cmd = cmd; host 650 drivers/mmc/host/bcm2835.c sdhsts = readl(host->ioaddr + SDHSTS); host 652 drivers/mmc/host/bcm2835.c writel(sdhsts, host->ioaddr + SDHSTS); host 657 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 661 drivers/mmc/host/bcm2835.c bcm2835_prepare_data(host, cmd); host 663 drivers/mmc/host/bcm2835.c writel(cmd->arg, host->ioaddr + SDARG); host 667 drivers/mmc/host/bcm2835.c host->use_busy = false; host 675 drivers/mmc/host/bcm2835.c host->use_busy = true; host 686 drivers/mmc/host/bcm2835.c writel(sdcmd | SDCMD_NEW_FLAG, host->ioaddr + SDCMD); host 691 drivers/mmc/host/bcm2835.c static void bcm2835_transfer_complete(struct bcm2835_host *host) host 695 drivers/mmc/host/bcm2835.c WARN_ON(!host->data_complete); host 697 drivers/mmc/host/bcm2835.c data = host->data; host 698 drivers/mmc/host/bcm2835.c host->data = NULL; host 704 drivers/mmc/host/bcm2835.c if (host->mrq->stop && (data->error || !host->use_sbc)) { host 705 drivers/mmc/host/bcm2835.c if (bcm2835_send_command(host, host->mrq->stop)) { host 707 drivers/mmc/host/bcm2835.c if (!host->use_busy) host 708 drivers/mmc/host/bcm2835.c bcm2835_finish_command(host); host 711 drivers/mmc/host/bcm2835.c bcm2835_wait_transfer_complete(host); host 712 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 716 drivers/mmc/host/bcm2835.c static void bcm2835_finish_data(struct bcm2835_host *host) host 718 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 721 drivers/mmc/host/bcm2835.c data = host->data; host 723 drivers/mmc/host/bcm2835.c host->hcfg &= ~(SDHCFG_DATA_IRPT_EN | SDHCFG_BLOCK_IRPT_EN); host 724 drivers/mmc/host/bcm2835.c writel(host->hcfg, host->ioaddr + SDHCFG); host 728 drivers/mmc/host/bcm2835.c host->data_complete = true; host 730 drivers/mmc/host/bcm2835.c if (host->cmd) { host 736 drivers/mmc/host/bcm2835.c readl(host->ioaddr + SDHSTS)); host 738 drivers/mmc/host/bcm2835.c bcm2835_transfer_complete(host); host 742 drivers/mmc/host/bcm2835.c static void bcm2835_finish_command(struct bcm2835_host *host) host 744 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 745 drivers/mmc/host/bcm2835.c struct mmc_command *cmd = host->cmd; host 748 drivers/mmc/host/bcm2835.c sdcmd = bcm2835_read_wait_sdcmd(host, 100); host 753 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 754 drivers/mmc/host/bcm2835.c host->cmd->error = -EIO; host 755 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 758 drivers/mmc/host/bcm2835.c u32 sdhsts = readl(host->ioaddr + SDHSTS); host 761 drivers/mmc/host/bcm2835.c writel(SDHSTS_ERROR_MASK, host->ioaddr + SDHSTS); host 764 drivers/mmc/host/bcm2835.c (host->cmd->opcode != MMC_SEND_OP_COND)) { host 768 drivers/mmc/host/bcm2835.c host->cmd->error = -ETIMEDOUT; host 771 drivers/mmc/host/bcm2835.c host->cmd->opcode); host 772 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 773 drivers/mmc/host/bcm2835.c host->cmd->error = -EILSEQ; host 775 drivers/mmc/host/bcm2835.c edm = readl(host->ioaddr + SDEDM); host 781 drivers/mmc/host/bcm2835.c host->ioaddr + SDEDM); host 782 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 793 drivers/mmc/host/bcm2835.c readl(host->ioaddr + SDRSP0 + i * 4); host 796 drivers/mmc/host/bcm2835.c cmd->resp[0] = readl(host->ioaddr + SDRSP0); host 800 drivers/mmc/host/bcm2835.c if (cmd == host->mrq->sbc) { host 802 drivers/mmc/host/bcm2835.c host->cmd = NULL; host 803 drivers/mmc/host/bcm2835.c if (bcm2835_send_command(host, host->mrq->cmd)) { host 804 drivers/mmc/host/bcm2835.c if (host->data && host->dma_desc) host 808 drivers/mmc/host/bcm2835.c bcm2835_start_dma(host); host 810 drivers/mmc/host/bcm2835.c if (!host->use_busy) host 811 drivers/mmc/host/bcm2835.c bcm2835_finish_command(host); host 813 drivers/mmc/host/bcm2835.c } else if (cmd == host->mrq->stop) { host 815 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 818 drivers/mmc/host/bcm2835.c host->cmd = NULL; host 819 drivers/mmc/host/bcm2835.c if (!host->data) host 820 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 821 drivers/mmc/host/bcm2835.c else if (host->data_complete) host 822 drivers/mmc/host/bcm2835.c bcm2835_transfer_complete(host); host 829 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = host 831 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 833 drivers/mmc/host/bcm2835.c mutex_lock(&host->mutex); host 835 drivers/mmc/host/bcm2835.c if (host->mrq) { host 837 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 839 drivers/mmc/host/bcm2835.c bcm2835_reset(mmc_from_priv(host)); host 841 drivers/mmc/host/bcm2835.c if (host->data) { host 842 drivers/mmc/host/bcm2835.c host->data->error = -ETIMEDOUT; host 843 drivers/mmc/host/bcm2835.c bcm2835_finish_data(host); host 845 drivers/mmc/host/bcm2835.c if (host->cmd) host 846 drivers/mmc/host/bcm2835.c host->cmd->error = -ETIMEDOUT; host 848 drivers/mmc/host/bcm2835.c host->mrq->cmd->error = -ETIMEDOUT; host 850 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 854 drivers/mmc/host/bcm2835.c mutex_unlock(&host->mutex); host 857 drivers/mmc/host/bcm2835.c static bool bcm2835_check_cmd_error(struct bcm2835_host *host, u32 intmask) host 859 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 864 drivers/mmc/host/bcm2835.c if (!host->cmd) host 869 drivers/mmc/host/bcm2835.c host->cmd->error = -EILSEQ; host 872 drivers/mmc/host/bcm2835.c if (host->mrq->data) host 873 drivers/mmc/host/bcm2835.c host->mrq->data->error = -EILSEQ; host 875 drivers/mmc/host/bcm2835.c host->cmd->error = -EILSEQ; host 877 drivers/mmc/host/bcm2835.c if (host->mrq->data) host 878 drivers/mmc/host/bcm2835.c host->mrq->data->error = -ETIMEDOUT; host 880 drivers/mmc/host/bcm2835.c host->cmd->error = -ETIMEDOUT; host 882 drivers/mmc/host/bcm2835.c host->cmd->error = -ETIMEDOUT; host 884 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 888 drivers/mmc/host/bcm2835.c static void bcm2835_check_data_error(struct bcm2835_host *host, u32 intmask) host 890 drivers/mmc/host/bcm2835.c if (!host->data) host 893 drivers/mmc/host/bcm2835.c host->data->error = -EILSEQ; host 895 drivers/mmc/host/bcm2835.c host->data->error = -ETIMEDOUT; host 898 drivers/mmc/host/bcm2835.c static void bcm2835_busy_irq(struct bcm2835_host *host) host 900 drivers/mmc/host/bcm2835.c if (WARN_ON(!host->cmd)) { host 901 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 905 drivers/mmc/host/bcm2835.c if (WARN_ON(!host->use_busy)) { host 906 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 909 drivers/mmc/host/bcm2835.c host->use_busy = false; host 911 drivers/mmc/host/bcm2835.c bcm2835_finish_command(host); host 914 drivers/mmc/host/bcm2835.c static void bcm2835_data_irq(struct bcm2835_host *host, u32 intmask) host 922 drivers/mmc/host/bcm2835.c if (!host->data) host 925 drivers/mmc/host/bcm2835.c bcm2835_check_data_error(host, intmask); host 926 drivers/mmc/host/bcm2835.c if (host->data->error) host 929 drivers/mmc/host/bcm2835.c if (host->data->flags & MMC_DATA_WRITE) { host 931 drivers/mmc/host/bcm2835.c host->hcfg &= ~(SDHCFG_DATA_IRPT_EN); host 932 drivers/mmc/host/bcm2835.c host->hcfg |= SDHCFG_BLOCK_IRPT_EN; host 933 drivers/mmc/host/bcm2835.c writel(host->hcfg, host->ioaddr + SDHCFG); host 934 drivers/mmc/host/bcm2835.c bcm2835_transfer_pio(host); host 936 drivers/mmc/host/bcm2835.c bcm2835_transfer_pio(host); host 937 drivers/mmc/host/bcm2835.c host->blocks--; host 938 drivers/mmc/host/bcm2835.c if ((host->blocks == 0) || host->data->error) host 944 drivers/mmc/host/bcm2835.c host->hcfg &= ~(SDHCFG_DATA_IRPT_EN | SDHCFG_BLOCK_IRPT_EN); host 945 drivers/mmc/host/bcm2835.c writel(host->hcfg, host->ioaddr + SDHCFG); host 948 drivers/mmc/host/bcm2835.c static void bcm2835_data_threaded_irq(struct bcm2835_host *host) host 950 drivers/mmc/host/bcm2835.c if (!host->data) host 952 drivers/mmc/host/bcm2835.c if ((host->blocks == 0) || host->data->error) host 953 drivers/mmc/host/bcm2835.c bcm2835_finish_data(host); host 956 drivers/mmc/host/bcm2835.c static void bcm2835_block_irq(struct bcm2835_host *host) host 958 drivers/mmc/host/bcm2835.c if (WARN_ON(!host->data)) { host 959 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 963 drivers/mmc/host/bcm2835.c if (!host->dma_desc) { host 964 drivers/mmc/host/bcm2835.c WARN_ON(!host->blocks); host 965 drivers/mmc/host/bcm2835.c if (host->data->error || (--host->blocks == 0)) host 966 drivers/mmc/host/bcm2835.c bcm2835_finish_data(host); host 968 drivers/mmc/host/bcm2835.c bcm2835_transfer_pio(host); host 969 drivers/mmc/host/bcm2835.c } else if (host->data->flags & MMC_DATA_WRITE) { host 970 drivers/mmc/host/bcm2835.c bcm2835_finish_data(host); host 977 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = dev_id; host 980 drivers/mmc/host/bcm2835.c spin_lock(&host->lock); host 982 drivers/mmc/host/bcm2835.c intmask = readl(host->ioaddr + SDHSTS); host 988 drivers/mmc/host/bcm2835.c host->ioaddr + SDHSTS); host 991 drivers/mmc/host/bcm2835.c bcm2835_check_data_error(host, intmask); host 992 drivers/mmc/host/bcm2835.c host->irq_block = true; host 997 drivers/mmc/host/bcm2835.c if (!bcm2835_check_cmd_error(host, intmask)) { host 998 drivers/mmc/host/bcm2835.c host->irq_busy = true; host 1010 drivers/mmc/host/bcm2835.c (host->hcfg & SDHCFG_DATA_IRPT_EN)) { host 1011 drivers/mmc/host/bcm2835.c bcm2835_data_irq(host, intmask); host 1012 drivers/mmc/host/bcm2835.c host->irq_data = true; host 1016 drivers/mmc/host/bcm2835.c spin_unlock(&host->lock); host 1023 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = dev_id; host 1027 drivers/mmc/host/bcm2835.c spin_lock_irqsave(&host->lock, flags); host 1029 drivers/mmc/host/bcm2835.c block = host->irq_block; host 1030 drivers/mmc/host/bcm2835.c busy = host->irq_busy; host 1031 drivers/mmc/host/bcm2835.c data = host->irq_data; host 1032 drivers/mmc/host/bcm2835.c host->irq_block = false; host 1033 drivers/mmc/host/bcm2835.c host->irq_busy = false; host 1034 drivers/mmc/host/bcm2835.c host->irq_data = false; host 1036 drivers/mmc/host/bcm2835.c spin_unlock_irqrestore(&host->lock, flags); host 1038 drivers/mmc/host/bcm2835.c mutex_lock(&host->mutex); host 1041 drivers/mmc/host/bcm2835.c bcm2835_block_irq(host); host 1043 drivers/mmc/host/bcm2835.c bcm2835_busy_irq(host); host 1045 drivers/mmc/host/bcm2835.c bcm2835_data_threaded_irq(host); host 1047 drivers/mmc/host/bcm2835.c mutex_unlock(&host->mutex); host 1054 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = host 1058 drivers/mmc/host/bcm2835.c mutex_lock(&host->mutex); host 1060 drivers/mmc/host/bcm2835.c data = host->data; host 1062 drivers/mmc/host/bcm2835.c if (host->dma_chan) { host 1063 drivers/mmc/host/bcm2835.c dma_unmap_sg(host->dma_chan->device->dev, host 1065 drivers/mmc/host/bcm2835.c host->dma_dir); host 1067 drivers/mmc/host/bcm2835.c host->dma_chan = NULL; host 1070 drivers/mmc/host/bcm2835.c if (host->drain_words) { host 1075 drivers/mmc/host/bcm2835.c if (host->drain_offset & PAGE_MASK) { host 1076 drivers/mmc/host/bcm2835.c host->drain_page += host->drain_offset >> PAGE_SHIFT; host 1077 drivers/mmc/host/bcm2835.c host->drain_offset &= ~PAGE_MASK; host 1080 drivers/mmc/host/bcm2835.c page = kmap_atomic(host->drain_page); host 1081 drivers/mmc/host/bcm2835.c buf = page + host->drain_offset; host 1083 drivers/mmc/host/bcm2835.c while (host->drain_words) { host 1084 drivers/mmc/host/bcm2835.c u32 edm = readl(host->ioaddr + SDEDM); host 1087 drivers/mmc/host/bcm2835.c *(buf++) = readl(host->ioaddr + SDDATA); host 1088 drivers/mmc/host/bcm2835.c host->drain_words--; host 1095 drivers/mmc/host/bcm2835.c bcm2835_finish_data(host); host 1097 drivers/mmc/host/bcm2835.c mutex_unlock(&host->mutex); host 1100 drivers/mmc/host/bcm2835.c static void bcm2835_set_clock(struct bcm2835_host *host, unsigned int clock) host 1102 drivers/mmc/host/bcm2835.c struct mmc_host *mmc = mmc_from_priv(host); host 1130 drivers/mmc/host/bcm2835.c host->cdiv = SDCDIV_MAX_CDIV; host 1131 drivers/mmc/host/bcm2835.c writel(host->cdiv, host->ioaddr + SDCDIV); host 1135 drivers/mmc/host/bcm2835.c div = host->max_clk / clock; host 1138 drivers/mmc/host/bcm2835.c if ((host->max_clk / div) > clock) host 1145 drivers/mmc/host/bcm2835.c clock = host->max_clk / (div + 2); host 1150 drivers/mmc/host/bcm2835.c host->ns_per_fifo_word = (1000000000 / clock) * host 1153 drivers/mmc/host/bcm2835.c host->cdiv = div; host 1154 drivers/mmc/host/bcm2835.c writel(host->cdiv, host->ioaddr + SDCDIV); host 1157 drivers/mmc/host/bcm2835.c writel(mmc->actual_clock / 2, host->ioaddr + SDTOUT); host 1162 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = mmc_priv(mmc); host 1163 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 1187 drivers/mmc/host/bcm2835.c mutex_lock(&host->mutex); host 1189 drivers/mmc/host/bcm2835.c WARN_ON(host->mrq); host 1190 drivers/mmc/host/bcm2835.c host->mrq = mrq; host 1192 drivers/mmc/host/bcm2835.c edm = readl(host->ioaddr + SDEDM); host 1198 drivers/mmc/host/bcm2835.c readl(host->ioaddr + SDCMD) & SDCMD_CMD_MASK, host 1200 drivers/mmc/host/bcm2835.c bcm2835_dumpregs(host); host 1205 drivers/mmc/host/bcm2835.c bcm2835_finish_request(host); host 1206 drivers/mmc/host/bcm2835.c mutex_unlock(&host->mutex); host 1210 drivers/mmc/host/bcm2835.c if (host->use_dma && mrq->data && (mrq->data->blocks > PIO_THRESHOLD)) host 1211 drivers/mmc/host/bcm2835.c bcm2835_prepare_dma(host, mrq->data); host 1213 drivers/mmc/host/bcm2835.c host->use_sbc = !!mrq->sbc && host->mrq->data && host 1214 drivers/mmc/host/bcm2835.c (host->mrq->data->flags & MMC_DATA_READ); host 1215 drivers/mmc/host/bcm2835.c if (host->use_sbc) { host 1216 drivers/mmc/host/bcm2835.c if (bcm2835_send_command(host, mrq->sbc)) { host 1217 drivers/mmc/host/bcm2835.c if (!host->use_busy) host 1218 drivers/mmc/host/bcm2835.c bcm2835_finish_command(host); host 1220 drivers/mmc/host/bcm2835.c } else if (mrq->cmd && bcm2835_send_command(host, mrq->cmd)) { host 1221 drivers/mmc/host/bcm2835.c if (host->data && host->dma_desc) { host 1223 drivers/mmc/host/bcm2835.c bcm2835_start_dma(host); host 1226 drivers/mmc/host/bcm2835.c if (!host->use_busy) host 1227 drivers/mmc/host/bcm2835.c bcm2835_finish_command(host); host 1230 drivers/mmc/host/bcm2835.c mutex_unlock(&host->mutex); host 1235 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = mmc_priv(mmc); host 1237 drivers/mmc/host/bcm2835.c mutex_lock(&host->mutex); host 1239 drivers/mmc/host/bcm2835.c if (!ios->clock || ios->clock != host->clock) { host 1240 drivers/mmc/host/bcm2835.c bcm2835_set_clock(host, ios->clock); host 1241 drivers/mmc/host/bcm2835.c host->clock = ios->clock; host 1245 drivers/mmc/host/bcm2835.c host->hcfg &= ~SDHCFG_WIDE_EXT_BUS; host 1247 drivers/mmc/host/bcm2835.c host->hcfg |= SDHCFG_WIDE_EXT_BUS; host 1249 drivers/mmc/host/bcm2835.c host->hcfg |= SDHCFG_WIDE_INT_BUS; host 1252 drivers/mmc/host/bcm2835.c host->hcfg |= SDHCFG_SLOW_CARD; host 1254 drivers/mmc/host/bcm2835.c writel(host->hcfg, host->ioaddr + SDHCFG); host 1256 drivers/mmc/host/bcm2835.c mutex_unlock(&host->mutex); host 1265 drivers/mmc/host/bcm2835.c static int bcm2835_add_host(struct bcm2835_host *host) host 1267 drivers/mmc/host/bcm2835.c struct mmc_host *mmc = mmc_from_priv(host); host 1268 drivers/mmc/host/bcm2835.c struct device *dev = &host->pdev->dev; host 1272 drivers/mmc/host/bcm2835.c if (!mmc->f_max || mmc->f_max > host->max_clk) host 1273 drivers/mmc/host/bcm2835.c mmc->f_max = host->max_clk; host 1274 drivers/mmc/host/bcm2835.c mmc->f_min = host->max_clk / SDCDIV_MAX_CDIV; host 1286 drivers/mmc/host/bcm2835.c spin_lock_init(&host->lock); host 1287 drivers/mmc/host/bcm2835.c mutex_init(&host->mutex); host 1289 drivers/mmc/host/bcm2835.c if (!host->dma_chan_rxtx) { host 1291 drivers/mmc/host/bcm2835.c host->use_dma = false; host 1293 drivers/mmc/host/bcm2835.c host->use_dma = true; host 1295 drivers/mmc/host/bcm2835.c host->dma_cfg_tx.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 1296 drivers/mmc/host/bcm2835.c host->dma_cfg_tx.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 1297 drivers/mmc/host/bcm2835.c host->dma_cfg_tx.slave_id = 13; /* DREQ channel */ host 1298 drivers/mmc/host/bcm2835.c host->dma_cfg_tx.direction = DMA_MEM_TO_DEV; host 1299 drivers/mmc/host/bcm2835.c host->dma_cfg_tx.src_addr = 0; host 1300 drivers/mmc/host/bcm2835.c host->dma_cfg_tx.dst_addr = host->phys_addr + SDDATA; host 1302 drivers/mmc/host/bcm2835.c host->dma_cfg_rx.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 1303 drivers/mmc/host/bcm2835.c host->dma_cfg_rx.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 1304 drivers/mmc/host/bcm2835.c host->dma_cfg_rx.slave_id = 13; /* DREQ channel */ host 1305 drivers/mmc/host/bcm2835.c host->dma_cfg_rx.direction = DMA_DEV_TO_MEM; host 1306 drivers/mmc/host/bcm2835.c host->dma_cfg_rx.src_addr = host->phys_addr + SDDATA; host 1307 drivers/mmc/host/bcm2835.c host->dma_cfg_rx.dst_addr = 0; host 1309 drivers/mmc/host/bcm2835.c if (dmaengine_slave_config(host->dma_chan_rxtx, host 1310 drivers/mmc/host/bcm2835.c &host->dma_cfg_tx) != 0 || host 1311 drivers/mmc/host/bcm2835.c dmaengine_slave_config(host->dma_chan_rxtx, host 1312 drivers/mmc/host/bcm2835.c &host->dma_cfg_rx) != 0) host 1313 drivers/mmc/host/bcm2835.c host->use_dma = false; host 1325 drivers/mmc/host/bcm2835.c INIT_WORK(&host->dma_work, bcm2835_dma_complete_work); host 1326 drivers/mmc/host/bcm2835.c INIT_DELAYED_WORK(&host->timeout_work, bcm2835_timeout); host 1329 drivers/mmc/host/bcm2835.c host->hcfg = SDHCFG_BUSY_IRPT_EN; host 1331 drivers/mmc/host/bcm2835.c bcm2835_reset_internal(host); host 1333 drivers/mmc/host/bcm2835.c ret = request_threaded_irq(host->irq, bcm2835_irq, host 1335 drivers/mmc/host/bcm2835.c 0, mmc_hostname(mmc), host); host 1337 drivers/mmc/host/bcm2835.c dev_err(dev, "failed to request IRQ %d: %d\n", host->irq, ret); host 1343 drivers/mmc/host/bcm2835.c free_irq(host->irq, host); host 1348 drivers/mmc/host/bcm2835.c if (host->use_dma && (PIO_THRESHOLD > 0)) host 1351 drivers/mmc/host/bcm2835.c host->use_dma ? "enabled" : "disabled", pio_limit_string); host 1361 drivers/mmc/host/bcm2835.c struct bcm2835_host *host; host 1367 drivers/mmc/host/bcm2835.c mmc = mmc_alloc_host(sizeof(*host), dev); host 1372 drivers/mmc/host/bcm2835.c host = mmc_priv(mmc); host 1373 drivers/mmc/host/bcm2835.c host->pdev = pdev; host 1374 drivers/mmc/host/bcm2835.c spin_lock_init(&host->lock); host 1377 drivers/mmc/host/bcm2835.c host->ioaddr = devm_ioremap_resource(dev, iomem); host 1378 drivers/mmc/host/bcm2835.c if (IS_ERR(host->ioaddr)) { host 1379 drivers/mmc/host/bcm2835.c ret = PTR_ERR(host->ioaddr); host 1393 drivers/mmc/host/bcm2835.c host->phys_addr = be32_to_cpup(regaddr_p); host 1395 drivers/mmc/host/bcm2835.c host->dma_chan = NULL; host 1396 drivers/mmc/host/bcm2835.c host->dma_desc = NULL; host 1398 drivers/mmc/host/bcm2835.c host->dma_chan_rxtx = dma_request_slave_channel(dev, "rx-tx"); host 1408 drivers/mmc/host/bcm2835.c host->max_clk = clk_get_rate(clk); host 1410 drivers/mmc/host/bcm2835.c host->irq = platform_get_irq(pdev, 0); host 1411 drivers/mmc/host/bcm2835.c if (host->irq <= 0) { host 1420 drivers/mmc/host/bcm2835.c ret = bcm2835_add_host(host); host 1424 drivers/mmc/host/bcm2835.c platform_set_drvdata(pdev, host); host 1432 drivers/mmc/host/bcm2835.c if (host->dma_chan_rxtx) host 1433 drivers/mmc/host/bcm2835.c dma_release_channel(host->dma_chan_rxtx); host 1441 drivers/mmc/host/bcm2835.c struct bcm2835_host *host = platform_get_drvdata(pdev); host 1442 drivers/mmc/host/bcm2835.c struct mmc_host *mmc = mmc_from_priv(host); host 1446 drivers/mmc/host/bcm2835.c writel(SDVDD_POWER_OFF, host->ioaddr + SDVDD); host 1448 drivers/mmc/host/bcm2835.c free_irq(host->irq, host); host 1450 drivers/mmc/host/bcm2835.c cancel_work_sync(&host->dma_work); host 1451 drivers/mmc/host/bcm2835.c cancel_delayed_work_sync(&host->timeout_work); host 1453 drivers/mmc/host/bcm2835.c if (host->dma_chan_rxtx) host 1454 drivers/mmc/host/bcm2835.c dma_release_channel(host->dma_chan_rxtx); host 88 drivers/mmc/host/cavium-octeon.c static void octeon_mmc_acquire_bus(struct cvm_mmc_host *host) host 90 drivers/mmc/host/cavium-octeon.c if (!host->has_ciu3) { host 96 drivers/mmc/host/cavium-octeon.c down(&host->mmc_serializer); host 100 drivers/mmc/host/cavium-octeon.c static void octeon_mmc_release_bus(struct cvm_mmc_host *host) host 102 drivers/mmc/host/cavium-octeon.c if (!host->has_ciu3) host 105 drivers/mmc/host/cavium-octeon.c up(&host->mmc_serializer); host 108 drivers/mmc/host/cavium-octeon.c static void octeon_mmc_int_enable(struct cvm_mmc_host *host, u64 val) host 110 drivers/mmc/host/cavium-octeon.c writeq(val, host->base + MIO_EMM_INT(host)); host 111 drivers/mmc/host/cavium-octeon.c if (!host->has_ciu3) host 112 drivers/mmc/host/cavium-octeon.c writeq(val, host->base + MIO_EMM_INT_EN(host)); host 115 drivers/mmc/host/cavium-octeon.c static void octeon_mmc_set_shared_power(struct cvm_mmc_host *host, int dir) host 118 drivers/mmc/host/cavium-octeon.c if (!atomic_dec_return(&host->shared_power_users)) host 119 drivers/mmc/host/cavium-octeon.c gpiod_set_value_cansleep(host->global_pwr_gpiod, 0); host 121 drivers/mmc/host/cavium-octeon.c if (atomic_inc_return(&host->shared_power_users) == 1) host 122 drivers/mmc/host/cavium-octeon.c gpiod_set_value_cansleep(host->global_pwr_gpiod, 1); host 125 drivers/mmc/host/cavium-octeon.c static void octeon_mmc_dmar_fixup(struct cvm_mmc_host *host, host 135 drivers/mmc/host/cavium-octeon.c host->n_minus_one = addr + (data->blksz * data->blocks) - 1024; host 136 drivers/mmc/host/cavium-octeon.c l2c_lock_mem_region(host->n_minus_one, 512); host 139 drivers/mmc/host/cavium-octeon.c static void octeon_mmc_dmar_fixup_done(struct cvm_mmc_host *host) host 141 drivers/mmc/host/cavium-octeon.c if (!host->n_minus_one) host 143 drivers/mmc/host/cavium-octeon.c l2c_unlock_mem_region(host->n_minus_one, 512); host 144 drivers/mmc/host/cavium-octeon.c host->n_minus_one = 0; host 150 drivers/mmc/host/cavium-octeon.c struct cvm_mmc_host *host; host 157 drivers/mmc/host/cavium-octeon.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 158 drivers/mmc/host/cavium-octeon.c if (!host) host 161 drivers/mmc/host/cavium-octeon.c spin_lock_init(&host->irq_handler_lock); host 162 drivers/mmc/host/cavium-octeon.c sema_init(&host->mmc_serializer, 1); host 164 drivers/mmc/host/cavium-octeon.c host->dev = &pdev->dev; host 165 drivers/mmc/host/cavium-octeon.c host->acquire_bus = octeon_mmc_acquire_bus; host 166 drivers/mmc/host/cavium-octeon.c host->release_bus = octeon_mmc_release_bus; host 167 drivers/mmc/host/cavium-octeon.c host->int_enable = octeon_mmc_int_enable; host 168 drivers/mmc/host/cavium-octeon.c host->set_shared_power = octeon_mmc_set_shared_power; host 171 drivers/mmc/host/cavium-octeon.c host->dmar_fixup = octeon_mmc_dmar_fixup; host 172 drivers/mmc/host/cavium-octeon.c host->dmar_fixup_done = octeon_mmc_dmar_fixup_done; host 175 drivers/mmc/host/cavium-octeon.c host->sys_freq = octeon_get_io_clock_rate(); host 178 drivers/mmc/host/cavium-octeon.c host->big_dma_addr = true; host 179 drivers/mmc/host/cavium-octeon.c host->need_irq_handler_lock = true; host 180 drivers/mmc/host/cavium-octeon.c host->has_ciu3 = true; host 181 drivers/mmc/host/cavium-octeon.c host->use_sg = true; host 195 drivers/mmc/host/cavium-octeon.c host->big_dma_addr = false; host 196 drivers/mmc/host/cavium-octeon.c host->need_irq_handler_lock = false; host 197 drivers/mmc/host/cavium-octeon.c host->has_ciu3 = false; host 206 drivers/mmc/host/cavium-octeon.c host->last_slot = -1; host 216 drivers/mmc/host/cavium-octeon.c host->base = (void __iomem *)base; host 217 drivers/mmc/host/cavium-octeon.c host->reg_off = 0; host 227 drivers/mmc/host/cavium-octeon.c host->dma_base = (void __iomem *)base; host 233 drivers/mmc/host/cavium-octeon.c host->reg_off_dma = -0x20; host 243 drivers/mmc/host/cavium-octeon.c val = readq(host->base + MIO_EMM_INT(host)); host 244 drivers/mmc/host/cavium-octeon.c writeq(val, host->base + MIO_EMM_INT(host)); host 246 drivers/mmc/host/cavium-octeon.c if (host->has_ciu3) { host 251 drivers/mmc/host/cavium-octeon.c 0, cvm_mmc_irq_names[i], host); host 261 drivers/mmc/host/cavium-octeon.c host); host 269 drivers/mmc/host/cavium-octeon.c host->global_pwr_gpiod = devm_gpiod_get_optional(&pdev->dev, host 272 drivers/mmc/host/cavium-octeon.c if (IS_ERR(host->global_pwr_gpiod)) { host 274 drivers/mmc/host/cavium-octeon.c return PTR_ERR(host->global_pwr_gpiod); host 277 drivers/mmc/host/cavium-octeon.c platform_set_drvdata(pdev, host); host 281 drivers/mmc/host/cavium-octeon.c host->slot_pdev[i] = host 283 drivers/mmc/host/cavium-octeon.c if (!host->slot_pdev[i]) { host 287 drivers/mmc/host/cavium-octeon.c ret = cvm_mmc_of_slot_probe(&host->slot_pdev[i]->dev, host); host 290 drivers/mmc/host/cavium-octeon.c octeon_mmc_set_shared_power(host, 0); host 299 drivers/mmc/host/cavium-octeon.c if (host->slot[i]) host 300 drivers/mmc/host/cavium-octeon.c cvm_mmc_of_slot_remove(host->slot[i]); host 301 drivers/mmc/host/cavium-octeon.c if (host->slot_pdev[i]) host 302 drivers/mmc/host/cavium-octeon.c of_platform_device_destroy(&host->slot_pdev[i]->dev, NULL); host 309 drivers/mmc/host/cavium-octeon.c struct cvm_mmc_host *host = platform_get_drvdata(pdev); host 314 drivers/mmc/host/cavium-octeon.c if (host->slot[i]) host 315 drivers/mmc/host/cavium-octeon.c cvm_mmc_of_slot_remove(host->slot[i]); host 317 drivers/mmc/host/cavium-octeon.c dma_cfg = readq(host->dma_base + MIO_EMM_DMA_CFG(host)); host 319 drivers/mmc/host/cavium-octeon.c writeq(dma_cfg, host->dma_base + MIO_EMM_DMA_CFG(host)); host 321 drivers/mmc/host/cavium-octeon.c octeon_mmc_set_shared_power(host, 0); host 20 drivers/mmc/host/cavium-thunderx.c static void thunder_mmc_acquire_bus(struct cvm_mmc_host *host) host 22 drivers/mmc/host/cavium-thunderx.c down(&host->mmc_serializer); host 25 drivers/mmc/host/cavium-thunderx.c static void thunder_mmc_release_bus(struct cvm_mmc_host *host) host 27 drivers/mmc/host/cavium-thunderx.c up(&host->mmc_serializer); host 30 drivers/mmc/host/cavium-thunderx.c static void thunder_mmc_int_enable(struct cvm_mmc_host *host, u64 val) host 32 drivers/mmc/host/cavium-thunderx.c writeq(val, host->base + MIO_EMM_INT(host)); host 33 drivers/mmc/host/cavium-thunderx.c writeq(val, host->base + MIO_EMM_INT_EN_SET(host)); host 36 drivers/mmc/host/cavium-thunderx.c static int thunder_mmc_register_interrupts(struct cvm_mmc_host *host, host 49 drivers/mmc/host/cavium-thunderx.c 0, cvm_mmc_irq_names[i], host); host 62 drivers/mmc/host/cavium-thunderx.c struct cvm_mmc_host *host; host 65 drivers/mmc/host/cavium-thunderx.c host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); host 66 drivers/mmc/host/cavium-thunderx.c if (!host) host 69 drivers/mmc/host/cavium-thunderx.c pci_set_drvdata(pdev, host); host 78 drivers/mmc/host/cavium-thunderx.c host->base = pcim_iomap(pdev, 0, pci_resource_len(pdev, 0)); host 79 drivers/mmc/host/cavium-thunderx.c if (!host->base) host 83 drivers/mmc/host/cavium-thunderx.c host->dma_base = host->base; host 85 drivers/mmc/host/cavium-thunderx.c host->reg_off = 0x2000; host 86 drivers/mmc/host/cavium-thunderx.c host->reg_off_dma = 0x160; host 88 drivers/mmc/host/cavium-thunderx.c host->clk = devm_clk_get(dev, NULL); host 89 drivers/mmc/host/cavium-thunderx.c if (IS_ERR(host->clk)) host 90 drivers/mmc/host/cavium-thunderx.c return PTR_ERR(host->clk); host 92 drivers/mmc/host/cavium-thunderx.c ret = clk_prepare_enable(host->clk); host 95 drivers/mmc/host/cavium-thunderx.c host->sys_freq = clk_get_rate(host->clk); host 97 drivers/mmc/host/cavium-thunderx.c spin_lock_init(&host->irq_handler_lock); host 98 drivers/mmc/host/cavium-thunderx.c sema_init(&host->mmc_serializer, 1); host 100 drivers/mmc/host/cavium-thunderx.c host->dev = dev; host 101 drivers/mmc/host/cavium-thunderx.c host->acquire_bus = thunder_mmc_acquire_bus; host 102 drivers/mmc/host/cavium-thunderx.c host->release_bus = thunder_mmc_release_bus; host 103 drivers/mmc/host/cavium-thunderx.c host->int_enable = thunder_mmc_int_enable; host 105 drivers/mmc/host/cavium-thunderx.c host->use_sg = true; host 106 drivers/mmc/host/cavium-thunderx.c host->big_dma_addr = true; host 107 drivers/mmc/host/cavium-thunderx.c host->need_irq_handler_lock = true; host 108 drivers/mmc/host/cavium-thunderx.c host->last_slot = -1; host 118 drivers/mmc/host/cavium-thunderx.c writeq(127, host->base + MIO_EMM_INT_EN(host)); host 119 drivers/mmc/host/cavium-thunderx.c writeq(3, host->base + MIO_EMM_DMA_INT_ENA_W1C(host)); host 121 drivers/mmc/host/cavium-thunderx.c writeq(BIT_ULL(16), host->base + MIO_EMM_DMA_FIFO_CFG(host)); host 123 drivers/mmc/host/cavium-thunderx.c ret = thunder_mmc_register_interrupts(host, pdev); host 135 drivers/mmc/host/cavium-thunderx.c host->slot_pdev[i] = of_platform_device_create(child_node, NULL, host 137 drivers/mmc/host/cavium-thunderx.c if (!host->slot_pdev[i]) host 140 drivers/mmc/host/cavium-thunderx.c ret = cvm_mmc_of_slot_probe(&host->slot_pdev[i]->dev, host); host 151 drivers/mmc/host/cavium-thunderx.c if (host->slot[i]) host 152 drivers/mmc/host/cavium-thunderx.c cvm_mmc_of_slot_remove(host->slot[i]); host 153 drivers/mmc/host/cavium-thunderx.c if (host->slot_pdev[i]) { host 154 drivers/mmc/host/cavium-thunderx.c get_device(&host->slot_pdev[i]->dev); host 155 drivers/mmc/host/cavium-thunderx.c of_platform_device_destroy(&host->slot_pdev[i]->dev, NULL); host 156 drivers/mmc/host/cavium-thunderx.c put_device(&host->slot_pdev[i]->dev); host 159 drivers/mmc/host/cavium-thunderx.c clk_disable_unprepare(host->clk); host 165 drivers/mmc/host/cavium-thunderx.c struct cvm_mmc_host *host = pci_get_drvdata(pdev); host 170 drivers/mmc/host/cavium-thunderx.c if (host->slot[i]) host 171 drivers/mmc/host/cavium-thunderx.c cvm_mmc_of_slot_remove(host->slot[i]); host 173 drivers/mmc/host/cavium-thunderx.c dma_cfg = readq(host->dma_base + MIO_EMM_DMA_CFG(host)); host 175 drivers/mmc/host/cavium-thunderx.c writeq(dma_cfg, host->dma_base + MIO_EMM_DMA_CFG(host)); host 177 drivers/mmc/host/cavium-thunderx.c clk_disable_unprepare(host->clk); host 165 drivers/mmc/host/cavium.c static void check_switch_errors(struct cvm_mmc_host *host) host 169 drivers/mmc/host/cavium.c emm_switch = readq(host->base + MIO_EMM_SWITCH(host)); host 171 drivers/mmc/host/cavium.c dev_err(host->dev, "Switch power class error\n"); host 173 drivers/mmc/host/cavium.c dev_err(host->dev, "Switch hs timing error\n"); host 175 drivers/mmc/host/cavium.c dev_err(host->dev, "Switch bus width error\n"); host 200 drivers/mmc/host/cavium.c static void do_switch(struct cvm_mmc_host *host, u64 emm_switch) host 212 drivers/mmc/host/cavium.c writeq(emm_switch, host->base + MIO_EMM_SWITCH(host)); host 215 drivers/mmc/host/cavium.c writeq(emm_switch, host->base + MIO_EMM_SWITCH(host)); host 219 drivers/mmc/host/cavium.c rsp_sts = readq(host->base + MIO_EMM_RSP_STS(host)); host 225 drivers/mmc/host/cavium.c check_switch_errors(host); host 247 drivers/mmc/host/cavium.c writeq(timeout, slot->host->base + MIO_EMM_WDOG(slot->host)); host 252 drivers/mmc/host/cavium.c struct cvm_mmc_host *host = slot->host; host 255 drivers/mmc/host/cavium.c emm_switch = readq(slot->host->base + MIO_EMM_SWITCH(host)); host 260 drivers/mmc/host/cavium.c wdog = readq(slot->host->base + MIO_EMM_WDOG(host)); host 261 drivers/mmc/host/cavium.c do_switch(slot->host, emm_switch); host 267 drivers/mmc/host/cavium.c writeq(wdog, slot->host->base + MIO_EMM_WDOG(host)); host 273 drivers/mmc/host/cavium.c struct cvm_mmc_host *host = slot->host; host 277 drivers/mmc/host/cavium.c if (slot->bus_id == host->last_slot) host 280 drivers/mmc/host/cavium.c if (host->last_slot >= 0 && host->slot[host->last_slot]) { host 281 drivers/mmc/host/cavium.c old_slot = host->slot[host->last_slot]; host 282 drivers/mmc/host/cavium.c old_slot->cached_switch = readq(host->base + MIO_EMM_SWITCH(host)); host 283 drivers/mmc/host/cavium.c old_slot->cached_rca = readq(host->base + MIO_EMM_RCA(host)); host 286 drivers/mmc/host/cavium.c writeq(slot->cached_rca, host->base + MIO_EMM_RCA(host)); host 289 drivers/mmc/host/cavium.c do_switch(host, emm_switch); host 293 drivers/mmc/host/cavium.c writeq(emm_sample, host->base + MIO_EMM_SAMPLE(host)); host 295 drivers/mmc/host/cavium.c host->last_slot = slot->bus_id; host 298 drivers/mmc/host/cavium.c static void do_read(struct cvm_mmc_host *host, struct mmc_request *req, host 301 drivers/mmc/host/cavium.c struct sg_mapping_iter *smi = &host->smi; host 307 drivers/mmc/host/cavium.c writeq((0x10000 | (dbuf << 6)), host->base + MIO_EMM_BUF_IDX(host)); host 317 drivers/mmc/host/cavium.c dat = readq(host->base + MIO_EMM_BUF_DAT(host)); host 340 drivers/mmc/host/cavium.c static void set_cmd_response(struct cvm_mmc_host *host, struct mmc_request *req, host 348 drivers/mmc/host/cavium.c rsp_lo = readq(host->base + MIO_EMM_RSP_LO(host)); host 361 drivers/mmc/host/cavium.c rsp_hi = readq(host->base + MIO_EMM_RSP_HI(host)); host 373 drivers/mmc/host/cavium.c static int finish_dma_single(struct cvm_mmc_host *host, struct mmc_data *data) host 377 drivers/mmc/host/cavium.c dma_unmap_sg(host->dev, data->sg, data->sg_len, get_dma_dir(data)); host 381 drivers/mmc/host/cavium.c static int finish_dma_sg(struct cvm_mmc_host *host, struct mmc_data *data) host 387 drivers/mmc/host/cavium.c fifo_cfg = readq(host->dma_base + MIO_EMM_DMA_FIFO_CFG(host)); host 390 drivers/mmc/host/cavium.c dev_err(host->dev, "%u requests still pending\n", count); host 396 drivers/mmc/host/cavium.c writeq(BIT_ULL(16), host->dma_base + MIO_EMM_DMA_FIFO_CFG(host)); host 397 drivers/mmc/host/cavium.c dma_unmap_sg(host->dev, data->sg, data->sg_len, get_dma_dir(data)); host 401 drivers/mmc/host/cavium.c static int finish_dma(struct cvm_mmc_host *host, struct mmc_data *data) host 403 drivers/mmc/host/cavium.c if (host->use_sg && data->sg_len > 1) host 404 drivers/mmc/host/cavium.c return finish_dma_sg(host, data); host 406 drivers/mmc/host/cavium.c return finish_dma_single(host, data); host 424 drivers/mmc/host/cavium.c static void cleanup_dma(struct cvm_mmc_host *host, u64 rsp_sts) host 428 drivers/mmc/host/cavium.c emm_dma = readq(host->base + MIO_EMM_DMA(host)); host 432 drivers/mmc/host/cavium.c writeq(emm_dma, host->base + MIO_EMM_DMA(host)); host 437 drivers/mmc/host/cavium.c struct cvm_mmc_host *host = dev_id; host 443 drivers/mmc/host/cavium.c if (host->need_irq_handler_lock) host 444 drivers/mmc/host/cavium.c spin_lock_irqsave(&host->irq_handler_lock, flags); host 446 drivers/mmc/host/cavium.c __acquire(&host->irq_handler_lock); host 449 drivers/mmc/host/cavium.c emm_int = readq(host->base + MIO_EMM_INT(host)); host 450 drivers/mmc/host/cavium.c writeq(emm_int, host->base + MIO_EMM_INT(host)); host 453 drivers/mmc/host/cavium.c check_switch_errors(host); host 455 drivers/mmc/host/cavium.c req = host->current_req; host 459 drivers/mmc/host/cavium.c rsp_sts = readq(host->base + MIO_EMM_RSP_STS(host)); host 465 drivers/mmc/host/cavium.c if ((rsp_sts & MIO_EMM_RSP_STS_DMA_VAL) && host->dma_active) host 468 drivers/mmc/host/cavium.c if (!host->dma_active && req->data && host 473 drivers/mmc/host/cavium.c do_read(host, req, rsp_sts & MIO_EMM_RSP_STS_DBUF); host 488 drivers/mmc/host/cavium.c if (host->dma_active && req->data) host 489 drivers/mmc/host/cavium.c if (!finish_dma(host, req->data)) host 492 drivers/mmc/host/cavium.c set_cmd_response(host, req, rsp_sts); host 495 drivers/mmc/host/cavium.c cleanup_dma(host, rsp_sts); host 497 drivers/mmc/host/cavium.c host->current_req = NULL; host 501 drivers/mmc/host/cavium.c if (host->dmar_fixup_done) host 502 drivers/mmc/host/cavium.c host->dmar_fixup_done(host); host 504 drivers/mmc/host/cavium.c host->release_bus(host); host 506 drivers/mmc/host/cavium.c if (host->need_irq_handler_lock) host 507 drivers/mmc/host/cavium.c spin_unlock_irqrestore(&host->irq_handler_lock, flags); host 509 drivers/mmc/host/cavium.c __release(&host->irq_handler_lock); host 517 drivers/mmc/host/cavium.c static u64 prepare_dma_single(struct cvm_mmc_host *host, struct mmc_data *data) host 522 drivers/mmc/host/cavium.c count = dma_map_sg(host->dev, data->sg, data->sg_len, host 537 drivers/mmc/host/cavium.c if (!host->big_dma_addr) host 539 drivers/mmc/host/cavium.c writeq(dma_cfg, host->dma_base + MIO_EMM_DMA_CFG(host)); host 544 drivers/mmc/host/cavium.c if (host->big_dma_addr) host 545 drivers/mmc/host/cavium.c writeq(addr, host->dma_base + MIO_EMM_DMA_ADR(host)); host 553 drivers/mmc/host/cavium.c static u64 prepare_dma_sg(struct cvm_mmc_host *host, struct mmc_data *data) host 559 drivers/mmc/host/cavium.c count = dma_map_sg(host->dev, data->sg, data->sg_len, host 567 drivers/mmc/host/cavium.c writeq(0, host->dma_base + MIO_EMM_DMA_FIFO_CFG(host)); host 574 drivers/mmc/host/cavium.c writeq(addr, host->dma_base + MIO_EMM_DMA_FIFO_ADR(host)); host 597 drivers/mmc/host/cavium.c writeq(fifo_cmd, host->dma_base + MIO_EMM_DMA_FIFO_CMD(host)); host 612 drivers/mmc/host/cavium.c dma_unmap_sg(host->dev, data->sg, data->sg_len, get_dma_dir(data)); host 614 drivers/mmc/host/cavium.c writeq(BIT_ULL(16), host->dma_base + MIO_EMM_DMA_FIFO_CFG(host)); host 618 drivers/mmc/host/cavium.c static u64 prepare_dma(struct cvm_mmc_host *host, struct mmc_data *data) host 620 drivers/mmc/host/cavium.c if (host->use_sg && data->sg_len > 1) host 621 drivers/mmc/host/cavium.c return prepare_dma_sg(host, data); host 623 drivers/mmc/host/cavium.c return prepare_dma_single(host, data); host 654 drivers/mmc/host/cavium.c struct cvm_mmc_host *host = slot->host; host 673 drivers/mmc/host/cavium.c WARN_ON(host->current_req); host 674 drivers/mmc/host/cavium.c host->current_req = mrq; host 677 drivers/mmc/host/cavium.c addr = prepare_dma(host, data); host 679 drivers/mmc/host/cavium.c dev_err(host->dev, "prepare_dma failed\n"); host 683 drivers/mmc/host/cavium.c host->dma_active = true; host 684 drivers/mmc/host/cavium.c host->int_enable(host, MIO_EMM_INT_CMD_ERR | MIO_EMM_INT_DMA_DONE | host 687 drivers/mmc/host/cavium.c if (host->dmar_fixup) host 688 drivers/mmc/host/cavium.c host->dmar_fixup(host, mrq->cmd, data, addr); host 696 drivers/mmc/host/cavium.c writeq(0x00b00000ull, host->base + MIO_EMM_STS_MASK(host)); host 698 drivers/mmc/host/cavium.c writeq(0xe4390080ull, host->base + MIO_EMM_STS_MASK(host)); host 699 drivers/mmc/host/cavium.c writeq(emm_dma, host->base + MIO_EMM_DMA(host)); host 706 drivers/mmc/host/cavium.c host->release_bus(host); host 709 drivers/mmc/host/cavium.c static void do_read_request(struct cvm_mmc_host *host, struct mmc_request *mrq) host 711 drivers/mmc/host/cavium.c sg_miter_start(&host->smi, mrq->data->sg, mrq->data->sg_len, host 715 drivers/mmc/host/cavium.c static void do_write_request(struct cvm_mmc_host *host, struct mmc_request *mrq) host 718 drivers/mmc/host/cavium.c struct sg_mapping_iter *smi = &host->smi; host 727 drivers/mmc/host/cavium.c writeq(0x10000ull, host->base + MIO_EMM_BUF_IDX(host)); host 744 drivers/mmc/host/cavium.c writeq(dat, host->base + MIO_EMM_BUF_DAT(host)); host 755 drivers/mmc/host/cavium.c struct cvm_mmc_host *host = slot->host; host 770 drivers/mmc/host/cavium.c host->acquire_bus(host); host 780 drivers/mmc/host/cavium.c WARN_ON(host->current_req); host 781 drivers/mmc/host/cavium.c host->current_req = mrq; host 785 drivers/mmc/host/cavium.c do_read_request(host, mrq); host 787 drivers/mmc/host/cavium.c do_write_request(host, mrq); host 794 drivers/mmc/host/cavium.c host->dma_active = false; host 795 drivers/mmc/host/cavium.c host->int_enable(host, MIO_EMM_INT_CMD_DONE | MIO_EMM_INT_CMD_ERR); host 807 drivers/mmc/host/cavium.c writeq(0, host->base + MIO_EMM_STS_MASK(host)); host 810 drivers/mmc/host/cavium.c rsp_sts = readq(host->base + MIO_EMM_RSP_STS(host)); host 820 drivers/mmc/host/cavium.c dev_err(host->dev, "Bad status: %llx before command write\n", rsp_sts); host 821 drivers/mmc/host/cavium.c writeq(emm_cmd, host->base + MIO_EMM_CMD(host)); host 827 drivers/mmc/host/cavium.c struct cvm_mmc_host *host = slot->host; host 831 drivers/mmc/host/cavium.c host->acquire_bus(host); host 841 drivers/mmc/host/cavium.c if (host->global_pwr_gpiod) host 842 drivers/mmc/host/cavium.c host->set_shared_power(host, 0); host 848 drivers/mmc/host/cavium.c if (host->global_pwr_gpiod) host 849 drivers/mmc/host/cavium.c host->set_shared_power(host, 1); host 879 drivers/mmc/host/cavium.c clk_period = (host->sys_freq + clock - 1) / (2 * clock); host 893 drivers/mmc/host/cavium.c do_switch(host, emm_switch); host 896 drivers/mmc/host/cavium.c host->release_bus(host); host 917 drivers/mmc/host/cavium.c struct cvm_mmc_host *host = slot->host; host 921 drivers/mmc/host/cavium.c host->emm_cfg |= (1ull << slot->bus_id); host 922 drivers/mmc/host/cavium.c writeq(host->emm_cfg, slot->host->base + MIO_EMM_CFG(host)); host 929 drivers/mmc/host/cavium.c (host->sys_freq / slot->clock) / 2); host 931 drivers/mmc/host/cavium.c (host->sys_freq / slot->clock) / 2); host 935 drivers/mmc/host/cavium.c do_switch(host, emm_switch); host 946 drivers/mmc/host/cavium.c writeq(0xe4390080ull, host->base + MIO_EMM_STS_MASK(host)); host 947 drivers/mmc/host/cavium.c writeq(1, host->base + MIO_EMM_RCA(host)); host 965 drivers/mmc/host/cavium.c if (id >= CAVIUM_MAX_MMC || slot->host->slot[id]) { host 1002 drivers/mmc/host/cavium.c clock_period = 1000000000000ull / slot->host->sys_freq; host 1011 drivers/mmc/host/cavium.c int cvm_mmc_of_slot_probe(struct device *dev, struct cvm_mmc_host *host) host 1023 drivers/mmc/host/cavium.c slot->host = host; host 1044 drivers/mmc/host/cavium.c if (host->use_sg) host 1051 drivers/mmc/host/cavium.c dma_get_max_seg_size(host->dev)); host 1062 drivers/mmc/host/cavium.c host->acquire_bus(host); host 1063 drivers/mmc/host/cavium.c host->slot[id] = slot; host 1066 drivers/mmc/host/cavium.c host->release_bus(host); host 1071 drivers/mmc/host/cavium.c slot->host->slot[id] = NULL; host 1084 drivers/mmc/host/cavium.c slot->host->slot[slot->bus_id] = NULL; host 96 drivers/mmc/host/cavium.h struct cvm_mmc_host *host; /* common hw for all slots */ host 211 drivers/mmc/host/cavium.h int cvm_mmc_of_slot_probe(struct device *dev, struct cvm_mmc_host *host); host 420 drivers/mmc/host/cqhci.c mmc_hostname(mrq->host), mrq->tag, (unsigned long long)*data); host 423 drivers/mmc/host/cqhci.c static int cqhci_dma_map(struct mmc_host *host, struct mmc_request *mrq) host 431 drivers/mmc/host/cqhci.c sg_count = dma_map_sg(mmc_dev(host), data->sg, host 476 drivers/mmc/host/cqhci.c sg_count = cqhci_dma_map(mrq->host, mrq); host 479 drivers/mmc/host/cqhci.c mmc_hostname(mrq->host), __func__, sg_count); host 542 drivers/mmc/host/cqhci.c static void cqhci_post_req(struct mmc_host *host, struct mmc_request *mrq) host 547 drivers/mmc/host/cqhci.c dma_unmap_sg(mmc_dev(host), data->sg, data->sg_len, host 203 drivers/mmc/host/cqhci.h void (*write_l)(struct cqhci_host *host, u32 val, int reg); host 204 drivers/mmc/host/cqhci.h u32 (*read_l)(struct cqhci_host *host, int reg); host 211 drivers/mmc/host/cqhci.h static inline void cqhci_writel(struct cqhci_host *host, u32 val, int reg) host 213 drivers/mmc/host/cqhci.h if (unlikely(host->ops->write_l)) host 214 drivers/mmc/host/cqhci.h host->ops->write_l(host, val, reg); host 216 drivers/mmc/host/cqhci.h writel_relaxed(val, host->mmio + reg); host 219 drivers/mmc/host/cqhci.h static inline u32 cqhci_readl(struct cqhci_host *host, int reg) host 221 drivers/mmc/host/cqhci.h if (unlikely(host->ops->read_l)) host 222 drivers/mmc/host/cqhci.h return host->ops->read_l(host, reg); host 224 drivers/mmc/host/cqhci.h return readl_relaxed(host->mmio + reg); host 217 drivers/mmc/host/davinci_mmc.c static void mmc_davinci_sg_to_buf(struct mmc_davinci_host *host) host 219 drivers/mmc/host/davinci_mmc.c host->buffer_bytes_left = sg_dma_len(host->sg); host 220 drivers/mmc/host/davinci_mmc.c host->buffer = sg_virt(host->sg); host 221 drivers/mmc/host/davinci_mmc.c if (host->buffer_bytes_left > host->bytes_left) host 222 drivers/mmc/host/davinci_mmc.c host->buffer_bytes_left = host->bytes_left; host 225 drivers/mmc/host/davinci_mmc.c static void davinci_fifo_data_trans(struct mmc_davinci_host *host, host 231 drivers/mmc/host/davinci_mmc.c if (host->buffer_bytes_left == 0) { host 232 drivers/mmc/host/davinci_mmc.c host->sg = sg_next(host->data->sg); host 233 drivers/mmc/host/davinci_mmc.c mmc_davinci_sg_to_buf(host); host 236 drivers/mmc/host/davinci_mmc.c p = host->buffer; host 237 drivers/mmc/host/davinci_mmc.c if (n > host->buffer_bytes_left) host 238 drivers/mmc/host/davinci_mmc.c n = host->buffer_bytes_left; host 239 drivers/mmc/host/davinci_mmc.c host->buffer_bytes_left -= n; host 240 drivers/mmc/host/davinci_mmc.c host->bytes_left -= n; host 246 drivers/mmc/host/davinci_mmc.c if (host->data_dir == DAVINCI_MMC_DATADIR_WRITE) { host 248 drivers/mmc/host/davinci_mmc.c writel(*((u32 *)p), host->base + DAVINCI_MMCDXR); host 252 drivers/mmc/host/davinci_mmc.c iowrite8_rep(host->base + DAVINCI_MMCDXR, p, (n & 3)); host 257 drivers/mmc/host/davinci_mmc.c *((u32 *)p) = readl(host->base + DAVINCI_MMCDRR); host 261 drivers/mmc/host/davinci_mmc.c ioread8_rep(host->base + DAVINCI_MMCDRR, p, (n & 3)); host 265 drivers/mmc/host/davinci_mmc.c host->buffer = p; host 268 drivers/mmc/host/davinci_mmc.c static void mmc_davinci_start_command(struct mmc_davinci_host *host, host 274 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "CMD%d, arg 0x%08x%s\n", host 294 drivers/mmc/host/davinci_mmc.c host->cmd = cmd; host 315 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "unknown resp_type %04x\n", host 324 drivers/mmc/host/davinci_mmc.c if (host->do_dma) host 327 drivers/mmc/host/davinci_mmc.c if (host->version == MMC_CTLR_VERSION_2 && host->data != NULL && host 328 drivers/mmc/host/davinci_mmc.c host->data_dir == DAVINCI_MMC_DATADIR_READ) host 336 drivers/mmc/host/davinci_mmc.c if (host->data_dir == DAVINCI_MMC_DATADIR_WRITE) host 339 drivers/mmc/host/davinci_mmc.c if (host->bus_mode == MMC_BUSMODE_PUSHPULL) host 343 drivers/mmc/host/davinci_mmc.c writel(0x1FFF, host->base + DAVINCI_MMCTOR); host 347 drivers/mmc/host/davinci_mmc.c if (host->data_dir == DAVINCI_MMC_DATADIR_WRITE) { host 350 drivers/mmc/host/davinci_mmc.c if (!host->do_dma) host 352 drivers/mmc/host/davinci_mmc.c } else if (host->data_dir == DAVINCI_MMC_DATADIR_READ) { host 355 drivers/mmc/host/davinci_mmc.c if (!host->do_dma) host 363 drivers/mmc/host/davinci_mmc.c if (!host->do_dma && (host->data_dir == DAVINCI_MMC_DATADIR_WRITE)) host 364 drivers/mmc/host/davinci_mmc.c davinci_fifo_data_trans(host, rw_threshold); host 366 drivers/mmc/host/davinci_mmc.c writel(cmd->arg, host->base + DAVINCI_MMCARGHL); host 367 drivers/mmc/host/davinci_mmc.c writel(cmd_reg, host->base + DAVINCI_MMCCMD); host 369 drivers/mmc/host/davinci_mmc.c host->active_request = true; host 371 drivers/mmc/host/davinci_mmc.c if (!host->do_dma && host->bytes_left <= poll_threshold) { host 374 drivers/mmc/host/davinci_mmc.c while (host->active_request && count--) { host 375 drivers/mmc/host/davinci_mmc.c mmc_davinci_irq(0, host); host 380 drivers/mmc/host/davinci_mmc.c if (host->active_request) host 381 drivers/mmc/host/davinci_mmc.c writel(im_val, host->base + DAVINCI_MMCIM); host 388 drivers/mmc/host/davinci_mmc.c static void davinci_abort_dma(struct mmc_davinci_host *host) host 392 drivers/mmc/host/davinci_mmc.c if (host->data_dir == DAVINCI_MMC_DATADIR_READ) host 393 drivers/mmc/host/davinci_mmc.c sync_dev = host->dma_rx; host 395 drivers/mmc/host/davinci_mmc.c sync_dev = host->dma_tx; host 400 drivers/mmc/host/davinci_mmc.c static int mmc_davinci_send_dma_request(struct mmc_davinci_host *host, host 407 drivers/mmc/host/davinci_mmc.c if (host->data_dir == DAVINCI_MMC_DATADIR_WRITE) { host 410 drivers/mmc/host/davinci_mmc.c .dst_addr = host->mem_res->start + DAVINCI_MMCDXR, host 415 drivers/mmc/host/davinci_mmc.c chan = host->dma_tx; host 416 drivers/mmc/host/davinci_mmc.c dmaengine_slave_config(host->dma_tx, &dma_tx_conf); host 418 drivers/mmc/host/davinci_mmc.c desc = dmaengine_prep_slave_sg(host->dma_tx, host 420 drivers/mmc/host/davinci_mmc.c host->sg_len, host 424 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), host 432 drivers/mmc/host/davinci_mmc.c .src_addr = host->mem_res->start + DAVINCI_MMCDRR, host 437 drivers/mmc/host/davinci_mmc.c chan = host->dma_rx; host 438 drivers/mmc/host/davinci_mmc.c dmaengine_slave_config(host->dma_rx, &dma_rx_conf); host 440 drivers/mmc/host/davinci_mmc.c desc = dmaengine_prep_slave_sg(host->dma_rx, host 442 drivers/mmc/host/davinci_mmc.c host->sg_len, host 446 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), host 460 drivers/mmc/host/davinci_mmc.c static int mmc_davinci_start_dma_transfer(struct mmc_davinci_host *host, host 467 drivers/mmc/host/davinci_mmc.c host->sg_len = dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 471 drivers/mmc/host/davinci_mmc.c for (i = 0; i < host->sg_len; i++) { host 473 drivers/mmc/host/davinci_mmc.c dma_unmap_sg(mmc_dev(host->mmc), host 480 drivers/mmc/host/davinci_mmc.c host->do_dma = 1; host 481 drivers/mmc/host/davinci_mmc.c ret = mmc_davinci_send_dma_request(host, data); host 486 drivers/mmc/host/davinci_mmc.c static void davinci_release_dma_channels(struct mmc_davinci_host *host) host 488 drivers/mmc/host/davinci_mmc.c if (!host->use_dma) host 491 drivers/mmc/host/davinci_mmc.c dma_release_channel(host->dma_tx); host 492 drivers/mmc/host/davinci_mmc.c dma_release_channel(host->dma_rx); host 495 drivers/mmc/host/davinci_mmc.c static int davinci_acquire_dma_channels(struct mmc_davinci_host *host) host 497 drivers/mmc/host/davinci_mmc.c host->dma_tx = dma_request_chan(mmc_dev(host->mmc), "tx"); host 498 drivers/mmc/host/davinci_mmc.c if (IS_ERR(host->dma_tx)) { host 499 drivers/mmc/host/davinci_mmc.c dev_err(mmc_dev(host->mmc), "Can't get dma_tx channel\n"); host 500 drivers/mmc/host/davinci_mmc.c return PTR_ERR(host->dma_tx); host 503 drivers/mmc/host/davinci_mmc.c host->dma_rx = dma_request_chan(mmc_dev(host->mmc), "rx"); host 504 drivers/mmc/host/davinci_mmc.c if (IS_ERR(host->dma_rx)) { host 505 drivers/mmc/host/davinci_mmc.c dev_err(mmc_dev(host->mmc), "Can't get dma_rx channel\n"); host 506 drivers/mmc/host/davinci_mmc.c dma_release_channel(host->dma_tx); host 507 drivers/mmc/host/davinci_mmc.c return PTR_ERR(host->dma_rx); host 516 drivers/mmc/host/davinci_mmc.c mmc_davinci_prepare_data(struct mmc_davinci_host *host, struct mmc_request *req) host 522 drivers/mmc/host/davinci_mmc.c if (host->version == MMC_CTLR_VERSION_2) host 525 drivers/mmc/host/davinci_mmc.c host->data = data; host 527 drivers/mmc/host/davinci_mmc.c host->data_dir = DAVINCI_MMC_DATADIR_NONE; host 528 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCBLEN); host 529 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCNBLK); host 533 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "%s, %d blocks of %d bytes\n", host 536 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), " DTO %d cycles + %d ns\n", host 539 drivers/mmc/host/davinci_mmc.c (data->timeout_ns / host->ns_in_one_cycle); host 543 drivers/mmc/host/davinci_mmc.c writel(timeout, host->base + DAVINCI_MMCTOD); host 544 drivers/mmc/host/davinci_mmc.c writel(data->blocks, host->base + DAVINCI_MMCNBLK); host 545 drivers/mmc/host/davinci_mmc.c writel(data->blksz, host->base + DAVINCI_MMCBLEN); host 549 drivers/mmc/host/davinci_mmc.c host->data_dir = DAVINCI_MMC_DATADIR_WRITE; host 551 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCFIFOCTL); host 553 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCFIFOCTL); host 555 drivers/mmc/host/davinci_mmc.c host->data_dir = DAVINCI_MMC_DATADIR_READ; host 557 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCFIFOCTL); host 559 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCFIFOCTL); host 562 drivers/mmc/host/davinci_mmc.c host->buffer = NULL; host 563 drivers/mmc/host/davinci_mmc.c host->bytes_left = data->blocks * data->blksz; host 573 drivers/mmc/host/davinci_mmc.c if (host->use_dma && (host->bytes_left & (rw_threshold - 1)) == 0 host 574 drivers/mmc/host/davinci_mmc.c && mmc_davinci_start_dma_transfer(host, data) == 0) { host 576 drivers/mmc/host/davinci_mmc.c host->bytes_left = 0; host 579 drivers/mmc/host/davinci_mmc.c host->sg_len = data->sg_len; host 580 drivers/mmc/host/davinci_mmc.c host->sg = host->data->sg; host 581 drivers/mmc/host/davinci_mmc.c mmc_davinci_sg_to_buf(host); host 587 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = mmc_priv(mmc); host 595 drivers/mmc/host/davinci_mmc.c mmcst1 = readl(host->base + DAVINCI_MMCST1); host 601 drivers/mmc/host/davinci_mmc.c dev_err(mmc_dev(host->mmc), "still BUSY? bad ... \n"); host 607 drivers/mmc/host/davinci_mmc.c host->do_dma = 0; host 608 drivers/mmc/host/davinci_mmc.c mmc_davinci_prepare_data(host, req); host 609 drivers/mmc/host/davinci_mmc.c mmc_davinci_start_command(host, req->cmd); host 612 drivers/mmc/host/davinci_mmc.c static unsigned int calculate_freq_for_card(struct mmc_davinci_host *host, host 617 drivers/mmc/host/davinci_mmc.c mmc_pclk = host->mmc_input_clk; host 631 drivers/mmc/host/davinci_mmc.c host->ns_in_one_cycle = (1000000) / (((mmc_pclk host 634 drivers/mmc/host/davinci_mmc.c host->ns_in_one_cycle = (1000000) / (((mmc_pclk host 644 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = mmc_priv(mmc); host 658 drivers/mmc/host/davinci_mmc.c temp = readl(host->base + DAVINCI_MMCCLK) & ~MMCCLK_CLKRT_MASK; host 660 drivers/mmc/host/davinci_mmc.c writel(temp, host->base + DAVINCI_MMCCLK); host 663 drivers/mmc/host/davinci_mmc.c host->ns_in_one_cycle = (1000000) / (MMCSD_INIT_CLOCK/1000); host 666 drivers/mmc/host/davinci_mmc.c mmc_push_pull_freq = calculate_freq_for_card(host, ios->clock); host 671 drivers/mmc/host/davinci_mmc.c temp = readl(host->base + DAVINCI_MMCCLK) & ~MMCCLK_CLKEN; host 672 drivers/mmc/host/davinci_mmc.c writel(temp, host->base + DAVINCI_MMCCLK); host 676 drivers/mmc/host/davinci_mmc.c temp = readl(host->base + DAVINCI_MMCCLK) & ~MMCCLK_CLKRT_MASK; host 678 drivers/mmc/host/davinci_mmc.c writel(temp, host->base + DAVINCI_MMCCLK); host 680 drivers/mmc/host/davinci_mmc.c writel(temp | MMCCLK_CLKEN, host->base + DAVINCI_MMCCLK); host 688 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = mmc_priv(mmc); host 692 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), host 710 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "Enabling 8 bit mode\n"); host 711 drivers/mmc/host/davinci_mmc.c writel((readl(host->base + DAVINCI_MMCCTL) & host 713 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCCTL); host 716 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "Enabling 4 bit mode\n"); host 717 drivers/mmc/host/davinci_mmc.c if (host->version == MMC_CTLR_VERSION_2) host 718 drivers/mmc/host/davinci_mmc.c writel((readl(host->base + DAVINCI_MMCCTL) & host 720 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCCTL); host 722 drivers/mmc/host/davinci_mmc.c writel(readl(host->base + DAVINCI_MMCCTL) | host 724 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCCTL); host 727 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "Enabling 1 bit mode\n"); host 728 drivers/mmc/host/davinci_mmc.c if (host->version == MMC_CTLR_VERSION_2) host 729 drivers/mmc/host/davinci_mmc.c writel(readl(host->base + DAVINCI_MMCCTL) & host 731 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCCTL); host 733 drivers/mmc/host/davinci_mmc.c writel(readl(host->base + DAVINCI_MMCCTL) & host 735 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_MMCCTL); host 741 drivers/mmc/host/davinci_mmc.c host->bus_mode = ios->bus_mode; host 747 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCARGHL); host 748 drivers/mmc/host/davinci_mmc.c writel(MMCCMD_INITCK, host->base + DAVINCI_MMCCMD); host 750 drivers/mmc/host/davinci_mmc.c u32 tmp = readl(host->base + DAVINCI_MMCST0); host 759 drivers/mmc/host/davinci_mmc.c dev_warn(mmc_dev(host->mmc), "powerup timeout\n"); host 766 drivers/mmc/host/davinci_mmc.c mmc_davinci_xfer_done(struct mmc_davinci_host *host, struct mmc_data *data) host 768 drivers/mmc/host/davinci_mmc.c host->data = NULL; host 770 drivers/mmc/host/davinci_mmc.c if (host->mmc->caps & MMC_CAP_SDIO_IRQ) { host 776 drivers/mmc/host/davinci_mmc.c if (host->sdio_int && !(readl(host->base + DAVINCI_SDIOST0) & host 778 drivers/mmc/host/davinci_mmc.c writel(SDIOIST_IOINT, host->base + DAVINCI_SDIOIST); host 779 drivers/mmc/host/davinci_mmc.c mmc_signal_sdio_irq(host->mmc); host 783 drivers/mmc/host/davinci_mmc.c if (host->do_dma) { host 784 drivers/mmc/host/davinci_mmc.c davinci_abort_dma(host); host 786 drivers/mmc/host/davinci_mmc.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 788 drivers/mmc/host/davinci_mmc.c host->do_dma = false; host 790 drivers/mmc/host/davinci_mmc.c host->data_dir = DAVINCI_MMC_DATADIR_NONE; host 792 drivers/mmc/host/davinci_mmc.c if (!data->stop || (host->cmd && host->cmd->error)) { host 793 drivers/mmc/host/davinci_mmc.c mmc_request_done(host->mmc, data->mrq); host 794 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCIM); host 795 drivers/mmc/host/davinci_mmc.c host->active_request = false; host 797 drivers/mmc/host/davinci_mmc.c mmc_davinci_start_command(host, data->stop); host 800 drivers/mmc/host/davinci_mmc.c static void mmc_davinci_cmd_done(struct mmc_davinci_host *host, host 803 drivers/mmc/host/davinci_mmc.c host->cmd = NULL; host 808 drivers/mmc/host/davinci_mmc.c cmd->resp[3] = readl(host->base + DAVINCI_MMCRSP01); host 809 drivers/mmc/host/davinci_mmc.c cmd->resp[2] = readl(host->base + DAVINCI_MMCRSP23); host 810 drivers/mmc/host/davinci_mmc.c cmd->resp[1] = readl(host->base + DAVINCI_MMCRSP45); host 811 drivers/mmc/host/davinci_mmc.c cmd->resp[0] = readl(host->base + DAVINCI_MMCRSP67); host 814 drivers/mmc/host/davinci_mmc.c cmd->resp[0] = readl(host->base + DAVINCI_MMCRSP67); host 818 drivers/mmc/host/davinci_mmc.c if (host->data == NULL || cmd->error) { host 821 drivers/mmc/host/davinci_mmc.c mmc_request_done(host->mmc, cmd->mrq); host 822 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCIM); host 823 drivers/mmc/host/davinci_mmc.c host->active_request = false; host 827 drivers/mmc/host/davinci_mmc.c static inline void mmc_davinci_reset_ctrl(struct mmc_davinci_host *host, host 832 drivers/mmc/host/davinci_mmc.c temp = readl(host->base + DAVINCI_MMCCTL); host 838 drivers/mmc/host/davinci_mmc.c writel(temp, host->base + DAVINCI_MMCCTL); host 843 drivers/mmc/host/davinci_mmc.c davinci_abort_data(struct mmc_davinci_host *host, struct mmc_data *data) host 845 drivers/mmc/host/davinci_mmc.c mmc_davinci_reset_ctrl(host, 1); host 846 drivers/mmc/host/davinci_mmc.c mmc_davinci_reset_ctrl(host, 0); host 851 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = dev_id; host 854 drivers/mmc/host/davinci_mmc.c status = readl(host->base + DAVINCI_SDIOIST); host 856 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), host 858 drivers/mmc/host/davinci_mmc.c writel(status | SDIOIST_IOINT, host->base + DAVINCI_SDIOIST); host 859 drivers/mmc/host/davinci_mmc.c mmc_signal_sdio_irq(host->mmc); host 866 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = (struct mmc_davinci_host *)dev_id; host 870 drivers/mmc/host/davinci_mmc.c struct mmc_data *data = host->data; host 872 drivers/mmc/host/davinci_mmc.c if (host->cmd == NULL && host->data == NULL) { host 873 drivers/mmc/host/davinci_mmc.c status = readl(host->base + DAVINCI_MMCST0); host 874 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), host 877 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCIM); host 881 drivers/mmc/host/davinci_mmc.c status = readl(host->base + DAVINCI_MMCST0); host 891 drivers/mmc/host/davinci_mmc.c if (host->bytes_left && (status & (MMCST0_DXRDY | MMCST0_DRRDY))) { host 901 drivers/mmc/host/davinci_mmc.c im_val = readl(host->base + DAVINCI_MMCIM); host 902 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCIM); host 905 drivers/mmc/host/davinci_mmc.c davinci_fifo_data_trans(host, rw_threshold); host 906 drivers/mmc/host/davinci_mmc.c status = readl(host->base + DAVINCI_MMCST0); host 908 drivers/mmc/host/davinci_mmc.c } while (host->bytes_left && host 917 drivers/mmc/host/davinci_mmc.c writel(im_val, host->base + DAVINCI_MMCIM); host 923 drivers/mmc/host/davinci_mmc.c if ((host->do_dma == 0) && (host->bytes_left > 0)) { host 927 drivers/mmc/host/davinci_mmc.c davinci_fifo_data_trans(host, host->bytes_left); host 932 drivers/mmc/host/davinci_mmc.c dev_err(mmc_dev(host->mmc), host 942 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), host 946 drivers/mmc/host/davinci_mmc.c davinci_abort_data(host, data); host 961 drivers/mmc/host/davinci_mmc.c u32 temp = readb(host->base + DAVINCI_MMCDRSP); host 966 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "data %s %s error\n", host 970 drivers/mmc/host/davinci_mmc.c davinci_abort_data(host, data); host 975 drivers/mmc/host/davinci_mmc.c if (host->cmd) { host 976 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), host 978 drivers/mmc/host/davinci_mmc.c host->cmd->opcode, qstatus); host 979 drivers/mmc/host/davinci_mmc.c host->cmd->error = -ETIMEDOUT; host 982 drivers/mmc/host/davinci_mmc.c davinci_abort_data(host, data); host 990 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "Command CRC error\n"); host 991 drivers/mmc/host/davinci_mmc.c if (host->cmd) { host 992 drivers/mmc/host/davinci_mmc.c host->cmd->error = -EILSEQ; host 999 drivers/mmc/host/davinci_mmc.c end_command = (int) host->cmd; host 1003 drivers/mmc/host/davinci_mmc.c mmc_davinci_cmd_done(host, host->cmd); host 1005 drivers/mmc/host/davinci_mmc.c mmc_davinci_xfer_done(host, data); host 1033 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = mmc_priv(mmc); host 1036 drivers/mmc/host/davinci_mmc.c if (!(readl(host->base + DAVINCI_SDIOST0) & SDIOST0_DAT1_HI)) { host 1037 drivers/mmc/host/davinci_mmc.c writel(SDIOIST_IOINT, host->base + DAVINCI_SDIOIST); host 1038 drivers/mmc/host/davinci_mmc.c mmc_signal_sdio_irq(host->mmc); host 1040 drivers/mmc/host/davinci_mmc.c host->sdio_int = true; host 1041 drivers/mmc/host/davinci_mmc.c writel(readl(host->base + DAVINCI_SDIOIEN) | host 1042 drivers/mmc/host/davinci_mmc.c SDIOIEN_IOINTEN, host->base + DAVINCI_SDIOIEN); host 1045 drivers/mmc/host/davinci_mmc.c host->sdio_int = false; host 1046 drivers/mmc/host/davinci_mmc.c writel(readl(host->base + DAVINCI_SDIOIEN) & ~SDIOIEN_IOINTEN, host 1047 drivers/mmc/host/davinci_mmc.c host->base + DAVINCI_SDIOIEN); host 1065 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host; host 1070 drivers/mmc/host/davinci_mmc.c host = container_of(nb, struct mmc_davinci_host, freq_transition); host 1071 drivers/mmc/host/davinci_mmc.c mmc = host->mmc; host 1072 drivers/mmc/host/davinci_mmc.c mmc_pclk = clk_get_rate(host->clk); host 1076 drivers/mmc/host/davinci_mmc.c host->mmc_input_clk = mmc_pclk; host 1084 drivers/mmc/host/davinci_mmc.c static inline int mmc_davinci_cpufreq_register(struct mmc_davinci_host *host) host 1086 drivers/mmc/host/davinci_mmc.c host->freq_transition.notifier_call = mmc_davinci_cpufreq_transition; host 1088 drivers/mmc/host/davinci_mmc.c return cpufreq_register_notifier(&host->freq_transition, host 1092 drivers/mmc/host/davinci_mmc.c static inline void mmc_davinci_cpufreq_deregister(struct mmc_davinci_host *host) host 1094 drivers/mmc/host/davinci_mmc.c cpufreq_unregister_notifier(&host->freq_transition, host 1098 drivers/mmc/host/davinci_mmc.c static inline int mmc_davinci_cpufreq_register(struct mmc_davinci_host *host) host 1103 drivers/mmc/host/davinci_mmc.c static inline void mmc_davinci_cpufreq_deregister(struct mmc_davinci_host *host) host 1107 drivers/mmc/host/davinci_mmc.c static void init_mmcsd_host(struct mmc_davinci_host *host) host 1110 drivers/mmc/host/davinci_mmc.c mmc_davinci_reset_ctrl(host, 1); host 1112 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCCLK); host 1113 drivers/mmc/host/davinci_mmc.c writel(MMCCLK_CLKEN, host->base + DAVINCI_MMCCLK); host 1115 drivers/mmc/host/davinci_mmc.c writel(0x1FFF, host->base + DAVINCI_MMCTOR); host 1116 drivers/mmc/host/davinci_mmc.c writel(0xFFFF, host->base + DAVINCI_MMCTOD); host 1118 drivers/mmc/host/davinci_mmc.c mmc_davinci_reset_ctrl(host, 0); host 1150 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host; host 1156 drivers/mmc/host/davinci_mmc.c host = mmc_priv(mmc); host 1157 drivers/mmc/host/davinci_mmc.c if (!host) host 1161 drivers/mmc/host/davinci_mmc.c host->nr_sg = pdata->nr_sg - 1; host 1193 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = NULL; host 1217 drivers/mmc/host/davinci_mmc.c host = mmc_priv(mmc); host 1218 drivers/mmc/host/davinci_mmc.c host->mmc = mmc; /* Important */ host 1220 drivers/mmc/host/davinci_mmc.c host->mem_res = mem; host 1221 drivers/mmc/host/davinci_mmc.c host->base = devm_ioremap(&pdev->dev, mem->start, mem_size); host 1222 drivers/mmc/host/davinci_mmc.c if (!host->base) { host 1227 drivers/mmc/host/davinci_mmc.c host->clk = devm_clk_get(&pdev->dev, NULL); host 1228 drivers/mmc/host/davinci_mmc.c if (IS_ERR(host->clk)) { host 1229 drivers/mmc/host/davinci_mmc.c ret = PTR_ERR(host->clk); host 1232 drivers/mmc/host/davinci_mmc.c ret = clk_prepare_enable(host->clk); host 1236 drivers/mmc/host/davinci_mmc.c host->mmc_input_clk = clk_get_rate(host->clk); host 1256 drivers/mmc/host/davinci_mmc.c if (host->nr_sg > MAX_NR_SG || !host->nr_sg) host 1257 drivers/mmc/host/davinci_mmc.c host->nr_sg = MAX_NR_SG; host 1259 drivers/mmc/host/davinci_mmc.c init_mmcsd_host(host); host 1261 drivers/mmc/host/davinci_mmc.c host->use_dma = use_dma; host 1262 drivers/mmc/host/davinci_mmc.c host->mmc_irq = irq; host 1263 drivers/mmc/host/davinci_mmc.c host->sdio_irq = platform_get_irq(pdev, 1); host 1265 drivers/mmc/host/davinci_mmc.c if (host->use_dma) { host 1266 drivers/mmc/host/davinci_mmc.c ret = davinci_acquire_dma_channels(host); host 1270 drivers/mmc/host/davinci_mmc.c host->use_dma = 0; host 1277 drivers/mmc/host/davinci_mmc.c host->version = id_entry->driver_data; host 1296 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "max_segs=%d\n", mmc->max_segs); host 1297 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "max_blk_size=%d\n", mmc->max_blk_size); host 1298 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "max_req_size=%d\n", mmc->max_req_size); host 1299 drivers/mmc/host/davinci_mmc.c dev_dbg(mmc_dev(host->mmc), "max_seg_size=%d\n", mmc->max_seg_size); host 1301 drivers/mmc/host/davinci_mmc.c platform_set_drvdata(pdev, host); host 1303 drivers/mmc/host/davinci_mmc.c ret = mmc_davinci_cpufreq_register(host); host 1314 drivers/mmc/host/davinci_mmc.c mmc_hostname(mmc), host); host 1318 drivers/mmc/host/davinci_mmc.c if (host->sdio_irq >= 0) { host 1319 drivers/mmc/host/davinci_mmc.c ret = devm_request_irq(&pdev->dev, host->sdio_irq, host 1321 drivers/mmc/host/davinci_mmc.c mmc_hostname(mmc), host); host 1328 drivers/mmc/host/davinci_mmc.c dev_info(mmc_dev(host->mmc), "Using %s, %d-bit mode\n", host 1329 drivers/mmc/host/davinci_mmc.c host->use_dma ? "DMA" : "PIO", host 1337 drivers/mmc/host/davinci_mmc.c mmc_davinci_cpufreq_deregister(host); host 1339 drivers/mmc/host/davinci_mmc.c davinci_release_dma_channels(host); host 1342 drivers/mmc/host/davinci_mmc.c clk_disable_unprepare(host->clk); host 1353 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = platform_get_drvdata(pdev); host 1355 drivers/mmc/host/davinci_mmc.c mmc_remove_host(host->mmc); host 1356 drivers/mmc/host/davinci_mmc.c mmc_davinci_cpufreq_deregister(host); host 1357 drivers/mmc/host/davinci_mmc.c davinci_release_dma_channels(host); host 1358 drivers/mmc/host/davinci_mmc.c clk_disable_unprepare(host->clk); host 1359 drivers/mmc/host/davinci_mmc.c mmc_free_host(host->mmc); host 1367 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = dev_get_drvdata(dev); host 1369 drivers/mmc/host/davinci_mmc.c writel(0, host->base + DAVINCI_MMCIM); host 1370 drivers/mmc/host/davinci_mmc.c mmc_davinci_reset_ctrl(host, 1); host 1371 drivers/mmc/host/davinci_mmc.c clk_disable(host->clk); host 1378 drivers/mmc/host/davinci_mmc.c struct mmc_davinci_host *host = dev_get_drvdata(dev); host 1380 drivers/mmc/host/davinci_mmc.c clk_enable(host->clk); host 1381 drivers/mmc/host/davinci_mmc.c mmc_davinci_reset_ctrl(host, 0); host 23 drivers/mmc/host/dw_mmc-bluefield.c static void dw_mci_bluefield_set_ios(struct dw_mci *host, struct mmc_ios *ios) host 28 drivers/mmc/host/dw_mmc-bluefield.c reg = mci_readl(host, UHS_REG_EXT); host 34 drivers/mmc/host/dw_mmc-bluefield.c mci_writel(host, UHS_REG_EXT, reg); host 75 drivers/mmc/host/dw_mmc-exynos.c static inline u8 dw_mci_exynos_get_ciu_div(struct dw_mci *host) host 77 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 85 drivers/mmc/host/dw_mmc-exynos.c return SDMMC_CLKSEL_GET_DIV(mci_readl(host, CLKSEL64)) + 1; host 87 drivers/mmc/host/dw_mmc-exynos.c return SDMMC_CLKSEL_GET_DIV(mci_readl(host, CLKSEL)) + 1; host 90 drivers/mmc/host/dw_mmc-exynos.c static void dw_mci_exynos_config_smu(struct dw_mci *host) host 92 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 100 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, MPSBEGIN0, 0); host 101 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, MPSEND0, SDMMC_ENDING_SEC_NR_MAX); host 102 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, MPSCTRL0, SDMMC_MPSCTRL_SECURE_WRITE_BIT | host 109 drivers/mmc/host/dw_mmc-exynos.c static int dw_mci_exynos_priv_init(struct dw_mci *host) host 111 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 113 drivers/mmc/host/dw_mmc-exynos.c dw_mci_exynos_config_smu(host); host 116 drivers/mmc/host/dw_mmc-exynos.c priv->saved_strobe_ctrl = mci_readl(host, HS400_DLINE_CTRL); host 117 drivers/mmc/host/dw_mmc-exynos.c priv->saved_dqs_en = mci_readl(host, HS400_DQS_EN); host 119 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, HS400_DQS_EN, priv->saved_dqs_en); host 125 drivers/mmc/host/dw_mmc-exynos.c host->bus_hz /= (priv->ciu_div + 1); host 130 drivers/mmc/host/dw_mmc-exynos.c static void dw_mci_exynos_set_clksel_timing(struct dw_mci *host, u32 timing) host 132 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 137 drivers/mmc/host/dw_mmc-exynos.c clksel = mci_readl(host, CLKSEL64); host 139 drivers/mmc/host/dw_mmc-exynos.c clksel = mci_readl(host, CLKSEL); host 145 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, CLKSEL64, clksel); host 147 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, CLKSEL, clksel); host 156 drivers/mmc/host/dw_mmc-exynos.c if (!SDMMC_CLKSEL_GET_DRV_WD3(clksel) && host->slot) host 157 drivers/mmc/host/dw_mmc-exynos.c set_bit(DW_MMC_CARD_NO_USE_HOLD, &host->slot->flags); host 163 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci *host = dev_get_drvdata(dev); host 170 drivers/mmc/host/dw_mmc-exynos.c dw_mci_exynos_config_smu(host); host 201 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci *host = dev_get_drvdata(dev); host 202 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 212 drivers/mmc/host/dw_mmc-exynos.c clksel = mci_readl(host, CLKSEL64); host 214 drivers/mmc/host/dw_mmc-exynos.c clksel = mci_readl(host, CLKSEL); host 219 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, CLKSEL64, clksel); host 221 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, CLKSEL, clksel); host 230 drivers/mmc/host/dw_mmc-exynos.c static void dw_mci_exynos_config_hs400(struct dw_mci *host, u32 timing) host 232 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 241 drivers/mmc/host/dw_mmc-exynos.c dev_warn(host->dev, host 258 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, HS400_DQS_EN, dqs); host 259 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, HS400_DLINE_CTRL, strobe); host 262 drivers/mmc/host/dw_mmc-exynos.c static void dw_mci_exynos_adjust_clock(struct dw_mci *host, unsigned int wanted) host 264 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 272 drivers/mmc/host/dw_mmc-exynos.c if (!wanted || IS_ERR(host->ciu_clk)) host 282 drivers/mmc/host/dw_mmc-exynos.c div = dw_mci_exynos_get_ciu_div(host); host 283 drivers/mmc/host/dw_mmc-exynos.c ret = clk_set_rate(host->ciu_clk, wanted * div); host 285 drivers/mmc/host/dw_mmc-exynos.c dev_warn(host->dev, host 288 drivers/mmc/host/dw_mmc-exynos.c actual = clk_get_rate(host->ciu_clk); host 289 drivers/mmc/host/dw_mmc-exynos.c host->bus_hz = actual / div; host 291 drivers/mmc/host/dw_mmc-exynos.c host->current_speed = 0; host 294 drivers/mmc/host/dw_mmc-exynos.c static void dw_mci_exynos_set_ios(struct dw_mci *host, struct mmc_ios *ios) host 296 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 327 drivers/mmc/host/dw_mmc-exynos.c dw_mci_exynos_set_clksel_timing(host, clksel); host 330 drivers/mmc/host/dw_mmc-exynos.c dw_mci_exynos_config_hs400(host, timing); host 333 drivers/mmc/host/dw_mmc-exynos.c dw_mci_exynos_adjust_clock(host, wanted); host 336 drivers/mmc/host/dw_mmc-exynos.c static int dw_mci_exynos_parse_dt(struct dw_mci *host) host 339 drivers/mmc/host/dw_mmc-exynos.c struct device_node *np = host->dev->of_node; host 345 drivers/mmc/host/dw_mmc-exynos.c priv = devm_kzalloc(host->dev, sizeof(*priv), GFP_KERNEL); host 381 drivers/mmc/host/dw_mmc-exynos.c dev_dbg(host->dev, host 386 drivers/mmc/host/dw_mmc-exynos.c host->priv = priv; host 390 drivers/mmc/host/dw_mmc-exynos.c static inline u8 dw_mci_exynos_get_clksmpl(struct dw_mci *host) host 392 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 396 drivers/mmc/host/dw_mmc-exynos.c return SDMMC_CLKSEL_CCLK_SAMPLE(mci_readl(host, CLKSEL64)); host 398 drivers/mmc/host/dw_mmc-exynos.c return SDMMC_CLKSEL_CCLK_SAMPLE(mci_readl(host, CLKSEL)); host 401 drivers/mmc/host/dw_mmc-exynos.c static inline void dw_mci_exynos_set_clksmpl(struct dw_mci *host, u8 sample) host 404 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 408 drivers/mmc/host/dw_mmc-exynos.c clksel = mci_readl(host, CLKSEL64); host 410 drivers/mmc/host/dw_mmc-exynos.c clksel = mci_readl(host, CLKSEL); host 414 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, CLKSEL64, clksel); host 416 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, CLKSEL, clksel); host 419 drivers/mmc/host/dw_mmc-exynos.c static inline u8 dw_mci_exynos_move_next_clksmpl(struct dw_mci *host) host 421 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 427 drivers/mmc/host/dw_mmc-exynos.c clksel = mci_readl(host, CLKSEL64); host 429 drivers/mmc/host/dw_mmc-exynos.c clksel = mci_readl(host, CLKSEL); host 436 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, CLKSEL64, clksel); host 438 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, CLKSEL, clksel); host 471 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci *host = slot->host; host 472 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 478 drivers/mmc/host/dw_mmc-exynos.c start_smpl = dw_mci_exynos_get_clksmpl(host); host 481 drivers/mmc/host/dw_mmc-exynos.c mci_writel(host, TMOUT, ~0); host 482 drivers/mmc/host/dw_mmc-exynos.c smpl = dw_mci_exynos_move_next_clksmpl(host); host 491 drivers/mmc/host/dw_mmc-exynos.c dw_mci_exynos_set_clksmpl(host, found); host 500 drivers/mmc/host/dw_mmc-exynos.c static int dw_mci_exynos_prepare_hs400_tuning(struct dw_mci *host, host 503 drivers/mmc/host/dw_mmc-exynos.c struct dw_mci_exynos_priv_data *priv = host->priv; host 505 drivers/mmc/host/dw_mmc-exynos.c dw_mci_exynos_set_clksel_timing(host, priv->hs400_timing); host 506 drivers/mmc/host/dw_mmc-exynos.c dw_mci_exynos_adjust_clock(host, (ios->clock) << 1); host 32 drivers/mmc/host/dw_mmc-hi3798cv200.c static void dw_mci_hi3798cv200_set_ios(struct dw_mci *host, struct mmc_ios *ios) host 34 drivers/mmc/host/dw_mmc-hi3798cv200.c struct hi3798cv200_priv *priv = host->priv; host 37 drivers/mmc/host/dw_mmc-hi3798cv200.c val = mci_readl(host, UHS_REG); host 43 drivers/mmc/host/dw_mmc-hi3798cv200.c mci_writel(host, UHS_REG, val); host 45 drivers/mmc/host/dw_mmc-hi3798cv200.c val = mci_readl(host, ENABLE_SHIFT); host 50 drivers/mmc/host/dw_mmc-hi3798cv200.c mci_writel(host, ENABLE_SHIFT, val); host 52 drivers/mmc/host/dw_mmc-hi3798cv200.c val = mci_readl(host, DDR_REG); host 57 drivers/mmc/host/dw_mmc-hi3798cv200.c mci_writel(host, DDR_REG, val); host 70 drivers/mmc/host/dw_mmc-hi3798cv200.c struct dw_mci *host = slot->host; host 71 drivers/mmc/host/dw_mmc-hi3798cv200.c struct hi3798cv200_priv *priv = host->priv; host 79 drivers/mmc/host/dw_mmc-hi3798cv200.c mci_writel(host, RINTSTS, ALL_INT_CLR); host 116 drivers/mmc/host/dw_mmc-hi3798cv200.c dev_dbg(host->dev, "Tuning clk_sample[%d, %d], set[%d]\n", host 119 drivers/mmc/host/dw_mmc-hi3798cv200.c dev_err(host->dev, "No valid clk_sample shift! use default\n"); host 123 drivers/mmc/host/dw_mmc-hi3798cv200.c mci_writel(host, RINTSTS, ALL_INT_CLR); host 127 drivers/mmc/host/dw_mmc-hi3798cv200.c static int dw_mci_hi3798cv200_init(struct dw_mci *host) host 132 drivers/mmc/host/dw_mmc-hi3798cv200.c priv = devm_kzalloc(host->dev, sizeof(*priv), GFP_KERNEL); host 136 drivers/mmc/host/dw_mmc-hi3798cv200.c priv->sample_clk = devm_clk_get(host->dev, "ciu-sample"); host 138 drivers/mmc/host/dw_mmc-hi3798cv200.c dev_err(host->dev, "failed to get ciu-sample clock\n"); host 142 drivers/mmc/host/dw_mmc-hi3798cv200.c priv->drive_clk = devm_clk_get(host->dev, "ciu-drive"); host 144 drivers/mmc/host/dw_mmc-hi3798cv200.c dev_err(host->dev, "failed to get ciu-drive clock\n"); host 150 drivers/mmc/host/dw_mmc-hi3798cv200.c dev_err(host->dev, "failed to enable ciu-sample clock\n"); host 156 drivers/mmc/host/dw_mmc-hi3798cv200.c dev_err(host->dev, "failed to enable ciu-drive clock\n"); host 160 drivers/mmc/host/dw_mmc-hi3798cv200.c host->priv = priv; host 183 drivers/mmc/host/dw_mmc-hi3798cv200.c struct dw_mci *host = platform_get_drvdata(pdev); host 184 drivers/mmc/host/dw_mmc-hi3798cv200.c struct hi3798cv200_priv *priv = host->priv; host 102 drivers/mmc/host/dw_mmc-k3.c static void dw_mci_k3_set_ios(struct dw_mci *host, struct mmc_ios *ios) host 106 drivers/mmc/host/dw_mmc-k3.c ret = clk_set_rate(host->ciu_clk, ios->clock); host 108 drivers/mmc/host/dw_mmc-k3.c dev_warn(host->dev, "failed to set rate %uHz\n", ios->clock); host 110 drivers/mmc/host/dw_mmc-k3.c host->bus_hz = clk_get_rate(host->ciu_clk); host 117 drivers/mmc/host/dw_mmc-k3.c static int dw_mci_hi6220_parse_dt(struct dw_mci *host) host 121 drivers/mmc/host/dw_mmc-k3.c priv = devm_kzalloc(host->dev, sizeof(*priv), GFP_KERNEL); host 125 drivers/mmc/host/dw_mmc-k3.c priv->reg = syscon_regmap_lookup_by_phandle(host->dev->of_node, host 130 drivers/mmc/host/dw_mmc-k3.c priv->ctrl_id = of_alias_get_id(host->dev->of_node, "mshc"); host 137 drivers/mmc/host/dw_mmc-k3.c host->priv = priv; host 145 drivers/mmc/host/dw_mmc-k3.c struct dw_mci *host; host 149 drivers/mmc/host/dw_mmc-k3.c host = slot->host; host 150 drivers/mmc/host/dw_mmc-k3.c priv = host->priv; host 166 drivers/mmc/host/dw_mmc-k3.c dev_dbg(host->dev, "voltage not supported\n"); host 171 drivers/mmc/host/dw_mmc-k3.c dev_dbg(host->dev, "switch voltage failed\n"); host 180 drivers/mmc/host/dw_mmc-k3.c dev_dbg(host->dev, "Regulator set error %d: %d - %d\n", host 188 drivers/mmc/host/dw_mmc-k3.c static void dw_mci_hi6220_set_ios(struct dw_mci *host, struct mmc_ios *ios) host 195 drivers/mmc/host/dw_mmc-k3.c ret = clk_set_rate(host->biu_clk, clock); host 197 drivers/mmc/host/dw_mmc-k3.c dev_warn(host->dev, "failed to set rate %uHz\n", clock); host 199 drivers/mmc/host/dw_mmc-k3.c host->bus_hz = clk_get_rate(host->biu_clk); host 216 drivers/mmc/host/dw_mmc-k3.c static void dw_mci_hs_set_timing(struct dw_mci *host, int timing, host 227 drivers/mmc/host/dw_mmc-k3.c priv = host->priv; host 249 drivers/mmc/host/dw_mmc-k3.c mci_writel(host, GPIO, 0x0); host 255 drivers/mmc/host/dw_mmc-k3.c mci_writel(host, UHS_REG_EXT, reg_value); host 257 drivers/mmc/host/dw_mmc-k3.c mci_writel(host, ENABLE_SHIFT, enable_shift); host 261 drivers/mmc/host/dw_mmc-k3.c mci_writel(host, GPIO, (unsigned int)reg_value | GPIO_CLK_ENABLE); host 267 drivers/mmc/host/dw_mmc-k3.c static int dw_mci_hi3660_init(struct dw_mci *host) host 269 drivers/mmc/host/dw_mmc-k3.c mci_writel(host, CDTHRCTL, SDMMC_SET_THLD(SDCARD_RD_THRESHOLD, host 272 drivers/mmc/host/dw_mmc-k3.c dw_mci_hs_set_timing(host, MMC_TIMING_LEGACY, -1); host 273 drivers/mmc/host/dw_mmc-k3.c host->bus_hz /= (GENCLK_DIV + 1); host 278 drivers/mmc/host/dw_mmc-k3.c static int dw_mci_set_sel18(struct dw_mci *host, bool set) host 284 drivers/mmc/host/dw_mmc-k3.c priv = host->priv; host 290 drivers/mmc/host/dw_mmc-k3.c dev_err(host->dev, "sel18 %u error\n", val); host 297 drivers/mmc/host/dw_mmc-k3.c static void dw_mci_hi3660_set_ios(struct dw_mci *host, struct mmc_ios *ios) host 302 drivers/mmc/host/dw_mmc-k3.c struct k3_priv *priv = host->priv; host 308 drivers/mmc/host/dw_mmc-k3.c ret = clk_set_rate(host->ciu_clk, wanted); host 310 drivers/mmc/host/dw_mmc-k3.c dev_err(host->dev, "failed to set rate %luHz\n", wanted); host 313 drivers/mmc/host/dw_mmc-k3.c actual = clk_get_rate(host->ciu_clk); host 315 drivers/mmc/host/dw_mmc-k3.c dw_mci_hs_set_timing(host, ios->timing, -1); host 316 drivers/mmc/host/dw_mmc-k3.c host->bus_hz = actual / (GENCLK_DIV + 1); host 317 drivers/mmc/host/dw_mmc-k3.c host->current_speed = 0; host 318 drivers/mmc/host/dw_mmc-k3.c priv->cur_speed = host->bus_hz; host 370 drivers/mmc/host/dw_mmc-k3.c struct dw_mci *host = slot->host; host 379 drivers/mmc/host/dw_mmc-k3.c mci_writel(host, TMOUT, ~0); host 380 drivers/mmc/host/dw_mmc-k3.c dw_mci_hs_set_timing(host, mmc->ios.timing, smpl_phase); host 390 drivers/mmc/host/dw_mmc-k3.c dev_err(host->dev, "All phases bad!\n"); host 394 drivers/mmc/host/dw_mmc-k3.c dw_mci_hs_set_timing(host, mmc->ios.timing, best_clksmpl); host 396 drivers/mmc/host/dw_mmc-k3.c dev_info(host->dev, "tuning ok best_clksmpl %u tuning_sample_flag %x\n", host 407 drivers/mmc/host/dw_mmc-k3.c struct dw_mci *host; host 409 drivers/mmc/host/dw_mmc-k3.c host = slot->host; host 410 drivers/mmc/host/dw_mmc-k3.c priv = host->priv; host 419 drivers/mmc/host/dw_mmc-k3.c ret = dw_mci_set_sel18(host, 0); host 421 drivers/mmc/host/dw_mmc-k3.c ret = dw_mci_set_sel18(host, 1); host 428 drivers/mmc/host/dw_mmc-k3.c dev_err(host->dev, "Regulator set error %d\n", ret); host 37 drivers/mmc/host/dw_mmc-pci.c struct dw_mci *host; host 44 drivers/mmc/host/dw_mmc-pci.c host = devm_kzalloc(&pdev->dev, sizeof(struct dw_mci), GFP_KERNEL); host 45 drivers/mmc/host/dw_mmc-pci.c if (!host) host 48 drivers/mmc/host/dw_mmc-pci.c host->irq = pdev->irq; host 49 drivers/mmc/host/dw_mmc-pci.c host->irq_flags = IRQF_SHARED; host 50 drivers/mmc/host/dw_mmc-pci.c host->dev = &pdev->dev; host 51 drivers/mmc/host/dw_mmc-pci.c host->pdata = &pci_board_data; host 57 drivers/mmc/host/dw_mmc-pci.c host->regs = pcim_iomap_table(pdev)[PCI_BAR_NO]; host 61 drivers/mmc/host/dw_mmc-pci.c ret = dw_mci_probe(host); host 65 drivers/mmc/host/dw_mmc-pci.c pci_set_drvdata(pdev, host); host 72 drivers/mmc/host/dw_mmc-pci.c struct dw_mci *host = pci_get_drvdata(pdev); host 74 drivers/mmc/host/dw_mmc-pci.c dw_mci_remove(host); host 28 drivers/mmc/host/dw_mmc-pltfm.c struct dw_mci *host; host 31 drivers/mmc/host/dw_mmc-pltfm.c host = devm_kzalloc(&pdev->dev, sizeof(struct dw_mci), GFP_KERNEL); host 32 drivers/mmc/host/dw_mmc-pltfm.c if (!host) host 35 drivers/mmc/host/dw_mmc-pltfm.c host->irq = platform_get_irq(pdev, 0); host 36 drivers/mmc/host/dw_mmc-pltfm.c if (host->irq < 0) host 37 drivers/mmc/host/dw_mmc-pltfm.c return host->irq; host 39 drivers/mmc/host/dw_mmc-pltfm.c host->drv_data = drv_data; host 40 drivers/mmc/host/dw_mmc-pltfm.c host->dev = &pdev->dev; host 41 drivers/mmc/host/dw_mmc-pltfm.c host->irq_flags = 0; host 42 drivers/mmc/host/dw_mmc-pltfm.c host->pdata = pdev->dev.platform_data; host 45 drivers/mmc/host/dw_mmc-pltfm.c host->regs = devm_ioremap_resource(&pdev->dev, regs); host 46 drivers/mmc/host/dw_mmc-pltfm.c if (IS_ERR(host->regs)) host 47 drivers/mmc/host/dw_mmc-pltfm.c return PTR_ERR(host->regs); host 50 drivers/mmc/host/dw_mmc-pltfm.c host->phy_regs = regs->start; host 52 drivers/mmc/host/dw_mmc-pltfm.c platform_set_drvdata(pdev, host); host 53 drivers/mmc/host/dw_mmc-pltfm.c return dw_mci_probe(host); host 89 drivers/mmc/host/dw_mmc-pltfm.c struct dw_mci *host = platform_get_drvdata(pdev); host 91 drivers/mmc/host/dw_mmc-pltfm.c dw_mci_remove(host); host 27 drivers/mmc/host/dw_mmc-rockchip.c static void dw_mci_rk3288_set_ios(struct dw_mci *host, struct mmc_ios *ios) host 29 drivers/mmc/host/dw_mmc-rockchip.c struct dw_mci_rockchip_priv_data *priv = host->priv; host 52 drivers/mmc/host/dw_mmc-rockchip.c ret = clk_set_rate(host->ciu_clk, cclkin); host 54 drivers/mmc/host/dw_mmc-rockchip.c dev_warn(host->dev, "failed to set rate %uHz\n", ios->clock); host 56 drivers/mmc/host/dw_mmc-rockchip.c bus_hz = clk_get_rate(host->ciu_clk) / RK3288_CLKGEN_DIV; host 57 drivers/mmc/host/dw_mmc-rockchip.c if (bus_hz != host->bus_hz) { host 58 drivers/mmc/host/dw_mmc-rockchip.c host->bus_hz = bus_hz; host 60 drivers/mmc/host/dw_mmc-rockchip.c host->current_speed = 0; host 137 drivers/mmc/host/dw_mmc-rockchip.c struct dw_mci *host = slot->host; host 138 drivers/mmc/host/dw_mmc-rockchip.c struct dw_mci_rockchip_priv_data *priv = host->priv; host 154 drivers/mmc/host/dw_mmc-rockchip.c dev_err(host->dev, "Tuning clock (sample_clk) not defined.\n"); host 200 drivers/mmc/host/dw_mmc-rockchip.c dev_warn(host->dev, "All phases bad!"); host 213 drivers/mmc/host/dw_mmc-rockchip.c dev_info(host->dev, "All phases work, using default phase %d.", host 230 drivers/mmc/host/dw_mmc-rockchip.c dev_dbg(host->dev, "Good phase range %d-%d (%d len)\n", host 239 drivers/mmc/host/dw_mmc-rockchip.c dev_dbg(host->dev, "Best phase range %d-%d (%d len)\n", host 249 drivers/mmc/host/dw_mmc-rockchip.c dev_info(host->dev, "Successfully tuned phase to %d\n", host 261 drivers/mmc/host/dw_mmc-rockchip.c static int dw_mci_rk3288_parse_dt(struct dw_mci *host) host 263 drivers/mmc/host/dw_mmc-rockchip.c struct device_node *np = host->dev->of_node; host 266 drivers/mmc/host/dw_mmc-rockchip.c priv = devm_kzalloc(host->dev, sizeof(*priv), GFP_KERNEL); host 278 drivers/mmc/host/dw_mmc-rockchip.c priv->drv_clk = devm_clk_get(host->dev, "ciu-drive"); host 280 drivers/mmc/host/dw_mmc-rockchip.c dev_dbg(host->dev, "ciu-drive not available\n"); host 282 drivers/mmc/host/dw_mmc-rockchip.c priv->sample_clk = devm_clk_get(host->dev, "ciu-sample"); host 284 drivers/mmc/host/dw_mmc-rockchip.c dev_dbg(host->dev, "ciu-sample not available\n"); host 286 drivers/mmc/host/dw_mmc-rockchip.c host->priv = priv; host 291 drivers/mmc/host/dw_mmc-rockchip.c static int dw_mci_rockchip_init(struct dw_mci *host) host 294 drivers/mmc/host/dw_mmc-rockchip.c host->sdio_id0 = 8; host 296 drivers/mmc/host/dw_mmc-rockchip.c if (of_device_is_compatible(host->dev->of_node, host 298 drivers/mmc/host/dw_mmc-rockchip.c host->bus_hz /= RK3288_CLKGEN_DIV; host 33 drivers/mmc/host/dw_mmc-zx.c static int dw_mci_zx_emmc_set_delay(struct dw_mci *host, unsigned int delay, host 36 drivers/mmc/host/dw_mmc-zx.c struct dw_mci_zx_priv_data *priv = host->priv; host 81 drivers/mmc/host/dw_mmc-zx.c dev_err(host->dev, "Error: %s dll lock fail\n", __func__); host 90 drivers/mmc/host/dw_mmc-zx.c struct dw_mci *host = slot->host; host 95 drivers/mmc/host/dw_mmc-zx.c ret = dw_mci_zx_emmc_set_delay(host, delay, DELAY_TYPE_CLK); host 123 drivers/mmc/host/dw_mmc-zx.c dev_info(host->dev, "%s best range: start %d end %d\n", __func__, host 125 drivers/mmc/host/dw_mmc-zx.c return dw_mci_zx_emmc_set_delay(host, best, DELAY_TYPE_CLK); host 128 drivers/mmc/host/dw_mmc-zx.c static int dw_mci_zx_prepare_hs400_tuning(struct dw_mci *host, host 134 drivers/mmc/host/dw_mmc-zx.c ret = dw_mci_zx_emmc_set_delay(host, 32, DELAY_TYPE_READ); host 143 drivers/mmc/host/dw_mmc-zx.c struct dw_mci *host = slot->host; host 145 drivers/mmc/host/dw_mmc-zx.c if (host->verid == 0x290a) /* only for emmc */ host 152 drivers/mmc/host/dw_mmc-zx.c static int dw_mci_zx_parse_dt(struct dw_mci *host) host 154 drivers/mmc/host/dw_mmc-zx.c struct device_node *np = host->dev->of_node; host 169 drivers/mmc/host/dw_mmc-zx.c dev_err(host->dev, "Can't get syscon: %d\n", host 177 drivers/mmc/host/dw_mmc-zx.c priv = devm_kzalloc(host->dev, sizeof(*priv), GFP_KERNEL); host 181 drivers/mmc/host/dw_mmc-zx.c host->priv = priv; host 116 drivers/mmc/host/dw_mmc.c spin_lock_bh(&slot->host->lock); host 142 drivers/mmc/host/dw_mmc.c spin_unlock_bh(&slot->host->lock); host 150 drivers/mmc/host/dw_mmc.c struct dw_mci *host = s->private; host 152 drivers/mmc/host/dw_mmc.c pm_runtime_get_sync(host->dev); host 154 drivers/mmc/host/dw_mmc.c seq_printf(s, "STATUS:\t0x%08x\n", mci_readl(host, STATUS)); host 155 drivers/mmc/host/dw_mmc.c seq_printf(s, "RINTSTS:\t0x%08x\n", mci_readl(host, RINTSTS)); host 156 drivers/mmc/host/dw_mmc.c seq_printf(s, "CMD:\t0x%08x\n", mci_readl(host, CMD)); host 157 drivers/mmc/host/dw_mmc.c seq_printf(s, "CTRL:\t0x%08x\n", mci_readl(host, CTRL)); host 158 drivers/mmc/host/dw_mmc.c seq_printf(s, "INTMASK:\t0x%08x\n", mci_readl(host, INTMASK)); host 159 drivers/mmc/host/dw_mmc.c seq_printf(s, "CLKENA:\t0x%08x\n", mci_readl(host, CLKENA)); host 161 drivers/mmc/host/dw_mmc.c pm_runtime_put_autosuspend(host->dev); host 170 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 177 drivers/mmc/host/dw_mmc.c debugfs_create_file("regs", S_IRUSR, root, host, &dw_mci_regs_fops); host 179 drivers/mmc/host/dw_mmc.c debugfs_create_u32("state", S_IRUSR, root, (u32 *)&host->state); host 181 drivers/mmc/host/dw_mmc.c (u32 *)&host->pending_events); host 183 drivers/mmc/host/dw_mmc.c (u32 *)&host->completed_events); host 187 drivers/mmc/host/dw_mmc.c static bool dw_mci_ctrl_reset(struct dw_mci *host, u32 reset) host 191 drivers/mmc/host/dw_mmc.c ctrl = mci_readl(host, CTRL); host 193 drivers/mmc/host/dw_mmc.c mci_writel(host, CTRL, ctrl); host 196 drivers/mmc/host/dw_mmc.c if (readl_poll_timeout_atomic(host->regs + SDMMC_CTRL, ctrl, host 199 drivers/mmc/host/dw_mmc.c dev_err(host->dev, host 208 drivers/mmc/host/dw_mmc.c static void dw_mci_wait_while_busy(struct dw_mci *host, u32 cmd_flags) host 222 drivers/mmc/host/dw_mmc.c if (readl_poll_timeout_atomic(host->regs + SDMMC_STATUS, host 226 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "Busy; trying anyway\n"); host 232 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 235 drivers/mmc/host/dw_mmc.c mci_writel(host, CMDARG, arg); host 237 drivers/mmc/host/dw_mmc.c dw_mci_wait_while_busy(host, cmd); host 238 drivers/mmc/host/dw_mmc.c mci_writel(host, CMD, SDMMC_CMD_START | cmd); host 240 drivers/mmc/host/dw_mmc.c if (readl_poll_timeout_atomic(host->regs + SDMMC_CMD, cmd_status, host 251 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 273 drivers/mmc/host/dw_mmc.c WARN_ON(slot->host->state != STATE_SENDING_CMD); host 274 drivers/mmc/host/dw_mmc.c slot->host->state = STATE_SENDING_CMD11; host 287 drivers/mmc/host/dw_mmc.c clk_en_a = mci_readl(host, CLKENA); host 289 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKENA, clk_en_a); host 316 drivers/mmc/host/dw_mmc.c static u32 dw_mci_prep_stop_abort(struct dw_mci *host, struct mmc_command *cmd) host 324 drivers/mmc/host/dw_mmc.c stop = &host->stop_abort; host 349 drivers/mmc/host/dw_mmc.c if (!test_bit(DW_MMC_CARD_NO_USE_HOLD, &host->slot->flags)) host 355 drivers/mmc/host/dw_mmc.c static inline void dw_mci_set_cto(struct dw_mci *host) host 362 drivers/mmc/host/dw_mmc.c cto_clks = mci_readl(host, TMOUT) & 0xff; host 363 drivers/mmc/host/dw_mmc.c cto_div = (mci_readl(host, CLKDIV) & 0xff) * 2; host 368 drivers/mmc/host/dw_mmc.c host->bus_hz); host 386 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 387 drivers/mmc/host/dw_mmc.c if (!test_bit(EVENT_CMD_COMPLETE, &host->pending_events)) host 388 drivers/mmc/host/dw_mmc.c mod_timer(&host->cto_timer, host 390 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 393 drivers/mmc/host/dw_mmc.c static void dw_mci_start_command(struct dw_mci *host, host 396 drivers/mmc/host/dw_mmc.c host->cmd = cmd; host 397 drivers/mmc/host/dw_mmc.c dev_vdbg(host->dev, host 401 drivers/mmc/host/dw_mmc.c mci_writel(host, CMDARG, cmd->arg); host 403 drivers/mmc/host/dw_mmc.c dw_mci_wait_while_busy(host, cmd_flags); host 405 drivers/mmc/host/dw_mmc.c mci_writel(host, CMD, cmd_flags | SDMMC_CMD_START); host 409 drivers/mmc/host/dw_mmc.c dw_mci_set_cto(host); host 412 drivers/mmc/host/dw_mmc.c static inline void send_stop_abort(struct dw_mci *host, struct mmc_data *data) host 414 drivers/mmc/host/dw_mmc.c struct mmc_command *stop = &host->stop_abort; host 416 drivers/mmc/host/dw_mmc.c dw_mci_start_command(host, stop, host->stop_cmdr); host 420 drivers/mmc/host/dw_mmc.c static void dw_mci_stop_dma(struct dw_mci *host) host 422 drivers/mmc/host/dw_mmc.c if (host->using_dma) { host 423 drivers/mmc/host/dw_mmc.c host->dma_ops->stop(host); host 424 drivers/mmc/host/dw_mmc.c host->dma_ops->cleanup(host); host 428 drivers/mmc/host/dw_mmc.c set_bit(EVENT_XFER_COMPLETE, &host->pending_events); host 431 drivers/mmc/host/dw_mmc.c static void dw_mci_dma_cleanup(struct dw_mci *host) host 433 drivers/mmc/host/dw_mmc.c struct mmc_data *data = host->data; host 436 drivers/mmc/host/dw_mmc.c dma_unmap_sg(host->dev, host 444 drivers/mmc/host/dw_mmc.c static void dw_mci_idmac_reset(struct dw_mci *host) host 446 drivers/mmc/host/dw_mmc.c u32 bmod = mci_readl(host, BMOD); host 449 drivers/mmc/host/dw_mmc.c mci_writel(host, BMOD, bmod); host 452 drivers/mmc/host/dw_mmc.c static void dw_mci_idmac_stop_dma(struct dw_mci *host) host 457 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, CTRL); host 460 drivers/mmc/host/dw_mmc.c mci_writel(host, CTRL, temp); host 463 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, BMOD); host 466 drivers/mmc/host/dw_mmc.c mci_writel(host, BMOD, temp); host 471 drivers/mmc/host/dw_mmc.c struct dw_mci *host = arg; host 472 drivers/mmc/host/dw_mmc.c struct mmc_data *data = host->data; host 474 drivers/mmc/host/dw_mmc.c dev_vdbg(host->dev, "DMA complete\n"); host 476 drivers/mmc/host/dw_mmc.c if ((host->use_dma == TRANS_MODE_EDMAC) && host 479 drivers/mmc/host/dw_mmc.c dma_sync_sg_for_cpu(mmc_dev(host->slot->mmc), host 484 drivers/mmc/host/dw_mmc.c host->dma_ops->cleanup(host); host 491 drivers/mmc/host/dw_mmc.c set_bit(EVENT_XFER_COMPLETE, &host->pending_events); host 492 drivers/mmc/host/dw_mmc.c tasklet_schedule(&host->tasklet); host 496 drivers/mmc/host/dw_mmc.c static int dw_mci_idmac_init(struct dw_mci *host) host 500 drivers/mmc/host/dw_mmc.c if (host->dma_64bit_address == 1) { host 503 drivers/mmc/host/dw_mmc.c host->ring_size = host 507 drivers/mmc/host/dw_mmc.c for (i = 0, p = host->sg_cpu; i < host->ring_size - 1; host 509 drivers/mmc/host/dw_mmc.c p->des6 = (host->sg_dma + host 513 drivers/mmc/host/dw_mmc.c p->des7 = (u64)(host->sg_dma + host 524 drivers/mmc/host/dw_mmc.c p->des6 = host->sg_dma & 0xffffffff; host 525 drivers/mmc/host/dw_mmc.c p->des7 = (u64)host->sg_dma >> 32; host 531 drivers/mmc/host/dw_mmc.c host->ring_size = host 535 drivers/mmc/host/dw_mmc.c for (i = 0, p = host->sg_cpu; host 536 drivers/mmc/host/dw_mmc.c i < host->ring_size - 1; host 538 drivers/mmc/host/dw_mmc.c p->des3 = cpu_to_le32(host->sg_dma + host 545 drivers/mmc/host/dw_mmc.c p->des3 = cpu_to_le32(host->sg_dma); host 549 drivers/mmc/host/dw_mmc.c dw_mci_idmac_reset(host); host 551 drivers/mmc/host/dw_mmc.c if (host->dma_64bit_address == 1) { host 553 drivers/mmc/host/dw_mmc.c mci_writel(host, IDSTS64, IDMAC_INT_CLR); host 554 drivers/mmc/host/dw_mmc.c mci_writel(host, IDINTEN64, SDMMC_IDMAC_INT_NI | host 558 drivers/mmc/host/dw_mmc.c mci_writel(host, DBADDRL, host->sg_dma & 0xffffffff); host 559 drivers/mmc/host/dw_mmc.c mci_writel(host, DBADDRU, (u64)host->sg_dma >> 32); host 563 drivers/mmc/host/dw_mmc.c mci_writel(host, IDSTS, IDMAC_INT_CLR); host 564 drivers/mmc/host/dw_mmc.c mci_writel(host, IDINTEN, SDMMC_IDMAC_INT_NI | host 568 drivers/mmc/host/dw_mmc.c mci_writel(host, DBADDR, host->sg_dma); host 574 drivers/mmc/host/dw_mmc.c static inline int dw_mci_prepare_desc64(struct dw_mci *host, host 583 drivers/mmc/host/dw_mmc.c desc_first = desc_last = desc = host->sg_cpu; host 639 drivers/mmc/host/dw_mmc.c dev_dbg(host->dev, "descriptor is still owned by IDMAC.\n"); host 640 drivers/mmc/host/dw_mmc.c memset(host->sg_cpu, 0, DESC_RING_BUF_SZ); host 641 drivers/mmc/host/dw_mmc.c dw_mci_idmac_init(host); host 646 drivers/mmc/host/dw_mmc.c static inline int dw_mci_prepare_desc32(struct dw_mci *host, host 655 drivers/mmc/host/dw_mmc.c desc_first = desc_last = desc = host->sg_cpu; host 713 drivers/mmc/host/dw_mmc.c dev_dbg(host->dev, "descriptor is still owned by IDMAC.\n"); host 714 drivers/mmc/host/dw_mmc.c memset(host->sg_cpu, 0, DESC_RING_BUF_SZ); host 715 drivers/mmc/host/dw_mmc.c dw_mci_idmac_init(host); host 719 drivers/mmc/host/dw_mmc.c static int dw_mci_idmac_start_dma(struct dw_mci *host, unsigned int sg_len) host 724 drivers/mmc/host/dw_mmc.c if (host->dma_64bit_address == 1) host 725 drivers/mmc/host/dw_mmc.c ret = dw_mci_prepare_desc64(host, host->data, sg_len); host 727 drivers/mmc/host/dw_mmc.c ret = dw_mci_prepare_desc32(host, host->data, sg_len); host 736 drivers/mmc/host/dw_mmc.c dw_mci_ctrl_reset(host, SDMMC_CTRL_DMA_RESET); host 737 drivers/mmc/host/dw_mmc.c dw_mci_idmac_reset(host); host 740 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, CTRL); host 742 drivers/mmc/host/dw_mmc.c mci_writel(host, CTRL, temp); host 748 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, BMOD); host 750 drivers/mmc/host/dw_mmc.c mci_writel(host, BMOD, temp); host 753 drivers/mmc/host/dw_mmc.c mci_writel(host, PLDMND, 1); host 767 drivers/mmc/host/dw_mmc.c static void dw_mci_edmac_stop_dma(struct dw_mci *host) host 769 drivers/mmc/host/dw_mmc.c dmaengine_terminate_async(host->dms->ch); host 772 drivers/mmc/host/dw_mmc.c static int dw_mci_edmac_start_dma(struct dw_mci *host, host 777 drivers/mmc/host/dw_mmc.c struct scatterlist *sgl = host->data->sg; host 779 drivers/mmc/host/dw_mmc.c u32 sg_elems = host->data->sg_len; host 781 drivers/mmc/host/dw_mmc.c u32 fifo_offset = host->fifo_reg - host->regs; host 785 drivers/mmc/host/dw_mmc.c cfg.dst_addr = host->phy_regs + fifo_offset; host 791 drivers/mmc/host/dw_mmc.c fifoth_val = mci_readl(host, FIFOTH); host 795 drivers/mmc/host/dw_mmc.c if (host->data->flags & MMC_DATA_WRITE) host 800 drivers/mmc/host/dw_mmc.c ret = dmaengine_slave_config(host->dms->ch, &cfg); host 802 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "Failed to config edmac.\n"); host 806 drivers/mmc/host/dw_mmc.c desc = dmaengine_prep_slave_sg(host->dms->ch, sgl, host 810 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "Can't prepare slave sg.\n"); host 816 drivers/mmc/host/dw_mmc.c desc->callback_param = (void *)host; host 820 drivers/mmc/host/dw_mmc.c if (host->data->flags & MMC_DATA_WRITE) host 821 drivers/mmc/host/dw_mmc.c dma_sync_sg_for_device(mmc_dev(host->slot->mmc), sgl, host 824 drivers/mmc/host/dw_mmc.c dma_async_issue_pending(host->dms->ch); host 829 drivers/mmc/host/dw_mmc.c static int dw_mci_edmac_init(struct dw_mci *host) host 832 drivers/mmc/host/dw_mmc.c host->dms = kzalloc(sizeof(struct dw_mci_dma_slave), GFP_KERNEL); host 833 drivers/mmc/host/dw_mmc.c if (!host->dms) host 836 drivers/mmc/host/dw_mmc.c host->dms->ch = dma_request_slave_channel(host->dev, "rx-tx"); host 837 drivers/mmc/host/dw_mmc.c if (!host->dms->ch) { host 838 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "Failed to get external DMA channel.\n"); host 839 drivers/mmc/host/dw_mmc.c kfree(host->dms); host 840 drivers/mmc/host/dw_mmc.c host->dms = NULL; host 847 drivers/mmc/host/dw_mmc.c static void dw_mci_edmac_exit(struct dw_mci *host) host 849 drivers/mmc/host/dw_mmc.c if (host->dms) { host 850 drivers/mmc/host/dw_mmc.c if (host->dms->ch) { host 851 drivers/mmc/host/dw_mmc.c dma_release_channel(host->dms->ch); host 852 drivers/mmc/host/dw_mmc.c host->dms->ch = NULL; host 854 drivers/mmc/host/dw_mmc.c kfree(host->dms); host 855 drivers/mmc/host/dw_mmc.c host->dms = NULL; host 868 drivers/mmc/host/dw_mmc.c static int dw_mci_pre_dma_transfer(struct dw_mci *host, host 894 drivers/mmc/host/dw_mmc.c sg_len = dma_map_sg(host->dev, host 912 drivers/mmc/host/dw_mmc.c if (!slot->host->use_dma || !data) host 918 drivers/mmc/host/dw_mmc.c if (dw_mci_pre_dma_transfer(slot->host, mrq->data, host 930 drivers/mmc/host/dw_mmc.c if (!slot->host->use_dma || !data) host 934 drivers/mmc/host/dw_mmc.c dma_unmap_sg(slot->host->dev, host 945 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 968 drivers/mmc/host/dw_mmc.c present = (mci_readl(slot->host, CDETECT) & (1 << slot->id)) host 971 drivers/mmc/host/dw_mmc.c spin_lock_bh(&host->lock); host 977 drivers/mmc/host/dw_mmc.c spin_unlock_bh(&host->lock); host 982 drivers/mmc/host/dw_mmc.c static void dw_mci_adjust_fifoth(struct dw_mci *host, struct mmc_data *data) host 986 drivers/mmc/host/dw_mmc.c u32 fifo_width = 1 << host->data_shift; host 992 drivers/mmc/host/dw_mmc.c if (!host->use_dma) host 995 drivers/mmc/host/dw_mmc.c tx_wmark = (host->fifo_depth) / 2; host 996 drivers/mmc/host/dw_mmc.c tx_wmark_invers = host->fifo_depth - tx_wmark; host 1019 drivers/mmc/host/dw_mmc.c mci_writel(host, FIFOTH, fifoth_val); host 1022 drivers/mmc/host/dw_mmc.c static void dw_mci_ctrl_thld(struct dw_mci *host, struct mmc_data *data) host 1033 drivers/mmc/host/dw_mmc.c if (host->verid < DW_MMC_240A || host 1034 drivers/mmc/host/dw_mmc.c (host->verid < DW_MMC_280A && data->flags & MMC_DATA_WRITE)) host 1042 drivers/mmc/host/dw_mmc.c host->timing != MMC_TIMING_MMC_HS400) host 1050 drivers/mmc/host/dw_mmc.c if (host->timing != MMC_TIMING_MMC_HS200 && host 1051 drivers/mmc/host/dw_mmc.c host->timing != MMC_TIMING_UHS_SDR104 && host 1052 drivers/mmc/host/dw_mmc.c host->timing != MMC_TIMING_MMC_HS400) host 1055 drivers/mmc/host/dw_mmc.c blksz_depth = blksz / (1 << host->data_shift); host 1056 drivers/mmc/host/dw_mmc.c fifo_depth = host->fifo_depth; host 1067 drivers/mmc/host/dw_mmc.c mci_writel(host, CDTHRCTL, SDMMC_SET_THLD(thld_size, enable)); host 1071 drivers/mmc/host/dw_mmc.c mci_writel(host, CDTHRCTL, 0); host 1074 drivers/mmc/host/dw_mmc.c static int dw_mci_submit_data_dma(struct dw_mci *host, struct mmc_data *data) host 1080 drivers/mmc/host/dw_mmc.c host->using_dma = 0; host 1083 drivers/mmc/host/dw_mmc.c if (!host->use_dma) host 1086 drivers/mmc/host/dw_mmc.c sg_len = dw_mci_pre_dma_transfer(host, data, COOKIE_MAPPED); host 1088 drivers/mmc/host/dw_mmc.c host->dma_ops->stop(host); host 1092 drivers/mmc/host/dw_mmc.c host->using_dma = 1; host 1094 drivers/mmc/host/dw_mmc.c if (host->use_dma == TRANS_MODE_IDMAC) host 1095 drivers/mmc/host/dw_mmc.c dev_vdbg(host->dev, host 1097 drivers/mmc/host/dw_mmc.c (unsigned long)host->sg_cpu, host 1098 drivers/mmc/host/dw_mmc.c (unsigned long)host->sg_dma, host 1106 drivers/mmc/host/dw_mmc.c if (host->prev_blksz != data->blksz) host 1107 drivers/mmc/host/dw_mmc.c dw_mci_adjust_fifoth(host, data); host 1110 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, CTRL); host 1112 drivers/mmc/host/dw_mmc.c mci_writel(host, CTRL, temp); host 1115 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 1116 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, INTMASK); host 1118 drivers/mmc/host/dw_mmc.c mci_writel(host, INTMASK, temp); host 1119 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 1121 drivers/mmc/host/dw_mmc.c if (host->dma_ops->start(host, sg_len)) { host 1122 drivers/mmc/host/dw_mmc.c host->dma_ops->stop(host); host 1124 drivers/mmc/host/dw_mmc.c dev_dbg(host->dev, host 1133 drivers/mmc/host/dw_mmc.c static void dw_mci_submit_data(struct dw_mci *host, struct mmc_data *data) host 1141 drivers/mmc/host/dw_mmc.c WARN_ON(host->data); host 1142 drivers/mmc/host/dw_mmc.c host->sg = NULL; host 1143 drivers/mmc/host/dw_mmc.c host->data = data; host 1146 drivers/mmc/host/dw_mmc.c host->dir_status = DW_MCI_RECV_STATUS; host 1148 drivers/mmc/host/dw_mmc.c host->dir_status = DW_MCI_SEND_STATUS; host 1150 drivers/mmc/host/dw_mmc.c dw_mci_ctrl_thld(host, data); host 1152 drivers/mmc/host/dw_mmc.c if (dw_mci_submit_data_dma(host, data)) { host 1153 drivers/mmc/host/dw_mmc.c if (host->data->flags & MMC_DATA_READ) host 1158 drivers/mmc/host/dw_mmc.c sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags); host 1159 drivers/mmc/host/dw_mmc.c host->sg = data->sg; host 1160 drivers/mmc/host/dw_mmc.c host->part_buf_start = 0; host 1161 drivers/mmc/host/dw_mmc.c host->part_buf_count = 0; host 1163 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_TXDR | SDMMC_INT_RXDR); host 1165 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 1166 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, INTMASK); host 1168 drivers/mmc/host/dw_mmc.c mci_writel(host, INTMASK, temp); host 1169 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 1171 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, CTRL); host 1173 drivers/mmc/host/dw_mmc.c mci_writel(host, CTRL, temp); host 1181 drivers/mmc/host/dw_mmc.c if (host->wm_aligned) host 1182 drivers/mmc/host/dw_mmc.c dw_mci_adjust_fifoth(host, data); host 1184 drivers/mmc/host/dw_mmc.c mci_writel(host, FIFOTH, host->fifoth_val); host 1185 drivers/mmc/host/dw_mmc.c host->prev_blksz = 0; host 1192 drivers/mmc/host/dw_mmc.c host->prev_blksz = data->blksz; host 1198 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1205 drivers/mmc/host/dw_mmc.c if (host->state == STATE_WAITING_CMD11_DONE) host 1211 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKENA, 0); host 1213 drivers/mmc/host/dw_mmc.c } else if (clock != host->current_speed || force_clkinit) { host 1214 drivers/mmc/host/dw_mmc.c div = host->bus_hz / clock; host 1215 drivers/mmc/host/dw_mmc.c if (host->bus_hz % clock && host->bus_hz > clock) host 1222 drivers/mmc/host/dw_mmc.c div = (host->bus_hz != clock) ? DIV_ROUND_UP(div, 2) : 0; host 1231 drivers/mmc/host/dw_mmc.c slot->id, host->bus_hz, clock, host 1232 drivers/mmc/host/dw_mmc.c div ? ((host->bus_hz / div) >> 1) : host 1233 drivers/mmc/host/dw_mmc.c host->bus_hz, div); host 1245 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKENA, 0); host 1246 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKSRC, 0); host 1252 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKDIV, div); host 1261 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKENA, clk_en_a); host 1268 drivers/mmc/host/dw_mmc.c slot->mmc->actual_clock = div ? ((host->bus_hz / div) >> 1) : host 1269 drivers/mmc/host/dw_mmc.c host->bus_hz; host 1272 drivers/mmc/host/dw_mmc.c host->current_speed = clock; host 1275 drivers/mmc/host/dw_mmc.c mci_writel(host, CTYPE, (slot->ctype << slot->id)); host 1278 drivers/mmc/host/dw_mmc.c static void __dw_mci_start_request(struct dw_mci *host, host 1288 drivers/mmc/host/dw_mmc.c host->mrq = mrq; host 1290 drivers/mmc/host/dw_mmc.c host->pending_events = 0; host 1291 drivers/mmc/host/dw_mmc.c host->completed_events = 0; host 1292 drivers/mmc/host/dw_mmc.c host->cmd_status = 0; host 1293 drivers/mmc/host/dw_mmc.c host->data_status = 0; host 1294 drivers/mmc/host/dw_mmc.c host->dir_status = 0; host 1298 drivers/mmc/host/dw_mmc.c mci_writel(host, TMOUT, 0xFFFFFFFF); host 1299 drivers/mmc/host/dw_mmc.c mci_writel(host, BYTCNT, data->blksz*data->blocks); host 1300 drivers/mmc/host/dw_mmc.c mci_writel(host, BLKSIZ, data->blksz); host 1310 drivers/mmc/host/dw_mmc.c dw_mci_submit_data(host, data); host 1314 drivers/mmc/host/dw_mmc.c dw_mci_start_command(host, cmd, cmdflags); host 1329 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 1330 drivers/mmc/host/dw_mmc.c if (!test_bit(EVENT_CMD_COMPLETE, &host->pending_events)) host 1331 drivers/mmc/host/dw_mmc.c mod_timer(&host->cmd11_timer, host 1333 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 1336 drivers/mmc/host/dw_mmc.c host->stop_cmdr = dw_mci_prep_stop_abort(host, cmd); host 1339 drivers/mmc/host/dw_mmc.c static void dw_mci_start_request(struct dw_mci *host, host 1346 drivers/mmc/host/dw_mmc.c __dw_mci_start_request(host, slot, cmd); host 1350 drivers/mmc/host/dw_mmc.c static void dw_mci_queue_request(struct dw_mci *host, struct dw_mci_slot *slot, host 1354 drivers/mmc/host/dw_mmc.c host->state); host 1358 drivers/mmc/host/dw_mmc.c if (host->state == STATE_WAITING_CMD11_DONE) { host 1366 drivers/mmc/host/dw_mmc.c host->state = STATE_IDLE; host 1369 drivers/mmc/host/dw_mmc.c if (host->state == STATE_IDLE) { host 1370 drivers/mmc/host/dw_mmc.c host->state = STATE_SENDING_CMD; host 1371 drivers/mmc/host/dw_mmc.c dw_mci_start_request(host, slot); host 1373 drivers/mmc/host/dw_mmc.c list_add_tail(&slot->queue_node, &host->queue); host 1380 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1396 drivers/mmc/host/dw_mmc.c spin_lock_bh(&host->lock); host 1398 drivers/mmc/host/dw_mmc.c dw_mci_queue_request(host, slot, mrq); host 1400 drivers/mmc/host/dw_mmc.c spin_unlock_bh(&host->lock); host 1406 drivers/mmc/host/dw_mmc.c const struct dw_mci_drv_data *drv_data = slot->host->drv_data; host 1422 drivers/mmc/host/dw_mmc.c regs = mci_readl(slot->host, UHS_REG); host 1432 drivers/mmc/host/dw_mmc.c mci_writel(slot->host, UHS_REG, regs); host 1433 drivers/mmc/host/dw_mmc.c slot->host->timing = ios->timing; host 1442 drivers/mmc/host/dw_mmc.c drv_data->set_ios(slot->host, ios); host 1450 drivers/mmc/host/dw_mmc.c dev_err(slot->host->dev, host 1457 drivers/mmc/host/dw_mmc.c regs = mci_readl(slot->host, PWREN); host 1459 drivers/mmc/host/dw_mmc.c mci_writel(slot->host, PWREN, regs); host 1462 drivers/mmc/host/dw_mmc.c if (!slot->host->vqmmc_enabled) { host 1466 drivers/mmc/host/dw_mmc.c dev_err(slot->host->dev, host 1469 drivers/mmc/host/dw_mmc.c slot->host->vqmmc_enabled = true; host 1473 drivers/mmc/host/dw_mmc.c slot->host->vqmmc_enabled = true; host 1477 drivers/mmc/host/dw_mmc.c dw_mci_ctrl_reset(slot->host, host 1492 drivers/mmc/host/dw_mmc.c if (!IS_ERR(mmc->supply.vqmmc) && slot->host->vqmmc_enabled) host 1494 drivers/mmc/host/dw_mmc.c slot->host->vqmmc_enabled = false; host 1496 drivers/mmc/host/dw_mmc.c regs = mci_readl(slot->host, PWREN); host 1498 drivers/mmc/host/dw_mmc.c mci_writel(slot->host, PWREN, regs); host 1504 drivers/mmc/host/dw_mmc.c if (slot->host->state == STATE_WAITING_CMD11_DONE && ios->clock != 0) host 1505 drivers/mmc/host/dw_mmc.c slot->host->state = STATE_IDLE; host 1517 drivers/mmc/host/dw_mmc.c status = mci_readl(slot->host, STATUS); host 1525 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1526 drivers/mmc/host/dw_mmc.c const struct dw_mci_drv_data *drv_data = host->drv_data; host 1539 drivers/mmc/host/dw_mmc.c uhs = mci_readl(host, UHS_REG); host 1555 drivers/mmc/host/dw_mmc.c mci_writel(host, UHS_REG, uhs); host 1571 drivers/mmc/host/dw_mmc.c mci_readl(slot->host, WRTPRT) & (1 << slot->id) ? 1 : 0; host 1582 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1585 drivers/mmc/host/dw_mmc.c if (host->use_dma == TRANS_MODE_IDMAC) host 1586 drivers/mmc/host/dw_mmc.c dw_mci_idmac_reset(host); host 1588 drivers/mmc/host/dw_mmc.c if (!dw_mci_ctrl_reset(host, SDMMC_CTRL_DMA_RESET | host 1598 drivers/mmc/host/dw_mmc.c reset = mci_readl(host, RST_N); host 1600 drivers/mmc/host/dw_mmc.c mci_writel(host, RST_N, reset); host 1603 drivers/mmc/host/dw_mmc.c mci_writel(host, RST_N, reset); host 1610 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1622 drivers/mmc/host/dw_mmc.c clk_en_a_old = mci_readl(host, CLKENA); host 1634 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKENA, clk_en_a); host 1643 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1647 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 1650 drivers/mmc/host/dw_mmc.c int_mask = mci_readl(host, INTMASK); host 1655 drivers/mmc/host/dw_mmc.c mci_writel(host, INTMASK, int_mask); host 1657 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 1663 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1669 drivers/mmc/host/dw_mmc.c pm_runtime_get_noresume(host->dev); host 1671 drivers/mmc/host/dw_mmc.c pm_runtime_put_noidle(host->dev); host 1684 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1685 drivers/mmc/host/dw_mmc.c const struct dw_mci_drv_data *drv_data = host->drv_data; host 1697 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 1698 drivers/mmc/host/dw_mmc.c const struct dw_mci_drv_data *drv_data = host->drv_data; host 1701 drivers/mmc/host/dw_mmc.c return drv_data->prepare_hs400_tuning(host, ios); host 1706 drivers/mmc/host/dw_mmc.c static bool dw_mci_reset(struct dw_mci *host) host 1716 drivers/mmc/host/dw_mmc.c if (host->sg) { host 1717 drivers/mmc/host/dw_mmc.c sg_miter_stop(&host->sg_miter); host 1718 drivers/mmc/host/dw_mmc.c host->sg = NULL; host 1721 drivers/mmc/host/dw_mmc.c if (host->use_dma) host 1724 drivers/mmc/host/dw_mmc.c if (dw_mci_ctrl_reset(host, flags)) { host 1729 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, 0xFFFFFFFF); host 1731 drivers/mmc/host/dw_mmc.c if (!host->use_dma) { host 1737 drivers/mmc/host/dw_mmc.c if (readl_poll_timeout_atomic(host->regs + SDMMC_STATUS, host 1741 drivers/mmc/host/dw_mmc.c dev_err(host->dev, host 1748 drivers/mmc/host/dw_mmc.c if (!dw_mci_ctrl_reset(host, SDMMC_CTRL_FIFO_RESET)) host 1752 drivers/mmc/host/dw_mmc.c if (!(mci_readl(host, CTRL) & SDMMC_CTRL_RESET)) { host 1753 drivers/mmc/host/dw_mmc.c dev_err(host->dev, host 1760 drivers/mmc/host/dw_mmc.c if (host->use_dma == TRANS_MODE_IDMAC) host 1762 drivers/mmc/host/dw_mmc.c dw_mci_idmac_init(host); host 1768 drivers/mmc/host/dw_mmc.c mci_send_cmd(host->slot, SDMMC_CMD_UPD_CLK, 0); host 1790 drivers/mmc/host/dw_mmc.c static void dw_mci_request_end(struct dw_mci *host, struct mmc_request *mrq) host 1791 drivers/mmc/host/dw_mmc.c __releases(&host->lock) host 1792 drivers/mmc/host/dw_mmc.c __acquires(&host->lock) host 1795 drivers/mmc/host/dw_mmc.c struct mmc_host *prev_mmc = host->slot->mmc; host 1797 drivers/mmc/host/dw_mmc.c WARN_ON(host->cmd || host->data); host 1799 drivers/mmc/host/dw_mmc.c host->slot->mrq = NULL; host 1800 drivers/mmc/host/dw_mmc.c host->mrq = NULL; host 1801 drivers/mmc/host/dw_mmc.c if (!list_empty(&host->queue)) { host 1802 drivers/mmc/host/dw_mmc.c slot = list_entry(host->queue.next, host 1805 drivers/mmc/host/dw_mmc.c dev_vdbg(host->dev, "list not empty: %s is next\n", host 1807 drivers/mmc/host/dw_mmc.c host->state = STATE_SENDING_CMD; host 1808 drivers/mmc/host/dw_mmc.c dw_mci_start_request(host, slot); host 1810 drivers/mmc/host/dw_mmc.c dev_vdbg(host->dev, "list empty\n"); host 1812 drivers/mmc/host/dw_mmc.c if (host->state == STATE_SENDING_CMD11) host 1813 drivers/mmc/host/dw_mmc.c host->state = STATE_WAITING_CMD11_DONE; host 1815 drivers/mmc/host/dw_mmc.c host->state = STATE_IDLE; host 1818 drivers/mmc/host/dw_mmc.c spin_unlock(&host->lock); host 1820 drivers/mmc/host/dw_mmc.c spin_lock(&host->lock); host 1823 drivers/mmc/host/dw_mmc.c static int dw_mci_command_complete(struct dw_mci *host, struct mmc_command *cmd) host 1825 drivers/mmc/host/dw_mmc.c u32 status = host->cmd_status; host 1827 drivers/mmc/host/dw_mmc.c host->cmd_status = 0; host 1832 drivers/mmc/host/dw_mmc.c cmd->resp[3] = mci_readl(host, RESP0); host 1833 drivers/mmc/host/dw_mmc.c cmd->resp[2] = mci_readl(host, RESP1); host 1834 drivers/mmc/host/dw_mmc.c cmd->resp[1] = mci_readl(host, RESP2); host 1835 drivers/mmc/host/dw_mmc.c cmd->resp[0] = mci_readl(host, RESP3); host 1837 drivers/mmc/host/dw_mmc.c cmd->resp[0] = mci_readl(host, RESP0); host 1856 drivers/mmc/host/dw_mmc.c static int dw_mci_data_complete(struct dw_mci *host, struct mmc_data *data) host 1858 drivers/mmc/host/dw_mmc.c u32 status = host->data_status; host 1866 drivers/mmc/host/dw_mmc.c if (host->dir_status == host 1875 drivers/mmc/host/dw_mmc.c } else if (host->dir_status == host 1884 drivers/mmc/host/dw_mmc.c dev_dbg(host->dev, "data error, status 0x%08x\n", status); host 1890 drivers/mmc/host/dw_mmc.c dw_mci_reset(host); host 1899 drivers/mmc/host/dw_mmc.c static void dw_mci_set_drto(struct dw_mci *host) host 1906 drivers/mmc/host/dw_mmc.c drto_clks = mci_readl(host, TMOUT) >> 8; host 1907 drivers/mmc/host/dw_mmc.c drto_div = (mci_readl(host, CLKDIV) & 0xff) * 2; host 1912 drivers/mmc/host/dw_mmc.c host->bus_hz); host 1917 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 1918 drivers/mmc/host/dw_mmc.c if (!test_bit(EVENT_DATA_COMPLETE, &host->pending_events)) host 1919 drivers/mmc/host/dw_mmc.c mod_timer(&host->dto_timer, host 1921 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 1924 drivers/mmc/host/dw_mmc.c static bool dw_mci_clear_pending_cmd_complete(struct dw_mci *host) host 1926 drivers/mmc/host/dw_mmc.c if (!test_bit(EVENT_CMD_COMPLETE, &host->pending_events)) host 1936 drivers/mmc/host/dw_mmc.c WARN_ON(del_timer_sync(&host->cto_timer)); host 1937 drivers/mmc/host/dw_mmc.c clear_bit(EVENT_CMD_COMPLETE, &host->pending_events); host 1942 drivers/mmc/host/dw_mmc.c static bool dw_mci_clear_pending_data_complete(struct dw_mci *host) host 1944 drivers/mmc/host/dw_mmc.c if (!test_bit(EVENT_DATA_COMPLETE, &host->pending_events)) host 1948 drivers/mmc/host/dw_mmc.c WARN_ON(del_timer_sync(&host->dto_timer)); host 1949 drivers/mmc/host/dw_mmc.c clear_bit(EVENT_DATA_COMPLETE, &host->pending_events); host 1956 drivers/mmc/host/dw_mmc.c struct dw_mci *host = (struct dw_mci *)priv; host 1964 drivers/mmc/host/dw_mmc.c spin_lock(&host->lock); host 1966 drivers/mmc/host/dw_mmc.c state = host->state; host 1967 drivers/mmc/host/dw_mmc.c data = host->data; host 1968 drivers/mmc/host/dw_mmc.c mrq = host->mrq; host 1980 drivers/mmc/host/dw_mmc.c if (!dw_mci_clear_pending_cmd_complete(host)) host 1983 drivers/mmc/host/dw_mmc.c cmd = host->cmd; host 1984 drivers/mmc/host/dw_mmc.c host->cmd = NULL; host 1985 drivers/mmc/host/dw_mmc.c set_bit(EVENT_CMD_COMPLETE, &host->completed_events); host 1986 drivers/mmc/host/dw_mmc.c err = dw_mci_command_complete(host, cmd); host 1988 drivers/mmc/host/dw_mmc.c __dw_mci_start_request(host, host->slot, host 2020 drivers/mmc/host/dw_mmc.c dw_mci_stop_dma(host); host 2021 drivers/mmc/host/dw_mmc.c send_stop_abort(host, data); host 2027 drivers/mmc/host/dw_mmc.c dw_mci_request_end(host, mrq); host 2044 drivers/mmc/host/dw_mmc.c &host->pending_events)) { host 2045 drivers/mmc/host/dw_mmc.c dw_mci_stop_dma(host); host 2046 drivers/mmc/host/dw_mmc.c if (!(host->data_status & (SDMMC_INT_DRTO | host 2048 drivers/mmc/host/dw_mmc.c send_stop_abort(host, data); host 2054 drivers/mmc/host/dw_mmc.c &host->pending_events)) { host 2059 drivers/mmc/host/dw_mmc.c if (host->dir_status == DW_MCI_RECV_STATUS) host 2060 drivers/mmc/host/dw_mmc.c dw_mci_set_drto(host); host 2064 drivers/mmc/host/dw_mmc.c set_bit(EVENT_XFER_COMPLETE, &host->completed_events); host 2080 drivers/mmc/host/dw_mmc.c &host->pending_events)) { host 2081 drivers/mmc/host/dw_mmc.c dw_mci_stop_dma(host); host 2082 drivers/mmc/host/dw_mmc.c if (!(host->data_status & (SDMMC_INT_DRTO | host 2084 drivers/mmc/host/dw_mmc.c send_stop_abort(host, data); host 2093 drivers/mmc/host/dw_mmc.c if (!dw_mci_clear_pending_data_complete(host)) { host 2099 drivers/mmc/host/dw_mmc.c if (host->dir_status == DW_MCI_RECV_STATUS) host 2100 drivers/mmc/host/dw_mmc.c dw_mci_set_drto(host); host 2104 drivers/mmc/host/dw_mmc.c host->data = NULL; host 2105 drivers/mmc/host/dw_mmc.c set_bit(EVENT_DATA_COMPLETE, &host->completed_events); host 2106 drivers/mmc/host/dw_mmc.c err = dw_mci_data_complete(host, data); host 2112 drivers/mmc/host/dw_mmc.c dw_mci_request_end(host, mrq); host 2118 drivers/mmc/host/dw_mmc.c send_stop_abort(host, data); host 2130 drivers/mmc/host/dw_mmc.c &host->pending_events)) { host 2131 drivers/mmc/host/dw_mmc.c host->cmd = NULL; host 2132 drivers/mmc/host/dw_mmc.c dw_mci_request_end(host, mrq); host 2146 drivers/mmc/host/dw_mmc.c if (!dw_mci_clear_pending_cmd_complete(host)) host 2151 drivers/mmc/host/dw_mmc.c dw_mci_reset(host); host 2153 drivers/mmc/host/dw_mmc.c host->cmd = NULL; host 2154 drivers/mmc/host/dw_mmc.c host->data = NULL; host 2157 drivers/mmc/host/dw_mmc.c dw_mci_command_complete(host, mrq->stop); host 2159 drivers/mmc/host/dw_mmc.c host->cmd_status = 0; host 2161 drivers/mmc/host/dw_mmc.c dw_mci_request_end(host, mrq); host 2166 drivers/mmc/host/dw_mmc.c &host->pending_events)) host 2174 drivers/mmc/host/dw_mmc.c host->state = state; host 2176 drivers/mmc/host/dw_mmc.c spin_unlock(&host->lock); host 2181 drivers/mmc/host/dw_mmc.c static void dw_mci_set_part_bytes(struct dw_mci *host, void *buf, int cnt) host 2183 drivers/mmc/host/dw_mmc.c memcpy((void *)&host->part_buf, buf, cnt); host 2184 drivers/mmc/host/dw_mmc.c host->part_buf_count = cnt; host 2188 drivers/mmc/host/dw_mmc.c static int dw_mci_push_part_bytes(struct dw_mci *host, void *buf, int cnt) host 2190 drivers/mmc/host/dw_mmc.c cnt = min(cnt, (1 << host->data_shift) - host->part_buf_count); host 2191 drivers/mmc/host/dw_mmc.c memcpy((void *)&host->part_buf + host->part_buf_count, buf, cnt); host 2192 drivers/mmc/host/dw_mmc.c host->part_buf_count += cnt; host 2197 drivers/mmc/host/dw_mmc.c static int dw_mci_pull_part_bytes(struct dw_mci *host, void *buf, int cnt) host 2199 drivers/mmc/host/dw_mmc.c cnt = min_t(int, cnt, host->part_buf_count); host 2201 drivers/mmc/host/dw_mmc.c memcpy(buf, (void *)&host->part_buf + host->part_buf_start, host 2203 drivers/mmc/host/dw_mmc.c host->part_buf_count -= cnt; host 2204 drivers/mmc/host/dw_mmc.c host->part_buf_start += cnt; host 2210 drivers/mmc/host/dw_mmc.c static void dw_mci_pull_final_bytes(struct dw_mci *host, void *buf, int cnt) host 2212 drivers/mmc/host/dw_mmc.c memcpy(buf, &host->part_buf, cnt); host 2213 drivers/mmc/host/dw_mmc.c host->part_buf_start = cnt; host 2214 drivers/mmc/host/dw_mmc.c host->part_buf_count = (1 << host->data_shift) - cnt; host 2217 drivers/mmc/host/dw_mmc.c static void dw_mci_push_data16(struct dw_mci *host, void *buf, int cnt) host 2219 drivers/mmc/host/dw_mmc.c struct mmc_data *data = host->data; host 2223 drivers/mmc/host/dw_mmc.c if (unlikely(host->part_buf_count)) { host 2224 drivers/mmc/host/dw_mmc.c int len = dw_mci_push_part_bytes(host, buf, cnt); host 2228 drivers/mmc/host/dw_mmc.c if (host->part_buf_count == 2) { host 2229 drivers/mmc/host/dw_mmc.c mci_fifo_writew(host->fifo_reg, host->part_buf16); host 2230 drivers/mmc/host/dw_mmc.c host->part_buf_count = 0; host 2246 drivers/mmc/host/dw_mmc.c mci_fifo_writew(host->fifo_reg, aligned_buf[i]); host 2254 drivers/mmc/host/dw_mmc.c mci_fifo_writew(host->fifo_reg, *pdata++); host 2259 drivers/mmc/host/dw_mmc.c dw_mci_set_part_bytes(host, buf, cnt); host 2263 drivers/mmc/host/dw_mmc.c mci_fifo_writew(host->fifo_reg, host->part_buf16); host 2267 drivers/mmc/host/dw_mmc.c static void dw_mci_pull_data16(struct dw_mci *host, void *buf, int cnt) host 2279 drivers/mmc/host/dw_mmc.c aligned_buf[i] = mci_fifo_readw(host->fifo_reg); host 2291 drivers/mmc/host/dw_mmc.c *pdata++ = mci_fifo_readw(host->fifo_reg); host 2295 drivers/mmc/host/dw_mmc.c host->part_buf16 = mci_fifo_readw(host->fifo_reg); host 2296 drivers/mmc/host/dw_mmc.c dw_mci_pull_final_bytes(host, buf, cnt); host 2300 drivers/mmc/host/dw_mmc.c static void dw_mci_push_data32(struct dw_mci *host, void *buf, int cnt) host 2302 drivers/mmc/host/dw_mmc.c struct mmc_data *data = host->data; host 2306 drivers/mmc/host/dw_mmc.c if (unlikely(host->part_buf_count)) { host 2307 drivers/mmc/host/dw_mmc.c int len = dw_mci_push_part_bytes(host, buf, cnt); host 2311 drivers/mmc/host/dw_mmc.c if (host->part_buf_count == 4) { host 2312 drivers/mmc/host/dw_mmc.c mci_fifo_writel(host->fifo_reg, host->part_buf32); host 2313 drivers/mmc/host/dw_mmc.c host->part_buf_count = 0; host 2329 drivers/mmc/host/dw_mmc.c mci_fifo_writel(host->fifo_reg, aligned_buf[i]); host 2337 drivers/mmc/host/dw_mmc.c mci_fifo_writel(host->fifo_reg, *pdata++); host 2342 drivers/mmc/host/dw_mmc.c dw_mci_set_part_bytes(host, buf, cnt); host 2346 drivers/mmc/host/dw_mmc.c mci_fifo_writel(host->fifo_reg, host->part_buf32); host 2350 drivers/mmc/host/dw_mmc.c static void dw_mci_pull_data32(struct dw_mci *host, void *buf, int cnt) host 2362 drivers/mmc/host/dw_mmc.c aligned_buf[i] = mci_fifo_readl(host->fifo_reg); host 2374 drivers/mmc/host/dw_mmc.c *pdata++ = mci_fifo_readl(host->fifo_reg); host 2378 drivers/mmc/host/dw_mmc.c host->part_buf32 = mci_fifo_readl(host->fifo_reg); host 2379 drivers/mmc/host/dw_mmc.c dw_mci_pull_final_bytes(host, buf, cnt); host 2383 drivers/mmc/host/dw_mmc.c static void dw_mci_push_data64(struct dw_mci *host, void *buf, int cnt) host 2385 drivers/mmc/host/dw_mmc.c struct mmc_data *data = host->data; host 2389 drivers/mmc/host/dw_mmc.c if (unlikely(host->part_buf_count)) { host 2390 drivers/mmc/host/dw_mmc.c int len = dw_mci_push_part_bytes(host, buf, cnt); host 2395 drivers/mmc/host/dw_mmc.c if (host->part_buf_count == 8) { host 2396 drivers/mmc/host/dw_mmc.c mci_fifo_writeq(host->fifo_reg, host->part_buf); host 2397 drivers/mmc/host/dw_mmc.c host->part_buf_count = 0; host 2413 drivers/mmc/host/dw_mmc.c mci_fifo_writeq(host->fifo_reg, aligned_buf[i]); host 2421 drivers/mmc/host/dw_mmc.c mci_fifo_writeq(host->fifo_reg, *pdata++); host 2426 drivers/mmc/host/dw_mmc.c dw_mci_set_part_bytes(host, buf, cnt); host 2430 drivers/mmc/host/dw_mmc.c mci_fifo_writeq(host->fifo_reg, host->part_buf); host 2434 drivers/mmc/host/dw_mmc.c static void dw_mci_pull_data64(struct dw_mci *host, void *buf, int cnt) host 2446 drivers/mmc/host/dw_mmc.c aligned_buf[i] = mci_fifo_readq(host->fifo_reg); host 2459 drivers/mmc/host/dw_mmc.c *pdata++ = mci_fifo_readq(host->fifo_reg); host 2463 drivers/mmc/host/dw_mmc.c host->part_buf = mci_fifo_readq(host->fifo_reg); host 2464 drivers/mmc/host/dw_mmc.c dw_mci_pull_final_bytes(host, buf, cnt); host 2468 drivers/mmc/host/dw_mmc.c static void dw_mci_pull_data(struct dw_mci *host, void *buf, int cnt) host 2473 drivers/mmc/host/dw_mmc.c len = dw_mci_pull_part_bytes(host, buf, cnt); host 2480 drivers/mmc/host/dw_mmc.c host->pull_data(host, buf, cnt); host 2483 drivers/mmc/host/dw_mmc.c static void dw_mci_read_data_pio(struct dw_mci *host, bool dto) host 2485 drivers/mmc/host/dw_mmc.c struct sg_mapping_iter *sg_miter = &host->sg_miter; host 2488 drivers/mmc/host/dw_mmc.c struct mmc_data *data = host->data; host 2489 drivers/mmc/host/dw_mmc.c int shift = host->data_shift; host 2498 drivers/mmc/host/dw_mmc.c host->sg = sg_miter->piter.sg; host 2504 drivers/mmc/host/dw_mmc.c fcnt = (SDMMC_GET_FCNT(mci_readl(host, STATUS)) host 2505 drivers/mmc/host/dw_mmc.c << shift) + host->part_buf_count; host 2509 drivers/mmc/host/dw_mmc.c dw_mci_pull_data(host, (void *)(buf + offset), len); host 2516 drivers/mmc/host/dw_mmc.c status = mci_readl(host, MINTSTS); host 2517 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_RXDR); host 2520 drivers/mmc/host/dw_mmc.c (dto && SDMMC_GET_FCNT(mci_readl(host, STATUS)))); host 2532 drivers/mmc/host/dw_mmc.c host->sg = NULL; host 2534 drivers/mmc/host/dw_mmc.c set_bit(EVENT_XFER_COMPLETE, &host->pending_events); host 2537 drivers/mmc/host/dw_mmc.c static void dw_mci_write_data_pio(struct dw_mci *host) host 2539 drivers/mmc/host/dw_mmc.c struct sg_mapping_iter *sg_miter = &host->sg_miter; host 2542 drivers/mmc/host/dw_mmc.c struct mmc_data *data = host->data; host 2543 drivers/mmc/host/dw_mmc.c int shift = host->data_shift; host 2546 drivers/mmc/host/dw_mmc.c unsigned int fifo_depth = host->fifo_depth; host 2553 drivers/mmc/host/dw_mmc.c host->sg = sg_miter->piter.sg; host 2560 drivers/mmc/host/dw_mmc.c SDMMC_GET_FCNT(mci_readl(host, STATUS))) host 2561 drivers/mmc/host/dw_mmc.c << shift) - host->part_buf_count; host 2565 drivers/mmc/host/dw_mmc.c host->push_data(host, (void *)(buf + offset), len); host 2572 drivers/mmc/host/dw_mmc.c status = mci_readl(host, MINTSTS); host 2573 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_TXDR); host 2586 drivers/mmc/host/dw_mmc.c host->sg = NULL; host 2588 drivers/mmc/host/dw_mmc.c set_bit(EVENT_XFER_COMPLETE, &host->pending_events); host 2591 drivers/mmc/host/dw_mmc.c static void dw_mci_cmd_interrupt(struct dw_mci *host, u32 status) host 2593 drivers/mmc/host/dw_mmc.c del_timer(&host->cto_timer); host 2595 drivers/mmc/host/dw_mmc.c if (!host->cmd_status) host 2596 drivers/mmc/host/dw_mmc.c host->cmd_status = status; host 2600 drivers/mmc/host/dw_mmc.c set_bit(EVENT_CMD_COMPLETE, &host->pending_events); host 2601 drivers/mmc/host/dw_mmc.c tasklet_schedule(&host->tasklet); host 2604 drivers/mmc/host/dw_mmc.c static void dw_mci_handle_cd(struct dw_mci *host) host 2606 drivers/mmc/host/dw_mmc.c struct dw_mci_slot *slot = host->slot; host 2611 drivers/mmc/host/dw_mmc.c msecs_to_jiffies(host->pdata->detect_delay_ms)); host 2616 drivers/mmc/host/dw_mmc.c struct dw_mci *host = dev_id; host 2618 drivers/mmc/host/dw_mmc.c struct dw_mci_slot *slot = host->slot; host 2621 drivers/mmc/host/dw_mmc.c pending = mci_readl(host, MINTSTS); /* read-only mask reg */ host 2625 drivers/mmc/host/dw_mmc.c if ((host->state == STATE_SENDING_CMD11) && host 2627 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_VOLT_SWITCH); host 2634 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 2635 drivers/mmc/host/dw_mmc.c dw_mci_cmd_interrupt(host, pending); host 2636 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 2638 drivers/mmc/host/dw_mmc.c del_timer(&host->cmd11_timer); host 2642 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 2644 drivers/mmc/host/dw_mmc.c del_timer(&host->cto_timer); host 2645 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, DW_MCI_CMD_ERROR_FLAGS); host 2646 drivers/mmc/host/dw_mmc.c host->cmd_status = pending; host 2648 drivers/mmc/host/dw_mmc.c set_bit(EVENT_CMD_COMPLETE, &host->pending_events); host 2650 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 2655 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, DW_MCI_DATA_ERROR_FLAGS); host 2656 drivers/mmc/host/dw_mmc.c host->data_status = pending; host 2658 drivers/mmc/host/dw_mmc.c set_bit(EVENT_DATA_ERROR, &host->pending_events); host 2659 drivers/mmc/host/dw_mmc.c tasklet_schedule(&host->tasklet); host 2663 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 2665 drivers/mmc/host/dw_mmc.c del_timer(&host->dto_timer); host 2667 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_DATA_OVER); host 2668 drivers/mmc/host/dw_mmc.c if (!host->data_status) host 2669 drivers/mmc/host/dw_mmc.c host->data_status = pending; host 2671 drivers/mmc/host/dw_mmc.c if (host->dir_status == DW_MCI_RECV_STATUS) { host 2672 drivers/mmc/host/dw_mmc.c if (host->sg != NULL) host 2673 drivers/mmc/host/dw_mmc.c dw_mci_read_data_pio(host, true); host 2675 drivers/mmc/host/dw_mmc.c set_bit(EVENT_DATA_COMPLETE, &host->pending_events); host 2676 drivers/mmc/host/dw_mmc.c tasklet_schedule(&host->tasklet); host 2678 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 2682 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_RXDR); host 2683 drivers/mmc/host/dw_mmc.c if (host->dir_status == DW_MCI_RECV_STATUS && host->sg) host 2684 drivers/mmc/host/dw_mmc.c dw_mci_read_data_pio(host, false); host 2688 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_TXDR); host 2689 drivers/mmc/host/dw_mmc.c if (host->dir_status == DW_MCI_SEND_STATUS && host->sg) host 2690 drivers/mmc/host/dw_mmc.c dw_mci_write_data_pio(host); host 2694 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 2696 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_CMD_DONE); host 2697 drivers/mmc/host/dw_mmc.c dw_mci_cmd_interrupt(host, pending); host 2699 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 2703 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, SDMMC_INT_CD); host 2704 drivers/mmc/host/dw_mmc.c dw_mci_handle_cd(host); host 2708 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, host 2716 drivers/mmc/host/dw_mmc.c if (host->use_dma != TRANS_MODE_IDMAC) host 2720 drivers/mmc/host/dw_mmc.c if (host->dma_64bit_address == 1) { host 2721 drivers/mmc/host/dw_mmc.c pending = mci_readl(host, IDSTS64); host 2723 drivers/mmc/host/dw_mmc.c mci_writel(host, IDSTS64, SDMMC_IDMAC_INT_TI | host 2725 drivers/mmc/host/dw_mmc.c mci_writel(host, IDSTS64, SDMMC_IDMAC_INT_NI); host 2726 drivers/mmc/host/dw_mmc.c if (!test_bit(EVENT_DATA_ERROR, &host->pending_events)) host 2727 drivers/mmc/host/dw_mmc.c host->dma_ops->complete((void *)host); host 2730 drivers/mmc/host/dw_mmc.c pending = mci_readl(host, IDSTS); host 2732 drivers/mmc/host/dw_mmc.c mci_writel(host, IDSTS, SDMMC_IDMAC_INT_TI | host 2734 drivers/mmc/host/dw_mmc.c mci_writel(host, IDSTS, SDMMC_IDMAC_INT_NI); host 2735 drivers/mmc/host/dw_mmc.c if (!test_bit(EVENT_DATA_ERROR, &host->pending_events)) host 2736 drivers/mmc/host/dw_mmc.c host->dma_ops->complete((void *)host); host 2745 drivers/mmc/host/dw_mmc.c struct dw_mci *host = slot->host; host 2746 drivers/mmc/host/dw_mmc.c const struct dw_mci_drv_data *drv_data = host->drv_data; host 2750 drivers/mmc/host/dw_mmc.c if (host->pdata->caps) host 2751 drivers/mmc/host/dw_mmc.c mmc->caps = host->pdata->caps; host 2759 drivers/mmc/host/dw_mmc.c if (host->pdata->pm_caps) host 2760 drivers/mmc/host/dw_mmc.c mmc->pm_caps = host->pdata->pm_caps; host 2762 drivers/mmc/host/dw_mmc.c if (host->dev->of_node) { host 2763 drivers/mmc/host/dw_mmc.c ctrl_id = of_alias_get_id(host->dev->of_node, "mshc"); host 2767 drivers/mmc/host/dw_mmc.c ctrl_id = to_platform_device(host->dev)->id; host 2772 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "invalid controller id %d\n", host 2779 drivers/mmc/host/dw_mmc.c if (host->pdata->caps2) host 2780 drivers/mmc/host/dw_mmc.c mmc->caps2 = host->pdata->caps2; host 2793 drivers/mmc/host/dw_mmc.c static int dw_mci_init_slot(struct dw_mci *host) host 2799 drivers/mmc/host/dw_mmc.c mmc = mmc_alloc_host(sizeof(struct dw_mci_slot), host->dev); host 2805 drivers/mmc/host/dw_mmc.c slot->sdio_id = host->sdio_id0 + slot->id; host 2807 drivers/mmc/host/dw_mmc.c slot->host = host; host 2808 drivers/mmc/host/dw_mmc.c host->slot = slot; host 2829 drivers/mmc/host/dw_mmc.c if (host->use_dma == TRANS_MODE_IDMAC) { host 2830 drivers/mmc/host/dw_mmc.c mmc->max_segs = host->ring_size; host 2833 drivers/mmc/host/dw_mmc.c mmc->max_req_size = mmc->max_seg_size * host->ring_size; host 2835 drivers/mmc/host/dw_mmc.c } else if (host->use_dma == TRANS_MODE_EDMAC) { host 2873 drivers/mmc/host/dw_mmc.c slot->host->slot = NULL; host 2877 drivers/mmc/host/dw_mmc.c static void dw_mci_init_dma(struct dw_mci *host) host 2880 drivers/mmc/host/dw_mmc.c struct device *dev = host->dev; host 2893 drivers/mmc/host/dw_mmc.c host->use_dma = SDMMC_GET_TRANS_MODE(mci_readl(host, HCON)); host 2894 drivers/mmc/host/dw_mmc.c if (host->use_dma == DMA_INTERFACE_IDMA) { host 2895 drivers/mmc/host/dw_mmc.c host->use_dma = TRANS_MODE_IDMAC; host 2896 drivers/mmc/host/dw_mmc.c } else if (host->use_dma == DMA_INTERFACE_DWDMA || host 2897 drivers/mmc/host/dw_mmc.c host->use_dma == DMA_INTERFACE_GDMA) { host 2898 drivers/mmc/host/dw_mmc.c host->use_dma = TRANS_MODE_EDMAC; host 2904 drivers/mmc/host/dw_mmc.c if (host->use_dma == TRANS_MODE_IDMAC) { host 2909 drivers/mmc/host/dw_mmc.c addr_config = SDMMC_GET_ADDR_CONFIG(mci_readl(host, HCON)); host 2913 drivers/mmc/host/dw_mmc.c host->dma_64bit_address = 1; host 2914 drivers/mmc/host/dw_mmc.c dev_info(host->dev, host 2916 drivers/mmc/host/dw_mmc.c if (!dma_set_mask(host->dev, DMA_BIT_MASK(64))) host 2917 drivers/mmc/host/dw_mmc.c dma_set_coherent_mask(host->dev, host 2921 drivers/mmc/host/dw_mmc.c host->dma_64bit_address = 0; host 2922 drivers/mmc/host/dw_mmc.c dev_info(host->dev, host 2927 drivers/mmc/host/dw_mmc.c host->sg_cpu = dmam_alloc_coherent(host->dev, host 2929 drivers/mmc/host/dw_mmc.c &host->sg_dma, GFP_KERNEL); host 2930 drivers/mmc/host/dw_mmc.c if (!host->sg_cpu) { host 2931 drivers/mmc/host/dw_mmc.c dev_err(host->dev, host 2937 drivers/mmc/host/dw_mmc.c host->dma_ops = &dw_mci_idmac_ops; host 2938 drivers/mmc/host/dw_mmc.c dev_info(host->dev, "Using internal DMA controller.\n"); host 2946 drivers/mmc/host/dw_mmc.c host->dma_ops = &dw_mci_edmac_ops; host 2947 drivers/mmc/host/dw_mmc.c dev_info(host->dev, "Using external DMA controller.\n"); host 2950 drivers/mmc/host/dw_mmc.c if (host->dma_ops->init && host->dma_ops->start && host 2951 drivers/mmc/host/dw_mmc.c host->dma_ops->stop && host->dma_ops->cleanup) { host 2952 drivers/mmc/host/dw_mmc.c if (host->dma_ops->init(host)) { host 2953 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "%s: Unable to initialize DMA Controller.\n", host 2958 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "DMA initialization not found.\n"); host 2965 drivers/mmc/host/dw_mmc.c dev_info(host->dev, "Using PIO mode.\n"); host 2966 drivers/mmc/host/dw_mmc.c host->use_dma = TRANS_MODE_PIO; host 2971 drivers/mmc/host/dw_mmc.c struct dw_mci *host = from_timer(host, t, cmd11_timer); host 2973 drivers/mmc/host/dw_mmc.c if (host->state != STATE_SENDING_CMD11) { host 2974 drivers/mmc/host/dw_mmc.c dev_warn(host->dev, "Unexpected CMD11 timeout\n"); host 2978 drivers/mmc/host/dw_mmc.c host->cmd_status = SDMMC_INT_RTO; host 2979 drivers/mmc/host/dw_mmc.c set_bit(EVENT_CMD_COMPLETE, &host->pending_events); host 2980 drivers/mmc/host/dw_mmc.c tasklet_schedule(&host->tasklet); host 2985 drivers/mmc/host/dw_mmc.c struct dw_mci *host = from_timer(host, t, cto_timer); host 2989 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 2999 drivers/mmc/host/dw_mmc.c pending = mci_readl(host, MINTSTS); /* read-only mask reg */ host 3002 drivers/mmc/host/dw_mmc.c dev_warn(host->dev, "Unexpected interrupt latency\n"); host 3005 drivers/mmc/host/dw_mmc.c if (test_bit(EVENT_CMD_COMPLETE, &host->pending_events)) { host 3007 drivers/mmc/host/dw_mmc.c dev_warn(host->dev, "CTO timeout when already completed\n"); host 3015 drivers/mmc/host/dw_mmc.c switch (host->state) { host 3024 drivers/mmc/host/dw_mmc.c host->cmd_status = SDMMC_INT_RTO; host 3025 drivers/mmc/host/dw_mmc.c set_bit(EVENT_CMD_COMPLETE, &host->pending_events); host 3026 drivers/mmc/host/dw_mmc.c tasklet_schedule(&host->tasklet); host 3029 drivers/mmc/host/dw_mmc.c dev_warn(host->dev, "Unexpected command timeout, state %d\n", host 3030 drivers/mmc/host/dw_mmc.c host->state); host 3035 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 3040 drivers/mmc/host/dw_mmc.c struct dw_mci *host = from_timer(host, t, dto_timer); host 3044 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 3050 drivers/mmc/host/dw_mmc.c pending = mci_readl(host, MINTSTS); /* read-only mask reg */ host 3053 drivers/mmc/host/dw_mmc.c dev_warn(host->dev, "Unexpected data interrupt latency\n"); host 3056 drivers/mmc/host/dw_mmc.c if (test_bit(EVENT_DATA_COMPLETE, &host->pending_events)) { host 3058 drivers/mmc/host/dw_mmc.c dev_warn(host->dev, "DTO timeout when already completed\n"); host 3066 drivers/mmc/host/dw_mmc.c switch (host->state) { host 3074 drivers/mmc/host/dw_mmc.c host->data_status = SDMMC_INT_DRTO; host 3075 drivers/mmc/host/dw_mmc.c set_bit(EVENT_DATA_ERROR, &host->pending_events); host 3076 drivers/mmc/host/dw_mmc.c set_bit(EVENT_DATA_COMPLETE, &host->pending_events); host 3077 drivers/mmc/host/dw_mmc.c tasklet_schedule(&host->tasklet); host 3080 drivers/mmc/host/dw_mmc.c dev_warn(host->dev, "Unexpected data timeout, state %d\n", host 3081 drivers/mmc/host/dw_mmc.c host->state); host 3086 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 3090 drivers/mmc/host/dw_mmc.c static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) host 3093 drivers/mmc/host/dw_mmc.c struct device *dev = host->dev; host 3094 drivers/mmc/host/dw_mmc.c const struct dw_mci_drv_data *drv_data = host->drv_data; host 3116 drivers/mmc/host/dw_mmc.c device_property_read_u32(dev, "data-addr", &host->data_addr_override); host 3119 drivers/mmc/host/dw_mmc.c host->wm_aligned = true; host 3125 drivers/mmc/host/dw_mmc.c ret = drv_data->parse_dt(host); host 3134 drivers/mmc/host/dw_mmc.c static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host) host 3140 drivers/mmc/host/dw_mmc.c static void dw_mci_enable_cd(struct dw_mci *host) host 3149 drivers/mmc/host/dw_mmc.c if (host->slot->mmc->caps & MMC_CAP_NEEDS_POLL) host 3152 drivers/mmc/host/dw_mmc.c if (mmc_gpio_get_cd(host->slot->mmc) < 0) { host 3153 drivers/mmc/host/dw_mmc.c spin_lock_irqsave(&host->irq_lock, irqflags); host 3154 drivers/mmc/host/dw_mmc.c temp = mci_readl(host, INTMASK); host 3156 drivers/mmc/host/dw_mmc.c mci_writel(host, INTMASK, temp); host 3157 drivers/mmc/host/dw_mmc.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 3161 drivers/mmc/host/dw_mmc.c int dw_mci_probe(struct dw_mci *host) host 3163 drivers/mmc/host/dw_mmc.c const struct dw_mci_drv_data *drv_data = host->drv_data; host 3167 drivers/mmc/host/dw_mmc.c if (!host->pdata) { host 3168 drivers/mmc/host/dw_mmc.c host->pdata = dw_mci_parse_dt(host); host 3169 drivers/mmc/host/dw_mmc.c if (PTR_ERR(host->pdata) == -EPROBE_DEFER) { host 3171 drivers/mmc/host/dw_mmc.c } else if (IS_ERR(host->pdata)) { host 3172 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "platform data not available\n"); host 3177 drivers/mmc/host/dw_mmc.c host->biu_clk = devm_clk_get(host->dev, "biu"); host 3178 drivers/mmc/host/dw_mmc.c if (IS_ERR(host->biu_clk)) { host 3179 drivers/mmc/host/dw_mmc.c dev_dbg(host->dev, "biu clock not available\n"); host 3181 drivers/mmc/host/dw_mmc.c ret = clk_prepare_enable(host->biu_clk); host 3183 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "failed to enable biu clock\n"); host 3188 drivers/mmc/host/dw_mmc.c host->ciu_clk = devm_clk_get(host->dev, "ciu"); host 3189 drivers/mmc/host/dw_mmc.c if (IS_ERR(host->ciu_clk)) { host 3190 drivers/mmc/host/dw_mmc.c dev_dbg(host->dev, "ciu clock not available\n"); host 3191 drivers/mmc/host/dw_mmc.c host->bus_hz = host->pdata->bus_hz; host 3193 drivers/mmc/host/dw_mmc.c ret = clk_prepare_enable(host->ciu_clk); host 3195 drivers/mmc/host/dw_mmc.c dev_err(host->dev, "failed to enable ciu clock\n"); host 3199 drivers/mmc/host/dw_mmc.c if (host->pdata->bus_hz) { host 3200 drivers/mmc/host/dw_mmc.c ret = clk_set_rate(host->ciu_clk, host->pdata->bus_hz); host 3202 drivers/mmc/host/dw_mmc.c dev_warn(host->dev, host 3204 drivers/mmc/host/dw_mmc.c host->pdata->bus_hz); host 3206 drivers/mmc/host/dw_mmc.c host->bus_hz = clk_get_rate(host->ciu_clk); host 3209 drivers/mmc/host/dw_mmc.c if (!host->bus_hz) { host 3210 drivers/mmc/host/dw_mmc.c dev_err(host->dev, host 3216 drivers/mmc/host/dw_mmc.c if (!IS_ERR(host->pdata->rstc)) { host 3217 drivers/mmc/host/dw_mmc.c reset_control_assert(host->pdata->rstc); host 3219 drivers/mmc/host/dw_mmc.c reset_control_deassert(host->pdata->rstc); host 3223 drivers/mmc/host/dw_mmc.c ret = drv_data->init(host); host 3225 drivers/mmc/host/dw_mmc.c dev_err(host->dev, host 3231 drivers/mmc/host/dw_mmc.c timer_setup(&host->cmd11_timer, dw_mci_cmd11_timer, 0); host 3232 drivers/mmc/host/dw_mmc.c timer_setup(&host->cto_timer, dw_mci_cto_timer, 0); host 3233 drivers/mmc/host/dw_mmc.c timer_setup(&host->dto_timer, dw_mci_dto_timer, 0); host 3235 drivers/mmc/host/dw_mmc.c spin_lock_init(&host->lock); host 3236 drivers/mmc/host/dw_mmc.c spin_lock_init(&host->irq_lock); host 3237 drivers/mmc/host/dw_mmc.c INIT_LIST_HEAD(&host->queue); host 3243 drivers/mmc/host/dw_mmc.c i = SDMMC_GET_HDATA_WIDTH(mci_readl(host, HCON)); host 3245 drivers/mmc/host/dw_mmc.c host->push_data = dw_mci_push_data16; host 3246 drivers/mmc/host/dw_mmc.c host->pull_data = dw_mci_pull_data16; host 3248 drivers/mmc/host/dw_mmc.c host->data_shift = 1; host 3250 drivers/mmc/host/dw_mmc.c host->push_data = dw_mci_push_data64; host 3251 drivers/mmc/host/dw_mmc.c host->pull_data = dw_mci_pull_data64; host 3253 drivers/mmc/host/dw_mmc.c host->data_shift = 3; host 3259 drivers/mmc/host/dw_mmc.c host->push_data = dw_mci_push_data32; host 3260 drivers/mmc/host/dw_mmc.c host->pull_data = dw_mci_pull_data32; host 3262 drivers/mmc/host/dw_mmc.c host->data_shift = 2; host 3266 drivers/mmc/host/dw_mmc.c if (!dw_mci_ctrl_reset(host, SDMMC_CTRL_ALL_RESET_FLAGS)) { host 3271 drivers/mmc/host/dw_mmc.c host->dma_ops = host->pdata->dma_ops; host 3272 drivers/mmc/host/dw_mmc.c dw_mci_init_dma(host); host 3275 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, 0xFFFFFFFF); host 3276 drivers/mmc/host/dw_mmc.c mci_writel(host, INTMASK, 0); /* disable all mmc interrupt first */ host 3279 drivers/mmc/host/dw_mmc.c mci_writel(host, TMOUT, 0xFFFFFFFF); host 3285 drivers/mmc/host/dw_mmc.c if (!host->pdata->fifo_depth) { host 3292 drivers/mmc/host/dw_mmc.c fifo_size = mci_readl(host, FIFOTH); host 3295 drivers/mmc/host/dw_mmc.c fifo_size = host->pdata->fifo_depth; host 3297 drivers/mmc/host/dw_mmc.c host->fifo_depth = fifo_size; host 3298 drivers/mmc/host/dw_mmc.c host->fifoth_val = host 3300 drivers/mmc/host/dw_mmc.c mci_writel(host, FIFOTH, host->fifoth_val); host 3303 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKENA, 0); host 3304 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKSRC, 0); host 3310 drivers/mmc/host/dw_mmc.c host->verid = SDMMC_GET_VERID(mci_readl(host, VERID)); host 3311 drivers/mmc/host/dw_mmc.c dev_info(host->dev, "Version ID is %04x\n", host->verid); host 3313 drivers/mmc/host/dw_mmc.c if (host->data_addr_override) host 3314 drivers/mmc/host/dw_mmc.c host->fifo_reg = host->regs + host->data_addr_override; host 3315 drivers/mmc/host/dw_mmc.c else if (host->verid < DW_MMC_240A) host 3316 drivers/mmc/host/dw_mmc.c host->fifo_reg = host->regs + DATA_OFFSET; host 3318 drivers/mmc/host/dw_mmc.c host->fifo_reg = host->regs + DATA_240A_OFFSET; host 3320 drivers/mmc/host/dw_mmc.c tasklet_init(&host->tasklet, dw_mci_tasklet_func, (unsigned long)host); host 3321 drivers/mmc/host/dw_mmc.c ret = devm_request_irq(host->dev, host->irq, dw_mci_interrupt, host 3322 drivers/mmc/host/dw_mmc.c host->irq_flags, "dw-mci", host); host 3330 drivers/mmc/host/dw_mmc.c mci_writel(host, INTMASK, SDMMC_INT_CMD_DONE | SDMMC_INT_DATA_OVER | host 3334 drivers/mmc/host/dw_mmc.c mci_writel(host, CTRL, SDMMC_CTRL_INT_ENABLE); host 3336 drivers/mmc/host/dw_mmc.c dev_info(host->dev, host 3338 drivers/mmc/host/dw_mmc.c host->irq, width, fifo_size); host 3341 drivers/mmc/host/dw_mmc.c ret = dw_mci_init_slot(host); host 3343 drivers/mmc/host/dw_mmc.c dev_dbg(host->dev, "slot %d init failed\n", i); host 3348 drivers/mmc/host/dw_mmc.c dw_mci_enable_cd(host); host 3353 drivers/mmc/host/dw_mmc.c if (host->use_dma && host->dma_ops->exit) host 3354 drivers/mmc/host/dw_mmc.c host->dma_ops->exit(host); host 3356 drivers/mmc/host/dw_mmc.c if (!IS_ERR(host->pdata->rstc)) host 3357 drivers/mmc/host/dw_mmc.c reset_control_assert(host->pdata->rstc); host 3360 drivers/mmc/host/dw_mmc.c clk_disable_unprepare(host->ciu_clk); host 3363 drivers/mmc/host/dw_mmc.c clk_disable_unprepare(host->biu_clk); host 3369 drivers/mmc/host/dw_mmc.c void dw_mci_remove(struct dw_mci *host) host 3371 drivers/mmc/host/dw_mmc.c dev_dbg(host->dev, "remove slot\n"); host 3372 drivers/mmc/host/dw_mmc.c if (host->slot) host 3373 drivers/mmc/host/dw_mmc.c dw_mci_cleanup_slot(host->slot); host 3375 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, 0xFFFFFFFF); host 3376 drivers/mmc/host/dw_mmc.c mci_writel(host, INTMASK, 0); /* disable all mmc interrupt first */ host 3379 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKENA, 0); host 3380 drivers/mmc/host/dw_mmc.c mci_writel(host, CLKSRC, 0); host 3382 drivers/mmc/host/dw_mmc.c if (host->use_dma && host->dma_ops->exit) host 3383 drivers/mmc/host/dw_mmc.c host->dma_ops->exit(host); host 3385 drivers/mmc/host/dw_mmc.c if (!IS_ERR(host->pdata->rstc)) host 3386 drivers/mmc/host/dw_mmc.c reset_control_assert(host->pdata->rstc); host 3388 drivers/mmc/host/dw_mmc.c clk_disable_unprepare(host->ciu_clk); host 3389 drivers/mmc/host/dw_mmc.c clk_disable_unprepare(host->biu_clk); host 3398 drivers/mmc/host/dw_mmc.c struct dw_mci *host = dev_get_drvdata(dev); host 3400 drivers/mmc/host/dw_mmc.c if (host->use_dma && host->dma_ops->exit) host 3401 drivers/mmc/host/dw_mmc.c host->dma_ops->exit(host); host 3403 drivers/mmc/host/dw_mmc.c clk_disable_unprepare(host->ciu_clk); host 3405 drivers/mmc/host/dw_mmc.c if (host->slot && host 3406 drivers/mmc/host/dw_mmc.c (mmc_can_gpio_cd(host->slot->mmc) || host 3407 drivers/mmc/host/dw_mmc.c !mmc_card_is_removable(host->slot->mmc))) host 3408 drivers/mmc/host/dw_mmc.c clk_disable_unprepare(host->biu_clk); host 3417 drivers/mmc/host/dw_mmc.c struct dw_mci *host = dev_get_drvdata(dev); host 3419 drivers/mmc/host/dw_mmc.c if (host->slot && host 3420 drivers/mmc/host/dw_mmc.c (mmc_can_gpio_cd(host->slot->mmc) || host 3421 drivers/mmc/host/dw_mmc.c !mmc_card_is_removable(host->slot->mmc))) { host 3422 drivers/mmc/host/dw_mmc.c ret = clk_prepare_enable(host->biu_clk); host 3427 drivers/mmc/host/dw_mmc.c ret = clk_prepare_enable(host->ciu_clk); host 3431 drivers/mmc/host/dw_mmc.c if (!dw_mci_ctrl_reset(host, SDMMC_CTRL_ALL_RESET_FLAGS)) { host 3432 drivers/mmc/host/dw_mmc.c clk_disable_unprepare(host->ciu_clk); host 3437 drivers/mmc/host/dw_mmc.c if (host->use_dma && host->dma_ops->init) host 3438 drivers/mmc/host/dw_mmc.c host->dma_ops->init(host); host 3444 drivers/mmc/host/dw_mmc.c mci_writel(host, FIFOTH, host->fifoth_val); host 3445 drivers/mmc/host/dw_mmc.c host->prev_blksz = 0; host 3448 drivers/mmc/host/dw_mmc.c mci_writel(host, TMOUT, 0xFFFFFFFF); host 3450 drivers/mmc/host/dw_mmc.c mci_writel(host, RINTSTS, 0xFFFFFFFF); host 3451 drivers/mmc/host/dw_mmc.c mci_writel(host, INTMASK, SDMMC_INT_CMD_DONE | SDMMC_INT_DATA_OVER | host 3454 drivers/mmc/host/dw_mmc.c mci_writel(host, CTRL, SDMMC_CTRL_INT_ENABLE); host 3457 drivers/mmc/host/dw_mmc.c if (host->slot->mmc->pm_flags & MMC_PM_KEEP_POWER) host 3458 drivers/mmc/host/dw_mmc.c dw_mci_set_ios(host->slot->mmc, &host->slot->mmc->ios); host 3461 drivers/mmc/host/dw_mmc.c dw_mci_setup_bus(host->slot, true); host 3464 drivers/mmc/host/dw_mmc.c if (sdio_irq_claimed(host->slot->mmc)) host 3465 drivers/mmc/host/dw_mmc.c __dw_mci_enable_sdio_irq(host->slot, 1); host 3468 drivers/mmc/host/dw_mmc.c dw_mci_enable_cd(host); host 3473 drivers/mmc/host/dw_mmc.c if (host->slot && host 3474 drivers/mmc/host/dw_mmc.c (mmc_can_gpio_cd(host->slot->mmc) || host 3475 drivers/mmc/host/dw_mmc.c !mmc_card_is_removable(host->slot->mmc))) host 3476 drivers/mmc/host/dw_mmc.c clk_disable_unprepare(host->biu_clk); host 221 drivers/mmc/host/dw_mmc.h void (*push_data)(struct dw_mci *host, void *buf, int cnt); host 222 drivers/mmc/host/dw_mmc.h void (*pull_data)(struct dw_mci *host, void *buf, int cnt); host 238 drivers/mmc/host/dw_mmc.h int (*init)(struct dw_mci *host); host 239 drivers/mmc/host/dw_mmc.h int (*start)(struct dw_mci *host, unsigned int sg_len); host 240 drivers/mmc/host/dw_mmc.h void (*complete)(void *host); host 241 drivers/mmc/host/dw_mmc.h void (*stop)(struct dw_mci *host); host 242 drivers/mmc/host/dw_mmc.h void (*cleanup)(struct dw_mci *host); host 243 drivers/mmc/host/dw_mmc.h void (*exit)(struct dw_mci *host); host 497 drivers/mmc/host/dw_mmc.h extern int dw_mci_probe(struct dw_mci *host); host 498 drivers/mmc/host/dw_mmc.h extern void dw_mci_remove(struct dw_mci *host); host 522 drivers/mmc/host/dw_mmc.h struct dw_mci *host; host 558 drivers/mmc/host/dw_mmc.h int (*init)(struct dw_mci *host); host 559 drivers/mmc/host/dw_mmc.h void (*set_ios)(struct dw_mci *host, struct mmc_ios *ios); host 560 drivers/mmc/host/dw_mmc.h int (*parse_dt)(struct dw_mci *host); host 562 drivers/mmc/host/dw_mmc.h int (*prepare_hs400_tuning)(struct dw_mci *host, host 174 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_write_irq_mask(struct jz4740_mmc_host *host, host 177 drivers/mmc/host/jz4740_mmc.c if (host->version >= JZ_MMC_JZ4725B) host 178 drivers/mmc/host/jz4740_mmc.c return writel(val, host->base + JZ_REG_MMC_IMASK); host 180 drivers/mmc/host/jz4740_mmc.c return writew(val, host->base + JZ_REG_MMC_IMASK); host 183 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_write_irq_reg(struct jz4740_mmc_host *host, host 186 drivers/mmc/host/jz4740_mmc.c if (host->version >= JZ_MMC_JZ4780) host 187 drivers/mmc/host/jz4740_mmc.c writel(val, host->base + JZ_REG_MMC_IREG); host 189 drivers/mmc/host/jz4740_mmc.c writew(val, host->base + JZ_REG_MMC_IREG); host 192 drivers/mmc/host/jz4740_mmc.c static uint32_t jz4740_mmc_read_irq_reg(struct jz4740_mmc_host *host) host 194 drivers/mmc/host/jz4740_mmc.c if (host->version >= JZ_MMC_JZ4780) host 195 drivers/mmc/host/jz4740_mmc.c return readl(host->base + JZ_REG_MMC_IREG); host 197 drivers/mmc/host/jz4740_mmc.c return readw(host->base + JZ_REG_MMC_IREG); host 203 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_release_dma_channels(struct jz4740_mmc_host *host) host 205 drivers/mmc/host/jz4740_mmc.c if (!host->use_dma) host 208 drivers/mmc/host/jz4740_mmc.c dma_release_channel(host->dma_tx); host 209 drivers/mmc/host/jz4740_mmc.c dma_release_channel(host->dma_rx); host 212 drivers/mmc/host/jz4740_mmc.c static int jz4740_mmc_acquire_dma_channels(struct jz4740_mmc_host *host) host 214 drivers/mmc/host/jz4740_mmc.c host->dma_tx = dma_request_chan(mmc_dev(host->mmc), "tx"); host 215 drivers/mmc/host/jz4740_mmc.c if (IS_ERR(host->dma_tx)) { host 216 drivers/mmc/host/jz4740_mmc.c dev_err(mmc_dev(host->mmc), "Failed to get dma_tx channel\n"); host 217 drivers/mmc/host/jz4740_mmc.c return PTR_ERR(host->dma_tx); host 220 drivers/mmc/host/jz4740_mmc.c host->dma_rx = dma_request_chan(mmc_dev(host->mmc), "rx"); host 221 drivers/mmc/host/jz4740_mmc.c if (IS_ERR(host->dma_rx)) { host 222 drivers/mmc/host/jz4740_mmc.c dev_err(mmc_dev(host->mmc), "Failed to get dma_rx channel\n"); host 223 drivers/mmc/host/jz4740_mmc.c dma_release_channel(host->dma_tx); host 224 drivers/mmc/host/jz4740_mmc.c return PTR_ERR(host->dma_rx); host 230 drivers/mmc/host/jz4740_mmc.c static inline struct dma_chan *jz4740_mmc_get_dma_chan(struct jz4740_mmc_host *host, host 233 drivers/mmc/host/jz4740_mmc.c return (data->flags & MMC_DATA_READ) ? host->dma_rx : host->dma_tx; host 236 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_dma_unmap(struct jz4740_mmc_host *host, host 239 drivers/mmc/host/jz4740_mmc.c struct dma_chan *chan = jz4740_mmc_get_dma_chan(host, data); host 249 drivers/mmc/host/jz4740_mmc.c static int jz4740_mmc_prepare_dma_data(struct jz4740_mmc_host *host, host 253 drivers/mmc/host/jz4740_mmc.c struct dma_chan *chan = jz4740_mmc_get_dma_chan(host, data); host 266 drivers/mmc/host/jz4740_mmc.c dev_err(mmc_dev(host->mmc), host 277 drivers/mmc/host/jz4740_mmc.c static int jz4740_mmc_start_dma_transfer(struct jz4740_mmc_host *host, host 280 drivers/mmc/host/jz4740_mmc.c struct dma_chan *chan = jz4740_mmc_get_dma_chan(host, data); host 292 drivers/mmc/host/jz4740_mmc.c conf.dst_addr = host->mem_res->start + JZ_REG_MMC_TXFIFO; host 295 drivers/mmc/host/jz4740_mmc.c conf.src_addr = host->mem_res->start + JZ_REG_MMC_RXFIFO; host 298 drivers/mmc/host/jz4740_mmc.c sg_count = jz4740_mmc_prepare_dma_data(host, data, COOKIE_MAPPED); host 307 drivers/mmc/host/jz4740_mmc.c dev_err(mmc_dev(host->mmc), host 320 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_dma_unmap(host, data); host 327 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = mmc_priv(mmc); host 330 drivers/mmc/host/jz4740_mmc.c if (!host->use_dma) host 334 drivers/mmc/host/jz4740_mmc.c if (jz4740_mmc_prepare_dma_data(host, data, COOKIE_PREMAPPED) < 0) host 342 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = mmc_priv(mmc); host 346 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_dma_unmap(host, data); host 349 drivers/mmc/host/jz4740_mmc.c struct dma_chan *chan = jz4740_mmc_get_dma_chan(host, data); host 357 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_set_irq_enabled(struct jz4740_mmc_host *host, host 362 drivers/mmc/host/jz4740_mmc.c spin_lock_irqsave(&host->lock, flags); host 364 drivers/mmc/host/jz4740_mmc.c host->irq_mask &= ~irq; host 366 drivers/mmc/host/jz4740_mmc.c host->irq_mask |= irq; host 368 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_write_irq_mask(host, host->irq_mask); host 369 drivers/mmc/host/jz4740_mmc.c spin_unlock_irqrestore(&host->lock, flags); host 372 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_clock_enable(struct jz4740_mmc_host *host, host 380 drivers/mmc/host/jz4740_mmc.c writew(val, host->base + JZ_REG_MMC_STRPCL); host 383 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_clock_disable(struct jz4740_mmc_host *host) host 388 drivers/mmc/host/jz4740_mmc.c writew(JZ_MMC_STRPCL_CLOCK_STOP, host->base + JZ_REG_MMC_STRPCL); host 390 drivers/mmc/host/jz4740_mmc.c status = readl(host->base + JZ_REG_MMC_STATUS); host 394 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_reset(struct jz4740_mmc_host *host) host 399 drivers/mmc/host/jz4740_mmc.c writew(JZ_MMC_STRPCL_RESET, host->base + JZ_REG_MMC_STRPCL); host 402 drivers/mmc/host/jz4740_mmc.c status = readl(host->base + JZ_REG_MMC_STATUS); host 406 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_request_done(struct jz4740_mmc_host *host) host 411 drivers/mmc/host/jz4740_mmc.c req = host->req; host 413 drivers/mmc/host/jz4740_mmc.c host->req = NULL; host 416 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_dma_unmap(host, data); host 417 drivers/mmc/host/jz4740_mmc.c mmc_request_done(host->mmc, req); host 420 drivers/mmc/host/jz4740_mmc.c static unsigned int jz4740_mmc_poll_irq(struct jz4740_mmc_host *host, host 427 drivers/mmc/host/jz4740_mmc.c status = jz4740_mmc_read_irq_reg(host); host 431 drivers/mmc/host/jz4740_mmc.c set_bit(0, &host->waiting); host 432 drivers/mmc/host/jz4740_mmc.c mod_timer(&host->timeout_timer, jiffies + 5*HZ); host 433 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_set_irq_enabled(host, irq, true); host 440 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_transfer_check_state(struct jz4740_mmc_host *host, host 445 drivers/mmc/host/jz4740_mmc.c status = readl(host->base + JZ_REG_MMC_STATUS); host 448 drivers/mmc/host/jz4740_mmc.c host->req->cmd->error = -ETIMEDOUT; host 451 drivers/mmc/host/jz4740_mmc.c host->req->cmd->error = -EIO; host 456 drivers/mmc/host/jz4740_mmc.c host->req->cmd->error = -ETIMEDOUT; host 459 drivers/mmc/host/jz4740_mmc.c host->req->cmd->error = -EIO; host 465 drivers/mmc/host/jz4740_mmc.c static bool jz4740_mmc_write_data(struct jz4740_mmc_host *host, host 468 drivers/mmc/host/jz4740_mmc.c struct sg_mapping_iter *miter = &host->miter; host 469 drivers/mmc/host/jz4740_mmc.c void __iomem *fifo_addr = host->base + JZ_REG_MMC_TXFIFO; host 480 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_poll_irq(host, JZ_MMC_IRQ_TXFIFO_WR_REQ); host 496 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_poll_irq(host, JZ_MMC_IRQ_TXFIFO_WR_REQ); host 520 drivers/mmc/host/jz4740_mmc.c static bool jz4740_mmc_read_data(struct jz4740_mmc_host *host, host 523 drivers/mmc/host/jz4740_mmc.c struct sg_mapping_iter *miter = &host->miter; host 524 drivers/mmc/host/jz4740_mmc.c void __iomem *fifo_addr = host->base + JZ_REG_MMC_RXFIFO; host 537 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_poll_irq(host, JZ_MMC_IRQ_RXFIFO_RD_REQ); host 555 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_poll_irq(host, JZ_MMC_IRQ_RXFIFO_RD_REQ); host 579 drivers/mmc/host/jz4740_mmc.c status = readl(host->base + JZ_REG_MMC_STATUS); host 582 drivers/mmc/host/jz4740_mmc.c status = readl(host->base + JZ_REG_MMC_STATUS); host 597 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = from_timer(host, t, timeout_timer); host 599 drivers/mmc/host/jz4740_mmc.c if (!test_and_clear_bit(0, &host->waiting)) host 602 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_set_irq_enabled(host, JZ_MMC_IRQ_END_CMD_RES, false); host 604 drivers/mmc/host/jz4740_mmc.c host->req->cmd->error = -ETIMEDOUT; host 605 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_request_done(host); host 608 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_read_response(struct jz4740_mmc_host *host, host 613 drivers/mmc/host/jz4740_mmc.c void __iomem *fifo_addr = host->base + JZ_REG_MMC_RESP_FIFO; host 631 drivers/mmc/host/jz4740_mmc.c static void jz4740_mmc_send_command(struct jz4740_mmc_host *host, host 634 drivers/mmc/host/jz4740_mmc.c uint32_t cmdat = host->cmdat; host 636 drivers/mmc/host/jz4740_mmc.c host->cmdat &= ~JZ_MMC_CMDAT_INIT; host 637 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_clock_disable(host); host 639 drivers/mmc/host/jz4740_mmc.c host->cmd = cmd; host 663 drivers/mmc/host/jz4740_mmc.c if (host->use_dma) { host 673 drivers/mmc/host/jz4740_mmc.c if (host->version >= JZ_MMC_JZ4780) { host 675 drivers/mmc/host/jz4740_mmc.c host->base + JZ_REG_MMC_DMAC); host 679 drivers/mmc/host/jz4740_mmc.c } else if (host->version >= JZ_MMC_JZ4780) { host 680 drivers/mmc/host/jz4740_mmc.c writel(0, host->base + JZ_REG_MMC_DMAC); host 683 drivers/mmc/host/jz4740_mmc.c writew(cmd->data->blksz, host->base + JZ_REG_MMC_BLKLEN); host 684 drivers/mmc/host/jz4740_mmc.c writew(cmd->data->blocks, host->base + JZ_REG_MMC_NOB); host 687 drivers/mmc/host/jz4740_mmc.c writeb(cmd->opcode, host->base + JZ_REG_MMC_CMD); host 688 drivers/mmc/host/jz4740_mmc.c writel(cmd->arg, host->base + JZ_REG_MMC_ARG); host 689 drivers/mmc/host/jz4740_mmc.c writel(cmdat, host->base + JZ_REG_MMC_CMDAT); host 691 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_clock_enable(host, 1); host 694 drivers/mmc/host/jz4740_mmc.c static void jz_mmc_prepare_data_transfer(struct jz4740_mmc_host *host) host 696 drivers/mmc/host/jz4740_mmc.c struct mmc_command *cmd = host->req->cmd; host 705 drivers/mmc/host/jz4740_mmc.c sg_miter_start(&host->miter, data->sg, data->sg_len, direction); host 711 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = (struct jz4740_mmc_host *)devid; host 712 drivers/mmc/host/jz4740_mmc.c struct mmc_command *cmd = host->req->cmd; host 713 drivers/mmc/host/jz4740_mmc.c struct mmc_request *req = host->req; host 718 drivers/mmc/host/jz4740_mmc.c host->state = JZ4740_MMC_STATE_DONE; host 720 drivers/mmc/host/jz4740_mmc.c switch (host->state) { host 723 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_read_response(host, cmd); host 728 drivers/mmc/host/jz4740_mmc.c jz_mmc_prepare_data_transfer(host); host 732 drivers/mmc/host/jz4740_mmc.c if (host->use_dma) { host 739 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_start_dma_transfer(host, data); host 747 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_read_data(host, data); host 749 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_write_data(host, data); host 752 drivers/mmc/host/jz4740_mmc.c host->state = JZ4740_MMC_STATE_TRANSFER_DATA; host 756 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_transfer_check_state(host, data); host 758 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_poll_irq(host, JZ_MMC_IRQ_DATA_TRAN_DONE); host 760 drivers/mmc/host/jz4740_mmc.c host->state = JZ4740_MMC_STATE_SEND_STOP; host 763 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_write_irq_reg(host, JZ_MMC_IRQ_DATA_TRAN_DONE); host 770 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_send_command(host, req->stop); host 773 drivers/mmc/host/jz4740_mmc.c timeout = jz4740_mmc_poll_irq(host, host 776 drivers/mmc/host/jz4740_mmc.c host->state = JZ4740_MMC_STATE_DONE; host 785 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_request_done(host); host 792 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = devid; host 793 drivers/mmc/host/jz4740_mmc.c struct mmc_command *cmd = host->cmd; host 796 drivers/mmc/host/jz4740_mmc.c status = readl(host->base + JZ_REG_MMC_STATUS); host 797 drivers/mmc/host/jz4740_mmc.c irq_reg = jz4740_mmc_read_irq_reg(host); host 800 drivers/mmc/host/jz4740_mmc.c irq_reg &= ~host->irq_mask; host 806 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_write_irq_reg(host, tmp & ~irq_reg); host 809 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_write_irq_reg(host, JZ_MMC_IRQ_SDIO); host 810 drivers/mmc/host/jz4740_mmc.c mmc_signal_sdio_irq(host->mmc); host 814 drivers/mmc/host/jz4740_mmc.c if (host->req && cmd && irq_reg) { host 815 drivers/mmc/host/jz4740_mmc.c if (test_and_clear_bit(0, &host->waiting)) { host 816 drivers/mmc/host/jz4740_mmc.c del_timer(&host->timeout_timer); host 829 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_set_irq_enabled(host, irq_reg, false); host 830 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_write_irq_reg(host, irq_reg); host 839 drivers/mmc/host/jz4740_mmc.c static int jz4740_mmc_set_clock_rate(struct jz4740_mmc_host *host, int rate) host 844 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_clock_disable(host); host 845 drivers/mmc/host/jz4740_mmc.c clk_set_rate(host->clk, host->mmc->f_max); host 847 drivers/mmc/host/jz4740_mmc.c real_rate = clk_get_rate(host->clk); host 854 drivers/mmc/host/jz4740_mmc.c writew(div, host->base + JZ_REG_MMC_CLKRT); host 860 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = mmc_priv(mmc); host 862 drivers/mmc/host/jz4740_mmc.c host->req = req; host 864 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_write_irq_reg(host, ~0); host 865 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_set_irq_enabled(host, JZ_MMC_IRQ_END_CMD_RES, true); host 867 drivers/mmc/host/jz4740_mmc.c host->state = JZ4740_MMC_STATE_READ_RESPONSE; host 868 drivers/mmc/host/jz4740_mmc.c set_bit(0, &host->waiting); host 869 drivers/mmc/host/jz4740_mmc.c mod_timer(&host->timeout_timer, jiffies + 5*HZ); host 870 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_send_command(host, req->cmd); host 875 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = mmc_priv(mmc); host 877 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_set_clock_rate(host, ios->clock); host 881 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_reset(host); host 884 drivers/mmc/host/jz4740_mmc.c host->cmdat |= JZ_MMC_CMDAT_INIT; host 885 drivers/mmc/host/jz4740_mmc.c clk_prepare_enable(host->clk); host 892 drivers/mmc/host/jz4740_mmc.c clk_disable_unprepare(host->clk); host 898 drivers/mmc/host/jz4740_mmc.c host->cmdat &= ~JZ_MMC_CMDAT_BUS_WIDTH_4BIT; host 901 drivers/mmc/host/jz4740_mmc.c host->cmdat |= JZ_MMC_CMDAT_BUS_WIDTH_4BIT; host 910 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = mmc_priv(mmc); host 911 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_set_irq_enabled(host, JZ_MMC_IRQ_SDIO, enable); host 936 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host; host 945 drivers/mmc/host/jz4740_mmc.c host = mmc_priv(mmc); host 949 drivers/mmc/host/jz4740_mmc.c host->version = (enum jz4740_mmc_version)match->data; host 952 drivers/mmc/host/jz4740_mmc.c host->version = JZ_MMC_JZ4740; host 965 drivers/mmc/host/jz4740_mmc.c host->irq = platform_get_irq(pdev, 0); host 966 drivers/mmc/host/jz4740_mmc.c if (host->irq < 0) { host 967 drivers/mmc/host/jz4740_mmc.c ret = host->irq; host 971 drivers/mmc/host/jz4740_mmc.c host->clk = devm_clk_get(&pdev->dev, "mmc"); host 972 drivers/mmc/host/jz4740_mmc.c if (IS_ERR(host->clk)) { host 973 drivers/mmc/host/jz4740_mmc.c ret = PTR_ERR(host->clk); host 978 drivers/mmc/host/jz4740_mmc.c host->mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0); host 979 drivers/mmc/host/jz4740_mmc.c host->base = devm_ioremap_resource(&pdev->dev, host->mem_res); host 980 drivers/mmc/host/jz4740_mmc.c if (IS_ERR(host->base)) { host 981 drivers/mmc/host/jz4740_mmc.c ret = PTR_ERR(host->base); host 999 drivers/mmc/host/jz4740_mmc.c host->mmc = mmc; host 1000 drivers/mmc/host/jz4740_mmc.c host->pdev = pdev; host 1001 drivers/mmc/host/jz4740_mmc.c spin_lock_init(&host->lock); host 1002 drivers/mmc/host/jz4740_mmc.c host->irq_mask = ~0; host 1004 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_reset(host); host 1006 drivers/mmc/host/jz4740_mmc.c ret = request_threaded_irq(host->irq, jz_mmc_irq, jz_mmc_irq_worker, 0, host 1007 drivers/mmc/host/jz4740_mmc.c dev_name(&pdev->dev), host); host 1013 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_clock_disable(host); host 1014 drivers/mmc/host/jz4740_mmc.c timer_setup(&host->timeout_timer, jz4740_mmc_timeout, 0); host 1016 drivers/mmc/host/jz4740_mmc.c ret = jz4740_mmc_acquire_dma_channels(host); host 1019 drivers/mmc/host/jz4740_mmc.c host->use_dma = !ret; host 1021 drivers/mmc/host/jz4740_mmc.c platform_set_drvdata(pdev, host); host 1031 drivers/mmc/host/jz4740_mmc.c host->use_dma ? "DMA" : "PIO", host 1037 drivers/mmc/host/jz4740_mmc.c if (host->use_dma) host 1038 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_release_dma_channels(host); host 1040 drivers/mmc/host/jz4740_mmc.c free_irq(host->irq, host); host 1049 drivers/mmc/host/jz4740_mmc.c struct jz4740_mmc_host *host = platform_get_drvdata(pdev); host 1051 drivers/mmc/host/jz4740_mmc.c del_timer_sync(&host->timeout_timer); host 1052 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_set_irq_enabled(host, 0xff, false); host 1053 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_reset(host); host 1055 drivers/mmc/host/jz4740_mmc.c mmc_remove_host(host->mmc); host 1057 drivers/mmc/host/jz4740_mmc.c free_irq(host->irq, host); host 1059 drivers/mmc/host/jz4740_mmc.c if (host->use_dma) host 1060 drivers/mmc/host/jz4740_mmc.c jz4740_mmc_release_dma_channels(host); host 1062 drivers/mmc/host/jz4740_mmc.c mmc_free_host(host->mmc); host 227 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 238 drivers/mmc/host/meson-gx-mmc.c if (host->dram_access_quirk) host 308 drivers/mmc/host/meson-gx-mmc.c static void meson_mmc_clk_gate(struct meson_host *host) host 312 drivers/mmc/host/meson-gx-mmc.c if (host->pins_clk_gate) { host 313 drivers/mmc/host/meson-gx-mmc.c pinctrl_select_state(host->pinctrl, host->pins_clk_gate); host 319 drivers/mmc/host/meson-gx-mmc.c cfg = readl(host->regs + SD_EMMC_CFG); host 321 drivers/mmc/host/meson-gx-mmc.c writel(cfg, host->regs + SD_EMMC_CFG); host 325 drivers/mmc/host/meson-gx-mmc.c static void meson_mmc_clk_ungate(struct meson_host *host) host 329 drivers/mmc/host/meson-gx-mmc.c if (host->pins_clk_gate) host 330 drivers/mmc/host/meson-gx-mmc.c pinctrl_select_state(host->pinctrl, host->pins_default); host 333 drivers/mmc/host/meson-gx-mmc.c cfg = readl(host->regs + SD_EMMC_CFG); host 335 drivers/mmc/host/meson-gx-mmc.c writel(cfg, host->regs + SD_EMMC_CFG); host 338 drivers/mmc/host/meson-gx-mmc.c static int meson_mmc_clk_set(struct meson_host *host, unsigned long rate, host 341 drivers/mmc/host/meson-gx-mmc.c struct mmc_host *mmc = host->mmc; host 346 drivers/mmc/host/meson-gx-mmc.c if (host->ddr == ddr && host->req_rate == rate) host 350 drivers/mmc/host/meson-gx-mmc.c meson_mmc_clk_gate(host); host 351 drivers/mmc/host/meson-gx-mmc.c host->req_rate = 0; host 359 drivers/mmc/host/meson-gx-mmc.c cfg = readl(host->regs + SD_EMMC_CFG); host 361 drivers/mmc/host/meson-gx-mmc.c writel(cfg, host->regs + SD_EMMC_CFG); host 370 drivers/mmc/host/meson-gx-mmc.c writel(cfg, host->regs + SD_EMMC_CFG); host 371 drivers/mmc/host/meson-gx-mmc.c host->ddr = ddr; host 373 drivers/mmc/host/meson-gx-mmc.c ret = clk_set_rate(host->mmc_clk, rate); host 375 drivers/mmc/host/meson-gx-mmc.c dev_err(host->dev, "Unable to set cfg_div_clk to %lu. ret=%d\n", host 380 drivers/mmc/host/meson-gx-mmc.c host->req_rate = rate; host 381 drivers/mmc/host/meson-gx-mmc.c mmc->actual_clock = clk_get_rate(host->mmc_clk); host 385 drivers/mmc/host/meson-gx-mmc.c host->req_rate >>= 1; host 389 drivers/mmc/host/meson-gx-mmc.c dev_dbg(host->dev, "clk rate: %u Hz\n", mmc->actual_clock); host 391 drivers/mmc/host/meson-gx-mmc.c dev_dbg(host->dev, "requested rate was %lu\n", rate); host 394 drivers/mmc/host/meson-gx-mmc.c meson_mmc_clk_ungate(host); host 404 drivers/mmc/host/meson-gx-mmc.c static int meson_mmc_clk_init(struct meson_host *host) host 416 drivers/mmc/host/meson-gx-mmc.c clk_reg = CLK_ALWAYS_ON(host); host 421 drivers/mmc/host/meson-gx-mmc.c writel(clk_reg, host->regs + SD_EMMC_CLOCK); host 429 drivers/mmc/host/meson-gx-mmc.c clk = devm_clk_get(host->dev, name); host 432 drivers/mmc/host/meson-gx-mmc.c dev_err(host->dev, "Missing clock %s\n", name); host 440 drivers/mmc/host/meson-gx-mmc.c mux = devm_kzalloc(host->dev, sizeof(*mux), GFP_KERNEL); host 444 drivers/mmc/host/meson-gx-mmc.c snprintf(clk_name, sizeof(clk_name), "%s#mux", dev_name(host->dev)); host 451 drivers/mmc/host/meson-gx-mmc.c mux->reg = host->regs + SD_EMMC_CLOCK; host 456 drivers/mmc/host/meson-gx-mmc.c host->mux_clk = devm_clk_register(host->dev, &mux->hw); host 457 drivers/mmc/host/meson-gx-mmc.c if (WARN_ON(IS_ERR(host->mux_clk))) host 458 drivers/mmc/host/meson-gx-mmc.c return PTR_ERR(host->mux_clk); host 461 drivers/mmc/host/meson-gx-mmc.c div = devm_kzalloc(host->dev, sizeof(*div), GFP_KERNEL); host 465 drivers/mmc/host/meson-gx-mmc.c snprintf(clk_name, sizeof(clk_name), "%s#div", dev_name(host->dev)); host 469 drivers/mmc/host/meson-gx-mmc.c clk_parent[0] = __clk_get_name(host->mux_clk); host 473 drivers/mmc/host/meson-gx-mmc.c div->reg = host->regs + SD_EMMC_CLOCK; host 479 drivers/mmc/host/meson-gx-mmc.c host->mmc_clk = devm_clk_register(host->dev, &div->hw); host 480 drivers/mmc/host/meson-gx-mmc.c if (WARN_ON(IS_ERR(host->mmc_clk))) host 481 drivers/mmc/host/meson-gx-mmc.c return PTR_ERR(host->mmc_clk); host 484 drivers/mmc/host/meson-gx-mmc.c host->mmc->f_min = clk_round_rate(host->mmc_clk, 400000); host 485 drivers/mmc/host/meson-gx-mmc.c ret = clk_set_rate(host->mmc_clk, host->mmc->f_min); host 489 drivers/mmc/host/meson-gx-mmc.c return clk_prepare_enable(host->mmc_clk); host 492 drivers/mmc/host/meson-gx-mmc.c static void meson_mmc_disable_resampling(struct meson_host *host) host 494 drivers/mmc/host/meson-gx-mmc.c unsigned int val = readl(host->regs + host->data->adjust); host 497 drivers/mmc/host/meson-gx-mmc.c writel(val, host->regs + host->data->adjust); host 500 drivers/mmc/host/meson-gx-mmc.c static void meson_mmc_reset_resampling(struct meson_host *host) host 504 drivers/mmc/host/meson-gx-mmc.c meson_mmc_disable_resampling(host); host 506 drivers/mmc/host/meson-gx-mmc.c val = readl(host->regs + host->data->adjust); host 508 drivers/mmc/host/meson-gx-mmc.c writel(val, host->regs + host->data->adjust); host 513 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 518 drivers/mmc/host/meson-gx-mmc.c max_dly = DIV_ROUND_UP(clk_get_rate(host->mux_clk), host 519 drivers/mmc/host/meson-gx-mmc.c clk_get_rate(host->mmc_clk)); host 521 drivers/mmc/host/meson-gx-mmc.c val = readl(host->regs + host->data->adjust); host 523 drivers/mmc/host/meson-gx-mmc.c writel(val, host->regs + host->data->adjust); host 533 drivers/mmc/host/meson-gx-mmc.c writel(val, host->regs + host->data->adjust); host 543 drivers/mmc/host/meson-gx-mmc.c meson_mmc_reset_resampling(host); host 547 drivers/mmc/host/meson-gx-mmc.c static int meson_mmc_prepare_ios_clock(struct meson_host *host, host 563 drivers/mmc/host/meson-gx-mmc.c return meson_mmc_clk_set(host, ios->clock, ddr); host 566 drivers/mmc/host/meson-gx-mmc.c static void meson_mmc_check_resampling(struct meson_host *host, host 574 drivers/mmc/host/meson-gx-mmc.c meson_mmc_disable_resampling(host); host 581 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 594 drivers/mmc/host/meson-gx-mmc.c if (!IS_ERR(mmc->supply.vqmmc) && host->vqmmc_enabled) { host 596 drivers/mmc/host/meson-gx-mmc.c host->vqmmc_enabled = false; host 608 drivers/mmc/host/meson-gx-mmc.c if (!IS_ERR(mmc->supply.vqmmc) && !host->vqmmc_enabled) { host 612 drivers/mmc/host/meson-gx-mmc.c dev_err(host->dev, host 615 drivers/mmc/host/meson-gx-mmc.c host->vqmmc_enabled = true; host 633 drivers/mmc/host/meson-gx-mmc.c dev_err(host->dev, "Invalid ios->bus_width: %u. Setting to 4.\n", host 638 drivers/mmc/host/meson-gx-mmc.c val = readl(host->regs + SD_EMMC_CFG); host 641 drivers/mmc/host/meson-gx-mmc.c writel(val, host->regs + SD_EMMC_CFG); host 643 drivers/mmc/host/meson-gx-mmc.c meson_mmc_check_resampling(host, ios); host 644 drivers/mmc/host/meson-gx-mmc.c err = meson_mmc_prepare_ios_clock(host, ios); host 646 drivers/mmc/host/meson-gx-mmc.c dev_err(host->dev, "Failed to set clock: %d\n,", err); host 648 drivers/mmc/host/meson-gx-mmc.c dev_dbg(host->dev, "SD_EMMC_CFG: 0x%08x\n", val); host 654 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 656 drivers/mmc/host/meson-gx-mmc.c host->cmd = NULL; host 657 drivers/mmc/host/meson-gx-mmc.c mmc_request_done(host->mmc, mrq); host 662 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 665 drivers/mmc/host/meson-gx-mmc.c cfg = readl(host->regs + SD_EMMC_CFG); host 669 drivers/mmc/host/meson-gx-mmc.c dev_err(host->dev, "blksz %u is not a power of 2\n", blksz); host 677 drivers/mmc/host/meson-gx-mmc.c dev_dbg(host->dev, "%s: update blk_len %d -> %d\n", __func__, host 682 drivers/mmc/host/meson-gx-mmc.c writel(cfg, host->regs + SD_EMMC_CFG); host 704 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 705 drivers/mmc/host/meson-gx-mmc.c struct sd_emmc_desc *desc = host->descs; host 706 drivers/mmc/host/meson-gx-mmc.c struct mmc_data *data = host->cmd->data; host 729 drivers/mmc/host/meson-gx-mmc.c desc[i].cmd_arg = host->cmd->arg; host 736 drivers/mmc/host/meson-gx-mmc.c start = host->descs_dma_addr | START_DESC_BUSY; host 737 drivers/mmc/host/meson-gx-mmc.c writel(start, host->regs + SD_EMMC_START); host 742 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 750 drivers/mmc/host/meson-gx-mmc.c host->cmd = cmd; host 782 drivers/mmc/host/meson-gx-mmc.c WARN_ON(xfer_bytes > host->bounce_buf_size); host 784 drivers/mmc/host/meson-gx-mmc.c host->bounce_buf, xfer_bytes); host 788 drivers/mmc/host/meson-gx-mmc.c cmd_data = host->bounce_dma_addr & CMD_DATA_MASK; host 796 drivers/mmc/host/meson-gx-mmc.c writel(cmd_cfg, host->regs + SD_EMMC_CMD_CFG); host 797 drivers/mmc/host/meson-gx-mmc.c writel(cmd_data, host->regs + SD_EMMC_CMD_DAT); host 798 drivers/mmc/host/meson-gx-mmc.c writel(0, host->regs + SD_EMMC_CMD_RSP); host 800 drivers/mmc/host/meson-gx-mmc.c writel(cmd->arg, host->regs + SD_EMMC_CMD_ARG); host 805 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 819 drivers/mmc/host/meson-gx-mmc.c writel(0, host->regs + SD_EMMC_START); host 829 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 832 drivers/mmc/host/meson-gx-mmc.c cmd->resp[0] = readl(host->regs + SD_EMMC_CMD_RSP3); host 833 drivers/mmc/host/meson-gx-mmc.c cmd->resp[1] = readl(host->regs + SD_EMMC_CMD_RSP2); host 834 drivers/mmc/host/meson-gx-mmc.c cmd->resp[2] = readl(host->regs + SD_EMMC_CMD_RSP1); host 835 drivers/mmc/host/meson-gx-mmc.c cmd->resp[3] = readl(host->regs + SD_EMMC_CMD_RSP); host 837 drivers/mmc/host/meson-gx-mmc.c cmd->resp[0] = readl(host->regs + SD_EMMC_CMD_RSP); host 843 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = dev_id; host 849 drivers/mmc/host/meson-gx-mmc.c irq_en = readl(host->regs + SD_EMMC_IRQ_EN); host 850 drivers/mmc/host/meson-gx-mmc.c raw_status = readl(host->regs + SD_EMMC_STATUS); host 854 drivers/mmc/host/meson-gx-mmc.c dev_dbg(host->dev, host 860 drivers/mmc/host/meson-gx-mmc.c if (WARN_ON(!host) || WARN_ON(!host->cmd)) host 864 drivers/mmc/host/meson-gx-mmc.c writel(status, host->regs + SD_EMMC_STATUS); host 866 drivers/mmc/host/meson-gx-mmc.c cmd = host->cmd; host 870 drivers/mmc/host/meson-gx-mmc.c dev_dbg(host->dev, "CRC Error - status 0x%08x\n", status); host 877 drivers/mmc/host/meson-gx-mmc.c dev_dbg(host->dev, "Timeout - status 0x%08x\n", status); host 883 drivers/mmc/host/meson-gx-mmc.c meson_mmc_read_resp(host->mmc, cmd); host 886 drivers/mmc/host/meson-gx-mmc.c dev_dbg(host->dev, "IRQ: SDIO TODO.\n"); host 903 drivers/mmc/host/meson-gx-mmc.c u32 start = readl(host->regs + SD_EMMC_START); host 906 drivers/mmc/host/meson-gx-mmc.c writel(start, host->regs + SD_EMMC_START); host 910 drivers/mmc/host/meson-gx-mmc.c meson_mmc_request_done(host->mmc, cmd->mrq); host 915 drivers/mmc/host/meson-gx-mmc.c static int meson_mmc_wait_desc_stop(struct meson_host *host) host 927 drivers/mmc/host/meson-gx-mmc.c return readl_poll_timeout(host->regs + SD_EMMC_STATUS, status, host 934 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = dev_id; host 935 drivers/mmc/host/meson-gx-mmc.c struct mmc_command *next_cmd, *cmd = host->cmd; host 943 drivers/mmc/host/meson-gx-mmc.c meson_mmc_wait_desc_stop(host); host 944 drivers/mmc/host/meson-gx-mmc.c meson_mmc_request_done(host->mmc, cmd->mrq); host 952 drivers/mmc/host/meson-gx-mmc.c WARN_ON(xfer_bytes > host->bounce_buf_size); host 954 drivers/mmc/host/meson-gx-mmc.c host->bounce_buf, xfer_bytes); host 959 drivers/mmc/host/meson-gx-mmc.c meson_mmc_start_cmd(host->mmc, next_cmd); host 961 drivers/mmc/host/meson-gx-mmc.c meson_mmc_request_done(host->mmc, cmd->mrq); host 980 drivers/mmc/host/meson-gx-mmc.c static void meson_mmc_cfg_init(struct meson_host *host) host 992 drivers/mmc/host/meson-gx-mmc.c writel(cfg, host->regs + SD_EMMC_CFG); host 997 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = mmc_priv(mmc); host 1000 drivers/mmc/host/meson-gx-mmc.c regval = readl(host->regs + SD_EMMC_STATUS); host 1041 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host; host 1048 drivers/mmc/host/meson-gx-mmc.c host = mmc_priv(mmc); host 1049 drivers/mmc/host/meson-gx-mmc.c host->mmc = mmc; host 1050 drivers/mmc/host/meson-gx-mmc.c host->dev = &pdev->dev; host 1051 drivers/mmc/host/meson-gx-mmc.c dev_set_drvdata(&pdev->dev, host); host 1054 drivers/mmc/host/meson-gx-mmc.c host->dram_access_quirk = device_property_read_bool(&pdev->dev, host 1058 drivers/mmc/host/meson-gx-mmc.c host->vqmmc_enabled = false; host 1070 drivers/mmc/host/meson-gx-mmc.c host->data = (struct meson_mmc_data *) host 1072 drivers/mmc/host/meson-gx-mmc.c if (!host->data) { host 1086 drivers/mmc/host/meson-gx-mmc.c host->regs = devm_ioremap_resource(&pdev->dev, res); host 1087 drivers/mmc/host/meson-gx-mmc.c if (IS_ERR(host->regs)) { host 1088 drivers/mmc/host/meson-gx-mmc.c ret = PTR_ERR(host->regs); host 1092 drivers/mmc/host/meson-gx-mmc.c host->irq = platform_get_irq(pdev, 0); host 1093 drivers/mmc/host/meson-gx-mmc.c if (host->irq <= 0) { host 1098 drivers/mmc/host/meson-gx-mmc.c host->pinctrl = devm_pinctrl_get(&pdev->dev); host 1099 drivers/mmc/host/meson-gx-mmc.c if (IS_ERR(host->pinctrl)) { host 1100 drivers/mmc/host/meson-gx-mmc.c ret = PTR_ERR(host->pinctrl); host 1104 drivers/mmc/host/meson-gx-mmc.c host->pins_default = pinctrl_lookup_state(host->pinctrl, host 1106 drivers/mmc/host/meson-gx-mmc.c if (IS_ERR(host->pins_default)) { host 1107 drivers/mmc/host/meson-gx-mmc.c ret = PTR_ERR(host->pins_default); host 1111 drivers/mmc/host/meson-gx-mmc.c host->pins_clk_gate = pinctrl_lookup_state(host->pinctrl, host 1113 drivers/mmc/host/meson-gx-mmc.c if (IS_ERR(host->pins_clk_gate)) { host 1116 drivers/mmc/host/meson-gx-mmc.c host->pins_clk_gate = NULL; host 1119 drivers/mmc/host/meson-gx-mmc.c host->core_clk = devm_clk_get(&pdev->dev, "core"); host 1120 drivers/mmc/host/meson-gx-mmc.c if (IS_ERR(host->core_clk)) { host 1121 drivers/mmc/host/meson-gx-mmc.c ret = PTR_ERR(host->core_clk); host 1125 drivers/mmc/host/meson-gx-mmc.c ret = clk_prepare_enable(host->core_clk); host 1129 drivers/mmc/host/meson-gx-mmc.c ret = meson_mmc_clk_init(host); host 1134 drivers/mmc/host/meson-gx-mmc.c meson_mmc_cfg_init(host); host 1137 drivers/mmc/host/meson-gx-mmc.c writel(0, host->regs + SD_EMMC_START); host 1140 drivers/mmc/host/meson-gx-mmc.c writel(0, host->regs + SD_EMMC_IRQ_EN); host 1142 drivers/mmc/host/meson-gx-mmc.c host->regs + SD_EMMC_STATUS); host 1144 drivers/mmc/host/meson-gx-mmc.c host->regs + SD_EMMC_IRQ_EN); host 1146 drivers/mmc/host/meson-gx-mmc.c ret = request_threaded_irq(host->irq, meson_mmc_irq, host 1148 drivers/mmc/host/meson-gx-mmc.c dev_name(&pdev->dev), host); host 1153 drivers/mmc/host/meson-gx-mmc.c if (host->dram_access_quirk) { host 1172 drivers/mmc/host/meson-gx-mmc.c if (host->dram_access_quirk) { host 1179 drivers/mmc/host/meson-gx-mmc.c host->bounce_buf_size = SD_EMMC_SRAM_DATA_BUF_LEN; host 1180 drivers/mmc/host/meson-gx-mmc.c host->bounce_buf = host->regs + SD_EMMC_SRAM_DATA_BUF_OFF; host 1181 drivers/mmc/host/meson-gx-mmc.c host->bounce_dma_addr = res->start + SD_EMMC_SRAM_DATA_BUF_OFF; host 1184 drivers/mmc/host/meson-gx-mmc.c host->bounce_buf_size = mmc->max_req_size; host 1185 drivers/mmc/host/meson-gx-mmc.c host->bounce_buf = host 1186 drivers/mmc/host/meson-gx-mmc.c dma_alloc_coherent(host->dev, host->bounce_buf_size, host 1187 drivers/mmc/host/meson-gx-mmc.c &host->bounce_dma_addr, GFP_KERNEL); host 1188 drivers/mmc/host/meson-gx-mmc.c if (host->bounce_buf == NULL) { host 1189 drivers/mmc/host/meson-gx-mmc.c dev_err(host->dev, "Unable to map allocate DMA bounce buffer.\n"); host 1195 drivers/mmc/host/meson-gx-mmc.c host->descs = dma_alloc_coherent(host->dev, SD_EMMC_DESC_BUF_LEN, host 1196 drivers/mmc/host/meson-gx-mmc.c &host->descs_dma_addr, GFP_KERNEL); host 1197 drivers/mmc/host/meson-gx-mmc.c if (!host->descs) { host 1198 drivers/mmc/host/meson-gx-mmc.c dev_err(host->dev, "Allocating descriptor DMA buffer failed\n"); host 1209 drivers/mmc/host/meson-gx-mmc.c if (!host->dram_access_quirk) host 1210 drivers/mmc/host/meson-gx-mmc.c dma_free_coherent(host->dev, host->bounce_buf_size, host 1211 drivers/mmc/host/meson-gx-mmc.c host->bounce_buf, host->bounce_dma_addr); host 1213 drivers/mmc/host/meson-gx-mmc.c free_irq(host->irq, host); host 1215 drivers/mmc/host/meson-gx-mmc.c clk_disable_unprepare(host->mmc_clk); host 1217 drivers/mmc/host/meson-gx-mmc.c clk_disable_unprepare(host->core_clk); host 1225 drivers/mmc/host/meson-gx-mmc.c struct meson_host *host = dev_get_drvdata(&pdev->dev); host 1227 drivers/mmc/host/meson-gx-mmc.c mmc_remove_host(host->mmc); host 1230 drivers/mmc/host/meson-gx-mmc.c writel(0, host->regs + SD_EMMC_IRQ_EN); host 1231 drivers/mmc/host/meson-gx-mmc.c free_irq(host->irq, host); host 1233 drivers/mmc/host/meson-gx-mmc.c dma_free_coherent(host->dev, SD_EMMC_DESC_BUF_LEN, host 1234 drivers/mmc/host/meson-gx-mmc.c host->descs, host->descs_dma_addr); host 1236 drivers/mmc/host/meson-gx-mmc.c if (!host->dram_access_quirk) host 1237 drivers/mmc/host/meson-gx-mmc.c dma_free_coherent(host->dev, host->bounce_buf_size, host 1238 drivers/mmc/host/meson-gx-mmc.c host->bounce_buf, host->bounce_dma_addr); host 1240 drivers/mmc/host/meson-gx-mmc.c clk_disable_unprepare(host->mmc_clk); host 1241 drivers/mmc/host/meson-gx-mmc.c clk_disable_unprepare(host->core_clk); host 1243 drivers/mmc/host/meson-gx-mmc.c mmc_free_host(host->mmc); host 128 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = mmc_priv(mmc); host 131 drivers/mmc/host/meson-mx-sdio.c regval = readl(host->base + reg); host 135 drivers/mmc/host/meson-mx-sdio.c writel(regval, host->base + reg); host 138 drivers/mmc/host/meson-mx-sdio.c static void meson_mx_mmc_soft_reset(struct meson_mx_mmc_host *host) host 140 drivers/mmc/host/meson-mx-sdio.c writel(MESON_MX_SDIO_IRQC_SOFT_RESET, host->base + MESON_MX_SDIO_IRQC); host 158 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = mmc_priv(mmc); host 163 drivers/mmc/host/meson-mx-sdio.c host->cmd = cmd; host 216 drivers/mmc/host/meson-mx-sdio.c spin_lock_irqsave(&host->irq_lock, irqflags); host 218 drivers/mmc/host/meson-mx-sdio.c mult = readl(host->base + MESON_MX_SDIO_MULT); host 220 drivers/mmc/host/meson-mx-sdio.c mult |= FIELD_PREP(MESON_MX_SDIO_MULT_PORT_SEL_MASK, host->slot_id); host 222 drivers/mmc/host/meson-mx-sdio.c writel(mult, host->base + MESON_MX_SDIO_MULT); host 234 drivers/mmc/host/meson-mx-sdio.c writel(cmd->arg, host->base + MESON_MX_SDIO_ARGU); host 235 drivers/mmc/host/meson-mx-sdio.c writel(ext, host->base + MESON_MX_SDIO_EXT); host 236 drivers/mmc/host/meson-mx-sdio.c writel(send, host->base + MESON_MX_SDIO_SEND); host 238 drivers/mmc/host/meson-mx-sdio.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 240 drivers/mmc/host/meson-mx-sdio.c mod_timer(&host->cmd_timeout, jiffies + timeout); host 243 drivers/mmc/host/meson-mx-sdio.c static void meson_mx_mmc_request_done(struct meson_mx_mmc_host *host) host 247 drivers/mmc/host/meson-mx-sdio.c mrq = host->mrq; host 249 drivers/mmc/host/meson-mx-sdio.c host->mrq = NULL; host 250 drivers/mmc/host/meson-mx-sdio.c host->cmd = NULL; host 252 drivers/mmc/host/meson-mx-sdio.c mmc_request_done(host->mmc, mrq); host 257 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = mmc_priv(mmc); host 277 drivers/mmc/host/meson-mx-sdio.c host->error = -EINVAL; host 281 drivers/mmc/host/meson-mx-sdio.c host->error = clk_set_rate(host->cfg_div_clk, ios->clock); host 282 drivers/mmc/host/meson-mx-sdio.c if (host->error) { host 285 drivers/mmc/host/meson-mx-sdio.c clk_rate, host->error); host 289 drivers/mmc/host/meson-mx-sdio.c mmc->actual_clock = clk_get_rate(host->cfg_div_clk); host 297 drivers/mmc/host/meson-mx-sdio.c host->error = mmc_regulator_set_ocr(mmc, host 300 drivers/mmc/host/meson-mx-sdio.c if (host->error) host 336 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = mmc_priv(mmc); host 339 drivers/mmc/host/meson-mx-sdio.c if (!host->error) host 340 drivers/mmc/host/meson-mx-sdio.c host->error = meson_mx_mmc_map_dma(mmc, mrq); host 342 drivers/mmc/host/meson-mx-sdio.c if (host->error) { host 343 drivers/mmc/host/meson-mx-sdio.c cmd->error = host->error; host 348 drivers/mmc/host/meson-mx-sdio.c host->mrq = mrq; host 352 drivers/mmc/host/meson-mx-sdio.c host->base + MESON_MX_SDIO_ADDR); host 363 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = mmc_priv(mmc); host 367 drivers/mmc/host/meson-mx-sdio.c mult = readl(host->base + MESON_MX_SDIO_MULT); host 371 drivers/mmc/host/meson-mx-sdio.c writel(mult, host->base + MESON_MX_SDIO_MULT); host 375 drivers/mmc/host/meson-mx-sdio.c resp[3 - i] = readl(host->base + MESON_MX_SDIO_ARGU); host 381 drivers/mmc/host/meson-mx-sdio.c cmd->resp[0] = readl(host->base + MESON_MX_SDIO_ARGU); host 385 drivers/mmc/host/meson-mx-sdio.c static irqreturn_t meson_mx_mmc_process_cmd_irq(struct meson_mx_mmc_host *host, host 388 drivers/mmc/host/meson-mx-sdio.c struct mmc_command *cmd = host->cmd; host 399 drivers/mmc/host/meson-mx-sdio.c meson_mx_mmc_read_response(host->mmc, cmd); host 416 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = (void *) data; host 421 drivers/mmc/host/meson-mx-sdio.c spin_lock_irqsave(&host->irq_lock, irqflags); host 423 drivers/mmc/host/meson-mx-sdio.c irqs = readl(host->base + MESON_MX_SDIO_IRQS); host 424 drivers/mmc/host/meson-mx-sdio.c send = readl(host->base + MESON_MX_SDIO_SEND); host 427 drivers/mmc/host/meson-mx-sdio.c ret = meson_mx_mmc_process_cmd_irq(host, irqs, send); host 432 drivers/mmc/host/meson-mx-sdio.c writel(irqs, host->base + MESON_MX_SDIO_IRQS); host 434 drivers/mmc/host/meson-mx-sdio.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 441 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = (void *) irq_data; host 442 drivers/mmc/host/meson-mx-sdio.c struct mmc_command *cmd = host->cmd, *next_cmd; host 447 drivers/mmc/host/meson-mx-sdio.c del_timer_sync(&host->cmd_timeout); host 450 drivers/mmc/host/meson-mx-sdio.c dma_unmap_sg(mmc_dev(host->mmc), cmd->data->sg, host 459 drivers/mmc/host/meson-mx-sdio.c meson_mx_mmc_start_cmd(host->mmc, next_cmd); host 461 drivers/mmc/host/meson-mx-sdio.c meson_mx_mmc_request_done(host); host 468 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = from_timer(host, t, cmd_timeout); host 472 drivers/mmc/host/meson-mx-sdio.c spin_lock_irqsave(&host->irq_lock, irqflags); host 475 drivers/mmc/host/meson-mx-sdio.c irqc = readl(host->base + MESON_MX_SDIO_IRQC); host 477 drivers/mmc/host/meson-mx-sdio.c writel(irqc, host->base + MESON_MX_SDIO_IRQC); host 479 drivers/mmc/host/meson-mx-sdio.c spin_unlock_irqrestore(&host->irq_lock, irqflags); host 485 drivers/mmc/host/meson-mx-sdio.c if (!host->cmd) host 488 drivers/mmc/host/meson-mx-sdio.c dev_dbg(mmc_dev(host->mmc), host 490 drivers/mmc/host/meson-mx-sdio.c host->cmd->opcode, readl(host->base + MESON_MX_SDIO_IRQS), host 491 drivers/mmc/host/meson-mx-sdio.c readl(host->base + MESON_MX_SDIO_ARGU)); host 493 drivers/mmc/host/meson-mx-sdio.c host->cmd->error = -ETIMEDOUT; host 495 drivers/mmc/host/meson-mx-sdio.c meson_mx_mmc_request_done(host); host 527 drivers/mmc/host/meson-mx-sdio.c static int meson_mx_mmc_add_host(struct meson_mx_mmc_host *host) host 529 drivers/mmc/host/meson-mx-sdio.c struct mmc_host *mmc = host->mmc; host 533 drivers/mmc/host/meson-mx-sdio.c if (of_property_read_u32(slot_dev->of_node, "reg", &host->slot_id)) { host 538 drivers/mmc/host/meson-mx-sdio.c if (host->slot_id >= MESON_MX_SDIO_MAX_SLOTS) { host 540 drivers/mmc/host/meson-mx-sdio.c host->slot_id); host 560 drivers/mmc/host/meson-mx-sdio.c mmc->f_min = clk_round_rate(host->cfg_div_clk, 1); host 561 drivers/mmc/host/meson-mx-sdio.c mmc->f_max = clk_round_rate(host->cfg_div_clk, host 562 drivers/mmc/host/meson-mx-sdio.c clk_get_rate(host->parent_clk)); host 578 drivers/mmc/host/meson-mx-sdio.c static int meson_mx_mmc_register_clks(struct meson_mx_mmc_host *host) host 583 drivers/mmc/host/meson-mx-sdio.c clk_fixed_factor_parent = __clk_get_name(host->parent_clk); host 584 drivers/mmc/host/meson-mx-sdio.c init.name = devm_kasprintf(host->controller_dev, GFP_KERNEL, host 586 drivers/mmc/host/meson-mx-sdio.c dev_name(host->controller_dev)); host 594 drivers/mmc/host/meson-mx-sdio.c host->fixed_factor.div = 2; host 595 drivers/mmc/host/meson-mx-sdio.c host->fixed_factor.mult = 1; host 596 drivers/mmc/host/meson-mx-sdio.c host->fixed_factor.hw.init = &init; host 598 drivers/mmc/host/meson-mx-sdio.c host->fixed_factor_clk = devm_clk_register(host->controller_dev, host 599 drivers/mmc/host/meson-mx-sdio.c &host->fixed_factor.hw); host 600 drivers/mmc/host/meson-mx-sdio.c if (WARN_ON(IS_ERR(host->fixed_factor_clk))) host 601 drivers/mmc/host/meson-mx-sdio.c return PTR_ERR(host->fixed_factor_clk); host 603 drivers/mmc/host/meson-mx-sdio.c clk_div_parent = __clk_get_name(host->fixed_factor_clk); host 604 drivers/mmc/host/meson-mx-sdio.c init.name = devm_kasprintf(host->controller_dev, GFP_KERNEL, host 605 drivers/mmc/host/meson-mx-sdio.c "%s#div", dev_name(host->controller_dev)); host 613 drivers/mmc/host/meson-mx-sdio.c host->cfg_div.reg = host->base + MESON_MX_SDIO_CONF; host 614 drivers/mmc/host/meson-mx-sdio.c host->cfg_div.shift = MESON_MX_SDIO_CONF_CMD_CLK_DIV_SHIFT; host 615 drivers/mmc/host/meson-mx-sdio.c host->cfg_div.width = MESON_MX_SDIO_CONF_CMD_CLK_DIV_WIDTH; host 616 drivers/mmc/host/meson-mx-sdio.c host->cfg_div.hw.init = &init; host 617 drivers/mmc/host/meson-mx-sdio.c host->cfg_div.flags = CLK_DIVIDER_ALLOW_ZERO; host 619 drivers/mmc/host/meson-mx-sdio.c host->cfg_div_clk = devm_clk_register(host->controller_dev, host 620 drivers/mmc/host/meson-mx-sdio.c &host->cfg_div.hw); host 621 drivers/mmc/host/meson-mx-sdio.c if (WARN_ON(IS_ERR(host->cfg_div_clk))) host 622 drivers/mmc/host/meson-mx-sdio.c return PTR_ERR(host->cfg_div_clk); host 631 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host; host 642 drivers/mmc/host/meson-mx-sdio.c mmc = mmc_alloc_host(sizeof(*host), &slot_pdev->dev); host 648 drivers/mmc/host/meson-mx-sdio.c host = mmc_priv(mmc); host 649 drivers/mmc/host/meson-mx-sdio.c host->mmc = mmc; host 650 drivers/mmc/host/meson-mx-sdio.c host->controller_dev = &pdev->dev; host 652 drivers/mmc/host/meson-mx-sdio.c spin_lock_init(&host->irq_lock); host 653 drivers/mmc/host/meson-mx-sdio.c timer_setup(&host->cmd_timeout, meson_mx_mmc_timeout, 0); host 655 drivers/mmc/host/meson-mx-sdio.c platform_set_drvdata(pdev, host); host 658 drivers/mmc/host/meson-mx-sdio.c host->base = devm_ioremap_resource(host->controller_dev, res); host 659 drivers/mmc/host/meson-mx-sdio.c if (IS_ERR(host->base)) { host 660 drivers/mmc/host/meson-mx-sdio.c ret = PTR_ERR(host->base); host 665 drivers/mmc/host/meson-mx-sdio.c ret = devm_request_threaded_irq(host->controller_dev, irq, host 668 drivers/mmc/host/meson-mx-sdio.c NULL, host); host 672 drivers/mmc/host/meson-mx-sdio.c host->core_clk = devm_clk_get(host->controller_dev, "core"); host 673 drivers/mmc/host/meson-mx-sdio.c if (IS_ERR(host->core_clk)) { host 674 drivers/mmc/host/meson-mx-sdio.c ret = PTR_ERR(host->core_clk); host 678 drivers/mmc/host/meson-mx-sdio.c host->parent_clk = devm_clk_get(host->controller_dev, "clkin"); host 679 drivers/mmc/host/meson-mx-sdio.c if (IS_ERR(host->parent_clk)) { host 680 drivers/mmc/host/meson-mx-sdio.c ret = PTR_ERR(host->parent_clk); host 684 drivers/mmc/host/meson-mx-sdio.c ret = meson_mx_mmc_register_clks(host); host 688 drivers/mmc/host/meson-mx-sdio.c ret = clk_prepare_enable(host->core_clk); host 690 drivers/mmc/host/meson-mx-sdio.c dev_err(host->controller_dev, "Failed to enable core clock\n"); host 694 drivers/mmc/host/meson-mx-sdio.c ret = clk_prepare_enable(host->cfg_div_clk); host 696 drivers/mmc/host/meson-mx-sdio.c dev_err(host->controller_dev, "Failed to enable MMC clock\n"); host 705 drivers/mmc/host/meson-mx-sdio.c writel(conf, host->base + MESON_MX_SDIO_CONF); host 707 drivers/mmc/host/meson-mx-sdio.c meson_mx_mmc_soft_reset(host); host 709 drivers/mmc/host/meson-mx-sdio.c ret = meson_mx_mmc_add_host(host); host 716 drivers/mmc/host/meson-mx-sdio.c clk_disable_unprepare(host->cfg_div_clk); host 718 drivers/mmc/host/meson-mx-sdio.c clk_disable_unprepare(host->core_clk); host 728 drivers/mmc/host/meson-mx-sdio.c struct meson_mx_mmc_host *host = platform_get_drvdata(pdev); host 729 drivers/mmc/host/meson-mx-sdio.c struct device *slot_dev = mmc_dev(host->mmc); host 731 drivers/mmc/host/meson-mx-sdio.c del_timer_sync(&host->cmd_timeout); host 733 drivers/mmc/host/meson-mx-sdio.c mmc_remove_host(host->mmc); host 737 drivers/mmc/host/meson-mx-sdio.c clk_disable_unprepare(host->cfg_div_clk); host 738 drivers/mmc/host/meson-mx-sdio.c clk_disable_unprepare(host->core_clk); host 740 drivers/mmc/host/meson-mx-sdio.c mmc_free_host(host->mmc); host 150 drivers/mmc/host/mmc_spi.c static inline int mmc_cs_off(struct mmc_spi_host *host) host 153 drivers/mmc/host/mmc_spi.c return spi_setup(host->spi); host 157 drivers/mmc/host/mmc_spi.c mmc_spi_readbytes(struct mmc_spi_host *host, unsigned len) host 161 drivers/mmc/host/mmc_spi.c if (len > sizeof(*host->data)) { host 166 drivers/mmc/host/mmc_spi.c host->status.len = len; host 168 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 169 drivers/mmc/host/mmc_spi.c dma_sync_single_for_device(host->dma_dev, host 170 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*host->data), host 173 drivers/mmc/host/mmc_spi.c status = spi_sync_locked(host->spi, &host->readback); host 175 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 176 drivers/mmc/host/mmc_spi.c dma_sync_single_for_cpu(host->dma_dev, host 177 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*host->data), host 183 drivers/mmc/host/mmc_spi.c static int mmc_spi_skip(struct mmc_spi_host *host, unsigned long timeout, host 186 drivers/mmc/host/mmc_spi.c u8 *cp = host->data->status; host 193 drivers/mmc/host/mmc_spi.c status = mmc_spi_readbytes(host, n); host 216 drivers/mmc/host/mmc_spi.c mmc_spi_wait_unbusy(struct mmc_spi_host *host, unsigned long timeout) host 218 drivers/mmc/host/mmc_spi.c return mmc_spi_skip(host, timeout, sizeof(host->data->status), 0); host 221 drivers/mmc/host/mmc_spi.c static int mmc_spi_readtoken(struct mmc_spi_host *host, unsigned long timeout) host 223 drivers/mmc/host/mmc_spi.c return mmc_spi_skip(host, timeout, 1, 0xff); host 248 drivers/mmc/host/mmc_spi.c static int mmc_spi_response_get(struct mmc_spi_host *host, host 251 drivers/mmc/host/mmc_spi.c u8 *cp = host->data->status; host 252 drivers/mmc/host/mmc_spi.c u8 *end = cp + host->t.len; host 275 drivers/mmc/host/mmc_spi.c cp = host->data->status; host 290 drivers/mmc/host/mmc_spi.c value = mmc_spi_readbytes(host, 1); host 307 drivers/mmc/host/mmc_spi.c value = mmc_spi_readbytes(host, 1); host 310 drivers/mmc/host/mmc_spi.c cp = host->data->status; host 350 drivers/mmc/host/mmc_spi.c mmc_spi_wait_unbusy(host, r1b_timeout); host 359 drivers/mmc/host/mmc_spi.c value = mmc_spi_readbytes(host, 1); host 362 drivers/mmc/host/mmc_spi.c cp = host->data->status; host 382 drivers/mmc/host/mmc_spi.c value = mmc_spi_readbytes(host, 1); host 385 drivers/mmc/host/mmc_spi.c cp = host->data->status; host 403 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, "bad response type %04x\n", host 411 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, "%s: resp %04x %08x\n", host 420 drivers/mmc/host/mmc_spi.c mmc_cs_off(host); host 431 drivers/mmc/host/mmc_spi.c mmc_spi_command_send(struct mmc_spi_host *host, host 435 drivers/mmc/host/mmc_spi.c struct scratch *data = host->data; host 509 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, " mmc_spi: CMD%d, resp %s\n", host 513 drivers/mmc/host/mmc_spi.c spi_message_init(&host->m); host 515 drivers/mmc/host/mmc_spi.c t = &host->t; host 518 drivers/mmc/host/mmc_spi.c t->tx_dma = t->rx_dma = host->data_dma; host 521 drivers/mmc/host/mmc_spi.c spi_message_add_tail(t, &host->m); host 523 drivers/mmc/host/mmc_spi.c if (host->dma_dev) { host 524 drivers/mmc/host/mmc_spi.c host->m.is_dma_mapped = 1; host 525 drivers/mmc/host/mmc_spi.c dma_sync_single_for_device(host->dma_dev, host 526 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*host->data), host 529 drivers/mmc/host/mmc_spi.c status = spi_sync_locked(host->spi, &host->m); host 531 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 532 drivers/mmc/host/mmc_spi.c dma_sync_single_for_cpu(host->dma_dev, host 533 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*host->data), host 536 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, " ... write returned %d\n", status); host 542 drivers/mmc/host/mmc_spi.c return mmc_spi_response_get(host, cmd, cs_on); host 558 drivers/mmc/host/mmc_spi.c struct mmc_spi_host *host, host 563 drivers/mmc/host/mmc_spi.c struct scratch *scratch = host->data; host 564 drivers/mmc/host/mmc_spi.c dma_addr_t dma = host->data_dma; host 566 drivers/mmc/host/mmc_spi.c spi_message_init(&host->m); host 568 drivers/mmc/host/mmc_spi.c host->m.is_dma_mapped = 1; host 574 drivers/mmc/host/mmc_spi.c t = &host->token; host 584 drivers/mmc/host/mmc_spi.c spi_message_add_tail(t, &host->m); host 590 drivers/mmc/host/mmc_spi.c t = &host->t; host 592 drivers/mmc/host/mmc_spi.c t->tx_buf = host->ones; host 593 drivers/mmc/host/mmc_spi.c t->tx_dma = host->ones_dma; host 595 drivers/mmc/host/mmc_spi.c spi_message_add_tail(t, &host->m); host 597 drivers/mmc/host/mmc_spi.c t = &host->crc; host 606 drivers/mmc/host/mmc_spi.c t->tx_buf = host->ones; host 607 drivers/mmc/host/mmc_spi.c t->tx_dma = host->ones_dma; host 612 drivers/mmc/host/mmc_spi.c spi_message_add_tail(t, &host->m); host 629 drivers/mmc/host/mmc_spi.c t = &host->early_status; host 632 drivers/mmc/host/mmc_spi.c t->tx_buf = host->ones; host 633 drivers/mmc/host/mmc_spi.c t->tx_dma = host->ones_dma; host 638 drivers/mmc/host/mmc_spi.c spi_message_add_tail(t, &host->m); host 655 drivers/mmc/host/mmc_spi.c mmc_spi_writeblock(struct mmc_spi_host *host, struct spi_transfer *t, host 658 drivers/mmc/host/mmc_spi.c struct spi_device *spi = host->spi; host 660 drivers/mmc/host/mmc_spi.c struct scratch *scratch = host->data; host 663 drivers/mmc/host/mmc_spi.c if (host->mmc->use_spi_crc) host 665 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 666 drivers/mmc/host/mmc_spi.c dma_sync_single_for_device(host->dma_dev, host 667 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*scratch), host 670 drivers/mmc/host/mmc_spi.c status = spi_sync_locked(spi, &host->m); host 677 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 678 drivers/mmc/host/mmc_spi.c dma_sync_single_for_cpu(host->dma_dev, host 679 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*scratch), host 730 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 741 drivers/mmc/host/mmc_spi.c return mmc_spi_wait_unbusy(host, timeout); host 761 drivers/mmc/host/mmc_spi.c mmc_spi_readblock(struct mmc_spi_host *host, struct spi_transfer *t, host 764 drivers/mmc/host/mmc_spi.c struct spi_device *spi = host->spi; host 766 drivers/mmc/host/mmc_spi.c struct scratch *scratch = host->data; host 773 drivers/mmc/host/mmc_spi.c status = mmc_spi_readbytes(host, 1); host 778 drivers/mmc/host/mmc_spi.c status = mmc_spi_readtoken(host, timeout); host 795 drivers/mmc/host/mmc_spi.c if (host->dma_dev) { host 796 drivers/mmc/host/mmc_spi.c dma_sync_single_for_device(host->dma_dev, host 797 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*scratch), host 799 drivers/mmc/host/mmc_spi.c dma_sync_single_for_device(host->dma_dev, host 804 drivers/mmc/host/mmc_spi.c status = spi_sync_locked(spi, &host->m); host 810 drivers/mmc/host/mmc_spi.c if (host->dma_dev) { host 811 drivers/mmc/host/mmc_spi.c dma_sync_single_for_cpu(host->dma_dev, host 812 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*scratch), host 814 drivers/mmc/host/mmc_spi.c dma_sync_single_for_cpu(host->dma_dev, host 840 drivers/mmc/host/mmc_spi.c if (host->mmc->use_spi_crc) { host 853 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 865 drivers/mmc/host/mmc_spi.c mmc_spi_data_do(struct mmc_spi_host *host, struct mmc_command *cmd, host 868 drivers/mmc/host/mmc_spi.c struct spi_device *spi = host->spi; host 869 drivers/mmc/host/mmc_spi.c struct device *dma_dev = host->dma_dev; host 879 drivers/mmc/host/mmc_spi.c mmc_spi_setup_data_message(host, multiple, direction); host 880 drivers/mmc/host/mmc_spi.c t = &host->t; host 933 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, host 939 drivers/mmc/host/mmc_spi.c status = mmc_spi_writeblock(host, t, timeout); host 941 drivers/mmc/host/mmc_spi.c status = mmc_spi_readblock(host, t, timeout); host 975 drivers/mmc/host/mmc_spi.c struct scratch *scratch = host->data; host 986 drivers/mmc/host/mmc_spi.c INIT_LIST_HEAD(&host->m.transfers); host 987 drivers/mmc/host/mmc_spi.c list_add(&host->early_status.transfer_list, host 988 drivers/mmc/host/mmc_spi.c &host->m.transfers); host 993 drivers/mmc/host/mmc_spi.c host->early_status.tx_buf = host->early_status.rx_buf; host 994 drivers/mmc/host/mmc_spi.c host->early_status.tx_dma = host->early_status.rx_dma; host 995 drivers/mmc/host/mmc_spi.c host->early_status.len = statlen; host 997 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 998 drivers/mmc/host/mmc_spi.c dma_sync_single_for_device(host->dma_dev, host 999 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*scratch), host 1002 drivers/mmc/host/mmc_spi.c tmp = spi_sync_locked(spi, &host->m); host 1004 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 1005 drivers/mmc/host/mmc_spi.c dma_sync_single_for_cpu(host->dma_dev, host 1006 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*scratch), host 1023 drivers/mmc/host/mmc_spi.c tmp = mmc_spi_wait_unbusy(host, timeout); host 1037 drivers/mmc/host/mmc_spi.c struct mmc_spi_host *host = mmc_priv(mmc); host 1050 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, "bogus command\n"); host 1057 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, "bogus STOP command\n"); host 1064 drivers/mmc/host/mmc_spi.c mmc_request_done(host->mmc, mrq); host 1071 drivers/mmc/host/mmc_spi.c spi_bus_lock(host->spi->master); host 1075 drivers/mmc/host/mmc_spi.c status = mmc_spi_command_send(host, mrq, mrq->cmd, mrq->data != NULL); host 1077 drivers/mmc/host/mmc_spi.c mmc_spi_data_do(host, mrq->cmd, mrq->data, mrq->data->blksz); host 1090 drivers/mmc/host/mmc_spi.c status = mmc_spi_command_send(host, mrq, &stop, 0); host 1097 drivers/mmc/host/mmc_spi.c status = mmc_spi_command_send(host, mrq, mrq->stop, 0); host 1099 drivers/mmc/host/mmc_spi.c mmc_cs_off(host); host 1103 drivers/mmc/host/mmc_spi.c spi_bus_unlock(host->spi->master); host 1105 drivers/mmc/host/mmc_spi.c mmc_request_done(host->mmc, mrq); host 1116 drivers/mmc/host/mmc_spi.c static void mmc_spi_initsequence(struct mmc_spi_host *host) host 1121 drivers/mmc/host/mmc_spi.c mmc_spi_wait_unbusy(host, r1b_timeout); host 1122 drivers/mmc/host/mmc_spi.c mmc_spi_readbytes(host, 10); host 1143 drivers/mmc/host/mmc_spi.c host->spi->mode ^= SPI_CS_HIGH; host 1144 drivers/mmc/host/mmc_spi.c if (spi_setup(host->spi) != 0) { host 1146 drivers/mmc/host/mmc_spi.c dev_warn(&host->spi->dev, host 1148 drivers/mmc/host/mmc_spi.c host->spi->mode ^= SPI_CS_HIGH; host 1150 drivers/mmc/host/mmc_spi.c mmc_spi_readbytes(host, 18); host 1152 drivers/mmc/host/mmc_spi.c host->spi->mode ^= SPI_CS_HIGH; host 1153 drivers/mmc/host/mmc_spi.c if (spi_setup(host->spi) != 0) { host 1155 drivers/mmc/host/mmc_spi.c dev_err(&host->spi->dev, host 1173 drivers/mmc/host/mmc_spi.c struct mmc_spi_host *host = mmc_priv(mmc); host 1175 drivers/mmc/host/mmc_spi.c if (host->power_mode != ios->power_mode) { host 1178 drivers/mmc/host/mmc_spi.c canpower = host->pdata && host->pdata->setpower; host 1180 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, "mmc_spi: power %s (%d)%s\n", host 1192 drivers/mmc/host/mmc_spi.c host->pdata->setpower(&host->spi->dev, host 1195 drivers/mmc/host/mmc_spi.c msleep(host->powerup_msecs); host 1201 drivers/mmc/host/mmc_spi.c mmc_spi_initsequence(host); host 1216 drivers/mmc/host/mmc_spi.c host->spi->mode &= ~(SPI_CPOL|SPI_CPHA); host 1217 drivers/mmc/host/mmc_spi.c mres = spi_setup(host->spi); host 1219 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, host 1222 drivers/mmc/host/mmc_spi.c if (spi_write(host->spi, &nullbyte, 1) < 0) host 1223 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, host 1237 drivers/mmc/host/mmc_spi.c host->spi->mode |= (SPI_CPOL|SPI_CPHA); host 1238 drivers/mmc/host/mmc_spi.c mres = spi_setup(host->spi); host 1240 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, host 1245 drivers/mmc/host/mmc_spi.c host->power_mode = ios->power_mode; host 1248 drivers/mmc/host/mmc_spi.c if (host->spi->max_speed_hz != ios->clock && ios->clock != 0) { host 1251 drivers/mmc/host/mmc_spi.c host->spi->max_speed_hz = ios->clock; host 1252 drivers/mmc/host/mmc_spi.c status = spi_setup(host->spi); host 1253 drivers/mmc/host/mmc_spi.c dev_dbg(&host->spi->dev, host 1255 drivers/mmc/host/mmc_spi.c host->spi->max_speed_hz, status); host 1276 drivers/mmc/host/mmc_spi.c struct mmc_spi_host *host = mmc_priv(mmc); host 1277 drivers/mmc/host/mmc_spi.c u16 delay_msec = max(host->pdata->detect_delay, (u16)100); host 1287 drivers/mmc/host/mmc_spi.c struct mmc_spi_host *host; host 1327 drivers/mmc/host/mmc_spi.c mmc = mmc_alloc_host(sizeof(*host), &spi->dev); host 1350 drivers/mmc/host/mmc_spi.c host = mmc_priv(mmc); host 1351 drivers/mmc/host/mmc_spi.c host->mmc = mmc; host 1352 drivers/mmc/host/mmc_spi.c host->spi = spi; host 1354 drivers/mmc/host/mmc_spi.c host->ones = ones; host 1359 drivers/mmc/host/mmc_spi.c host->pdata = mmc_spi_get_pdata(spi); host 1360 drivers/mmc/host/mmc_spi.c if (host->pdata) host 1361 drivers/mmc/host/mmc_spi.c mmc->ocr_avail = host->pdata->ocr_mask; host 1366 drivers/mmc/host/mmc_spi.c if (host->pdata && host->pdata->setpower) { host 1367 drivers/mmc/host/mmc_spi.c host->powerup_msecs = host->pdata->powerup_msecs; host 1368 drivers/mmc/host/mmc_spi.c if (!host->powerup_msecs || host->powerup_msecs > 250) host 1369 drivers/mmc/host/mmc_spi.c host->powerup_msecs = 250; host 1375 drivers/mmc/host/mmc_spi.c host->data = kmalloc(sizeof(*host->data), GFP_KERNEL); host 1376 drivers/mmc/host/mmc_spi.c if (!host->data) host 1382 drivers/mmc/host/mmc_spi.c host->dma_dev = dev; host 1383 drivers/mmc/host/mmc_spi.c host->ones_dma = dma_map_single(dev, ones, host 1385 drivers/mmc/host/mmc_spi.c if (dma_mapping_error(dev, host->ones_dma)) host 1387 drivers/mmc/host/mmc_spi.c host->data_dma = dma_map_single(dev, host->data, host 1388 drivers/mmc/host/mmc_spi.c sizeof(*host->data), DMA_BIDIRECTIONAL); host 1389 drivers/mmc/host/mmc_spi.c if (dma_mapping_error(dev, host->data_dma)) host 1392 drivers/mmc/host/mmc_spi.c dma_sync_single_for_cpu(host->dma_dev, host 1393 drivers/mmc/host/mmc_spi.c host->data_dma, sizeof(*host->data), host 1398 drivers/mmc/host/mmc_spi.c spi_message_init(&host->readback); host 1399 drivers/mmc/host/mmc_spi.c host->readback.is_dma_mapped = (host->dma_dev != NULL); host 1401 drivers/mmc/host/mmc_spi.c spi_message_add_tail(&host->status, &host->readback); host 1402 drivers/mmc/host/mmc_spi.c host->status.tx_buf = host->ones; host 1403 drivers/mmc/host/mmc_spi.c host->status.tx_dma = host->ones_dma; host 1404 drivers/mmc/host/mmc_spi.c host->status.rx_buf = &host->data->status; host 1405 drivers/mmc/host/mmc_spi.c host->status.rx_dma = host->data_dma + offsetof(struct scratch, status); host 1406 drivers/mmc/host/mmc_spi.c host->status.cs_change = 1; host 1409 drivers/mmc/host/mmc_spi.c if (host->pdata && host->pdata->init) { host 1410 drivers/mmc/host/mmc_spi.c status = host->pdata->init(&spi->dev, mmc_spi_detect_irq, mmc); host 1416 drivers/mmc/host/mmc_spi.c if (host->pdata) { host 1417 drivers/mmc/host/mmc_spi.c mmc->caps |= host->pdata->caps; host 1418 drivers/mmc/host/mmc_spi.c mmc->caps2 |= host->pdata->caps2; host 1452 drivers/mmc/host/mmc_spi.c host->dma_dev ? "" : ", no DMA", host 1454 drivers/mmc/host/mmc_spi.c (host->pdata && host->pdata->setpower) host 1463 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 1464 drivers/mmc/host/mmc_spi.c dma_unmap_single(host->dma_dev, host->data_dma, host 1465 drivers/mmc/host/mmc_spi.c sizeof(*host->data), DMA_BIDIRECTIONAL); host 1467 drivers/mmc/host/mmc_spi.c if (host->dma_dev) host 1468 drivers/mmc/host/mmc_spi.c dma_unmap_single(host->dma_dev, host->ones_dma, host 1471 drivers/mmc/host/mmc_spi.c kfree(host->data); host 1486 drivers/mmc/host/mmc_spi.c struct mmc_spi_host *host = mmc_priv(mmc); host 1489 drivers/mmc/host/mmc_spi.c if (host->pdata && host->pdata->exit) host 1490 drivers/mmc/host/mmc_spi.c host->pdata->exit(&spi->dev, mmc); host 1494 drivers/mmc/host/mmc_spi.c if (host->dma_dev) { host 1495 drivers/mmc/host/mmc_spi.c dma_unmap_single(host->dma_dev, host->ones_dma, host 1497 drivers/mmc/host/mmc_spi.c dma_unmap_single(host->dma_dev, host->data_dma, host 1498 drivers/mmc/host/mmc_spi.c sizeof(*host->data), DMA_BIDIRECTIONAL); host 1501 drivers/mmc/host/mmc_spi.c kfree(host->data); host 1502 drivers/mmc/host/mmc_spi.c kfree(host->ones); host 46 drivers/mmc/host/mmci.c static void mmci_variant_init(struct mmci_host *host); host 47 drivers/mmc/host/mmci.c static void ux500v2_variant_init(struct mmci_host *host); host 297 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 301 drivers/mmc/host/mmci.c spin_lock_irqsave(&host->lock, flags); host 302 drivers/mmc/host/mmci.c if (readl(host->base + MMCISTATUS) & host->variant->busy_detect_flag) host 304 drivers/mmc/host/mmci.c spin_unlock_irqrestore(&host->lock, flags); host 309 drivers/mmc/host/mmci.c static void mmci_reg_delay(struct mmci_host *host) host 318 drivers/mmc/host/mmci.c if (host->cclk < 25000000) host 327 drivers/mmc/host/mmci.c void mmci_write_clkreg(struct mmci_host *host, u32 clk) host 329 drivers/mmc/host/mmci.c if (host->clk_reg != clk) { host 330 drivers/mmc/host/mmci.c host->clk_reg = clk; host 331 drivers/mmc/host/mmci.c writel(clk, host->base + MMCICLOCK); host 338 drivers/mmc/host/mmci.c void mmci_write_pwrreg(struct mmci_host *host, u32 pwr) host 340 drivers/mmc/host/mmci.c if (host->pwr_reg != pwr) { host 341 drivers/mmc/host/mmci.c host->pwr_reg = pwr; host 342 drivers/mmc/host/mmci.c writel(pwr, host->base + MMCIPOWER); host 349 drivers/mmc/host/mmci.c static void mmci_write_datactrlreg(struct mmci_host *host, u32 datactrl) host 352 drivers/mmc/host/mmci.c datactrl |= host->datactrl_reg & host->variant->busy_dpsm_flag; host 354 drivers/mmc/host/mmci.c if (host->datactrl_reg != datactrl) { host 355 drivers/mmc/host/mmci.c host->datactrl_reg = datactrl; host 356 drivers/mmc/host/mmci.c writel(datactrl, host->base + MMCIDATACTRL); host 363 drivers/mmc/host/mmci.c static void mmci_set_clkreg(struct mmci_host *host, unsigned int desired) host 365 drivers/mmc/host/mmci.c struct variant_data *variant = host->variant; host 369 drivers/mmc/host/mmci.c host->cclk = 0; host 373 drivers/mmc/host/mmci.c host->cclk = host->mclk; host 374 drivers/mmc/host/mmci.c } else if (desired >= host->mclk) { host 378 drivers/mmc/host/mmci.c host->cclk = host->mclk; host 386 drivers/mmc/host/mmci.c clk = DIV_ROUND_UP(host->mclk, desired) - 2; host 389 drivers/mmc/host/mmci.c host->cclk = host->mclk / (clk + 2); host 395 drivers/mmc/host/mmci.c clk = host->mclk / (2 * desired) - 1; host 398 drivers/mmc/host/mmci.c host->cclk = host->mclk / (2 * (clk + 1)); host 408 drivers/mmc/host/mmci.c host->mmc->actual_clock = host->cclk; host 410 drivers/mmc/host/mmci.c if (host->mmc->ios.bus_width == MMC_BUS_WIDTH_4) host 412 drivers/mmc/host/mmci.c if (host->mmc->ios.bus_width == MMC_BUS_WIDTH_8) host 415 drivers/mmc/host/mmci.c if (host->mmc->ios.timing == MMC_TIMING_UHS_DDR50 || host 416 drivers/mmc/host/mmci.c host->mmc->ios.timing == MMC_TIMING_MMC_DDR52) host 419 drivers/mmc/host/mmci.c mmci_write_clkreg(host, clk); host 422 drivers/mmc/host/mmci.c void mmci_dma_release(struct mmci_host *host) host 424 drivers/mmc/host/mmci.c if (host->ops && host->ops->dma_release) host 425 drivers/mmc/host/mmci.c host->ops->dma_release(host); host 427 drivers/mmc/host/mmci.c host->use_dma = false; host 430 drivers/mmc/host/mmci.c void mmci_dma_setup(struct mmci_host *host) host 432 drivers/mmc/host/mmci.c if (!host->ops || !host->ops->dma_setup) host 435 drivers/mmc/host/mmci.c if (host->ops->dma_setup(host)) host 439 drivers/mmc/host/mmci.c host->next_cookie = 1; host 441 drivers/mmc/host/mmci.c host->use_dma = true; host 447 drivers/mmc/host/mmci.c static int mmci_validate_data(struct mmci_host *host, host 454 drivers/mmc/host/mmci.c dev_err(mmc_dev(host->mmc), host 459 drivers/mmc/host/mmci.c if (host->ops && host->ops->validate_data) host 460 drivers/mmc/host/mmci.c return host->ops->validate_data(host, data); host 465 drivers/mmc/host/mmci.c int mmci_prep_data(struct mmci_host *host, struct mmc_data *data, bool next) host 469 drivers/mmc/host/mmci.c if (!host->ops || !host->ops->prep_data) host 472 drivers/mmc/host/mmci.c err = host->ops->prep_data(host, data, next); host 475 drivers/mmc/host/mmci.c data->host_cookie = ++host->next_cookie < 0 ? host 476 drivers/mmc/host/mmci.c 1 : host->next_cookie; host 481 drivers/mmc/host/mmci.c void mmci_unprep_data(struct mmci_host *host, struct mmc_data *data, host 484 drivers/mmc/host/mmci.c if (host->ops && host->ops->unprep_data) host 485 drivers/mmc/host/mmci.c host->ops->unprep_data(host, data, err); host 490 drivers/mmc/host/mmci.c void mmci_get_next_data(struct mmci_host *host, struct mmc_data *data) host 492 drivers/mmc/host/mmci.c WARN_ON(data->host_cookie && data->host_cookie != host->next_cookie); host 494 drivers/mmc/host/mmci.c if (host->ops && host->ops->get_next_data) host 495 drivers/mmc/host/mmci.c host->ops->get_next_data(host, data); host 498 drivers/mmc/host/mmci.c int mmci_dma_start(struct mmci_host *host, unsigned int datactrl) host 500 drivers/mmc/host/mmci.c struct mmc_data *data = host->data; host 503 drivers/mmc/host/mmci.c if (!host->use_dma) host 506 drivers/mmc/host/mmci.c ret = mmci_prep_data(host, data, false); host 510 drivers/mmc/host/mmci.c if (!host->ops || !host->ops->dma_start) host 514 drivers/mmc/host/mmci.c dev_vdbg(mmc_dev(host->mmc), host 518 drivers/mmc/host/mmci.c host->ops->dma_start(host, &datactrl); host 521 drivers/mmc/host/mmci.c mmci_write_datactrlreg(host, datactrl); host 528 drivers/mmc/host/mmci.c writel(readl(host->base + MMCIMASK0) | MCI_DATAENDMASK, host 529 drivers/mmc/host/mmci.c host->base + MMCIMASK0); host 533 drivers/mmc/host/mmci.c void mmci_dma_finalize(struct mmci_host *host, struct mmc_data *data) host 535 drivers/mmc/host/mmci.c if (!host->use_dma) host 538 drivers/mmc/host/mmci.c if (host->ops && host->ops->dma_finalize) host 539 drivers/mmc/host/mmci.c host->ops->dma_finalize(host, data); host 542 drivers/mmc/host/mmci.c void mmci_dma_error(struct mmci_host *host) host 544 drivers/mmc/host/mmci.c if (!host->use_dma) host 547 drivers/mmc/host/mmci.c if (host->ops && host->ops->dma_error) host 548 drivers/mmc/host/mmci.c host->ops->dma_error(host); host 552 drivers/mmc/host/mmci.c mmci_request_end(struct mmci_host *host, struct mmc_request *mrq) host 554 drivers/mmc/host/mmci.c writel(0, host->base + MMCICOMMAND); host 556 drivers/mmc/host/mmci.c BUG_ON(host->data); host 558 drivers/mmc/host/mmci.c host->mrq = NULL; host 559 drivers/mmc/host/mmci.c host->cmd = NULL; host 561 drivers/mmc/host/mmci.c mmc_request_done(host->mmc, mrq); host 564 drivers/mmc/host/mmci.c static void mmci_set_mask1(struct mmci_host *host, unsigned int mask) host 566 drivers/mmc/host/mmci.c void __iomem *base = host->base; host 567 drivers/mmc/host/mmci.c struct variant_data *variant = host->variant; host 569 drivers/mmc/host/mmci.c if (host->singleirq) { host 581 drivers/mmc/host/mmci.c host->mask1_reg = mask; host 584 drivers/mmc/host/mmci.c static void mmci_stop_data(struct mmci_host *host) host 586 drivers/mmc/host/mmci.c mmci_write_datactrlreg(host, 0); host 587 drivers/mmc/host/mmci.c mmci_set_mask1(host, 0); host 588 drivers/mmc/host/mmci.c host->data = NULL; host 591 drivers/mmc/host/mmci.c static void mmci_init_sg(struct mmci_host *host, struct mmc_data *data) host 600 drivers/mmc/host/mmci.c sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags); host 603 drivers/mmc/host/mmci.c static u32 mmci_get_dctrl_cfg(struct mmci_host *host) host 605 drivers/mmc/host/mmci.c return MCI_DPSM_ENABLE | mmci_dctrl_blksz(host); host 608 drivers/mmc/host/mmci.c static u32 ux500v2_get_dctrl_cfg(struct mmci_host *host) host 610 drivers/mmc/host/mmci.c return MCI_DPSM_ENABLE | (host->data->blksz << 16); host 632 drivers/mmc/host/mmci.c int mmci_dmae_setup(struct mmci_host *host) host 637 drivers/mmc/host/mmci.c dmae = devm_kzalloc(mmc_dev(host->mmc), sizeof(*dmae), GFP_KERNEL); host 641 drivers/mmc/host/mmci.c host->dma_priv = dmae; host 643 drivers/mmc/host/mmci.c dmae->rx_channel = dma_request_slave_channel(mmc_dev(host->mmc), host 645 drivers/mmc/host/mmci.c dmae->tx_channel = dma_request_slave_channel(mmc_dev(host->mmc), host 666 drivers/mmc/host/mmci.c dev_info(mmc_dev(host->mmc), "DMA channels RX %s, TX %s\n", host 677 drivers/mmc/host/mmci.c if (max_seg_size < host->mmc->max_seg_size) host 678 drivers/mmc/host/mmci.c host->mmc->max_seg_size = max_seg_size; host 684 drivers/mmc/host/mmci.c if (max_seg_size < host->mmc->max_seg_size) host 685 drivers/mmc/host/mmci.c host->mmc->max_seg_size = max_seg_size; host 689 drivers/mmc/host/mmci.c mmci_dmae_release(host); host 700 drivers/mmc/host/mmci.c void mmci_dmae_release(struct mmci_host *host) host 702 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 711 drivers/mmc/host/mmci.c static void mmci_dma_unmap(struct mmci_host *host, struct mmc_data *data) host 713 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 725 drivers/mmc/host/mmci.c void mmci_dmae_error(struct mmci_host *host) host 727 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 729 drivers/mmc/host/mmci.c if (!dma_inprogress(host)) host 732 drivers/mmc/host/mmci.c dev_err(mmc_dev(host->mmc), "error during DMA transfer!\n"); host 734 drivers/mmc/host/mmci.c host->dma_in_progress = false; host 737 drivers/mmc/host/mmci.c host->data->host_cookie = 0; host 739 drivers/mmc/host/mmci.c mmci_dma_unmap(host, host->data); host 742 drivers/mmc/host/mmci.c void mmci_dmae_finalize(struct mmci_host *host, struct mmc_data *data) host 744 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 748 drivers/mmc/host/mmci.c if (!dma_inprogress(host)) host 753 drivers/mmc/host/mmci.c status = readl(host->base + MMCISTATUS); host 766 drivers/mmc/host/mmci.c mmci_dma_error(host); host 770 drivers/mmc/host/mmci.c mmci_dma_unmap(host, data); host 778 drivers/mmc/host/mmci.c dev_err(mmc_dev(host->mmc), "buggy DMA detected. Taking evasive action.\n"); host 779 drivers/mmc/host/mmci.c mmci_dma_release(host); host 782 drivers/mmc/host/mmci.c host->dma_in_progress = false; host 788 drivers/mmc/host/mmci.c static int _mmci_dmae_prep_data(struct mmci_host *host, struct mmc_data *data, host 792 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 793 drivers/mmc/host/mmci.c struct variant_data *variant = host->variant; host 795 drivers/mmc/host/mmci.c .src_addr = host->phybase + MMCIFIFO, host 796 drivers/mmc/host/mmci.c .dst_addr = host->phybase + MMCIFIFO, host 831 drivers/mmc/host/mmci.c if (host->variant->qcom_dml) host 851 drivers/mmc/host/mmci.c int mmci_dmae_prep_data(struct mmci_host *host, host 855 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 858 drivers/mmc/host/mmci.c if (!host->use_dma) host 862 drivers/mmc/host/mmci.c return _mmci_dmae_prep_data(host, data, &nd->chan, &nd->desc); host 868 drivers/mmc/host/mmci.c return _mmci_dmae_prep_data(host, data, &dmae->cur, host 872 drivers/mmc/host/mmci.c int mmci_dmae_start(struct mmci_host *host, unsigned int *datactrl) host 874 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 876 drivers/mmc/host/mmci.c host->dma_in_progress = true; host 885 drivers/mmc/host/mmci.c void mmci_dmae_get_next_data(struct mmci_host *host, struct mmc_data *data) host 887 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 890 drivers/mmc/host/mmci.c if (!host->use_dma) host 901 drivers/mmc/host/mmci.c void mmci_dmae_unprep_data(struct mmci_host *host, host 905 drivers/mmc/host/mmci.c struct mmci_dmae_priv *dmae = host->dma_priv; host 907 drivers/mmc/host/mmci.c if (!host->use_dma) host 910 drivers/mmc/host/mmci.c mmci_dma_unmap(host, data); host 925 drivers/mmc/host/mmci.c host->dma_in_progress = false; host 951 drivers/mmc/host/mmci.c void mmci_variant_init(struct mmci_host *host) host 953 drivers/mmc/host/mmci.c host->ops = &mmci_variant_ops; host 956 drivers/mmc/host/mmci.c void ux500v2_variant_init(struct mmci_host *host) host 958 drivers/mmc/host/mmci.c host->ops = &mmci_variant_ops; host 959 drivers/mmc/host/mmci.c host->ops->get_datactrl_cfg = ux500v2_get_dctrl_cfg; host 964 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 972 drivers/mmc/host/mmci.c if (mmci_validate_data(host, data)) host 975 drivers/mmc/host/mmci.c mmci_prep_data(host, data, true); host 981 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 987 drivers/mmc/host/mmci.c mmci_unprep_data(host, data, err); host 990 drivers/mmc/host/mmci.c static void mmci_start_data(struct mmci_host *host, struct mmc_data *data) host 992 drivers/mmc/host/mmci.c struct variant_data *variant = host->variant; host 997 drivers/mmc/host/mmci.c dev_dbg(mmc_dev(host->mmc), "blksz %04x blks %04x flags %08x\n", host 1000 drivers/mmc/host/mmci.c host->data = data; host 1001 drivers/mmc/host/mmci.c host->size = data->blksz * data->blocks; host 1004 drivers/mmc/host/mmci.c clks = (unsigned long long)data->timeout_ns * host->cclk; host 1009 drivers/mmc/host/mmci.c base = host->base; host 1011 drivers/mmc/host/mmci.c writel(host->size, base + MMCIDATALENGTH); host 1013 drivers/mmc/host/mmci.c datactrl = host->ops->get_datactrl_cfg(host); host 1014 drivers/mmc/host/mmci.c datactrl |= host->data->flags & MMC_DATA_READ ? MCI_DPSM_DIRECTION : 0; host 1016 drivers/mmc/host/mmci.c if (host->mmc->card && mmc_card_sdio(host->mmc->card)) { host 1028 drivers/mmc/host/mmci.c (host->size < 8 || host 1029 drivers/mmc/host/mmci.c (host->size <= 8 && host->mclk > 50000000))) host 1030 drivers/mmc/host/mmci.c clk = host->clk_reg & ~variant->clkreg_enable; host 1032 drivers/mmc/host/mmci.c clk = host->clk_reg | variant->clkreg_enable; host 1034 drivers/mmc/host/mmci.c mmci_write_clkreg(host, clk); host 1037 drivers/mmc/host/mmci.c if (host->mmc->ios.timing == MMC_TIMING_UHS_DDR50 || host 1038 drivers/mmc/host/mmci.c host->mmc->ios.timing == MMC_TIMING_MMC_DDR52) host 1045 drivers/mmc/host/mmci.c if (!mmci_dma_start(host, datactrl)) host 1049 drivers/mmc/host/mmci.c mmci_init_sg(host, data); host 1059 drivers/mmc/host/mmci.c if (host->size < variant->fifohalfsize) host 1069 drivers/mmc/host/mmci.c mmci_write_datactrlreg(host, datactrl); host 1071 drivers/mmc/host/mmci.c mmci_set_mask1(host, irqmask); host 1075 drivers/mmc/host/mmci.c mmci_start_command(struct mmci_host *host, struct mmc_command *cmd, u32 c) host 1077 drivers/mmc/host/mmci.c void __iomem *base = host->base; host 1079 drivers/mmc/host/mmci.c dev_dbg(mmc_dev(host->mmc), "op %02x arg %08x flags %08x\n", host 1082 drivers/mmc/host/mmci.c if (readl(base + MMCICOMMAND) & host->variant->cmdreg_cpsm_enable) { host 1084 drivers/mmc/host/mmci.c mmci_reg_delay(host); host 1087 drivers/mmc/host/mmci.c if (host->variant->cmdreg_stop && host 1089 drivers/mmc/host/mmci.c c |= host->variant->cmdreg_stop; host 1091 drivers/mmc/host/mmci.c c |= cmd->opcode | host->variant->cmdreg_cpsm_enable; host 1094 drivers/mmc/host/mmci.c c |= host->variant->cmdreg_lrsp_crc; host 1096 drivers/mmc/host/mmci.c c |= host->variant->cmdreg_srsp_crc; host 1098 drivers/mmc/host/mmci.c c |= host->variant->cmdreg_srsp; host 1104 drivers/mmc/host/mmci.c c |= host->variant->data_cmd_enable; host 1106 drivers/mmc/host/mmci.c host->cmd = cmd; host 1112 drivers/mmc/host/mmci.c static void mmci_stop_command(struct mmci_host *host) host 1114 drivers/mmc/host/mmci.c host->stop_abort.error = 0; host 1115 drivers/mmc/host/mmci.c mmci_start_command(host, &host->stop_abort, 0); host 1119 drivers/mmc/host/mmci.c mmci_data_irq(struct mmci_host *host, struct mmc_data *data, host 1129 drivers/mmc/host/mmci.c status_err = status & (host->variant->start_err | host 1137 drivers/mmc/host/mmci.c mmci_dma_error(host); host 1146 drivers/mmc/host/mmci.c if (!host->variant->datacnt_useless) { host 1147 drivers/mmc/host/mmci.c remain = readl(host->base + MMCIDATACNT); host 1153 drivers/mmc/host/mmci.c dev_dbg(mmc_dev(host->mmc), "MCI ERROR IRQ, status 0x%08x at 0x%08x\n", host 1166 drivers/mmc/host/mmci.c if (success > host->variant->fifosize) host 1167 drivers/mmc/host/mmci.c success -= host->variant->fifosize; host 1176 drivers/mmc/host/mmci.c dev_err(mmc_dev(host->mmc), "stray MCI_DATABLOCKEND interrupt\n"); host 1179 drivers/mmc/host/mmci.c mmci_dma_finalize(host, data); host 1181 drivers/mmc/host/mmci.c mmci_stop_data(host); host 1188 drivers/mmc/host/mmci.c if (host->variant->cmdreg_stop && data->error) host 1189 drivers/mmc/host/mmci.c mmci_stop_command(host); host 1191 drivers/mmc/host/mmci.c mmci_request_end(host, data->mrq); host 1192 drivers/mmc/host/mmci.c } else if (host->mrq->sbc && !data->error) { host 1193 drivers/mmc/host/mmci.c mmci_request_end(host, data->mrq); host 1195 drivers/mmc/host/mmci.c mmci_start_command(host, data->stop, 0); host 1201 drivers/mmc/host/mmci.c mmci_cmd_irq(struct mmci_host *host, struct mmc_command *cmd, host 1204 drivers/mmc/host/mmci.c void __iomem *base = host->base; host 1210 drivers/mmc/host/mmci.c sbc = (cmd == host->mrq->sbc); host 1218 drivers/mmc/host/mmci.c if (!((status|host->busy_status) & host 1223 drivers/mmc/host/mmci.c if (busy_resp && host->variant->busy_detect) { host 1238 drivers/mmc/host/mmci.c if (!host->busy_status && host 1240 drivers/mmc/host/mmci.c (readl(base + MMCISTATUS) & host->variant->busy_detect_flag)) { host 1243 drivers/mmc/host/mmci.c host->variant->busy_detect_mask, host 1246 drivers/mmc/host/mmci.c host->busy_status = host 1262 drivers/mmc/host/mmci.c if (host->busy_status && host 1263 drivers/mmc/host/mmci.c (status & host->variant->busy_detect_flag)) { host 1264 drivers/mmc/host/mmci.c writel(host->variant->busy_detect_mask, host 1265 drivers/mmc/host/mmci.c host->base + MMCICLEAR); host 1275 drivers/mmc/host/mmci.c if (host->busy_status) { host 1277 drivers/mmc/host/mmci.c writel(host->variant->busy_detect_mask, host 1278 drivers/mmc/host/mmci.c host->base + MMCICLEAR); host 1281 drivers/mmc/host/mmci.c ~host->variant->busy_detect_mask, host 1283 drivers/mmc/host/mmci.c host->busy_status = 0; host 1287 drivers/mmc/host/mmci.c host->cmd = NULL; host 1301 drivers/mmc/host/mmci.c if (host->data) { host 1303 drivers/mmc/host/mmci.c mmci_dma_error(host); host 1305 drivers/mmc/host/mmci.c mmci_stop_data(host); host 1306 drivers/mmc/host/mmci.c if (host->variant->cmdreg_stop && cmd->error) { host 1307 drivers/mmc/host/mmci.c mmci_stop_command(host); host 1311 drivers/mmc/host/mmci.c mmci_request_end(host, host->mrq); host 1313 drivers/mmc/host/mmci.c mmci_start_command(host, host->mrq->cmd, 0); host 1314 drivers/mmc/host/mmci.c } else if (!host->variant->datactrl_first && host 1316 drivers/mmc/host/mmci.c mmci_start_data(host, cmd->data); host 1320 drivers/mmc/host/mmci.c static int mmci_get_rx_fifocnt(struct mmci_host *host, u32 status, int remain) host 1322 drivers/mmc/host/mmci.c return remain - (readl(host->base + MMCIFIFOCNT) << 2); host 1325 drivers/mmc/host/mmci.c static int mmci_qcom_get_rx_fifocnt(struct mmci_host *host, u32 status, int r) host 1332 drivers/mmc/host/mmci.c return host->variant->fifohalfsize; host 1339 drivers/mmc/host/mmci.c static int mmci_pio_read(struct mmci_host *host, char *buffer, unsigned int remain) host 1341 drivers/mmc/host/mmci.c void __iomem *base = host->base; host 1343 drivers/mmc/host/mmci.c u32 status = readl(host->base + MMCISTATUS); host 1344 drivers/mmc/host/mmci.c int host_remain = host->size; host 1347 drivers/mmc/host/mmci.c int count = host->get_rx_fifocnt(host, status, host_remain); host 1387 drivers/mmc/host/mmci.c static int mmci_pio_write(struct mmci_host *host, char *buffer, unsigned int remain, u32 status) host 1389 drivers/mmc/host/mmci.c struct variant_data *variant = host->variant; host 1390 drivers/mmc/host/mmci.c void __iomem *base = host->base; host 1427 drivers/mmc/host/mmci.c struct mmci_host *host = dev_id; host 1428 drivers/mmc/host/mmci.c struct sg_mapping_iter *sg_miter = &host->sg_miter; host 1429 drivers/mmc/host/mmci.c struct variant_data *variant = host->variant; host 1430 drivers/mmc/host/mmci.c void __iomem *base = host->base; host 1435 drivers/mmc/host/mmci.c dev_dbg(mmc_dev(host->mmc), "irq1 (pio) %08x\n", status); host 1459 drivers/mmc/host/mmci.c len = mmci_pio_read(host, buffer, remain); host 1461 drivers/mmc/host/mmci.c len = mmci_pio_write(host, buffer, remain, status); host 1465 drivers/mmc/host/mmci.c host->size -= len; host 1480 drivers/mmc/host/mmci.c if (status & MCI_RXACTIVE && host->size < variant->fifohalfsize) host 1481 drivers/mmc/host/mmci.c mmci_set_mask1(host, MCI_RXDATAAVLBLMASK); host 1489 drivers/mmc/host/mmci.c if (host->size == 0) { host 1490 drivers/mmc/host/mmci.c mmci_set_mask1(host, 0); host 1502 drivers/mmc/host/mmci.c struct mmci_host *host = dev_id; host 1506 drivers/mmc/host/mmci.c spin_lock(&host->lock); host 1509 drivers/mmc/host/mmci.c status = readl(host->base + MMCISTATUS); host 1511 drivers/mmc/host/mmci.c if (host->singleirq) { host 1512 drivers/mmc/host/mmci.c if (status & host->mask1_reg) host 1515 drivers/mmc/host/mmci.c status &= ~host->variant->irq_pio_mask; host 1522 drivers/mmc/host/mmci.c status &= readl(host->base + MMCIMASK0); host 1523 drivers/mmc/host/mmci.c if (host->variant->busy_detect) host 1524 drivers/mmc/host/mmci.c writel(status & ~host->variant->busy_detect_mask, host 1525 drivers/mmc/host/mmci.c host->base + MMCICLEAR); host 1527 drivers/mmc/host/mmci.c writel(status, host->base + MMCICLEAR); host 1529 drivers/mmc/host/mmci.c dev_dbg(mmc_dev(host->mmc), "irq0 (data+cmd) %08x\n", status); host 1531 drivers/mmc/host/mmci.c if (host->variant->reversed_irq_handling) { host 1532 drivers/mmc/host/mmci.c mmci_data_irq(host, host->data, status); host 1533 drivers/mmc/host/mmci.c mmci_cmd_irq(host, host->cmd, status); host 1535 drivers/mmc/host/mmci.c mmci_cmd_irq(host, host->cmd, status); host 1536 drivers/mmc/host/mmci.c mmci_data_irq(host, host->data, status); host 1543 drivers/mmc/host/mmci.c if (host->variant->busy_detect_flag) host 1544 drivers/mmc/host/mmci.c status &= ~host->variant->busy_detect_flag; host 1549 drivers/mmc/host/mmci.c spin_unlock(&host->lock); host 1556 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 1559 drivers/mmc/host/mmci.c WARN_ON(host->mrq != NULL); host 1561 drivers/mmc/host/mmci.c mrq->cmd->error = mmci_validate_data(host, mrq->data); host 1567 drivers/mmc/host/mmci.c spin_lock_irqsave(&host->lock, flags); host 1569 drivers/mmc/host/mmci.c host->mrq = mrq; host 1572 drivers/mmc/host/mmci.c mmci_get_next_data(host, mrq->data); host 1575 drivers/mmc/host/mmci.c (host->variant->datactrl_first || mrq->data->flags & MMC_DATA_READ)) host 1576 drivers/mmc/host/mmci.c mmci_start_data(host, mrq->data); host 1579 drivers/mmc/host/mmci.c mmci_start_command(host, mrq->sbc, 0); host 1581 drivers/mmc/host/mmci.c mmci_start_command(host, mrq->cmd, 0); host 1583 drivers/mmc/host/mmci.c spin_unlock_irqrestore(&host->lock, flags); host 1588 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 1589 drivers/mmc/host/mmci.c struct variant_data *variant = host->variant; host 1594 drivers/mmc/host/mmci.c if (host->plat->ios_handler && host 1595 drivers/mmc/host/mmci.c host->plat->ios_handler(mmc_dev(mmc), ios)) host 1603 drivers/mmc/host/mmci.c if (!IS_ERR(mmc->supply.vqmmc) && host->vqmmc_enabled) { host 1605 drivers/mmc/host/mmci.c host->vqmmc_enabled = false; host 1622 drivers/mmc/host/mmci.c if (!IS_ERR(mmc->supply.vqmmc) && !host->vqmmc_enabled) { host 1628 drivers/mmc/host/mmci.c host->vqmmc_enabled = true; host 1641 drivers/mmc/host/mmci.c pwr |= host->pwr_reg_add; host 1660 drivers/mmc/host/mmci.c pinctrl_select_state(host->pinctrl, host->pins_opendrain); host 1662 drivers/mmc/host/mmci.c pinctrl_select_state(host->pinctrl, host->pins_default); host 1672 drivers/mmc/host/mmci.c if (host->variant->explicit_mclk_control && host 1673 drivers/mmc/host/mmci.c ios->clock != host->clock_cache) { host 1674 drivers/mmc/host/mmci.c ret = clk_set_rate(host->clk, ios->clock); host 1676 drivers/mmc/host/mmci.c dev_err(mmc_dev(host->mmc), host 1679 drivers/mmc/host/mmci.c host->mclk = clk_get_rate(host->clk); host 1681 drivers/mmc/host/mmci.c host->clock_cache = ios->clock; host 1683 drivers/mmc/host/mmci.c spin_lock_irqsave(&host->lock, flags); host 1685 drivers/mmc/host/mmci.c if (host->ops && host->ops->set_clkreg) host 1686 drivers/mmc/host/mmci.c host->ops->set_clkreg(host, ios->clock); host 1688 drivers/mmc/host/mmci.c mmci_set_clkreg(host, ios->clock); host 1690 drivers/mmc/host/mmci.c if (host->ops && host->ops->set_pwrreg) host 1691 drivers/mmc/host/mmci.c host->ops->set_pwrreg(host, pwr); host 1693 drivers/mmc/host/mmci.c mmci_write_pwrreg(host, pwr); host 1695 drivers/mmc/host/mmci.c mmci_reg_delay(host); host 1697 drivers/mmc/host/mmci.c spin_unlock_irqrestore(&host->lock, flags); host 1702 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 1703 drivers/mmc/host/mmci.c struct mmci_platform_data *plat = host->plat; host 1710 drivers/mmc/host/mmci.c status = plat->status(mmc_dev(host->mmc)); host 1755 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 1762 drivers/mmc/host/mmci.c host->pwr_reg_add |= MCI_ST_DATA0DIREN; host 1764 drivers/mmc/host/mmci.c host->pwr_reg_add |= MCI_ST_DATA2DIREN; host 1766 drivers/mmc/host/mmci.c host->pwr_reg_add |= MCI_ST_DATA31DIREN; host 1768 drivers/mmc/host/mmci.c host->pwr_reg_add |= MCI_ST_DATA74DIREN; host 1770 drivers/mmc/host/mmci.c host->pwr_reg_add |= MCI_ST_CMDDIREN; host 1772 drivers/mmc/host/mmci.c host->pwr_reg_add |= MCI_ST_FBCLKEN; host 1774 drivers/mmc/host/mmci.c host->pwr_reg_add |= MCI_STM32_DIRPOL; host 1776 drivers/mmc/host/mmci.c host->clk_reg_add |= MCI_STM32_CLK_NEGEDGE; host 1778 drivers/mmc/host/mmci.c host->clk_reg_add |= MCI_STM32_CLK_SELCKIN; host 1794 drivers/mmc/host/mmci.c struct mmci_host *host; host 1818 drivers/mmc/host/mmci.c host = mmc_priv(mmc); host 1819 drivers/mmc/host/mmci.c host->mmc = mmc; host 1826 drivers/mmc/host/mmci.c host->pinctrl = devm_pinctrl_get(&dev->dev); host 1827 drivers/mmc/host/mmci.c if (IS_ERR(host->pinctrl)) { host 1829 drivers/mmc/host/mmci.c ret = PTR_ERR(host->pinctrl); host 1833 drivers/mmc/host/mmci.c host->pins_default = pinctrl_lookup_state(host->pinctrl, host 1835 drivers/mmc/host/mmci.c if (IS_ERR(host->pins_default)) { host 1837 drivers/mmc/host/mmci.c ret = PTR_ERR(host->pins_default); host 1841 drivers/mmc/host/mmci.c host->pins_opendrain = pinctrl_lookup_state(host->pinctrl, host 1843 drivers/mmc/host/mmci.c if (IS_ERR(host->pins_opendrain)) { host 1845 drivers/mmc/host/mmci.c ret = PTR_ERR(host->pins_opendrain); host 1850 drivers/mmc/host/mmci.c host->hw_designer = amba_manf(dev); host 1851 drivers/mmc/host/mmci.c host->hw_revision = amba_rev(dev); host 1852 drivers/mmc/host/mmci.c dev_dbg(mmc_dev(mmc), "designer ID = 0x%02x\n", host->hw_designer); host 1853 drivers/mmc/host/mmci.c dev_dbg(mmc_dev(mmc), "revision = 0x%01x\n", host->hw_revision); host 1855 drivers/mmc/host/mmci.c host->clk = devm_clk_get(&dev->dev, NULL); host 1856 drivers/mmc/host/mmci.c if (IS_ERR(host->clk)) { host 1857 drivers/mmc/host/mmci.c ret = PTR_ERR(host->clk); host 1861 drivers/mmc/host/mmci.c ret = clk_prepare_enable(host->clk); host 1866 drivers/mmc/host/mmci.c host->get_rx_fifocnt = mmci_qcom_get_rx_fifocnt; host 1868 drivers/mmc/host/mmci.c host->get_rx_fifocnt = mmci_get_rx_fifocnt; host 1870 drivers/mmc/host/mmci.c host->plat = plat; host 1871 drivers/mmc/host/mmci.c host->variant = variant; host 1872 drivers/mmc/host/mmci.c host->mclk = clk_get_rate(host->clk); host 1878 drivers/mmc/host/mmci.c if (host->mclk > variant->f_max) { host 1879 drivers/mmc/host/mmci.c ret = clk_set_rate(host->clk, variant->f_max); host 1882 drivers/mmc/host/mmci.c host->mclk = clk_get_rate(host->clk); host 1884 drivers/mmc/host/mmci.c host->mclk); host 1887 drivers/mmc/host/mmci.c host->phybase = dev->res.start; host 1888 drivers/mmc/host/mmci.c host->base = devm_ioremap_resource(&dev->dev, &dev->res); host 1889 drivers/mmc/host/mmci.c if (IS_ERR(host->base)) { host 1890 drivers/mmc/host/mmci.c ret = PTR_ERR(host->base); host 1895 drivers/mmc/host/mmci.c variant->init(host); host 1904 drivers/mmc/host/mmci.c mmc->f_min = DIV_ROUND_UP(host->mclk, 257); host 1906 drivers/mmc/host/mmci.c mmc->f_min = DIV_ROUND_UP(host->mclk, 2046); host 1908 drivers/mmc/host/mmci.c mmc->f_min = clk_round_rate(host->clk, 100000); host 1910 drivers/mmc/host/mmci.c mmc->f_min = DIV_ROUND_UP(host->mclk, 512); host 1920 drivers/mmc/host/mmci.c min(host->mclk, mmc->f_max); host 1923 drivers/mmc/host/mmci.c fmax : min(host->mclk, fmax); host 1928 drivers/mmc/host/mmci.c host->rst = devm_reset_control_get_optional_exclusive(&dev->dev, NULL); host 1929 drivers/mmc/host/mmci.c if (IS_ERR(host->rst)) { host 1930 drivers/mmc/host/mmci.c ret = PTR_ERR(host->rst); host 1957 drivers/mmc/host/mmci.c mmci_write_datactrlreg(host, host 1958 drivers/mmc/host/mmci.c host->variant->busy_dpsm_flag); host 1964 drivers/mmc/host/mmci.c host->stop_abort.opcode = MMC_STOP_TRANSMISSION; host 1965 drivers/mmc/host/mmci.c host->stop_abort.arg = 0; host 1966 drivers/mmc/host/mmci.c host->stop_abort.flags = MMC_RSP_R1B | MMC_CMD_AC; host 2002 drivers/mmc/host/mmci.c spin_lock_init(&host->lock); host 2004 drivers/mmc/host/mmci.c writel(0, host->base + MMCIMASK0); host 2007 drivers/mmc/host/mmci.c writel(0, host->base + MMCIMASK1); host 2009 drivers/mmc/host/mmci.c writel(0xfff, host->base + MMCICLEAR); host 2029 drivers/mmc/host/mmci.c DRIVER_NAME " (cmd)", host); host 2034 drivers/mmc/host/mmci.c host->singleirq = true; host 2037 drivers/mmc/host/mmci.c IRQF_SHARED, DRIVER_NAME " (pio)", host); host 2042 drivers/mmc/host/mmci.c writel(MCI_IRQENABLE | variant->start_err, host->base + MMCIMASK0); host 2051 drivers/mmc/host/mmci.c mmci_dma_setup(host); host 2062 drivers/mmc/host/mmci.c clk_disable_unprepare(host->clk); host 2073 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 2074 drivers/mmc/host/mmci.c struct variant_data *variant = host->variant; host 2084 drivers/mmc/host/mmci.c writel(0, host->base + MMCIMASK0); host 2087 drivers/mmc/host/mmci.c writel(0, host->base + MMCIMASK1); host 2089 drivers/mmc/host/mmci.c writel(0, host->base + MMCICOMMAND); host 2090 drivers/mmc/host/mmci.c writel(0, host->base + MMCIDATACTRL); host 2092 drivers/mmc/host/mmci.c mmci_dma_release(host); host 2093 drivers/mmc/host/mmci.c clk_disable_unprepare(host->clk); host 2101 drivers/mmc/host/mmci.c static void mmci_save(struct mmci_host *host) host 2105 drivers/mmc/host/mmci.c spin_lock_irqsave(&host->lock, flags); host 2107 drivers/mmc/host/mmci.c writel(0, host->base + MMCIMASK0); host 2108 drivers/mmc/host/mmci.c if (host->variant->pwrreg_nopower) { host 2109 drivers/mmc/host/mmci.c writel(0, host->base + MMCIDATACTRL); host 2110 drivers/mmc/host/mmci.c writel(0, host->base + MMCIPOWER); host 2111 drivers/mmc/host/mmci.c writel(0, host->base + MMCICLOCK); host 2113 drivers/mmc/host/mmci.c mmci_reg_delay(host); host 2115 drivers/mmc/host/mmci.c spin_unlock_irqrestore(&host->lock, flags); host 2118 drivers/mmc/host/mmci.c static void mmci_restore(struct mmci_host *host) host 2122 drivers/mmc/host/mmci.c spin_lock_irqsave(&host->lock, flags); host 2124 drivers/mmc/host/mmci.c if (host->variant->pwrreg_nopower) { host 2125 drivers/mmc/host/mmci.c writel(host->clk_reg, host->base + MMCICLOCK); host 2126 drivers/mmc/host/mmci.c writel(host->datactrl_reg, host->base + MMCIDATACTRL); host 2127 drivers/mmc/host/mmci.c writel(host->pwr_reg, host->base + MMCIPOWER); host 2129 drivers/mmc/host/mmci.c writel(MCI_IRQENABLE | host->variant->start_err, host 2130 drivers/mmc/host/mmci.c host->base + MMCIMASK0); host 2131 drivers/mmc/host/mmci.c mmci_reg_delay(host); host 2133 drivers/mmc/host/mmci.c spin_unlock_irqrestore(&host->lock, flags); host 2142 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 2144 drivers/mmc/host/mmci.c mmci_save(host); host 2145 drivers/mmc/host/mmci.c clk_disable_unprepare(host->clk); host 2157 drivers/mmc/host/mmci.c struct mmci_host *host = mmc_priv(mmc); host 2158 drivers/mmc/host/mmci.c clk_prepare_enable(host->clk); host 2159 drivers/mmc/host/mmci.c mmci_restore(host); host 350 drivers/mmc/host/mmci.h void (*init)(struct mmci_host *host); host 355 drivers/mmc/host/mmci.h int (*validate_data)(struct mmci_host *host, struct mmc_data *data); host 356 drivers/mmc/host/mmci.h int (*prep_data)(struct mmci_host *host, struct mmc_data *data, host 358 drivers/mmc/host/mmci.h void (*unprep_data)(struct mmci_host *host, struct mmc_data *data, host 360 drivers/mmc/host/mmci.h u32 (*get_datactrl_cfg)(struct mmci_host *host); host 361 drivers/mmc/host/mmci.h void (*get_next_data)(struct mmci_host *host, struct mmc_data *data); host 362 drivers/mmc/host/mmci.h int (*dma_setup)(struct mmci_host *host); host 363 drivers/mmc/host/mmci.h void (*dma_release)(struct mmci_host *host); host 364 drivers/mmc/host/mmci.h int (*dma_start)(struct mmci_host *host, unsigned int *datactrl); host 365 drivers/mmc/host/mmci.h void (*dma_finalize)(struct mmci_host *host, struct mmc_data *data); host 366 drivers/mmc/host/mmci.h void (*dma_error)(struct mmci_host *host); host 367 drivers/mmc/host/mmci.h void (*set_clkreg)(struct mmci_host *host, unsigned int desired); host 368 drivers/mmc/host/mmci.h void (*set_pwrreg)(struct mmci_host *host, unsigned int pwr); host 423 drivers/mmc/host/mmci.h #define dma_inprogress(host) ((host)->dma_in_progress) host 425 drivers/mmc/host/mmci.h void mmci_write_clkreg(struct mmci_host *host, u32 clk); host 426 drivers/mmc/host/mmci.h void mmci_write_pwrreg(struct mmci_host *host, u32 pwr); host 428 drivers/mmc/host/mmci.h static inline u32 mmci_dctrl_blksz(struct mmci_host *host) host 430 drivers/mmc/host/mmci.h return (ffs(host->data->blksz) - 1) << 4; host 434 drivers/mmc/host/mmci.h int mmci_dmae_prep_data(struct mmci_host *host, struct mmc_data *data, host 436 drivers/mmc/host/mmci.h void mmci_dmae_unprep_data(struct mmci_host *host, struct mmc_data *data, host 438 drivers/mmc/host/mmci.h void mmci_dmae_get_next_data(struct mmci_host *host, struct mmc_data *data); host 439 drivers/mmc/host/mmci.h int mmci_dmae_setup(struct mmci_host *host); host 440 drivers/mmc/host/mmci.h void mmci_dmae_release(struct mmci_host *host); host 441 drivers/mmc/host/mmci.h int mmci_dmae_start(struct mmci_host *host, unsigned int *datactrl); host 442 drivers/mmc/host/mmci.h void mmci_dmae_finalize(struct mmci_host *host, struct mmc_data *data); host 443 drivers/mmc/host/mmci.h void mmci_dmae_error(struct mmci_host *host); host 447 drivers/mmc/host/mmci.h void qcom_variant_init(struct mmci_host *host); host 449 drivers/mmc/host/mmci.h static inline void qcom_variant_init(struct mmci_host *host) {} host 453 drivers/mmc/host/mmci.h void sdmmc_variant_init(struct mmci_host *host); host 455 drivers/mmc/host/mmci.h static inline void sdmmc_variant_init(struct mmci_host *host) {} host 48 drivers/mmc/host/mmci_qcom_dml.c static int qcom_dma_start(struct mmci_host *host, unsigned int *datactrl) host 51 drivers/mmc/host/mmci_qcom_dml.c void __iomem *base = host->base + DML_OFFSET; host 52 drivers/mmc/host/mmci_qcom_dml.c struct mmc_data *data = host->data; host 53 drivers/mmc/host/mmci_qcom_dml.c int ret = mmci_dmae_start(host, datactrl); host 119 drivers/mmc/host/mmci_qcom_dml.c static int qcom_dma_setup(struct mmci_host *host) host 124 drivers/mmc/host/mmci_qcom_dml.c struct device_node *np = host->mmc->parent->of_node; host 126 drivers/mmc/host/mmci_qcom_dml.c if (mmci_dmae_setup(host)) host 133 drivers/mmc/host/mmci_qcom_dml.c mmci_dmae_release(host); host 137 drivers/mmc/host/mmci_qcom_dml.c base = host->base + DML_OFFSET; host 182 drivers/mmc/host/mmci_qcom_dml.c static u32 qcom_get_dctrl_cfg(struct mmci_host *host) host 184 drivers/mmc/host/mmci_qcom_dml.c return MCI_DPSM_ENABLE | (host->data->blksz << 4); host 199 drivers/mmc/host/mmci_qcom_dml.c void qcom_variant_init(struct mmci_host *host) host 201 drivers/mmc/host/mmci_qcom_dml.c host->ops = &qcom_variant_ops; host 28 drivers/mmc/host/mmci_stm32_sdmmc.c int sdmmc_idma_validate_data(struct mmci_host *host, host 41 drivers/mmc/host/mmci_stm32_sdmmc.c dev_err(mmc_dev(host->mmc), host 49 drivers/mmc/host/mmci_stm32_sdmmc.c dev_err(mmc_dev(host->mmc), host 58 drivers/mmc/host/mmci_stm32_sdmmc.c static int _sdmmc_idma_prep_data(struct mmci_host *host, host 63 drivers/mmc/host/mmci_stm32_sdmmc.c n_elem = dma_map_sg(mmc_dev(host->mmc), host 69 drivers/mmc/host/mmci_stm32_sdmmc.c dev_err(mmc_dev(host->mmc), "dma_map_sg failed\n"); host 76 drivers/mmc/host/mmci_stm32_sdmmc.c static int sdmmc_idma_prep_data(struct mmci_host *host, host 80 drivers/mmc/host/mmci_stm32_sdmmc.c if (!next && data->host_cookie == host->next_cookie) host 83 drivers/mmc/host/mmci_stm32_sdmmc.c return _sdmmc_idma_prep_data(host, data); host 86 drivers/mmc/host/mmci_stm32_sdmmc.c static void sdmmc_idma_unprep_data(struct mmci_host *host, host 89 drivers/mmc/host/mmci_stm32_sdmmc.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 93 drivers/mmc/host/mmci_stm32_sdmmc.c static int sdmmc_idma_setup(struct mmci_host *host) host 97 drivers/mmc/host/mmci_stm32_sdmmc.c idma = devm_kzalloc(mmc_dev(host->mmc), sizeof(*idma), GFP_KERNEL); host 101 drivers/mmc/host/mmci_stm32_sdmmc.c host->dma_priv = idma; host 103 drivers/mmc/host/mmci_stm32_sdmmc.c if (host->variant->dma_lli) { host 104 drivers/mmc/host/mmci_stm32_sdmmc.c idma->sg_cpu = dmam_alloc_coherent(mmc_dev(host->mmc), host 108 drivers/mmc/host/mmci_stm32_sdmmc.c dev_err(mmc_dev(host->mmc), host 112 drivers/mmc/host/mmci_stm32_sdmmc.c host->mmc->max_segs = SDMMC_LLI_BUF_LEN / host 114 drivers/mmc/host/mmci_stm32_sdmmc.c host->mmc->max_seg_size = host->variant->stm32_idmabsize_mask; host 116 drivers/mmc/host/mmci_stm32_sdmmc.c host->mmc->max_segs = 1; host 117 drivers/mmc/host/mmci_stm32_sdmmc.c host->mmc->max_seg_size = host->mmc->max_req_size; host 123 drivers/mmc/host/mmci_stm32_sdmmc.c static int sdmmc_idma_start(struct mmci_host *host, unsigned int *datactrl) host 126 drivers/mmc/host/mmci_stm32_sdmmc.c struct sdmmc_priv *idma = host->dma_priv; host 128 drivers/mmc/host/mmci_stm32_sdmmc.c struct mmc_data *data = host->data; host 132 drivers/mmc/host/mmci_stm32_sdmmc.c if (!host->variant->dma_lli || data->sg_len == 1) { host 134 drivers/mmc/host/mmci_stm32_sdmmc.c host->base + MMCI_STM32_IDMABASE0R); host 136 drivers/mmc/host/mmci_stm32_sdmmc.c host->base + MMCI_STM32_IDMACTRLR); host 152 drivers/mmc/host/mmci_stm32_sdmmc.c writel_relaxed(idma->sg_dma, host->base + MMCI_STM32_IDMABAR); host 153 drivers/mmc/host/mmci_stm32_sdmmc.c writel_relaxed(desc[0].idmalar, host->base + MMCI_STM32_IDMALAR); host 154 drivers/mmc/host/mmci_stm32_sdmmc.c writel_relaxed(desc[0].idmabase, host->base + MMCI_STM32_IDMABASE0R); host 155 drivers/mmc/host/mmci_stm32_sdmmc.c writel_relaxed(desc[0].idmasize, host->base + MMCI_STM32_IDMABSIZER); host 157 drivers/mmc/host/mmci_stm32_sdmmc.c host->base + MMCI_STM32_IDMACTRLR); host 162 drivers/mmc/host/mmci_stm32_sdmmc.c static void sdmmc_idma_finalize(struct mmci_host *host, struct mmc_data *data) host 164 drivers/mmc/host/mmci_stm32_sdmmc.c writel_relaxed(0, host->base + MMCI_STM32_IDMACTRLR); host 167 drivers/mmc/host/mmci_stm32_sdmmc.c sdmmc_idma_unprep_data(host, data, 0); host 170 drivers/mmc/host/mmci_stm32_sdmmc.c static void mmci_sdmmc_set_clkreg(struct mmci_host *host, unsigned int desired) host 174 drivers/mmc/host/mmci_stm32_sdmmc.c if (host->mmc->ios.timing == MMC_TIMING_MMC_DDR52 || host 175 drivers/mmc/host/mmci_stm32_sdmmc.c host->mmc->ios.timing == MMC_TIMING_UHS_DDR50) host 184 drivers/mmc/host/mmci_stm32_sdmmc.c if (desired >= host->mclk && !ddr) { host 185 drivers/mmc/host/mmci_stm32_sdmmc.c host->cclk = host->mclk; host 187 drivers/mmc/host/mmci_stm32_sdmmc.c clk = DIV_ROUND_UP(host->mclk, 2 * desired); host 190 drivers/mmc/host/mmci_stm32_sdmmc.c host->cclk = host->mclk / (2 * clk); host 199 drivers/mmc/host/mmci_stm32_sdmmc.c host->cclk = host->mclk / (2 * clk); host 203 drivers/mmc/host/mmci_stm32_sdmmc.c if (host->mmc->ios.power_mode == MMC_POWER_ON) host 204 drivers/mmc/host/mmci_stm32_sdmmc.c host->mmc->actual_clock = host->cclk; host 206 drivers/mmc/host/mmci_stm32_sdmmc.c host->mmc->actual_clock = 0; host 208 drivers/mmc/host/mmci_stm32_sdmmc.c if (host->mmc->ios.bus_width == MMC_BUS_WIDTH_4) host 210 drivers/mmc/host/mmci_stm32_sdmmc.c if (host->mmc->ios.bus_width == MMC_BUS_WIDTH_8) host 214 drivers/mmc/host/mmci_stm32_sdmmc.c clk |= host->clk_reg_add; host 221 drivers/mmc/host/mmci_stm32_sdmmc.c if (host->mmc->ios.timing >= MMC_TIMING_UHS_SDR50) { host 223 drivers/mmc/host/mmci_stm32_sdmmc.c if (host->mmc->ios.timing == MMC_TIMING_UHS_SDR104) { host 229 drivers/mmc/host/mmci_stm32_sdmmc.c mmci_write_clkreg(host, clk); host 232 drivers/mmc/host/mmci_stm32_sdmmc.c static void mmci_sdmmc_set_pwrreg(struct mmci_host *host, unsigned int pwr) host 234 drivers/mmc/host/mmci_stm32_sdmmc.c struct mmc_ios ios = host->mmc->ios; host 236 drivers/mmc/host/mmci_stm32_sdmmc.c pwr = host->pwr_reg_add; host 240 drivers/mmc/host/mmci_stm32_sdmmc.c reset_control_assert(host->rst); host 242 drivers/mmc/host/mmci_stm32_sdmmc.c reset_control_deassert(host->rst); host 250 drivers/mmc/host/mmci_stm32_sdmmc.c mmci_write_pwrreg(host, MCI_STM32_PWR_CYC | pwr); host 257 drivers/mmc/host/mmci_stm32_sdmmc.c writel(MCI_IRQENABLE | host->variant->start_err, host 258 drivers/mmc/host/mmci_stm32_sdmmc.c host->base + MMCIMASK0); host 265 drivers/mmc/host/mmci_stm32_sdmmc.c mmci_write_pwrreg(host, MCI_PWR_OFF | pwr); host 267 drivers/mmc/host/mmci_stm32_sdmmc.c mmci_write_pwrreg(host, MCI_PWR_ON | pwr); host 271 drivers/mmc/host/mmci_stm32_sdmmc.c static u32 sdmmc_get_dctrl_cfg(struct mmci_host *host) host 275 drivers/mmc/host/mmci_stm32_sdmmc.c datactrl = mmci_dctrl_blksz(host); host 277 drivers/mmc/host/mmci_stm32_sdmmc.c if (host->mmc->card && mmc_card_sdio(host->mmc->card) && host 278 drivers/mmc/host/mmci_stm32_sdmmc.c host->data->blocks == 1) host 280 drivers/mmc/host/mmci_stm32_sdmmc.c else if (host->data->stop && !host->mrq->sbc) host 300 drivers/mmc/host/mmci_stm32_sdmmc.c void sdmmc_variant_init(struct mmci_host *host) host 302 drivers/mmc/host/mmci_stm32_sdmmc.c host->ops = &sdmmc_variant_ops; host 151 drivers/mmc/host/moxart-mmc.c static inline void moxart_init_sg(struct moxart_host *host, host 154 drivers/mmc/host/moxart-mmc.c host->cur_sg = data->sg; host 155 drivers/mmc/host/moxart-mmc.c host->num_sg = data->sg_len; host 156 drivers/mmc/host/moxart-mmc.c host->data_remain = host->cur_sg->length; host 158 drivers/mmc/host/moxart-mmc.c if (host->data_remain > host->data_len) host 159 drivers/mmc/host/moxart-mmc.c host->data_remain = host->data_len; host 162 drivers/mmc/host/moxart-mmc.c static inline int moxart_next_sg(struct moxart_host *host) host 165 drivers/mmc/host/moxart-mmc.c struct mmc_data *data = host->mrq->cmd->data; host 167 drivers/mmc/host/moxart-mmc.c host->cur_sg++; host 168 drivers/mmc/host/moxart-mmc.c host->num_sg--; host 170 drivers/mmc/host/moxart-mmc.c if (host->num_sg > 0) { host 171 drivers/mmc/host/moxart-mmc.c host->data_remain = host->cur_sg->length; host 172 drivers/mmc/host/moxart-mmc.c remain = host->data_len - data->bytes_xfered; host 173 drivers/mmc/host/moxart-mmc.c if (remain > 0 && remain < host->data_remain) host 174 drivers/mmc/host/moxart-mmc.c host->data_remain = remain; host 177 drivers/mmc/host/moxart-mmc.c return host->num_sg; host 180 drivers/mmc/host/moxart-mmc.c static int moxart_wait_for_status(struct moxart_host *host, host 187 drivers/mmc/host/moxart-mmc.c *status = readl(host->base + REG_STATUS); host 192 drivers/mmc/host/moxart-mmc.c writel(*status & mask, host->base + REG_CLEAR); host 198 drivers/mmc/host/moxart-mmc.c dev_err(mmc_dev(host->mmc), "timed out waiting for status\n"); host 204 drivers/mmc/host/moxart-mmc.c static void moxart_send_command(struct moxart_host *host, host 210 drivers/mmc/host/moxart-mmc.c RSP_CRC_FAIL | CMD_SENT, host->base + REG_CLEAR); host 211 drivers/mmc/host/moxart-mmc.c writel(cmd->arg, host->base + REG_ARGUMENT); host 225 drivers/mmc/host/moxart-mmc.c writel(cmdctrl | CMD_EN, host->base + REG_COMMAND); host 227 drivers/mmc/host/moxart-mmc.c if (moxart_wait_for_status(host, MASK_RSP, &status) == -ETIMEDOUT) host 240 drivers/mmc/host/moxart-mmc.c cmd->resp[3] = readl(host->base + REG_RESPONSE0); host 241 drivers/mmc/host/moxart-mmc.c cmd->resp[2] = readl(host->base + REG_RESPONSE1); host 242 drivers/mmc/host/moxart-mmc.c cmd->resp[1] = readl(host->base + REG_RESPONSE2); host 243 drivers/mmc/host/moxart-mmc.c cmd->resp[0] = readl(host->base + REG_RESPONSE3); host 245 drivers/mmc/host/moxart-mmc.c cmd->resp[0] = readl(host->base + REG_RESPONSE0); host 252 drivers/mmc/host/moxart-mmc.c struct moxart_host *host = param; host 254 drivers/mmc/host/moxart-mmc.c complete(&host->dma_complete); host 257 drivers/mmc/host/moxart-mmc.c static void moxart_transfer_dma(struct mmc_data *data, struct moxart_host *host) host 264 drivers/mmc/host/moxart-mmc.c if (host->data_len == data->bytes_xfered) host 268 drivers/mmc/host/moxart-mmc.c dma_chan = host->dma_chan_tx; host 271 drivers/mmc/host/moxart-mmc.c dma_chan = host->dma_chan_rx; host 284 drivers/mmc/host/moxart-mmc.c dev_err(mmc_dev(host->mmc), "dma_map_sg returned zero length\n"); host 288 drivers/mmc/host/moxart-mmc.c host->tx_desc = desc; host 290 drivers/mmc/host/moxart-mmc.c desc->callback_param = host; host 295 drivers/mmc/host/moxart-mmc.c data->bytes_xfered += host->data_remain; host 298 drivers/mmc/host/moxart-mmc.c &host->dma_complete, host->timeout); host 306 drivers/mmc/host/moxart-mmc.c static void moxart_transfer_pio(struct moxart_host *host) host 308 drivers/mmc/host/moxart-mmc.c struct mmc_data *data = host->mrq->cmd->data; host 311 drivers/mmc/host/moxart-mmc.c if (host->data_len == data->bytes_xfered) host 314 drivers/mmc/host/moxart-mmc.c sgp = sg_virt(host->cur_sg); host 315 drivers/mmc/host/moxart-mmc.c remain = host->data_remain; host 319 drivers/mmc/host/moxart-mmc.c if (moxart_wait_for_status(host, FIFO_URUN, &status) host 322 drivers/mmc/host/moxart-mmc.c complete(&host->pio_complete); host 325 drivers/mmc/host/moxart-mmc.c for (len = 0; len < remain && len < host->fifo_width;) { host 326 drivers/mmc/host/moxart-mmc.c iowrite32(*sgp, host->base + REG_DATA_WINDOW); host 335 drivers/mmc/host/moxart-mmc.c if (moxart_wait_for_status(host, FIFO_ORUN, &status) host 338 drivers/mmc/host/moxart-mmc.c complete(&host->pio_complete); host 341 drivers/mmc/host/moxart-mmc.c for (len = 0; len < remain && len < host->fifo_width;) { host 344 drivers/mmc/host/moxart-mmc.c *sgp = ioread32be(host->base + host 347 drivers/mmc/host/moxart-mmc.c *sgp = ioread32(host->base + host 356 drivers/mmc/host/moxart-mmc.c data->bytes_xfered += host->data_remain - remain; host 357 drivers/mmc/host/moxart-mmc.c host->data_remain = remain; host 359 drivers/mmc/host/moxart-mmc.c if (host->data_len != data->bytes_xfered) host 360 drivers/mmc/host/moxart-mmc.c moxart_next_sg(host); host 362 drivers/mmc/host/moxart-mmc.c complete(&host->pio_complete); host 365 drivers/mmc/host/moxart-mmc.c static void moxart_prepare_data(struct moxart_host *host) host 367 drivers/mmc/host/moxart-mmc.c struct mmc_data *data = host->mrq->cmd->data; host 374 drivers/mmc/host/moxart-mmc.c host->data_len = data->blocks * data->blksz; host 378 drivers/mmc/host/moxart-mmc.c moxart_init_sg(host, data); host 385 drivers/mmc/host/moxart-mmc.c if ((host->data_len > host->fifo_width) && host->have_dma) host 388 drivers/mmc/host/moxart-mmc.c writel(DCR_DATA_FIFO_RESET, host->base + REG_DATA_CONTROL); host 389 drivers/mmc/host/moxart-mmc.c writel(MASK_DATA | FIFO_URUN | FIFO_ORUN, host->base + REG_CLEAR); host 390 drivers/mmc/host/moxart-mmc.c writel(host->rate, host->base + REG_DATA_TIMER); host 391 drivers/mmc/host/moxart-mmc.c writel(host->data_len, host->base + REG_DATA_LENGTH); host 392 drivers/mmc/host/moxart-mmc.c writel(datactrl, host->base + REG_DATA_CONTROL); host 397 drivers/mmc/host/moxart-mmc.c struct moxart_host *host = mmc_priv(mmc); host 402 drivers/mmc/host/moxart-mmc.c spin_lock_irqsave(&host->lock, flags); host 404 drivers/mmc/host/moxart-mmc.c init_completion(&host->dma_complete); host 405 drivers/mmc/host/moxart-mmc.c init_completion(&host->pio_complete); host 407 drivers/mmc/host/moxart-mmc.c host->mrq = mrq; host 409 drivers/mmc/host/moxart-mmc.c if (readl(host->base + REG_STATUS) & CARD_DETECT) { host 414 drivers/mmc/host/moxart-mmc.c moxart_prepare_data(host); host 415 drivers/mmc/host/moxart-mmc.c moxart_send_command(host, host->mrq->cmd); host 418 drivers/mmc/host/moxart-mmc.c if ((host->data_len > host->fifo_width) && host->have_dma) { host 420 drivers/mmc/host/moxart-mmc.c writel(CARD_CHANGE, host->base + REG_INTERRUPT_MASK); host 422 drivers/mmc/host/moxart-mmc.c spin_unlock_irqrestore(&host->lock, flags); host 424 drivers/mmc/host/moxart-mmc.c moxart_transfer_dma(mrq->cmd->data, host); host 426 drivers/mmc/host/moxart-mmc.c spin_lock_irqsave(&host->lock, flags); host 429 drivers/mmc/host/moxart-mmc.c writel(MASK_INTR_PIO, host->base + REG_INTERRUPT_MASK); host 431 drivers/mmc/host/moxart-mmc.c spin_unlock_irqrestore(&host->lock, flags); host 435 drivers/mmc/host/moxart-mmc.c &host->pio_complete, host->timeout); host 437 drivers/mmc/host/moxart-mmc.c spin_lock_irqsave(&host->lock, flags); host 440 drivers/mmc/host/moxart-mmc.c if (host->is_removed) { host 441 drivers/mmc/host/moxart-mmc.c dev_err(mmc_dev(host->mmc), "card removed\n"); host 446 drivers/mmc/host/moxart-mmc.c if (moxart_wait_for_status(host, MASK_DATA, &status) host 456 drivers/mmc/host/moxart-mmc.c moxart_send_command(host, mrq->cmd->data->stop); host 460 drivers/mmc/host/moxart-mmc.c spin_unlock_irqrestore(&host->lock, flags); host 461 drivers/mmc/host/moxart-mmc.c mmc_request_done(host->mmc, mrq); host 466 drivers/mmc/host/moxart-mmc.c struct moxart_host *host = (struct moxart_host *)devid; host 470 drivers/mmc/host/moxart-mmc.c spin_lock_irqsave(&host->lock, flags); host 472 drivers/mmc/host/moxart-mmc.c status = readl(host->base + REG_STATUS); host 474 drivers/mmc/host/moxart-mmc.c host->is_removed = status & CARD_DETECT; host 475 drivers/mmc/host/moxart-mmc.c if (host->is_removed && host->have_dma) { host 476 drivers/mmc/host/moxart-mmc.c dmaengine_terminate_all(host->dma_chan_tx); host 477 drivers/mmc/host/moxart-mmc.c dmaengine_terminate_all(host->dma_chan_rx); host 479 drivers/mmc/host/moxart-mmc.c host->mrq = NULL; host 480 drivers/mmc/host/moxart-mmc.c writel(MASK_INTR_PIO, host->base + REG_CLEAR); host 481 drivers/mmc/host/moxart-mmc.c writel(CARD_CHANGE, host->base + REG_INTERRUPT_MASK); host 482 drivers/mmc/host/moxart-mmc.c mmc_detect_change(host->mmc, 0); host 484 drivers/mmc/host/moxart-mmc.c if (status & (FIFO_ORUN | FIFO_URUN) && host->mrq) host 485 drivers/mmc/host/moxart-mmc.c moxart_transfer_pio(host); host 487 drivers/mmc/host/moxart-mmc.c spin_unlock_irqrestore(&host->lock, flags); host 494 drivers/mmc/host/moxart-mmc.c struct moxart_host *host = mmc_priv(mmc); host 499 drivers/mmc/host/moxart-mmc.c spin_lock_irqsave(&host->lock, flags); host 503 drivers/mmc/host/moxart-mmc.c if (ios->clock >= host->sysclk / (2 * (div + 1))) host 507 drivers/mmc/host/moxart-mmc.c host->rate = host->sysclk / (2 * (div + 1)); host 508 drivers/mmc/host/moxart-mmc.c if (host->rate > host->sysclk) host 510 drivers/mmc/host/moxart-mmc.c writel(ctrl, host->base + REG_CLOCK_CONTROL); host 514 drivers/mmc/host/moxart-mmc.c writel(readl(host->base + REG_POWER_CONTROL) & ~SD_POWER_ON, host 515 drivers/mmc/host/moxart-mmc.c host->base + REG_POWER_CONTROL); host 523 drivers/mmc/host/moxart-mmc.c host->base + REG_POWER_CONTROL); host 528 drivers/mmc/host/moxart-mmc.c writel(BUS_WIDTH_4, host->base + REG_BUS_WIDTH); host 531 drivers/mmc/host/moxart-mmc.c writel(BUS_WIDTH_8, host->base + REG_BUS_WIDTH); host 534 drivers/mmc/host/moxart-mmc.c writel(BUS_WIDTH_1, host->base + REG_BUS_WIDTH); host 538 drivers/mmc/host/moxart-mmc.c spin_unlock_irqrestore(&host->lock, flags); host 544 drivers/mmc/host/moxart-mmc.c struct moxart_host *host = mmc_priv(mmc); host 546 drivers/mmc/host/moxart-mmc.c return !!(readl(host->base + REG_STATUS) & WRITE_PROT); host 561 drivers/mmc/host/moxart-mmc.c struct moxart_host *host = NULL; host 604 drivers/mmc/host/moxart-mmc.c host = mmc_priv(mmc); host 605 drivers/mmc/host/moxart-mmc.c host->mmc = mmc; host 606 drivers/mmc/host/moxart-mmc.c host->base = reg_mmc; host 607 drivers/mmc/host/moxart-mmc.c host->reg_phys = res_mmc.start; host 608 drivers/mmc/host/moxart-mmc.c host->timeout = msecs_to_jiffies(1000); host 609 drivers/mmc/host/moxart-mmc.c host->sysclk = clk_get_rate(clk); host 610 drivers/mmc/host/moxart-mmc.c host->fifo_width = readl(host->base + REG_FEATURE) << 2; host 611 drivers/mmc/host/moxart-mmc.c host->dma_chan_tx = dma_request_slave_channel_reason(dev, "tx"); host 612 drivers/mmc/host/moxart-mmc.c host->dma_chan_rx = dma_request_slave_channel_reason(dev, "rx"); host 614 drivers/mmc/host/moxart-mmc.c spin_lock_init(&host->lock); host 617 drivers/mmc/host/moxart-mmc.c mmc->f_max = DIV_ROUND_CLOSEST(host->sysclk, 2); host 618 drivers/mmc/host/moxart-mmc.c mmc->f_min = DIV_ROUND_CLOSEST(host->sysclk, CLK_DIV_MASK * 2); host 621 drivers/mmc/host/moxart-mmc.c if (IS_ERR(host->dma_chan_tx) || IS_ERR(host->dma_chan_rx)) { host 622 drivers/mmc/host/moxart-mmc.c if (PTR_ERR(host->dma_chan_tx) == -EPROBE_DEFER || host 623 drivers/mmc/host/moxart-mmc.c PTR_ERR(host->dma_chan_rx) == -EPROBE_DEFER) { host 628 drivers/mmc/host/moxart-mmc.c host->have_dma = false; host 631 drivers/mmc/host/moxart-mmc.c host->dma_chan_tx, host->dma_chan_rx); host 632 drivers/mmc/host/moxart-mmc.c host->have_dma = true; host 639 drivers/mmc/host/moxart-mmc.c cfg.dst_addr = host->reg_phys + REG_DATA_WINDOW; host 640 drivers/mmc/host/moxart-mmc.c dmaengine_slave_config(host->dma_chan_tx, &cfg); host 643 drivers/mmc/host/moxart-mmc.c cfg.src_addr = host->reg_phys + REG_DATA_WINDOW; host 645 drivers/mmc/host/moxart-mmc.c dmaengine_slave_config(host->dma_chan_rx, &cfg); host 648 drivers/mmc/host/moxart-mmc.c switch ((readl(host->base + REG_BUS_WIDTH) >> 3) & 3) { host 659 drivers/mmc/host/moxart-mmc.c writel(0, host->base + REG_INTERRUPT_MASK); host 661 drivers/mmc/host/moxart-mmc.c writel(CMD_SDC_RESET, host->base + REG_COMMAND); host 663 drivers/mmc/host/moxart-mmc.c if (!(readl(host->base + REG_COMMAND) & CMD_SDC_RESET)) host 668 drivers/mmc/host/moxart-mmc.c ret = devm_request_irq(dev, irq, moxart_irq, 0, "moxart-mmc", host); host 675 drivers/mmc/host/moxart-mmc.c dev_dbg(dev, "IRQ=%d, FIFO is %d bytes\n", irq, host->fifo_width); host 688 drivers/mmc/host/moxart-mmc.c struct moxart_host *host = mmc_priv(mmc); host 693 drivers/mmc/host/moxart-mmc.c if (!IS_ERR(host->dma_chan_tx)) host 694 drivers/mmc/host/moxart-mmc.c dma_release_channel(host->dma_chan_tx); host 695 drivers/mmc/host/moxart-mmc.c if (!IS_ERR(host->dma_chan_rx)) host 696 drivers/mmc/host/moxart-mmc.c dma_release_channel(host->dma_chan_rx); host 700 drivers/mmc/host/moxart-mmc.c writel(0, host->base + REG_INTERRUPT_MASK); host 701 drivers/mmc/host/moxart-mmc.c writel(0, host->base + REG_POWER_CONTROL); host 702 drivers/mmc/host/moxart-mmc.c writel(readl(host->base + REG_CLOCK_CONTROL) | CLK_OFF, host 703 drivers/mmc/host/moxart-mmc.c host->base + REG_CLOCK_CONTROL); host 576 drivers/mmc/host/mtk-sd.c static void msdc_reset_hw(struct msdc_host *host) host 580 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_RST); host 581 drivers/mmc/host/mtk-sd.c while (readl(host->base + MSDC_CFG) & MSDC_CFG_RST) host 584 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_FIFOCS, MSDC_FIFOCS_CLR); host 585 drivers/mmc/host/mtk-sd.c while (readl(host->base + MSDC_FIFOCS) & MSDC_FIFOCS_CLR) host 588 drivers/mmc/host/mtk-sd.c val = readl(host->base + MSDC_INT); host 589 drivers/mmc/host/mtk-sd.c writel(val, host->base + MSDC_INT); host 592 drivers/mmc/host/mtk-sd.c static void msdc_cmd_next(struct msdc_host *host, host 611 drivers/mmc/host/mtk-sd.c static inline void msdc_dma_setup(struct msdc_host *host, struct msdc_dma *dma, host 642 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) { host 648 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) { host 666 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_DMA_CFG, MSDC_DMA_CFG_DECSEN, 1); host 667 drivers/mmc/host/mtk-sd.c dma_ctrl = readl_relaxed(host->base + MSDC_DMA_CTRL); host 670 drivers/mmc/host/mtk-sd.c writel_relaxed(dma_ctrl, host->base + MSDC_DMA_CTRL); host 671 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) host 672 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + DMA_SA_H4BIT, DMA_ADDR_HIGH_4BIT, host 674 drivers/mmc/host/mtk-sd.c writel(lower_32_bits(dma->gpd_addr), host->base + MSDC_DMA_SA); host 677 drivers/mmc/host/mtk-sd.c static void msdc_prepare_data(struct msdc_host *host, struct mmc_request *mrq) host 683 drivers/mmc/host/mtk-sd.c data->sg_count = dma_map_sg(host->dev, data->sg, data->sg_len, host 688 drivers/mmc/host/mtk-sd.c static void msdc_unprepare_data(struct msdc_host *host, struct mmc_request *mrq) host 696 drivers/mmc/host/mtk-sd.c dma_unmap_sg(host->dev, data->sg, data->sg_len, host 703 drivers/mmc/host/mtk-sd.c static void msdc_set_timeout(struct msdc_host *host, u32 ns, u32 clks) host 708 drivers/mmc/host/mtk-sd.c host->timeout_ns = ns; host 709 drivers/mmc/host/mtk-sd.c host->timeout_clks = clks; host 710 drivers/mmc/host/mtk-sd.c if (host->mmc->actual_clock == 0) { host 713 drivers/mmc/host/mtk-sd.c clk_ns = 1000000000UL / host->mmc->actual_clock; host 717 drivers/mmc/host/mtk-sd.c if (host->dev_comp->clk_div_bits == 8) host 718 drivers/mmc/host/mtk-sd.c sdr_get_field(host->base + MSDC_CFG, host 721 drivers/mmc/host/mtk-sd.c sdr_get_field(host->base + MSDC_CFG, host 728 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + SDC_CFG, SDC_CFG_DTOC, timeout); host 731 drivers/mmc/host/mtk-sd.c static void msdc_gate_clock(struct msdc_host *host) host 733 drivers/mmc/host/mtk-sd.c clk_disable_unprepare(host->src_clk_cg); host 734 drivers/mmc/host/mtk-sd.c clk_disable_unprepare(host->src_clk); host 735 drivers/mmc/host/mtk-sd.c clk_disable_unprepare(host->bus_clk); host 736 drivers/mmc/host/mtk-sd.c clk_disable_unprepare(host->h_clk); host 739 drivers/mmc/host/mtk-sd.c static void msdc_ungate_clock(struct msdc_host *host) host 741 drivers/mmc/host/mtk-sd.c clk_prepare_enable(host->h_clk); host 742 drivers/mmc/host/mtk-sd.c clk_prepare_enable(host->bus_clk); host 743 drivers/mmc/host/mtk-sd.c clk_prepare_enable(host->src_clk); host 744 drivers/mmc/host/mtk-sd.c clk_prepare_enable(host->src_clk_cg); host 745 drivers/mmc/host/mtk-sd.c while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB)) host 749 drivers/mmc/host/mtk-sd.c static void msdc_set_mclk(struct msdc_host *host, unsigned char timing, u32 hz) host 755 drivers/mmc/host/mtk-sd.c u32 tune_reg = host->dev_comp->pad_tune_reg; host 758 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "set mclk to 0\n"); host 759 drivers/mmc/host/mtk-sd.c host->mclk = 0; host 760 drivers/mmc/host/mtk-sd.c host->mmc->actual_clock = 0; host 761 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_CFG, MSDC_CFG_CKPDN); host 765 drivers/mmc/host/mtk-sd.c flags = readl(host->base + MSDC_INTEN); host 766 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_INTEN, flags); host 767 drivers/mmc/host/mtk-sd.c if (host->dev_comp->clk_div_bits == 8) host 768 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_CFG, MSDC_CFG_HS400_CK_MODE); host 770 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_CFG, host 780 drivers/mmc/host/mtk-sd.c if (hz >= (host->src_clk_freq >> 2)) { host 782 drivers/mmc/host/mtk-sd.c sclk = host->src_clk_freq >> 2; /* sclk = clk / 4 */ host 784 drivers/mmc/host/mtk-sd.c div = (host->src_clk_freq + ((hz << 2) - 1)) / (hz << 2); host 785 drivers/mmc/host/mtk-sd.c sclk = (host->src_clk_freq >> 2) / div; host 790 drivers/mmc/host/mtk-sd.c hz >= (host->src_clk_freq >> 1)) { host 791 drivers/mmc/host/mtk-sd.c if (host->dev_comp->clk_div_bits == 8) host 792 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_CFG, host 795 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_CFG, host 797 drivers/mmc/host/mtk-sd.c sclk = host->src_clk_freq >> 1; host 800 drivers/mmc/host/mtk-sd.c } else if (hz >= host->src_clk_freq) { host 803 drivers/mmc/host/mtk-sd.c sclk = host->src_clk_freq; host 806 drivers/mmc/host/mtk-sd.c if (hz >= (host->src_clk_freq >> 1)) { host 808 drivers/mmc/host/mtk-sd.c sclk = host->src_clk_freq >> 1; /* sclk = clk / 2 */ host 810 drivers/mmc/host/mtk-sd.c div = (host->src_clk_freq + ((hz << 2) - 1)) / (hz << 2); host 811 drivers/mmc/host/mtk-sd.c sclk = (host->src_clk_freq >> 2) / div; host 814 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_CFG, MSDC_CFG_CKPDN); host 819 drivers/mmc/host/mtk-sd.c if (host->src_clk_cg) host 820 drivers/mmc/host/mtk-sd.c clk_disable_unprepare(host->src_clk_cg); host 822 drivers/mmc/host/mtk-sd.c clk_disable_unprepare(clk_get_parent(host->src_clk)); host 823 drivers/mmc/host/mtk-sd.c if (host->dev_comp->clk_div_bits == 8) host 824 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_CFG, host 828 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_CFG, host 831 drivers/mmc/host/mtk-sd.c if (host->src_clk_cg) host 832 drivers/mmc/host/mtk-sd.c clk_prepare_enable(host->src_clk_cg); host 834 drivers/mmc/host/mtk-sd.c clk_prepare_enable(clk_get_parent(host->src_clk)); host 836 drivers/mmc/host/mtk-sd.c while (!(readl(host->base + MSDC_CFG) & MSDC_CFG_CKSTB)) host 838 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_CKPDN); host 839 drivers/mmc/host/mtk-sd.c host->mmc->actual_clock = sclk; host 840 drivers/mmc/host/mtk-sd.c host->mclk = hz; host 841 drivers/mmc/host/mtk-sd.c host->timing = timing; host 843 drivers/mmc/host/mtk-sd.c msdc_set_timeout(host, host->timeout_ns, host->timeout_clks); host 844 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_INTEN, flags); host 850 drivers/mmc/host/mtk-sd.c if (host->mmc->actual_clock <= 52000000) { host 851 drivers/mmc/host/mtk-sd.c writel(host->def_tune_para.iocon, host->base + MSDC_IOCON); host 852 drivers/mmc/host/mtk-sd.c if (host->top_base) { host 853 drivers/mmc/host/mtk-sd.c writel(host->def_tune_para.emmc_top_control, host 854 drivers/mmc/host/mtk-sd.c host->top_base + EMMC_TOP_CONTROL); host 855 drivers/mmc/host/mtk-sd.c writel(host->def_tune_para.emmc_top_cmd, host 856 drivers/mmc/host/mtk-sd.c host->top_base + EMMC_TOP_CMD); host 858 drivers/mmc/host/mtk-sd.c writel(host->def_tune_para.pad_tune, host 859 drivers/mmc/host/mtk-sd.c host->base + tune_reg); host 862 drivers/mmc/host/mtk-sd.c writel(host->saved_tune_para.iocon, host->base + MSDC_IOCON); host 863 drivers/mmc/host/mtk-sd.c writel(host->saved_tune_para.pad_cmd_tune, host 864 drivers/mmc/host/mtk-sd.c host->base + PAD_CMD_TUNE); host 865 drivers/mmc/host/mtk-sd.c if (host->top_base) { host 866 drivers/mmc/host/mtk-sd.c writel(host->saved_tune_para.emmc_top_control, host 867 drivers/mmc/host/mtk-sd.c host->top_base + EMMC_TOP_CONTROL); host 868 drivers/mmc/host/mtk-sd.c writel(host->saved_tune_para.emmc_top_cmd, host 869 drivers/mmc/host/mtk-sd.c host->top_base + EMMC_TOP_CMD); host 871 drivers/mmc/host/mtk-sd.c writel(host->saved_tune_para.pad_tune, host 872 drivers/mmc/host/mtk-sd.c host->base + tune_reg); host 877 drivers/mmc/host/mtk-sd.c host->dev_comp->hs400_tune) host 878 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + tune_reg, host 880 drivers/mmc/host/mtk-sd.c host->hs400_cmd_int_delay); host 881 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "sclk: %d, timing: %d\n", host->mmc->actual_clock, host 885 drivers/mmc/host/mtk-sd.c static inline u32 msdc_cmd_find_resp(struct msdc_host *host, host 913 drivers/mmc/host/mtk-sd.c static inline u32 msdc_cmd_prepare_raw_cmd(struct msdc_host *host, host 921 drivers/mmc/host/mtk-sd.c u32 resp = msdc_cmd_find_resp(host, mrq, cmd); host 924 drivers/mmc/host/mtk-sd.c host->cmd_rsp = resp; host 942 drivers/mmc/host/mtk-sd.c if (mmc_card_mmc(host->mmc->card) && mrq->sbc && host 955 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_CFG, MSDC_CFG_PIO); host 957 drivers/mmc/host/mtk-sd.c if (host->timeout_ns != data->timeout_ns || host 958 drivers/mmc/host/mtk-sd.c host->timeout_clks != data->timeout_clks) host 959 drivers/mmc/host/mtk-sd.c msdc_set_timeout(host, data->timeout_ns, host 962 drivers/mmc/host/mtk-sd.c writel(data->blocks, host->base + SDC_BLK_NUM); host 967 drivers/mmc/host/mtk-sd.c static void msdc_start_data(struct msdc_host *host, struct mmc_request *mrq, host 972 drivers/mmc/host/mtk-sd.c WARN_ON(host->data); host 973 drivers/mmc/host/mtk-sd.c host->data = data; host 976 drivers/mmc/host/mtk-sd.c mod_delayed_work(system_wq, &host->req_timeout, DAT_TIMEOUT); host 977 drivers/mmc/host/mtk-sd.c msdc_dma_setup(host, &host->dma, data); host 978 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_INTEN, data_ints_mask); host 979 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_DMA_CTRL, MSDC_DMA_CTRL_START, 1); host 980 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "DMA start\n"); host 981 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "%s: cmd=%d DMA data: %d blocks; read=%d\n", host 985 drivers/mmc/host/mtk-sd.c static int msdc_auto_cmd_done(struct msdc_host *host, int events, host 990 drivers/mmc/host/mtk-sd.c rsp[0] = readl(host->base + SDC_ACMD_RESP); host 995 drivers/mmc/host/mtk-sd.c msdc_reset_hw(host); host 998 drivers/mmc/host/mtk-sd.c host->error |= REQ_STOP_EIO; host 1001 drivers/mmc/host/mtk-sd.c host->error |= REQ_STOP_TMO; host 1003 drivers/mmc/host/mtk-sd.c dev_err(host->dev, host 1010 drivers/mmc/host/mtk-sd.c static void msdc_track_cmd_data(struct msdc_host *host, host 1013 drivers/mmc/host/mtk-sd.c if (host->error) host 1014 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "%s: cmd=%d arg=%08X; host->error=0x%08X\n", host 1015 drivers/mmc/host/mtk-sd.c __func__, cmd->opcode, cmd->arg, host->error); host 1018 drivers/mmc/host/mtk-sd.c static void msdc_request_done(struct msdc_host *host, struct mmc_request *mrq) host 1023 drivers/mmc/host/mtk-sd.c ret = cancel_delayed_work(&host->req_timeout); host 1028 drivers/mmc/host/mtk-sd.c spin_lock_irqsave(&host->lock, flags); host 1029 drivers/mmc/host/mtk-sd.c host->mrq = NULL; host 1030 drivers/mmc/host/mtk-sd.c spin_unlock_irqrestore(&host->lock, flags); host 1032 drivers/mmc/host/mtk-sd.c msdc_track_cmd_data(host, mrq->cmd, mrq->data); host 1034 drivers/mmc/host/mtk-sd.c msdc_unprepare_data(host, mrq); host 1035 drivers/mmc/host/mtk-sd.c if (host->error) host 1036 drivers/mmc/host/mtk-sd.c msdc_reset_hw(host); host 1037 drivers/mmc/host/mtk-sd.c mmc_request_done(host->mmc, mrq); host 1041 drivers/mmc/host/mtk-sd.c static bool msdc_cmd_done(struct msdc_host *host, int events, host 1052 drivers/mmc/host/mtk-sd.c msdc_auto_cmd_done(host, events, mrq->sbc); host 1061 drivers/mmc/host/mtk-sd.c spin_lock_irqsave(&host->lock, flags); host 1062 drivers/mmc/host/mtk-sd.c done = !host->cmd; host 1063 drivers/mmc/host/mtk-sd.c host->cmd = NULL; host 1064 drivers/mmc/host/mtk-sd.c spin_unlock_irqrestore(&host->lock, flags); host 1069 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_INTEN, cmd_ints_mask); host 1073 drivers/mmc/host/mtk-sd.c rsp[0] = readl(host->base + SDC_RESP3); host 1074 drivers/mmc/host/mtk-sd.c rsp[1] = readl(host->base + SDC_RESP2); host 1075 drivers/mmc/host/mtk-sd.c rsp[2] = readl(host->base + SDC_RESP1); host 1076 drivers/mmc/host/mtk-sd.c rsp[3] = readl(host->base + SDC_RESP0); host 1078 drivers/mmc/host/mtk-sd.c rsp[0] = readl(host->base + SDC_RESP0); host 1091 drivers/mmc/host/mtk-sd.c msdc_reset_hw(host); host 1094 drivers/mmc/host/mtk-sd.c host->error |= REQ_CMD_EIO; host 1097 drivers/mmc/host/mtk-sd.c host->error |= REQ_CMD_TMO; host 1101 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, host 1106 drivers/mmc/host/mtk-sd.c msdc_cmd_next(host, mrq, cmd); host 1114 drivers/mmc/host/mtk-sd.c static inline bool msdc_cmd_is_ready(struct msdc_host *host, host 1120 drivers/mmc/host/mtk-sd.c while ((readl(host->base + SDC_STS) & SDC_STS_CMDBUSY) && host 1123 drivers/mmc/host/mtk-sd.c if (readl(host->base + SDC_STS) & SDC_STS_CMDBUSY) { host 1124 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "CMD bus busy detected\n"); host 1125 drivers/mmc/host/mtk-sd.c host->error |= REQ_CMD_BUSY; host 1126 drivers/mmc/host/mtk-sd.c msdc_cmd_done(host, MSDC_INT_CMDTMO, mrq, cmd); host 1133 drivers/mmc/host/mtk-sd.c while ((readl(host->base + SDC_STS) & SDC_STS_SDCBUSY) && host 1136 drivers/mmc/host/mtk-sd.c if (readl(host->base + SDC_STS) & SDC_STS_SDCBUSY) { host 1137 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "Controller busy detected\n"); host 1138 drivers/mmc/host/mtk-sd.c host->error |= REQ_CMD_BUSY; host 1139 drivers/mmc/host/mtk-sd.c msdc_cmd_done(host, MSDC_INT_CMDTMO, mrq, cmd); host 1146 drivers/mmc/host/mtk-sd.c static void msdc_start_command(struct msdc_host *host, host 1152 drivers/mmc/host/mtk-sd.c WARN_ON(host->cmd); host 1153 drivers/mmc/host/mtk-sd.c host->cmd = cmd; host 1155 drivers/mmc/host/mtk-sd.c mod_delayed_work(system_wq, &host->req_timeout, DAT_TIMEOUT); host 1156 drivers/mmc/host/mtk-sd.c if (!msdc_cmd_is_ready(host, mrq, cmd)) host 1159 drivers/mmc/host/mtk-sd.c if ((readl(host->base + MSDC_FIFOCS) & MSDC_FIFOCS_TXCNT) >> 16 || host 1160 drivers/mmc/host/mtk-sd.c readl(host->base + MSDC_FIFOCS) & MSDC_FIFOCS_RXCNT) { host 1161 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "TX/RX FIFO non-empty before start of IO. Reset\n"); host 1162 drivers/mmc/host/mtk-sd.c msdc_reset_hw(host); host 1166 drivers/mmc/host/mtk-sd.c rawcmd = msdc_cmd_prepare_raw_cmd(host, mrq, cmd); host 1168 drivers/mmc/host/mtk-sd.c spin_lock_irqsave(&host->lock, flags); host 1169 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_INTEN, cmd_ints_mask); host 1170 drivers/mmc/host/mtk-sd.c spin_unlock_irqrestore(&host->lock, flags); host 1172 drivers/mmc/host/mtk-sd.c writel(cmd->arg, host->base + SDC_ARG); host 1173 drivers/mmc/host/mtk-sd.c writel(rawcmd, host->base + SDC_CMD); host 1176 drivers/mmc/host/mtk-sd.c static void msdc_cmd_next(struct msdc_host *host, host 1184 drivers/mmc/host/mtk-sd.c msdc_request_done(host, mrq); host 1186 drivers/mmc/host/mtk-sd.c msdc_start_command(host, mrq, mrq->cmd); host 1188 drivers/mmc/host/mtk-sd.c msdc_request_done(host, mrq); host 1190 drivers/mmc/host/mtk-sd.c msdc_start_data(host, mrq, cmd, cmd->data); host 1195 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1197 drivers/mmc/host/mtk-sd.c host->error = 0; host 1198 drivers/mmc/host/mtk-sd.c WARN_ON(host->mrq); host 1199 drivers/mmc/host/mtk-sd.c host->mrq = mrq; host 1202 drivers/mmc/host/mtk-sd.c msdc_prepare_data(host, mrq); host 1210 drivers/mmc/host/mtk-sd.c msdc_start_command(host, mrq, mrq->sbc); host 1212 drivers/mmc/host/mtk-sd.c msdc_start_command(host, mrq, mrq->cmd); host 1217 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1223 drivers/mmc/host/mtk-sd.c msdc_prepare_data(host, mrq); host 1230 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1238 drivers/mmc/host/mtk-sd.c msdc_unprepare_data(host, mrq); host 1242 drivers/mmc/host/mtk-sd.c static void msdc_data_xfer_next(struct msdc_host *host, host 1247 drivers/mmc/host/mtk-sd.c msdc_start_command(host, mrq, mrq->stop); host 1249 drivers/mmc/host/mtk-sd.c msdc_request_done(host, mrq); host 1252 drivers/mmc/host/mtk-sd.c static bool msdc_data_xfer_done(struct msdc_host *host, u32 events, host 1263 drivers/mmc/host/mtk-sd.c spin_lock_irqsave(&host->lock, flags); host 1264 drivers/mmc/host/mtk-sd.c done = !host->data; host 1266 drivers/mmc/host/mtk-sd.c host->data = NULL; host 1267 drivers/mmc/host/mtk-sd.c spin_unlock_irqrestore(&host->lock, flags); host 1273 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "DMA status: 0x%8X\n", host 1274 drivers/mmc/host/mtk-sd.c readl(host->base + MSDC_DMA_CFG)); host 1275 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_DMA_CTRL, MSDC_DMA_CTRL_STOP, host 1277 drivers/mmc/host/mtk-sd.c while (readl(host->base + MSDC_DMA_CFG) & MSDC_DMA_CFG_STS) host 1279 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_INTEN, data_ints_mask); host 1280 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "DMA stop\n"); host 1285 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "interrupt events: %x\n", events); host 1286 drivers/mmc/host/mtk-sd.c msdc_reset_hw(host); host 1287 drivers/mmc/host/mtk-sd.c host->error |= REQ_DAT_ERR; host 1295 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "%s: cmd=%d; blocks=%d", host 1297 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "data_error=%d xfer_size=%d\n", host 1301 drivers/mmc/host/mtk-sd.c msdc_data_xfer_next(host, mrq, data); host 1307 drivers/mmc/host/mtk-sd.c static void msdc_set_buswidth(struct msdc_host *host, u32 width) host 1309 drivers/mmc/host/mtk-sd.c u32 val = readl(host->base + SDC_CFG); host 1326 drivers/mmc/host/mtk-sd.c writel(val, host->base + SDC_CFG); host 1327 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "Bus Width = %d", width); host 1332 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1338 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "Unsupported signal voltage!\n"); host 1344 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "Regulator set error %d (%d)\n", host 1349 drivers/mmc/host/mtk-sd.c pinctrl_select_state(host->pinctrl, host->pins_uhs); host 1351 drivers/mmc/host/mtk-sd.c pinctrl_select_state(host->pinctrl, host->pins_default); host 1359 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1360 drivers/mmc/host/mtk-sd.c u32 status = readl(host->base + MSDC_PS); host 1368 drivers/mmc/host/mtk-sd.c struct msdc_host *host = container_of(work, struct msdc_host, host 1372 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "%s: aborting cmd/data/mrq\n", __func__); host 1373 drivers/mmc/host/mtk-sd.c if (host->mrq) { host 1374 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "%s: aborting mrq=%p cmd=%d\n", __func__, host 1375 drivers/mmc/host/mtk-sd.c host->mrq, host->mrq->cmd->opcode); host 1376 drivers/mmc/host/mtk-sd.c if (host->cmd) { host 1377 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "%s: aborting cmd=%d\n", host 1378 drivers/mmc/host/mtk-sd.c __func__, host->cmd->opcode); host 1379 drivers/mmc/host/mtk-sd.c msdc_cmd_done(host, MSDC_INT_CMDTMO, host->mrq, host 1380 drivers/mmc/host/mtk-sd.c host->cmd); host 1381 drivers/mmc/host/mtk-sd.c } else if (host->data) { host 1382 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "%s: abort data: cmd%d; %d blocks\n", host 1383 drivers/mmc/host/mtk-sd.c __func__, host->mrq->cmd->opcode, host 1384 drivers/mmc/host/mtk-sd.c host->data->blocks); host 1385 drivers/mmc/host/mtk-sd.c msdc_data_xfer_done(host, MSDC_INT_DATTMO, host->mrq, host 1386 drivers/mmc/host/mtk-sd.c host->data); host 1391 drivers/mmc/host/mtk-sd.c static void __msdc_enable_sdio_irq(struct msdc_host *host, int enb) host 1394 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_INTEN, MSDC_INTEN_SDIOIRQ); host 1395 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + SDC_CFG, SDC_CFG_SDIOIDE); host 1397 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_INTEN, MSDC_INTEN_SDIOIRQ); host 1398 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + SDC_CFG, SDC_CFG_SDIOIDE); host 1405 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1407 drivers/mmc/host/mtk-sd.c spin_lock_irqsave(&host->lock, flags); host 1408 drivers/mmc/host/mtk-sd.c __msdc_enable_sdio_irq(host, enb); host 1409 drivers/mmc/host/mtk-sd.c spin_unlock_irqrestore(&host->lock, flags); host 1412 drivers/mmc/host/mtk-sd.c pm_runtime_get_noresume(host->dev); host 1414 drivers/mmc/host/mtk-sd.c pm_runtime_put_noidle(host->dev); host 1419 drivers/mmc/host/mtk-sd.c struct msdc_host *host = (struct msdc_host *) dev_id; host 1428 drivers/mmc/host/mtk-sd.c spin_lock_irqsave(&host->lock, flags); host 1429 drivers/mmc/host/mtk-sd.c events = readl(host->base + MSDC_INT); host 1430 drivers/mmc/host/mtk-sd.c event_mask = readl(host->base + MSDC_INTEN); host 1432 drivers/mmc/host/mtk-sd.c __msdc_enable_sdio_irq(host, 0); host 1434 drivers/mmc/host/mtk-sd.c writel(events & event_mask, host->base + MSDC_INT); host 1436 drivers/mmc/host/mtk-sd.c mrq = host->mrq; host 1437 drivers/mmc/host/mtk-sd.c cmd = host->cmd; host 1438 drivers/mmc/host/mtk-sd.c data = host->data; host 1439 drivers/mmc/host/mtk-sd.c spin_unlock_irqrestore(&host->lock, flags); host 1442 drivers/mmc/host/mtk-sd.c sdio_signal_irq(host->mmc); host 1445 drivers/mmc/host/mtk-sd.c if (host->internal_cd) host 1446 drivers/mmc/host/mtk-sd.c mmc_detect_change(host->mmc, msecs_to_jiffies(20)); host 1454 drivers/mmc/host/mtk-sd.c dev_err(host->dev, host 1461 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "%s: events=%08X\n", __func__, events); host 1464 drivers/mmc/host/mtk-sd.c msdc_cmd_done(host, events, mrq, cmd); host 1466 drivers/mmc/host/mtk-sd.c msdc_data_xfer_done(host, events, mrq, data); host 1472 drivers/mmc/host/mtk-sd.c static void msdc_init_hw(struct msdc_host *host) host 1475 drivers/mmc/host/mtk-sd.c u32 tune_reg = host->dev_comp->pad_tune_reg; host 1478 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_CFG, MSDC_CFG_MODE | MSDC_CFG_CKPDN); host 1481 drivers/mmc/host/mtk-sd.c msdc_reset_hw(host); host 1484 drivers/mmc/host/mtk-sd.c writel(0, host->base + MSDC_INTEN); host 1485 drivers/mmc/host/mtk-sd.c val = readl(host->base + MSDC_INT); host 1486 drivers/mmc/host/mtk-sd.c writel(val, host->base + MSDC_INT); host 1489 drivers/mmc/host/mtk-sd.c if (host->internal_cd) { host 1490 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PS, MSDC_PS_CDDEBOUNCE, host 1492 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_PS, MSDC_PS_CDEN); host 1493 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_INTEN, MSDC_INTEN_CDSC); host 1494 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + SDC_CFG, SDC_CFG_INSWKUP); host 1496 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + SDC_CFG, SDC_CFG_INSWKUP); host 1497 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_PS, MSDC_PS_CDEN); host 1498 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_INTEN, MSDC_INTEN_CDSC); host 1501 drivers/mmc/host/mtk-sd.c if (host->top_base) { host 1502 drivers/mmc/host/mtk-sd.c writel(0, host->top_base + EMMC_TOP_CONTROL); host 1503 drivers/mmc/host/mtk-sd.c writel(0, host->top_base + EMMC_TOP_CMD); host 1505 drivers/mmc/host/mtk-sd.c writel(0, host->base + tune_reg); host 1507 drivers/mmc/host/mtk-sd.c writel(0, host->base + MSDC_IOCON); host 1508 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0); host 1509 drivers/mmc/host/mtk-sd.c writel(0x403c0046, host->base + MSDC_PATCH_BIT); host 1510 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_CKGEN_MSDC_DLY_SEL, 1); host 1511 drivers/mmc/host/mtk-sd.c writel(0xffff4089, host->base + MSDC_PATCH_BIT1); host 1512 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL); host 1514 drivers/mmc/host/mtk-sd.c if (host->dev_comp->stop_clk_fix) { host 1515 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PATCH_BIT1, host 1517 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + SDC_FIFO_CFG, host 1519 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + SDC_FIFO_CFG, host 1523 drivers/mmc/host/mtk-sd.c if (host->dev_comp->busy_check) host 1524 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_PATCH_BIT1, (1 << 7)); host 1526 drivers/mmc/host/mtk-sd.c if (host->dev_comp->async_fifo) { host 1527 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PATCH_BIT2, host 1529 drivers/mmc/host/mtk-sd.c if (host->dev_comp->enhance_rx) { host 1530 drivers/mmc/host/mtk-sd.c if (host->top_base) host 1531 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->top_base + EMMC_TOP_CONTROL, host 1534 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + SDC_ADV_CFG0, host 1537 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PATCH_BIT2, host 1539 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PATCH_BIT2, host 1543 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_PATCH_BIT2, host 1545 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_PATCH_BIT2, host 1549 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) host 1550 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_PATCH_BIT2, host 1552 drivers/mmc/host/mtk-sd.c if (host->dev_comp->data_tune) { host 1553 drivers/mmc/host/mtk-sd.c if (host->top_base) { host 1554 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->top_base + EMMC_TOP_CONTROL, host 1556 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->top_base + EMMC_TOP_CONTROL, host 1558 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->top_base + EMMC_TOP_CMD, host 1561 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + tune_reg, host 1567 drivers/mmc/host/mtk-sd.c if (host->top_base) host 1568 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->top_base + EMMC_TOP_CONTROL, host 1571 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + tune_reg, host 1578 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + SDC_CFG, SDC_CFG_SDIO); host 1581 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + SDC_CFG, SDC_CFG_SDIOIDE); host 1582 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + SDC_ADV_CFG0, SDC_DAT1_IRQ_TRIGGER); host 1585 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + SDC_CFG, SDC_CFG_DTOC, 3); host 1587 drivers/mmc/host/mtk-sd.c host->def_tune_para.iocon = readl(host->base + MSDC_IOCON); host 1588 drivers/mmc/host/mtk-sd.c host->saved_tune_para.iocon = readl(host->base + MSDC_IOCON); host 1589 drivers/mmc/host/mtk-sd.c if (host->top_base) { host 1590 drivers/mmc/host/mtk-sd.c host->def_tune_para.emmc_top_control = host 1591 drivers/mmc/host/mtk-sd.c readl(host->top_base + EMMC_TOP_CONTROL); host 1592 drivers/mmc/host/mtk-sd.c host->def_tune_para.emmc_top_cmd = host 1593 drivers/mmc/host/mtk-sd.c readl(host->top_base + EMMC_TOP_CMD); host 1594 drivers/mmc/host/mtk-sd.c host->saved_tune_para.emmc_top_control = host 1595 drivers/mmc/host/mtk-sd.c readl(host->top_base + EMMC_TOP_CONTROL); host 1596 drivers/mmc/host/mtk-sd.c host->saved_tune_para.emmc_top_cmd = host 1597 drivers/mmc/host/mtk-sd.c readl(host->top_base + EMMC_TOP_CMD); host 1599 drivers/mmc/host/mtk-sd.c host->def_tune_para.pad_tune = readl(host->base + tune_reg); host 1600 drivers/mmc/host/mtk-sd.c host->saved_tune_para.pad_tune = readl(host->base + tune_reg); host 1602 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "init hardware done!"); host 1605 drivers/mmc/host/mtk-sd.c static void msdc_deinit_hw(struct msdc_host *host) host 1609 drivers/mmc/host/mtk-sd.c if (host->internal_cd) { host 1611 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_PS, MSDC_PS_CDEN); host 1612 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + SDC_CFG, SDC_CFG_INSWKUP); host 1616 drivers/mmc/host/mtk-sd.c writel(0, host->base + MSDC_INTEN); host 1618 drivers/mmc/host/mtk-sd.c val = readl(host->base + MSDC_INT); host 1619 drivers/mmc/host/mtk-sd.c writel(val, host->base + MSDC_INT); host 1623 drivers/mmc/host/mtk-sd.c static void msdc_init_gpd_bd(struct msdc_host *host, struct msdc_dma *dma) host 1638 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) host 1643 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) host 1650 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) host 1657 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1660 drivers/mmc/host/mtk-sd.c msdc_set_buswidth(host, ios->bus_width); host 1666 drivers/mmc/host/mtk-sd.c msdc_init_hw(host); host 1670 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "Failed to set vmmc power!\n"); host 1676 drivers/mmc/host/mtk-sd.c if (!IS_ERR(mmc->supply.vqmmc) && !host->vqmmc_enabled) { host 1679 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "Failed to set vqmmc power!\n"); host 1681 drivers/mmc/host/mtk-sd.c host->vqmmc_enabled = true; host 1688 drivers/mmc/host/mtk-sd.c if (!IS_ERR(mmc->supply.vqmmc) && host->vqmmc_enabled) { host 1690 drivers/mmc/host/mtk-sd.c host->vqmmc_enabled = false; host 1697 drivers/mmc/host/mtk-sd.c if (host->mclk != ios->clock || host->timing != ios->timing) host 1698 drivers/mmc/host/mtk-sd.c msdc_set_mclk(host, ios->timing, ios->clock); host 1718 drivers/mmc/host/mtk-sd.c static struct msdc_delay_phase get_best_delay(struct msdc_host *host, u32 delay) host 1726 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "phase error: [map:%x]\n", delay); host 1747 drivers/mmc/host/mtk-sd.c dev_info(host->dev, "phase: [map:%x] [maxlen:%d] [final:%d]\n", host 1756 drivers/mmc/host/mtk-sd.c static inline void msdc_set_cmd_delay(struct msdc_host *host, u32 value) host 1758 drivers/mmc/host/mtk-sd.c u32 tune_reg = host->dev_comp->pad_tune_reg; host 1760 drivers/mmc/host/mtk-sd.c if (host->top_base) host 1761 drivers/mmc/host/mtk-sd.c sdr_set_field(host->top_base + EMMC_TOP_CMD, PAD_CMD_RXDLY, host 1764 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + tune_reg, MSDC_PAD_TUNE_CMDRDLY, host 1768 drivers/mmc/host/mtk-sd.c static inline void msdc_set_data_delay(struct msdc_host *host, u32 value) host 1770 drivers/mmc/host/mtk-sd.c u32 tune_reg = host->dev_comp->pad_tune_reg; host 1772 drivers/mmc/host/mtk-sd.c if (host->top_base) host 1773 drivers/mmc/host/mtk-sd.c sdr_set_field(host->top_base + EMMC_TOP_CONTROL, host 1776 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + tune_reg, MSDC_PAD_TUNE_DATRRDLY, host 1782 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1788 drivers/mmc/host/mtk-sd.c u32 tune_reg = host->dev_comp->pad_tune_reg; host 1794 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + tune_reg, host 1796 drivers/mmc/host/mtk-sd.c host->hs200_cmd_int_delay); host 1798 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 1800 drivers/mmc/host/mtk-sd.c msdc_set_cmd_delay(host, i); host 1816 drivers/mmc/host/mtk-sd.c final_rise_delay = get_best_delay(host, rise_delay); host 1822 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 1824 drivers/mmc/host/mtk-sd.c msdc_set_cmd_delay(host, i); host 1840 drivers/mmc/host/mtk-sd.c final_fall_delay = get_best_delay(host, fall_delay); host 1847 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 1850 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 1853 drivers/mmc/host/mtk-sd.c msdc_set_cmd_delay(host, final_delay); host 1855 drivers/mmc/host/mtk-sd.c if (host->dev_comp->async_fifo || host->hs200_cmd_int_delay) host 1859 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + tune_reg, host 1865 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "Final internal delay: 0x%x\n", internal_delay); host 1866 drivers/mmc/host/mtk-sd.c internal_delay_phase = get_best_delay(host, internal_delay); host 1867 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + tune_reg, MSDC_PAD_TUNE_CMDRRDLY, host 1870 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "Final cmd pad delay: %x\n", final_delay); host 1876 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1884 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + PAD_CMD_TUNE, BIT(0)); host 1885 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PATCH_BIT1, MSDC_PATCH_BIT1_CMDTA, 2); host 1889 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PAD_TUNE, host 1891 drivers/mmc/host/mtk-sd.c host->hs200_cmd_int_delay); host 1893 drivers/mmc/host/mtk-sd.c if (host->hs400_cmd_resp_sel_rising) host 1894 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 1896 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 1898 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + PAD_CMD_TUNE, host 1915 drivers/mmc/host/mtk-sd.c final_cmd_delay = get_best_delay(host, cmd_delay); host 1916 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + PAD_CMD_TUNE, PAD_CMD_TUNE_RX_DLY3, host 1920 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "Final cmd pad delay: %x\n", final_delay); host 1926 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1932 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_INT_DAT_LATCH_CK_SEL, host 1933 drivers/mmc/host/mtk-sd.c host->latch_ck); host 1934 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL); host 1935 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL); host 1937 drivers/mmc/host/mtk-sd.c msdc_set_data_delay(host, i); host 1942 drivers/mmc/host/mtk-sd.c final_rise_delay = get_best_delay(host, rise_delay); host 1948 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL); host 1949 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL); host 1951 drivers/mmc/host/mtk-sd.c msdc_set_data_delay(host, i); host 1956 drivers/mmc/host/mtk-sd.c final_fall_delay = get_best_delay(host, fall_delay); host 1961 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL); host 1962 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL); host 1965 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_DSPL); host 1966 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_W_DSPL); host 1969 drivers/mmc/host/mtk-sd.c msdc_set_data_delay(host, final_delay); host 1971 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "Final data pad delay: %x\n", final_delay); host 1981 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 1987 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + MSDC_PATCH_BIT, MSDC_INT_DAT_LATCH_CK_SEL, host 1988 drivers/mmc/host/mtk-sd.c host->latch_ck); host 1990 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 1991 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, host 1994 drivers/mmc/host/mtk-sd.c msdc_set_cmd_delay(host, i); host 1995 drivers/mmc/host/mtk-sd.c msdc_set_data_delay(host, i); host 2000 drivers/mmc/host/mtk-sd.c final_rise_delay = get_best_delay(host, rise_delay); host 2006 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 2007 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, host 2010 drivers/mmc/host/mtk-sd.c msdc_set_cmd_delay(host, i); host 2011 drivers/mmc/host/mtk-sd.c msdc_set_data_delay(host, i); host 2016 drivers/mmc/host/mtk-sd.c final_fall_delay = get_best_delay(host, fall_delay); host 2021 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 2022 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, host 2026 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, MSDC_IOCON_RSPL); host 2027 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + MSDC_IOCON, host 2032 drivers/mmc/host/mtk-sd.c msdc_set_cmd_delay(host, final_delay); host 2033 drivers/mmc/host/mtk-sd.c msdc_set_data_delay(host, final_delay); host 2035 drivers/mmc/host/mtk-sd.c dev_dbg(host->dev, "Final pad delay: %x\n", final_delay); host 2041 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 2043 drivers/mmc/host/mtk-sd.c u32 tune_reg = host->dev_comp->pad_tune_reg; host 2045 drivers/mmc/host/mtk-sd.c if (host->dev_comp->data_tune && host->dev_comp->async_fifo) { host 2047 drivers/mmc/host/mtk-sd.c if (host->hs400_mode) { host 2048 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_IOCON, host 2050 drivers/mmc/host/mtk-sd.c msdc_set_data_delay(host, 0); host 2054 drivers/mmc/host/mtk-sd.c if (host->hs400_mode && host 2055 drivers/mmc/host/mtk-sd.c host->dev_comp->hs400_tune) host 2060 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "Tune response fail!\n"); host 2063 drivers/mmc/host/mtk-sd.c if (host->hs400_mode == false) { host 2066 drivers/mmc/host/mtk-sd.c dev_err(host->dev, "Tune data fail!\n"); host 2070 drivers/mmc/host/mtk-sd.c host->saved_tune_para.iocon = readl(host->base + MSDC_IOCON); host 2071 drivers/mmc/host/mtk-sd.c host->saved_tune_para.pad_tune = readl(host->base + tune_reg); host 2072 drivers/mmc/host/mtk-sd.c host->saved_tune_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE); host 2073 drivers/mmc/host/mtk-sd.c if (host->top_base) { host 2074 drivers/mmc/host/mtk-sd.c host->saved_tune_para.emmc_top_control = readl(host->top_base + host 2076 drivers/mmc/host/mtk-sd.c host->saved_tune_para.emmc_top_cmd = readl(host->top_base + host 2084 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 2085 drivers/mmc/host/mtk-sd.c host->hs400_mode = true; host 2087 drivers/mmc/host/mtk-sd.c if (host->top_base) host 2088 drivers/mmc/host/mtk-sd.c writel(host->hs400_ds_delay, host 2089 drivers/mmc/host/mtk-sd.c host->top_base + EMMC50_PAD_DS_TUNE); host 2091 drivers/mmc/host/mtk-sd.c writel(host->hs400_ds_delay, host->base + PAD_DS_TUNE); host 2093 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + MSDC_PATCH_BIT2, MSDC_PATCH_BIT2_CFGCRCSTS); host 2095 drivers/mmc/host/mtk-sd.c sdr_set_field(host->base + EMMC50_CFG3, EMMC50_CFG3_OUTS_WR, 2); host 2102 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 2104 drivers/mmc/host/mtk-sd.c sdr_set_bits(host->base + EMMC_IOCON, 1); host 2106 drivers/mmc/host/mtk-sd.c sdr_clr_bits(host->base + EMMC_IOCON, 1); host 2112 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 2114 drivers/mmc/host/mtk-sd.c spin_lock_irqsave(&host->lock, flags); host 2115 drivers/mmc/host/mtk-sd.c __msdc_enable_sdio_irq(host, 1); host 2116 drivers/mmc/host/mtk-sd.c spin_unlock_irqrestore(&host->lock, flags); host 2121 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 2127 drivers/mmc/host/mtk-sd.c if (!host->internal_cd) host 2130 drivers/mmc/host/mtk-sd.c val = readl(host->base + MSDC_PS) & MSDC_PS_CDSTS; host 2154 drivers/mmc/host/mtk-sd.c struct msdc_host *host) host 2157 drivers/mmc/host/mtk-sd.c &host->latch_ck); host 2160 drivers/mmc/host/mtk-sd.c &host->hs400_ds_delay); host 2163 drivers/mmc/host/mtk-sd.c &host->hs200_cmd_int_delay); host 2166 drivers/mmc/host/mtk-sd.c &host->hs400_cmd_int_delay); host 2170 drivers/mmc/host/mtk-sd.c host->hs400_cmd_resp_sel_rising = true; host 2172 drivers/mmc/host/mtk-sd.c host->hs400_cmd_resp_sel_rising = false; host 2178 drivers/mmc/host/mtk-sd.c struct msdc_host *host; host 2192 drivers/mmc/host/mtk-sd.c host = mmc_priv(mmc); host 2198 drivers/mmc/host/mtk-sd.c host->base = devm_ioremap_resource(&pdev->dev, res); host 2199 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->base)) { host 2200 drivers/mmc/host/mtk-sd.c ret = PTR_ERR(host->base); host 2206 drivers/mmc/host/mtk-sd.c host->top_base = devm_ioremap_resource(&pdev->dev, res); host 2207 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->top_base)) host 2208 drivers/mmc/host/mtk-sd.c host->top_base = NULL; host 2215 drivers/mmc/host/mtk-sd.c host->src_clk = devm_clk_get(&pdev->dev, "source"); host 2216 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->src_clk)) { host 2217 drivers/mmc/host/mtk-sd.c ret = PTR_ERR(host->src_clk); host 2221 drivers/mmc/host/mtk-sd.c host->h_clk = devm_clk_get(&pdev->dev, "hclk"); host 2222 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->h_clk)) { host 2223 drivers/mmc/host/mtk-sd.c ret = PTR_ERR(host->h_clk); host 2227 drivers/mmc/host/mtk-sd.c host->bus_clk = devm_clk_get(&pdev->dev, "bus_clk"); host 2228 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->bus_clk)) host 2229 drivers/mmc/host/mtk-sd.c host->bus_clk = NULL; host 2231 drivers/mmc/host/mtk-sd.c host->src_clk_cg = devm_clk_get(&pdev->dev, "source_cg"); host 2232 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->src_clk_cg)) host 2233 drivers/mmc/host/mtk-sd.c host->src_clk_cg = NULL; host 2235 drivers/mmc/host/mtk-sd.c host->irq = platform_get_irq(pdev, 0); host 2236 drivers/mmc/host/mtk-sd.c if (host->irq < 0) { host 2241 drivers/mmc/host/mtk-sd.c host->pinctrl = devm_pinctrl_get(&pdev->dev); host 2242 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->pinctrl)) { host 2243 drivers/mmc/host/mtk-sd.c ret = PTR_ERR(host->pinctrl); host 2248 drivers/mmc/host/mtk-sd.c host->pins_default = pinctrl_lookup_state(host->pinctrl, "default"); host 2249 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->pins_default)) { host 2250 drivers/mmc/host/mtk-sd.c ret = PTR_ERR(host->pins_default); host 2255 drivers/mmc/host/mtk-sd.c host->pins_uhs = pinctrl_lookup_state(host->pinctrl, "state_uhs"); host 2256 drivers/mmc/host/mtk-sd.c if (IS_ERR(host->pins_uhs)) { host 2257 drivers/mmc/host/mtk-sd.c ret = PTR_ERR(host->pins_uhs); host 2262 drivers/mmc/host/mtk-sd.c msdc_of_property_parse(pdev, host); host 2264 drivers/mmc/host/mtk-sd.c host->dev = &pdev->dev; host 2265 drivers/mmc/host/mtk-sd.c host->dev_comp = of_device_get_match_data(&pdev->dev); host 2266 drivers/mmc/host/mtk-sd.c host->mmc = mmc; host 2267 drivers/mmc/host/mtk-sd.c host->src_clk_freq = clk_get_rate(host->src_clk); host 2270 drivers/mmc/host/mtk-sd.c if (host->dev_comp->clk_div_bits == 8) host 2271 drivers/mmc/host/mtk-sd.c mmc->f_min = DIV_ROUND_UP(host->src_clk_freq, 4 * 255); host 2273 drivers/mmc/host/mtk-sd.c mmc->f_min = DIV_ROUND_UP(host->src_clk_freq, 4 * 4095); host 2277 drivers/mmc/host/mtk-sd.c host->dev_comp->use_internal_cd) { host 2282 drivers/mmc/host/mtk-sd.c host->internal_cd = true; host 2291 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) host 2298 drivers/mmc/host/mtk-sd.c if (host->dev_comp->support_64g) host 2299 drivers/mmc/host/mtk-sd.c host->dma_mask = DMA_BIT_MASK(36); host 2301 drivers/mmc/host/mtk-sd.c host->dma_mask = DMA_BIT_MASK(32); host 2302 drivers/mmc/host/mtk-sd.c mmc_dev(mmc)->dma_mask = &host->dma_mask; host 2304 drivers/mmc/host/mtk-sd.c host->timeout_clks = 3 * 1048576; host 2305 drivers/mmc/host/mtk-sd.c host->dma.gpd = dma_alloc_coherent(&pdev->dev, host 2307 drivers/mmc/host/mtk-sd.c &host->dma.gpd_addr, GFP_KERNEL); host 2308 drivers/mmc/host/mtk-sd.c host->dma.bd = dma_alloc_coherent(&pdev->dev, host 2310 drivers/mmc/host/mtk-sd.c &host->dma.bd_addr, GFP_KERNEL); host 2311 drivers/mmc/host/mtk-sd.c if (!host->dma.gpd || !host->dma.bd) { host 2315 drivers/mmc/host/mtk-sd.c msdc_init_gpd_bd(host, &host->dma); host 2316 drivers/mmc/host/mtk-sd.c INIT_DELAYED_WORK(&host->req_timeout, msdc_request_timeout); host 2317 drivers/mmc/host/mtk-sd.c spin_lock_init(&host->lock); host 2320 drivers/mmc/host/mtk-sd.c msdc_ungate_clock(host); host 2321 drivers/mmc/host/mtk-sd.c msdc_init_hw(host); host 2323 drivers/mmc/host/mtk-sd.c ret = devm_request_irq(&pdev->dev, host->irq, msdc_irq, host 2324 drivers/mmc/host/mtk-sd.c IRQF_TRIGGER_NONE, pdev->name, host); host 2328 drivers/mmc/host/mtk-sd.c pm_runtime_set_active(host->dev); host 2329 drivers/mmc/host/mtk-sd.c pm_runtime_set_autosuspend_delay(host->dev, MTK_MMC_AUTOSUSPEND_DELAY); host 2330 drivers/mmc/host/mtk-sd.c pm_runtime_use_autosuspend(host->dev); host 2331 drivers/mmc/host/mtk-sd.c pm_runtime_enable(host->dev); host 2339 drivers/mmc/host/mtk-sd.c pm_runtime_disable(host->dev); host 2342 drivers/mmc/host/mtk-sd.c msdc_deinit_hw(host); host 2343 drivers/mmc/host/mtk-sd.c msdc_gate_clock(host); host 2345 drivers/mmc/host/mtk-sd.c if (host->dma.gpd) host 2348 drivers/mmc/host/mtk-sd.c host->dma.gpd, host->dma.gpd_addr); host 2349 drivers/mmc/host/mtk-sd.c if (host->dma.bd) host 2352 drivers/mmc/host/mtk-sd.c host->dma.bd, host->dma.bd_addr); host 2362 drivers/mmc/host/mtk-sd.c struct msdc_host *host; host 2365 drivers/mmc/host/mtk-sd.c host = mmc_priv(mmc); host 2367 drivers/mmc/host/mtk-sd.c pm_runtime_get_sync(host->dev); host 2370 drivers/mmc/host/mtk-sd.c mmc_remove_host(host->mmc); host 2371 drivers/mmc/host/mtk-sd.c msdc_deinit_hw(host); host 2372 drivers/mmc/host/mtk-sd.c msdc_gate_clock(host); host 2374 drivers/mmc/host/mtk-sd.c pm_runtime_disable(host->dev); host 2375 drivers/mmc/host/mtk-sd.c pm_runtime_put_noidle(host->dev); host 2378 drivers/mmc/host/mtk-sd.c host->dma.gpd, host->dma.gpd_addr); host 2380 drivers/mmc/host/mtk-sd.c host->dma.bd, host->dma.bd_addr); host 2382 drivers/mmc/host/mtk-sd.c mmc_free_host(host->mmc); host 2388 drivers/mmc/host/mtk-sd.c static void msdc_save_reg(struct msdc_host *host) host 2390 drivers/mmc/host/mtk-sd.c u32 tune_reg = host->dev_comp->pad_tune_reg; host 2392 drivers/mmc/host/mtk-sd.c host->save_para.msdc_cfg = readl(host->base + MSDC_CFG); host 2393 drivers/mmc/host/mtk-sd.c host->save_para.iocon = readl(host->base + MSDC_IOCON); host 2394 drivers/mmc/host/mtk-sd.c host->save_para.sdc_cfg = readl(host->base + SDC_CFG); host 2395 drivers/mmc/host/mtk-sd.c host->save_para.patch_bit0 = readl(host->base + MSDC_PATCH_BIT); host 2396 drivers/mmc/host/mtk-sd.c host->save_para.patch_bit1 = readl(host->base + MSDC_PATCH_BIT1); host 2397 drivers/mmc/host/mtk-sd.c host->save_para.patch_bit2 = readl(host->base + MSDC_PATCH_BIT2); host 2398 drivers/mmc/host/mtk-sd.c host->save_para.pad_ds_tune = readl(host->base + PAD_DS_TUNE); host 2399 drivers/mmc/host/mtk-sd.c host->save_para.pad_cmd_tune = readl(host->base + PAD_CMD_TUNE); host 2400 drivers/mmc/host/mtk-sd.c host->save_para.emmc50_cfg0 = readl(host->base + EMMC50_CFG0); host 2401 drivers/mmc/host/mtk-sd.c host->save_para.emmc50_cfg3 = readl(host->base + EMMC50_CFG3); host 2402 drivers/mmc/host/mtk-sd.c host->save_para.sdc_fifo_cfg = readl(host->base + SDC_FIFO_CFG); host 2403 drivers/mmc/host/mtk-sd.c if (host->top_base) { host 2404 drivers/mmc/host/mtk-sd.c host->save_para.emmc_top_control = host 2405 drivers/mmc/host/mtk-sd.c readl(host->top_base + EMMC_TOP_CONTROL); host 2406 drivers/mmc/host/mtk-sd.c host->save_para.emmc_top_cmd = host 2407 drivers/mmc/host/mtk-sd.c readl(host->top_base + EMMC_TOP_CMD); host 2408 drivers/mmc/host/mtk-sd.c host->save_para.emmc50_pad_ds_tune = host 2409 drivers/mmc/host/mtk-sd.c readl(host->top_base + EMMC50_PAD_DS_TUNE); host 2411 drivers/mmc/host/mtk-sd.c host->save_para.pad_tune = readl(host->base + tune_reg); host 2415 drivers/mmc/host/mtk-sd.c static void msdc_restore_reg(struct msdc_host *host) host 2417 drivers/mmc/host/mtk-sd.c u32 tune_reg = host->dev_comp->pad_tune_reg; host 2419 drivers/mmc/host/mtk-sd.c writel(host->save_para.msdc_cfg, host->base + MSDC_CFG); host 2420 drivers/mmc/host/mtk-sd.c writel(host->save_para.iocon, host->base + MSDC_IOCON); host 2421 drivers/mmc/host/mtk-sd.c writel(host->save_para.sdc_cfg, host->base + SDC_CFG); host 2422 drivers/mmc/host/mtk-sd.c writel(host->save_para.patch_bit0, host->base + MSDC_PATCH_BIT); host 2423 drivers/mmc/host/mtk-sd.c writel(host->save_para.patch_bit1, host->base + MSDC_PATCH_BIT1); host 2424 drivers/mmc/host/mtk-sd.c writel(host->save_para.patch_bit2, host->base + MSDC_PATCH_BIT2); host 2425 drivers/mmc/host/mtk-sd.c writel(host->save_para.pad_ds_tune, host->base + PAD_DS_TUNE); host 2426 drivers/mmc/host/mtk-sd.c writel(host->save_para.pad_cmd_tune, host->base + PAD_CMD_TUNE); host 2427 drivers/mmc/host/mtk-sd.c writel(host->save_para.emmc50_cfg0, host->base + EMMC50_CFG0); host 2428 drivers/mmc/host/mtk-sd.c writel(host->save_para.emmc50_cfg3, host->base + EMMC50_CFG3); host 2429 drivers/mmc/host/mtk-sd.c writel(host->save_para.sdc_fifo_cfg, host->base + SDC_FIFO_CFG); host 2430 drivers/mmc/host/mtk-sd.c if (host->top_base) { host 2431 drivers/mmc/host/mtk-sd.c writel(host->save_para.emmc_top_control, host 2432 drivers/mmc/host/mtk-sd.c host->top_base + EMMC_TOP_CONTROL); host 2433 drivers/mmc/host/mtk-sd.c writel(host->save_para.emmc_top_cmd, host 2434 drivers/mmc/host/mtk-sd.c host->top_base + EMMC_TOP_CMD); host 2435 drivers/mmc/host/mtk-sd.c writel(host->save_para.emmc50_pad_ds_tune, host 2436 drivers/mmc/host/mtk-sd.c host->top_base + EMMC50_PAD_DS_TUNE); host 2438 drivers/mmc/host/mtk-sd.c writel(host->save_para.pad_tune, host->base + tune_reg); host 2441 drivers/mmc/host/mtk-sd.c if (sdio_irq_claimed(host->mmc)) host 2442 drivers/mmc/host/mtk-sd.c __msdc_enable_sdio_irq(host, 1); host 2448 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 2450 drivers/mmc/host/mtk-sd.c msdc_save_reg(host); host 2451 drivers/mmc/host/mtk-sd.c msdc_gate_clock(host); host 2458 drivers/mmc/host/mtk-sd.c struct msdc_host *host = mmc_priv(mmc); host 2460 drivers/mmc/host/mtk-sd.c msdc_ungate_clock(host); host 2461 drivers/mmc/host/mtk-sd.c msdc_restore_reg(host); host 56 drivers/mmc/host/mvsdio.c static int mvsd_setup_data(struct mvsd_host *host, struct mmc_data *data) host 58 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 77 drivers/mmc/host/mvsdio.c dev_warn(host->dev, "FIFO_EMPTY bit missing\n"); host 82 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "*** wait for FIFO_EMPTY bit " host 88 drivers/mmc/host/mvsdio.c tmout = DIV_ROUND_UP(data->timeout_ns, host->ns_per_clk); host 96 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "data %s at 0x%08x: blocks=%d blksz=%d tmout=%u (%d)\n", host 101 drivers/mmc/host/mvsdio.c host->ctrl &= ~MVSD_HOST_CTRL_TMOUT_MASK; host 102 drivers/mmc/host/mvsdio.c host->ctrl |= MVSD_HOST_CTRL_TMOUT(tmout_index); host 103 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_HOST_CTRL, host->ctrl); host 117 drivers/mmc/host/mvsdio.c host->pio_size = data->blocks * data->blksz; host 118 drivers/mmc/host/mvsdio.c host->pio_ptr = sg_virt(data->sg); host 120 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "fallback to PIO for data at 0x%p size %d\n", host 121 drivers/mmc/host/mvsdio.c host->pio_ptr, host->pio_size); host 126 drivers/mmc/host/mvsdio.c host->sg_frags = dma_map_sg(mmc_dev(host->mmc), host 138 drivers/mmc/host/mvsdio.c struct mvsd_host *host = mmc_priv(mmc); host 139 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 145 drivers/mmc/host/mvsdio.c BUG_ON(host->mrq != NULL); host 146 drivers/mmc/host/mvsdio.c host->mrq = mrq; host 148 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "cmd %d (hw state 0x%04x)\n", host 182 drivers/mmc/host/mvsdio.c pio = mvsd_setup_data(host, data); host 188 drivers/mmc/host/mvsdio.c else if (host->pio_size > 32) host 220 drivers/mmc/host/mvsdio.c spin_lock_irqsave(&host->lock, flags); host 222 drivers/mmc/host/mvsdio.c host->xfer_mode &= MVSD_XFER_MODE_INT_CHK_EN; host 223 drivers/mmc/host/mvsdio.c host->xfer_mode |= xfer; host 224 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_XFER_MODE, host->xfer_mode); host 230 drivers/mmc/host/mvsdio.c host->intr_en &= MVSD_NOR_CARD_INT; host 231 drivers/mmc/host/mvsdio.c host->intr_en |= intr | MVSD_NOR_ERROR; host 232 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_NOR_INTR_EN, host->intr_en); host 236 drivers/mmc/host/mvsdio.c mod_timer(&host->timer, jiffies + msecs_to_jiffies(timeout)); host 238 drivers/mmc/host/mvsdio.c spin_unlock_irqrestore(&host->lock, flags); host 241 drivers/mmc/host/mvsdio.c static u32 mvsd_finish_cmd(struct mvsd_host *host, struct mmc_command *cmd, host 244 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 286 drivers/mmc/host/mvsdio.c static u32 mvsd_finish_data(struct mvsd_host *host, struct mmc_data *data, host 289 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 291 drivers/mmc/host/mvsdio.c if (host->pio_ptr) { host 292 drivers/mmc/host/mvsdio.c host->pio_ptr = NULL; host 293 drivers/mmc/host/mvsdio.c host->pio_size = 0; host 295 drivers/mmc/host/mvsdio.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, host->sg_frags, host 308 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "data done: blocks_left=%d, bytes_left=%d\n", host 330 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "c12err 0x%04x\n", err_cmd12); host 346 drivers/mmc/host/mvsdio.c struct mvsd_host *host = dev; host 347 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 352 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "intr 0x%04x intr_en 0x%04x hw_state 0x%04x\n", host 362 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "spurious irq detected intr 0x%04x intr_en 0x%04x erri 0x%04x erri_en 0x%04x\n", host 370 drivers/mmc/host/mvsdio.c spin_lock(&host->lock); host 373 drivers/mmc/host/mvsdio.c if (host->pio_size && host 374 drivers/mmc/host/mvsdio.c (intr_status & host->intr_en & host 376 drivers/mmc/host/mvsdio.c u16 *p = host->pio_ptr; host 377 drivers/mmc/host/mvsdio.c int s = host->pio_size; host 405 drivers/mmc/host/mvsdio.c host->intr_en &= host 407 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_NOR_INTR_EN, host->intr_en); host 408 drivers/mmc/host/mvsdio.c } else if (host->intr_en & MVSD_NOR_RX_FIFO_8W) { host 409 drivers/mmc/host/mvsdio.c host->intr_en &= ~MVSD_NOR_RX_FIFO_8W; host 410 drivers/mmc/host/mvsdio.c host->intr_en |= MVSD_NOR_RX_READY; host 411 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_NOR_INTR_EN, host->intr_en); host 414 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "pio %d intr 0x%04x hw_state 0x%04x\n", host 416 drivers/mmc/host/mvsdio.c host->pio_ptr = p; host 417 drivers/mmc/host/mvsdio.c host->pio_size = s; host 419 drivers/mmc/host/mvsdio.c } else if (host->pio_size && host 420 drivers/mmc/host/mvsdio.c (intr_status & host->intr_en & host 422 drivers/mmc/host/mvsdio.c u16 *p = host->pio_ptr; host 423 drivers/mmc/host/mvsdio.c int s = host->pio_size; host 446 drivers/mmc/host/mvsdio.c host->intr_en &= host 448 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_NOR_INTR_EN, host->intr_en); host 451 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "pio %d intr 0x%04x hw_state 0x%04x\n", host 453 drivers/mmc/host/mvsdio.c host->pio_ptr = p; host 454 drivers/mmc/host/mvsdio.c host->pio_size = s; host 462 drivers/mmc/host/mvsdio.c if (intr_status & host->intr_en & ~intr_done_mask) { host 463 drivers/mmc/host/mvsdio.c struct mmc_request *mrq = host->mrq; host 467 drivers/mmc/host/mvsdio.c del_timer(&host->timer); host 468 drivers/mmc/host/mvsdio.c host->mrq = NULL; host 470 drivers/mmc/host/mvsdio.c host->intr_en &= MVSD_NOR_CARD_INT; host 471 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_NOR_INTR_EN, host->intr_en); host 474 drivers/mmc/host/mvsdio.c spin_unlock(&host->lock); host 480 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "err 0x%04x\n", err_status); host 483 drivers/mmc/host/mvsdio.c err_status = mvsd_finish_cmd(host, cmd, err_status); host 485 drivers/mmc/host/mvsdio.c err_status = mvsd_finish_data(host, mrq->data, err_status); host 487 drivers/mmc/host/mvsdio.c dev_err(host->dev, "unhandled error status %#04x\n", host 492 drivers/mmc/host/mvsdio.c mmc_request_done(host->mmc, mrq); host 495 drivers/mmc/host/mvsdio.c spin_unlock(&host->lock); host 498 drivers/mmc/host/mvsdio.c mmc_signal_sdio_irq(host->mmc); host 505 drivers/mmc/host/mvsdio.c dev_err(host->dev, "unhandled interrupt status=0x%04x en=0x%04x pio=%d\n", host 506 drivers/mmc/host/mvsdio.c intr_status, host->intr_en, host->pio_size); host 512 drivers/mmc/host/mvsdio.c struct mvsd_host *host = from_timer(host, t, timer); host 513 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 517 drivers/mmc/host/mvsdio.c spin_lock_irqsave(&host->lock, flags); host 518 drivers/mmc/host/mvsdio.c mrq = host->mrq; host 520 drivers/mmc/host/mvsdio.c dev_err(host->dev, "Timeout waiting for hardware interrupt.\n"); host 521 drivers/mmc/host/mvsdio.c dev_err(host->dev, "hw_state=0x%04x, intr_status=0x%04x intr_en=0x%04x\n", host 526 drivers/mmc/host/mvsdio.c host->mrq = NULL; host 530 drivers/mmc/host/mvsdio.c host->xfer_mode &= MVSD_XFER_MODE_INT_CHK_EN; host 531 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_XFER_MODE, host->xfer_mode); host 533 drivers/mmc/host/mvsdio.c host->intr_en &= MVSD_NOR_CARD_INT; host 534 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_NOR_INTR_EN, host->intr_en); host 539 drivers/mmc/host/mvsdio.c mvsd_finish_cmd(host, mrq->cmd, 0); host 542 drivers/mmc/host/mvsdio.c mvsd_finish_data(host, mrq->data, 0); host 545 drivers/mmc/host/mvsdio.c spin_unlock_irqrestore(&host->lock, flags); host 548 drivers/mmc/host/mvsdio.c mmc_request_done(host->mmc, mrq); host 553 drivers/mmc/host/mvsdio.c struct mvsd_host *host = mmc_priv(mmc); host 554 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 557 drivers/mmc/host/mvsdio.c spin_lock_irqsave(&host->lock, flags); host 559 drivers/mmc/host/mvsdio.c host->xfer_mode |= MVSD_XFER_MODE_INT_CHK_EN; host 560 drivers/mmc/host/mvsdio.c host->intr_en |= MVSD_NOR_CARD_INT; host 562 drivers/mmc/host/mvsdio.c host->xfer_mode &= ~MVSD_XFER_MODE_INT_CHK_EN; host 563 drivers/mmc/host/mvsdio.c host->intr_en &= ~MVSD_NOR_CARD_INT; host 565 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_XFER_MODE, host->xfer_mode); host 566 drivers/mmc/host/mvsdio.c mvsd_write(MVSD_NOR_INTR_EN, host->intr_en); host 567 drivers/mmc/host/mvsdio.c spin_unlock_irqrestore(&host->lock, flags); host 570 drivers/mmc/host/mvsdio.c static void mvsd_power_up(struct mvsd_host *host) host 572 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 573 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "power up\n"); host 584 drivers/mmc/host/mvsdio.c static void mvsd_power_down(struct mvsd_host *host) host 586 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 587 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "power down\n"); host 600 drivers/mmc/host/mvsdio.c struct mvsd_host *host = mmc_priv(mmc); host 601 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 605 drivers/mmc/host/mvsdio.c mvsd_power_up(host); host 610 drivers/mmc/host/mvsdio.c host->clock = 0; host 611 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "clock off\n"); host 612 drivers/mmc/host/mvsdio.c } else if (ios->clock != host->clock) { host 613 drivers/mmc/host/mvsdio.c u32 m = DIV_ROUND_UP(host->base_clock, ios->clock) - 1; host 617 drivers/mmc/host/mvsdio.c host->clock = ios->clock; host 618 drivers/mmc/host/mvsdio.c host->ns_per_clk = 1000000000 / (host->base_clock / (m+1)); host 619 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "clock=%d (%d), div=0x%04x\n", host 620 drivers/mmc/host/mvsdio.c ios->clock, host->base_clock / (m+1), m); host 650 drivers/mmc/host/mvsdio.c host->ctrl = ctrl_reg; host 652 drivers/mmc/host/mvsdio.c dev_dbg(host->dev, "ctrl 0x%04x: %s %s %s\n", ctrl_reg, host 661 drivers/mmc/host/mvsdio.c mvsd_power_down(host); host 672 drivers/mmc/host/mvsdio.c mv_conf_mbus_windows(struct mvsd_host *host, host 675 drivers/mmc/host/mvsdio.c void __iomem *iobase = host->base; host 697 drivers/mmc/host/mvsdio.c struct mvsd_host *host = NULL; host 717 drivers/mmc/host/mvsdio.c host = mmc_priv(mmc); host 718 drivers/mmc/host/mvsdio.c host->mmc = mmc; host 719 drivers/mmc/host/mvsdio.c host->dev = &pdev->dev; host 728 drivers/mmc/host/mvsdio.c host->clk = devm_clk_get(&pdev->dev, NULL); host 729 drivers/mmc/host/mvsdio.c if (IS_ERR(host->clk)) { host 734 drivers/mmc/host/mvsdio.c clk_prepare_enable(host->clk); host 740 drivers/mmc/host/mvsdio.c mmc->f_min = DIV_ROUND_UP(host->base_clock, MVSD_BASE_DIV_MAX); host 750 drivers/mmc/host/mvsdio.c host->base_clock = clk_get_rate(host->clk) / 2; host 759 drivers/mmc/host/mvsdio.c spin_lock_init(&host->lock); host 761 drivers/mmc/host/mvsdio.c host->base = devm_ioremap_resource(&pdev->dev, r); host 762 drivers/mmc/host/mvsdio.c if (IS_ERR(host->base)) { host 763 drivers/mmc/host/mvsdio.c ret = PTR_ERR(host->base); host 770 drivers/mmc/host/mvsdio.c mv_conf_mbus_windows(host, dram); host 772 drivers/mmc/host/mvsdio.c mvsd_power_down(host); host 774 drivers/mmc/host/mvsdio.c ret = devm_request_irq(&pdev->dev, irq, mvsd_irq, 0, DRIVER_NAME, host); host 780 drivers/mmc/host/mvsdio.c timer_setup(&host->timer, mvsd_timeout_timer, 0); host 795 drivers/mmc/host/mvsdio.c if (!IS_ERR(host->clk)) host 796 drivers/mmc/host/mvsdio.c clk_disable_unprepare(host->clk); host 807 drivers/mmc/host/mvsdio.c struct mvsd_host *host = mmc_priv(mmc); host 810 drivers/mmc/host/mvsdio.c del_timer_sync(&host->timer); host 811 drivers/mmc/host/mvsdio.c mvsd_power_down(host); host 813 drivers/mmc/host/mvsdio.c if (!IS_ERR(host->clk)) host 814 drivers/mmc/host/mvsdio.c clk_disable_unprepare(host->clk); host 192 drivers/mmc/host/mxcmmc.c static inline int is_imx31_mmc(struct mxcmci_host *host) host 194 drivers/mmc/host/mxcmmc.c return host->devtype == IMX31_MMC; host 197 drivers/mmc/host/mxcmmc.c static inline int is_mpc512x_mmc(struct mxcmci_host *host) host 199 drivers/mmc/host/mxcmmc.c return host->devtype == MPC512X_MMC; host 202 drivers/mmc/host/mxcmmc.c static inline u32 mxcmci_readl(struct mxcmci_host *host, int reg) host 205 drivers/mmc/host/mxcmmc.c return ioread32be(host->base + reg); host 207 drivers/mmc/host/mxcmmc.c return readl(host->base + reg); host 210 drivers/mmc/host/mxcmmc.c static inline void mxcmci_writel(struct mxcmci_host *host, u32 val, int reg) host 213 drivers/mmc/host/mxcmmc.c iowrite32be(val, host->base + reg); host 215 drivers/mmc/host/mxcmmc.c writel(val, host->base + reg); host 218 drivers/mmc/host/mxcmmc.c static inline u16 mxcmci_readw(struct mxcmci_host *host, int reg) host 221 drivers/mmc/host/mxcmmc.c return ioread32be(host->base + reg); host 223 drivers/mmc/host/mxcmmc.c return readw(host->base + reg); host 226 drivers/mmc/host/mxcmmc.c static inline void mxcmci_writew(struct mxcmci_host *host, u16 val, int reg) host 229 drivers/mmc/host/mxcmmc.c iowrite32be(val, host->base + reg); host 231 drivers/mmc/host/mxcmmc.c writew(val, host->base + reg); host 234 drivers/mmc/host/mxcmmc.c static void mxcmci_set_clk_rate(struct mxcmci_host *host, unsigned int clk_ios); host 236 drivers/mmc/host/mxcmmc.c static void mxcmci_set_power(struct mxcmci_host *host, unsigned int vdd) host 238 drivers/mmc/host/mxcmmc.c if (!IS_ERR(host->mmc->supply.vmmc)) { host 239 drivers/mmc/host/mxcmmc.c if (host->power_mode == MMC_POWER_UP) host 240 drivers/mmc/host/mxcmmc.c mmc_regulator_set_ocr(host->mmc, host 241 drivers/mmc/host/mxcmmc.c host->mmc->supply.vmmc, vdd); host 242 drivers/mmc/host/mxcmmc.c else if (host->power_mode == MMC_POWER_OFF) host 243 drivers/mmc/host/mxcmmc.c mmc_regulator_set_ocr(host->mmc, host 244 drivers/mmc/host/mxcmmc.c host->mmc->supply.vmmc, 0); host 247 drivers/mmc/host/mxcmmc.c if (host->pdata && host->pdata->setpower) host 248 drivers/mmc/host/mxcmmc.c host->pdata->setpower(mmc_dev(host->mmc), vdd); host 251 drivers/mmc/host/mxcmmc.c static inline int mxcmci_use_dma(struct mxcmci_host *host) host 253 drivers/mmc/host/mxcmmc.c return host->do_dma; host 256 drivers/mmc/host/mxcmmc.c static void mxcmci_softreset(struct mxcmci_host *host) host 260 drivers/mmc/host/mxcmmc.c dev_dbg(mmc_dev(host->mmc), "mxcmci_softreset\n"); host 263 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, STR_STP_CLK_RESET, MMC_REG_STR_STP_CLK); host 264 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, STR_STP_CLK_RESET | STR_STP_CLK_START_CLK, host 268 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, STR_STP_CLK_START_CLK, MMC_REG_STR_STP_CLK); host 270 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, 0xff, MMC_REG_RES_TO); host 296 drivers/mmc/host/mxcmmc.c static int mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data) host 305 drivers/mmc/host/mxcmmc.c host->data = data; host 308 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, nob, MMC_REG_NOB); host 309 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, blksz, MMC_REG_BLK_LEN); host 310 drivers/mmc/host/mxcmmc.c host->datasize = datasize; host 312 drivers/mmc/host/mxcmmc.c if (!mxcmci_use_dma(host)) host 317 drivers/mmc/host/mxcmmc.c host->do_dma = 0; host 323 drivers/mmc/host/mxcmmc.c host->dma_dir = DMA_FROM_DEVICE; host 326 drivers/mmc/host/mxcmmc.c host->dma_dir = DMA_TO_DEVICE; host 332 drivers/mmc/host/mxcmmc.c nents = dma_map_sg(host->dma->device->dev, data->sg, host 333 drivers/mmc/host/mxcmmc.c data->sg_len, host->dma_dir); host 337 drivers/mmc/host/mxcmmc.c host->desc = dmaengine_prep_slave_sg(host->dma, host 341 drivers/mmc/host/mxcmmc.c if (!host->desc) { host 342 drivers/mmc/host/mxcmmc.c dma_unmap_sg(host->dma->device->dev, data->sg, data->sg_len, host 343 drivers/mmc/host/mxcmmc.c host->dma_dir); host 344 drivers/mmc/host/mxcmmc.c host->do_dma = 0; host 349 drivers/mmc/host/mxcmmc.c dmaengine_submit(host->desc); host 350 drivers/mmc/host/mxcmmc.c dma_async_issue_pending(host->dma); host 352 drivers/mmc/host/mxcmmc.c mod_timer(&host->watchdog, jiffies + msecs_to_jiffies(MXCMCI_TIMEOUT_MS)); host 357 drivers/mmc/host/mxcmmc.c static void mxcmci_cmd_done(struct mxcmci_host *host, unsigned int stat); host 358 drivers/mmc/host/mxcmmc.c static void mxcmci_data_done(struct mxcmci_host *host, unsigned int stat); host 362 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = data; host 365 drivers/mmc/host/mxcmmc.c del_timer(&host->watchdog); host 367 drivers/mmc/host/mxcmmc.c stat = mxcmci_readl(host, MMC_REG_STATUS); host 369 drivers/mmc/host/mxcmmc.c dev_dbg(mmc_dev(host->mmc), "%s: 0x%08x\n", __func__, stat); host 371 drivers/mmc/host/mxcmmc.c mxcmci_data_done(host, stat); host 374 drivers/mmc/host/mxcmmc.c static int mxcmci_start_cmd(struct mxcmci_host *host, struct mmc_command *cmd, host 377 drivers/mmc/host/mxcmmc.c u32 int_cntr = host->default_irq_mask; host 380 drivers/mmc/host/mxcmmc.c WARN_ON(host->cmd != NULL); host 381 drivers/mmc/host/mxcmmc.c host->cmd = cmd; host 397 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), "unhandled response type 0x%x\n", host 405 drivers/mmc/host/mxcmmc.c if (mxcmci_use_dma(host)) { host 406 drivers/mmc/host/mxcmmc.c if (host->dma_dir == DMA_FROM_DEVICE) { host 407 drivers/mmc/host/mxcmmc.c host->desc->callback = mxcmci_dma_callback; host 408 drivers/mmc/host/mxcmmc.c host->desc->callback_param = host; host 414 drivers/mmc/host/mxcmmc.c spin_lock_irqsave(&host->lock, flags); host 415 drivers/mmc/host/mxcmmc.c if (host->use_sdio) host 417 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, int_cntr, MMC_REG_INT_CNTR); host 418 drivers/mmc/host/mxcmmc.c spin_unlock_irqrestore(&host->lock, flags); host 420 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, cmd->opcode, MMC_REG_CMD); host 421 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, cmd->arg, MMC_REG_ARG); host 422 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, cmdat, MMC_REG_CMD_DAT_CONT); host 427 drivers/mmc/host/mxcmmc.c static void mxcmci_finish_request(struct mxcmci_host *host, host 430 drivers/mmc/host/mxcmmc.c u32 int_cntr = host->default_irq_mask; host 433 drivers/mmc/host/mxcmmc.c spin_lock_irqsave(&host->lock, flags); host 434 drivers/mmc/host/mxcmmc.c if (host->use_sdio) host 436 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, int_cntr, MMC_REG_INT_CNTR); host 437 drivers/mmc/host/mxcmmc.c spin_unlock_irqrestore(&host->lock, flags); host 439 drivers/mmc/host/mxcmmc.c host->req = NULL; host 440 drivers/mmc/host/mxcmmc.c host->cmd = NULL; host 441 drivers/mmc/host/mxcmmc.c host->data = NULL; host 443 drivers/mmc/host/mxcmmc.c mmc_request_done(host->mmc, req); host 446 drivers/mmc/host/mxcmmc.c static int mxcmci_finish_data(struct mxcmci_host *host, unsigned int stat) host 448 drivers/mmc/host/mxcmmc.c struct mmc_data *data = host->data; host 451 drivers/mmc/host/mxcmmc.c if (mxcmci_use_dma(host)) { host 452 drivers/mmc/host/mxcmmc.c dma_unmap_sg(host->dma->device->dev, data->sg, data->sg_len, host 453 drivers/mmc/host/mxcmmc.c host->dma_dir); host 458 drivers/mmc/host/mxcmmc.c dev_dbg(mmc_dev(host->mmc), "request failed. status: 0x%08x\n", host 461 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), "%s: -EILSEQ\n", __func__); host 466 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), host 470 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), host 475 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), host 479 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), "%s: -EIO\n", __func__); host 483 drivers/mmc/host/mxcmmc.c data->bytes_xfered = host->datasize; host 488 drivers/mmc/host/mxcmmc.c host->data = NULL; host 493 drivers/mmc/host/mxcmmc.c static void mxcmci_read_response(struct mxcmci_host *host, unsigned int stat) host 495 drivers/mmc/host/mxcmmc.c struct mmc_command *cmd = host->cmd; host 503 drivers/mmc/host/mxcmmc.c dev_dbg(mmc_dev(host->mmc), "CMD TIMEOUT\n"); host 506 drivers/mmc/host/mxcmmc.c dev_dbg(mmc_dev(host->mmc), "cmd crc error\n"); host 513 drivers/mmc/host/mxcmmc.c a = mxcmci_readw(host, MMC_REG_RES_FIFO); host 514 drivers/mmc/host/mxcmmc.c b = mxcmci_readw(host, MMC_REG_RES_FIFO); host 518 drivers/mmc/host/mxcmmc.c a = mxcmci_readw(host, MMC_REG_RES_FIFO); host 519 drivers/mmc/host/mxcmmc.c b = mxcmci_readw(host, MMC_REG_RES_FIFO); host 520 drivers/mmc/host/mxcmmc.c c = mxcmci_readw(host, MMC_REG_RES_FIFO); host 526 drivers/mmc/host/mxcmmc.c static int mxcmci_poll_status(struct mxcmci_host *host, u32 mask) host 532 drivers/mmc/host/mxcmmc.c stat = mxcmci_readl(host, MMC_REG_STATUS); host 536 drivers/mmc/host/mxcmmc.c mxcmci_softreset(host); host 537 drivers/mmc/host/mxcmmc.c mxcmci_set_clk_rate(host, host->clock); host 546 drivers/mmc/host/mxcmmc.c static int mxcmci_pull(struct mxcmci_host *host, void *_buf, int bytes) host 552 drivers/mmc/host/mxcmmc.c stat = mxcmci_poll_status(host, host 556 drivers/mmc/host/mxcmmc.c *buf++ = cpu_to_le32(mxcmci_readl(host, MMC_REG_BUFFER_ACCESS)); host 564 drivers/mmc/host/mxcmmc.c stat = mxcmci_poll_status(host, host 568 drivers/mmc/host/mxcmmc.c tmp = cpu_to_le32(mxcmci_readl(host, MMC_REG_BUFFER_ACCESS)); host 575 drivers/mmc/host/mxcmmc.c static int mxcmci_push(struct mxcmci_host *host, void *_buf, int bytes) host 581 drivers/mmc/host/mxcmmc.c stat = mxcmci_poll_status(host, STATUS_BUF_WRITE_RDY); host 584 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, cpu_to_le32(*buf++), MMC_REG_BUFFER_ACCESS); host 592 drivers/mmc/host/mxcmmc.c stat = mxcmci_poll_status(host, STATUS_BUF_WRITE_RDY); host 597 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, cpu_to_le32(tmp), MMC_REG_BUFFER_ACCESS); host 600 drivers/mmc/host/mxcmmc.c return mxcmci_poll_status(host, STATUS_BUF_WRITE_RDY); host 603 drivers/mmc/host/mxcmmc.c static int mxcmci_transfer_data(struct mxcmci_host *host) host 605 drivers/mmc/host/mxcmmc.c struct mmc_data *data = host->req->data; host 609 drivers/mmc/host/mxcmmc.c host->data = data; host 610 drivers/mmc/host/mxcmmc.c host->datasize = 0; host 614 drivers/mmc/host/mxcmmc.c stat = mxcmci_pull(host, sg_virt(sg), sg->length); host 617 drivers/mmc/host/mxcmmc.c host->datasize += sg->length; host 621 drivers/mmc/host/mxcmmc.c stat = mxcmci_push(host, sg_virt(sg), sg->length); host 624 drivers/mmc/host/mxcmmc.c host->datasize += sg->length; host 626 drivers/mmc/host/mxcmmc.c stat = mxcmci_poll_status(host, STATUS_WRITE_OP_DONE); host 635 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = container_of(work, struct mxcmci_host, host 637 drivers/mmc/host/mxcmmc.c int datastat = mxcmci_transfer_data(host); host 639 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, STATUS_READ_OP_DONE | STATUS_WRITE_OP_DONE, host 641 drivers/mmc/host/mxcmmc.c mxcmci_finish_data(host, datastat); host 643 drivers/mmc/host/mxcmmc.c if (host->req->stop) { host 644 drivers/mmc/host/mxcmmc.c if (mxcmci_start_cmd(host, host->req->stop, 0)) { host 645 drivers/mmc/host/mxcmmc.c mxcmci_finish_request(host, host->req); host 649 drivers/mmc/host/mxcmmc.c mxcmci_finish_request(host, host->req); host 653 drivers/mmc/host/mxcmmc.c static void mxcmci_data_done(struct mxcmci_host *host, unsigned int stat) host 659 drivers/mmc/host/mxcmmc.c spin_lock_irqsave(&host->lock, flags); host 661 drivers/mmc/host/mxcmmc.c if (!host->data) { host 662 drivers/mmc/host/mxcmmc.c spin_unlock_irqrestore(&host->lock, flags); host 666 drivers/mmc/host/mxcmmc.c if (!host->req) { host 667 drivers/mmc/host/mxcmmc.c spin_unlock_irqrestore(&host->lock, flags); host 671 drivers/mmc/host/mxcmmc.c req = host->req; host 673 drivers/mmc/host/mxcmmc.c host->req = NULL; /* we will handle finish req below */ host 675 drivers/mmc/host/mxcmmc.c data_error = mxcmci_finish_data(host, stat); host 677 drivers/mmc/host/mxcmmc.c spin_unlock_irqrestore(&host->lock, flags); host 682 drivers/mmc/host/mxcmmc.c mxcmci_read_response(host, stat); host 683 drivers/mmc/host/mxcmmc.c host->cmd = NULL; host 686 drivers/mmc/host/mxcmmc.c if (mxcmci_start_cmd(host, req->stop, 0)) { host 687 drivers/mmc/host/mxcmmc.c mxcmci_finish_request(host, req); host 691 drivers/mmc/host/mxcmmc.c mxcmci_finish_request(host, req); host 695 drivers/mmc/host/mxcmmc.c static void mxcmci_cmd_done(struct mxcmci_host *host, unsigned int stat) host 697 drivers/mmc/host/mxcmmc.c mxcmci_read_response(host, stat); host 698 drivers/mmc/host/mxcmmc.c host->cmd = NULL; host 700 drivers/mmc/host/mxcmmc.c if (!host->data && host->req) { host 701 drivers/mmc/host/mxcmmc.c mxcmci_finish_request(host, host->req); host 709 drivers/mmc/host/mxcmmc.c if (!mxcmci_use_dma(host) && host->data) host 710 drivers/mmc/host/mxcmmc.c schedule_work(&host->datawork); host 716 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = devid; host 720 drivers/mmc/host/mxcmmc.c stat = mxcmci_readl(host, MMC_REG_STATUS); host 721 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, host 726 drivers/mmc/host/mxcmmc.c dev_dbg(mmc_dev(host->mmc), "%s: 0x%08x\n", __func__, stat); host 728 drivers/mmc/host/mxcmmc.c spin_lock(&host->lock); host 729 drivers/mmc/host/mxcmmc.c sdio_irq = (stat & STATUS_SDIO_INT_ACTIVE) && host->use_sdio; host 730 drivers/mmc/host/mxcmmc.c spin_unlock(&host->lock); host 732 drivers/mmc/host/mxcmmc.c if (mxcmci_use_dma(host) && (stat & (STATUS_WRITE_OP_DONE))) host 733 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, STATUS_WRITE_OP_DONE, MMC_REG_STATUS); host 736 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, STATUS_SDIO_INT_ACTIVE, MMC_REG_STATUS); host 737 drivers/mmc/host/mxcmmc.c mmc_signal_sdio_irq(host->mmc); host 741 drivers/mmc/host/mxcmmc.c mxcmci_cmd_done(host, stat); host 743 drivers/mmc/host/mxcmmc.c if (mxcmci_use_dma(host) && (stat & STATUS_WRITE_OP_DONE)) { host 744 drivers/mmc/host/mxcmmc.c del_timer(&host->watchdog); host 745 drivers/mmc/host/mxcmmc.c mxcmci_data_done(host, stat); host 748 drivers/mmc/host/mxcmmc.c if (host->default_irq_mask && host 750 drivers/mmc/host/mxcmmc.c mmc_detect_change(host->mmc, msecs_to_jiffies(200)); host 757 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = mmc_priv(mmc); host 758 drivers/mmc/host/mxcmmc.c unsigned int cmdat = host->cmdat; host 761 drivers/mmc/host/mxcmmc.c WARN_ON(host->req != NULL); host 763 drivers/mmc/host/mxcmmc.c host->req = req; host 764 drivers/mmc/host/mxcmmc.c host->cmdat &= ~CMD_DAT_CONT_INIT; host 766 drivers/mmc/host/mxcmmc.c if (host->dma) host 767 drivers/mmc/host/mxcmmc.c host->do_dma = 1; host 770 drivers/mmc/host/mxcmmc.c error = mxcmci_setup_data(host, req->data); host 783 drivers/mmc/host/mxcmmc.c error = mxcmci_start_cmd(host, req->cmd, cmdat); host 787 drivers/mmc/host/mxcmmc.c mxcmci_finish_request(host, req); host 790 drivers/mmc/host/mxcmmc.c static void mxcmci_set_clk_rate(struct mxcmci_host *host, unsigned int clk_ios) host 794 drivers/mmc/host/mxcmmc.c unsigned int clk_in = clk_get_rate(host->clk_per); host 817 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, (prescaler << 4) | divider, MMC_REG_CLK_RATE); host 819 drivers/mmc/host/mxcmmc.c dev_dbg(mmc_dev(host->mmc), "scaler: %d divider: %d in: %d out: %d\n", host 825 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = mmc_priv(mmc); host 826 drivers/mmc/host/mxcmmc.c struct dma_slave_config *config = &host->dma_slave_config; host 828 drivers/mmc/host/mxcmmc.c config->dst_addr = host->phys_base + MMC_REG_BUFFER_ACCESS; host 829 drivers/mmc/host/mxcmmc.c config->src_addr = host->phys_base + MMC_REG_BUFFER_ACCESS; host 832 drivers/mmc/host/mxcmmc.c config->dst_maxburst = host->burstlen; host 833 drivers/mmc/host/mxcmmc.c config->src_maxburst = host->burstlen; host 836 drivers/mmc/host/mxcmmc.c return dmaengine_slave_config(host->dma, config); host 841 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = mmc_priv(mmc); host 853 drivers/mmc/host/mxcmmc.c if (mxcmci_use_dma(host) && burstlen != host->burstlen) { host 854 drivers/mmc/host/mxcmmc.c host->burstlen = burstlen; host 857 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), host 859 drivers/mmc/host/mxcmmc.c dma_release_channel(host->dma); host 860 drivers/mmc/host/mxcmmc.c host->do_dma = 0; host 861 drivers/mmc/host/mxcmmc.c host->dma = NULL; host 866 drivers/mmc/host/mxcmmc.c host->cmdat |= CMD_DAT_CONT_BUS_WIDTH_4; host 868 drivers/mmc/host/mxcmmc.c host->cmdat &= ~CMD_DAT_CONT_BUS_WIDTH_4; host 870 drivers/mmc/host/mxcmmc.c if (host->power_mode != ios->power_mode) { host 871 drivers/mmc/host/mxcmmc.c host->power_mode = ios->power_mode; host 872 drivers/mmc/host/mxcmmc.c mxcmci_set_power(host, ios->vdd); host 875 drivers/mmc/host/mxcmmc.c host->cmdat |= CMD_DAT_CONT_INIT; host 879 drivers/mmc/host/mxcmmc.c mxcmci_set_clk_rate(host, ios->clock); host 880 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, STR_STP_CLK_START_CLK, MMC_REG_STR_STP_CLK); host 882 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, STR_STP_CLK_STOP_CLK, MMC_REG_STR_STP_CLK); host 885 drivers/mmc/host/mxcmmc.c host->clock = ios->clock; host 900 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = mmc_priv(mmc); host 902 drivers/mmc/host/mxcmmc.c if (host->pdata && host->pdata->get_ro) host 903 drivers/mmc/host/mxcmmc.c return !!host->pdata->get_ro(mmc_dev(mmc)); host 914 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = mmc_priv(mmc); host 918 drivers/mmc/host/mxcmmc.c spin_lock_irqsave(&host->lock, flags); host 919 drivers/mmc/host/mxcmmc.c host->use_sdio = enable; host 920 drivers/mmc/host/mxcmmc.c int_cntr = mxcmci_readl(host, MMC_REG_INT_CNTR); host 927 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, int_cntr, MMC_REG_INT_CNTR); host 928 drivers/mmc/host/mxcmmc.c spin_unlock_irqrestore(&host->lock, flags); host 931 drivers/mmc/host/mxcmmc.c static void mxcmci_init_card(struct mmc_host *host, struct mmc_card *card) host 933 drivers/mmc/host/mxcmmc.c struct mxcmci_host *mxcmci = mmc_priv(host); host 943 drivers/mmc/host/mxcmmc.c host->caps &= ~MMC_CAP_4_BIT_DATA; host 945 drivers/mmc/host/mxcmmc.c host->caps |= MMC_CAP_4_BIT_DATA; host 950 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = param; host 955 drivers/mmc/host/mxcmmc.c chan->private = &host->dma_data; host 962 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = from_timer(host, t, watchdog); host 963 drivers/mmc/host/mxcmmc.c struct mmc_request *req = host->req; host 964 drivers/mmc/host/mxcmmc.c unsigned int stat = mxcmci_readl(host, MMC_REG_STATUS); host 966 drivers/mmc/host/mxcmmc.c if (host->dma_dir == DMA_FROM_DEVICE) { host 967 drivers/mmc/host/mxcmmc.c dmaengine_terminate_all(host->dma); host 968 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), host 972 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), host 975 drivers/mmc/host/mxcmmc.c mxcmci_softreset(host); host 980 drivers/mmc/host/mxcmmc.c if (host->data) host 981 drivers/mmc/host/mxcmmc.c host->data->error = -ETIMEDOUT; host 982 drivers/mmc/host/mxcmmc.c host->req = NULL; host 983 drivers/mmc/host/mxcmmc.c host->cmd = NULL; host 984 drivers/mmc/host/mxcmmc.c host->data = NULL; host 985 drivers/mmc/host/mxcmmc.c mmc_request_done(host->mmc, req); host 999 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host; host 1016 drivers/mmc/host/mxcmmc.c mmc = mmc_alloc_host(sizeof(*host), &pdev->dev); host 1020 drivers/mmc/host/mxcmmc.c host = mmc_priv(mmc); host 1022 drivers/mmc/host/mxcmmc.c host->base = devm_ioremap_resource(&pdev->dev, res); host 1023 drivers/mmc/host/mxcmmc.c if (IS_ERR(host->base)) { host 1024 drivers/mmc/host/mxcmmc.c ret = PTR_ERR(host->base); host 1028 drivers/mmc/host/mxcmmc.c host->phys_base = res->start; host 1049 drivers/mmc/host/mxcmmc.c host->devtype = id_entry->driver_data; host 1051 drivers/mmc/host/mxcmmc.c host->devtype = pdev->id_entry->driver_data; host 1055 drivers/mmc/host/mxcmmc.c if (!is_mpc512x_mmc(host)) host 1058 drivers/mmc/host/mxcmmc.c host->mmc = mmc; host 1059 drivers/mmc/host/mxcmmc.c host->pdata = pdata; host 1060 drivers/mmc/host/mxcmmc.c spin_lock_init(&host->lock); host 1080 drivers/mmc/host/mxcmmc.c host->default_irq_mask = host 1083 drivers/mmc/host/mxcmmc.c host->default_irq_mask = 0; host 1085 drivers/mmc/host/mxcmmc.c host->clk_ipg = devm_clk_get(&pdev->dev, "ipg"); host 1086 drivers/mmc/host/mxcmmc.c if (IS_ERR(host->clk_ipg)) { host 1087 drivers/mmc/host/mxcmmc.c ret = PTR_ERR(host->clk_ipg); host 1091 drivers/mmc/host/mxcmmc.c host->clk_per = devm_clk_get(&pdev->dev, "per"); host 1092 drivers/mmc/host/mxcmmc.c if (IS_ERR(host->clk_per)) { host 1093 drivers/mmc/host/mxcmmc.c ret = PTR_ERR(host->clk_per); host 1097 drivers/mmc/host/mxcmmc.c ret = clk_prepare_enable(host->clk_per); host 1101 drivers/mmc/host/mxcmmc.c ret = clk_prepare_enable(host->clk_ipg); host 1105 drivers/mmc/host/mxcmmc.c mxcmci_softreset(host); host 1107 drivers/mmc/host/mxcmmc.c host->rev_no = mxcmci_readw(host, MMC_REG_REV_NO); host 1108 drivers/mmc/host/mxcmmc.c if (host->rev_no != 0x400) { host 1110 drivers/mmc/host/mxcmmc.c dev_err(mmc_dev(host->mmc), "wrong rev.no. 0x%08x. aborting.\n", host 1111 drivers/mmc/host/mxcmmc.c host->rev_no); host 1115 drivers/mmc/host/mxcmmc.c mmc->f_min = clk_get_rate(host->clk_per) >> 16; host 1116 drivers/mmc/host/mxcmmc.c mmc->f_max = clk_get_rate(host->clk_per) >> 1; host 1119 drivers/mmc/host/mxcmmc.c mxcmci_writew(host, 0x2db4, MMC_REG_READ_TO); host 1121 drivers/mmc/host/mxcmmc.c mxcmci_writel(host, host->default_irq_mask, MMC_REG_INT_CNTR); host 1123 drivers/mmc/host/mxcmmc.c if (!host->pdata) { host 1124 drivers/mmc/host/mxcmmc.c host->dma = dma_request_slave_channel(&pdev->dev, "rx-tx"); host 1128 drivers/mmc/host/mxcmmc.c host->dmareq = res->start; host 1129 drivers/mmc/host/mxcmmc.c host->dma_data.peripheral_type = IMX_DMATYPE_SDHC; host 1130 drivers/mmc/host/mxcmmc.c host->dma_data.priority = DMA_PRIO_LOW; host 1131 drivers/mmc/host/mxcmmc.c host->dma_data.dma_request = host->dmareq; host 1134 drivers/mmc/host/mxcmmc.c host->dma = dma_request_channel(mask, filter, host); host 1137 drivers/mmc/host/mxcmmc.c if (host->dma) host 1139 drivers/mmc/host/mxcmmc.c host->dma->device->dev); host 1141 drivers/mmc/host/mxcmmc.c dev_info(mmc_dev(host->mmc), "dma not available. Using PIO\n"); host 1143 drivers/mmc/host/mxcmmc.c INIT_WORK(&host->datawork, mxcmci_datawork); host 1146 drivers/mmc/host/mxcmmc.c dev_name(&pdev->dev), host); host 1152 drivers/mmc/host/mxcmmc.c if (host->pdata && host->pdata->init) { host 1153 drivers/mmc/host/mxcmmc.c ret = host->pdata->init(&pdev->dev, mxcmci_detect_irq, host 1154 drivers/mmc/host/mxcmmc.c host->mmc); host 1159 drivers/mmc/host/mxcmmc.c timer_setup(&host->watchdog, mxcmci_watchdog, 0); host 1166 drivers/mmc/host/mxcmmc.c if (host->dma) host 1167 drivers/mmc/host/mxcmmc.c dma_release_channel(host->dma); host 1170 drivers/mmc/host/mxcmmc.c clk_disable_unprepare(host->clk_ipg); host 1172 drivers/mmc/host/mxcmmc.c clk_disable_unprepare(host->clk_per); host 1183 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = mmc_priv(mmc); host 1187 drivers/mmc/host/mxcmmc.c if (host->pdata && host->pdata->exit) host 1188 drivers/mmc/host/mxcmmc.c host->pdata->exit(&pdev->dev, mmc); host 1190 drivers/mmc/host/mxcmmc.c if (host->dma) host 1191 drivers/mmc/host/mxcmmc.c dma_release_channel(host->dma); host 1193 drivers/mmc/host/mxcmmc.c clk_disable_unprepare(host->clk_per); host 1194 drivers/mmc/host/mxcmmc.c clk_disable_unprepare(host->clk_ipg); host 1205 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = mmc_priv(mmc); host 1207 drivers/mmc/host/mxcmmc.c clk_disable_unprepare(host->clk_per); host 1208 drivers/mmc/host/mxcmmc.c clk_disable_unprepare(host->clk_ipg); host 1215 drivers/mmc/host/mxcmmc.c struct mxcmci_host *host = mmc_priv(mmc); host 1218 drivers/mmc/host/mxcmmc.c ret = clk_prepare_enable(host->clk_per); host 1222 drivers/mmc/host/mxcmmc.c ret = clk_prepare_enable(host->clk_ipg); host 1224 drivers/mmc/host/mxcmmc.c clk_disable_unprepare(host->clk_per); host 64 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = mmc_priv(mmc); host 65 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 68 drivers/mmc/host/mxs-mmc.c if (host->broken_cd) host 85 drivers/mmc/host/mxs-mmc.c static int mxs_mmc_reset(struct mxs_mmc_host *host) host 87 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 111 drivers/mmc/host/mxs-mmc.c if (host->sdio_irq_en) { host 121 drivers/mmc/host/mxs-mmc.c static void mxs_mmc_start_cmd(struct mxs_mmc_host *host, host 124 drivers/mmc/host/mxs-mmc.c static void mxs_mmc_request_done(struct mxs_mmc_host *host) host 126 drivers/mmc/host/mxs-mmc.c struct mmc_command *cmd = host->cmd; host 127 drivers/mmc/host/mxs-mmc.c struct mmc_data *data = host->data; host 128 drivers/mmc/host/mxs-mmc.c struct mmc_request *mrq = host->mrq; host 129 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 144 drivers/mmc/host/mxs-mmc.c mxs_mmc_start_cmd(host, mrq->cmd); host 147 drivers/mmc/host/mxs-mmc.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, host 158 drivers/mmc/host/mxs-mmc.c host->data = NULL; host 160 drivers/mmc/host/mxs-mmc.c mxs_mmc_start_cmd(host, mrq->stop); host 165 drivers/mmc/host/mxs-mmc.c host->mrq = NULL; host 166 drivers/mmc/host/mxs-mmc.c mmc_request_done(host->mmc, mrq); host 171 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = param; host 173 drivers/mmc/host/mxs-mmc.c mxs_mmc_request_done(host); host 178 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = dev_id; host 179 drivers/mmc/host/mxs-mmc.c struct mmc_command *cmd = host->cmd; host 180 drivers/mmc/host/mxs-mmc.c struct mmc_data *data = host->data; host 181 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 184 drivers/mmc/host/mxs-mmc.c spin_lock(&host->lock); host 190 drivers/mmc/host/mxs-mmc.c spin_unlock(&host->lock); host 193 drivers/mmc/host/mxs-mmc.c mmc_signal_sdio_irq(host->mmc); host 215 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host, unsigned long flags) host 217 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 219 drivers/mmc/host/mxs-mmc.c struct mmc_data *data = host->data; host 225 drivers/mmc/host/mxs-mmc.c dma_map_sg(mmc_dev(host->mmc), data->sg, host 239 drivers/mmc/host/mxs-mmc.c desc->callback_param = host; host 242 drivers/mmc/host/mxs-mmc.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, host 249 drivers/mmc/host/mxs-mmc.c static void mxs_mmc_bc(struct mxs_mmc_host *host) host 251 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 252 drivers/mmc/host/mxs-mmc.c struct mmc_command *cmd = host->cmd; host 260 drivers/mmc/host/mxs-mmc.c if (host->sdio_irq_en) { host 270 drivers/mmc/host/mxs-mmc.c desc = mxs_mmc_prep_dma(host, MXS_DMA_CTRL_WAIT4END); host 279 drivers/mmc/host/mxs-mmc.c dev_warn(mmc_dev(host->mmc), host 283 drivers/mmc/host/mxs-mmc.c static void mxs_mmc_ac(struct mxs_mmc_host *host) host 285 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 286 drivers/mmc/host/mxs-mmc.c struct mmc_command *cmd = host->cmd; host 305 drivers/mmc/host/mxs-mmc.c if (host->sdio_irq_en) { host 315 drivers/mmc/host/mxs-mmc.c desc = mxs_mmc_prep_dma(host, MXS_DMA_CTRL_WAIT4END); host 324 drivers/mmc/host/mxs-mmc.c dev_warn(mmc_dev(host->mmc), host 344 drivers/mmc/host/mxs-mmc.c static void mxs_mmc_adtc(struct mxs_mmc_host *host) host 346 drivers/mmc/host/mxs-mmc.c struct mmc_command *cmd = host->cmd; host 358 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 380 drivers/mmc/host/mxs-mmc.c ctrl0 = BF_SSP(host->bus_width, CTRL0_BUS_WIDTH) | host 418 drivers/mmc/host/mxs-mmc.c if (host->sdio_irq_en) { host 436 drivers/mmc/host/mxs-mmc.c desc = mxs_mmc_prep_dma(host, 0); host 441 drivers/mmc/host/mxs-mmc.c WARN_ON(host->data != NULL); host 442 drivers/mmc/host/mxs-mmc.c host->data = data; host 445 drivers/mmc/host/mxs-mmc.c desc = mxs_mmc_prep_dma(host, DMA_PREP_INTERRUPT | MXS_DMA_CTRL_WAIT4END); host 453 drivers/mmc/host/mxs-mmc.c dev_warn(mmc_dev(host->mmc), host 457 drivers/mmc/host/mxs-mmc.c static void mxs_mmc_start_cmd(struct mxs_mmc_host *host, host 460 drivers/mmc/host/mxs-mmc.c host->cmd = cmd; host 464 drivers/mmc/host/mxs-mmc.c mxs_mmc_bc(host); host 467 drivers/mmc/host/mxs-mmc.c mxs_mmc_ac(host); host 470 drivers/mmc/host/mxs-mmc.c mxs_mmc_ac(host); host 473 drivers/mmc/host/mxs-mmc.c mxs_mmc_adtc(host); host 476 drivers/mmc/host/mxs-mmc.c dev_warn(mmc_dev(host->mmc), host 484 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = mmc_priv(mmc); host 486 drivers/mmc/host/mxs-mmc.c WARN_ON(host->mrq != NULL); host 487 drivers/mmc/host/mxs-mmc.c host->mrq = mrq; host 490 drivers/mmc/host/mxs-mmc.c mxs_mmc_start_cmd(host, mrq->sbc); host 492 drivers/mmc/host/mxs-mmc.c mxs_mmc_start_cmd(host, mrq->cmd); host 497 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = mmc_priv(mmc); host 500 drivers/mmc/host/mxs-mmc.c host->bus_width = 2; host 502 drivers/mmc/host/mxs-mmc.c host->bus_width = 1; host 504 drivers/mmc/host/mxs-mmc.c host->bus_width = 0; host 507 drivers/mmc/host/mxs-mmc.c mxs_ssp_set_clk_rate(&host->ssp, ios->clock); host 512 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = mmc_priv(mmc); host 513 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 516 drivers/mmc/host/mxs-mmc.c spin_lock_irqsave(&host->lock, flags); host 518 drivers/mmc/host/mxs-mmc.c host->sdio_irq_en = enable; host 532 drivers/mmc/host/mxs-mmc.c spin_unlock_irqrestore(&host->lock, flags); host 536 drivers/mmc/host/mxs-mmc.c mmc_signal_sdio_irq(host->mmc); host 573 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host; host 587 drivers/mmc/host/mxs-mmc.c host = mmc_priv(mmc); host 588 drivers/mmc/host/mxs-mmc.c ssp = &host->ssp; host 598 drivers/mmc/host/mxs-mmc.c host->mmc = mmc; host 599 drivers/mmc/host/mxs-mmc.c host->sdio_irq_en = 0; host 620 drivers/mmc/host/mxs-mmc.c ret = mxs_mmc_reset(host); host 628 drivers/mmc/host/mxs-mmc.c dev_err(mmc_dev(host->mmc), host 640 drivers/mmc/host/mxs-mmc.c host->broken_cd = of_property_read_bool(np, "broken-cd"); host 659 drivers/mmc/host/mxs-mmc.c spin_lock_init(&host->lock); host 662 drivers/mmc/host/mxs-mmc.c dev_name(&pdev->dev), host); host 670 drivers/mmc/host/mxs-mmc.c dev_info(mmc_dev(host->mmc), "initialized\n"); host 686 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = mmc_priv(mmc); host 687 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 705 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = mmc_priv(mmc); host 706 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 715 drivers/mmc/host/mxs-mmc.c struct mxs_mmc_host *host = mmc_priv(mmc); host 716 drivers/mmc/host/mxs-mmc.c struct mxs_ssp *ssp = &host->ssp; host 72 drivers/mmc/host/omap.c #define mmc_omap7xx() (host->features & MMC_OMAP7XX) host 73 drivers/mmc/host/omap.c #define mmc_omap15xx() (host->features & MMC_OMAP15XX) host 74 drivers/mmc/host/omap.c #define mmc_omap16xx() (host->features & MMC_OMAP16XX) host 76 drivers/mmc/host/omap.c #define mmc_omap1() (host->features & MMC_OMAP1_MASK) host 79 drivers/mmc/host/omap.c #define OMAP_MMC_REG(host, reg) (OMAP_MMC_REG_##reg << (host)->reg_shift) host 80 drivers/mmc/host/omap.c #define OMAP_MMC_READ(host, reg) __raw_readw((host)->virt_base + OMAP_MMC_REG(host, reg)) host 81 drivers/mmc/host/omap.c #define OMAP_MMC_WRITE(host, reg, val) __raw_writew((val), (host)->virt_base + OMAP_MMC_REG(host, reg)) host 112 drivers/mmc/host/omap.c struct mmc_omap_host *host; host 176 drivers/mmc/host/omap.c if (slot != NULL && slot->host->fclk_enabled && slot->fclk_freq > 0) { host 182 drivers/mmc/host/omap.c static void mmc_omap_fclk_enable(struct mmc_omap_host *host, unsigned int enable) host 186 drivers/mmc/host/omap.c spin_lock_irqsave(&host->clk_lock, flags); host 187 drivers/mmc/host/omap.c if (host->fclk_enabled != enable) { host 188 drivers/mmc/host/omap.c host->fclk_enabled = enable; host 190 drivers/mmc/host/omap.c clk_enable(host->fclk); host 192 drivers/mmc/host/omap.c clk_disable(host->fclk); host 194 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->clk_lock, flags); host 199 drivers/mmc/host/omap.c struct mmc_omap_host *host = slot->host; host 204 drivers/mmc/host/omap.c spin_lock_irqsave(&host->slot_lock, flags); host 205 drivers/mmc/host/omap.c while (host->mmc != NULL) { host 206 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->slot_lock, flags); host 207 drivers/mmc/host/omap.c wait_event(host->slot_wq, host->mmc == NULL); host 208 drivers/mmc/host/omap.c spin_lock_irqsave(&host->slot_lock, flags); host 210 drivers/mmc/host/omap.c host->mmc = slot->mmc; host 211 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->slot_lock, flags); host 213 drivers/mmc/host/omap.c del_timer(&host->clk_timer); host 214 drivers/mmc/host/omap.c if (host->current_slot != slot || !claimed) host 215 drivers/mmc/host/omap.c mmc_omap_fclk_offdelay(host->current_slot); host 217 drivers/mmc/host/omap.c if (host->current_slot != slot) { host 218 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CON, slot->saved_con & 0xFC00); host 219 drivers/mmc/host/omap.c if (host->pdata->switch_slot != NULL) host 220 drivers/mmc/host/omap.c host->pdata->switch_slot(mmc_dev(slot->mmc), slot->id); host 221 drivers/mmc/host/omap.c host->current_slot = slot; host 225 drivers/mmc/host/omap.c mmc_omap_fclk_enable(host, 1); host 230 drivers/mmc/host/omap.c OMAP_MMC_READ(host, CON); host 232 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CON, slot->saved_con); host 234 drivers/mmc/host/omap.c mmc_omap_fclk_enable(host, 0); host 237 drivers/mmc/host/omap.c static void mmc_omap_start_request(struct mmc_omap_host *host, host 242 drivers/mmc/host/omap.c struct mmc_omap_host *host = container_of(work, struct mmc_omap_host, host 244 drivers/mmc/host/omap.c struct mmc_omap_slot *next_slot = host->next_slot; host 247 drivers/mmc/host/omap.c host->next_slot = NULL; host 252 drivers/mmc/host/omap.c mmc_omap_start_request(host, rq); host 257 drivers/mmc/host/omap.c struct mmc_omap_host *host = slot->host; host 261 drivers/mmc/host/omap.c BUG_ON(slot == NULL || host->mmc == NULL); host 265 drivers/mmc/host/omap.c mod_timer(&host->clk_timer, jiffies + HZ/10); host 267 drivers/mmc/host/omap.c del_timer(&host->clk_timer); host 269 drivers/mmc/host/omap.c mmc_omap_fclk_enable(host, 0); host 272 drivers/mmc/host/omap.c spin_lock_irqsave(&host->slot_lock, flags); host 274 drivers/mmc/host/omap.c for (i = 0; i < host->nr_slots; i++) { host 277 drivers/mmc/host/omap.c if (host->slots[i] == NULL || host->slots[i]->mrq == NULL) host 280 drivers/mmc/host/omap.c BUG_ON(host->next_slot != NULL); host 281 drivers/mmc/host/omap.c new_slot = host->slots[i]; host 283 drivers/mmc/host/omap.c BUG_ON(new_slot == host->current_slot); host 285 drivers/mmc/host/omap.c host->next_slot = new_slot; host 286 drivers/mmc/host/omap.c host->mmc = new_slot->mmc; host 287 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->slot_lock, flags); host 288 drivers/mmc/host/omap.c queue_work(host->mmc_omap_wq, &host->slot_release_work); host 292 drivers/mmc/host/omap.c host->mmc = NULL; host 293 drivers/mmc/host/omap.c wake_up(&host->slot_wq); host 294 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->slot_lock, flags); host 332 drivers/mmc/host/omap.c mmc_omap_start_command(struct mmc_omap_host *host, struct mmc_command *cmd) host 339 drivers/mmc/host/omap.c host->cmd = cmd; host 360 drivers/mmc/host/omap.c dev_err(mmc_dev(host->mmc), "Invalid response type: %04x\n", mmc_resp_type(cmd)); host 376 drivers/mmc/host/omap.c if (host->current_slot->bus_mode == MMC_BUSMODE_OPENDRAIN) host 382 drivers/mmc/host/omap.c if (host->data && !(host->data->flags & MMC_DATA_WRITE)) host 385 drivers/mmc/host/omap.c mod_timer(&host->cmd_abort_timer, jiffies + HZ/2); host 387 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CTO, 200); host 388 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, ARGL, cmd->arg & 0xffff); host 389 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, ARGH, cmd->arg >> 16); host 397 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, IE, irq_mask); host 398 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CMD, cmdreg); host 402 drivers/mmc/host/omap.c mmc_omap_release_dma(struct mmc_omap_host *host, struct mmc_data *data, host 406 drivers/mmc/host/omap.c struct device *dev = mmc_dev(host->mmc); host 411 drivers/mmc/host/omap.c c = host->dma_tx; host 414 drivers/mmc/host/omap.c c = host->dma_rx; host 424 drivers/mmc/host/omap.c dma_unmap_sg(dev, data->sg, host->sg_len, dma_data_dir); host 429 drivers/mmc/host/omap.c struct mmc_omap_host *host = container_of(work, struct mmc_omap_host, host 431 drivers/mmc/host/omap.c struct mmc_omap_slot *slot = host->current_slot; host 432 drivers/mmc/host/omap.c struct mmc_data *data = host->stop_data; host 438 drivers/mmc/host/omap.c mmc_omap_start_command(host, data->stop); host 442 drivers/mmc/host/omap.c mmc_omap_xfer_done(struct mmc_omap_host *host, struct mmc_data *data) host 444 drivers/mmc/host/omap.c if (host->dma_in_use) host 445 drivers/mmc/host/omap.c mmc_omap_release_dma(host, data, data->error); host 447 drivers/mmc/host/omap.c host->data = NULL; host 448 drivers/mmc/host/omap.c host->sg_len = 0; host 458 drivers/mmc/host/omap.c host->mrq = NULL; host 459 drivers/mmc/host/omap.c mmc = host->mmc; host 460 drivers/mmc/host/omap.c mmc_omap_release_slot(host->current_slot, 1); host 465 drivers/mmc/host/omap.c host->stop_data = data; host 466 drivers/mmc/host/omap.c queue_work(host->mmc_omap_wq, &host->send_stop_work); host 470 drivers/mmc/host/omap.c mmc_omap_send_abort(struct mmc_omap_host *host, int maxloops) host 472 drivers/mmc/host/omap.c struct mmc_omap_slot *slot = host->current_slot; host 480 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, STAT, 0xFFFF); host 481 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CMD, (3 << 12) | (1 << 7)); host 485 drivers/mmc/host/omap.c stat = OMAP_MMC_READ(host, STAT); host 495 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, STAT, stat); host 499 drivers/mmc/host/omap.c mmc_omap_abort_xfer(struct mmc_omap_host *host, struct mmc_data *data) host 501 drivers/mmc/host/omap.c if (host->dma_in_use) host 502 drivers/mmc/host/omap.c mmc_omap_release_dma(host, data, 1); host 504 drivers/mmc/host/omap.c host->data = NULL; host 505 drivers/mmc/host/omap.c host->sg_len = 0; host 507 drivers/mmc/host/omap.c mmc_omap_send_abort(host, 10000); host 511 drivers/mmc/host/omap.c mmc_omap_end_of_data(struct mmc_omap_host *host, struct mmc_data *data) host 516 drivers/mmc/host/omap.c if (!host->dma_in_use) { host 517 drivers/mmc/host/omap.c mmc_omap_xfer_done(host, data); host 521 drivers/mmc/host/omap.c spin_lock_irqsave(&host->dma_lock, flags); host 522 drivers/mmc/host/omap.c if (host->dma_done) host 525 drivers/mmc/host/omap.c host->brs_received = 1; host 526 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->dma_lock, flags); host 528 drivers/mmc/host/omap.c mmc_omap_xfer_done(host, data); host 532 drivers/mmc/host/omap.c mmc_omap_dma_done(struct mmc_omap_host *host, struct mmc_data *data) host 538 drivers/mmc/host/omap.c spin_lock_irqsave(&host->dma_lock, flags); host 539 drivers/mmc/host/omap.c if (host->brs_received) host 542 drivers/mmc/host/omap.c host->dma_done = 1; host 543 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->dma_lock, flags); host 545 drivers/mmc/host/omap.c mmc_omap_xfer_done(host, data); host 549 drivers/mmc/host/omap.c mmc_omap_cmd_done(struct mmc_omap_host *host, struct mmc_command *cmd) host 551 drivers/mmc/host/omap.c host->cmd = NULL; host 553 drivers/mmc/host/omap.c del_timer(&host->cmd_abort_timer); host 559 drivers/mmc/host/omap.c OMAP_MMC_READ(host, RSP0) | host 560 drivers/mmc/host/omap.c (OMAP_MMC_READ(host, RSP1) << 16); host 562 drivers/mmc/host/omap.c OMAP_MMC_READ(host, RSP2) | host 563 drivers/mmc/host/omap.c (OMAP_MMC_READ(host, RSP3) << 16); host 565 drivers/mmc/host/omap.c OMAP_MMC_READ(host, RSP4) | host 566 drivers/mmc/host/omap.c (OMAP_MMC_READ(host, RSP5) << 16); host 568 drivers/mmc/host/omap.c OMAP_MMC_READ(host, RSP6) | host 569 drivers/mmc/host/omap.c (OMAP_MMC_READ(host, RSP7) << 16); host 573 drivers/mmc/host/omap.c OMAP_MMC_READ(host, RSP6) | host 574 drivers/mmc/host/omap.c (OMAP_MMC_READ(host, RSP7) << 16); host 578 drivers/mmc/host/omap.c if (host->data == NULL || cmd->error) { host 581 drivers/mmc/host/omap.c if (host->data != NULL) host 582 drivers/mmc/host/omap.c mmc_omap_abort_xfer(host, host->data); host 583 drivers/mmc/host/omap.c host->mrq = NULL; host 584 drivers/mmc/host/omap.c mmc = host->mmc; host 585 drivers/mmc/host/omap.c mmc_omap_release_slot(host->current_slot, 1); host 596 drivers/mmc/host/omap.c struct mmc_omap_host *host = container_of(work, struct mmc_omap_host, host 598 drivers/mmc/host/omap.c BUG_ON(!host->cmd); host 600 drivers/mmc/host/omap.c dev_dbg(mmc_dev(host->mmc), "Aborting stuck command CMD%d\n", host 601 drivers/mmc/host/omap.c host->cmd->opcode); host 603 drivers/mmc/host/omap.c if (host->cmd->error == 0) host 604 drivers/mmc/host/omap.c host->cmd->error = -ETIMEDOUT; host 606 drivers/mmc/host/omap.c if (host->data == NULL) { host 610 drivers/mmc/host/omap.c cmd = host->cmd; host 611 drivers/mmc/host/omap.c host->cmd = NULL; host 612 drivers/mmc/host/omap.c mmc_omap_send_abort(host, 10000); host 614 drivers/mmc/host/omap.c host->mrq = NULL; host 615 drivers/mmc/host/omap.c mmc = host->mmc; host 616 drivers/mmc/host/omap.c mmc_omap_release_slot(host->current_slot, 1); host 619 drivers/mmc/host/omap.c mmc_omap_cmd_done(host, host->cmd); host 621 drivers/mmc/host/omap.c host->abort = 0; host 622 drivers/mmc/host/omap.c enable_irq(host->irq); host 628 drivers/mmc/host/omap.c struct mmc_omap_host *host = from_timer(host, t, cmd_abort_timer); host 631 drivers/mmc/host/omap.c spin_lock_irqsave(&host->slot_lock, flags); host 632 drivers/mmc/host/omap.c if (host->cmd != NULL && !host->abort) { host 633 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, IE, 0); host 634 drivers/mmc/host/omap.c disable_irq(host->irq); host 635 drivers/mmc/host/omap.c host->abort = 1; host 636 drivers/mmc/host/omap.c queue_work(host->mmc_omap_wq, &host->cmd_abort_work); host 638 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->slot_lock, flags); host 643 drivers/mmc/host/omap.c mmc_omap_sg_to_buf(struct mmc_omap_host *host) host 647 drivers/mmc/host/omap.c sg = host->data->sg + host->sg_idx; host 648 drivers/mmc/host/omap.c host->buffer_bytes_left = sg->length; host 649 drivers/mmc/host/omap.c host->buffer = sg_virt(sg); host 650 drivers/mmc/host/omap.c if (host->buffer_bytes_left > host->total_bytes_left) host 651 drivers/mmc/host/omap.c host->buffer_bytes_left = host->total_bytes_left; host 657 drivers/mmc/host/omap.c struct mmc_omap_host *host = from_timer(host, t, clk_timer); host 659 drivers/mmc/host/omap.c mmc_omap_fclk_enable(host, 0); host 664 drivers/mmc/host/omap.c mmc_omap_xfer_data(struct mmc_omap_host *host, int write) host 668 drivers/mmc/host/omap.c if (host->buffer_bytes_left == 0) { host 669 drivers/mmc/host/omap.c host->sg_idx++; host 670 drivers/mmc/host/omap.c BUG_ON(host->sg_idx == host->sg_len); host 671 drivers/mmc/host/omap.c mmc_omap_sg_to_buf(host); host 674 drivers/mmc/host/omap.c if (n > host->buffer_bytes_left) host 675 drivers/mmc/host/omap.c n = host->buffer_bytes_left; host 680 drivers/mmc/host/omap.c host->buffer_bytes_left -= n; host 681 drivers/mmc/host/omap.c host->total_bytes_left -= n; host 682 drivers/mmc/host/omap.c host->data->bytes_xfered += n; host 685 drivers/mmc/host/omap.c __raw_writesw(host->virt_base + OMAP_MMC_REG(host, DATA), host 686 drivers/mmc/host/omap.c host->buffer, nwords); host 688 drivers/mmc/host/omap.c __raw_readsw(host->virt_base + OMAP_MMC_REG(host, DATA), host 689 drivers/mmc/host/omap.c host->buffer, nwords); host 692 drivers/mmc/host/omap.c host->buffer += nwords; host 696 drivers/mmc/host/omap.c static void mmc_omap_report_irq(struct mmc_omap_host *host, u16 status) host 710 drivers/mmc/host/omap.c dev_vdbg(mmc_dev(host->mmc), "%s\n", res); host 713 drivers/mmc/host/omap.c static void mmc_omap_report_irq(struct mmc_omap_host *host, u16 status) host 721 drivers/mmc/host/omap.c struct mmc_omap_host * host = (struct mmc_omap_host *)dev_id; host 727 drivers/mmc/host/omap.c if (host->cmd == NULL && host->data == NULL) { host 728 drivers/mmc/host/omap.c status = OMAP_MMC_READ(host, STAT); host 729 drivers/mmc/host/omap.c dev_info(mmc_dev(host->slots[0]->mmc), host 732 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, STAT, status); host 733 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, IE, 0); host 743 drivers/mmc/host/omap.c while ((status = OMAP_MMC_READ(host, STAT)) != 0) { host 746 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, STAT, status); host 747 drivers/mmc/host/omap.c if (host->cmd != NULL) host 748 drivers/mmc/host/omap.c cmd = host->cmd->opcode; host 751 drivers/mmc/host/omap.c dev_dbg(mmc_dev(host->mmc), "MMC IRQ %04x (CMD %d): ", host 753 drivers/mmc/host/omap.c mmc_omap_report_irq(host, status); host 755 drivers/mmc/host/omap.c if (host->total_bytes_left) { host 758 drivers/mmc/host/omap.c mmc_omap_xfer_data(host, 0); host 760 drivers/mmc/host/omap.c mmc_omap_xfer_data(host, 1); host 767 drivers/mmc/host/omap.c dev_dbg(mmc_dev(host->mmc), "data timeout (CMD%d)\n", host 769 drivers/mmc/host/omap.c if (host->data) { host 770 drivers/mmc/host/omap.c host->data->error = -ETIMEDOUT; host 776 drivers/mmc/host/omap.c if (host->data) { host 777 drivers/mmc/host/omap.c host->data->error = -EILSEQ; host 778 drivers/mmc/host/omap.c dev_dbg(mmc_dev(host->mmc), host 780 drivers/mmc/host/omap.c host->total_bytes_left); host 783 drivers/mmc/host/omap.c dev_dbg(mmc_dev(host->mmc), "data CRC error\n"); host 789 drivers/mmc/host/omap.c if (host->cmd) { host 791 drivers/mmc/host/omap.c host->current_slot; host 794 drivers/mmc/host/omap.c dev_err(mmc_dev(host->mmc), host 797 drivers/mmc/host/omap.c host->cmd->error = -ETIMEDOUT; host 804 drivers/mmc/host/omap.c if (host->cmd) { host 805 drivers/mmc/host/omap.c dev_err(mmc_dev(host->mmc), host 807 drivers/mmc/host/omap.c cmd, host->cmd->arg); host 808 drivers/mmc/host/omap.c host->cmd->error = -EILSEQ; host 812 drivers/mmc/host/omap.c dev_err(mmc_dev(host->mmc), host 817 drivers/mmc/host/omap.c dev_dbg(mmc_dev(host->mmc), host 833 drivers/mmc/host/omap.c if (cmd_error && host->data) { host 834 drivers/mmc/host/omap.c del_timer(&host->cmd_abort_timer); host 835 drivers/mmc/host/omap.c host->abort = 1; host 836 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, IE, 0); host 837 drivers/mmc/host/omap.c disable_irq_nosync(host->irq); host 838 drivers/mmc/host/omap.c queue_work(host->mmc_omap_wq, &host->cmd_abort_work); host 842 drivers/mmc/host/omap.c if (end_command && host->cmd) host 843 drivers/mmc/host/omap.c mmc_omap_cmd_done(host, host->cmd); host 844 drivers/mmc/host/omap.c if (host->data != NULL) { host 846 drivers/mmc/host/omap.c mmc_omap_xfer_done(host, host->data); host 848 drivers/mmc/host/omap.c mmc_omap_end_of_data(host, host->data); host 857 drivers/mmc/host/omap.c struct mmc_omap_host *host = dev_get_drvdata(dev); host 858 drivers/mmc/host/omap.c struct mmc_omap_slot *slot = host->slots[num]; host 860 drivers/mmc/host/omap.c BUG_ON(num >= host->nr_slots); host 863 drivers/mmc/host/omap.c if (host->nr_slots == 0 || !host->slots[num]) host 903 drivers/mmc/host/omap.c struct mmc_omap_host *host = priv; host 904 drivers/mmc/host/omap.c struct mmc_data *data = host->data; host 909 drivers/mmc/host/omap.c mmc_omap_dma_done(host, data); host 912 drivers/mmc/host/omap.c static inline void set_cmd_timeout(struct mmc_omap_host *host, struct mmc_request *req) host 916 drivers/mmc/host/omap.c reg = OMAP_MMC_READ(host, SDIO); host 918 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, SDIO, reg); host 920 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CTO, 0xfd); host 923 drivers/mmc/host/omap.c static inline void set_data_timeout(struct mmc_omap_host *host, struct mmc_request *req) host 928 drivers/mmc/host/omap.c cycle_ns = 1000000000 / host->current_slot->fclk_freq; host 933 drivers/mmc/host/omap.c reg = OMAP_MMC_READ(host, SDIO); host 939 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, SDIO, reg); host 940 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, DTO, timeout); host 944 drivers/mmc/host/omap.c mmc_omap_prepare_data(struct mmc_omap_host *host, struct mmc_request *req) host 951 drivers/mmc/host/omap.c host->data = data; host 953 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, BLEN, 0); host 954 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, NBLK, 0); host 955 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, BUF, 0); host 956 drivers/mmc/host/omap.c host->dma_in_use = 0; host 957 drivers/mmc/host/omap.c set_cmd_timeout(host, req); host 963 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, NBLK, data->blocks - 1); host 964 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, BLEN, block_size - 1); host 965 drivers/mmc/host/omap.c set_data_timeout(host, req); host 980 drivers/mmc/host/omap.c host->sg_idx = 0; host 1001 drivers/mmc/host/omap.c c = host->dma_tx; host 1002 drivers/mmc/host/omap.c bp = &host->dma_tx_burst; host 1006 drivers/mmc/host/omap.c c = host->dma_rx; host 1007 drivers/mmc/host/omap.c bp = &host->dma_rx_burst; host 1018 drivers/mmc/host/omap.c .src_addr = host->phys_base + host 1019 drivers/mmc/host/omap.c OMAP_MMC_REG(host, DATA), host 1020 drivers/mmc/host/omap.c .dst_addr = host->phys_base + host 1021 drivers/mmc/host/omap.c OMAP_MMC_REG(host, DATA), host 1034 drivers/mmc/host/omap.c host->sg_len = dma_map_sg(c->device->dev, data->sg, sg_len, host 1036 drivers/mmc/host/omap.c if (host->sg_len == 0) host 1039 drivers/mmc/host/omap.c tx = dmaengine_prep_slave_sg(c, data->sg, host->sg_len, host 1045 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, BUF, buf); host 1048 drivers/mmc/host/omap.c tx->callback_param = host; host 1050 drivers/mmc/host/omap.c host->brs_received = 0; host 1051 drivers/mmc/host/omap.c host->dma_done = 0; host 1052 drivers/mmc/host/omap.c host->dma_in_use = 1; host 1058 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, BUF, 0x1f1f); host 1059 drivers/mmc/host/omap.c host->total_bytes_left = data->blocks * block_size; host 1060 drivers/mmc/host/omap.c host->sg_len = sg_len; host 1061 drivers/mmc/host/omap.c mmc_omap_sg_to_buf(host); host 1062 drivers/mmc/host/omap.c host->dma_in_use = 0; host 1065 drivers/mmc/host/omap.c static void mmc_omap_start_request(struct mmc_omap_host *host, host 1068 drivers/mmc/host/omap.c BUG_ON(host->mrq != NULL); host 1070 drivers/mmc/host/omap.c host->mrq = req; host 1073 drivers/mmc/host/omap.c mmc_omap_prepare_data(host, req); host 1074 drivers/mmc/host/omap.c mmc_omap_start_command(host, req->cmd); host 1075 drivers/mmc/host/omap.c if (host->dma_in_use) { host 1076 drivers/mmc/host/omap.c struct dma_chan *c = host->data->flags & MMC_DATA_WRITE ? host 1077 drivers/mmc/host/omap.c host->dma_tx : host->dma_rx; host 1086 drivers/mmc/host/omap.c struct mmc_omap_host *host = slot->host; host 1089 drivers/mmc/host/omap.c spin_lock_irqsave(&host->slot_lock, flags); host 1090 drivers/mmc/host/omap.c if (host->mmc != NULL) { host 1093 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->slot_lock, flags); host 1096 drivers/mmc/host/omap.c host->mmc = mmc; host 1097 drivers/mmc/host/omap.c spin_unlock_irqrestore(&host->slot_lock, flags); host 1099 drivers/mmc/host/omap.c mmc_omap_start_request(host, req); host 1105 drivers/mmc/host/omap.c struct mmc_omap_host *host; host 1107 drivers/mmc/host/omap.c host = slot->host; host 1116 drivers/mmc/host/omap.c w = OMAP_MMC_READ(host, CON); host 1117 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CON, w | (1 << 11)); host 1119 drivers/mmc/host/omap.c w = OMAP_MMC_READ(host, CON); host 1120 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CON, w & ~(1 << 11)); host 1128 drivers/mmc/host/omap.c struct mmc_omap_host *host = slot->host; host 1129 drivers/mmc/host/omap.c int func_clk_rate = clk_get_rate(host->fclk); host 1156 drivers/mmc/host/omap.c struct mmc_omap_host *host = slot->host; host 1179 drivers/mmc/host/omap.c mmc_omap_fclk_enable(host, 1); host 1200 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CON, dsor); host 1207 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, IE, 0); host 1208 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, STAT, 0xffff); host 1209 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, CMD, 1 << 7); host 1210 drivers/mmc/host/omap.c while (usecs > 0 && (OMAP_MMC_READ(host, STAT) & 1) == 0) { host 1214 drivers/mmc/host/omap.c OMAP_MMC_WRITE(host, STAT, 1); host 1226 drivers/mmc/host/omap.c static int mmc_omap_new_slot(struct mmc_omap_host *host, int id) host 1232 drivers/mmc/host/omap.c mmc = mmc_alloc_host(sizeof(struct mmc_omap_slot), host->dev); host 1237 drivers/mmc/host/omap.c slot->host = host; host 1241 drivers/mmc/host/omap.c slot->pdata = &host->pdata->slots[id]; host 1243 drivers/mmc/host/omap.c host->slots[id] = slot; host 1246 drivers/mmc/host/omap.c if (host->pdata->slots[id].wires >= 4) host 1256 drivers/mmc/host/omap.c if (host->pdata->max_freq) host 1257 drivers/mmc/host/omap.c mmc->f_max = min(host->pdata->max_freq, mmc->f_max); host 1317 drivers/mmc/host/omap.c flush_workqueue(slot->host->mmc_omap_wq); host 1326 drivers/mmc/host/omap.c struct mmc_omap_host *host = NULL; host 1340 drivers/mmc/host/omap.c host = devm_kzalloc(&pdev->dev, sizeof(struct mmc_omap_host), host 1342 drivers/mmc/host/omap.c if (host == NULL) host 1350 drivers/mmc/host/omap.c host->virt_base = devm_ioremap_resource(&pdev->dev, res); host 1351 drivers/mmc/host/omap.c if (IS_ERR(host->virt_base)) host 1352 drivers/mmc/host/omap.c return PTR_ERR(host->virt_base); host 1354 drivers/mmc/host/omap.c INIT_WORK(&host->slot_release_work, mmc_omap_slot_release_work); host 1355 drivers/mmc/host/omap.c INIT_WORK(&host->send_stop_work, mmc_omap_send_stop_work); host 1357 drivers/mmc/host/omap.c INIT_WORK(&host->cmd_abort_work, mmc_omap_abort_command); host 1358 drivers/mmc/host/omap.c timer_setup(&host->cmd_abort_timer, mmc_omap_cmd_timer, 0); host 1360 drivers/mmc/host/omap.c spin_lock_init(&host->clk_lock); host 1361 drivers/mmc/host/omap.c timer_setup(&host->clk_timer, mmc_omap_clk_timer, 0); host 1363 drivers/mmc/host/omap.c spin_lock_init(&host->dma_lock); host 1364 drivers/mmc/host/omap.c spin_lock_init(&host->slot_lock); host 1365 drivers/mmc/host/omap.c init_waitqueue_head(&host->slot_wq); host 1367 drivers/mmc/host/omap.c host->pdata = pdata; host 1368 drivers/mmc/host/omap.c host->features = host->pdata->slots[0].features; host 1369 drivers/mmc/host/omap.c host->dev = &pdev->dev; host 1370 drivers/mmc/host/omap.c platform_set_drvdata(pdev, host); host 1372 drivers/mmc/host/omap.c host->id = pdev->id; host 1373 drivers/mmc/host/omap.c host->irq = irq; host 1374 drivers/mmc/host/omap.c host->phys_base = res->start; host 1375 drivers/mmc/host/omap.c host->iclk = clk_get(&pdev->dev, "ick"); host 1376 drivers/mmc/host/omap.c if (IS_ERR(host->iclk)) host 1377 drivers/mmc/host/omap.c return PTR_ERR(host->iclk); host 1378 drivers/mmc/host/omap.c clk_enable(host->iclk); host 1380 drivers/mmc/host/omap.c host->fclk = clk_get(&pdev->dev, "fck"); host 1381 drivers/mmc/host/omap.c if (IS_ERR(host->fclk)) { host 1382 drivers/mmc/host/omap.c ret = PTR_ERR(host->fclk); host 1386 drivers/mmc/host/omap.c host->dma_tx_burst = -1; host 1387 drivers/mmc/host/omap.c host->dma_rx_burst = -1; host 1389 drivers/mmc/host/omap.c host->dma_tx = dma_request_chan(&pdev->dev, "tx"); host 1390 drivers/mmc/host/omap.c if (IS_ERR(host->dma_tx)) { host 1391 drivers/mmc/host/omap.c ret = PTR_ERR(host->dma_tx); host 1393 drivers/mmc/host/omap.c clk_put(host->fclk); host 1397 drivers/mmc/host/omap.c host->dma_tx = NULL; host 1398 drivers/mmc/host/omap.c dev_warn(host->dev, "TX DMA channel request failed\n"); host 1401 drivers/mmc/host/omap.c host->dma_rx = dma_request_chan(&pdev->dev, "rx"); host 1402 drivers/mmc/host/omap.c if (IS_ERR(host->dma_rx)) { host 1403 drivers/mmc/host/omap.c ret = PTR_ERR(host->dma_rx); host 1405 drivers/mmc/host/omap.c if (host->dma_tx) host 1406 drivers/mmc/host/omap.c dma_release_channel(host->dma_tx); host 1407 drivers/mmc/host/omap.c clk_put(host->fclk); host 1411 drivers/mmc/host/omap.c host->dma_rx = NULL; host 1412 drivers/mmc/host/omap.c dev_warn(host->dev, "RX DMA channel request failed\n"); host 1415 drivers/mmc/host/omap.c ret = request_irq(host->irq, mmc_omap_irq, 0, DRIVER_NAME, host); host 1425 drivers/mmc/host/omap.c host->nr_slots = pdata->nr_slots; host 1426 drivers/mmc/host/omap.c host->reg_shift = (mmc_omap7xx() ? 1 : 2); host 1428 drivers/mmc/host/omap.c host->mmc_omap_wq = alloc_workqueue("mmc_omap", 0, 0); host 1429 drivers/mmc/host/omap.c if (!host->mmc_omap_wq) { host 1435 drivers/mmc/host/omap.c ret = mmc_omap_new_slot(host, i); host 1438 drivers/mmc/host/omap.c mmc_omap_remove_slot(host->slots[i]); host 1447 drivers/mmc/host/omap.c destroy_workqueue(host->mmc_omap_wq); host 1452 drivers/mmc/host/omap.c free_irq(host->irq, host); host 1454 drivers/mmc/host/omap.c if (host->dma_tx) host 1455 drivers/mmc/host/omap.c dma_release_channel(host->dma_tx); host 1456 drivers/mmc/host/omap.c if (host->dma_rx) host 1457 drivers/mmc/host/omap.c dma_release_channel(host->dma_rx); host 1458 drivers/mmc/host/omap.c clk_put(host->fclk); host 1460 drivers/mmc/host/omap.c clk_disable(host->iclk); host 1461 drivers/mmc/host/omap.c clk_put(host->iclk); host 1467 drivers/mmc/host/omap.c struct mmc_omap_host *host = platform_get_drvdata(pdev); host 1470 drivers/mmc/host/omap.c BUG_ON(host == NULL); host 1472 drivers/mmc/host/omap.c for (i = 0; i < host->nr_slots; i++) host 1473 drivers/mmc/host/omap.c mmc_omap_remove_slot(host->slots[i]); host 1475 drivers/mmc/host/omap.c if (host->pdata->cleanup) host 1476 drivers/mmc/host/omap.c host->pdata->cleanup(&pdev->dev); host 1478 drivers/mmc/host/omap.c mmc_omap_fclk_enable(host, 0); host 1479 drivers/mmc/host/omap.c free_irq(host->irq, host); host 1480 drivers/mmc/host/omap.c clk_put(host->fclk); host 1481 drivers/mmc/host/omap.c clk_disable(host->iclk); host 1482 drivers/mmc/host/omap.c clk_put(host->iclk); host 1484 drivers/mmc/host/omap.c if (host->dma_tx) host 1485 drivers/mmc/host/omap.c dma_release_channel(host->dma_tx); host 1486 drivers/mmc/host/omap.c if (host->dma_rx) host 1487 drivers/mmc/host/omap.c dma_release_channel(host->dma_rx); host 1489 drivers/mmc/host/omap.c destroy_workqueue(host->mmc_omap_wq); host 153 drivers/mmc/host/omap_hsmmc.c #define mmc_pdata(host) host->pdata host 214 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_start_dma_transfer(struct omap_hsmmc_host *host); host 219 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 229 drivers/mmc/host/omap_hsmmc.c if (!IS_ERR(mmc->supply.vqmmc) && !host->vqmmc_enabled) { host 235 drivers/mmc/host/omap_hsmmc.c host->vqmmc_enabled = 1; host 251 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 253 drivers/mmc/host/omap_hsmmc.c if (!IS_ERR(mmc->supply.vqmmc) && host->vqmmc_enabled) { host 259 drivers/mmc/host/omap_hsmmc.c host->vqmmc_enabled = 0; host 280 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_set_pbias(struct omap_hsmmc_host *host, bool power_on) host 284 drivers/mmc/host/omap_hsmmc.c if (IS_ERR(host->pbias)) host 288 drivers/mmc/host/omap_hsmmc.c if (host->pbias_enabled == 0) { host 289 drivers/mmc/host/omap_hsmmc.c ret = regulator_enable(host->pbias); host 291 drivers/mmc/host/omap_hsmmc.c dev_err(host->dev, "pbias reg enable fail\n"); host 294 drivers/mmc/host/omap_hsmmc.c host->pbias_enabled = 1; host 297 drivers/mmc/host/omap_hsmmc.c if (host->pbias_enabled == 1) { host 298 drivers/mmc/host/omap_hsmmc.c ret = regulator_disable(host->pbias); host 300 drivers/mmc/host/omap_hsmmc.c dev_err(host->dev, "pbias reg disable fail\n"); host 303 drivers/mmc/host/omap_hsmmc.c host->pbias_enabled = 0; host 310 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_set_power(struct omap_hsmmc_host *host, int power_on) host 312 drivers/mmc/host/omap_hsmmc.c struct mmc_host *mmc = host->mmc; host 322 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_set_pbias(host, false); host 344 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_set_pbias(host, true); host 381 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_disable_boot_regulators(struct omap_hsmmc_host *host) host 383 drivers/mmc/host/omap_hsmmc.c struct mmc_host *mmc = host->mmc; host 393 drivers/mmc/host/omap_hsmmc.c dev_err(host->dev, "fail to disable boot enabled vmmc reg\n"); host 399 drivers/mmc/host/omap_hsmmc.c dev_err(host->dev, host 404 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_disable_boot_regulator(host->pbias); host 406 drivers/mmc/host/omap_hsmmc.c dev_err(host->dev, host 414 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host) host 417 drivers/mmc/host/omap_hsmmc.c struct mmc_host *mmc = host->mmc; host 426 drivers/mmc/host/omap_hsmmc.c mmc->supply.vqmmc = devm_regulator_get_optional(host->dev, host 430 drivers/mmc/host/omap_hsmmc.c if ((ret != -ENODEV) && host->dev->of_node) host 432 drivers/mmc/host/omap_hsmmc.c dev_dbg(host->dev, "unable to get vmmc_aux regulator %ld\n", host 437 drivers/mmc/host/omap_hsmmc.c host->pbias = devm_regulator_get_optional(host->dev, "pbias"); host 438 drivers/mmc/host/omap_hsmmc.c if (IS_ERR(host->pbias)) { host 439 drivers/mmc/host/omap_hsmmc.c ret = PTR_ERR(host->pbias); host 440 drivers/mmc/host/omap_hsmmc.c if ((ret != -ENODEV) && host->dev->of_node) { host 441 drivers/mmc/host/omap_hsmmc.c dev_err(host->dev, host 445 drivers/mmc/host/omap_hsmmc.c dev_dbg(host->dev, "unable to get pbias regulator %ld\n", host 446 drivers/mmc/host/omap_hsmmc.c PTR_ERR(host->pbias)); host 450 drivers/mmc/host/omap_hsmmc.c if (mmc_pdata(host)->no_regulator_off_init) host 453 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_disable_boot_regulators(host); host 463 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_start_clock(struct omap_hsmmc_host *host) host 465 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, SYSCTL, host 466 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, SYSCTL) | CEN); host 472 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_stop_clock(struct omap_hsmmc_host *host) host 474 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, SYSCTL, host 475 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, SYSCTL) & ~CEN); host 476 drivers/mmc/host/omap_hsmmc.c if ((OMAP_HSMMC_READ(host->base, SYSCTL) & CEN) != 0x0) host 477 drivers/mmc/host/omap_hsmmc.c dev_dbg(mmc_dev(host->mmc), "MMC Clock is not stopped\n"); host 480 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_enable_irq(struct omap_hsmmc_host *host, host 486 drivers/mmc/host/omap_hsmmc.c if (host->use_dma) host 493 drivers/mmc/host/omap_hsmmc.c spin_lock_irqsave(&host->irq_lock, flags); host 494 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); host 495 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ISE, irq_mask); host 498 drivers/mmc/host/omap_hsmmc.c if (host->flags & HSMMC_SDIO_IRQ_ENABLED) host 500 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, irq_mask); host 501 drivers/mmc/host/omap_hsmmc.c spin_unlock_irqrestore(&host->irq_lock, flags); host 504 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_disable_irq(struct omap_hsmmc_host *host) host 509 drivers/mmc/host/omap_hsmmc.c spin_lock_irqsave(&host->irq_lock, flags); host 511 drivers/mmc/host/omap_hsmmc.c if (host->flags & HSMMC_SDIO_IRQ_ENABLED) host 513 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ISE, irq_mask); host 514 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, irq_mask); host 515 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); host 516 drivers/mmc/host/omap_hsmmc.c spin_unlock_irqrestore(&host->irq_lock, flags); host 520 drivers/mmc/host/omap_hsmmc.c static u16 calc_divisor(struct omap_hsmmc_host *host, struct mmc_ios *ios) host 525 drivers/mmc/host/omap_hsmmc.c dsor = DIV_ROUND_UP(clk_get_rate(host->fclk), ios->clock); host 533 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_set_clock(struct omap_hsmmc_host *host) host 535 drivers/mmc/host/omap_hsmmc.c struct mmc_ios *ios = &host->mmc->ios; host 540 drivers/mmc/host/omap_hsmmc.c dev_vdbg(mmc_dev(host->mmc), "Set clock to %uHz\n", ios->clock); host 542 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_stop_clock(host); host 544 drivers/mmc/host/omap_hsmmc.c regval = OMAP_HSMMC_READ(host->base, SYSCTL); host 546 drivers/mmc/host/omap_hsmmc.c clkdiv = calc_divisor(host, ios); host 548 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, SYSCTL, regval); host 549 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, SYSCTL, host 550 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, SYSCTL) | ICE); host 554 drivers/mmc/host/omap_hsmmc.c while ((OMAP_HSMMC_READ(host->base, SYSCTL) & ICS) != ICS host 567 drivers/mmc/host/omap_hsmmc.c if ((mmc_pdata(host)->features & HSMMC_HAS_HSPE_SUPPORT) && host 570 drivers/mmc/host/omap_hsmmc.c ((OMAP_HSMMC_READ(host->base, CAPA) & HSS) == HSS)) { host 571 drivers/mmc/host/omap_hsmmc.c regval = OMAP_HSMMC_READ(host->base, HCTL); host 572 drivers/mmc/host/omap_hsmmc.c if (clkdiv && (clk_get_rate(host->fclk)/clkdiv) > 25000000) host 577 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, regval); host 580 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_start_clock(host); host 583 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_set_bus_width(struct omap_hsmmc_host *host) host 585 drivers/mmc/host/omap_hsmmc.c struct mmc_ios *ios = &host->mmc->ios; host 588 drivers/mmc/host/omap_hsmmc.c con = OMAP_HSMMC_READ(host->base, CON); host 596 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CON, con | DW8); host 599 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CON, con & ~DW8); host 600 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, host 601 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL) | FOUR_BIT); host 604 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CON, con & ~DW8); host 605 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, host 606 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL) & ~FOUR_BIT); host 611 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_set_bus_mode(struct omap_hsmmc_host *host) host 613 drivers/mmc/host/omap_hsmmc.c struct mmc_ios *ios = &host->mmc->ios; host 616 drivers/mmc/host/omap_hsmmc.c con = OMAP_HSMMC_READ(host->base, CON); host 618 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CON, con | OD); host 620 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CON, con & ~OD); host 629 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_context_restore(struct omap_hsmmc_host *host) host 631 drivers/mmc/host/omap_hsmmc.c struct mmc_ios *ios = &host->mmc->ios; host 635 drivers/mmc/host/omap_hsmmc.c if (host->con == OMAP_HSMMC_READ(host->base, CON) && host 636 drivers/mmc/host/omap_hsmmc.c host->hctl == OMAP_HSMMC_READ(host->base, HCTL) && host 637 drivers/mmc/host/omap_hsmmc.c host->sysctl == OMAP_HSMMC_READ(host->base, SYSCTL) && host 638 drivers/mmc/host/omap_hsmmc.c host->capa == OMAP_HSMMC_READ(host->base, CAPA)) host 641 drivers/mmc/host/omap_hsmmc.c host->context_loss++; host 643 drivers/mmc/host/omap_hsmmc.c if (host->pdata->controller_flags & OMAP_HSMMC_SUPPORTS_DUAL_VOLT) { host 644 drivers/mmc/host/omap_hsmmc.c if (host->power_mode != MMC_POWER_OFF && host 655 drivers/mmc/host/omap_hsmmc.c if (host->mmc->caps & MMC_CAP_SDIO_IRQ) host 658 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, host 659 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL) | hctl); host 661 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CAPA, host 662 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, CAPA) | capa); host 664 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, host 665 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL) | SDBP); host 668 drivers/mmc/host/omap_hsmmc.c while ((OMAP_HSMMC_READ(host->base, HCTL) & SDBP) != SDBP host 672 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ISE, 0); host 673 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, 0); host 674 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); host 677 drivers/mmc/host/omap_hsmmc.c if (host->power_mode == MMC_POWER_OFF) host 680 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_set_bus_width(host); host 682 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_set_clock(host); host 684 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_set_bus_mode(host); host 687 drivers/mmc/host/omap_hsmmc.c dev_dbg(mmc_dev(host->mmc), "context is restored: restore count %d\n", host 688 drivers/mmc/host/omap_hsmmc.c host->context_loss); host 695 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_context_save(struct omap_hsmmc_host *host) host 697 drivers/mmc/host/omap_hsmmc.c host->con = OMAP_HSMMC_READ(host->base, CON); host 698 drivers/mmc/host/omap_hsmmc.c host->hctl = OMAP_HSMMC_READ(host->base, HCTL); host 699 drivers/mmc/host/omap_hsmmc.c host->sysctl = OMAP_HSMMC_READ(host->base, SYSCTL); host 700 drivers/mmc/host/omap_hsmmc.c host->capa = OMAP_HSMMC_READ(host->base, CAPA); host 705 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_context_restore(struct omap_hsmmc_host *host) host 710 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_context_save(struct omap_hsmmc_host *host) host 720 drivers/mmc/host/omap_hsmmc.c static void send_init_stream(struct omap_hsmmc_host *host) host 725 drivers/mmc/host/omap_hsmmc.c disable_irq(host->irq); host 727 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, INT_EN_MASK); host 728 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CON, host 729 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, CON) | INIT_STREAM); host 730 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CMD, INIT_STREAM_CMD); host 734 drivers/mmc/host/omap_hsmmc.c reg = OMAP_HSMMC_READ(host->base, STAT) & CC_EN; host 736 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CON, host 737 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, CON) & ~INIT_STREAM); host 739 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); host 740 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, STAT); host 742 drivers/mmc/host/omap_hsmmc.c enable_irq(host->irq); host 750 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 752 drivers/mmc/host/omap_hsmmc.c return sprintf(buf, "%s\n", mmc_pdata(host)->name); host 761 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_start_command(struct omap_hsmmc_host *host, struct mmc_command *cmd, host 766 drivers/mmc/host/omap_hsmmc.c dev_vdbg(mmc_dev(host->mmc), "%s: CMD%d, argument 0x%08x\n", host 767 drivers/mmc/host/omap_hsmmc.c mmc_hostname(host->mmc), cmd->opcode, cmd->arg); host 768 drivers/mmc/host/omap_hsmmc.c host->cmd = cmd; host 770 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_enable_irq(host, cmd); host 772 drivers/mmc/host/omap_hsmmc.c host->response_busy = 0; host 778 drivers/mmc/host/omap_hsmmc.c host->response_busy = 1; host 788 drivers/mmc/host/omap_hsmmc.c if (cmd == host->mrq->stop) host 793 drivers/mmc/host/omap_hsmmc.c if ((host->flags & AUTO_CMD23) && mmc_op_multi(cmd->opcode) && host 794 drivers/mmc/host/omap_hsmmc.c host->mrq->sbc) { host 796 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, SDMASA, host->mrq->sbc->arg); host 806 drivers/mmc/host/omap_hsmmc.c if (host->use_dma) host 809 drivers/mmc/host/omap_hsmmc.c host->req_in_progress = 1; host 811 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ARG, cmd->arg); host 812 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CMD, cmdreg); host 815 drivers/mmc/host/omap_hsmmc.c static struct dma_chan *omap_hsmmc_get_dma_chan(struct omap_hsmmc_host *host, host 818 drivers/mmc/host/omap_hsmmc.c return data->flags & MMC_DATA_WRITE ? host->tx_chan : host->rx_chan; host 821 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_request_done(struct omap_hsmmc_host *host, struct mmc_request *mrq) host 826 drivers/mmc/host/omap_hsmmc.c spin_lock_irqsave(&host->irq_lock, flags); host 827 drivers/mmc/host/omap_hsmmc.c host->req_in_progress = 0; host 828 drivers/mmc/host/omap_hsmmc.c dma_ch = host->dma_ch; host 829 drivers/mmc/host/omap_hsmmc.c spin_unlock_irqrestore(&host->irq_lock, flags); host 831 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_disable_irq(host); host 833 drivers/mmc/host/omap_hsmmc.c if (mrq->data && host->use_dma && dma_ch != -1) host 835 drivers/mmc/host/omap_hsmmc.c host->mrq = NULL; host 836 drivers/mmc/host/omap_hsmmc.c mmc_request_done(host->mmc, mrq); host 843 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_xfer_done(struct omap_hsmmc_host *host, struct mmc_data *data) host 846 drivers/mmc/host/omap_hsmmc.c struct mmc_request *mrq = host->mrq; host 849 drivers/mmc/host/omap_hsmmc.c if (host->cmd && host->cmd->opcode == 6 && host 850 drivers/mmc/host/omap_hsmmc.c host->response_busy) { host 851 drivers/mmc/host/omap_hsmmc.c host->response_busy = 0; host 855 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_request_done(host, mrq); host 859 drivers/mmc/host/omap_hsmmc.c host->data = NULL; host 866 drivers/mmc/host/omap_hsmmc.c if (data->stop && (data->error || !host->mrq->sbc)) host 867 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_start_command(host, data->stop, NULL); host 869 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_request_done(host, data->mrq); host 876 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_cmd_done(struct omap_hsmmc_host *host, struct mmc_command *cmd) host 878 drivers/mmc/host/omap_hsmmc.c if (host->mrq->sbc && (host->cmd == host->mrq->sbc) && host 879 drivers/mmc/host/omap_hsmmc.c !host->mrq->sbc->error && !(host->flags & AUTO_CMD23)) { host 880 drivers/mmc/host/omap_hsmmc.c host->cmd = NULL; host 881 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_start_dma_transfer(host); host 882 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_start_command(host, host->mrq->cmd, host 883 drivers/mmc/host/omap_hsmmc.c host->mrq->data); host 887 drivers/mmc/host/omap_hsmmc.c host->cmd = NULL; host 892 drivers/mmc/host/omap_hsmmc.c cmd->resp[3] = OMAP_HSMMC_READ(host->base, RSP10); host 893 drivers/mmc/host/omap_hsmmc.c cmd->resp[2] = OMAP_HSMMC_READ(host->base, RSP32); host 894 drivers/mmc/host/omap_hsmmc.c cmd->resp[1] = OMAP_HSMMC_READ(host->base, RSP54); host 895 drivers/mmc/host/omap_hsmmc.c cmd->resp[0] = OMAP_HSMMC_READ(host->base, RSP76); host 898 drivers/mmc/host/omap_hsmmc.c cmd->resp[0] = OMAP_HSMMC_READ(host->base, RSP10); host 901 drivers/mmc/host/omap_hsmmc.c if ((host->data == NULL && !host->response_busy) || cmd->error) host 902 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_request_done(host, host->mrq); host 908 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_dma_cleanup(struct omap_hsmmc_host *host, int errno) host 913 drivers/mmc/host/omap_hsmmc.c host->data->error = errno; host 915 drivers/mmc/host/omap_hsmmc.c spin_lock_irqsave(&host->irq_lock, flags); host 916 drivers/mmc/host/omap_hsmmc.c dma_ch = host->dma_ch; host 917 drivers/mmc/host/omap_hsmmc.c host->dma_ch = -1; host 918 drivers/mmc/host/omap_hsmmc.c spin_unlock_irqrestore(&host->irq_lock, flags); host 920 drivers/mmc/host/omap_hsmmc.c if (host->use_dma && dma_ch != -1) { host 921 drivers/mmc/host/omap_hsmmc.c struct dma_chan *chan = omap_hsmmc_get_dma_chan(host, host->data); host 925 drivers/mmc/host/omap_hsmmc.c host->data->sg, host->data->sg_len, host 926 drivers/mmc/host/omap_hsmmc.c mmc_get_dma_dir(host->data)); host 928 drivers/mmc/host/omap_hsmmc.c host->data->host_cookie = 0; host 930 drivers/mmc/host/omap_hsmmc.c host->data = NULL; host 937 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_dbg_report_irq(struct omap_hsmmc_host *host, u32 status) host 959 drivers/mmc/host/omap_hsmmc.c dev_vdbg(mmc_dev(host->mmc), "%s\n", res); host 962 drivers/mmc/host/omap_hsmmc.c static inline void omap_hsmmc_dbg_report_irq(struct omap_hsmmc_host *host, host 975 drivers/mmc/host/omap_hsmmc.c static inline void omap_hsmmc_reset_controller_fsm(struct omap_hsmmc_host *host, host 981 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, SYSCTL, host 982 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, SYSCTL) | bit); host 988 drivers/mmc/host/omap_hsmmc.c if (mmc_pdata(host)->features & HSMMC_HAS_UPDATED_RESET) { host 989 drivers/mmc/host/omap_hsmmc.c while ((!(OMAP_HSMMC_READ(host->base, SYSCTL) & bit)) host 995 drivers/mmc/host/omap_hsmmc.c while ((OMAP_HSMMC_READ(host->base, SYSCTL) & bit) && host 999 drivers/mmc/host/omap_hsmmc.c if (OMAP_HSMMC_READ(host->base, SYSCTL) & bit) host 1000 drivers/mmc/host/omap_hsmmc.c dev_err(mmc_dev(host->mmc), host 1005 drivers/mmc/host/omap_hsmmc.c static void hsmmc_command_incomplete(struct omap_hsmmc_host *host, host 1009 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_reset_controller_fsm(host, SRC); host 1010 drivers/mmc/host/omap_hsmmc.c if (host->cmd) host 1011 drivers/mmc/host/omap_hsmmc.c host->cmd->error = err; host 1014 drivers/mmc/host/omap_hsmmc.c if (host->data) { host 1015 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_reset_controller_fsm(host, SRD); host 1016 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_dma_cleanup(host, err); host 1017 drivers/mmc/host/omap_hsmmc.c } else if (host->mrq && host->mrq->cmd) host 1018 drivers/mmc/host/omap_hsmmc.c host->mrq->cmd->error = err; host 1021 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_do_irq(struct omap_hsmmc_host *host, int status) host 1027 drivers/mmc/host/omap_hsmmc.c data = host->data; host 1028 drivers/mmc/host/omap_hsmmc.c dev_vdbg(mmc_dev(host->mmc), "IRQ Status is %x\n", status); host 1031 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_dbg_report_irq(host, status); host 1035 drivers/mmc/host/omap_hsmmc.c if (host->data || host->response_busy) { host 1037 drivers/mmc/host/omap_hsmmc.c host->response_busy = 0; host 1040 drivers/mmc/host/omap_hsmmc.c hsmmc_command_incomplete(host, -ETIMEDOUT, end_cmd); host 1043 drivers/mmc/host/omap_hsmmc.c hsmmc_command_incomplete(host, -EILSEQ, end_cmd); host 1047 drivers/mmc/host/omap_hsmmc.c ac12 = OMAP_HSMMC_READ(host->base, AC12); host 1048 drivers/mmc/host/omap_hsmmc.c if (!(ac12 & ACNE) && host->mrq->sbc) { host 1054 drivers/mmc/host/omap_hsmmc.c host->mrq->sbc->error = error; host 1055 drivers/mmc/host/omap_hsmmc.c hsmmc_command_incomplete(host, error, end_cmd); host 1057 drivers/mmc/host/omap_hsmmc.c dev_dbg(mmc_dev(host->mmc), "AC12 err: 0x%x\n", ac12); host 1061 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, STAT, status); host 1062 drivers/mmc/host/omap_hsmmc.c if (end_cmd || ((status & CC_EN) && host->cmd)) host 1063 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_cmd_done(host, host->cmd); host 1064 drivers/mmc/host/omap_hsmmc.c if ((end_trans || (status & TC_EN)) && host->mrq) host 1065 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_xfer_done(host, data); host 1073 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = dev_id; host 1076 drivers/mmc/host/omap_hsmmc.c status = OMAP_HSMMC_READ(host->base, STAT); host 1078 drivers/mmc/host/omap_hsmmc.c if (host->req_in_progress) host 1079 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_do_irq(host, status); host 1082 drivers/mmc/host/omap_hsmmc.c mmc_signal_sdio_irq(host->mmc); host 1085 drivers/mmc/host/omap_hsmmc.c status = OMAP_HSMMC_READ(host->base, STAT); host 1091 drivers/mmc/host/omap_hsmmc.c static void set_sd_bus_power(struct omap_hsmmc_host *host) host 1095 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, host 1096 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL) | SDBP); host 1098 drivers/mmc/host/omap_hsmmc.c if (OMAP_HSMMC_READ(host->base, HCTL) & SDBP) host 1111 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_switch_opcond(struct omap_hsmmc_host *host, int vdd) host 1117 drivers/mmc/host/omap_hsmmc.c if (host->dbclk) host 1118 drivers/mmc/host/omap_hsmmc.c clk_disable_unprepare(host->dbclk); host 1121 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_set_power(host, 0); host 1125 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_set_power(host, 1); host 1126 drivers/mmc/host/omap_hsmmc.c if (host->dbclk) host 1127 drivers/mmc/host/omap_hsmmc.c clk_prepare_enable(host->dbclk); host 1132 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, host 1133 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL) & SDVSCLR); host 1134 drivers/mmc/host/omap_hsmmc.c reg_val = OMAP_HSMMC_READ(host->base, HCTL); host 1156 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, reg_val); host 1157 drivers/mmc/host/omap_hsmmc.c set_sd_bus_power(host); host 1161 drivers/mmc/host/omap_hsmmc.c dev_err(mmc_dev(host->mmc), "Unable to switch operating voltage\n"); host 1167 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = param; host 1172 drivers/mmc/host/omap_hsmmc.c spin_lock_irq(&host->irq_lock); host 1173 drivers/mmc/host/omap_hsmmc.c if (host->dma_ch < 0) { host 1174 drivers/mmc/host/omap_hsmmc.c spin_unlock_irq(&host->irq_lock); host 1178 drivers/mmc/host/omap_hsmmc.c data = host->mrq->data; host 1179 drivers/mmc/host/omap_hsmmc.c chan = omap_hsmmc_get_dma_chan(host, data); host 1185 drivers/mmc/host/omap_hsmmc.c req_in_progress = host->req_in_progress; host 1186 drivers/mmc/host/omap_hsmmc.c host->dma_ch = -1; host 1187 drivers/mmc/host/omap_hsmmc.c spin_unlock_irq(&host->irq_lock); host 1191 drivers/mmc/host/omap_hsmmc.c struct mmc_request *mrq = host->mrq; host 1193 drivers/mmc/host/omap_hsmmc.c host->mrq = NULL; host 1194 drivers/mmc/host/omap_hsmmc.c mmc_request_done(host->mmc, mrq); host 1198 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_pre_dma_transfer(struct omap_hsmmc_host *host, host 1206 drivers/mmc/host/omap_hsmmc.c data->host_cookie != host->next_data.cookie) { host 1207 drivers/mmc/host/omap_hsmmc.c dev_warn(host->dev, "[%s] invalid cookie: data->host_cookie %d" host 1209 drivers/mmc/host/omap_hsmmc.c __func__, data->host_cookie, host->next_data.cookie); host 1214 drivers/mmc/host/omap_hsmmc.c if (next || data->host_cookie != host->next_data.cookie) { host 1219 drivers/mmc/host/omap_hsmmc.c dma_len = host->next_data.dma_len; host 1220 drivers/mmc/host/omap_hsmmc.c host->next_data.dma_len = 0; host 1231 drivers/mmc/host/omap_hsmmc.c host->dma_len = dma_len; host 1239 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_setup_dma_transfer(struct omap_hsmmc_host *host, host 1247 drivers/mmc/host/omap_hsmmc.c .src_addr = host->mapbase + OMAP_HSMMC_DATA, host 1248 drivers/mmc/host/omap_hsmmc.c .dst_addr = host->mapbase + OMAP_HSMMC_DATA, host 1269 drivers/mmc/host/omap_hsmmc.c BUG_ON(host->dma_ch != -1); host 1271 drivers/mmc/host/omap_hsmmc.c chan = omap_hsmmc_get_dma_chan(host, data); host 1277 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_pre_dma_transfer(host, data, NULL, chan); host 1285 drivers/mmc/host/omap_hsmmc.c dev_err(mmc_dev(host->mmc), "prep_slave_sg() failed\n"); host 1291 drivers/mmc/host/omap_hsmmc.c tx->callback_param = host; host 1296 drivers/mmc/host/omap_hsmmc.c host->dma_ch = 1; host 1301 drivers/mmc/host/omap_hsmmc.c static void set_data_timeout(struct omap_hsmmc_host *host, host 1309 drivers/mmc/host/omap_hsmmc.c reg = OMAP_HSMMC_READ(host->base, SYSCTL); host 1314 drivers/mmc/host/omap_hsmmc.c cycle_ns = 1000000000 / (host->clk_rate / clkd); host 1336 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, SYSCTL, reg); host 1339 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_start_dma_transfer(struct omap_hsmmc_host *host) host 1341 drivers/mmc/host/omap_hsmmc.c struct mmc_request *req = host->mrq; host 1346 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, BLK, (req->data->blksz) host 1348 drivers/mmc/host/omap_hsmmc.c set_data_timeout(host, req->data->timeout_ns, host 1350 drivers/mmc/host/omap_hsmmc.c chan = omap_hsmmc_get_dma_chan(host, req->data); host 1358 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_prepare_data(struct omap_hsmmc_host *host, struct mmc_request *req) host 1363 drivers/mmc/host/omap_hsmmc.c host->data = req->data; host 1366 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, BLK, 0); host 1377 drivers/mmc/host/omap_hsmmc.c set_data_timeout(host, timeout, 0); host 1382 drivers/mmc/host/omap_hsmmc.c if (host->use_dma) { host 1383 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_setup_dma_transfer(host, req); host 1385 drivers/mmc/host/omap_hsmmc.c dev_err(mmc_dev(host->mmc), "MMC start dma failure\n"); host 1395 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 1398 drivers/mmc/host/omap_hsmmc.c if (host->use_dma && data->host_cookie) { host 1399 drivers/mmc/host/omap_hsmmc.c struct dma_chan *c = omap_hsmmc_get_dma_chan(host, data); host 1409 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 1416 drivers/mmc/host/omap_hsmmc.c if (host->use_dma) { host 1417 drivers/mmc/host/omap_hsmmc.c struct dma_chan *c = omap_hsmmc_get_dma_chan(host, mrq->data); host 1419 drivers/mmc/host/omap_hsmmc.c if (omap_hsmmc_pre_dma_transfer(host, mrq->data, host 1420 drivers/mmc/host/omap_hsmmc.c &host->next_data, c)) host 1430 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 1433 drivers/mmc/host/omap_hsmmc.c BUG_ON(host->req_in_progress); host 1434 drivers/mmc/host/omap_hsmmc.c BUG_ON(host->dma_ch != -1); host 1435 drivers/mmc/host/omap_hsmmc.c if (host->reqs_blocked) host 1436 drivers/mmc/host/omap_hsmmc.c host->reqs_blocked = 0; host 1437 drivers/mmc/host/omap_hsmmc.c WARN_ON(host->mrq != NULL); host 1438 drivers/mmc/host/omap_hsmmc.c host->mrq = req; host 1439 drivers/mmc/host/omap_hsmmc.c host->clk_rate = clk_get_rate(host->fclk); host 1440 drivers/mmc/host/omap_hsmmc.c err = omap_hsmmc_prepare_data(host, req); host 1445 drivers/mmc/host/omap_hsmmc.c host->mrq = NULL; host 1449 drivers/mmc/host/omap_hsmmc.c if (req->sbc && !(host->flags & AUTO_CMD23)) { host 1450 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_start_command(host, req->sbc, NULL); host 1454 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_start_dma_transfer(host); host 1455 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_start_command(host, req->cmd, req->data); host 1461 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 1464 drivers/mmc/host/omap_hsmmc.c if (ios->power_mode != host->power_mode) { host 1467 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_set_power(host, 0); host 1470 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_set_power(host, 1); host 1476 drivers/mmc/host/omap_hsmmc.c host->power_mode = ios->power_mode; host 1481 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_set_bus_width(host); host 1483 drivers/mmc/host/omap_hsmmc.c if (host->pdata->controller_flags & OMAP_HSMMC_SUPPORTS_DUAL_VOLT) { host 1487 drivers/mmc/host/omap_hsmmc.c if ((OMAP_HSMMC_READ(host->base, HCTL) & SDVSDET) && host 1495 drivers/mmc/host/omap_hsmmc.c if (omap_hsmmc_switch_opcond(host, ios->vdd) != 0) host 1496 drivers/mmc/host/omap_hsmmc.c dev_dbg(mmc_dev(host->mmc), host 1501 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_set_clock(host); host 1504 drivers/mmc/host/omap_hsmmc.c send_init_stream(host); host 1506 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_set_bus_mode(host); host 1511 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 1513 drivers/mmc/host/omap_hsmmc.c if (mmc_pdata(host)->init_card) host 1514 drivers/mmc/host/omap_hsmmc.c mmc_pdata(host)->init_card(card); host 1534 drivers/mmc/host/omap_hsmmc.c dev_info(host->dev, "found wl1251\n"); host 1549 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 1553 drivers/mmc/host/omap_hsmmc.c spin_lock_irqsave(&host->irq_lock, flags); host 1555 drivers/mmc/host/omap_hsmmc.c con = OMAP_HSMMC_READ(host->base, CON); host 1556 drivers/mmc/host/omap_hsmmc.c irq_mask = OMAP_HSMMC_READ(host->base, ISE); host 1558 drivers/mmc/host/omap_hsmmc.c host->flags |= HSMMC_SDIO_IRQ_ENABLED; host 1562 drivers/mmc/host/omap_hsmmc.c host->flags &= ~HSMMC_SDIO_IRQ_ENABLED; host 1566 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CON, con); host 1567 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, irq_mask); host 1573 drivers/mmc/host/omap_hsmmc.c if (!host->req_in_progress || !enable) host 1574 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ISE, irq_mask); host 1577 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, IE); host 1579 drivers/mmc/host/omap_hsmmc.c spin_unlock_irqrestore(&host->irq_lock, flags); host 1582 drivers/mmc/host/omap_hsmmc.c static int omap_hsmmc_configure_wake_irq(struct omap_hsmmc_host *host) host 1592 drivers/mmc/host/omap_hsmmc.c if (!host->dev->of_node || !host->wake_irq) host 1595 drivers/mmc/host/omap_hsmmc.c ret = dev_pm_set_dedicated_wake_irq(host->dev, host->wake_irq); host 1597 drivers/mmc/host/omap_hsmmc.c dev_err(mmc_dev(host->mmc), "Unable to request wake IRQ\n"); host 1605 drivers/mmc/host/omap_hsmmc.c if (host->pdata->controller_flags & OMAP_HSMMC_SWAKEUP_MISSING) { host 1606 drivers/mmc/host/omap_hsmmc.c struct pinctrl *p = devm_pinctrl_get(host->dev); host 1612 drivers/mmc/host/omap_hsmmc.c dev_info(host->dev, "missing default pinctrl state\n"); host 1619 drivers/mmc/host/omap_hsmmc.c dev_info(host->dev, "missing idle pinctrl state\n"); host 1627 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, host 1628 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL) | IWE); host 1632 drivers/mmc/host/omap_hsmmc.c dev_pm_clear_wake_irq(host->dev); host 1634 drivers/mmc/host/omap_hsmmc.c dev_warn(host->dev, "no SDIO IRQ support, falling back to polling\n"); host 1635 drivers/mmc/host/omap_hsmmc.c host->wake_irq = 0; host 1639 drivers/mmc/host/omap_hsmmc.c static void omap_hsmmc_conf_bus_power(struct omap_hsmmc_host *host) host 1644 drivers/mmc/host/omap_hsmmc.c if (host->pdata->controller_flags & OMAP_HSMMC_SUPPORTS_DUAL_VOLT) { host 1652 drivers/mmc/host/omap_hsmmc.c value = OMAP_HSMMC_READ(host->base, HCTL) & ~SDVS_MASK; host 1653 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, value | hctl); host 1655 drivers/mmc/host/omap_hsmmc.c value = OMAP_HSMMC_READ(host->base, CAPA); host 1656 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, CAPA, value | capa); host 1659 drivers/mmc/host/omap_hsmmc.c set_sd_bus_power(host); host 1688 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = mmc_priv(mmc); host 1696 drivers/mmc/host/omap_hsmmc.c (host->flags & HSMMC_SDIO_IRQ_ENABLED) ? "enabled" host 1699 drivers/mmc/host/omap_hsmmc.c seq_printf(s, "ctx_loss:\t%d\n", host->context_loss); host 1701 drivers/mmc/host/omap_hsmmc.c pm_runtime_get_sync(host->dev); host 1704 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, CON)); host 1706 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, PSTATE)); host 1708 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL)); host 1710 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, SYSCTL)); host 1712 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, IE)); host 1714 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, ISE)); host 1716 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, CAPA)); host 1718 drivers/mmc/host/omap_hsmmc.c pm_runtime_mark_last_busy(host->dev); host 1719 drivers/mmc/host/omap_hsmmc.c pm_runtime_put_autosuspend(host->dev); host 1819 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = NULL; host 1864 drivers/mmc/host/omap_hsmmc.c host = mmc_priv(mmc); host 1865 drivers/mmc/host/omap_hsmmc.c host->mmc = mmc; host 1866 drivers/mmc/host/omap_hsmmc.c host->pdata = pdata; host 1867 drivers/mmc/host/omap_hsmmc.c host->dev = &pdev->dev; host 1868 drivers/mmc/host/omap_hsmmc.c host->use_dma = 1; host 1869 drivers/mmc/host/omap_hsmmc.c host->dma_ch = -1; host 1870 drivers/mmc/host/omap_hsmmc.c host->irq = irq; host 1871 drivers/mmc/host/omap_hsmmc.c host->mapbase = res->start + pdata->reg_offset; host 1872 drivers/mmc/host/omap_hsmmc.c host->base = base + pdata->reg_offset; host 1873 drivers/mmc/host/omap_hsmmc.c host->power_mode = MMC_POWER_OFF; host 1874 drivers/mmc/host/omap_hsmmc.c host->next_data.cookie = 1; host 1875 drivers/mmc/host/omap_hsmmc.c host->pbias_enabled = 0; host 1876 drivers/mmc/host/omap_hsmmc.c host->vqmmc_enabled = 0; host 1878 drivers/mmc/host/omap_hsmmc.c platform_set_drvdata(pdev, host); host 1881 drivers/mmc/host/omap_hsmmc.c host->wake_irq = irq_of_parse_and_map(pdev->dev.of_node, 1); host 1892 drivers/mmc/host/omap_hsmmc.c spin_lock_init(&host->irq_lock); host 1894 drivers/mmc/host/omap_hsmmc.c host->fclk = devm_clk_get(&pdev->dev, "fck"); host 1895 drivers/mmc/host/omap_hsmmc.c if (IS_ERR(host->fclk)) { host 1896 drivers/mmc/host/omap_hsmmc.c ret = PTR_ERR(host->fclk); host 1897 drivers/mmc/host/omap_hsmmc.c host->fclk = NULL; host 1901 drivers/mmc/host/omap_hsmmc.c if (host->pdata->controller_flags & OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) { host 1907 drivers/mmc/host/omap_hsmmc.c pm_runtime_enable(host->dev); host 1908 drivers/mmc/host/omap_hsmmc.c pm_runtime_get_sync(host->dev); host 1909 drivers/mmc/host/omap_hsmmc.c pm_runtime_set_autosuspend_delay(host->dev, MMC_AUTOSUSPEND_DELAY); host 1910 drivers/mmc/host/omap_hsmmc.c pm_runtime_use_autosuspend(host->dev); host 1912 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_context_save(host); host 1914 drivers/mmc/host/omap_hsmmc.c host->dbclk = devm_clk_get(&pdev->dev, "mmchsdb_fck"); host 1918 drivers/mmc/host/omap_hsmmc.c if (IS_ERR(host->dbclk)) { host 1919 drivers/mmc/host/omap_hsmmc.c host->dbclk = NULL; host 1920 drivers/mmc/host/omap_hsmmc.c } else if (clk_prepare_enable(host->dbclk) != 0) { host 1921 drivers/mmc/host/omap_hsmmc.c dev_warn(mmc_dev(host->mmc), "Failed to enable debounce clk\n"); host 1922 drivers/mmc/host/omap_hsmmc.c host->dbclk = NULL; host 1936 drivers/mmc/host/omap_hsmmc.c mmc->caps |= mmc_pdata(host)->caps; host 1940 drivers/mmc/host/omap_hsmmc.c if (mmc_pdata(host)->nonremovable) host 1943 drivers/mmc/host/omap_hsmmc.c mmc->pm_caps |= mmc_pdata(host)->pm_caps; host 1945 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_conf_bus_power(host); host 1947 drivers/mmc/host/omap_hsmmc.c host->rx_chan = dma_request_chan(&pdev->dev, "rx"); host 1948 drivers/mmc/host/omap_hsmmc.c if (IS_ERR(host->rx_chan)) { host 1949 drivers/mmc/host/omap_hsmmc.c dev_err(mmc_dev(host->mmc), "RX DMA channel request failed\n"); host 1950 drivers/mmc/host/omap_hsmmc.c ret = PTR_ERR(host->rx_chan); host 1954 drivers/mmc/host/omap_hsmmc.c host->tx_chan = dma_request_chan(&pdev->dev, "tx"); host 1955 drivers/mmc/host/omap_hsmmc.c if (IS_ERR(host->tx_chan)) { host 1956 drivers/mmc/host/omap_hsmmc.c dev_err(mmc_dev(host->mmc), "TX DMA channel request failed\n"); host 1957 drivers/mmc/host/omap_hsmmc.c ret = PTR_ERR(host->tx_chan); host 1969 drivers/mmc/host/omap_hsmmc.c dma_get_max_seg_size(host->rx_chan->device->dev), host 1970 drivers/mmc/host/omap_hsmmc.c dma_get_max_seg_size(host->tx_chan->device->dev)); host 1973 drivers/mmc/host/omap_hsmmc.c ret = devm_request_irq(&pdev->dev, host->irq, omap_hsmmc_irq, 0, host 1974 drivers/mmc/host/omap_hsmmc.c mmc_hostname(mmc), host); host 1976 drivers/mmc/host/omap_hsmmc.c dev_err(mmc_dev(host->mmc), "Unable to grab HSMMC IRQ\n"); host 1980 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_reg_get(host); host 1985 drivers/mmc/host/omap_hsmmc.c mmc->ocr_avail = mmc_pdata(host)->ocr_mask; host 1987 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_disable_irq(host); host 1997 drivers/mmc/host/omap_hsmmc.c ret = omap_hsmmc_configure_wake_irq(host); host 2003 drivers/mmc/host/omap_hsmmc.c if (mmc_pdata(host)->name != NULL) { host 2010 drivers/mmc/host/omap_hsmmc.c pm_runtime_mark_last_busy(host->dev); host 2011 drivers/mmc/host/omap_hsmmc.c pm_runtime_put_autosuspend(host->dev); host 2019 drivers/mmc/host/omap_hsmmc.c if (!IS_ERR_OR_NULL(host->tx_chan)) host 2020 drivers/mmc/host/omap_hsmmc.c dma_release_channel(host->tx_chan); host 2021 drivers/mmc/host/omap_hsmmc.c if (!IS_ERR_OR_NULL(host->rx_chan)) host 2022 drivers/mmc/host/omap_hsmmc.c dma_release_channel(host->rx_chan); host 2023 drivers/mmc/host/omap_hsmmc.c pm_runtime_dont_use_autosuspend(host->dev); host 2024 drivers/mmc/host/omap_hsmmc.c pm_runtime_put_sync(host->dev); host 2025 drivers/mmc/host/omap_hsmmc.c pm_runtime_disable(host->dev); host 2026 drivers/mmc/host/omap_hsmmc.c if (host->dbclk) host 2027 drivers/mmc/host/omap_hsmmc.c clk_disable_unprepare(host->dbclk); host 2036 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = platform_get_drvdata(pdev); host 2038 drivers/mmc/host/omap_hsmmc.c pm_runtime_get_sync(host->dev); host 2039 drivers/mmc/host/omap_hsmmc.c mmc_remove_host(host->mmc); host 2041 drivers/mmc/host/omap_hsmmc.c dma_release_channel(host->tx_chan); host 2042 drivers/mmc/host/omap_hsmmc.c dma_release_channel(host->rx_chan); host 2044 drivers/mmc/host/omap_hsmmc.c dev_pm_clear_wake_irq(host->dev); host 2045 drivers/mmc/host/omap_hsmmc.c pm_runtime_dont_use_autosuspend(host->dev); host 2046 drivers/mmc/host/omap_hsmmc.c pm_runtime_put_sync(host->dev); host 2047 drivers/mmc/host/omap_hsmmc.c pm_runtime_disable(host->dev); host 2049 drivers/mmc/host/omap_hsmmc.c if (host->dbclk) host 2050 drivers/mmc/host/omap_hsmmc.c clk_disable_unprepare(host->dbclk); host 2052 drivers/mmc/host/omap_hsmmc.c mmc_free_host(host->mmc); host 2060 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = dev_get_drvdata(dev); host 2062 drivers/mmc/host/omap_hsmmc.c if (!host) host 2065 drivers/mmc/host/omap_hsmmc.c pm_runtime_get_sync(host->dev); host 2067 drivers/mmc/host/omap_hsmmc.c if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER)) { host 2068 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ISE, 0); host 2069 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, 0); host 2070 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); host 2071 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, HCTL, host 2072 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_READ(host->base, HCTL) & ~SDBP); host 2075 drivers/mmc/host/omap_hsmmc.c if (host->dbclk) host 2076 drivers/mmc/host/omap_hsmmc.c clk_disable_unprepare(host->dbclk); host 2078 drivers/mmc/host/omap_hsmmc.c pm_runtime_put_sync(host->dev); host 2085 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host = dev_get_drvdata(dev); host 2087 drivers/mmc/host/omap_hsmmc.c if (!host) host 2090 drivers/mmc/host/omap_hsmmc.c pm_runtime_get_sync(host->dev); host 2092 drivers/mmc/host/omap_hsmmc.c if (host->dbclk) host 2093 drivers/mmc/host/omap_hsmmc.c clk_prepare_enable(host->dbclk); host 2095 drivers/mmc/host/omap_hsmmc.c if (!(host->mmc->pm_flags & MMC_PM_KEEP_POWER)) host 2096 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_conf_bus_power(host); host 2098 drivers/mmc/host/omap_hsmmc.c pm_runtime_mark_last_busy(host->dev); host 2099 drivers/mmc/host/omap_hsmmc.c pm_runtime_put_autosuspend(host->dev); host 2106 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host; host 2110 drivers/mmc/host/omap_hsmmc.c host = dev_get_drvdata(dev); host 2111 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_context_save(host); host 2114 drivers/mmc/host/omap_hsmmc.c spin_lock_irqsave(&host->irq_lock, flags); host 2115 drivers/mmc/host/omap_hsmmc.c if ((host->mmc->caps & MMC_CAP_SDIO_IRQ) && host 2116 drivers/mmc/host/omap_hsmmc.c (host->flags & HSMMC_SDIO_IRQ_ENABLED)) { host 2118 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ISE, 0); host 2119 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, 0); host 2121 drivers/mmc/host/omap_hsmmc.c if (!(OMAP_HSMMC_READ(host->base, PSTATE) & DLEV_DAT(1))) { host 2128 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); host 2129 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ISE, CIRQ_EN); host 2130 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, CIRQ_EN); host 2142 drivers/mmc/host/omap_hsmmc.c spin_unlock_irqrestore(&host->irq_lock, flags); host 2148 drivers/mmc/host/omap_hsmmc.c struct omap_hsmmc_host *host; host 2151 drivers/mmc/host/omap_hsmmc.c host = dev_get_drvdata(dev); host 2152 drivers/mmc/host/omap_hsmmc.c omap_hsmmc_context_restore(host); host 2155 drivers/mmc/host/omap_hsmmc.c spin_lock_irqsave(&host->irq_lock, flags); host 2156 drivers/mmc/host/omap_hsmmc.c if ((host->mmc->caps & MMC_CAP_SDIO_IRQ) && host 2157 drivers/mmc/host/omap_hsmmc.c (host->flags & HSMMC_SDIO_IRQ_ENABLED)) { host 2159 drivers/mmc/host/omap_hsmmc.c pinctrl_pm_select_default_state(host->dev); host 2162 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); host 2163 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, ISE, CIRQ_EN); host 2164 drivers/mmc/host/omap_hsmmc.c OMAP_HSMMC_WRITE(host->base, IE, CIRQ_EN); host 2166 drivers/mmc/host/omap_hsmmc.c pinctrl_pm_select_default_state(host->dev); host 2168 drivers/mmc/host/omap_hsmmc.c spin_unlock_irqrestore(&host->irq_lock, flags); host 77 drivers/mmc/host/pxamci.c static int pxamci_init_ocr(struct pxamci_host *host) host 79 drivers/mmc/host/pxamci.c struct mmc_host *mmc = host->mmc; host 88 drivers/mmc/host/pxamci.c mmc->ocr_avail = host->pdata ? host 89 drivers/mmc/host/pxamci.c host->pdata->ocr_mask : host 96 drivers/mmc/host/pxamci.c static inline int pxamci_set_power(struct pxamci_host *host, host 100 drivers/mmc/host/pxamci.c struct mmc_host *mmc = host->mmc; host 106 drivers/mmc/host/pxamci.c if (host->power) { host 107 drivers/mmc/host/pxamci.c bool on = !!((1 << vdd) & host->pdata->ocr_mask); host 108 drivers/mmc/host/pxamci.c gpiod_set_value(host->power, on); host 111 drivers/mmc/host/pxamci.c if (host->pdata && host->pdata->setpower) host 112 drivers/mmc/host/pxamci.c return host->pdata->setpower(mmc_dev(host->mmc), vdd); host 117 drivers/mmc/host/pxamci.c static void pxamci_stop_clock(struct pxamci_host *host) host 119 drivers/mmc/host/pxamci.c if (readl(host->base + MMC_STAT) & STAT_CLK_EN) { host 123 drivers/mmc/host/pxamci.c writel(STOP_CLOCK, host->base + MMC_STRPCL); host 126 drivers/mmc/host/pxamci.c v = readl(host->base + MMC_STAT); host 133 drivers/mmc/host/pxamci.c dev_err(mmc_dev(host->mmc), "unable to stop clock\n"); host 137 drivers/mmc/host/pxamci.c static void pxamci_enable_irq(struct pxamci_host *host, unsigned int mask) host 141 drivers/mmc/host/pxamci.c spin_lock_irqsave(&host->lock, flags); host 142 drivers/mmc/host/pxamci.c host->imask &= ~mask; host 143 drivers/mmc/host/pxamci.c writel(host->imask, host->base + MMC_I_MASK); host 144 drivers/mmc/host/pxamci.c spin_unlock_irqrestore(&host->lock, flags); host 147 drivers/mmc/host/pxamci.c static void pxamci_disable_irq(struct pxamci_host *host, unsigned int mask) host 151 drivers/mmc/host/pxamci.c spin_lock_irqsave(&host->lock, flags); host 152 drivers/mmc/host/pxamci.c host->imask |= mask; host 153 drivers/mmc/host/pxamci.c writel(host->imask, host->base + MMC_I_MASK); host 154 drivers/mmc/host/pxamci.c spin_unlock_irqrestore(&host->lock, flags); host 159 drivers/mmc/host/pxamci.c static void pxamci_setup_data(struct pxamci_host *host, struct mmc_data *data) host 170 drivers/mmc/host/pxamci.c host->data = data; host 172 drivers/mmc/host/pxamci.c writel(nob, host->base + MMC_NOB); host 173 drivers/mmc/host/pxamci.c writel(data->blksz, host->base + MMC_BLKLEN); host 175 drivers/mmc/host/pxamci.c clks = (unsigned long long)data->timeout_ns * host->clkrate; host 177 drivers/mmc/host/pxamci.c timeout = (unsigned int)clks + (data->timeout_clks << host->clkrt); host 178 drivers/mmc/host/pxamci.c writel((timeout + 255) / 256, host->base + MMC_RDTO); host 183 drivers/mmc/host/pxamci.c config.src_addr = host->res->start + MMC_RXFIFO; host 184 drivers/mmc/host/pxamci.c config.dst_addr = host->res->start + MMC_TXFIFO; host 189 drivers/mmc/host/pxamci.c host->dma_dir = DMA_FROM_DEVICE; host 191 drivers/mmc/host/pxamci.c chan = host->dma_chan_rx; host 193 drivers/mmc/host/pxamci.c host->dma_dir = DMA_TO_DEVICE; host 195 drivers/mmc/host/pxamci.c chan = host->dma_chan_tx; host 202 drivers/mmc/host/pxamci.c dev_err(mmc_dev(host->mmc), "dma slave config failed\n"); host 206 drivers/mmc/host/pxamci.c host->dma_len = dma_map_sg(chan->device->dev, data->sg, data->sg_len, host 207 drivers/mmc/host/pxamci.c host->dma_dir); host 209 drivers/mmc/host/pxamci.c tx = dmaengine_prep_slave_sg(chan, data->sg, host->dma_len, direction, host 212 drivers/mmc/host/pxamci.c dev_err(mmc_dev(host->mmc), "prep_slave_sg() failed\n"); host 218 drivers/mmc/host/pxamci.c tx->callback_param = host; host 221 drivers/mmc/host/pxamci.c host->dma_cookie = dmaengine_submit(tx); host 233 drivers/mmc/host/pxamci.c static void pxamci_start_cmd(struct pxamci_host *host, struct mmc_command *cmd, unsigned int cmdat) host 235 drivers/mmc/host/pxamci.c WARN_ON(host->cmd != NULL); host 236 drivers/mmc/host/pxamci.c host->cmd = cmd; host 256 drivers/mmc/host/pxamci.c writel(cmd->opcode, host->base + MMC_CMD); host 257 drivers/mmc/host/pxamci.c writel(cmd->arg >> 16, host->base + MMC_ARGH); host 258 drivers/mmc/host/pxamci.c writel(cmd->arg & 0xffff, host->base + MMC_ARGL); host 259 drivers/mmc/host/pxamci.c writel(cmdat, host->base + MMC_CMDAT); host 260 drivers/mmc/host/pxamci.c writel(host->clkrt, host->base + MMC_CLKRT); host 262 drivers/mmc/host/pxamci.c writel(START_CLOCK, host->base + MMC_STRPCL); host 264 drivers/mmc/host/pxamci.c pxamci_enable_irq(host, END_CMD_RES); host 267 drivers/mmc/host/pxamci.c static void pxamci_finish_request(struct pxamci_host *host, struct mmc_request *mrq) host 269 drivers/mmc/host/pxamci.c host->mrq = NULL; host 270 drivers/mmc/host/pxamci.c host->cmd = NULL; host 271 drivers/mmc/host/pxamci.c host->data = NULL; host 272 drivers/mmc/host/pxamci.c mmc_request_done(host->mmc, mrq); host 275 drivers/mmc/host/pxamci.c static int pxamci_cmd_done(struct pxamci_host *host, unsigned int stat) host 277 drivers/mmc/host/pxamci.c struct mmc_command *cmd = host->cmd; host 284 drivers/mmc/host/pxamci.c host->cmd = NULL; host 290 drivers/mmc/host/pxamci.c v = readl(host->base + MMC_RES) & 0xffff; host 292 drivers/mmc/host/pxamci.c u32 w1 = readl(host->base + MMC_RES) & 0xffff; host 293 drivers/mmc/host/pxamci.c u32 w2 = readl(host->base + MMC_RES) & 0xffff; host 314 drivers/mmc/host/pxamci.c pxamci_disable_irq(host, END_CMD_RES); host 315 drivers/mmc/host/pxamci.c if (host->data && !cmd->error) { host 316 drivers/mmc/host/pxamci.c pxamci_enable_irq(host, DATA_TRAN_DONE); host 321 drivers/mmc/host/pxamci.c if (cpu_is_pxa27x() && host->data->flags & MMC_DATA_WRITE) host 322 drivers/mmc/host/pxamci.c dma_async_issue_pending(host->dma_chan_tx); host 324 drivers/mmc/host/pxamci.c pxamci_finish_request(host, host->mrq); host 330 drivers/mmc/host/pxamci.c static int pxamci_data_done(struct pxamci_host *host, unsigned int stat) host 332 drivers/mmc/host/pxamci.c struct mmc_data *data = host->data; host 339 drivers/mmc/host/pxamci.c chan = host->dma_chan_rx; host 341 drivers/mmc/host/pxamci.c chan = host->dma_chan_tx; host 343 drivers/mmc/host/pxamci.c data->sg, data->sg_len, host->dma_dir); host 361 drivers/mmc/host/pxamci.c pxamci_disable_irq(host, DATA_TRAN_DONE); host 363 drivers/mmc/host/pxamci.c host->data = NULL; host 364 drivers/mmc/host/pxamci.c if (host->mrq->stop) { host 365 drivers/mmc/host/pxamci.c pxamci_stop_clock(host); host 366 drivers/mmc/host/pxamci.c pxamci_start_cmd(host, host->mrq->stop, host->cmdat); host 368 drivers/mmc/host/pxamci.c pxamci_finish_request(host, host->mrq); host 376 drivers/mmc/host/pxamci.c struct pxamci_host *host = devid; host 380 drivers/mmc/host/pxamci.c ireg = readl(host->base + MMC_I_REG) & ~readl(host->base + MMC_I_MASK); host 383 drivers/mmc/host/pxamci.c unsigned stat = readl(host->base + MMC_STAT); host 388 drivers/mmc/host/pxamci.c handled |= pxamci_cmd_done(host, stat); host 390 drivers/mmc/host/pxamci.c handled |= pxamci_data_done(host, stat); host 392 drivers/mmc/host/pxamci.c mmc_signal_sdio_irq(host->mmc); host 402 drivers/mmc/host/pxamci.c struct pxamci_host *host = mmc_priv(mmc); host 405 drivers/mmc/host/pxamci.c WARN_ON(host->mrq != NULL); host 407 drivers/mmc/host/pxamci.c host->mrq = mrq; host 409 drivers/mmc/host/pxamci.c pxamci_stop_clock(host); host 411 drivers/mmc/host/pxamci.c cmdat = host->cmdat; host 412 drivers/mmc/host/pxamci.c host->cmdat &= ~CMDAT_INIT; host 415 drivers/mmc/host/pxamci.c pxamci_setup_data(host, mrq->data); host 423 drivers/mmc/host/pxamci.c pxamci_start_cmd(host, mrq->cmd, cmdat); host 428 drivers/mmc/host/pxamci.c struct pxamci_host *host = mmc_priv(mmc); host 430 drivers/mmc/host/pxamci.c if (host->use_ro_gpio) host 432 drivers/mmc/host/pxamci.c if (host->pdata && host->pdata->get_ro) host 433 drivers/mmc/host/pxamci.c return !!host->pdata->get_ro(mmc_dev(mmc)); host 443 drivers/mmc/host/pxamci.c struct pxamci_host *host = mmc_priv(mmc); host 446 drivers/mmc/host/pxamci.c unsigned long rate = host->clkrate; host 449 drivers/mmc/host/pxamci.c if (host->clkrt == CLKRT_OFF) host 450 drivers/mmc/host/pxamci.c clk_prepare_enable(host->clk); host 454 drivers/mmc/host/pxamci.c host->clkrt = 7; host 467 drivers/mmc/host/pxamci.c host->clkrt = fls(clk) - 1; host 474 drivers/mmc/host/pxamci.c pxamci_stop_clock(host); host 475 drivers/mmc/host/pxamci.c if (host->clkrt != CLKRT_OFF) { host 476 drivers/mmc/host/pxamci.c host->clkrt = CLKRT_OFF; host 477 drivers/mmc/host/pxamci.c clk_disable_unprepare(host->clk); host 481 drivers/mmc/host/pxamci.c if (host->power_mode != ios->power_mode) { host 484 drivers/mmc/host/pxamci.c host->power_mode = ios->power_mode; host 486 drivers/mmc/host/pxamci.c ret = pxamci_set_power(host, ios->power_mode, ios->vdd); host 499 drivers/mmc/host/pxamci.c host->cmdat |= CMDAT_INIT; host 503 drivers/mmc/host/pxamci.c host->cmdat |= CMDAT_SD_4DAT; host 505 drivers/mmc/host/pxamci.c host->cmdat &= ~CMDAT_SD_4DAT; host 508 drivers/mmc/host/pxamci.c host->clkrt, host->cmdat); host 511 drivers/mmc/host/pxamci.c static void pxamci_enable_sdio_irq(struct mmc_host *host, int enable) host 513 drivers/mmc/host/pxamci.c struct pxamci_host *pxa_host = mmc_priv(host); host 531 drivers/mmc/host/pxamci.c struct pxamci_host *host = param; host 537 drivers/mmc/host/pxamci.c spin_lock_irqsave(&host->lock, flags); host 539 drivers/mmc/host/pxamci.c if (!host->data) host 542 drivers/mmc/host/pxamci.c if (host->data->flags & MMC_DATA_READ) host 543 drivers/mmc/host/pxamci.c chan = host->dma_chan_rx; host 545 drivers/mmc/host/pxamci.c chan = host->dma_chan_tx; host 547 drivers/mmc/host/pxamci.c status = dmaengine_tx_status(chan, host->dma_cookie, &state); host 550 drivers/mmc/host/pxamci.c writel(BUF_PART_FULL, host->base + MMC_PRTBUF); host 552 drivers/mmc/host/pxamci.c pr_err("%s: DMA error on %s channel\n", mmc_hostname(host->mmc), host 553 drivers/mmc/host/pxamci.c host->data->flags & MMC_DATA_READ ? "rx" : "tx"); host 554 drivers/mmc/host/pxamci.c host->data->error = -EIO; host 555 drivers/mmc/host/pxamci.c pxamci_data_done(host, 0); host 559 drivers/mmc/host/pxamci.c spin_unlock_irqrestore(&host->lock, flags); host 564 drivers/mmc/host/pxamci.c struct pxamci_host *host = mmc_priv(devid); host 566 drivers/mmc/host/pxamci.c mmc_detect_change(devid, msecs_to_jiffies(host->detect_delay_ms)); host 582 drivers/mmc/host/pxamci.c struct pxamci_host *host = mmc_priv(mmc); host 591 drivers/mmc/host/pxamci.c host->detect_delay_ms = tmp; host 610 drivers/mmc/host/pxamci.c struct pxamci_host *host = NULL; host 653 drivers/mmc/host/pxamci.c host = mmc_priv(mmc); host 654 drivers/mmc/host/pxamci.c host->mmc = mmc; host 655 drivers/mmc/host/pxamci.c host->pdata = pdev->dev.platform_data; host 656 drivers/mmc/host/pxamci.c host->clkrt = CLKRT_OFF; host 658 drivers/mmc/host/pxamci.c host->clk = devm_clk_get(dev, NULL); host 659 drivers/mmc/host/pxamci.c if (IS_ERR(host->clk)) { host 660 drivers/mmc/host/pxamci.c ret = PTR_ERR(host->clk); host 661 drivers/mmc/host/pxamci.c host->clk = NULL; host 665 drivers/mmc/host/pxamci.c host->clkrate = clk_get_rate(host->clk); host 670 drivers/mmc/host/pxamci.c mmc->f_min = (host->clkrate + 63) / 64; host 671 drivers/mmc/host/pxamci.c mmc->f_max = (mmc_has_26MHz()) ? 26000000 : host->clkrate; host 673 drivers/mmc/host/pxamci.c ret = pxamci_init_ocr(host); host 678 drivers/mmc/host/pxamci.c host->cmdat = 0; host 681 drivers/mmc/host/pxamci.c host->cmdat |= CMDAT_SDIO_INT_EN; host 687 drivers/mmc/host/pxamci.c spin_lock_init(&host->lock); host 688 drivers/mmc/host/pxamci.c host->res = r; host 689 drivers/mmc/host/pxamci.c host->imask = MMC_I_MASK_ALL; host 691 drivers/mmc/host/pxamci.c host->base = devm_ioremap_resource(dev, r); host 692 drivers/mmc/host/pxamci.c if (IS_ERR(host->base)) { host 693 drivers/mmc/host/pxamci.c ret = PTR_ERR(host->base); host 701 drivers/mmc/host/pxamci.c pxamci_stop_clock(host); host 702 drivers/mmc/host/pxamci.c writel(0, host->base + MMC_SPI); host 703 drivers/mmc/host/pxamci.c writel(64, host->base + MMC_RESTO); host 704 drivers/mmc/host/pxamci.c writel(host->imask, host->base + MMC_I_MASK); host 707 drivers/mmc/host/pxamci.c DRIVER_NAME, host); host 713 drivers/mmc/host/pxamci.c host->dma_chan_rx = dma_request_slave_channel(dev, "rx"); host 714 drivers/mmc/host/pxamci.c if (host->dma_chan_rx == NULL) { host 720 drivers/mmc/host/pxamci.c host->dma_chan_tx = dma_request_slave_channel(dev, "tx"); host 721 drivers/mmc/host/pxamci.c if (host->dma_chan_tx == NULL) { host 727 drivers/mmc/host/pxamci.c if (host->pdata) { host 728 drivers/mmc/host/pxamci.c host->detect_delay_ms = host->pdata->detect_delay_ms; host 730 drivers/mmc/host/pxamci.c host->power = devm_gpiod_get_optional(dev, "power", GPIOD_OUT_LOW); host 731 drivers/mmc/host/pxamci.c if (IS_ERR(host->power)) { host 743 drivers/mmc/host/pxamci.c if (!host->pdata->gpio_card_ro_invert) host 752 drivers/mmc/host/pxamci.c host->use_ro_gpio = true; host 754 drivers/mmc/host/pxamci.c if (host->pdata->init) host 755 drivers/mmc/host/pxamci.c host->pdata->init(dev, pxamci_detect_irq, mmc); host 757 drivers/mmc/host/pxamci.c if (host->power && host->pdata->setpower) host 759 drivers/mmc/host/pxamci.c if (host->use_ro_gpio && host->pdata->get_ro) host 768 drivers/mmc/host/pxamci.c if (host) { host 769 drivers/mmc/host/pxamci.c if (host->dma_chan_rx) host 770 drivers/mmc/host/pxamci.c dma_release_channel(host->dma_chan_rx); host 771 drivers/mmc/host/pxamci.c if (host->dma_chan_tx) host 772 drivers/mmc/host/pxamci.c dma_release_channel(host->dma_chan_tx); host 784 drivers/mmc/host/pxamci.c struct pxamci_host *host = mmc_priv(mmc); host 788 drivers/mmc/host/pxamci.c if (host->pdata && host->pdata->exit) host 789 drivers/mmc/host/pxamci.c host->pdata->exit(&pdev->dev, mmc); host 791 drivers/mmc/host/pxamci.c pxamci_stop_clock(host); host 794 drivers/mmc/host/pxamci.c host->base + MMC_I_MASK); host 796 drivers/mmc/host/pxamci.c dmaengine_terminate_all(host->dma_chan_rx); host 797 drivers/mmc/host/pxamci.c dmaengine_terminate_all(host->dma_chan_tx); host 798 drivers/mmc/host/pxamci.c dma_release_channel(host->dma_chan_rx); host 799 drivers/mmc/host/pxamci.c dma_release_channel(host->dma_chan_tx); host 39 drivers/mmc/host/renesas_sdhi.h void (*enable)(struct tmio_mmc_host *host, bool enable); host 56 drivers/mmc/host/renesas_sdhi.h #define host_to_priv(host) \ host 57 drivers/mmc/host/renesas_sdhi.h container_of((host)->pdata, struct renesas_sdhi, mmc_data) host 54 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_sdbuf_width(struct tmio_mmc_host *host, int width) host 62 drivers/mmc/host/renesas_sdhi_core.c switch (sd_ctrl_read16(host, CTL_VERSION)) { host 83 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, HOST_MODE, val); host 86 drivers/mmc/host/renesas_sdhi_core.c static int renesas_sdhi_clk_enable(struct tmio_mmc_host *host) host 88 drivers/mmc/host/renesas_sdhi_core.c struct mmc_host *mmc = host->mmc; host 89 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 117 drivers/mmc/host/renesas_sdhi_core.c renesas_sdhi_sdbuf_width(host, 16); host 122 drivers/mmc/host/renesas_sdhi_core.c static unsigned int renesas_sdhi_clk_update(struct tmio_mmc_host *host, host 125 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 130 drivers/mmc/host/renesas_sdhi_core.c if (!(host->pdata->flags & TMIO_MMC_MIN_RCAR2)) host 161 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_set_clock(struct tmio_mmc_host *host, host 166 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & host 167 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 170 drivers/mmc/host/renesas_sdhi_core.c host->mmc->actual_clock = 0; host 174 drivers/mmc/host/renesas_sdhi_core.c host->mmc->actual_clock = renesas_sdhi_clk_update(host, new_clock); host 175 drivers/mmc/host/renesas_sdhi_core.c clock = host->mmc->actual_clock / 512; host 181 drivers/mmc/host/renesas_sdhi_core.c if ((host->pdata->flags & TMIO_MMC_CLK_ACTUAL) && ((clk >> 22) & 0x1)) { host 182 drivers/mmc/host/renesas_sdhi_core.c if (!(host->mmc->ios.timing == MMC_TIMING_MMC_HS400)) host 188 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & CLK_CTL_DIV_MASK); host 189 drivers/mmc/host/renesas_sdhi_core.c if (!(host->pdata->flags & TMIO_MMC_MIN_RCAR2)) host 192 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | host 193 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 197 drivers/mmc/host/renesas_sdhi_core.c if (!(host->pdata->flags & TMIO_MMC_MIN_RCAR2)) host 201 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_clk_disable(struct tmio_mmc_host *host) host 203 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 211 drivers/mmc/host/renesas_sdhi_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 213 drivers/mmc/host/renesas_sdhi_core.c return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & host 220 drivers/mmc/host/renesas_sdhi_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 221 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 244 drivers/mmc/host/renesas_sdhi_core.c ret = mmc_regulator_set_vqmmc(host->mmc, ios); host 275 drivers/mmc/host/renesas_sdhi_core.c static inline u32 sd_scc_read32(struct tmio_mmc_host *host, host 278 drivers/mmc/host/renesas_sdhi_core.c return readl(priv->scc_ctl + (addr << host->bus_shift)); host 281 drivers/mmc/host/renesas_sdhi_core.c static inline void sd_scc_write32(struct tmio_mmc_host *host, host 285 drivers/mmc/host/renesas_sdhi_core.c writel(val, priv->scc_ctl + (addr << host->bus_shift)); host 288 drivers/mmc/host/renesas_sdhi_core.c static unsigned int renesas_sdhi_init_tuning(struct tmio_mmc_host *host) host 292 drivers/mmc/host/renesas_sdhi_core.c priv = host_to_priv(host); host 295 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write32_as_16_and_16(host, CTL_STATUS, 0x0); host 297 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & host 298 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 301 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DTCNTL, host 305 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL, host 307 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL)); host 309 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, host 311 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); host 313 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DT2FF, priv->scc_tappos); host 315 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | host 316 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 319 drivers/mmc/host/renesas_sdhi_core.c return (sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_DTCNTL) >> host 324 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_prepare_tuning(struct tmio_mmc_host *host, host 327 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 330 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TAPSET, tap); host 333 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_hs400_complete(struct tmio_mmc_host *host) host 335 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 337 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & host 338 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 341 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SDIF_MODE, 0x0001 | host 342 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SDIF_MODE)); host 344 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DT2FF, host 347 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TMPPORT2, host 350 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_TMPPORT2)); host 353 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DTCNTL, host 358 drivers/mmc/host/renesas_sdhi_core.c if (host->pdata->flags & TMIO_MMC_HAVE_4TAP_HS400) host 359 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TAPSET, host 360 drivers/mmc/host/renesas_sdhi_core.c host->tap_set / 2); host 362 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL, host 364 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL)); host 366 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | host 367 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 370 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_reset_scc(struct tmio_mmc_host *host, host 373 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & host 374 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 376 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_CKSEL, host 378 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, host 382 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_disable_scc(struct tmio_mmc_host *host) host 384 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 386 drivers/mmc/host/renesas_sdhi_core.c renesas_sdhi_reset_scc(host, priv); host 388 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DTCNTL, host 390 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, host 393 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | host 394 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 397 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_reset_hs400_mode(struct tmio_mmc_host *host, host 400 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & host 401 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 404 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SDIF_MODE, ~0x0001 & host 405 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SDIF_MODE)); host 407 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DT2FF, priv->scc_tappos); host 409 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TMPPORT2, host 412 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_TMPPORT2)); host 414 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | host 415 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 418 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_prepare_hs400_tuning(struct tmio_mmc_host *host) host 420 drivers/mmc/host/renesas_sdhi_core.c renesas_sdhi_reset_hs400_mode(host, host_to_priv(host)); host 425 drivers/mmc/host/renesas_sdhi_core.c static int renesas_sdhi_select_tuning(struct tmio_mmc_host *host) host 427 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 435 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSREQ, 0); host 442 drivers/mmc/host/renesas_sdhi_core.c for (i = 0; i < host->tap_num * 2; i++) { host 443 drivers/mmc/host/renesas_sdhi_core.c int offset = host->tap_num * (i < host->tap_num ? 1 : -1); host 445 drivers/mmc/host/renesas_sdhi_core.c if (!test_bit(i, host->taps)) host 446 drivers/mmc/host/renesas_sdhi_core.c clear_bit(i + offset, host->taps); host 458 drivers/mmc/host/renesas_sdhi_core.c for (i = 0; i < host->tap_num * 2; i++) { host 459 drivers/mmc/host/renesas_sdhi_core.c if (test_bit(i, host->taps)) { host 478 drivers/mmc/host/renesas_sdhi_core.c host->tap_set = (tap_start + tap_end) / 2 % host->tap_num; host 483 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_TAPSET, host->tap_set); host 486 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, host 488 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); host 493 drivers/mmc/host/renesas_sdhi_core.c static bool renesas_sdhi_check_scc_error(struct tmio_mmc_host *host) host 495 drivers/mmc/host/renesas_sdhi_core.c struct renesas_sdhi *priv = host_to_priv(host); host 496 drivers/mmc/host/renesas_sdhi_core.c bool use_4tap = host->pdata->flags & TMIO_MMC_HAVE_4TAP_HS400; host 502 drivers/mmc/host/renesas_sdhi_core.c if (!(host->mmc->ios.timing == MMC_TIMING_UHS_SDR104) && host 503 drivers/mmc/host/renesas_sdhi_core.c !(host->mmc->ios.timing == MMC_TIMING_MMC_HS200) && host 504 drivers/mmc/host/renesas_sdhi_core.c !(host->mmc->ios.timing == MMC_TIMING_MMC_HS400 && !use_4tap)) host 507 drivers/mmc/host/renesas_sdhi_core.c if (mmc_doing_retune(host->mmc)) host 511 drivers/mmc/host/renesas_sdhi_core.c if (sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL) & host 513 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSREQ) & host 516 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSREQ, 0); host 523 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_hw_reset(struct tmio_mmc_host *host) host 527 drivers/mmc/host/renesas_sdhi_core.c priv = host_to_priv(host); host 529 drivers/mmc/host/renesas_sdhi_core.c renesas_sdhi_reset_scc(host, priv); host 530 drivers/mmc/host/renesas_sdhi_core.c renesas_sdhi_reset_hs400_mode(host, priv); host 532 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | host 533 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 535 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, host 537 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); host 539 drivers/mmc/host/renesas_sdhi_core.c sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, host 541 drivers/mmc/host/renesas_sdhi_core.c sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); host 543 drivers/mmc/host/renesas_sdhi_core.c if (host->pdata->flags & TMIO_MMC_MIN_RCAR2) host 544 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write32_as_16_and_16(host, CTL_IRQ_MASK, host 548 drivers/mmc/host/renesas_sdhi_core.c static int renesas_sdhi_wait_idle(struct tmio_mmc_host *host, u32 bit) host 554 drivers/mmc/host/renesas_sdhi_core.c while (--timeout && (sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) host 559 drivers/mmc/host/renesas_sdhi_core.c dev_warn(&host->pdev->dev, "timeout waiting for SD bus idle\n"); host 566 drivers/mmc/host/renesas_sdhi_core.c static int renesas_sdhi_write16_hook(struct tmio_mmc_host *host, int addr) host 579 drivers/mmc/host/renesas_sdhi_core.c if (host->pdata->flags & TMIO_MMC_HAVE_CBSY) host 583 drivers/mmc/host/renesas_sdhi_core.c return renesas_sdhi_wait_idle(host, bit); host 607 drivers/mmc/host/renesas_sdhi_core.c static void renesas_sdhi_enable_dma(struct tmio_mmc_host *host, bool enable) host 610 drivers/mmc/host/renesas_sdhi_core.c int width = (host->bus_shift == 2) ? 64 : 32; host 612 drivers/mmc/host/renesas_sdhi_core.c sd_ctrl_write16(host, CTL_DMA_ENABLE, enable ? DMA_ENABLE_DMASDRW : 0); host 613 drivers/mmc/host/renesas_sdhi_core.c renesas_sdhi_sdbuf_width(host, enable ? width : 16); host 647 drivers/mmc/host/renesas_sdhi_core.c struct tmio_mmc_host *host; host 701 drivers/mmc/host/renesas_sdhi_core.c host = tmio_mmc_host_alloc(pdev, mmc_data); host 702 drivers/mmc/host/renesas_sdhi_core.c if (IS_ERR(host)) host 703 drivers/mmc/host/renesas_sdhi_core.c return PTR_ERR(host); host 714 drivers/mmc/host/renesas_sdhi_core.c host->bus_shift = of_data->bus_shift; host 717 drivers/mmc/host/renesas_sdhi_core.c host->write16_hook = renesas_sdhi_write16_hook; host 718 drivers/mmc/host/renesas_sdhi_core.c host->clk_enable = renesas_sdhi_clk_enable; host 719 drivers/mmc/host/renesas_sdhi_core.c host->clk_disable = renesas_sdhi_clk_disable; host 720 drivers/mmc/host/renesas_sdhi_core.c host->set_clock = renesas_sdhi_set_clock; host 721 drivers/mmc/host/renesas_sdhi_core.c host->multi_io_quirk = renesas_sdhi_multi_io_quirk; host 722 drivers/mmc/host/renesas_sdhi_core.c host->dma_ops = dma_ops; host 725 drivers/mmc/host/renesas_sdhi_core.c host->mmc->caps2 &= ~(MMC_CAP2_HS400 | MMC_CAP2_HS400_ES); host 731 drivers/mmc/host/renesas_sdhi_core.c if (mmc_can_gpio_ro(host->mmc)) host 737 drivers/mmc/host/renesas_sdhi_core.c host->ops.card_busy = renesas_sdhi_card_busy; host 738 drivers/mmc/host/renesas_sdhi_core.c host->ops.start_signal_voltage_switch = host 740 drivers/mmc/host/renesas_sdhi_core.c host->sdcard_irq_setbit_mask = TMIO_STAT_ALWAYS_SET_27; host 744 drivers/mmc/host/renesas_sdhi_core.c priv->scc_ctl = host->ctl + of_data->scc_offset; host 745 drivers/mmc/host/renesas_sdhi_core.c host->mmc->caps |= MMC_CAP_HW_RESET; host 746 drivers/mmc/host/renesas_sdhi_core.c host->hw_reset = renesas_sdhi_hw_reset; host 751 drivers/mmc/host/renesas_sdhi_core.c if (!host->bus_shift && resource_size(res) > 0x100) /* old way to determine the shift */ host 752 drivers/mmc/host/renesas_sdhi_core.c host->bus_shift = 1; host 780 drivers/mmc/host/renesas_sdhi_core.c ret = renesas_sdhi_clk_enable(host); host 784 drivers/mmc/host/renesas_sdhi_core.c ver = sd_ctrl_read16(host, CTL_VERSION); host 793 drivers/mmc/host/renesas_sdhi_core.c ret = tmio_mmc_host_probe(host); host 799 drivers/mmc/host/renesas_sdhi_core.c (host->mmc->caps & MMC_CAP_UHS_SDR104 || host 800 drivers/mmc/host/renesas_sdhi_core.c host->mmc->caps2 & (MMC_CAP2_HS200_1_8V_SDR | host 807 drivers/mmc/host/renesas_sdhi_core.c taps[i].clk_rate == host->mmc->f_max) { host 816 drivers/mmc/host/renesas_sdhi_core.c dev_warn(&host->pdev->dev, "Unknown clock rate for SDR104\n"); host 818 drivers/mmc/host/renesas_sdhi_core.c host->init_tuning = renesas_sdhi_init_tuning; host 819 drivers/mmc/host/renesas_sdhi_core.c host->prepare_tuning = renesas_sdhi_prepare_tuning; host 820 drivers/mmc/host/renesas_sdhi_core.c host->select_tuning = renesas_sdhi_select_tuning; host 821 drivers/mmc/host/renesas_sdhi_core.c host->check_scc_error = renesas_sdhi_check_scc_error; host 822 drivers/mmc/host/renesas_sdhi_core.c host->prepare_hs400_tuning = host 824 drivers/mmc/host/renesas_sdhi_core.c host->hs400_downgrade = renesas_sdhi_disable_scc; host 825 drivers/mmc/host/renesas_sdhi_core.c host->hs400_complete = renesas_sdhi_hs400_complete; host 848 drivers/mmc/host/renesas_sdhi_core.c dev_name(&pdev->dev), host); host 854 drivers/mmc/host/renesas_sdhi_core.c mmc_hostname(host->mmc), (unsigned long) host 856 drivers/mmc/host/renesas_sdhi_core.c host->mmc->f_max / 1000000); host 861 drivers/mmc/host/renesas_sdhi_core.c tmio_mmc_host_remove(host); host 863 drivers/mmc/host/renesas_sdhi_core.c renesas_sdhi_clk_disable(host); host 865 drivers/mmc/host/renesas_sdhi_core.c tmio_mmc_host_free(host); host 873 drivers/mmc/host/renesas_sdhi_core.c struct tmio_mmc_host *host = platform_get_drvdata(pdev); host 875 drivers/mmc/host/renesas_sdhi_core.c tmio_mmc_host_remove(host); host 876 drivers/mmc/host/renesas_sdhi_core.c renesas_sdhi_clk_disable(host); host 130 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(struct tmio_mmc_host *host, host 133 drivers/mmc/host/renesas_sdhi_internal_dmac.c writeq(val, host->ctl + addr); host 137 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_enable_dma(struct tmio_mmc_host *host, bool enable) host 139 drivers/mmc/host/renesas_sdhi_internal_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 141 drivers/mmc/host/renesas_sdhi_internal_dmac.c if (!host->chan_tx || !host->chan_rx) host 145 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(host, DM_CM_INFO1, host 149 drivers/mmc/host/renesas_sdhi_internal_dmac.c priv->dma_priv.enable(host, enable); host 153 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_abort_dma(struct tmio_mmc_host *host) { host 156 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_enable_dma(host, false); host 158 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(host, DM_CM_RST, host 160 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(host, DM_CM_RST, host 165 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_enable_dma(host, true); host 169 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dataend_dma(struct tmio_mmc_host *host) { host 170 drivers/mmc/host/renesas_sdhi_internal_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 176 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_start_dma(struct tmio_mmc_host *host, host 179 drivers/mmc/host/renesas_sdhi_internal_dmac.c struct scatterlist *sg = host->sg_ptr; host 185 drivers/mmc/host/renesas_sdhi_internal_dmac.c if (!dma_map_sg(&host->pdev->dev, sg, host->sg_len, host 202 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_enable_dma(host, true); host 205 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(host, DM_CM_DTRAN_MODE, host 207 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(host, DM_DTRAN_ADDR, host 210 drivers/mmc/host/renesas_sdhi_internal_dmac.c host->dma_on = true; host 215 drivers/mmc/host/renesas_sdhi_internal_dmac.c dma_unmap_sg(&host->pdev->dev, sg, host->sg_len, mmc_get_dma_dir(data)); host 218 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_enable_dma(host, false); host 223 drivers/mmc/host/renesas_sdhi_internal_dmac.c struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg; host 225 drivers/mmc/host/renesas_sdhi_internal_dmac.c tmio_mmc_enable_mmc_irqs(host, TMIO_STAT_DATAEND); host 228 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(host, DM_CM_DTRAN_CTRL, host 234 drivers/mmc/host/renesas_sdhi_internal_dmac.c struct tmio_mmc_host *host = (struct tmio_mmc_host *)arg; host 237 drivers/mmc/host/renesas_sdhi_internal_dmac.c spin_lock_irq(&host->lock); host 239 drivers/mmc/host/renesas_sdhi_internal_dmac.c if (!host->data) host 242 drivers/mmc/host/renesas_sdhi_internal_dmac.c if (host->data->flags & MMC_DATA_READ) host 247 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_enable_dma(host, false); host 248 drivers/mmc/host/renesas_sdhi_internal_dmac.c dma_unmap_sg(&host->pdev->dev, host->sg_ptr, host->sg_len, dir); host 253 drivers/mmc/host/renesas_sdhi_internal_dmac.c tmio_mmc_do_data_irq(host); host 255 drivers/mmc/host/renesas_sdhi_internal_dmac.c spin_unlock_irq(&host->lock); host 259 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_request_dma(struct tmio_mmc_host *host, host 262 drivers/mmc/host/renesas_sdhi_internal_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 265 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(host, DM_CM_INFO1_MASK, host 267 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_dm_write(host, DM_CM_INFO2_MASK, host 271 drivers/mmc/host/renesas_sdhi_internal_dmac.c host->chan_rx = host->chan_tx = (void *)0xdeadbeaf; host 275 drivers/mmc/host/renesas_sdhi_internal_dmac.c (unsigned long)host); host 276 drivers/mmc/host/renesas_sdhi_internal_dmac.c tasklet_init(&host->dma_issue, host 278 drivers/mmc/host/renesas_sdhi_internal_dmac.c (unsigned long)host); host 282 drivers/mmc/host/renesas_sdhi_internal_dmac.c renesas_sdhi_internal_dmac_release_dma(struct tmio_mmc_host *host) host 285 drivers/mmc/host/renesas_sdhi_internal_dmac.c host->chan_rx = host->chan_tx = NULL; host 92 drivers/mmc/host/renesas_sdhi_sys_dmac.c static void renesas_sdhi_sys_dmac_enable_dma(struct tmio_mmc_host *host, host 95 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 97 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (!host->chan_tx || !host->chan_rx) host 101 drivers/mmc/host/renesas_sdhi_sys_dmac.c priv->dma_priv.enable(host, enable); host 104 drivers/mmc/host/renesas_sdhi_sys_dmac.c static void renesas_sdhi_sys_dmac_abort_dma(struct tmio_mmc_host *host) host 106 drivers/mmc/host/renesas_sdhi_sys_dmac.c renesas_sdhi_sys_dmac_enable_dma(host, false); host 108 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->chan_rx) host 109 drivers/mmc/host/renesas_sdhi_sys_dmac.c dmaengine_terminate_all(host->chan_rx); host 110 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->chan_tx) host 111 drivers/mmc/host/renesas_sdhi_sys_dmac.c dmaengine_terminate_all(host->chan_tx); host 113 drivers/mmc/host/renesas_sdhi_sys_dmac.c renesas_sdhi_sys_dmac_enable_dma(host, true); host 116 drivers/mmc/host/renesas_sdhi_sys_dmac.c static void renesas_sdhi_sys_dmac_dataend_dma(struct tmio_mmc_host *host) host 118 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 125 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct tmio_mmc_host *host = arg; host 126 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 128 drivers/mmc/host/renesas_sdhi_sys_dmac.c spin_lock_irq(&host->lock); host 130 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (!host->data) host 133 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->data->flags & MMC_DATA_READ) host 134 drivers/mmc/host/renesas_sdhi_sys_dmac.c dma_unmap_sg(host->chan_rx->device->dev, host 135 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->sg_ptr, host->sg_len, host 138 drivers/mmc/host/renesas_sdhi_sys_dmac.c dma_unmap_sg(host->chan_tx->device->dev, host 139 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->sg_ptr, host->sg_len, host 142 drivers/mmc/host/renesas_sdhi_sys_dmac.c spin_unlock_irq(&host->lock); host 146 drivers/mmc/host/renesas_sdhi_sys_dmac.c spin_lock_irq(&host->lock); host 147 drivers/mmc/host/renesas_sdhi_sys_dmac.c tmio_mmc_do_data_irq(host); host 149 drivers/mmc/host/renesas_sdhi_sys_dmac.c spin_unlock_irq(&host->lock); host 152 drivers/mmc/host/renesas_sdhi_sys_dmac.c static void renesas_sdhi_sys_dmac_start_dma_rx(struct tmio_mmc_host *host) host 154 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 155 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct scatterlist *sg = host->sg_ptr, *sg_tmp; host 157 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct dma_chan *chan = host->chan_rx; host 161 drivers/mmc/host/renesas_sdhi_sys_dmac.c unsigned int align = (1 << host->pdata->alignment_shift) - 1; host 163 drivers/mmc/host/renesas_sdhi_sys_dmac.c for_each_sg(sg, sg_tmp, host->sg_len, i) { host 172 drivers/mmc/host/renesas_sdhi_sys_dmac.c if ((!aligned && (host->sg_len > 1 || sg->length > PAGE_SIZE || host 183 drivers/mmc/host/renesas_sdhi_sys_dmac.c sg_init_one(&host->bounce_sg, host->bounce_buf, sg->length); host 184 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->sg_ptr = &host->bounce_sg; host 185 drivers/mmc/host/renesas_sdhi_sys_dmac.c sg = host->sg_ptr; host 188 drivers/mmc/host/renesas_sdhi_sys_dmac.c ret = dma_map_sg(chan->device->dev, sg, host->sg_len, DMA_FROM_DEVICE); host 196 drivers/mmc/host/renesas_sdhi_sys_dmac.c desc->callback_param = host; host 203 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->dma_on = true; host 208 drivers/mmc/host/renesas_sdhi_sys_dmac.c renesas_sdhi_sys_dmac_enable_dma(host, false); host 211 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_rx = NULL; host 214 drivers/mmc/host/renesas_sdhi_sys_dmac.c chan = host->chan_tx; host 216 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_tx = NULL; host 219 drivers/mmc/host/renesas_sdhi_sys_dmac.c dev_warn(&host->pdev->dev, host 224 drivers/mmc/host/renesas_sdhi_sys_dmac.c static void renesas_sdhi_sys_dmac_start_dma_tx(struct tmio_mmc_host *host) host 226 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 227 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct scatterlist *sg = host->sg_ptr, *sg_tmp; host 229 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct dma_chan *chan = host->chan_tx; host 233 drivers/mmc/host/renesas_sdhi_sys_dmac.c unsigned int align = (1 << host->pdata->alignment_shift) - 1; host 235 drivers/mmc/host/renesas_sdhi_sys_dmac.c for_each_sg(sg, sg_tmp, host->sg_len, i) { host 244 drivers/mmc/host/renesas_sdhi_sys_dmac.c if ((!aligned && (host->sg_len > 1 || sg->length > PAGE_SIZE || host 258 drivers/mmc/host/renesas_sdhi_sys_dmac.c sg_init_one(&host->bounce_sg, host->bounce_buf, sg->length); host 259 drivers/mmc/host/renesas_sdhi_sys_dmac.c memcpy(host->bounce_buf, sg_vaddr, host->bounce_sg.length); host 261 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->sg_ptr = &host->bounce_sg; host 262 drivers/mmc/host/renesas_sdhi_sys_dmac.c sg = host->sg_ptr; host 265 drivers/mmc/host/renesas_sdhi_sys_dmac.c ret = dma_map_sg(chan->device->dev, sg, host->sg_len, DMA_TO_DEVICE); host 273 drivers/mmc/host/renesas_sdhi_sys_dmac.c desc->callback_param = host; host 280 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->dma_on = true; host 285 drivers/mmc/host/renesas_sdhi_sys_dmac.c renesas_sdhi_sys_dmac_enable_dma(host, false); host 288 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_tx = NULL; host 291 drivers/mmc/host/renesas_sdhi_sys_dmac.c chan = host->chan_rx; host 293 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_rx = NULL; host 296 drivers/mmc/host/renesas_sdhi_sys_dmac.c dev_warn(&host->pdev->dev, host 301 drivers/mmc/host/renesas_sdhi_sys_dmac.c static void renesas_sdhi_sys_dmac_start_dma(struct tmio_mmc_host *host, host 305 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->chan_rx) host 306 drivers/mmc/host/renesas_sdhi_sys_dmac.c renesas_sdhi_sys_dmac_start_dma_rx(host); host 308 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->chan_tx) host 309 drivers/mmc/host/renesas_sdhi_sys_dmac.c renesas_sdhi_sys_dmac_start_dma_tx(host); host 315 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct tmio_mmc_host *host = (struct tmio_mmc_host *)priv; host 318 drivers/mmc/host/renesas_sdhi_sys_dmac.c spin_lock_irq(&host->lock); host 320 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->data) { host 321 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->data->flags & MMC_DATA_READ) host 322 drivers/mmc/host/renesas_sdhi_sys_dmac.c chan = host->chan_rx; host 324 drivers/mmc/host/renesas_sdhi_sys_dmac.c chan = host->chan_tx; host 327 drivers/mmc/host/renesas_sdhi_sys_dmac.c spin_unlock_irq(&host->lock); host 329 drivers/mmc/host/renesas_sdhi_sys_dmac.c tmio_mmc_enable_mmc_irqs(host, TMIO_STAT_DATAEND); host 335 drivers/mmc/host/renesas_sdhi_sys_dmac.c static void renesas_sdhi_sys_dmac_request_dma(struct tmio_mmc_host *host, host 338 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct renesas_sdhi *priv = host_to_priv(host); host 341 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (!host->pdev->dev.of_node && host 345 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (!host->chan_tx && !host->chan_rx) { host 346 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct resource *res = platform_get_resource(host->pdev, host 358 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_tx = dma_request_slave_channel_compat(mask, host 360 drivers/mmc/host/renesas_sdhi_sys_dmac.c &host->pdev->dev, "tx"); host 361 drivers/mmc/host/renesas_sdhi_sys_dmac.c dev_dbg(&host->pdev->dev, "%s: TX: got channel %p\n", __func__, host 362 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_tx); host 364 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (!host->chan_tx) host 369 drivers/mmc/host/renesas_sdhi_sys_dmac.c (CTL_SD_DATA_PORT << host->bus_shift); host 374 drivers/mmc/host/renesas_sdhi_sys_dmac.c ret = dmaengine_slave_config(host->chan_tx, &cfg); host 378 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_rx = dma_request_slave_channel_compat(mask, host 380 drivers/mmc/host/renesas_sdhi_sys_dmac.c &host->pdev->dev, "rx"); host 381 drivers/mmc/host/renesas_sdhi_sys_dmac.c dev_dbg(&host->pdev->dev, "%s: RX: got channel %p\n", __func__, host 382 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_rx); host 384 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (!host->chan_rx) host 388 drivers/mmc/host/renesas_sdhi_sys_dmac.c cfg.src_addr = cfg.dst_addr + host->pdata->dma_rx_offset; host 393 drivers/mmc/host/renesas_sdhi_sys_dmac.c ret = dmaengine_slave_config(host->chan_rx, &cfg); host 397 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->bounce_buf = (u8 *)__get_free_page(GFP_KERNEL | GFP_DMA); host 398 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (!host->bounce_buf) host 402 drivers/mmc/host/renesas_sdhi_sys_dmac.c tasklet_init(&host->dma_issue, host 404 drivers/mmc/host/renesas_sdhi_sys_dmac.c (unsigned long)host); host 407 drivers/mmc/host/renesas_sdhi_sys_dmac.c renesas_sdhi_sys_dmac_enable_dma(host, true); host 413 drivers/mmc/host/renesas_sdhi_sys_dmac.c dma_release_channel(host->chan_rx); host 414 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_rx = NULL; host 417 drivers/mmc/host/renesas_sdhi_sys_dmac.c dma_release_channel(host->chan_tx); host 418 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_tx = NULL; host 421 drivers/mmc/host/renesas_sdhi_sys_dmac.c static void renesas_sdhi_sys_dmac_release_dma(struct tmio_mmc_host *host) host 423 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->chan_tx) { host 424 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct dma_chan *chan = host->chan_tx; host 426 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_tx = NULL; host 429 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->chan_rx) { host 430 drivers/mmc/host/renesas_sdhi_sys_dmac.c struct dma_chan *chan = host->chan_rx; host 432 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->chan_rx = NULL; host 435 drivers/mmc/host/renesas_sdhi_sys_dmac.c if (host->bounce_buf) { host 436 drivers/mmc/host/renesas_sdhi_sys_dmac.c free_pages((unsigned long)host->bounce_buf, 0); host 437 drivers/mmc/host/renesas_sdhi_sys_dmac.c host->bounce_buf = NULL; host 50 drivers/mmc/host/rtsx_pci_sdmmc.c static inline struct device *sdmmc_dev(struct realtek_pci_sdmmc *host) host 52 drivers/mmc/host/rtsx_pci_sdmmc.c return &(host->pdev->dev); host 55 drivers/mmc/host/rtsx_pci_sdmmc.c static inline void sd_clear_error(struct realtek_pci_sdmmc *host) host 57 drivers/mmc/host/rtsx_pci_sdmmc.c rtsx_pci_write_register(host->pcr, CARD_STOP, host 62 drivers/mmc/host/rtsx_pci_sdmmc.c static void dump_reg_range(struct realtek_pci_sdmmc *host, u16 start, u16 end) host 74 drivers/mmc/host/rtsx_pci_sdmmc.c rtsx_pci_read_register(host->pcr, start + i + j, host 76 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "0x%04X(%d): %8ph\n", host 81 drivers/mmc/host/rtsx_pci_sdmmc.c static void sd_print_debug_regs(struct realtek_pci_sdmmc *host) host 83 drivers/mmc/host/rtsx_pci_sdmmc.c dump_reg_range(host, 0xFDA0, 0xFDB3); host 84 drivers/mmc/host/rtsx_pci_sdmmc.c dump_reg_range(host, 0xFD52, 0xFD69); host 87 drivers/mmc/host/rtsx_pci_sdmmc.c #define sd_print_debug_regs(host) host 90 drivers/mmc/host/rtsx_pci_sdmmc.c static inline int sd_get_cd_int(struct realtek_pci_sdmmc *host) host 92 drivers/mmc/host/rtsx_pci_sdmmc.c return rtsx_pci_readl(host->pcr, RTSX_BIPR) & SD_EXIST; host 147 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_pre_dma_transfer(struct realtek_pci_sdmmc *host, host 150 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 155 drivers/mmc/host/rtsx_pci_sdmmc.c if (!pre && data->host_cookie && data->host_cookie != host->cookie) { host 156 drivers/mmc/host/rtsx_pci_sdmmc.c dev_err(sdmmc_dev(host), host 158 drivers/mmc/host/rtsx_pci_sdmmc.c data->host_cookie, host->cookie); host 162 drivers/mmc/host/rtsx_pci_sdmmc.c if (pre || data->host_cookie != host->cookie) { host 165 drivers/mmc/host/rtsx_pci_sdmmc.c count = host->cookie_sg_count; host 170 drivers/mmc/host/rtsx_pci_sdmmc.c host->cookie_sg_count = count; host 171 drivers/mmc/host/rtsx_pci_sdmmc.c if (++host->cookie < 0) host 172 drivers/mmc/host/rtsx_pci_sdmmc.c host->cookie = 1; host 173 drivers/mmc/host/rtsx_pci_sdmmc.c data->host_cookie = host->cookie; host 175 drivers/mmc/host/rtsx_pci_sdmmc.c host->sg_count = count; host 183 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = mmc_priv(mmc); host 187 drivers/mmc/host/rtsx_pci_sdmmc.c dev_err(sdmmc_dev(host), host 193 drivers/mmc/host/rtsx_pci_sdmmc.c sd_pre_dma_transfer(host, data, true); host 194 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "pre dma sg: %d\n", host->cookie_sg_count); host 200 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = mmc_priv(mmc); host 201 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 209 drivers/mmc/host/rtsx_pci_sdmmc.c static void sd_send_cmd_get_rsp(struct realtek_pci_sdmmc *host, host 212 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 223 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: SD/MMC CMD %d, arg = 0x%08x\n", host 269 drivers/mmc/host/rtsx_pci_sdmmc.c sd_print_debug_regs(host); host 270 drivers/mmc/host/rtsx_pci_sdmmc.c sd_clear_error(host); host 271 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), host 287 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "Invalid response bit\n"); host 295 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "CRC7 error\n"); host 310 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "cmd->resp[%d] = 0x%08x\n", host 315 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "cmd->resp[0] = 0x%08x\n", host 327 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_read_data(struct realtek_pci_sdmmc *host, struct mmc_command *cmd, host 330 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 334 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: SD/MMC CMD %d, arg = 0x%08x\n", host 362 drivers/mmc/host/rtsx_pci_sdmmc.c sd_print_debug_regs(host); host 363 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), host 371 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), host 380 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_write_data(struct realtek_pci_sdmmc *host, host 384 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 387 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: SD/MMC CMD %d, arg = 0x%08x\n", host 393 drivers/mmc/host/rtsx_pci_sdmmc.c sd_send_cmd_get_rsp(host, cmd); host 400 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), host 418 drivers/mmc/host/rtsx_pci_sdmmc.c sd_print_debug_regs(host); host 419 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), host 427 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_read_long_data(struct realtek_pci_sdmmc *host, host 430 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 431 drivers/mmc/host/rtsx_pci_sdmmc.c struct mmc_host *mmc = host->mmc; host 441 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: SD/MMC CMD %d, arg = 0x%08x\n", host 475 drivers/mmc/host/rtsx_pci_sdmmc.c err = rtsx_pci_dma_transfer(pcr, data->sg, host->sg_count, 1, 10000); host 477 drivers/mmc/host/rtsx_pci_sdmmc.c sd_print_debug_regs(host); host 478 drivers/mmc/host/rtsx_pci_sdmmc.c sd_clear_error(host); host 485 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_write_long_data(struct realtek_pci_sdmmc *host, host 488 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 489 drivers/mmc/host/rtsx_pci_sdmmc.c struct mmc_host *mmc = host->mmc; host 498 drivers/mmc/host/rtsx_pci_sdmmc.c sd_send_cmd_get_rsp(host, cmd); host 502 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: SD/MMC CMD %d, arg = 0x%08x\n", host 533 drivers/mmc/host/rtsx_pci_sdmmc.c err = rtsx_pci_dma_transfer(pcr, data->sg, host->sg_count, 0, 10000); host 535 drivers/mmc/host/rtsx_pci_sdmmc.c sd_clear_error(host); host 542 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_rw_multi(struct realtek_pci_sdmmc *host, struct mmc_request *mrq) host 546 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->sg_count < 0) { host 547 drivers/mmc/host/rtsx_pci_sdmmc.c data->error = host->sg_count; host 548 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: sg_count = %d is invalid\n", host 549 drivers/mmc/host/rtsx_pci_sdmmc.c __func__, host->sg_count); host 554 drivers/mmc/host/rtsx_pci_sdmmc.c return sd_read_long_data(host, mrq); host 556 drivers/mmc/host/rtsx_pci_sdmmc.c return sd_write_long_data(host, mrq); host 559 drivers/mmc/host/rtsx_pci_sdmmc.c static inline void sd_enable_initial_mode(struct realtek_pci_sdmmc *host) host 561 drivers/mmc/host/rtsx_pci_sdmmc.c rtsx_pci_write_register(host->pcr, SD_CFG1, host 565 drivers/mmc/host/rtsx_pci_sdmmc.c static inline void sd_disable_initial_mode(struct realtek_pci_sdmmc *host) host 567 drivers/mmc/host/rtsx_pci_sdmmc.c rtsx_pci_write_register(host->pcr, SD_CFG1, host 571 drivers/mmc/host/rtsx_pci_sdmmc.c static void sd_normal_rw(struct realtek_pci_sdmmc *host, host 585 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->initial_mode) host 586 drivers/mmc/host/rtsx_pci_sdmmc.c sd_disable_initial_mode(host); host 588 drivers/mmc/host/rtsx_pci_sdmmc.c cmd->error = sd_read_data(host, cmd, (u16)data->blksz, buf, host 591 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->initial_mode) host 592 drivers/mmc/host/rtsx_pci_sdmmc.c sd_enable_initial_mode(host); host 598 drivers/mmc/host/rtsx_pci_sdmmc.c cmd->error = sd_write_data(host, cmd, (u16)data->blksz, buf, host 605 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_change_phase(struct realtek_pci_sdmmc *host, host 608 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 610 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s(%s): sample_point = %d\n", host 649 drivers/mmc/host/rtsx_pci_sdmmc.c static u8 sd_search_final_phase(struct realtek_pci_sdmmc *host, u32 phase_map) host 656 drivers/mmc/host/rtsx_pci_sdmmc.c dev_err(sdmmc_dev(host), "phase error: [map:%x]\n", phase_map); host 670 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "phase: [map:%x] [maxlen:%d] [final:%d]\n", host 676 drivers/mmc/host/rtsx_pci_sdmmc.c static void sd_wait_data_idle(struct realtek_pci_sdmmc *host) host 682 drivers/mmc/host/rtsx_pci_sdmmc.c err = rtsx_pci_read_register(host->pcr, SD_DATA_STATE, &val); host 690 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_tuning_rx_cmd(struct realtek_pci_sdmmc *host, host 695 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 697 drivers/mmc/host/rtsx_pci_sdmmc.c sd_change_phase(host, sample_point, true); host 703 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_read_data(host, &cmd, 0x40, NULL, 0, 100); host 706 drivers/mmc/host/rtsx_pci_sdmmc.c sd_wait_data_idle(host); host 707 drivers/mmc/host/rtsx_pci_sdmmc.c sd_clear_error(host); host 717 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_tuning_phase(struct realtek_pci_sdmmc *host, host 724 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_tuning_rx_cmd(host, opcode, (u8)i); host 735 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_tuning_rx(struct realtek_pci_sdmmc *host, u8 opcode) host 742 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_tuning_phase(host, opcode, &(raw_phase_map[i])); host 752 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "RX raw_phase_map[%d] = 0x%08x\n", host 756 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "RX phase_map = 0x%08x\n", phase_map); host 759 drivers/mmc/host/rtsx_pci_sdmmc.c final_phase = sd_search_final_phase(host, phase_map); host 763 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_change_phase(host, final_phase, true); host 788 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = container_of(work, host 790 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 792 drivers/mmc/host/rtsx_pci_sdmmc.c struct mmc_host *mmc = host->mmc; host 793 drivers/mmc/host/rtsx_pci_sdmmc.c struct mmc_request *mrq = host->mrq; host 800 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->eject || !sd_get_cd_int(host)) { host 805 drivers/mmc/host/rtsx_pci_sdmmc.c err = rtsx_pci_card_exclusive_check(host->pcr, RTSX_SD_CARD); host 815 drivers/mmc/host/rtsx_pci_sdmmc.c rtsx_pci_switch_clock(pcr, host->clock, host->ssc_depth, host 816 drivers/mmc/host/rtsx_pci_sdmmc.c host->initial_mode, host->double_clk, host->vpclk); host 821 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_lock(&host->host_mutex); host 822 drivers/mmc/host/rtsx_pci_sdmmc.c host->mrq = mrq; host 823 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_unlock(&host->host_mutex); host 829 drivers/mmc/host/rtsx_pci_sdmmc.c sd_send_cmd_get_rsp(host, cmd); host 831 drivers/mmc/host/rtsx_pci_sdmmc.c cmd->error = sd_rw_multi(host, mrq); host 832 drivers/mmc/host/rtsx_pci_sdmmc.c if (!host->using_cookie) host 833 drivers/mmc/host/rtsx_pci_sdmmc.c sdmmc_post_req(host->mmc, host->mrq, 0); host 836 drivers/mmc/host/rtsx_pci_sdmmc.c sd_send_cmd_get_rsp(host, mrq->stop); host 838 drivers/mmc/host/rtsx_pci_sdmmc.c sd_normal_rw(host, mrq); host 852 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "CMD %d 0x%08x error(%d)\n", host 856 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_lock(&host->host_mutex); host 857 drivers/mmc/host/rtsx_pci_sdmmc.c host->mrq = NULL; host 858 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_unlock(&host->host_mutex); host 865 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = mmc_priv(mmc); host 868 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_lock(&host->host_mutex); host 869 drivers/mmc/host/rtsx_pci_sdmmc.c host->mrq = mrq; host 870 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_unlock(&host->host_mutex); host 873 drivers/mmc/host/rtsx_pci_sdmmc.c host->using_cookie = sd_pre_dma_transfer(host, data, false); host 875 drivers/mmc/host/rtsx_pci_sdmmc.c schedule_work(&host->work); host 878 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_set_bus_width(struct realtek_pci_sdmmc *host, host 889 drivers/mmc/host/rtsx_pci_sdmmc.c err = rtsx_pci_write_register(host->pcr, SD_CFG1, host 895 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_power_on(struct realtek_pci_sdmmc *host) host 897 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 900 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->power_state == SDMMC_POWER_ON) host 925 drivers/mmc/host/rtsx_pci_sdmmc.c host->power_state = SDMMC_POWER_ON; host 929 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_power_off(struct realtek_pci_sdmmc *host) host 931 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 934 drivers/mmc/host/rtsx_pci_sdmmc.c host->power_state = SDMMC_POWER_OFF; host 952 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_set_power_mode(struct realtek_pci_sdmmc *host, host 958 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_power_off(host); host 960 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_power_on(host); host 965 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_set_timing(struct realtek_pci_sdmmc *host, unsigned char timing) host 967 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1039 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = mmc_priv(mmc); host 1040 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1042 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->eject) host 1045 drivers/mmc/host/rtsx_pci_sdmmc.c if (rtsx_pci_card_exclusive_check(host->pcr, RTSX_SD_CARD)) host 1052 drivers/mmc/host/rtsx_pci_sdmmc.c sd_set_bus_width(host, ios->bus_width); host 1053 drivers/mmc/host/rtsx_pci_sdmmc.c sd_set_power_mode(host, ios->power_mode); host 1054 drivers/mmc/host/rtsx_pci_sdmmc.c sd_set_timing(host, ios->timing); host 1056 drivers/mmc/host/rtsx_pci_sdmmc.c host->vpclk = false; host 1057 drivers/mmc/host/rtsx_pci_sdmmc.c host->double_clk = true; host 1062 drivers/mmc/host/rtsx_pci_sdmmc.c host->ssc_depth = RTSX_SSC_DEPTH_2M; host 1063 drivers/mmc/host/rtsx_pci_sdmmc.c host->vpclk = true; host 1064 drivers/mmc/host/rtsx_pci_sdmmc.c host->double_clk = false; host 1069 drivers/mmc/host/rtsx_pci_sdmmc.c host->ssc_depth = RTSX_SSC_DEPTH_1M; host 1072 drivers/mmc/host/rtsx_pci_sdmmc.c host->ssc_depth = RTSX_SSC_DEPTH_500K; host 1076 drivers/mmc/host/rtsx_pci_sdmmc.c host->initial_mode = (ios->clock <= 1000000) ? true : false; host 1078 drivers/mmc/host/rtsx_pci_sdmmc.c host->clock = ios->clock; host 1079 drivers/mmc/host/rtsx_pci_sdmmc.c rtsx_pci_switch_clock(pcr, ios->clock, host->ssc_depth, host 1080 drivers/mmc/host/rtsx_pci_sdmmc.c host->initial_mode, host->double_clk, host->vpclk); host 1087 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = mmc_priv(mmc); host 1088 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1092 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->eject) host 1101 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: RTSX_BIPR = 0x%08x\n", __func__, val); host 1112 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = mmc_priv(mmc); host 1113 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1117 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->eject) host 1126 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: RTSX_BIPR = 0x%08x\n", __func__, val); host 1135 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_wait_voltage_stable_1(struct realtek_pci_sdmmc *host) host 1137 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1168 drivers/mmc/host/rtsx_pci_sdmmc.c static int sd_wait_voltage_stable_2(struct realtek_pci_sdmmc *host) host 1170 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1197 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), host 1210 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = mmc_priv(mmc); host 1211 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1215 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: signal_voltage = %d\n", host 1218 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->eject) host 1221 drivers/mmc/host/rtsx_pci_sdmmc.c err = rtsx_pci_card_exclusive_check(host->pcr, RTSX_SD_CARD); host 1235 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_wait_voltage_stable_1(host); host 1245 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_wait_voltage_stable_2(host); host 1262 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = mmc_priv(mmc); host 1263 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1266 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->eject) host 1269 drivers/mmc/host/rtsx_pci_sdmmc.c err = rtsx_pci_card_exclusive_check(host->pcr, RTSX_SD_CARD); host 1280 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_change_phase(host, SDR104_TX_PHASE(pcr), false); host 1284 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_change_phase(host, SDR50_TX_PHASE(pcr), false); host 1288 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_change_phase(host, DDR50_TX_PHASE(pcr), false); host 1301 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_tuning_rx(host, opcode); host 1303 drivers/mmc/host/rtsx_pci_sdmmc.c err = sd_change_phase(host, DDR50_RX_PHASE(pcr), true); host 1322 drivers/mmc/host/rtsx_pci_sdmmc.c static void init_extra_caps(struct realtek_pci_sdmmc *host) host 1324 drivers/mmc/host/rtsx_pci_sdmmc.c struct mmc_host *mmc = host->mmc; host 1325 drivers/mmc/host/rtsx_pci_sdmmc.c struct rtsx_pcr *pcr = host->pcr; host 1327 drivers/mmc/host/rtsx_pci_sdmmc.c dev_dbg(sdmmc_dev(host), "pcr->extra_caps = 0x%x\n", pcr->extra_caps); host 1341 drivers/mmc/host/rtsx_pci_sdmmc.c static void realtek_init_host(struct realtek_pci_sdmmc *host) host 1343 drivers/mmc/host/rtsx_pci_sdmmc.c struct mmc_host *mmc = host->mmc; host 1356 drivers/mmc/host/rtsx_pci_sdmmc.c init_extra_caps(host); host 1367 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = platform_get_drvdata(pdev); host 1369 drivers/mmc/host/rtsx_pci_sdmmc.c host->cookie = -1; host 1370 drivers/mmc/host/rtsx_pci_sdmmc.c mmc_detect_change(host->mmc, 0); host 1376 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host; host 1389 drivers/mmc/host/rtsx_pci_sdmmc.c mmc = mmc_alloc_host(sizeof(*host), &pdev->dev); host 1393 drivers/mmc/host/rtsx_pci_sdmmc.c host = mmc_priv(mmc); host 1394 drivers/mmc/host/rtsx_pci_sdmmc.c host->pcr = pcr; host 1395 drivers/mmc/host/rtsx_pci_sdmmc.c host->mmc = mmc; host 1396 drivers/mmc/host/rtsx_pci_sdmmc.c host->pdev = pdev; host 1397 drivers/mmc/host/rtsx_pci_sdmmc.c host->cookie = -1; host 1398 drivers/mmc/host/rtsx_pci_sdmmc.c host->power_state = SDMMC_POWER_OFF; host 1399 drivers/mmc/host/rtsx_pci_sdmmc.c INIT_WORK(&host->work, sd_request); host 1400 drivers/mmc/host/rtsx_pci_sdmmc.c platform_set_drvdata(pdev, host); host 1404 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_init(&host->host_mutex); host 1406 drivers/mmc/host/rtsx_pci_sdmmc.c realtek_init_host(host); host 1415 drivers/mmc/host/rtsx_pci_sdmmc.c struct realtek_pci_sdmmc *host = platform_get_drvdata(pdev); host 1419 drivers/mmc/host/rtsx_pci_sdmmc.c if (!host) host 1422 drivers/mmc/host/rtsx_pci_sdmmc.c pcr = host->pcr; host 1425 drivers/mmc/host/rtsx_pci_sdmmc.c mmc = host->mmc; host 1427 drivers/mmc/host/rtsx_pci_sdmmc.c cancel_work_sync(&host->work); host 1429 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_lock(&host->host_mutex); host 1430 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->mrq) { host 1437 drivers/mmc/host/rtsx_pci_sdmmc.c host->mrq->cmd->error = -ENOMEDIUM; host 1438 drivers/mmc/host/rtsx_pci_sdmmc.c if (host->mrq->stop) host 1439 drivers/mmc/host/rtsx_pci_sdmmc.c host->mrq->stop->error = -ENOMEDIUM; host 1440 drivers/mmc/host/rtsx_pci_sdmmc.c mmc_request_done(mmc, host->mrq); host 1442 drivers/mmc/host/rtsx_pci_sdmmc.c mutex_unlock(&host->host_mutex); host 1445 drivers/mmc/host/rtsx_pci_sdmmc.c host->eject = true; host 1447 drivers/mmc/host/rtsx_pci_sdmmc.c flush_work(&host->work); host 59 drivers/mmc/host/rtsx_usb_sdmmc.c static inline struct device *sdmmc_dev(struct rtsx_usb_sdmmc *host) host 61 drivers/mmc/host/rtsx_usb_sdmmc.c return &(host->pdev->dev); host 64 drivers/mmc/host/rtsx_usb_sdmmc.c static inline void sd_clear_error(struct rtsx_usb_sdmmc *host) host 66 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 76 drivers/mmc/host/rtsx_usb_sdmmc.c static void sd_print_debug_regs(struct rtsx_usb_sdmmc *host) host 78 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 82 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "SD_STAT1: 0x%x\n", val); host 84 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "SD_STAT2: 0x%x\n", val); host 86 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "SD_BUS_STAT: 0x%x\n", val); host 89 drivers/mmc/host/rtsx_usb_sdmmc.c #define sd_print_debug_regs(host) host 92 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_read_data(struct rtsx_usb_sdmmc *host, struct mmc_command *cmd, host 95 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 104 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: SD/MMC CMD%d\n", __func__ host 152 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 159 drivers/mmc/host/rtsx_usb_sdmmc.c sd_print_debug_regs(host); host 162 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 167 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 176 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "cmd->resp[0] = 0x%08x\n", host 184 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 199 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_write_data(struct rtsx_usb_sdmmc *host, struct mmc_command *cmd, host 202 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 212 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 223 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: SD/MMC CMD%d\n", __func__, host 263 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 270 drivers/mmc/host/rtsx_usb_sdmmc.c sd_print_debug_regs(host); host 271 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 278 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "cmd->resp[0] = 0x%08x\n", host 285 drivers/mmc/host/rtsx_usb_sdmmc.c static void sd_send_cmd_get_rsp(struct rtsx_usb_sdmmc *host, host 288 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 299 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: SD/MMC CMD %d, arg = 0x%08x\n", host 329 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "cmd->flag is not valid\n"); host 379 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 386 drivers/mmc/host/rtsx_usb_sdmmc.c sd_print_debug_regs(host); host 387 drivers/mmc/host/rtsx_usb_sdmmc.c sd_clear_error(host); host 390 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 395 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), host 413 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "Invalid response bit\n"); host 421 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "CRC7 error\n"); host 436 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "cmd->resp[%d] = 0x%08x\n", host 441 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "cmd->resp[0] = 0x%08x\n", host 449 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_rw_multi(struct rtsx_usb_sdmmc *host, struct mmc_request *mrq) host 451 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 461 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: read %zu bytes\n", host 467 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: write %zu bytes\n", host 524 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "rtsx_usb_transfer_data error %d\n" host 526 drivers/mmc/host/rtsx_usb_sdmmc.c sd_clear_error(host); host 533 drivers/mmc/host/rtsx_usb_sdmmc.c static inline void sd_enable_initial_mode(struct rtsx_usb_sdmmc *host) host 535 drivers/mmc/host/rtsx_usb_sdmmc.c rtsx_usb_write_register(host->ucr, SD_CFG1, host 539 drivers/mmc/host/rtsx_usb_sdmmc.c static inline void sd_disable_initial_mode(struct rtsx_usb_sdmmc *host) host 541 drivers/mmc/host/rtsx_usb_sdmmc.c rtsx_usb_write_register(host->ucr, SD_CFG1, host 545 drivers/mmc/host/rtsx_usb_sdmmc.c static void sd_normal_rw(struct rtsx_usb_sdmmc *host, host 559 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->initial_mode) host 560 drivers/mmc/host/rtsx_usb_sdmmc.c sd_disable_initial_mode(host); host 562 drivers/mmc/host/rtsx_usb_sdmmc.c cmd->error = sd_read_data(host, cmd, (u16)data->blksz, buf, host 565 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->initial_mode) host 566 drivers/mmc/host/rtsx_usb_sdmmc.c sd_enable_initial_mode(host); host 572 drivers/mmc/host/rtsx_usb_sdmmc.c cmd->error = sd_write_data(host, cmd, (u16)data->blksz, buf, host 579 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_change_phase(struct rtsx_usb_sdmmc *host, u8 sample_point, int tx) host 581 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 584 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: %s sample_point = %d\n", host 628 drivers/mmc/host/rtsx_usb_sdmmc.c static u8 sd_search_final_phase(struct rtsx_usb_sdmmc *host, u32 phase_map) host 635 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "Phase: [map:%x]\n", phase_map); host 649 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "Phase: [map:%x] [maxlen:%d] [final:%d]\n", host 655 drivers/mmc/host/rtsx_usb_sdmmc.c static void sd_wait_data_idle(struct rtsx_usb_sdmmc *host) host 661 drivers/mmc/host/rtsx_usb_sdmmc.c err = rtsx_usb_ep0_read_register(host->ucr, host 670 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_tuning_rx_cmd(struct rtsx_usb_sdmmc *host, host 676 drivers/mmc/host/rtsx_usb_sdmmc.c err = sd_change_phase(host, sample_point, 0); host 681 drivers/mmc/host/rtsx_usb_sdmmc.c err = sd_read_data(host, &cmd, 0x40, NULL, 0, 100); host 684 drivers/mmc/host/rtsx_usb_sdmmc.c sd_wait_data_idle(host); host 685 drivers/mmc/host/rtsx_usb_sdmmc.c sd_clear_error(host); host 692 drivers/mmc/host/rtsx_usb_sdmmc.c static void sd_tuning_phase(struct rtsx_usb_sdmmc *host, host 699 drivers/mmc/host/rtsx_usb_sdmmc.c err = sd_tuning_rx_cmd(host, opcode, (u8)i); host 708 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_tuning_rx(struct rtsx_usb_sdmmc *host, u8 opcode) host 715 drivers/mmc/host/rtsx_usb_sdmmc.c err = sd_change_phase(host, 0x01, 1); host 717 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "TX phase setting failed\n"); host 723 drivers/mmc/host/rtsx_usb_sdmmc.c sd_tuning_phase(host, opcode, &(raw_phase_map[i])); host 731 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "RX raw_phase_map[%d] = 0x%04x\n", host 735 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "RX phase_map = 0x%04x\n", phase_map); host 738 drivers/mmc/host/rtsx_usb_sdmmc.c final_phase = sd_search_final_phase(host, phase_map); host 742 drivers/mmc/host/rtsx_usb_sdmmc.c err = sd_change_phase(host, final_phase, 0); host 754 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = mmc_priv(mmc); host 755 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 759 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->host_removal) host 782 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = mmc_priv(mmc); host 783 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 787 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->host_removal) host 802 drivers/mmc/host/rtsx_usb_sdmmc.c host->card_exist = true; host 807 drivers/mmc/host/rtsx_usb_sdmmc.c host->card_exist = false; host 813 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = mmc_priv(mmc); host 814 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 819 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s\n", __func__); host 821 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->host_removal) { host 826 drivers/mmc/host/rtsx_usb_sdmmc.c if ((!host->card_exist)) { host 833 drivers/mmc/host/rtsx_usb_sdmmc.c mutex_lock(&host->host_mutex); host 834 drivers/mmc/host/rtsx_usb_sdmmc.c host->mrq = mrq; host 835 drivers/mmc/host/rtsx_usb_sdmmc.c mutex_unlock(&host->host_mutex); host 841 drivers/mmc/host/rtsx_usb_sdmmc.c sd_send_cmd_get_rsp(host, cmd); host 844 drivers/mmc/host/rtsx_usb_sdmmc.c sd_send_cmd_get_rsp(host, cmd); host 847 drivers/mmc/host/rtsx_usb_sdmmc.c sd_rw_multi(host, mrq); host 850 drivers/mmc/host/rtsx_usb_sdmmc.c sd_send_cmd_get_rsp(host, mrq->stop); host 856 drivers/mmc/host/rtsx_usb_sdmmc.c sd_normal_rw(host, mrq); host 875 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "cmd->error = %d\n", cmd->error); host 879 drivers/mmc/host/rtsx_usb_sdmmc.c mutex_lock(&host->host_mutex); host 880 drivers/mmc/host/rtsx_usb_sdmmc.c host->mrq = NULL; host 881 drivers/mmc/host/rtsx_usb_sdmmc.c mutex_unlock(&host->host_mutex); host 886 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_set_bus_width(struct rtsx_usb_sdmmc *host, host 897 drivers/mmc/host/rtsx_usb_sdmmc.c err = rtsx_usb_write_register(host->ucr, SD_CFG1, host 959 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_power_on(struct rtsx_usb_sdmmc *host) host 961 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 964 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s\n", __func__); host 998 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_power_off(struct rtsx_usb_sdmmc *host) host 1000 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 1003 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s\n", __func__); host 1022 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_set_power_mode(struct rtsx_usb_sdmmc *host, host 1030 drivers/mmc/host/rtsx_usb_sdmmc.c if (power_mode == host->power_mode) host 1034 drivers/mmc/host/rtsx_usb_sdmmc.c err = sd_power_off(host); host 1035 drivers/mmc/host/rtsx_usb_sdmmc.c pm_runtime_put_noidle(sdmmc_dev(host)); host 1037 drivers/mmc/host/rtsx_usb_sdmmc.c pm_runtime_get_noresume(sdmmc_dev(host)); host 1038 drivers/mmc/host/rtsx_usb_sdmmc.c err = sd_power_on(host); host 1042 drivers/mmc/host/rtsx_usb_sdmmc.c host->power_mode = power_mode; host 1047 drivers/mmc/host/rtsx_usb_sdmmc.c static int sd_set_timing(struct rtsx_usb_sdmmc *host, host 1050 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 1113 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = mmc_priv(mmc); host 1114 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 1116 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s\n", __func__); host 1119 drivers/mmc/host/rtsx_usb_sdmmc.c sd_set_power_mode(host, ios->power_mode); host 1120 drivers/mmc/host/rtsx_usb_sdmmc.c sd_set_bus_width(host, ios->bus_width); host 1121 drivers/mmc/host/rtsx_usb_sdmmc.c sd_set_timing(host, ios->timing, &host->ddr_mode); host 1123 drivers/mmc/host/rtsx_usb_sdmmc.c host->vpclk = false; host 1124 drivers/mmc/host/rtsx_usb_sdmmc.c host->double_clk = true; host 1129 drivers/mmc/host/rtsx_usb_sdmmc.c host->ssc_depth = SSC_DEPTH_2M; host 1130 drivers/mmc/host/rtsx_usb_sdmmc.c host->vpclk = true; host 1131 drivers/mmc/host/rtsx_usb_sdmmc.c host->double_clk = false; host 1135 drivers/mmc/host/rtsx_usb_sdmmc.c host->ssc_depth = SSC_DEPTH_1M; host 1138 drivers/mmc/host/rtsx_usb_sdmmc.c host->ssc_depth = SSC_DEPTH_512K; host 1142 drivers/mmc/host/rtsx_usb_sdmmc.c host->initial_mode = (ios->clock <= 1000000) ? true : false; host 1143 drivers/mmc/host/rtsx_usb_sdmmc.c host->clock = ios->clock; host 1145 drivers/mmc/host/rtsx_usb_sdmmc.c rtsx_usb_switch_clock(host->ucr, host->clock, host->ssc_depth, host 1146 drivers/mmc/host/rtsx_usb_sdmmc.c host->initial_mode, host->double_clk, host->vpclk); host 1149 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s end\n", __func__); host 1154 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = mmc_priv(mmc); host 1155 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 1158 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s: signal_voltage = %d\n", host 1161 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->host_removal) host 1203 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = mmc_priv(mmc); host 1204 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 1210 drivers/mmc/host/rtsx_usb_sdmmc.c dev_dbg(sdmmc_dev(host), "%s\n", __func__); host 1243 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = mmc_priv(mmc); host 1244 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 1247 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->host_removal) host 1252 drivers/mmc/host/rtsx_usb_sdmmc.c if (!host->ddr_mode) host 1253 drivers/mmc/host/rtsx_usb_sdmmc.c err = sd_tuning_rx(host, MMC_SEND_TUNING_BLOCK); host 1274 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = container_of(led, host 1277 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->host_removal) host 1280 drivers/mmc/host/rtsx_usb_sdmmc.c host->led.brightness = brightness; host 1281 drivers/mmc/host/rtsx_usb_sdmmc.c schedule_work(&host->led_work); host 1286 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = host 1288 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_ucr *ucr = host->ucr; host 1290 drivers/mmc/host/rtsx_usb_sdmmc.c pm_runtime_get_noresume(sdmmc_dev(host)); host 1293 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->power_mode == MMC_POWER_OFF) host 1296 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->led.brightness == LED_OFF) host 1303 drivers/mmc/host/rtsx_usb_sdmmc.c pm_runtime_put_sync_suspend(sdmmc_dev(host)); host 1307 drivers/mmc/host/rtsx_usb_sdmmc.c static void rtsx_usb_init_host(struct rtsx_usb_sdmmc *host) host 1309 drivers/mmc/host/rtsx_usb_sdmmc.c struct mmc_host *mmc = host->mmc; host 1330 drivers/mmc/host/rtsx_usb_sdmmc.c host->power_mode = MMC_POWER_OFF; host 1336 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host; host 1348 drivers/mmc/host/rtsx_usb_sdmmc.c mmc = mmc_alloc_host(sizeof(*host), &pdev->dev); host 1352 drivers/mmc/host/rtsx_usb_sdmmc.c host = mmc_priv(mmc); host 1353 drivers/mmc/host/rtsx_usb_sdmmc.c host->ucr = ucr; host 1354 drivers/mmc/host/rtsx_usb_sdmmc.c host->mmc = mmc; host 1355 drivers/mmc/host/rtsx_usb_sdmmc.c host->pdev = pdev; host 1356 drivers/mmc/host/rtsx_usb_sdmmc.c platform_set_drvdata(pdev, host); host 1358 drivers/mmc/host/rtsx_usb_sdmmc.c mutex_init(&host->host_mutex); host 1359 drivers/mmc/host/rtsx_usb_sdmmc.c rtsx_usb_init_host(host); host 1363 drivers/mmc/host/rtsx_usb_sdmmc.c snprintf(host->led_name, sizeof(host->led_name), host 1365 drivers/mmc/host/rtsx_usb_sdmmc.c host->led.name = host->led_name; host 1366 drivers/mmc/host/rtsx_usb_sdmmc.c host->led.brightness = LED_OFF; host 1367 drivers/mmc/host/rtsx_usb_sdmmc.c host->led.default_trigger = mmc_hostname(mmc); host 1368 drivers/mmc/host/rtsx_usb_sdmmc.c host->led.brightness_set = rtsx_usb_led_control; host 1370 drivers/mmc/host/rtsx_usb_sdmmc.c err = led_classdev_register(mmc_dev(mmc), &host->led); host 1374 drivers/mmc/host/rtsx_usb_sdmmc.c INIT_WORK(&host->led_work, rtsx_usb_update_led); host 1384 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = platform_get_drvdata(pdev); host 1387 drivers/mmc/host/rtsx_usb_sdmmc.c if (!host) host 1390 drivers/mmc/host/rtsx_usb_sdmmc.c mmc = host->mmc; host 1391 drivers/mmc/host/rtsx_usb_sdmmc.c host->host_removal = true; host 1393 drivers/mmc/host/rtsx_usb_sdmmc.c mutex_lock(&host->host_mutex); host 1394 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->mrq) { host 1398 drivers/mmc/host/rtsx_usb_sdmmc.c host->mrq->cmd->error = -ENOMEDIUM; host 1399 drivers/mmc/host/rtsx_usb_sdmmc.c if (host->mrq->stop) host 1400 drivers/mmc/host/rtsx_usb_sdmmc.c host->mrq->stop->error = -ENOMEDIUM; host 1401 drivers/mmc/host/rtsx_usb_sdmmc.c mmc_request_done(mmc, host->mrq); host 1403 drivers/mmc/host/rtsx_usb_sdmmc.c mutex_unlock(&host->host_mutex); host 1408 drivers/mmc/host/rtsx_usb_sdmmc.c cancel_work_sync(&host->led_work); host 1409 drivers/mmc/host/rtsx_usb_sdmmc.c led_classdev_unregister(&host->led); host 1425 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = dev_get_drvdata(dev); host 1427 drivers/mmc/host/rtsx_usb_sdmmc.c host->mmc->caps &= ~MMC_CAP_NEEDS_POLL; host 1433 drivers/mmc/host/rtsx_usb_sdmmc.c struct rtsx_usb_sdmmc *host = dev_get_drvdata(dev); host 1435 drivers/mmc/host/rtsx_usb_sdmmc.c host->mmc->caps |= MMC_CAP_NEEDS_POLL; host 1436 drivers/mmc/host/rtsx_usb_sdmmc.c if (sdmmc_get_cd(host->mmc) == 1) host 1437 drivers/mmc/host/rtsx_usb_sdmmc.c mmc_detect_change(host->mmc, 0); host 135 drivers/mmc/host/s3cmci.c #define dbg(host, channels, args...) \ host 138 drivers/mmc/host/s3cmci.c dev_err(&host->pdev->dev, args); \ host 140 drivers/mmc/host/s3cmci.c dev_info(&host->pdev->dev, args); \ host 142 drivers/mmc/host/s3cmci.c dev_dbg(&host->pdev->dev, args); \ host 145 drivers/mmc/host/s3cmci.c static void finalize_request(struct s3cmci_host *host); host 147 drivers/mmc/host/s3cmci.c static void s3cmci_reset(struct s3cmci_host *host); host 151 drivers/mmc/host/s3cmci.c static void dbg_dumpregs(struct s3cmci_host *host, char *prefix) host 156 drivers/mmc/host/s3cmci.c con = readl(host->base + S3C2410_SDICON); host 157 drivers/mmc/host/s3cmci.c pre = readl(host->base + S3C2410_SDIPRE); host 158 drivers/mmc/host/s3cmci.c cmdarg = readl(host->base + S3C2410_SDICMDARG); host 159 drivers/mmc/host/s3cmci.c cmdcon = readl(host->base + S3C2410_SDICMDCON); host 160 drivers/mmc/host/s3cmci.c cmdsta = readl(host->base + S3C2410_SDICMDSTAT); host 161 drivers/mmc/host/s3cmci.c r0 = readl(host->base + S3C2410_SDIRSP0); host 162 drivers/mmc/host/s3cmci.c r1 = readl(host->base + S3C2410_SDIRSP1); host 163 drivers/mmc/host/s3cmci.c r2 = readl(host->base + S3C2410_SDIRSP2); host 164 drivers/mmc/host/s3cmci.c r3 = readl(host->base + S3C2410_SDIRSP3); host 165 drivers/mmc/host/s3cmci.c timer = readl(host->base + S3C2410_SDITIMER); host 166 drivers/mmc/host/s3cmci.c bsize = readl(host->base + S3C2410_SDIBSIZE); host 167 drivers/mmc/host/s3cmci.c datcon = readl(host->base + S3C2410_SDIDCON); host 168 drivers/mmc/host/s3cmci.c datcnt = readl(host->base + S3C2410_SDIDCNT); host 169 drivers/mmc/host/s3cmci.c datsta = readl(host->base + S3C2410_SDIDSTA); host 170 drivers/mmc/host/s3cmci.c fsta = readl(host->base + S3C2410_SDIFSTA); host 171 drivers/mmc/host/s3cmci.c imask = readl(host->base + host->sdiimsk); host 173 drivers/mmc/host/s3cmci.c dbg(host, dbg_debug, "%s CON:[%08x] PRE:[%08x] TMR:[%08x]\n", host 176 drivers/mmc/host/s3cmci.c dbg(host, dbg_debug, "%s CCON:[%08x] CARG:[%08x] CSTA:[%08x]\n", host 179 drivers/mmc/host/s3cmci.c dbg(host, dbg_debug, "%s DCON:[%08x] FSTA:[%08x]" host 183 drivers/mmc/host/s3cmci.c dbg(host, dbg_debug, "%s R0:[%08x] R1:[%08x]" host 188 drivers/mmc/host/s3cmci.c static void prepare_dbgmsg(struct s3cmci_host *host, struct mmc_command *cmd, host 191 drivers/mmc/host/s3cmci.c snprintf(host->dbgmsg_cmd, 300, host 193 drivers/mmc/host/s3cmci.c host->ccnt, (stop ? " (STOP)" : ""), host 197 drivers/mmc/host/s3cmci.c snprintf(host->dbgmsg_dat, 300, host 199 drivers/mmc/host/s3cmci.c host->dcnt, cmd->data->blksz, host 203 drivers/mmc/host/s3cmci.c host->dbgmsg_dat[0] = '\0'; host 207 drivers/mmc/host/s3cmci.c static void dbg_dumpcmd(struct s3cmci_host *host, struct mmc_command *cmd, host 216 drivers/mmc/host/s3cmci.c dbg(host, dbglvl, "CMD[OK] %s R0:0x%08x\n", host 217 drivers/mmc/host/s3cmci.c host->dbgmsg_cmd, cmd->resp[0]); host 219 drivers/mmc/host/s3cmci.c dbg(host, dbglvl, "CMD[ERR %i] %s Status:%s\n", host 220 drivers/mmc/host/s3cmci.c cmd->error, host->dbgmsg_cmd, host->status); host 227 drivers/mmc/host/s3cmci.c dbg(host, dbglvl, "DAT[OK] %s\n", host->dbgmsg_dat); host 229 drivers/mmc/host/s3cmci.c dbg(host, dbglvl, "DAT[ERR %i] %s DCNT:0x%08x\n", host 230 drivers/mmc/host/s3cmci.c cmd->data->error, host->dbgmsg_dat, host 231 drivers/mmc/host/s3cmci.c readl(host->base + S3C2410_SDIDCNT)); host 235 drivers/mmc/host/s3cmci.c static void dbg_dumpcmd(struct s3cmci_host *host, host 238 drivers/mmc/host/s3cmci.c static void prepare_dbgmsg(struct s3cmci_host *host, struct mmc_command *cmd, host 241 drivers/mmc/host/s3cmci.c static void dbg_dumpregs(struct s3cmci_host *host, char *prefix) { } host 253 drivers/mmc/host/s3cmci.c static inline bool s3cmci_host_usedma(struct s3cmci_host *host) host 262 drivers/mmc/host/s3cmci.c static inline u32 enable_imask(struct s3cmci_host *host, u32 imask) host 266 drivers/mmc/host/s3cmci.c newmask = readl(host->base + host->sdiimsk); host 269 drivers/mmc/host/s3cmci.c writel(newmask, host->base + host->sdiimsk); host 274 drivers/mmc/host/s3cmci.c static inline u32 disable_imask(struct s3cmci_host *host, u32 imask) host 278 drivers/mmc/host/s3cmci.c newmask = readl(host->base + host->sdiimsk); host 281 drivers/mmc/host/s3cmci.c writel(newmask, host->base + host->sdiimsk); host 286 drivers/mmc/host/s3cmci.c static inline void clear_imask(struct s3cmci_host *host) host 288 drivers/mmc/host/s3cmci.c u32 mask = readl(host->base + host->sdiimsk); host 292 drivers/mmc/host/s3cmci.c writel(mask, host->base + host->sdiimsk); host 307 drivers/mmc/host/s3cmci.c static void s3cmci_check_sdio_irq(struct s3cmci_host *host) host 309 drivers/mmc/host/s3cmci.c if (host->sdio_irqen) { host 312 drivers/mmc/host/s3cmci.c mmc_signal_sdio_irq(host->mmc); host 317 drivers/mmc/host/s3cmci.c static inline int get_data_buffer(struct s3cmci_host *host, host 322 drivers/mmc/host/s3cmci.c if (host->pio_active == XFER_NONE) host 325 drivers/mmc/host/s3cmci.c if ((!host->mrq) || (!host->mrq->data)) host 328 drivers/mmc/host/s3cmci.c if (host->pio_sgptr >= host->mrq->data->sg_len) { host 329 drivers/mmc/host/s3cmci.c dbg(host, dbg_debug, "no more buffers (%i/%i)\n", host 330 drivers/mmc/host/s3cmci.c host->pio_sgptr, host->mrq->data->sg_len); host 333 drivers/mmc/host/s3cmci.c sg = &host->mrq->data->sg[host->pio_sgptr]; host 338 drivers/mmc/host/s3cmci.c host->pio_sgptr++; host 340 drivers/mmc/host/s3cmci.c dbg(host, dbg_sg, "new buffer (%i/%i)\n", host 341 drivers/mmc/host/s3cmci.c host->pio_sgptr, host->mrq->data->sg_len); host 346 drivers/mmc/host/s3cmci.c static inline u32 fifo_count(struct s3cmci_host *host) host 348 drivers/mmc/host/s3cmci.c u32 fifostat = readl(host->base + S3C2410_SDIFSTA); host 354 drivers/mmc/host/s3cmci.c static inline u32 fifo_free(struct s3cmci_host *host) host 356 drivers/mmc/host/s3cmci.c u32 fifostat = readl(host->base + S3C2410_SDIFSTA); host 375 drivers/mmc/host/s3cmci.c static void s3cmci_enable_irq(struct s3cmci_host *host, bool more) host 382 drivers/mmc/host/s3cmci.c host->irq_enabled = more; host 383 drivers/mmc/host/s3cmci.c host->irq_disabled = false; host 385 drivers/mmc/host/s3cmci.c enable = more | host->sdio_irqen; host 387 drivers/mmc/host/s3cmci.c if (host->irq_state != enable) { host 388 drivers/mmc/host/s3cmci.c host->irq_state = enable; host 391 drivers/mmc/host/s3cmci.c enable_irq(host->irq); host 393 drivers/mmc/host/s3cmci.c disable_irq(host->irq); host 402 drivers/mmc/host/s3cmci.c static void s3cmci_disable_irq(struct s3cmci_host *host, bool transfer) host 410 drivers/mmc/host/s3cmci.c host->irq_disabled = transfer; host 412 drivers/mmc/host/s3cmci.c if (transfer && host->irq_state) { host 413 drivers/mmc/host/s3cmci.c host->irq_state = false; host 414 drivers/mmc/host/s3cmci.c disable_irq(host->irq); host 420 drivers/mmc/host/s3cmci.c static void do_pio_read(struct s3cmci_host *host) host 429 drivers/mmc/host/s3cmci.c writel(host->prescaler, host->base + S3C2410_SDIPRE); host 431 drivers/mmc/host/s3cmci.c from_ptr = host->base + host->sdidata; host 433 drivers/mmc/host/s3cmci.c while ((fifo = fifo_count(host))) { host 434 drivers/mmc/host/s3cmci.c if (!host->pio_bytes) { host 435 drivers/mmc/host/s3cmci.c res = get_data_buffer(host, &host->pio_bytes, host 436 drivers/mmc/host/s3cmci.c &host->pio_ptr); host 438 drivers/mmc/host/s3cmci.c host->pio_active = XFER_NONE; host 439 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_FINALIZE; host 441 drivers/mmc/host/s3cmci.c dbg(host, dbg_pio, "pio_read(): " host 446 drivers/mmc/host/s3cmci.c dbg(host, dbg_pio, host 448 drivers/mmc/host/s3cmci.c host->pio_bytes, host->pio_ptr); host 451 drivers/mmc/host/s3cmci.c dbg(host, dbg_pio, host 453 drivers/mmc/host/s3cmci.c fifo, host->pio_bytes, host 454 drivers/mmc/host/s3cmci.c readl(host->base + S3C2410_SDIDCNT)); host 461 drivers/mmc/host/s3cmci.c if (fifo >= host->pio_bytes) host 462 drivers/mmc/host/s3cmci.c fifo = host->pio_bytes; host 466 drivers/mmc/host/s3cmci.c host->pio_bytes -= fifo; host 467 drivers/mmc/host/s3cmci.c host->pio_count += fifo; host 470 drivers/mmc/host/s3cmci.c ptr = host->pio_ptr; host 473 drivers/mmc/host/s3cmci.c host->pio_ptr = ptr; host 478 drivers/mmc/host/s3cmci.c u8 *p = (u8 *)host->pio_ptr; host 487 drivers/mmc/host/s3cmci.c if (!host->pio_bytes) { host 488 drivers/mmc/host/s3cmci.c res = get_data_buffer(host, &host->pio_bytes, &host->pio_ptr); host 490 drivers/mmc/host/s3cmci.c dbg(host, dbg_pio, host 492 drivers/mmc/host/s3cmci.c host->pio_active = XFER_NONE; host 493 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_FINALIZE; host 499 drivers/mmc/host/s3cmci.c enable_imask(host, host 503 drivers/mmc/host/s3cmci.c static void do_pio_write(struct s3cmci_host *host) host 510 drivers/mmc/host/s3cmci.c to_ptr = host->base + host->sdidata; host 512 drivers/mmc/host/s3cmci.c while ((fifo = fifo_free(host)) > 3) { host 513 drivers/mmc/host/s3cmci.c if (!host->pio_bytes) { host 514 drivers/mmc/host/s3cmci.c res = get_data_buffer(host, &host->pio_bytes, host 515 drivers/mmc/host/s3cmci.c &host->pio_ptr); host 517 drivers/mmc/host/s3cmci.c dbg(host, dbg_pio, host 519 drivers/mmc/host/s3cmci.c host->pio_active = XFER_NONE; host 524 drivers/mmc/host/s3cmci.c dbg(host, dbg_pio, host 526 drivers/mmc/host/s3cmci.c host->pio_bytes, host->pio_ptr); host 534 drivers/mmc/host/s3cmci.c if (fifo >= host->pio_bytes) host 535 drivers/mmc/host/s3cmci.c fifo = host->pio_bytes; host 539 drivers/mmc/host/s3cmci.c host->pio_bytes -= fifo; host 540 drivers/mmc/host/s3cmci.c host->pio_count += fifo; host 543 drivers/mmc/host/s3cmci.c ptr = host->pio_ptr; host 546 drivers/mmc/host/s3cmci.c host->pio_ptr = ptr; host 549 drivers/mmc/host/s3cmci.c enable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF); host 554 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = (struct s3cmci_host *) data; host 556 drivers/mmc/host/s3cmci.c s3cmci_disable_irq(host, true); host 558 drivers/mmc/host/s3cmci.c if (host->pio_active == XFER_WRITE) host 559 drivers/mmc/host/s3cmci.c do_pio_write(host); host 561 drivers/mmc/host/s3cmci.c if (host->pio_active == XFER_READ) host 562 drivers/mmc/host/s3cmci.c do_pio_read(host); host 564 drivers/mmc/host/s3cmci.c if (host->complete_what == COMPLETION_FINALIZE) { host 565 drivers/mmc/host/s3cmci.c clear_imask(host); host 566 drivers/mmc/host/s3cmci.c if (host->pio_active != XFER_NONE) { host 567 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "unfinished %s " host 569 drivers/mmc/host/s3cmci.c (host->pio_active == XFER_READ) ? "read" : "write", host 570 drivers/mmc/host/s3cmci.c host->pio_count, host->pio_bytes); host 572 drivers/mmc/host/s3cmci.c if (host->mrq->data) host 573 drivers/mmc/host/s3cmci.c host->mrq->data->error = -EINVAL; host 576 drivers/mmc/host/s3cmci.c s3cmci_enable_irq(host, false); host 577 drivers/mmc/host/s3cmci.c finalize_request(host); host 579 drivers/mmc/host/s3cmci.c s3cmci_enable_irq(host, true); host 611 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = dev_id; host 617 drivers/mmc/host/s3cmci.c mci_dsta = readl(host->base + S3C2410_SDIDSTA); host 618 drivers/mmc/host/s3cmci.c mci_imsk = readl(host->base + host->sdiimsk); host 623 drivers/mmc/host/s3cmci.c writel(mci_dclear, host->base + S3C2410_SDIDSTA); host 625 drivers/mmc/host/s3cmci.c mmc_signal_sdio_irq(host->mmc); host 630 drivers/mmc/host/s3cmci.c spin_lock_irqsave(&host->complete_lock, iflags); host 632 drivers/mmc/host/s3cmci.c mci_csta = readl(host->base + S3C2410_SDICMDSTAT); host 633 drivers/mmc/host/s3cmci.c mci_dcnt = readl(host->base + S3C2410_SDIDCNT); host 634 drivers/mmc/host/s3cmci.c mci_fsta = readl(host->base + S3C2410_SDIFSTA); host 637 drivers/mmc/host/s3cmci.c if ((host->complete_what == COMPLETION_NONE) || host 638 drivers/mmc/host/s3cmci.c (host->complete_what == COMPLETION_FINALIZE)) { host 639 drivers/mmc/host/s3cmci.c host->status = "nothing to complete"; host 640 drivers/mmc/host/s3cmci.c clear_imask(host); host 644 drivers/mmc/host/s3cmci.c if (!host->mrq) { host 645 drivers/mmc/host/s3cmci.c host->status = "no active mrq"; host 646 drivers/mmc/host/s3cmci.c clear_imask(host); host 650 drivers/mmc/host/s3cmci.c cmd = host->cmd_is_stop ? host->mrq->stop : host->mrq->cmd; host 653 drivers/mmc/host/s3cmci.c host->status = "no active cmd"; host 654 drivers/mmc/host/s3cmci.c clear_imask(host); host 658 drivers/mmc/host/s3cmci.c if (!s3cmci_host_usedma(host)) { host 659 drivers/mmc/host/s3cmci.c if ((host->pio_active == XFER_WRITE) && host 662 drivers/mmc/host/s3cmci.c disable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF); host 663 drivers/mmc/host/s3cmci.c tasklet_schedule(&host->pio_tasklet); host 664 drivers/mmc/host/s3cmci.c host->status = "pio tx"; host 667 drivers/mmc/host/s3cmci.c if ((host->pio_active == XFER_READ) && host 670 drivers/mmc/host/s3cmci.c disable_imask(host, host 674 drivers/mmc/host/s3cmci.c tasklet_schedule(&host->pio_tasklet); host 675 drivers/mmc/host/s3cmci.c host->status = "pio rx"; host 680 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "CMDSTAT: error CMDTIMEOUT\n"); host 682 drivers/mmc/host/s3cmci.c host->status = "error: command timeout"; host 687 drivers/mmc/host/s3cmci.c if (host->complete_what == COMPLETION_CMDSENT) { host 688 drivers/mmc/host/s3cmci.c host->status = "ok: command sent"; host 697 drivers/mmc/host/s3cmci.c if (host->mrq->cmd->flags & MMC_RSP_136) { host 698 drivers/mmc/host/s3cmci.c dbg(host, dbg_irq, host 716 drivers/mmc/host/s3cmci.c if (host->complete_what == COMPLETION_RSPFIN) { host 717 drivers/mmc/host/s3cmci.c host->status = "ok: command response received"; host 721 drivers/mmc/host/s3cmci.c if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN) host 722 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_XFERFINISH; host 734 drivers/mmc/host/s3cmci.c if (host->is2440) { host 736 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "FIFO failure\n"); host 737 drivers/mmc/host/s3cmci.c host->mrq->data->error = -EILSEQ; host 738 drivers/mmc/host/s3cmci.c host->status = "error: 2440 fifo failure"; host 743 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "FIFO failure\n"); host 745 drivers/mmc/host/s3cmci.c host->status = "error: fifo failure"; host 751 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "bad data crc (outgoing)\n"); host 753 drivers/mmc/host/s3cmci.c host->status = "error: bad data crc (outgoing)"; host 758 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "bad data crc (incoming)\n"); host 760 drivers/mmc/host/s3cmci.c host->status = "error: bad data crc (incoming)"; host 765 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "data timeout\n"); host 767 drivers/mmc/host/s3cmci.c host->status = "error: data timeout"; host 772 drivers/mmc/host/s3cmci.c if (host->complete_what == COMPLETION_XFERFINISH) { host 773 drivers/mmc/host/s3cmci.c host->status = "ok: data transfer completed"; host 777 drivers/mmc/host/s3cmci.c if (host->complete_what == COMPLETION_XFERFINISH_RSPFIN) host 778 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_RSPFIN; host 784 drivers/mmc/host/s3cmci.c writel(mci_cclear, host->base + S3C2410_SDICMDSTAT); host 785 drivers/mmc/host/s3cmci.c writel(mci_dclear, host->base + S3C2410_SDIDSTA); host 790 drivers/mmc/host/s3cmci.c host->pio_active = XFER_NONE; host 793 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_FINALIZE; host 795 drivers/mmc/host/s3cmci.c clear_imask(host); host 796 drivers/mmc/host/s3cmci.c tasklet_schedule(&host->pio_tasklet); host 801 drivers/mmc/host/s3cmci.c dbg(host, dbg_irq, host 803 drivers/mmc/host/s3cmci.c mci_csta, mci_dsta, mci_fsta, mci_dcnt, host->status); host 805 drivers/mmc/host/s3cmci.c spin_unlock_irqrestore(&host->complete_lock, iflags); host 812 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = arg; host 815 drivers/mmc/host/s3cmci.c BUG_ON(!host->mrq); host 816 drivers/mmc/host/s3cmci.c BUG_ON(!host->mrq->data); host 818 drivers/mmc/host/s3cmci.c spin_lock_irqsave(&host->complete_lock, iflags); host 820 drivers/mmc/host/s3cmci.c dbg(host, dbg_dma, "DMA FINISHED\n"); host 822 drivers/mmc/host/s3cmci.c host->dma_complete = 1; host 823 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_FINALIZE; host 825 drivers/mmc/host/s3cmci.c tasklet_schedule(&host->pio_tasklet); host 826 drivers/mmc/host/s3cmci.c spin_unlock_irqrestore(&host->complete_lock, iflags); host 830 drivers/mmc/host/s3cmci.c static void finalize_request(struct s3cmci_host *host) host 832 drivers/mmc/host/s3cmci.c struct mmc_request *mrq = host->mrq; host 836 drivers/mmc/host/s3cmci.c if (host->complete_what != COMPLETION_FINALIZE) host 841 drivers/mmc/host/s3cmci.c cmd = host->cmd_is_stop ? mrq->stop : mrq->cmd; host 845 drivers/mmc/host/s3cmci.c if (s3cmci_host_usedma(host) && (!host->dma_complete)) { host 846 drivers/mmc/host/s3cmci.c dbg(host, dbg_dma, "DMA Missing (%d)!\n", host 847 drivers/mmc/host/s3cmci.c host->dma_complete); host 853 drivers/mmc/host/s3cmci.c cmd->resp[0] = readl(host->base + S3C2410_SDIRSP0); host 854 drivers/mmc/host/s3cmci.c cmd->resp[1] = readl(host->base + S3C2410_SDIRSP1); host 855 drivers/mmc/host/s3cmci.c cmd->resp[2] = readl(host->base + S3C2410_SDIRSP2); host 856 drivers/mmc/host/s3cmci.c cmd->resp[3] = readl(host->base + S3C2410_SDIRSP3); host 858 drivers/mmc/host/s3cmci.c writel(host->prescaler, host->base + S3C2410_SDIPRE); host 866 drivers/mmc/host/s3cmci.c dbg_dumpcmd(host, cmd, debug_as_failure); host 869 drivers/mmc/host/s3cmci.c writel(0, host->base + S3C2410_SDICMDARG); host 870 drivers/mmc/host/s3cmci.c writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON); host 871 drivers/mmc/host/s3cmci.c writel(0, host->base + S3C2410_SDICMDCON); host 872 drivers/mmc/host/s3cmci.c clear_imask(host); host 877 drivers/mmc/host/s3cmci.c if (cmd->data && cmd->data->stop && (!host->cmd_is_stop)) { host 878 drivers/mmc/host/s3cmci.c host->cmd_is_stop = 1; host 879 drivers/mmc/host/s3cmci.c s3cmci_send_request(host->mmc); host 898 drivers/mmc/host/s3cmci.c if (s3cmci_host_usedma(host)) host 899 drivers/mmc/host/s3cmci.c dmaengine_terminate_all(host->dma); host 901 drivers/mmc/host/s3cmci.c if (host->is2440) { host 905 drivers/mmc/host/s3cmci.c host->base + S3C2410_SDIFSTA); host 910 drivers/mmc/host/s3cmci.c mci_con = readl(host->base + S3C2410_SDICON); host 913 drivers/mmc/host/s3cmci.c writel(mci_con, host->base + S3C2410_SDICON); host 918 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_NONE; host 919 drivers/mmc/host/s3cmci.c host->mrq = NULL; host 921 drivers/mmc/host/s3cmci.c s3cmci_check_sdio_irq(host); host 922 drivers/mmc/host/s3cmci.c mmc_request_done(host->mmc, mrq); host 925 drivers/mmc/host/s3cmci.c static void s3cmci_send_command(struct s3cmci_host *host, host 934 drivers/mmc/host/s3cmci.c enable_imask(host, imsk); host 937 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_XFERFINISH_RSPFIN; host 939 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_RSPFIN; host 941 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_CMDSENT; host 943 drivers/mmc/host/s3cmci.c writel(cmd->arg, host->base + S3C2410_SDICMDARG); host 954 drivers/mmc/host/s3cmci.c writel(ccon, host->base + S3C2410_SDICMDCON); host 957 drivers/mmc/host/s3cmci.c static int s3cmci_setup_data(struct s3cmci_host *host, struct mmc_data *data) host 964 drivers/mmc/host/s3cmci.c writel(0, host->base + S3C2410_SDIDCON); host 979 drivers/mmc/host/s3cmci.c while (readl(host->base + S3C2410_SDIDSTA) & host 982 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, host 985 drivers/mmc/host/s3cmci.c writel(S3C2410_SDIDCON_STOP, host->base + S3C2410_SDIDCON); host 986 drivers/mmc/host/s3cmci.c s3cmci_reset(host); host 989 drivers/mmc/host/s3cmci.c dbg_dumpregs(host, "DRF"); host 996 drivers/mmc/host/s3cmci.c if (s3cmci_host_usedma(host)) host 999 drivers/mmc/host/s3cmci.c if (host->bus_width == MMC_BUS_WIDTH_4) host 1014 drivers/mmc/host/s3cmci.c if (host->is2440) { host 1019 drivers/mmc/host/s3cmci.c writel(dcon, host->base + S3C2410_SDIDCON); host 1023 drivers/mmc/host/s3cmci.c writel(data->blksz, host->base + S3C2410_SDIBSIZE); host 1029 drivers/mmc/host/s3cmci.c enable_imask(host, imsk); host 1033 drivers/mmc/host/s3cmci.c if (host->is2440) { host 1034 drivers/mmc/host/s3cmci.c writel(0x007FFFFF, host->base + S3C2410_SDITIMER); host 1036 drivers/mmc/host/s3cmci.c writel(0x0000FFFF, host->base + S3C2410_SDITIMER); host 1040 drivers/mmc/host/s3cmci.c writel(0xFF, host->base + S3C2410_SDIPRE); host 1048 drivers/mmc/host/s3cmci.c static int s3cmci_prepare_pio(struct s3cmci_host *host, struct mmc_data *data) host 1054 drivers/mmc/host/s3cmci.c host->pio_sgptr = 0; host 1055 drivers/mmc/host/s3cmci.c host->pio_bytes = 0; host 1056 drivers/mmc/host/s3cmci.c host->pio_count = 0; host 1057 drivers/mmc/host/s3cmci.c host->pio_active = rw ? XFER_WRITE : XFER_READ; host 1060 drivers/mmc/host/s3cmci.c do_pio_write(host); host 1061 drivers/mmc/host/s3cmci.c enable_imask(host, S3C2410_SDIIMSK_TXFIFOHALF); host 1063 drivers/mmc/host/s3cmci.c enable_imask(host, S3C2410_SDIIMSK_RXFIFOHALF host 1070 drivers/mmc/host/s3cmci.c static int s3cmci_prepare_dma(struct s3cmci_host *host, struct mmc_data *data) host 1075 drivers/mmc/host/s3cmci.c .src_addr = host->mem->start + host->sdidata, host 1076 drivers/mmc/host/s3cmci.c .dst_addr = host->mem->start + host->sdidata, host 1084 drivers/mmc/host/s3cmci.c writel(host->prescaler, host->base + S3C2410_SDIPRE); host 1091 drivers/mmc/host/s3cmci.c dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 1094 drivers/mmc/host/s3cmci.c dmaengine_slave_config(host->dma, &conf); host 1095 drivers/mmc/host/s3cmci.c desc = dmaengine_prep_slave_sg(host->dma, data->sg, data->sg_len, host 1101 drivers/mmc/host/s3cmci.c desc->callback_param = host; host 1103 drivers/mmc/host/s3cmci.c dma_async_issue_pending(host->dma); host 1108 drivers/mmc/host/s3cmci.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 1115 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = mmc_priv(mmc); host 1116 drivers/mmc/host/s3cmci.c struct mmc_request *mrq = host->mrq; host 1117 drivers/mmc/host/s3cmci.c struct mmc_command *cmd = host->cmd_is_stop ? mrq->stop : mrq->cmd; host 1119 drivers/mmc/host/s3cmci.c host->ccnt++; host 1120 drivers/mmc/host/s3cmci.c prepare_dbgmsg(host, cmd, host->cmd_is_stop); host 1125 drivers/mmc/host/s3cmci.c writel(0xFFFFFFFF, host->base + S3C2410_SDICMDSTAT); host 1126 drivers/mmc/host/s3cmci.c writel(0xFFFFFFFF, host->base + S3C2410_SDIDSTA); host 1127 drivers/mmc/host/s3cmci.c writel(0xFFFFFFFF, host->base + S3C2410_SDIFSTA); host 1130 drivers/mmc/host/s3cmci.c int res = s3cmci_setup_data(host, cmd->data); host 1132 drivers/mmc/host/s3cmci.c host->dcnt++; host 1135 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "setup data error %d\n", res); host 1143 drivers/mmc/host/s3cmci.c if (s3cmci_host_usedma(host)) host 1144 drivers/mmc/host/s3cmci.c res = s3cmci_prepare_dma(host, cmd->data); host 1146 drivers/mmc/host/s3cmci.c res = s3cmci_prepare_pio(host, cmd->data); host 1149 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "data prepare error %d\n", res); host 1159 drivers/mmc/host/s3cmci.c s3cmci_send_command(host, cmd); host 1162 drivers/mmc/host/s3cmci.c s3cmci_enable_irq(host, true); host 1167 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = mmc_priv(mmc); host 1169 drivers/mmc/host/s3cmci.c host->status = "mmc request"; host 1170 drivers/mmc/host/s3cmci.c host->cmd_is_stop = 0; host 1171 drivers/mmc/host/s3cmci.c host->mrq = mrq; host 1174 drivers/mmc/host/s3cmci.c dbg(host, dbg_err, "%s: no medium present\n", __func__); host 1175 drivers/mmc/host/s3cmci.c host->mrq->cmd->error = -ENOMEDIUM; host 1181 drivers/mmc/host/s3cmci.c static void s3cmci_set_clk(struct s3cmci_host *host, struct mmc_ios *ios) host 1187 drivers/mmc/host/s3cmci.c host->real_rate = host->clk_rate / (host->clk_div*(mci_psc+1)); host 1189 drivers/mmc/host/s3cmci.c if (host->real_rate <= ios->clock) host 1196 drivers/mmc/host/s3cmci.c host->prescaler = mci_psc; host 1197 drivers/mmc/host/s3cmci.c writel(host->prescaler, host->base + S3C2410_SDIPRE); host 1201 drivers/mmc/host/s3cmci.c host->real_rate = 0; host 1206 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = mmc_priv(mmc); host 1211 drivers/mmc/host/s3cmci.c mci_con = readl(host->base + S3C2410_SDICON); host 1217 drivers/mmc/host/s3cmci.c if (!host->pdev->dev.of_node) host 1221 drivers/mmc/host/s3cmci.c if (host->pdata->set_power) host 1222 drivers/mmc/host/s3cmci.c host->pdata->set_power(ios->power_mode, ios->vdd); host 1224 drivers/mmc/host/s3cmci.c if (!host->is2440) host 1231 drivers/mmc/host/s3cmci.c if (!host->pdev->dev.of_node) host 1234 drivers/mmc/host/s3cmci.c if (host->is2440) host 1237 drivers/mmc/host/s3cmci.c if (host->pdata->set_power) host 1238 drivers/mmc/host/s3cmci.c host->pdata->set_power(ios->power_mode, ios->vdd); host 1243 drivers/mmc/host/s3cmci.c s3cmci_set_clk(host, ios); host 1251 drivers/mmc/host/s3cmci.c writel(mci_con, host->base + S3C2410_SDICON); host 1255 drivers/mmc/host/s3cmci.c dbg(host, dbg_conf, "running at %lukHz (requested: %ukHz).\n", host 1256 drivers/mmc/host/s3cmci.c host->real_rate/1000, ios->clock/1000); host 1258 drivers/mmc/host/s3cmci.c dbg(host, dbg_conf, "powered down.\n"); host 1261 drivers/mmc/host/s3cmci.c host->bus_width = ios->bus_width; host 1264 drivers/mmc/host/s3cmci.c static void s3cmci_reset(struct s3cmci_host *host) host 1266 drivers/mmc/host/s3cmci.c u32 con = readl(host->base + S3C2410_SDICON); host 1269 drivers/mmc/host/s3cmci.c writel(con, host->base + S3C2410_SDICON); host 1274 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = mmc_priv(mmc); host 1280 drivers/mmc/host/s3cmci.c con = readl(host->base + S3C2410_SDICON); host 1281 drivers/mmc/host/s3cmci.c host->sdio_irqen = enable; host 1283 drivers/mmc/host/s3cmci.c if (enable == host->sdio_irqen) host 1288 drivers/mmc/host/s3cmci.c enable_imask(host, S3C2410_SDIIMSK_SDIOIRQ); host 1290 drivers/mmc/host/s3cmci.c if (!host->irq_state && !host->irq_disabled) { host 1291 drivers/mmc/host/s3cmci.c host->irq_state = true; host 1292 drivers/mmc/host/s3cmci.c enable_irq(host->irq); host 1295 drivers/mmc/host/s3cmci.c disable_imask(host, S3C2410_SDIIMSK_SDIOIRQ); host 1298 drivers/mmc/host/s3cmci.c if (!host->irq_enabled && host->irq_state) { host 1299 drivers/mmc/host/s3cmci.c disable_irq_nosync(host->irq); host 1300 drivers/mmc/host/s3cmci.c host->irq_state = false; host 1304 drivers/mmc/host/s3cmci.c writel(con, host->base + S3C2410_SDICON); host 1309 drivers/mmc/host/s3cmci.c s3cmci_check_sdio_irq(host); host 1332 drivers/mmc/host/s3cmci.c struct s3cmci_host *host; host 1337 drivers/mmc/host/s3cmci.c host = container_of(nb, struct s3cmci_host, freq_transition); host 1338 drivers/mmc/host/s3cmci.c newclk = clk_get_rate(host->clk); host 1339 drivers/mmc/host/s3cmci.c mmc = host->mmc; host 1341 drivers/mmc/host/s3cmci.c if ((val == CPUFREQ_PRECHANGE && newclk > host->clk_rate) || host 1342 drivers/mmc/host/s3cmci.c (val == CPUFREQ_POSTCHANGE && newclk < host->clk_rate)) { host 1345 drivers/mmc/host/s3cmci.c host->clk_rate = newclk; host 1349 drivers/mmc/host/s3cmci.c s3cmci_set_clk(host, &mmc->ios); host 1357 drivers/mmc/host/s3cmci.c static inline int s3cmci_cpufreq_register(struct s3cmci_host *host) host 1359 drivers/mmc/host/s3cmci.c host->freq_transition.notifier_call = s3cmci_cpufreq_transition; host 1361 drivers/mmc/host/s3cmci.c return cpufreq_register_notifier(&host->freq_transition, host 1365 drivers/mmc/host/s3cmci.c static inline void s3cmci_cpufreq_deregister(struct s3cmci_host *host) host 1367 drivers/mmc/host/s3cmci.c cpufreq_unregister_notifier(&host->freq_transition, host 1372 drivers/mmc/host/s3cmci.c static inline int s3cmci_cpufreq_register(struct s3cmci_host *host) host 1377 drivers/mmc/host/s3cmci.c static inline void s3cmci_cpufreq_deregister(struct s3cmci_host *host) host 1387 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = seq->private; host 1389 drivers/mmc/host/s3cmci.c seq_printf(seq, "Register base = 0x%08x\n", (u32)host->base); host 1390 drivers/mmc/host/s3cmci.c seq_printf(seq, "Clock rate = %ld\n", host->clk_rate); host 1391 drivers/mmc/host/s3cmci.c seq_printf(seq, "Prescale = %d\n", host->prescaler); host 1392 drivers/mmc/host/s3cmci.c seq_printf(seq, "is2440 = %d\n", host->is2440); host 1393 drivers/mmc/host/s3cmci.c seq_printf(seq, "IRQ = %d\n", host->irq); host 1394 drivers/mmc/host/s3cmci.c seq_printf(seq, "IRQ enabled = %d\n", host->irq_enabled); host 1395 drivers/mmc/host/s3cmci.c seq_printf(seq, "IRQ disabled = %d\n", host->irq_disabled); host 1396 drivers/mmc/host/s3cmci.c seq_printf(seq, "IRQ state = %d\n", host->irq_state); host 1397 drivers/mmc/host/s3cmci.c seq_printf(seq, "CD IRQ = %d\n", host->irq_cd); host 1398 drivers/mmc/host/s3cmci.c seq_printf(seq, "Do DMA = %d\n", s3cmci_host_usedma(host)); host 1399 drivers/mmc/host/s3cmci.c seq_printf(seq, "SDIIMSK at %d\n", host->sdiimsk); host 1400 drivers/mmc/host/s3cmci.c seq_printf(seq, "SDIDATA at %d\n", host->sdidata); host 1435 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = seq->private; host 1440 drivers/mmc/host/s3cmci.c readl(host->base + rptr->addr)); host 1442 drivers/mmc/host/s3cmci.c seq_printf(seq, "SDIIMSK\t=0x%08x\n", readl(host->base + host->sdiimsk)); host 1449 drivers/mmc/host/s3cmci.c static void s3cmci_debugfs_attach(struct s3cmci_host *host) host 1451 drivers/mmc/host/s3cmci.c struct device *dev = &host->pdev->dev; host 1455 drivers/mmc/host/s3cmci.c host->debug_root = root; host 1457 drivers/mmc/host/s3cmci.c debugfs_create_file("state", 0444, root, host, &s3cmci_state_fops); host 1458 drivers/mmc/host/s3cmci.c debugfs_create_file("regs", 0444, root, host, &s3cmci_regs_fops); host 1461 drivers/mmc/host/s3cmci.c static void s3cmci_debugfs_remove(struct s3cmci_host *host) host 1463 drivers/mmc/host/s3cmci.c debugfs_remove_recursive(host->debug_root); host 1467 drivers/mmc/host/s3cmci.c static inline void s3cmci_debugfs_attach(struct s3cmci_host *host) { } host 1468 drivers/mmc/host/s3cmci.c static inline void s3cmci_debugfs_remove(struct s3cmci_host *host) { } host 1472 drivers/mmc/host/s3cmci.c static int s3cmci_probe_pdata(struct s3cmci_host *host) host 1474 drivers/mmc/host/s3cmci.c struct platform_device *pdev = host->pdev; host 1475 drivers/mmc/host/s3cmci.c struct mmc_host *mmc = host->mmc; host 1479 drivers/mmc/host/s3cmci.c host->is2440 = platform_get_device_id(pdev)->driver_data; host 1515 drivers/mmc/host/s3cmci.c ret = mmc_gpiod_request_ro(host->mmc, "wp", 0, 0, NULL); host 1525 drivers/mmc/host/s3cmci.c static int s3cmci_probe_dt(struct s3cmci_host *host) host 1527 drivers/mmc/host/s3cmci.c struct platform_device *pdev = host->pdev; host 1529 drivers/mmc/host/s3cmci.c struct mmc_host *mmc = host->mmc; host 1532 drivers/mmc/host/s3cmci.c host->is2440 = (int) of_device_get_match_data(&pdev->dev); host 1549 drivers/mmc/host/s3cmci.c struct s3cmci_host *host; host 1560 drivers/mmc/host/s3cmci.c host = mmc_priv(mmc); host 1561 drivers/mmc/host/s3cmci.c host->mmc = mmc; host 1562 drivers/mmc/host/s3cmci.c host->pdev = pdev; host 1565 drivers/mmc/host/s3cmci.c ret = s3cmci_probe_dt(host); host 1567 drivers/mmc/host/s3cmci.c ret = s3cmci_probe_pdata(host); host 1572 drivers/mmc/host/s3cmci.c host->pdata = pdev->dev.platform_data; host 1574 drivers/mmc/host/s3cmci.c spin_lock_init(&host->complete_lock); host 1575 drivers/mmc/host/s3cmci.c tasklet_init(&host->pio_tasklet, pio_tasklet, (unsigned long) host); host 1577 drivers/mmc/host/s3cmci.c if (host->is2440) { host 1578 drivers/mmc/host/s3cmci.c host->sdiimsk = S3C2440_SDIIMSK; host 1579 drivers/mmc/host/s3cmci.c host->sdidata = S3C2440_SDIDATA; host 1580 drivers/mmc/host/s3cmci.c host->clk_div = 1; host 1582 drivers/mmc/host/s3cmci.c host->sdiimsk = S3C2410_SDIIMSK; host 1583 drivers/mmc/host/s3cmci.c host->sdidata = S3C2410_SDIDATA; host 1584 drivers/mmc/host/s3cmci.c host->clk_div = 2; host 1587 drivers/mmc/host/s3cmci.c host->complete_what = COMPLETION_NONE; host 1588 drivers/mmc/host/s3cmci.c host->pio_active = XFER_NONE; host 1590 drivers/mmc/host/s3cmci.c host->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); host 1591 drivers/mmc/host/s3cmci.c if (!host->mem) { host 1599 drivers/mmc/host/s3cmci.c host->mem = request_mem_region(host->mem->start, host 1600 drivers/mmc/host/s3cmci.c resource_size(host->mem), pdev->name); host 1602 drivers/mmc/host/s3cmci.c if (!host->mem) { host 1608 drivers/mmc/host/s3cmci.c host->base = ioremap(host->mem->start, resource_size(host->mem)); host 1609 drivers/mmc/host/s3cmci.c if (!host->base) { host 1615 drivers/mmc/host/s3cmci.c host->irq = platform_get_irq(pdev, 0); host 1616 drivers/mmc/host/s3cmci.c if (host->irq <= 0) { host 1621 drivers/mmc/host/s3cmci.c if (request_irq(host->irq, s3cmci_irq, 0, DRIVER_NAME, host)) { host 1631 drivers/mmc/host/s3cmci.c disable_irq(host->irq); host 1632 drivers/mmc/host/s3cmci.c host->irq_state = false; host 1636 drivers/mmc/host/s3cmci.c if (s3cmci_host_usedma(host)) { host 1637 drivers/mmc/host/s3cmci.c host->dma = dma_request_chan(&pdev->dev, "rx-tx"); host 1638 drivers/mmc/host/s3cmci.c ret = PTR_ERR_OR_ZERO(host->dma); host 1645 drivers/mmc/host/s3cmci.c host->clk = clk_get(&pdev->dev, "sdi"); host 1646 drivers/mmc/host/s3cmci.c if (IS_ERR(host->clk)) { host 1648 drivers/mmc/host/s3cmci.c ret = PTR_ERR(host->clk); host 1649 drivers/mmc/host/s3cmci.c host->clk = NULL; host 1653 drivers/mmc/host/s3cmci.c ret = clk_prepare_enable(host->clk); host 1659 drivers/mmc/host/s3cmci.c host->clk_rate = clk_get_rate(host->clk); host 1668 drivers/mmc/host/s3cmci.c mmc->f_min = host->clk_rate / (host->clk_div * 256); host 1669 drivers/mmc/host/s3cmci.c mmc->f_max = host->clk_rate / host->clk_div; host 1671 drivers/mmc/host/s3cmci.c if (host->pdata->ocr_avail) host 1672 drivers/mmc/host/s3cmci.c mmc->ocr_avail = host->pdata->ocr_avail; host 1681 drivers/mmc/host/s3cmci.c dbg(host, dbg_debug, host 1683 drivers/mmc/host/s3cmci.c (host->is2440?"2440":""), host 1684 drivers/mmc/host/s3cmci.c host->base, host->irq, host->irq_cd, host->dma); host 1686 drivers/mmc/host/s3cmci.c ret = s3cmci_cpufreq_register(host); host 1698 drivers/mmc/host/s3cmci.c s3cmci_debugfs_attach(host); host 1702 drivers/mmc/host/s3cmci.c s3cmci_host_usedma(host) ? "dma" : "pio", host 1708 drivers/mmc/host/s3cmci.c s3cmci_cpufreq_deregister(host); host 1711 drivers/mmc/host/s3cmci.c clk_disable_unprepare(host->clk); host 1714 drivers/mmc/host/s3cmci.c clk_put(host->clk); host 1717 drivers/mmc/host/s3cmci.c if (s3cmci_host_usedma(host)) host 1718 drivers/mmc/host/s3cmci.c dma_release_channel(host->dma); host 1721 drivers/mmc/host/s3cmci.c free_irq(host->irq, host); host 1724 drivers/mmc/host/s3cmci.c iounmap(host->base); host 1727 drivers/mmc/host/s3cmci.c release_mem_region(host->mem->start, resource_size(host->mem)); host 1744 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = mmc_priv(mmc); host 1746 drivers/mmc/host/s3cmci.c if (host->irq_cd >= 0) host 1747 drivers/mmc/host/s3cmci.c free_irq(host->irq_cd, host); host 1749 drivers/mmc/host/s3cmci.c s3cmci_debugfs_remove(host); host 1750 drivers/mmc/host/s3cmci.c s3cmci_cpufreq_deregister(host); host 1752 drivers/mmc/host/s3cmci.c clk_disable_unprepare(host->clk); host 1758 drivers/mmc/host/s3cmci.c struct s3cmci_host *host = mmc_priv(mmc); host 1763 drivers/mmc/host/s3cmci.c clk_put(host->clk); host 1765 drivers/mmc/host/s3cmci.c tasklet_disable(&host->pio_tasklet); host 1767 drivers/mmc/host/s3cmci.c if (s3cmci_host_usedma(host)) host 1768 drivers/mmc/host/s3cmci.c dma_release_channel(host->dma); host 1770 drivers/mmc/host/s3cmci.c free_irq(host->irq, host); host 1776 drivers/mmc/host/s3cmci.c iounmap(host->base); host 1777 drivers/mmc/host/s3cmci.c release_mem_region(host->mem->start, resource_size(host->mem)); host 71 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host; host 198 drivers/mmc/host/sdhci-acpi.c static void sdhci_acpi_int_hw_reset(struct sdhci_host *host) host 202 drivers/mmc/host/sdhci-acpi.c reg = sdhci_readb(host, SDHCI_POWER_CONTROL); host 204 drivers/mmc/host/sdhci-acpi.c sdhci_writeb(host, reg, SDHCI_POWER_CONTROL); host 208 drivers/mmc/host/sdhci-acpi.c sdhci_writeb(host, reg, SDHCI_POWER_CONTROL); host 359 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = mmc_priv(mmc); host 366 drivers/mmc/host/sdhci-acpi.c spin_lock_irqsave(&host->lock, flags); host 368 drivers/mmc/host/sdhci-acpi.c if (host->flags & SDHCI_DEVICE_DEAD) host 371 drivers/mmc/host/sdhci-acpi.c ret = !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); host 373 drivers/mmc/host/sdhci-acpi.c spin_unlock_irqrestore(&host->lock, flags); host 383 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = c->host; host 386 drivers/mmc/host/sdhci-acpi.c sdhci_readl(host, SDHCI_CAPABILITIES) == 0x446cc8b2 && host 387 drivers/mmc/host/sdhci-acpi.c sdhci_readl(host, SDHCI_CAPABILITIES_1) == 0x00000807) host 388 drivers/mmc/host/sdhci-acpi.c host->timeout_clk = 1000; /* 1000 kHz i.e. 1 MHz */ host 391 drivers/mmc/host/sdhci-acpi.c host->mmc_host_ops.get_cd = bxt_get_cd; host 393 drivers/mmc/host/sdhci-acpi.c intel_dsm_init(intel_host, &pdev->dev, host->mmc); host 395 drivers/mmc/host/sdhci-acpi.c host->mmc_host_ops.start_signal_voltage_switch = host 407 drivers/mmc/host/sdhci-acpi.c c->host->mmc->caps &= ~MMC_CAP_UHS_SDR25; host 410 drivers/mmc/host/sdhci-acpi.c c->host->mmc->caps &= ~MMC_CAP_UHS_SDR50; host 413 drivers/mmc/host/sdhci-acpi.c c->host->mmc->caps &= ~MMC_CAP_UHS_DDR50; host 416 drivers/mmc/host/sdhci-acpi.c c->host->mmc->caps &= ~MMC_CAP_UHS_SDR104; host 468 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = ptr; host 470 drivers/mmc/host/sdhci-acpi.c sdhci_writel(host, 0x3, VENDOR_SPECIFIC_PWRCTL_CLEAR_REG); host 471 drivers/mmc/host/sdhci-acpi.c sdhci_writel(host, 0x1, VENDOR_SPECIFIC_PWRCTL_CTL_REG); host 480 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = c->host; host 494 drivers/mmc/host/sdhci-acpi.c "sdhci_qcom", host); host 501 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = c->host; host 517 drivers/mmc/host/sdhci-acpi.c free_irq(*irq, host); host 545 drivers/mmc/host/sdhci-acpi.c static void sdhci_acpi_amd_hs400_dll(struct sdhci_host *host) host 548 drivers/mmc/host/sdhci-acpi.c sdhci_writel(host, 0x40003210, SDHCI_AMD_RESET_DLL_REGISTER); host 550 drivers/mmc/host/sdhci-acpi.c sdhci_writel(host, 0x40033210, SDHCI_AMD_RESET_DLL_REGISTER); host 560 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = mmc_priv(mmc); host 561 drivers/mmc/host/sdhci-acpi.c unsigned int old_timing = host->timing; host 566 drivers/mmc/host/sdhci-acpi.c sdhci_writew(host, 0x9, SDHCI_HOST_CONTROL2); host 569 drivers/mmc/host/sdhci-acpi.c sdhci_writew(host, 0x80, SDHCI_HOST_CONTROL2); host 570 drivers/mmc/host/sdhci-acpi.c sdhci_acpi_amd_hs400_dll(host); host 589 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = c->host; host 591 drivers/mmc/host/sdhci-acpi.c sdhci_read_caps(host); host 592 drivers/mmc/host/sdhci-acpi.c if (host->caps1 & SDHCI_SUPPORT_DDR50) host 593 drivers/mmc/host/sdhci-acpi.c host->mmc->caps = MMC_CAP_1_8V_DDR; host 595 drivers/mmc/host/sdhci-acpi.c if ((host->caps1 & SDHCI_SUPPORT_SDR104) && host 596 drivers/mmc/host/sdhci-acpi.c (host->mmc->caps & MMC_CAP_1_8V_DDR)) host 597 drivers/mmc/host/sdhci-acpi.c host->mmc->caps2 = MMC_CAP2_HS400_1_8V; host 599 drivers/mmc/host/sdhci-acpi.c host->mmc_host_ops.select_drive_strength = amd_select_drive_strength; host 600 drivers/mmc/host/sdhci-acpi.c host->mmc_host_ops.set_ios = amd_set_ios; host 681 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host; host 721 drivers/mmc/host/sdhci-acpi.c host = sdhci_alloc_host(dev, sizeof(struct sdhci_acpi_host) + priv_size); host 722 drivers/mmc/host/sdhci-acpi.c if (IS_ERR(host)) host 723 drivers/mmc/host/sdhci-acpi.c return PTR_ERR(host); host 725 drivers/mmc/host/sdhci-acpi.c c = sdhci_priv(host); host 726 drivers/mmc/host/sdhci-acpi.c c->host = host; host 733 drivers/mmc/host/sdhci-acpi.c host->hw_name = "ACPI"; host 734 drivers/mmc/host/sdhci-acpi.c host->ops = &sdhci_acpi_ops_dflt; host 735 drivers/mmc/host/sdhci-acpi.c host->irq = platform_get_irq(pdev, 0); host 736 drivers/mmc/host/sdhci-acpi.c if (host->irq < 0) { host 741 drivers/mmc/host/sdhci-acpi.c host->ioaddr = devm_ioremap_nocache(dev, iomem->start, host 743 drivers/mmc/host/sdhci-acpi.c if (host->ioaddr == NULL) { host 755 drivers/mmc/host/sdhci-acpi.c host->ops = c->slot->chip->ops; host 756 drivers/mmc/host/sdhci-acpi.c host->quirks |= c->slot->chip->quirks; host 757 drivers/mmc/host/sdhci-acpi.c host->quirks2 |= c->slot->chip->quirks2; host 758 drivers/mmc/host/sdhci-acpi.c host->mmc->caps |= c->slot->chip->caps; host 759 drivers/mmc/host/sdhci-acpi.c host->mmc->caps2 |= c->slot->chip->caps2; host 760 drivers/mmc/host/sdhci-acpi.c host->mmc->pm_caps |= c->slot->chip->pm_caps; host 762 drivers/mmc/host/sdhci-acpi.c host->quirks |= c->slot->quirks; host 763 drivers/mmc/host/sdhci-acpi.c host->quirks2 |= c->slot->quirks2; host 764 drivers/mmc/host/sdhci-acpi.c host->mmc->caps |= c->slot->caps; host 765 drivers/mmc/host/sdhci-acpi.c host->mmc->caps2 |= c->slot->caps2; host 766 drivers/mmc/host/sdhci-acpi.c host->mmc->pm_caps |= c->slot->pm_caps; host 769 drivers/mmc/host/sdhci-acpi.c host->mmc->caps2 |= MMC_CAP2_NO_PRESCAN_POWERUP; host 774 drivers/mmc/host/sdhci-acpi.c err = mmc_gpiod_request_cd(host->mmc, NULL, 0, v, 0, NULL); host 783 drivers/mmc/host/sdhci-acpi.c err = sdhci_setup_host(host); host 793 drivers/mmc/host/sdhci-acpi.c err = __sdhci_add_host(host); host 810 drivers/mmc/host/sdhci-acpi.c sdhci_cleanup_host(c->host); host 815 drivers/mmc/host/sdhci-acpi.c sdhci_free_host(c->host); host 834 drivers/mmc/host/sdhci-acpi.c dead = (sdhci_readl(c->host, SDHCI_INT_STATUS) == ~0); host 835 drivers/mmc/host/sdhci-acpi.c sdhci_remove_host(c->host, dead); host 840 drivers/mmc/host/sdhci-acpi.c sdhci_free_host(c->host); host 850 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = c->host; host 852 drivers/mmc/host/sdhci-acpi.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 853 drivers/mmc/host/sdhci-acpi.c mmc_retune_needed(host->mmc); host 855 drivers/mmc/host/sdhci-acpi.c return sdhci_suspend_host(host); host 864 drivers/mmc/host/sdhci-acpi.c return sdhci_resume_host(c->host); host 874 drivers/mmc/host/sdhci-acpi.c struct sdhci_host *host = c->host; host 876 drivers/mmc/host/sdhci-acpi.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 877 drivers/mmc/host/sdhci-acpi.c mmc_retune_needed(host->mmc); host 879 drivers/mmc/host/sdhci-acpi.c return sdhci_runtime_suspend_host(host); host 888 drivers/mmc/host/sdhci-acpi.c return sdhci_runtime_resume_host(c->host, 0); host 58 drivers/mmc/host/sdhci-bcm-kona.c static int sdhci_bcm_kona_sd_reset(struct sdhci_host *host) host 67 drivers/mmc/host/sdhci-bcm-kona.c val = sdhci_readl(host, KONA_SDHOST_CORECTRL); host 69 drivers/mmc/host/sdhci-bcm-kona.c sdhci_writel(host, val, KONA_SDHOST_CORECTRL); host 71 drivers/mmc/host/sdhci-bcm-kona.c while (!(sdhci_readl(host, KONA_SDHOST_CORECTRL) & KONA_SDHOST_RESET)) { host 79 drivers/mmc/host/sdhci-bcm-kona.c val = sdhci_readl(host, KONA_SDHOST_CORECTRL); host 89 drivers/mmc/host/sdhci-bcm-kona.c sdhci_writel(host, val, KONA_SDHOST_CORECTRL); host 94 drivers/mmc/host/sdhci-bcm-kona.c static void sdhci_bcm_kona_sd_init(struct sdhci_host *host) host 99 drivers/mmc/host/sdhci-bcm-kona.c val = sdhci_readl(host, KONA_SDHOST_COREIMR); host 101 drivers/mmc/host/sdhci-bcm-kona.c sdhci_writel(host, val, KONA_SDHOST_COREIMR); host 104 drivers/mmc/host/sdhci-bcm-kona.c val = sdhci_readl(host, KONA_SDHOST_CORECTRL); host 114 drivers/mmc/host/sdhci-bcm-kona.c sdhci_writel(host, val, KONA_SDHOST_CORECTRL); host 123 drivers/mmc/host/sdhci-bcm-kona.c static int sdhci_bcm_kona_sd_card_emulate(struct sdhci_host *host, int insert) host 125 drivers/mmc/host/sdhci-bcm-kona.c struct sdhci_pltfm_host *pltfm_priv = sdhci_priv(host); host 138 drivers/mmc/host/sdhci-bcm-kona.c val = sdhci_readl(host, KONA_SDHOST_CORESTAT); host 143 drivers/mmc/host/sdhci-bcm-kona.c ret = mmc_gpio_get_ro(host->mmc); host 149 drivers/mmc/host/sdhci-bcm-kona.c sdhci_writel(host, val, KONA_SDHOST_CORESTAT); host 152 drivers/mmc/host/sdhci-bcm-kona.c sdhci_writel(host, val, KONA_SDHOST_CORESTAT); host 162 drivers/mmc/host/sdhci-bcm-kona.c static void sdhci_bcm_kona_card_event(struct sdhci_host *host) host 164 drivers/mmc/host/sdhci-bcm-kona.c if (mmc_gpio_get_cd(host->mmc) > 0) { host 165 drivers/mmc/host/sdhci-bcm-kona.c dev_dbg(mmc_dev(host->mmc), host 167 drivers/mmc/host/sdhci-bcm-kona.c sdhci_bcm_kona_sd_card_emulate(host, 1); host 169 drivers/mmc/host/sdhci-bcm-kona.c dev_dbg(mmc_dev(host->mmc), host 171 drivers/mmc/host/sdhci-bcm-kona.c sdhci_bcm_kona_sd_card_emulate(host, 0); host 175 drivers/mmc/host/sdhci-bcm-kona.c static void sdhci_bcm_kona_init_74_clocks(struct sdhci_host *host, host 219 drivers/mmc/host/sdhci-bcm-kona.c struct sdhci_host *host; host 224 drivers/mmc/host/sdhci-bcm-kona.c host = sdhci_pltfm_init(pdev, &sdhci_pltfm_data_kona, host 226 drivers/mmc/host/sdhci-bcm-kona.c if (IS_ERR(host)) host 227 drivers/mmc/host/sdhci-bcm-kona.c return PTR_ERR(host); host 229 drivers/mmc/host/sdhci-bcm-kona.c dev_dbg(dev, "%s: inited. IOADDR=%p\n", __func__, host->ioaddr); host 231 drivers/mmc/host/sdhci-bcm-kona.c pltfm_priv = sdhci_priv(host); host 236 drivers/mmc/host/sdhci-bcm-kona.c ret = mmc_of_parse(host->mmc); host 240 drivers/mmc/host/sdhci-bcm-kona.c if (!host->mmc->f_max) { host 254 drivers/mmc/host/sdhci-bcm-kona.c ret = clk_set_rate(pltfm_priv->clk, host->mmc->f_max); host 267 drivers/mmc/host/sdhci-bcm-kona.c mmc_card_is_removable(host->mmc) ? 'N' : 'Y'); host 269 drivers/mmc/host/sdhci-bcm-kona.c (mmc_gpio_get_cd(host->mmc) != -ENOSYS) ? 'Y' : 'N', host 270 drivers/mmc/host/sdhci-bcm-kona.c (mmc_gpio_get_ro(host->mmc) != -ENOSYS) ? 'Y' : 'N'); host 272 drivers/mmc/host/sdhci-bcm-kona.c if (!mmc_card_is_removable(host->mmc)) host 273 drivers/mmc/host/sdhci-bcm-kona.c host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION; host 276 drivers/mmc/host/sdhci-bcm-kona.c (host->mmc->caps & MMC_CAP_8_BIT_DATA) ? 'Y' : 'N'); host 278 drivers/mmc/host/sdhci-bcm-kona.c ret = sdhci_bcm_kona_sd_reset(host); host 282 drivers/mmc/host/sdhci-bcm-kona.c sdhci_bcm_kona_sd_init(host); host 284 drivers/mmc/host/sdhci-bcm-kona.c ret = sdhci_add_host(host); host 289 drivers/mmc/host/sdhci-bcm-kona.c if (!mmc_card_is_removable(host->mmc)) { host 290 drivers/mmc/host/sdhci-bcm-kona.c ret = sdhci_bcm_kona_sd_card_emulate(host, 1); host 302 drivers/mmc/host/sdhci-bcm-kona.c if (mmc_gpio_get_cd(host->mmc) > 0) host 303 drivers/mmc/host/sdhci-bcm-kona.c sdhci_bcm_kona_sd_card_emulate(host, 1); host 309 drivers/mmc/host/sdhci-bcm-kona.c sdhci_remove_host(host, 0); host 312 drivers/mmc/host/sdhci-bcm-kona.c sdhci_bcm_kona_sd_reset(host); host 28 drivers/mmc/host/sdhci-brcmstb.c struct sdhci_host *host; host 42 drivers/mmc/host/sdhci-brcmstb.c host = sdhci_pltfm_init(pdev, &sdhci_brcmstb_pdata, 0); host 43 drivers/mmc/host/sdhci-brcmstb.c if (IS_ERR(host)) { host 44 drivers/mmc/host/sdhci-brcmstb.c res = PTR_ERR(host); host 49 drivers/mmc/host/sdhci-brcmstb.c res = mmc_of_parse(host->mmc); host 58 drivers/mmc/host/sdhci-brcmstb.c host->caps = sdhci_readl(host, SDHCI_CAPABILITIES); host 60 drivers/mmc/host/sdhci-brcmstb.c host->caps &= ~SDHCI_CAN_64BIT; host 61 drivers/mmc/host/sdhci-brcmstb.c host->caps1 = sdhci_readl(host, SDHCI_CAPABILITIES_1); host 62 drivers/mmc/host/sdhci-brcmstb.c host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_SDR104 | host 64 drivers/mmc/host/sdhci-brcmstb.c host->quirks |= SDHCI_QUIRK_MISSING_CAPS | host 67 drivers/mmc/host/sdhci-brcmstb.c res = sdhci_add_host(host); host 71 drivers/mmc/host/sdhci-brcmstb.c pltfm_host = sdhci_priv(host); host 162 drivers/mmc/host/sdhci-cadence.c static inline void *sdhci_cdns_priv(struct sdhci_host *host) host 164 drivers/mmc/host/sdhci-cadence.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 169 drivers/mmc/host/sdhci-cadence.c static unsigned int sdhci_cdns_get_timeout_clock(struct sdhci_host *host) host 175 drivers/mmc/host/sdhci-cadence.c return host->max_clk; host 197 drivers/mmc/host/sdhci-cadence.c static void sdhci_cdns_set_uhs_signaling(struct sdhci_host *host, host 200 drivers/mmc/host/sdhci-cadence.c struct sdhci_cdns_priv *priv = sdhci_cdns_priv(host); host 228 drivers/mmc/host/sdhci-cadence.c sdhci_set_uhs_signaling(host, timing); host 248 drivers/mmc/host/sdhci-cadence.c static int sdhci_cdns_set_tune_val(struct sdhci_host *host, unsigned int val) host 250 drivers/mmc/host/sdhci-cadence.c struct sdhci_cdns_priv *priv = sdhci_cdns_priv(host); host 283 drivers/mmc/host/sdhci-cadence.c struct sdhci_host *host = mmc_priv(mmc); host 293 drivers/mmc/host/sdhci-cadence.c if (host->timing != MMC_TIMING_MMC_HS200) host 300 drivers/mmc/host/sdhci-cadence.c if (sdhci_cdns_set_tune_val(host, i) || host 301 drivers/mmc/host/sdhci-cadence.c mmc_send_tuning(host->mmc, opcode, NULL)) { /* bad */ host 313 drivers/mmc/host/sdhci-cadence.c dev_err(mmc_dev(host->mmc), "no tuning point found\n"); host 317 drivers/mmc/host/sdhci-cadence.c return sdhci_cdns_set_tune_val(host, end_of_streak - max_streak / 2); host 323 drivers/mmc/host/sdhci-cadence.c struct sdhci_host *host = mmc_priv(mmc); host 324 drivers/mmc/host/sdhci-cadence.c struct sdhci_cdns_priv *priv = sdhci_cdns_priv(host); host 342 drivers/mmc/host/sdhci-cadence.c struct sdhci_host *host; host 365 drivers/mmc/host/sdhci-cadence.c host = sdhci_pltfm_init(pdev, data, host 367 drivers/mmc/host/sdhci-cadence.c if (IS_ERR(host)) { host 368 drivers/mmc/host/sdhci-cadence.c ret = PTR_ERR(host); host 372 drivers/mmc/host/sdhci-cadence.c pltfm_host = sdhci_priv(host); host 377 drivers/mmc/host/sdhci-cadence.c priv->hrs_addr = host->ioaddr; host 379 drivers/mmc/host/sdhci-cadence.c host->ioaddr += SDHCI_CDNS_SRS_BASE; host 380 drivers/mmc/host/sdhci-cadence.c host->mmc_host_ops.execute_tuning = sdhci_cdns_execute_tuning; host 381 drivers/mmc/host/sdhci-cadence.c host->mmc_host_ops.hs400_enhanced_strobe = host 383 drivers/mmc/host/sdhci-cadence.c sdhci_enable_v4_mode(host); host 384 drivers/mmc/host/sdhci-cadence.c __sdhci_read_caps(host, &version, NULL, NULL); host 388 drivers/mmc/host/sdhci-cadence.c ret = mmc_of_parse(host->mmc); host 398 drivers/mmc/host/sdhci-cadence.c ret = sdhci_add_host(host); host 414 drivers/mmc/host/sdhci-cadence.c struct sdhci_host *host = dev_get_drvdata(dev); host 415 drivers/mmc/host/sdhci-cadence.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 427 drivers/mmc/host/sdhci-cadence.c ret = sdhci_resume_host(host); host 18 drivers/mmc/host/sdhci-cns3xxx.c static unsigned int sdhci_cns3xxx_get_max_clk(struct sdhci_host *host) host 23 drivers/mmc/host/sdhci-cns3xxx.c static void sdhci_cns3xxx_set_clock(struct sdhci_host *host, unsigned int clock) host 25 drivers/mmc/host/sdhci-cns3xxx.c struct device *dev = mmc_dev(host->mmc); host 30 drivers/mmc/host/sdhci-cns3xxx.c host->mmc->actual_clock = 0; host 32 drivers/mmc/host/sdhci-cns3xxx.c sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); host 37 drivers/mmc/host/sdhci-cns3xxx.c while (host->max_clk / div > clock) { host 51 drivers/mmc/host/sdhci-cns3xxx.c clock, host->max_clk / div); host 59 drivers/mmc/host/sdhci-cns3xxx.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 62 drivers/mmc/host/sdhci-cns3xxx.c while (!((clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL)) host 73 drivers/mmc/host/sdhci-cns3xxx.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 19 drivers/mmc/host/sdhci-dove.c static u16 sdhci_dove_readw(struct sdhci_host *host, int reg) host 29 drivers/mmc/host/sdhci-dove.c ret = readw(host->ioaddr + reg); host 34 drivers/mmc/host/sdhci-dove.c static u32 sdhci_dove_readl(struct sdhci_host *host, int reg) host 38 drivers/mmc/host/sdhci-dove.c ret = readl(host->ioaddr + reg); host 69 drivers/mmc/host/sdhci-dove.c struct sdhci_host *host; host 73 drivers/mmc/host/sdhci-dove.c host = sdhci_pltfm_init(pdev, &sdhci_dove_pdata, 0); host 74 drivers/mmc/host/sdhci-dove.c if (IS_ERR(host)) host 75 drivers/mmc/host/sdhci-dove.c return PTR_ERR(host); host 77 drivers/mmc/host/sdhci-dove.c pltfm_host = sdhci_priv(host); host 83 drivers/mmc/host/sdhci-dove.c ret = mmc_of_parse(host->mmc); host 87 drivers/mmc/host/sdhci-dove.c ret = sdhci_add_host(host); host 297 drivers/mmc/host/sdhci-esdhc-imx.c static inline void esdhc_clrset_le(struct sdhci_host *host, u32 mask, u32 val, int reg) host 299 drivers/mmc/host/sdhci-esdhc-imx.c void __iomem *base = host->ioaddr + (reg & ~0x3); host 305 drivers/mmc/host/sdhci-esdhc-imx.c static u32 esdhc_readl_le(struct sdhci_host *host, int reg) host 307 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 309 drivers/mmc/host/sdhci-esdhc-imx.c u32 val = readl(host->ioaddr + reg); host 342 drivers/mmc/host/sdhci-esdhc-imx.c val = readl(host->ioaddr + SDHCI_CAPABILITIES) & 0xFFFF; host 384 drivers/mmc/host/sdhci-esdhc-imx.c writel(SDHCI_INT_RESPONSE, host->ioaddr + host 393 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_writel_le(struct sdhci_host *host, u32 val, int reg) host 395 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 410 drivers/mmc/host/sdhci-esdhc-imx.c data = readl(host->ioaddr + SDHCI_HOST_CONTROL); host 412 drivers/mmc/host/sdhci-esdhc-imx.c writel(data, host->ioaddr + SDHCI_HOST_CONTROL); host 414 drivers/mmc/host/sdhci-esdhc-imx.c writel(data, host->ioaddr + SDHCI_HOST_CONTROL); host 427 drivers/mmc/host/sdhci-esdhc-imx.c v = readl(host->ioaddr + ESDHC_VENDOR_SPEC); host 429 drivers/mmc/host/sdhci-esdhc-imx.c writel(v, host->ioaddr + ESDHC_VENDOR_SPEC); host 436 drivers/mmc/host/sdhci-esdhc-imx.c writel(data, host->ioaddr + SDHCI_TRANSFER_MODE); host 441 drivers/mmc/host/sdhci-esdhc-imx.c writel(val, host->ioaddr + reg); host 444 drivers/mmc/host/sdhci-esdhc-imx.c static u16 esdhc_readw_le(struct sdhci_host *host, int reg) host 446 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 463 drivers/mmc/host/sdhci-esdhc-imx.c val = readl(host->ioaddr + ESDHC_VENDOR_SPEC); host 469 drivers/mmc/host/sdhci-esdhc-imx.c val = readl(host->ioaddr + ESDHC_MIX_CTRL); host 472 drivers/mmc/host/sdhci-esdhc-imx.c val = readl(host->ioaddr + SDHCI_AUTO_CMD_STATUS); host 487 drivers/mmc/host/sdhci-esdhc-imx.c u32 m = readl(host->ioaddr + ESDHC_MIX_CTRL); host 495 drivers/mmc/host/sdhci-esdhc-imx.c ret = readw(host->ioaddr + SDHCI_TRANSFER_MODE); host 501 drivers/mmc/host/sdhci-esdhc-imx.c return readw(host->ioaddr + reg); host 504 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_writew_le(struct sdhci_host *host, u16 val, int reg) host 506 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 512 drivers/mmc/host/sdhci-esdhc-imx.c new_val = readl(host->ioaddr + ESDHC_VENDOR_SPEC); host 517 drivers/mmc/host/sdhci-esdhc-imx.c writel(new_val, host->ioaddr + ESDHC_VENDOR_SPEC); host 520 drivers/mmc/host/sdhci-esdhc-imx.c new_val = readl(host->ioaddr + ESDHC_VENDOR_SPEC); host 525 drivers/mmc/host/sdhci-esdhc-imx.c writel(new_val, host->ioaddr + ESDHC_VENDOR_SPEC); host 527 drivers/mmc/host/sdhci-esdhc-imx.c new_val = readl(host->ioaddr + ESDHC_MIX_CTRL); host 535 drivers/mmc/host/sdhci-esdhc-imx.c writel(new_val , host->ioaddr + ESDHC_MIX_CTRL); host 537 drivers/mmc/host/sdhci-esdhc-imx.c u32 v = readl(host->ioaddr + SDHCI_AUTO_CMD_STATUS); host 538 drivers/mmc/host/sdhci-esdhc-imx.c u32 m = readl(host->ioaddr + ESDHC_MIX_CTRL); host 555 drivers/mmc/host/sdhci-esdhc-imx.c writel(v, host->ioaddr + SDHCI_AUTO_CMD_STATUS); host 556 drivers/mmc/host/sdhci-esdhc-imx.c writel(m, host->ioaddr + ESDHC_MIX_CTRL); host 561 drivers/mmc/host/sdhci-esdhc-imx.c && (host->cmd->opcode == SD_IO_RW_EXTENDED) host 562 drivers/mmc/host/sdhci-esdhc-imx.c && (host->cmd->data->blocks > 1) host 563 drivers/mmc/host/sdhci-esdhc-imx.c && (host->cmd->data->flags & MMC_DATA_READ)) { host 565 drivers/mmc/host/sdhci-esdhc-imx.c v = readl(host->ioaddr + ESDHC_VENDOR_SPEC); host 567 drivers/mmc/host/sdhci-esdhc-imx.c writel(v, host->ioaddr + ESDHC_VENDOR_SPEC); host 572 drivers/mmc/host/sdhci-esdhc-imx.c u32 m = readl(host->ioaddr + ESDHC_MIX_CTRL); host 579 drivers/mmc/host/sdhci-esdhc-imx.c writel(m, host->ioaddr + ESDHC_MIX_CTRL); host 585 drivers/mmc/host/sdhci-esdhc-imx.c m = readl(host->ioaddr + ESDHC_WTMK_LVL); host 594 drivers/mmc/host/sdhci-esdhc-imx.c writel(m, host->ioaddr + ESDHC_WTMK_LVL); host 604 drivers/mmc/host/sdhci-esdhc-imx.c if (host->cmd->opcode == MMC_STOP_TRANSMISSION) host 607 drivers/mmc/host/sdhci-esdhc-imx.c if ((host->cmd->opcode == MMC_SET_BLOCK_COUNT) && host 613 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + SDHCI_TRANSFER_MODE); host 616 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + SDHCI_TRANSFER_MODE); host 622 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_clrset_le(host, 0xffff, val, reg); host 625 drivers/mmc/host/sdhci-esdhc-imx.c static u8 esdhc_readb_le(struct sdhci_host *host, int reg) host 632 drivers/mmc/host/sdhci-esdhc-imx.c val = readl(host->ioaddr + reg); host 641 drivers/mmc/host/sdhci-esdhc-imx.c return readb(host->ioaddr + reg); host 644 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_writeb_le(struct sdhci_host *host, u8 val, int reg) host 646 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 677 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_clrset_le(host, mask, new_val, reg); host 681 drivers/mmc/host/sdhci-esdhc-imx.c new_val = readl(host->ioaddr + SDHCI_HOST_CONTROL); host 684 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_clrset_le(host, 0xff, val, reg); host 697 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_clrset_le(host, 0x7, 0x7, ESDHC_SYSTEM_CONTROL); host 706 drivers/mmc/host/sdhci-esdhc-imx.c new_val = readl(host->ioaddr + ESDHC_MIX_CTRL); host 708 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + ESDHC_MIX_CTRL); host 717 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_clrset_le(host, 0xff, new_val, host 723 drivers/mmc/host/sdhci-esdhc-imx.c static unsigned int esdhc_pltfm_get_max_clock(struct sdhci_host *host) host 725 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 730 drivers/mmc/host/sdhci-esdhc-imx.c static unsigned int esdhc_pltfm_get_min_clock(struct sdhci_host *host) host 732 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 737 drivers/mmc/host/sdhci-esdhc-imx.c static inline void esdhc_pltfm_set_clock(struct sdhci_host *host, host 740 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 749 drivers/mmc/host/sdhci-esdhc-imx.c val = readl(host->ioaddr + ESDHC_VENDOR_SPEC); host 751 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + ESDHC_VENDOR_SPEC); host 755 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->actual_clock = 0; host 765 drivers/mmc/host/sdhci-esdhc-imx.c val = readl(host->ioaddr + ESDHC_DLL_CTRL); host 766 drivers/mmc/host/sdhci-esdhc-imx.c writel(val | BIT(10), host->ioaddr + ESDHC_DLL_CTRL); host 767 drivers/mmc/host/sdhci-esdhc-imx.c temp = readl(host->ioaddr + ESDHC_DLL_CTRL); host 768 drivers/mmc/host/sdhci-esdhc-imx.c writel(val, host->ioaddr + ESDHC_DLL_CTRL); host 773 drivers/mmc/host/sdhci-esdhc-imx.c temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL); host 776 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); host 793 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->actual_clock = host_clock / (div * pre_div * ddr_pre_div); host 794 drivers/mmc/host/sdhci-esdhc-imx.c dev_dbg(mmc_dev(host->mmc), "desired SD clock: %d, actual: %d\n", host 795 drivers/mmc/host/sdhci-esdhc-imx.c clock, host->mmc->actual_clock); host 800 drivers/mmc/host/sdhci-esdhc-imx.c temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL); host 804 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); host 807 drivers/mmc/host/sdhci-esdhc-imx.c val = readl(host->ioaddr + ESDHC_VENDOR_SPEC); host 809 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + ESDHC_VENDOR_SPEC); host 815 drivers/mmc/host/sdhci-esdhc-imx.c static unsigned int esdhc_pltfm_get_ro(struct sdhci_host *host) host 817 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 823 drivers/mmc/host/sdhci-esdhc-imx.c return mmc_gpio_get_ro(host->mmc); host 825 drivers/mmc/host/sdhci-esdhc-imx.c return !(readl(host->ioaddr + SDHCI_PRESENT_STATE) & host 834 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_pltfm_set_bus_width(struct sdhci_host *host, int width) host 850 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_clrset_le(host, ESDHC_CTRL_BUSWIDTH_MASK, ctrl, host 856 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host = mmc_priv(mmc); host 862 drivers/mmc/host/sdhci-esdhc-imx.c if (host->timing == MMC_TIMING_UHS_DDR50) host 868 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_prepare_tuning(struct sdhci_host *host, u32 val) host 875 drivers/mmc/host/sdhci-esdhc-imx.c reg = readl(host->ioaddr + ESDHC_MIX_CTRL); host 878 drivers/mmc/host/sdhci-esdhc-imx.c writel(reg, host->ioaddr + ESDHC_MIX_CTRL); host 879 drivers/mmc/host/sdhci-esdhc-imx.c writel(val << 8, host->ioaddr + ESDHC_TUNE_CTRL_STATUS); host 880 drivers/mmc/host/sdhci-esdhc-imx.c dev_dbg(mmc_dev(host->mmc), host 882 drivers/mmc/host/sdhci-esdhc-imx.c val, readl(host->ioaddr + ESDHC_TUNE_CTRL_STATUS)); host 885 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_post_tuning(struct sdhci_host *host) host 889 drivers/mmc/host/sdhci-esdhc-imx.c reg = readl(host->ioaddr + ESDHC_MIX_CTRL); host 892 drivers/mmc/host/sdhci-esdhc-imx.c writel(reg, host->ioaddr + ESDHC_MIX_CTRL); host 895 drivers/mmc/host/sdhci-esdhc-imx.c static int esdhc_executing_tuning(struct sdhci_host *host, u32 opcode) host 902 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_prepare_tuning(host, min); host 903 drivers/mmc/host/sdhci-esdhc-imx.c if (!mmc_send_tuning(host->mmc, opcode, NULL)) host 911 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_prepare_tuning(host, max); host 912 drivers/mmc/host/sdhci-esdhc-imx.c if (mmc_send_tuning(host->mmc, opcode, NULL)) { host 921 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_prepare_tuning(host, avg); host 922 drivers/mmc/host/sdhci-esdhc-imx.c ret = mmc_send_tuning(host->mmc, opcode, NULL); host 923 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_post_tuning(host); host 925 drivers/mmc/host/sdhci-esdhc-imx.c dev_dbg(mmc_dev(host->mmc), "tuning %s at 0x%x ret %d\n", host 933 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host = mmc_priv(mmc); host 936 drivers/mmc/host/sdhci-esdhc-imx.c m = readl(host->ioaddr + ESDHC_MIX_CTRL); host 941 drivers/mmc/host/sdhci-esdhc-imx.c writel(m, host->ioaddr + ESDHC_MIX_CTRL); host 944 drivers/mmc/host/sdhci-esdhc-imx.c static int esdhc_change_pinstate(struct sdhci_host *host, host 947 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 951 drivers/mmc/host/sdhci-esdhc-imx.c dev_dbg(mmc_dev(host->mmc), "change pinctrl state for uhs %d\n", uhs); host 986 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_set_strobe_dll(struct sdhci_host *host) host 991 drivers/mmc/host/sdhci-esdhc-imx.c writel(readl(host->ioaddr + ESDHC_VENDOR_SPEC) & host 993 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + ESDHC_VENDOR_SPEC); host 997 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + ESDHC_STROBE_DLL_CTRL); host 999 drivers/mmc/host/sdhci-esdhc-imx.c writel(0, host->ioaddr + ESDHC_STROBE_DLL_CTRL); host 1008 drivers/mmc/host/sdhci-esdhc-imx.c writel(v, host->ioaddr + ESDHC_STROBE_DLL_CTRL); host 1011 drivers/mmc/host/sdhci-esdhc-imx.c v = readl(host->ioaddr + ESDHC_STROBE_DLL_STATUS); host 1013 drivers/mmc/host/sdhci-esdhc-imx.c dev_warn(mmc_dev(host->mmc), host 1016 drivers/mmc/host/sdhci-esdhc-imx.c dev_warn(mmc_dev(host->mmc), host 1020 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_reset_tuning(struct sdhci_host *host) host 1022 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1029 drivers/mmc/host/sdhci-esdhc-imx.c ctrl = readl(host->ioaddr + ESDHC_MIX_CTRL); host 1032 drivers/mmc/host/sdhci-esdhc-imx.c writel(ctrl, host->ioaddr + ESDHC_MIX_CTRL); host 1033 drivers/mmc/host/sdhci-esdhc-imx.c writel(0, host->ioaddr + ESDHC_TUNE_CTRL_STATUS); host 1035 drivers/mmc/host/sdhci-esdhc-imx.c ctrl = readl(host->ioaddr + SDHCI_AUTO_CMD_STATUS); host 1037 drivers/mmc/host/sdhci-esdhc-imx.c writel(ctrl, host->ioaddr + SDHCI_AUTO_CMD_STATUS); host 1042 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_set_uhs_signaling(struct sdhci_host *host, unsigned timing) host 1045 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1050 drivers/mmc/host/sdhci-esdhc-imx.c m = readl(host->ioaddr + ESDHC_MIX_CTRL); host 1061 drivers/mmc/host/sdhci-esdhc-imx.c writel(m, host->ioaddr + ESDHC_MIX_CTRL); host 1066 drivers/mmc/host/sdhci-esdhc-imx.c writel(m, host->ioaddr + ESDHC_MIX_CTRL); host 1075 drivers/mmc/host/sdhci-esdhc-imx.c writel(v, host->ioaddr + ESDHC_DLL_CTRL); host 1080 drivers/mmc/host/sdhci-esdhc-imx.c writel(m, host->ioaddr + ESDHC_MIX_CTRL); host 1083 drivers/mmc/host/sdhci-esdhc-imx.c host->ops->set_clock(host, host->clock); host 1084 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_set_strobe_dll(host); host 1088 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_reset_tuning(host); host 1092 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_change_pinstate(host, timing); host 1095 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_reset(struct sdhci_host *host, u8 mask) host 1097 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_reset(host, mask); host 1099 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 1100 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 1103 drivers/mmc/host/sdhci-esdhc-imx.c static unsigned int esdhc_get_max_timeout_count(struct sdhci_host *host) host 1105 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1112 drivers/mmc/host/sdhci-esdhc-imx.c static void esdhc_set_timeout(struct sdhci_host *host, struct mmc_command *cmd) host 1114 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1118 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_clrset_le(host, ESDHC_SYS_CTRL_DTOCV_MASK, host 1123 drivers/mmc/host/sdhci-esdhc-imx.c static u32 esdhc_cqhci_irq(struct sdhci_host *host, u32 intmask) host 1128 drivers/mmc/host/sdhci-esdhc-imx.c if (!sdhci_cqe_irq(host, intmask, &cmd_error, &data_error)) host 1131 drivers/mmc/host/sdhci-esdhc-imx.c cqhci_irq(host->mmc, intmask, cmd_error, data_error); host 1163 drivers/mmc/host/sdhci-esdhc-imx.c static void sdhci_esdhc_imx_hwinit(struct sdhci_host *host) host 1165 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1174 drivers/mmc/host/sdhci-esdhc-imx.c writel(ESDHC_WTMK_DEFAULT_VAL, host->ioaddr + ESDHC_WTMK_LVL); host 1187 drivers/mmc/host/sdhci-esdhc-imx.c writel(readl(host->ioaddr + SDHCI_HOST_CONTROL) host 1189 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + SDHCI_HOST_CONTROL); host 1195 drivers/mmc/host/sdhci-esdhc-imx.c writel(readl(host->ioaddr + 0x6c) & ~BIT(7), host 1196 drivers/mmc/host/sdhci-esdhc-imx.c host->ioaddr + 0x6c); host 1199 drivers/mmc/host/sdhci-esdhc-imx.c writel(0x0, host->ioaddr + ESDHC_DLL_CTRL); host 1211 drivers/mmc/host/sdhci-esdhc-imx.c tmp = readl(host->ioaddr + ESDHC_VEND_SPEC2); host 1213 drivers/mmc/host/sdhci-esdhc-imx.c writel(tmp, host->ioaddr + ESDHC_VEND_SPEC2); host 1215 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks &= ~SDHCI_QUIRK_NO_BUSY_IRQ; host 1219 drivers/mmc/host/sdhci-esdhc-imx.c tmp = readl(host->ioaddr + ESDHC_TUNING_CTRL); host 1232 drivers/mmc/host/sdhci-esdhc-imx.c writel(tmp, host->ioaddr + ESDHC_TUNING_CTRL); host 1239 drivers/mmc/host/sdhci-esdhc-imx.c tmp = readl(host->ioaddr + ESDHC_TUNING_CTRL); host 1241 drivers/mmc/host/sdhci-esdhc-imx.c writel(tmp, host->ioaddr + ESDHC_TUNING_CTRL); host 1248 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host = mmc_priv(mmc); host 1258 drivers/mmc/host/sdhci-esdhc-imx.c reg = sdhci_readl(host, SDHCI_PRESENT_STATE); host 1260 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_readl(host, SDHCI_BUFFER); host 1261 drivers/mmc/host/sdhci-esdhc-imx.c reg = sdhci_readl(host, SDHCI_PRESENT_STATE); host 1263 drivers/mmc/host/sdhci-esdhc-imx.c dev_warn(mmc_dev(host->mmc), host 1275 drivers/mmc/host/sdhci-esdhc-imx.c mode = sdhci_readw(host, SDHCI_TRANSFER_MODE); host 1276 drivers/mmc/host/sdhci-esdhc-imx.c if (host->flags & SDHCI_REQ_USE_DMA) host 1278 drivers/mmc/host/sdhci-esdhc-imx.c if (!(host->quirks2 & SDHCI_QUIRK2_SUPPORT_SINGLE)) host 1280 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_writew(host, mode, SDHCI_TRANSFER_MODE); host 1290 drivers/mmc/host/sdhci-esdhc-imx.c dev_err(mmc_dev(host->mmc), host 1311 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host, host 1334 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V; host 1339 drivers/mmc/host/sdhci-esdhc-imx.c mmc_of_parse_voltage(np, &host->ocr_mask); host 1349 drivers/mmc/host/sdhci-esdhc-imx.c ret = mmc_of_parse(host->mmc); host 1353 drivers/mmc/host/sdhci-esdhc-imx.c if (mmc_gpio_get_cd(host->mmc) >= 0) host 1354 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION; host 1361 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host, host 1369 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host, host 1375 drivers/mmc/host/sdhci-esdhc-imx.c if (!host->mmc->parent->platform_data) { host 1376 drivers/mmc/host/sdhci-esdhc-imx.c dev_err(mmc_dev(host->mmc), "no board data!\n"); host 1381 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->parent->platform_data); host 1384 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH; host 1386 drivers/mmc/host/sdhci-esdhc-imx.c err = mmc_gpiod_request_ro(host->mmc, "wp", 0, 0, NULL); host 1388 drivers/mmc/host/sdhci-esdhc-imx.c dev_err(mmc_dev(host->mmc), host 1397 drivers/mmc/host/sdhci-esdhc-imx.c err = mmc_gpiod_request_cd(host->mmc, "cd", 0, false, 0, NULL); host 1399 drivers/mmc/host/sdhci-esdhc-imx.c dev_err(mmc_dev(host->mmc), host 1407 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION; host 1411 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->caps |= MMC_CAP_NONREMOVABLE; host 1420 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA; host 1423 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->caps |= MMC_CAP_4_BIT_DATA; host 1427 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA; host 1439 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host; host 1444 drivers/mmc/host/sdhci-esdhc-imx.c host = sdhci_pltfm_init(pdev, &sdhci_esdhc_imx_pdata, host 1446 drivers/mmc/host/sdhci-esdhc-imx.c if (IS_ERR(host)) host 1447 drivers/mmc/host/sdhci-esdhc-imx.c return PTR_ERR(host); host 1449 drivers/mmc/host/sdhci-esdhc-imx.c pltfm_host = sdhci_priv(host); host 1499 drivers/mmc/host/sdhci-esdhc-imx.c dev_warn(mmc_dev(host->mmc), "could not get default state\n"); host 1502 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN; host 1503 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->caps |= MMC_CAP_1_8V_DDR | MMC_CAP_3_3V_DDR; host 1505 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; host 1508 drivers/mmc/host/sdhci-esdhc-imx.c writel(0x0, host->ioaddr + ESDHC_MIX_CTRL); host 1509 drivers/mmc/host/sdhci-esdhc-imx.c writel(0x0, host->ioaddr + SDHCI_AUTO_CMD_STATUS); host 1510 drivers/mmc/host/sdhci-esdhc-imx.c writel(0x0, host->ioaddr + ESDHC_TUNE_CTRL_STATUS); host 1516 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc_host_ops.execute_tuning = usdhc_execute_tuning; host 1524 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks |= SDHCI_QUIRK_BROKEN_ADMA; host 1527 drivers/mmc/host/sdhci-esdhc-imx.c host->quirks2 |= SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400; host 1530 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->caps2 |= MMC_CAP2_HS400_ES; host 1531 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc_host_ops.hs400_enhanced_strobe = host 1536 drivers/mmc/host/sdhci-esdhc-imx.c host->mmc->caps2 |= MMC_CAP2_CQE | MMC_CAP2_CQE_DCMD; host 1543 drivers/mmc/host/sdhci-esdhc-imx.c cq_host->mmio = host->ioaddr + ESDHC_CQHCI_ADDR_OFFSET; host 1546 drivers/mmc/host/sdhci-esdhc-imx.c err = cqhci_init(cq_host, host->mmc, false); host 1552 drivers/mmc/host/sdhci-esdhc-imx.c err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); host 1554 drivers/mmc/host/sdhci-esdhc-imx.c err = sdhci_esdhc_imx_probe_nondt(pdev, host, imx_data); host 1558 drivers/mmc/host/sdhci-esdhc-imx.c host->tuning_delay = 1; host 1560 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_esdhc_imx_hwinit(host); host 1562 drivers/mmc/host/sdhci-esdhc-imx.c err = sdhci_add_host(host); host 1589 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host = platform_get_drvdata(pdev); host 1590 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1592 drivers/mmc/host/sdhci-esdhc-imx.c int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff); host 1598 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_remove_host(host, dead); host 1615 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host = dev_get_drvdata(dev); host 1618 drivers/mmc/host/sdhci-esdhc-imx.c if (host->mmc->caps2 & MMC_CAP2_CQE) { host 1619 drivers/mmc/host/sdhci-esdhc-imx.c ret = cqhci_suspend(host->mmc); host 1624 drivers/mmc/host/sdhci-esdhc-imx.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 1625 drivers/mmc/host/sdhci-esdhc-imx.c mmc_retune_needed(host->mmc); host 1627 drivers/mmc/host/sdhci-esdhc-imx.c return sdhci_suspend_host(host); host 1632 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host = dev_get_drvdata(dev); host 1636 drivers/mmc/host/sdhci-esdhc-imx.c sdhci_esdhc_imx_hwinit(host); host 1638 drivers/mmc/host/sdhci-esdhc-imx.c ret = sdhci_resume_host(host); host 1642 drivers/mmc/host/sdhci-esdhc-imx.c if (host->mmc->caps2 & MMC_CAP2_CQE) host 1643 drivers/mmc/host/sdhci-esdhc-imx.c ret = cqhci_resume(host->mmc); host 1652 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host = dev_get_drvdata(dev); host 1653 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1657 drivers/mmc/host/sdhci-esdhc-imx.c if (host->mmc->caps2 & MMC_CAP2_CQE) { host 1658 drivers/mmc/host/sdhci-esdhc-imx.c ret = cqhci_suspend(host->mmc); host 1663 drivers/mmc/host/sdhci-esdhc-imx.c ret = sdhci_runtime_suspend_host(host); host 1667 drivers/mmc/host/sdhci-esdhc-imx.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 1668 drivers/mmc/host/sdhci-esdhc-imx.c mmc_retune_needed(host->mmc); host 1670 drivers/mmc/host/sdhci-esdhc-imx.c imx_data->actual_clock = host->mmc->actual_clock; host 1671 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_pltfm_set_clock(host, 0); host 1684 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_host *host = dev_get_drvdata(dev); host 1685 drivers/mmc/host/sdhci-esdhc-imx.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1705 drivers/mmc/host/sdhci-esdhc-imx.c esdhc_pltfm_set_clock(host, imx_data->actual_clock); host 1707 drivers/mmc/host/sdhci-esdhc-imx.c err = sdhci_runtime_resume_host(host, 0); host 1711 drivers/mmc/host/sdhci-esdhc-imx.c if (host->mmc->caps2 & MMC_CAP2_CQE) host 1712 drivers/mmc/host/sdhci-esdhc-imx.c err = cqhci_resume(host->mmc); host 43 drivers/mmc/host/sdhci-iproc.c static inline u32 sdhci_iproc_readl(struct sdhci_host *host, int reg) host 45 drivers/mmc/host/sdhci-iproc.c u32 val = readl(host->ioaddr + reg); host 48 drivers/mmc/host/sdhci-iproc.c mmc_hostname(host->mmc), reg, val); host 52 drivers/mmc/host/sdhci-iproc.c static u16 sdhci_iproc_readw(struct sdhci_host *host, int reg) host 54 drivers/mmc/host/sdhci-iproc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 67 drivers/mmc/host/sdhci-iproc.c val = sdhci_iproc_readl(host, (reg & ~3)); host 73 drivers/mmc/host/sdhci-iproc.c static u8 sdhci_iproc_readb(struct sdhci_host *host, int reg) host 75 drivers/mmc/host/sdhci-iproc.c u32 val = sdhci_iproc_readl(host, (reg & ~3)); host 80 drivers/mmc/host/sdhci-iproc.c static inline void sdhci_iproc_writel(struct sdhci_host *host, u32 val, int reg) host 83 drivers/mmc/host/sdhci-iproc.c mmc_hostname(host->mmc), reg, val); host 85 drivers/mmc/host/sdhci-iproc.c writel(val, host->ioaddr + reg); host 87 drivers/mmc/host/sdhci-iproc.c if (host->clock <= 400000) { host 89 drivers/mmc/host/sdhci-iproc.c if (host->clock) host 90 drivers/mmc/host/sdhci-iproc.c udelay((4 * 1000000 + host->clock - 1) / host->clock); host 115 drivers/mmc/host/sdhci-iproc.c static void sdhci_iproc_writew(struct sdhci_host *host, u16 val, int reg) host 117 drivers/mmc/host/sdhci-iproc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 126 drivers/mmc/host/sdhci-iproc.c sdhci_iproc_writel(host, iproc_host->shadow_blk, host 138 drivers/mmc/host/sdhci-iproc.c oldval = sdhci_iproc_readl(host, (reg & ~3)); host 152 drivers/mmc/host/sdhci-iproc.c sdhci_iproc_writel(host, newval, reg & ~3); host 156 drivers/mmc/host/sdhci-iproc.c static void sdhci_iproc_writeb(struct sdhci_host *host, u8 val, int reg) host 158 drivers/mmc/host/sdhci-iproc.c u32 oldval = sdhci_iproc_readl(host, (reg & ~3)); host 163 drivers/mmc/host/sdhci-iproc.c sdhci_iproc_writel(host, newval, reg & ~3); host 166 drivers/mmc/host/sdhci-iproc.c static unsigned int sdhci_iproc_get_max_clock(struct sdhci_host *host) host 168 drivers/mmc/host/sdhci-iproc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 171 drivers/mmc/host/sdhci-iproc.c return sdhci_pltfm_clk_get_max_clock(host); host 293 drivers/mmc/host/sdhci-iproc.c struct sdhci_host *host; host 302 drivers/mmc/host/sdhci-iproc.c host = sdhci_pltfm_init(pdev, iproc_data->pdata, sizeof(*iproc_host)); host 303 drivers/mmc/host/sdhci-iproc.c if (IS_ERR(host)) host 304 drivers/mmc/host/sdhci-iproc.c return PTR_ERR(host); host 306 drivers/mmc/host/sdhci-iproc.c pltfm_host = sdhci_priv(host); host 311 drivers/mmc/host/sdhci-iproc.c ret = mmc_of_parse(host->mmc); host 317 drivers/mmc/host/sdhci-iproc.c host->mmc->caps |= iproc_host->data->mmc_caps; host 333 drivers/mmc/host/sdhci-iproc.c host->caps = iproc_host->data->caps; host 334 drivers/mmc/host/sdhci-iproc.c host->caps1 = iproc_host->data->caps1; host 337 drivers/mmc/host/sdhci-iproc.c ret = sdhci_add_host(host); host 119 drivers/mmc/host/sdhci-msm.c #define msm_host_readl(msm_host, host, offset) \ host 120 drivers/mmc/host/sdhci-msm.c msm_host->var_ops->msm_readl_relaxed(host, offset) host 122 drivers/mmc/host/sdhci-msm.c #define msm_host_writel(msm_host, val, host, offset) \ host 123 drivers/mmc/host/sdhci-msm.c msm_host->var_ops->msm_writel_relaxed(val, host, offset) host 216 drivers/mmc/host/sdhci-msm.c u32 (*msm_readl_relaxed)(struct sdhci_host *host, u32 offset); host 217 drivers/mmc/host/sdhci-msm.c void (*msm_writel_relaxed)(u32 val, struct sdhci_host *host, host 260 drivers/mmc/host/sdhci-msm.c static const struct sdhci_msm_offset *sdhci_priv_msm_offset(struct sdhci_host *host) host 262 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 272 drivers/mmc/host/sdhci-msm.c static u32 sdhci_msm_mci_variant_readl_relaxed(struct sdhci_host *host, host 275 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 281 drivers/mmc/host/sdhci-msm.c static u32 sdhci_msm_v5_variant_readl_relaxed(struct sdhci_host *host, host 284 drivers/mmc/host/sdhci-msm.c return readl_relaxed(host->ioaddr + offset); host 288 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host, u32 offset) host 290 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 297 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host, u32 offset) host 299 drivers/mmc/host/sdhci-msm.c writel_relaxed(val, host->ioaddr + offset); host 302 drivers/mmc/host/sdhci-msm.c static unsigned int msm_get_clock_rate_for_bus_mode(struct sdhci_host *host, host 305 drivers/mmc/host/sdhci-msm.c struct mmc_ios ios = host->mmc->ios; host 315 drivers/mmc/host/sdhci-msm.c host->flags & SDHCI_HS400_TUNING) host 320 drivers/mmc/host/sdhci-msm.c static void msm_set_clock_rate_for_bus_mode(struct sdhci_host *host, host 323 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 325 drivers/mmc/host/sdhci-msm.c struct mmc_ios curr_ios = host->mmc->ios; host 329 drivers/mmc/host/sdhci-msm.c clock = msm_get_clock_rate_for_bus_mode(host, clock); host 333 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), clock, host 339 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), clk_get_rate(core_clk), host 344 drivers/mmc/host/sdhci-msm.c static inline int msm_dll_poll_ck_out_en(struct sdhci_host *host, u8 poll) host 348 drivers/mmc/host/sdhci-msm.c struct mmc_host *mmc = host->mmc; host 350 drivers/mmc/host/sdhci-msm.c sdhci_priv_msm_offset(host); host 353 drivers/mmc/host/sdhci-msm.c ck_out_en = !!(readl_relaxed(host->ioaddr + host 364 drivers/mmc/host/sdhci-msm.c ck_out_en = !!(readl_relaxed(host->ioaddr + host 371 drivers/mmc/host/sdhci-msm.c static int msm_config_cm_dll_phase(struct sdhci_host *host, u8 phase) host 380 drivers/mmc/host/sdhci-msm.c struct mmc_host *mmc = host->mmc; host 382 drivers/mmc/host/sdhci-msm.c sdhci_priv_msm_offset(host); host 387 drivers/mmc/host/sdhci-msm.c spin_lock_irqsave(&host->lock, flags); host 389 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_dll_config); host 392 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_dll_config); host 395 drivers/mmc/host/sdhci-msm.c rc = msm_dll_poll_ck_out_en(host, 0); host 403 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_dll_config); host 406 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_dll_config); host 408 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_dll_config); host 410 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_dll_config); host 413 drivers/mmc/host/sdhci-msm.c rc = msm_dll_poll_ck_out_en(host, 1); host 417 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_dll_config); host 420 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_dll_config); host 427 drivers/mmc/host/sdhci-msm.c spin_unlock_irqrestore(&host->lock, flags); host 441 drivers/mmc/host/sdhci-msm.c static int msm_find_most_appropriate_phase(struct sdhci_host *host, host 450 drivers/mmc/host/sdhci-msm.c struct mmc_host *mmc = host->mmc; host 543 drivers/mmc/host/sdhci-msm.c static inline void msm_cm_dll_set_freq(struct sdhci_host *host) host 547 drivers/mmc/host/sdhci-msm.c sdhci_priv_msm_offset(host); host 550 drivers/mmc/host/sdhci-msm.c if (host->clock <= 112000000) host 552 drivers/mmc/host/sdhci-msm.c else if (host->clock <= 125000000) host 554 drivers/mmc/host/sdhci-msm.c else if (host->clock <= 137000000) host 556 drivers/mmc/host/sdhci-msm.c else if (host->clock <= 150000000) host 558 drivers/mmc/host/sdhci-msm.c else if (host->clock <= 162000000) host 560 drivers/mmc/host/sdhci-msm.c else if (host->clock <= 175000000) host 562 drivers/mmc/host/sdhci-msm.c else if (host->clock <= 187000000) host 564 drivers/mmc/host/sdhci-msm.c else if (host->clock <= 200000000) host 567 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_dll_config); host 570 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_dll_config); host 574 drivers/mmc/host/sdhci-msm.c static int msm_init_cm_dll(struct sdhci_host *host) host 576 drivers/mmc/host/sdhci-msm.c struct mmc_host *mmc = host->mmc; host 577 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 588 drivers/mmc/host/sdhci-msm.c spin_lock_irqsave(&host->lock, flags); host 595 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_vendor_spec); host 597 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_vendor_spec); host 600 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 603 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 606 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 609 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 613 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 616 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 619 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 622 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 624 drivers/mmc/host/sdhci-msm.c msm_cm_dll_set_freq(host); host 630 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 634 drivers/mmc/host/sdhci-msm.c mclk_freq = DIV_ROUND_CLOSEST_ULL((host->clock * 8), host 637 drivers/mmc/host/sdhci-msm.c mclk_freq = DIV_ROUND_CLOSEST_ULL((host->clock * 4), host 640 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 645 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 651 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 654 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 657 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 660 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 664 drivers/mmc/host/sdhci-msm.c msm_cm_dll_set_freq(host); host 665 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 668 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 672 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 675 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 678 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 681 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 685 drivers/mmc/host/sdhci-msm.c while (!(readl_relaxed(host->ioaddr + msm_offset->core_dll_status) & host 691 drivers/mmc/host/sdhci-msm.c spin_unlock_irqrestore(&host->lock, flags); host 697 drivers/mmc/host/sdhci-msm.c spin_unlock_irqrestore(&host->lock, flags); host 701 drivers/mmc/host/sdhci-msm.c static void msm_hc_select_default(struct sdhci_host *host) host 703 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 710 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 713 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 717 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_vendor_spec); host 720 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_vendor_spec); host 729 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_vendor_spec); host 732 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_vendor_spec); host 741 drivers/mmc/host/sdhci-msm.c static void msm_hc_select_hs400(struct sdhci_host *host) host 743 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 745 drivers/mmc/host/sdhci-msm.c struct mmc_ios ios = host->mmc->ios; host 752 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_vendor_spec); host 756 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_vendor_spec); host 763 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 767 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 776 drivers/mmc/host/sdhci-msm.c rc = readl_relaxed_poll_timeout(host->ioaddr + host 785 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), dll_lock); host 812 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_hc_select_mode(struct sdhci_host *host) host 814 drivers/mmc/host/sdhci-msm.c struct mmc_ios ios = host->mmc->ios; host 817 drivers/mmc/host/sdhci-msm.c host->flags & SDHCI_HS400_TUNING) host 818 drivers/mmc/host/sdhci-msm.c msm_hc_select_hs400(host); host 820 drivers/mmc/host/sdhci-msm.c msm_hc_select_default(host); host 823 drivers/mmc/host/sdhci-msm.c static int sdhci_msm_cdclp533_calibration(struct sdhci_host *host) host 825 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 832 drivers/mmc/host/sdhci-msm.c pr_debug("%s: %s: Enter\n", mmc_hostname(host->mmc), __func__); host 838 drivers/mmc/host/sdhci-msm.c ret = msm_init_cm_dll(host); host 843 drivers/mmc/host/sdhci-msm.c ret = msm_config_cm_dll_phase(host, msm_host->saved_tuning_phase); host 847 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_dll_config); host 849 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_dll_config); host 851 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_ddr_200_cfg); host 853 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_ddr_200_cfg); host 855 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + CORE_CSR_CDC_GEN_CFG); host 857 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + CORE_CSR_CDC_GEN_CFG); host 859 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + CORE_CSR_CDC_GEN_CFG); host 861 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + CORE_CSR_CDC_GEN_CFG); host 863 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_ddr_200_cfg); host 865 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_ddr_200_cfg); host 869 drivers/mmc/host/sdhci-msm.c writel_relaxed(0x11800EC, host->ioaddr + CORE_CSR_CDC_CTLR_CFG0); host 870 drivers/mmc/host/sdhci-msm.c writel_relaxed(0x3011111, host->ioaddr + CORE_CSR_CDC_CTLR_CFG1); host 871 drivers/mmc/host/sdhci-msm.c writel_relaxed(0x1201000, host->ioaddr + CORE_CSR_CDC_CAL_TIMER_CFG0); host 872 drivers/mmc/host/sdhci-msm.c writel_relaxed(0x4, host->ioaddr + CORE_CSR_CDC_CAL_TIMER_CFG1); host 873 drivers/mmc/host/sdhci-msm.c writel_relaxed(0xCB732020, host->ioaddr + CORE_CSR_CDC_REFCOUNT_CFG); host 874 drivers/mmc/host/sdhci-msm.c writel_relaxed(0xB19, host->ioaddr + CORE_CSR_CDC_COARSE_CAL_CFG); host 875 drivers/mmc/host/sdhci-msm.c writel_relaxed(0x4E2, host->ioaddr + CORE_CSR_CDC_DELAY_CFG); host 876 drivers/mmc/host/sdhci-msm.c writel_relaxed(0x0, host->ioaddr + CORE_CDC_OFFSET_CFG); host 877 drivers/mmc/host/sdhci-msm.c writel_relaxed(0x16334, host->ioaddr + CORE_CDC_SLAVE_DDA_CFG); host 881 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + CORE_CSR_CDC_CTLR_CFG0); host 883 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + CORE_CSR_CDC_CTLR_CFG0); host 885 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + CORE_CSR_CDC_CTLR_CFG0); host 887 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + CORE_CSR_CDC_CTLR_CFG0); host 889 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + CORE_CSR_CDC_CTLR_CFG0); host 891 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + CORE_CSR_CDC_CTLR_CFG0); host 893 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + CORE_CSR_CDC_CAL_TIMER_CFG0); host 895 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + CORE_CSR_CDC_CAL_TIMER_CFG0); host 897 drivers/mmc/host/sdhci-msm.c ret = readl_relaxed_poll_timeout(host->ioaddr + CORE_CSR_CDC_STATUS0, host 904 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), __func__); host 908 drivers/mmc/host/sdhci-msm.c ret = readl_relaxed(host->ioaddr + CORE_CSR_CDC_STATUS0) host 912 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), __func__, ret); host 917 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_ddr_200_cfg); host 919 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_ddr_200_cfg); host 921 drivers/mmc/host/sdhci-msm.c pr_debug("%s: %s: Exit, ret %d\n", mmc_hostname(host->mmc), host 926 drivers/mmc/host/sdhci-msm.c static int sdhci_msm_cm_dll_sdc4_calibration(struct sdhci_host *host) host 928 drivers/mmc/host/sdhci-msm.c struct mmc_host *mmc = host->mmc; host 931 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 934 drivers/mmc/host/sdhci-msm.c sdhci_priv_msm_offset(host); host 936 drivers/mmc/host/sdhci-msm.c pr_debug("%s: %s: Enter\n", mmc_hostname(host->mmc), __func__); host 949 drivers/mmc/host/sdhci-msm.c writel_relaxed(DDR_CONFIG_POR_VAL, host->ioaddr + ddr_cfg_offset); host 952 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 955 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 959 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_dll_config_2); host 961 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_dll_config_2); host 963 drivers/mmc/host/sdhci-msm.c ret = readl_relaxed_poll_timeout(host->ioaddr + host 971 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), __func__); host 975 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + msm_offset->core_vendor_spec3); host 977 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + msm_offset->core_vendor_spec3); host 985 drivers/mmc/host/sdhci-msm.c pr_debug("%s: %s: Exit, ret %d\n", mmc_hostname(host->mmc), host 990 drivers/mmc/host/sdhci-msm.c static int sdhci_msm_hs400_dll_calibration(struct sdhci_host *host) host 992 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 994 drivers/mmc/host/sdhci-msm.c struct mmc_host *mmc = host->mmc; host 1000 drivers/mmc/host/sdhci-msm.c pr_debug("%s: %s: Enter\n", mmc_hostname(host->mmc), __func__); host 1006 drivers/mmc/host/sdhci-msm.c ret = msm_init_cm_dll(host); host 1012 drivers/mmc/host/sdhci-msm.c ret = msm_config_cm_dll_phase(host, host 1016 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 1019 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 1024 drivers/mmc/host/sdhci-msm.c ret = sdhci_msm_cdclp533_calibration(host); host 1026 drivers/mmc/host/sdhci-msm.c ret = sdhci_msm_cm_dll_sdc4_calibration(host); host 1028 drivers/mmc/host/sdhci-msm.c pr_debug("%s: %s: Exit, ret %d\n", mmc_hostname(host->mmc), host 1033 drivers/mmc/host/sdhci-msm.c static bool sdhci_msm_is_tuning_needed(struct sdhci_host *host) host 1035 drivers/mmc/host/sdhci-msm.c struct mmc_ios *ios = &host->mmc->ios; host 1041 drivers/mmc/host/sdhci-msm.c if (host->clock <= CORE_FREQ_100MHZ || host 1051 drivers/mmc/host/sdhci-msm.c static int sdhci_msm_restore_sdr_dll_config(struct sdhci_host *host) host 1053 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1061 drivers/mmc/host/sdhci-msm.c if (!sdhci_msm_is_tuning_needed(host)) host 1065 drivers/mmc/host/sdhci-msm.c ret = msm_init_cm_dll(host); host 1070 drivers/mmc/host/sdhci-msm.c ret = msm_config_cm_dll_phase(host, msm_host->saved_tuning_phase); host 1075 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_set_cdr(struct sdhci_host *host, bool enable) host 1077 drivers/mmc/host/sdhci-msm.c const struct sdhci_msm_offset *msm_offset = sdhci_priv_msm_offset(host); host 1078 drivers/mmc/host/sdhci-msm.c u32 config, oldconfig = readl_relaxed(host->ioaddr + host 1091 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 1098 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host = mmc_priv(mmc); host 1102 drivers/mmc/host/sdhci-msm.c struct mmc_ios ios = host->mmc->ios; host 1103 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1106 drivers/mmc/host/sdhci-msm.c if (!sdhci_msm_is_tuning_needed(host)) { host 1108 drivers/mmc/host/sdhci-msm.c sdhci_msm_set_cdr(host, false); host 1126 drivers/mmc/host/sdhci-msm.c if (host->flags & SDHCI_HS400_TUNING) { host 1127 drivers/mmc/host/sdhci-msm.c sdhci_msm_hc_select_mode(host); host 1128 drivers/mmc/host/sdhci-msm.c msm_set_clock_rate_for_bus_mode(host, ios.clock); host 1129 drivers/mmc/host/sdhci-msm.c host->flags &= ~SDHCI_HS400_TUNING; host 1134 drivers/mmc/host/sdhci-msm.c rc = msm_init_cm_dll(host); host 1141 drivers/mmc/host/sdhci-msm.c rc = msm_config_cm_dll_phase(host, phase); host 1155 drivers/mmc/host/sdhci-msm.c rc = msm_find_most_appropriate_phase(host, tuned_phases, host 1166 drivers/mmc/host/sdhci-msm.c rc = msm_config_cm_dll_phase(host, phase); host 1192 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_hs400(struct sdhci_host *host, struct mmc_ios *ios) host 1194 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1198 drivers/mmc/host/sdhci-msm.c if (host->clock > CORE_FREQ_100MHZ && host 1201 drivers/mmc/host/sdhci-msm.c ret = sdhci_msm_hs400_dll_calibration(host); host 1206 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), ret); host 1210 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_set_uhs_signaling(struct sdhci_host *host, host 1213 drivers/mmc/host/sdhci-msm.c struct mmc_host *mmc = host->mmc; host 1214 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1221 drivers/mmc/host/sdhci-msm.c ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 1251 drivers/mmc/host/sdhci-msm.c if (host->clock <= CORE_FREQ_100MHZ) { host 1260 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 1263 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 1266 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 1269 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 1280 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), host->clock, uhs, ctrl_2); host 1281 drivers/mmc/host/sdhci-msm.c sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); host 1284 drivers/mmc/host/sdhci-msm.c sdhci_msm_hs400(host, &mmc->ios); host 1307 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_check_power_status(struct sdhci_host *host, u32 req_type) host 1309 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1317 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), __func__, req_type, host 1327 drivers/mmc/host/sdhci-msm.c val = msm_host_readl(msm_host, host, host 1346 drivers/mmc/host/sdhci-msm.c if ((req_type & REQ_IO_HIGH) && !host->pwr) { host 1348 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), req_type); host 1366 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), req_type); host 1368 drivers/mmc/host/sdhci-msm.c pr_debug("%s: %s: request %d done\n", mmc_hostname(host->mmc), host 1372 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_dump_pwr_ctrl_regs(struct sdhci_host *host) host 1374 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1380 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), host 1381 drivers/mmc/host/sdhci-msm.c msm_host_readl(msm_host, host, msm_offset->core_pwrctl_status), host 1382 drivers/mmc/host/sdhci-msm.c msm_host_readl(msm_host, host, msm_offset->core_pwrctl_mask), host 1383 drivers/mmc/host/sdhci-msm.c msm_host_readl(msm_host, host, msm_offset->core_pwrctl_ctl)); host 1386 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_handle_pwr_irq(struct sdhci_host *host, int irq) host 1388 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1396 drivers/mmc/host/sdhci-msm.c irq_status = msm_host_readl(msm_host, host, host 1400 drivers/mmc/host/sdhci-msm.c msm_host_writel(msm_host, irq_status, host, host 1410 drivers/mmc/host/sdhci-msm.c while (irq_status & msm_host_readl(msm_host, host, host 1414 drivers/mmc/host/sdhci-msm.c mmc_hostname(host->mmc), irq_status); host 1415 drivers/mmc/host/sdhci-msm.c sdhci_msm_dump_pwr_ctrl_regs(host); host 1419 drivers/mmc/host/sdhci-msm.c msm_host_writel(msm_host, irq_status, host, host 1451 drivers/mmc/host/sdhci-msm.c msm_host_writel(msm_host, irq_ack, host, host 1471 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 1483 drivers/mmc/host/sdhci-msm.c writel_relaxed(new_config, host->ioaddr + host 1499 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host = (struct sdhci_host *)data; host 1500 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1503 drivers/mmc/host/sdhci-msm.c sdhci_msm_handle_pwr_irq(host, irq); host 1511 drivers/mmc/host/sdhci-msm.c static unsigned int sdhci_msm_get_max_clock(struct sdhci_host *host) host 1513 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1520 drivers/mmc/host/sdhci-msm.c static unsigned int sdhci_msm_get_min_clock(struct sdhci_host *host) host 1533 drivers/mmc/host/sdhci-msm.c static void __sdhci_msm_set_clock(struct sdhci_host *host, unsigned int clock) host 1542 drivers/mmc/host/sdhci-msm.c host->mmc->actual_clock = 0; host 1544 drivers/mmc/host/sdhci-msm.c sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); host 1554 drivers/mmc/host/sdhci-msm.c clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 1555 drivers/mmc/host/sdhci-msm.c sdhci_enable_clk(host, clk); host 1559 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_set_clock(struct sdhci_host *host, unsigned int clock) host 1561 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1569 drivers/mmc/host/sdhci-msm.c sdhci_msm_hc_select_mode(host); host 1571 drivers/mmc/host/sdhci-msm.c msm_set_clock_rate_for_bus_mode(host, clock); host 1573 drivers/mmc/host/sdhci-msm.c __sdhci_msm_set_clock(host, clock); host 1583 drivers/mmc/host/sdhci-msm.c static int __sdhci_msm_check_write(struct sdhci_host *host, u16 val, int reg) host 1585 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1595 drivers/mmc/host/sdhci-msm.c if (host->pwr && (val & SDHCI_RESET_ALL)) host 1610 drivers/mmc/host/sdhci-msm.c sdhci_msm_set_cdr(host, true); host 1612 drivers/mmc/host/sdhci-msm.c sdhci_msm_set_cdr(host, false); host 1628 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_writew(struct sdhci_host *host, u16 val, int reg) host 1632 drivers/mmc/host/sdhci-msm.c req_type = __sdhci_msm_check_write(host, val, reg); host 1633 drivers/mmc/host/sdhci-msm.c writew_relaxed(val, host->ioaddr + reg); host 1636 drivers/mmc/host/sdhci-msm.c sdhci_msm_check_power_status(host, req_type); host 1640 drivers/mmc/host/sdhci-msm.c static void sdhci_msm_writeb(struct sdhci_host *host, u8 val, int reg) host 1644 drivers/mmc/host/sdhci-msm.c req_type = __sdhci_msm_check_write(host, val, reg); host 1646 drivers/mmc/host/sdhci-msm.c writeb_relaxed(val, host->ioaddr + reg); host 1649 drivers/mmc/host/sdhci-msm.c sdhci_msm_check_power_status(host, req_type); host 1657 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host = mmc_priv(mmc); host 1678 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + host 1688 drivers/mmc/host/sdhci-msm.c host->ioaddr + msm_offset->core_vendor_spec); host 1752 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host; host 1764 drivers/mmc/host/sdhci-msm.c host = sdhci_pltfm_init(pdev, &sdhci_msm_pdata, sizeof(*msm_host)); host 1765 drivers/mmc/host/sdhci-msm.c if (IS_ERR(host)) host 1766 drivers/mmc/host/sdhci-msm.c return PTR_ERR(host); host 1768 drivers/mmc/host/sdhci-msm.c host->sdma_boundary = 0; host 1769 drivers/mmc/host/sdhci-msm.c pltfm_host = sdhci_priv(host); host 1771 drivers/mmc/host/sdhci-msm.c msm_host->mmc = host->mmc; host 1774 drivers/mmc/host/sdhci-msm.c ret = mmc_of_parse(host->mmc); host 1868 drivers/mmc/host/sdhci-msm.c host->ioaddr + msm_offset->core_vendor_spec); host 1872 drivers/mmc/host/sdhci-msm.c msm_host_writel(msm_host, HC_MODE_EN, host, host 1874 drivers/mmc/host/sdhci-msm.c config = msm_host_readl(msm_host, host, host 1877 drivers/mmc/host/sdhci-msm.c msm_host_writel(msm_host, config, host, host 1881 drivers/mmc/host/sdhci-msm.c host_version = readw_relaxed((host->ioaddr + SDHCI_HOST_VERSION)); host 1886 drivers/mmc/host/sdhci-msm.c core_version = msm_host_readl(msm_host, host, host 1909 drivers/mmc/host/sdhci-msm.c config = readl_relaxed(host->ioaddr + SDHCI_CAPABILITIES); host 1911 drivers/mmc/host/sdhci-msm.c writel_relaxed(config, host->ioaddr + host 1925 drivers/mmc/host/sdhci-msm.c sdhci_msm_handle_pwr_irq(host, 0); host 1942 drivers/mmc/host/sdhci-msm.c msm_host_writel(msm_host, INT_MASK, host, host 1947 drivers/mmc/host/sdhci-msm.c dev_name(&pdev->dev), host); host 1962 drivers/mmc/host/sdhci-msm.c host->mmc_host_ops.execute_tuning = sdhci_msm_execute_tuning; host 1963 drivers/mmc/host/sdhci-msm.c ret = sdhci_add_host(host); host 1990 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host = platform_get_drvdata(pdev); host 1991 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1993 drivers/mmc/host/sdhci-msm.c int dead = (readl_relaxed(host->ioaddr + SDHCI_INT_STATUS) == host 1996 drivers/mmc/host/sdhci-msm.c sdhci_remove_host(host, dead); host 2012 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host = dev_get_drvdata(dev); host 2013 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 2024 drivers/mmc/host/sdhci-msm.c struct sdhci_host *host = dev_get_drvdata(dev); host 2025 drivers/mmc/host/sdhci-msm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 2038 drivers/mmc/host/sdhci-msm.c return sdhci_msm_restore_sdr_dll_config(host); host 86 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host; host 135 drivers/mmc/host/sdhci-of-arasan.c static int sdhci_arasan_syscon_write(struct sdhci_host *host, host 139 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 168 drivers/mmc/host/sdhci-of-arasan.c mmc_hostname(host->mmc), ret); host 173 drivers/mmc/host/sdhci-of-arasan.c static void sdhci_arasan_set_clock(struct sdhci_host *host, unsigned int clock) host 175 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 194 drivers/mmc/host/sdhci-of-arasan.c sdhci_set_clock(host, host->max_clk); host 218 drivers/mmc/host/sdhci-of-arasan.c sdhci_set_clock(host, clock); host 240 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host = mmc_priv(mmc); host 242 drivers/mmc/host/sdhci-of-arasan.c vendor = sdhci_readl(host, SDHCI_ARASAN_VENDOR_REGISTER); host 248 drivers/mmc/host/sdhci-of-arasan.c sdhci_writel(host, vendor, SDHCI_ARASAN_VENDOR_REGISTER); host 251 drivers/mmc/host/sdhci-of-arasan.c static void sdhci_arasan_reset(struct sdhci_host *host, u8 mask) host 254 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 257 drivers/mmc/host/sdhci-of-arasan.c sdhci_reset(host, mask); host 260 drivers/mmc/host/sdhci-of-arasan.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 262 drivers/mmc/host/sdhci-of-arasan.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 288 drivers/mmc/host/sdhci-of-arasan.c static void sdhci_arasan_set_power(struct sdhci_host *host, unsigned char mode, host 291 drivers/mmc/host/sdhci-of-arasan.c if (!IS_ERR(host->mmc->supply.vmmc)) { host 292 drivers/mmc/host/sdhci-of-arasan.c struct mmc_host *mmc = host->mmc; host 296 drivers/mmc/host/sdhci-of-arasan.c sdhci_set_power_noreg(host, mode, vdd); host 321 drivers/mmc/host/sdhci-of-arasan.c static u32 sdhci_arasan_cqhci_irq(struct sdhci_host *host, u32 intmask) host 326 drivers/mmc/host/sdhci-of-arasan.c if (!sdhci_cqe_irq(host, intmask, &cmd_error, &data_error)) host 329 drivers/mmc/host/sdhci-of-arasan.c cqhci_irq(host->mmc, intmask, cmd_error, data_error); host 341 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host = mmc_priv(mmc); host 344 drivers/mmc/host/sdhci-of-arasan.c reg = sdhci_readl(host, SDHCI_PRESENT_STATE); host 346 drivers/mmc/host/sdhci-of-arasan.c sdhci_readl(host, SDHCI_BUFFER); host 347 drivers/mmc/host/sdhci-of-arasan.c reg = sdhci_readl(host, SDHCI_PRESENT_STATE); host 397 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host = dev_get_drvdata(dev); host 398 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 402 drivers/mmc/host/sdhci-of-arasan.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 403 drivers/mmc/host/sdhci-of-arasan.c mmc_retune_needed(host->mmc); host 406 drivers/mmc/host/sdhci-of-arasan.c ret = cqhci_suspend(host->mmc); host 411 drivers/mmc/host/sdhci-of-arasan.c ret = sdhci_suspend_host(host); host 419 drivers/mmc/host/sdhci-of-arasan.c sdhci_resume_host(host); host 440 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host = dev_get_drvdata(dev); host 441 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 457 drivers/mmc/host/sdhci-of-arasan.c if (!IS_ERR(sdhci_arasan->phy) && host->mmc->actual_clock) { host 466 drivers/mmc/host/sdhci-of-arasan.c ret = sdhci_resume_host(host); host 473 drivers/mmc/host/sdhci-of-arasan.c return cqhci_resume(host->mmc); host 525 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host = sdhci_arasan->host; host 527 drivers/mmc/host/sdhci-of-arasan.c return host->mmc->actual_clock; host 551 drivers/mmc/host/sdhci-of-arasan.c static void sdhci_arasan_update_clockmultiplier(struct sdhci_host *host, host 554 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 566 drivers/mmc/host/sdhci-of-arasan.c mmc_hostname(host->mmc)); host 570 drivers/mmc/host/sdhci-of-arasan.c sdhci_arasan_syscon_write(host, &soc_ctl_map->clockmultiplier, value); host 590 drivers/mmc/host/sdhci-of-arasan.c static void sdhci_arasan_update_baseclkfreq(struct sdhci_host *host) host 592 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 605 drivers/mmc/host/sdhci-of-arasan.c mmc_hostname(host->mmc)); host 609 drivers/mmc/host/sdhci-of-arasan.c sdhci_arasan_syscon_write(host, &soc_ctl_map->baseclkfreq, mhz); host 691 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host = sdhci_arasan->host; host 697 drivers/mmc/host/sdhci-of-arasan.c return sdhci_add_host(host); host 699 drivers/mmc/host/sdhci-of-arasan.c ret = sdhci_setup_host(host); host 703 drivers/mmc/host/sdhci-of-arasan.c cq_host = devm_kzalloc(host->mmc->parent, host 710 drivers/mmc/host/sdhci-of-arasan.c cq_host->mmio = host->ioaddr + SDHCI_ARASAN_CQE_BASE_ADDR; host 713 drivers/mmc/host/sdhci-of-arasan.c dma64 = host->flags & SDHCI_USE_64_BIT_DMA; host 717 drivers/mmc/host/sdhci-of-arasan.c ret = cqhci_init(cq_host, host->mmc, dma64); host 721 drivers/mmc/host/sdhci-of-arasan.c ret = __sdhci_add_host(host); host 728 drivers/mmc/host/sdhci-of-arasan.c sdhci_cleanup_host(host); host 738 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host; host 746 drivers/mmc/host/sdhci-of-arasan.c host = sdhci_pltfm_init(pdev, data->pdata, sizeof(*sdhci_arasan)); host 748 drivers/mmc/host/sdhci-of-arasan.c if (IS_ERR(host)) host 749 drivers/mmc/host/sdhci-of-arasan.c return PTR_ERR(host); host 751 drivers/mmc/host/sdhci-of-arasan.c pltfm_host = sdhci_priv(host); host 753 drivers/mmc/host/sdhci-of-arasan.c sdhci_arasan->host = host; host 809 drivers/mmc/host/sdhci-of-arasan.c sdhci_arasan_update_clockmultiplier(host, 0x0); host 811 drivers/mmc/host/sdhci-of-arasan.c sdhci_arasan_update_baseclkfreq(host); host 817 drivers/mmc/host/sdhci-of-arasan.c ret = mmc_of_parse(host->mmc); host 841 drivers/mmc/host/sdhci-of-arasan.c host->mmc_host_ops.hs400_enhanced_strobe = host 843 drivers/mmc/host/sdhci-of-arasan.c host->mmc_host_ops.start_signal_voltage_switch = host 846 drivers/mmc/host/sdhci-of-arasan.c host->mmc->caps2 |= MMC_CAP2_CQE; host 849 drivers/mmc/host/sdhci-of-arasan.c host->mmc->caps2 |= MMC_CAP2_CQE_DCMD; host 875 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_host *host = platform_get_drvdata(pdev); host 876 drivers/mmc/host/sdhci-of-arasan.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 53 drivers/mmc/host/sdhci-of-aspeed.c static void aspeed_sdhci_set_clock(struct sdhci_host *host, unsigned int clock) host 60 drivers/mmc/host/sdhci-of-aspeed.c pltfm_host = sdhci_priv(host); host 63 drivers/mmc/host/sdhci-of-aspeed.c sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); host 68 drivers/mmc/host/sdhci-of-aspeed.c if (WARN_ON(clock > host->max_clk)) host 69 drivers/mmc/host/sdhci-of-aspeed.c clock = host->max_clk; host 79 drivers/mmc/host/sdhci-of-aspeed.c sdhci_enable_clk(host, clk); host 82 drivers/mmc/host/sdhci-of-aspeed.c static unsigned int aspeed_sdhci_get_max_clock(struct sdhci_host *host) host 84 drivers/mmc/host/sdhci-of-aspeed.c if (host->mmc->f_max) host 85 drivers/mmc/host/sdhci-of-aspeed.c return host->mmc->f_max; host 87 drivers/mmc/host/sdhci-of-aspeed.c return sdhci_pltfm_clk_get_max_clock(host); host 90 drivers/mmc/host/sdhci-of-aspeed.c static void aspeed_sdhci_set_bus_width(struct sdhci_host *host, int width) host 97 drivers/mmc/host/sdhci-of-aspeed.c pltfm_priv = sdhci_priv(host); host 106 drivers/mmc/host/sdhci-of-aspeed.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 111 drivers/mmc/host/sdhci-of-aspeed.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 150 drivers/mmc/host/sdhci-of-aspeed.c struct sdhci_host *host; host 155 drivers/mmc/host/sdhci-of-aspeed.c host = sdhci_pltfm_init(pdev, &aspeed_sdhci_pdata, sizeof(*dev)); host 156 drivers/mmc/host/sdhci-of-aspeed.c if (IS_ERR(host)) host 157 drivers/mmc/host/sdhci-of-aspeed.c return PTR_ERR(host); host 159 drivers/mmc/host/sdhci-of-aspeed.c pltfm_host = sdhci_priv(host); host 186 drivers/mmc/host/sdhci-of-aspeed.c ret = mmc_of_parse(host->mmc); host 190 drivers/mmc/host/sdhci-of-aspeed.c ret = sdhci_add_host(host); host 206 drivers/mmc/host/sdhci-of-aspeed.c struct sdhci_host *host; host 209 drivers/mmc/host/sdhci-of-aspeed.c host = platform_get_drvdata(pdev); host 210 drivers/mmc/host/sdhci-of-aspeed.c pltfm_host = sdhci_priv(host); host 212 drivers/mmc/host/sdhci-of-aspeed.c sdhci_remove_host(host, dead); host 40 drivers/mmc/host/sdhci-of-at91.c static void sdhci_at91_set_force_card_detect(struct sdhci_host *host) host 44 drivers/mmc/host/sdhci-of-at91.c mc1r = readb(host->ioaddr + SDMMC_MC1R); host 46 drivers/mmc/host/sdhci-of-at91.c writeb(mc1r, host->ioaddr + SDMMC_MC1R); host 49 drivers/mmc/host/sdhci-of-at91.c static void sdhci_at91_set_clock(struct sdhci_host *host, unsigned int clock) host 54 drivers/mmc/host/sdhci-of-at91.c host->mmc->actual_clock = 0; host 64 drivers/mmc/host/sdhci-of-at91.c clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 66 drivers/mmc/host/sdhci-of-at91.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 71 drivers/mmc/host/sdhci-of-at91.c clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock); host 74 drivers/mmc/host/sdhci-of-at91.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 78 drivers/mmc/host/sdhci-of-at91.c while (!((clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL)) host 82 drivers/mmc/host/sdhci-of-at91.c mmc_hostname(host->mmc)); host 90 drivers/mmc/host/sdhci-of-at91.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 98 drivers/mmc/host/sdhci-of-at91.c static void sdhci_at91_set_power(struct sdhci_host *host, unsigned char mode, host 101 drivers/mmc/host/sdhci-of-at91.c if (!IS_ERR(host->mmc->supply.vmmc)) { host 102 drivers/mmc/host/sdhci-of-at91.c struct mmc_host *mmc = host->mmc; host 106 drivers/mmc/host/sdhci-of-at91.c sdhci_set_power_noreg(host, mode, vdd); host 109 drivers/mmc/host/sdhci-of-at91.c static void sdhci_at91_set_uhs_signaling(struct sdhci_host *host, host 113 drivers/mmc/host/sdhci-of-at91.c sdhci_writeb(host, SDMMC_MC1R_DDR, SDMMC_MC1R); host 114 drivers/mmc/host/sdhci-of-at91.c sdhci_set_uhs_signaling(host, timing); host 117 drivers/mmc/host/sdhci-of-at91.c static void sdhci_at91_reset(struct sdhci_host *host, u8 mask) host 119 drivers/mmc/host/sdhci-of-at91.c sdhci_reset(host, mask); host 121 drivers/mmc/host/sdhci-of-at91.c if ((host->mmc->caps & MMC_CAP_NONREMOVABLE) host 122 drivers/mmc/host/sdhci-of-at91.c || mmc_gpio_get_cd(host->mmc) >= 0) host 123 drivers/mmc/host/sdhci-of-at91.c sdhci_at91_set_force_card_detect(host); host 146 drivers/mmc/host/sdhci-of-at91.c struct sdhci_host *host = dev_get_drvdata(dev); host 147 drivers/mmc/host/sdhci-of-at91.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 161 drivers/mmc/host/sdhci-of-at91.c caps0 = readl(host->ioaddr + SDHCI_CAPABILITIES); host 162 drivers/mmc/host/sdhci-of-at91.c caps1 = readl(host->ioaddr + SDHCI_CAPABILITIES_1); host 186 drivers/mmc/host/sdhci-of-at91.c host->ioaddr + SDMMC_CACR); host 187 drivers/mmc/host/sdhci-of-at91.c writel(caps1, host->ioaddr + SDHCI_CAPABILITIES_1); host 189 drivers/mmc/host/sdhci-of-at91.c writel(0, host->ioaddr + SDMMC_CACR); host 202 drivers/mmc/host/sdhci-of-at91.c host->ioaddr + SDHCI_PRESET_FOR_SDR12); host 205 drivers/mmc/host/sdhci-of-at91.c host->ioaddr + SDHCI_PRESET_FOR_SDR25); host 208 drivers/mmc/host/sdhci-of-at91.c host->ioaddr + SDHCI_PRESET_FOR_SDR50); host 211 drivers/mmc/host/sdhci-of-at91.c host->ioaddr + SDHCI_PRESET_FOR_SDR104); host 214 drivers/mmc/host/sdhci-of-at91.c host->ioaddr + SDHCI_PRESET_FOR_DDR50); host 225 drivers/mmc/host/sdhci-of-at91.c struct sdhci_host *host = dev_get_drvdata(dev); host 226 drivers/mmc/host/sdhci-of-at91.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 241 drivers/mmc/host/sdhci-of-at91.c struct sdhci_host *host = dev_get_drvdata(dev); host 242 drivers/mmc/host/sdhci-of-at91.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 246 drivers/mmc/host/sdhci-of-at91.c ret = sdhci_runtime_suspend_host(host); host 248 drivers/mmc/host/sdhci-of-at91.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 249 drivers/mmc/host/sdhci-of-at91.c mmc_retune_needed(host->mmc); host 260 drivers/mmc/host/sdhci-of-at91.c struct sdhci_host *host = dev_get_drvdata(dev); host 261 drivers/mmc/host/sdhci-of-at91.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 293 drivers/mmc/host/sdhci-of-at91.c return sdhci_runtime_resume_host(host, 0); host 308 drivers/mmc/host/sdhci-of-at91.c struct sdhci_host *host; host 318 drivers/mmc/host/sdhci-of-at91.c host = sdhci_pltfm_init(pdev, soc_data, sizeof(*priv)); host 319 drivers/mmc/host/sdhci-of-at91.c if (IS_ERR(host)) host 320 drivers/mmc/host/sdhci-of-at91.c return PTR_ERR(host); host 322 drivers/mmc/host/sdhci-of-at91.c pltfm_host = sdhci_priv(host); host 352 drivers/mmc/host/sdhci-of-at91.c ret = mmc_of_parse(host->mmc); host 365 drivers/mmc/host/sdhci-of-at91.c host->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; host 367 drivers/mmc/host/sdhci-of-at91.c ret = sdhci_add_host(host); host 384 drivers/mmc/host/sdhci-of-at91.c if (mmc_card_is_removable(host->mmc) && host 385 drivers/mmc/host/sdhci-of-at91.c mmc_gpio_get_cd(host->mmc) < 0) { host 386 drivers/mmc/host/sdhci-of-at91.c host->mmc->caps |= MMC_CAP_NEEDS_POLL; host 387 drivers/mmc/host/sdhci-of-at91.c host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION; host 404 drivers/mmc/host/sdhci-of-at91.c if ((host->mmc->caps & MMC_CAP_NONREMOVABLE) host 405 drivers/mmc/host/sdhci-of-at91.c || mmc_gpio_get_cd(host->mmc) >= 0) host 406 drivers/mmc/host/sdhci-of-at91.c sdhci_at91_set_force_card_detect(host); host 427 drivers/mmc/host/sdhci-of-at91.c struct sdhci_host *host = platform_get_drvdata(pdev); host 428 drivers/mmc/host/sdhci-of-at91.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 30 drivers/mmc/host/sdhci-of-dwcmshc.c static void dwcmshc_adma_write_desc(struct sdhci_host *host, void **desc, host 36 drivers/mmc/host/sdhci-of-dwcmshc.c sdhci_adma_write_desc(host, desc, addr, len, cmd); host 42 drivers/mmc/host/sdhci-of-dwcmshc.c sdhci_adma_write_desc(host, desc, addr, tmplen, cmd); host 46 drivers/mmc/host/sdhci-of-dwcmshc.c sdhci_adma_write_desc(host, desc, addr, len, cmd); host 66 drivers/mmc/host/sdhci-of-dwcmshc.c struct sdhci_host *host; host 71 drivers/mmc/host/sdhci-of-dwcmshc.c host = sdhci_pltfm_init(pdev, &sdhci_dwcmshc_pdata, host 73 drivers/mmc/host/sdhci-of-dwcmshc.c if (IS_ERR(host)) host 74 drivers/mmc/host/sdhci-of-dwcmshc.c return PTR_ERR(host); host 82 drivers/mmc/host/sdhci-of-dwcmshc.c host->adma_table_cnt += extra; host 84 drivers/mmc/host/sdhci-of-dwcmshc.c pltfm_host = sdhci_priv(host); host 101 drivers/mmc/host/sdhci-of-dwcmshc.c err = mmc_of_parse(host->mmc); host 107 drivers/mmc/host/sdhci-of-dwcmshc.c err = sdhci_add_host(host); host 123 drivers/mmc/host/sdhci-of-dwcmshc.c struct sdhci_host *host = platform_get_drvdata(pdev); host 124 drivers/mmc/host/sdhci-of-dwcmshc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 127 drivers/mmc/host/sdhci-of-dwcmshc.c sdhci_remove_host(host, 0); host 105 drivers/mmc/host/sdhci-of-esdhc.c static u32 esdhc_readl_fixup(struct sdhci_host *host, host 108 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 168 drivers/mmc/host/sdhci-of-esdhc.c static u16 esdhc_readw_fixup(struct sdhci_host *host, host 171 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 189 drivers/mmc/host/sdhci-of-esdhc.c static u8 esdhc_readb_fixup(struct sdhci_host *host, host 228 drivers/mmc/host/sdhci-of-esdhc.c static u32 esdhc_writel_fixup(struct sdhci_host *host, host 246 drivers/mmc/host/sdhci-of-esdhc.c static u32 esdhc_writew_fixup(struct sdhci_host *host, host 249 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 280 drivers/mmc/host/sdhci-of-esdhc.c static u32 esdhc_writeb_fixup(struct sdhci_host *host, host 303 drivers/mmc/host/sdhci-of-esdhc.c if (host->quirks2 & SDHCI_QUIRK2_BROKEN_HOST_CONTROL) host 322 drivers/mmc/host/sdhci-of-esdhc.c static u32 esdhc_be_readl(struct sdhci_host *host, int reg) host 328 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32be(host->ioaddr + ESDHC_CAPABILITIES_1); host 330 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32be(host->ioaddr + reg); host 332 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_readl_fixup(host, reg, value); host 337 drivers/mmc/host/sdhci-of-esdhc.c static u32 esdhc_le_readl(struct sdhci_host *host, int reg) host 343 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32(host->ioaddr + ESDHC_CAPABILITIES_1); host 345 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32(host->ioaddr + reg); host 347 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_readl_fixup(host, reg, value); host 352 drivers/mmc/host/sdhci-of-esdhc.c static u16 esdhc_be_readw(struct sdhci_host *host, int reg) host 358 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32be(host->ioaddr + base); host 359 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_readw_fixup(host, reg, value); host 363 drivers/mmc/host/sdhci-of-esdhc.c static u16 esdhc_le_readw(struct sdhci_host *host, int reg) host 369 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32(host->ioaddr + base); host 370 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_readw_fixup(host, reg, value); host 374 drivers/mmc/host/sdhci-of-esdhc.c static u8 esdhc_be_readb(struct sdhci_host *host, int reg) host 380 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32be(host->ioaddr + base); host 381 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_readb_fixup(host, reg, value); host 385 drivers/mmc/host/sdhci-of-esdhc.c static u8 esdhc_le_readb(struct sdhci_host *host, int reg) host 391 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32(host->ioaddr + base); host 392 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_readb_fixup(host, reg, value); host 396 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_be_writel(struct sdhci_host *host, u32 val, int reg) host 400 drivers/mmc/host/sdhci-of-esdhc.c value = esdhc_writel_fixup(host, reg, val, 0); host 401 drivers/mmc/host/sdhci-of-esdhc.c iowrite32be(value, host->ioaddr + reg); host 404 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_le_writel(struct sdhci_host *host, u32 val, int reg) host 408 drivers/mmc/host/sdhci-of-esdhc.c value = esdhc_writel_fixup(host, reg, val, 0); host 409 drivers/mmc/host/sdhci-of-esdhc.c iowrite32(value, host->ioaddr + reg); host 412 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_be_writew(struct sdhci_host *host, u16 val, int reg) host 414 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 420 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32be(host->ioaddr + base); host 421 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_writew_fixup(host, reg, val, value); host 423 drivers/mmc/host/sdhci-of-esdhc.c iowrite32be(ret, host->ioaddr + base); host 433 drivers/mmc/host/sdhci-of-esdhc.c iowrite32be(ret, host->ioaddr + base); host 438 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_le_writew(struct sdhci_host *host, u16 val, int reg) host 440 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 446 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32(host->ioaddr + base); host 447 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_writew_fixup(host, reg, val, value); host 449 drivers/mmc/host/sdhci-of-esdhc.c iowrite32(ret, host->ioaddr + base); host 459 drivers/mmc/host/sdhci-of-esdhc.c iowrite32(ret, host->ioaddr + base); host 464 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_be_writeb(struct sdhci_host *host, u8 val, int reg) host 470 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32be(host->ioaddr + base); host 471 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_writeb_fixup(host, reg, val, value); host 472 drivers/mmc/host/sdhci-of-esdhc.c iowrite32be(ret, host->ioaddr + base); host 475 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_le_writeb(struct sdhci_host *host, u8 val, int reg) host 481 drivers/mmc/host/sdhci-of-esdhc.c value = ioread32(host->ioaddr + base); host 482 drivers/mmc/host/sdhci-of-esdhc.c ret = esdhc_writeb_fixup(host, reg, val, value); host 483 drivers/mmc/host/sdhci-of-esdhc.c iowrite32(ret, host->ioaddr + base); host 493 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_of_adma_workaround(struct sdhci_host *host, u32 intmask) host 495 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 507 drivers/mmc/host/sdhci-of-esdhc.c host->data->error = 0; host 508 drivers/mmc/host/sdhci-of-esdhc.c dmastart = sg_dma_address(host->data->sg); host 509 drivers/mmc/host/sdhci-of-esdhc.c dmanow = dmastart + host->data->bytes_xfered; host 515 drivers/mmc/host/sdhci-of-esdhc.c host->data->bytes_xfered = dmanow - dmastart; host 516 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, dmanow, SDHCI_DMA_ADDRESS); host 519 drivers/mmc/host/sdhci-of-esdhc.c static int esdhc_of_enable_dma(struct sdhci_host *host) host 522 drivers/mmc/host/sdhci-of-esdhc.c struct device *dev = mmc_dev(host->mmc); host 528 drivers/mmc/host/sdhci-of-esdhc.c value = sdhci_readl(host, ESDHC_DMA_SYSCTL); host 535 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, value, ESDHC_DMA_SYSCTL); host 539 drivers/mmc/host/sdhci-of-esdhc.c static unsigned int esdhc_of_get_max_clock(struct sdhci_host *host) host 541 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 550 drivers/mmc/host/sdhci-of-esdhc.c static unsigned int esdhc_of_get_min_clock(struct sdhci_host *host) host 552 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 563 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_clock_enable(struct sdhci_host *host, bool enable) host 568 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_SYSTEM_CONTROL); host 575 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_SYSTEM_CONTROL); host 583 drivers/mmc/host/sdhci-of-esdhc.c if (sdhci_readl(host, ESDHC_PRSSTAT) & val) host 587 drivers/mmc/host/sdhci-of-esdhc.c mmc_hostname(host->mmc)); host 594 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_of_set_clock(struct sdhci_host *host, unsigned int clock) host 596 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 605 drivers/mmc/host/sdhci-of-esdhc.c host->mmc->actual_clock = 0; host 608 drivers/mmc/host/sdhci-of-esdhc.c esdhc_clock_enable(host, false); host 616 drivers/mmc/host/sdhci-of-esdhc.c if (host->mmc->card && mmc_card_sd(host->mmc->card) && host 617 drivers/mmc/host/sdhci-of-esdhc.c esdhc->clk_fixup && host->mmc->ios.timing == MMC_TIMING_LEGACY) host 620 drivers/mmc/host/sdhci-of-esdhc.c fixup = esdhc->clk_fixup->max_clk[host->mmc->ios.timing]; host 625 drivers/mmc/host/sdhci-of-esdhc.c temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL); host 628 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); host 630 drivers/mmc/host/sdhci-of-esdhc.c while (host->max_clk / pre_div / 16 > clock && pre_div < 256) host 633 drivers/mmc/host/sdhci-of-esdhc.c while (host->max_clk / pre_div / div > clock && div < 16) host 638 drivers/mmc/host/sdhci-of-esdhc.c (host->mmc->ios.timing == MMC_TIMING_MMC_HS400 || host 639 drivers/mmc/host/sdhci-of-esdhc.c host->flags & SDHCI_HS400_TUNING)) { host 652 drivers/mmc/host/sdhci-of-esdhc.c mmc_hostname(host->mmc)); host 656 drivers/mmc/host/sdhci-of-esdhc.c dev_dbg(mmc_dev(host->mmc), "desired SD clock: %d, actual: %d\n", host 657 drivers/mmc/host/sdhci-of-esdhc.c clock, host->max_clk / pre_div / div); host 658 drivers/mmc/host/sdhci-of-esdhc.c host->mmc->actual_clock = host->max_clk / pre_div / div; host 663 drivers/mmc/host/sdhci-of-esdhc.c temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL); host 667 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); host 669 drivers/mmc/host/sdhci-of-esdhc.c if (host->mmc->ios.timing == MMC_TIMING_MMC_HS400 && host 671 drivers/mmc/host/sdhci-of-esdhc.c temp = sdhci_readl(host, ESDHC_TBCTL); host 672 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, temp | ESDHC_HS400_MODE, ESDHC_TBCTL); host 673 drivers/mmc/host/sdhci-of-esdhc.c temp = sdhci_readl(host, ESDHC_SDCLKCTL); host 674 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, temp | ESDHC_CMD_CLK_CTL, ESDHC_SDCLKCTL); host 675 drivers/mmc/host/sdhci-of-esdhc.c esdhc_clock_enable(host, true); host 677 drivers/mmc/host/sdhci-of-esdhc.c temp = sdhci_readl(host, ESDHC_DLLCFG0); host 679 drivers/mmc/host/sdhci-of-esdhc.c if (host->mmc->actual_clock == MMC_HS200_MAX_DTR) host 681 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, temp, ESDHC_DLLCFG0); host 682 drivers/mmc/host/sdhci-of-esdhc.c temp = sdhci_readl(host, ESDHC_TBCTL); host 683 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, temp | ESDHC_HS400_WNDW_ADJUST, ESDHC_TBCTL); host 685 drivers/mmc/host/sdhci-of-esdhc.c esdhc_clock_enable(host, false); host 686 drivers/mmc/host/sdhci-of-esdhc.c temp = sdhci_readl(host, ESDHC_DMA_SYSCTL); host 688 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, temp, ESDHC_DMA_SYSCTL); host 696 drivers/mmc/host/sdhci-of-esdhc.c if (sdhci_readl(host, ESDHC_PRSSTAT) & ESDHC_CLOCK_STABLE) host 700 drivers/mmc/host/sdhci-of-esdhc.c mmc_hostname(host->mmc)); host 706 drivers/mmc/host/sdhci-of-esdhc.c temp = sdhci_readl(host, ESDHC_SYSTEM_CONTROL); host 708 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, temp, ESDHC_SYSTEM_CONTROL); host 711 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_pltfm_set_bus_width(struct sdhci_host *host, int width) host 715 drivers/mmc/host/sdhci-of-esdhc.c ctrl = sdhci_readl(host, ESDHC_PROCTL); host 730 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, ctrl, ESDHC_PROCTL); host 733 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_reset(struct sdhci_host *host, u8 mask) host 735 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 745 drivers/mmc/host/sdhci-of-esdhc.c (host->flags & SDHCI_REQ_USE_DMA)) host 754 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_PROCTL); host 758 drivers/mmc/host/sdhci-of-esdhc.c sdhci_reset(host, mask); host 766 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_PROCTL); host 769 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_PROCTL); host 771 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 772 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 781 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_TBCTL); host 783 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_TBCTL); host 790 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_DLLCFG1); host 792 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_DLLCFG1); host 818 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_host *host = mmc_priv(mmc); host 828 drivers/mmc/host/sdhci-of-esdhc.c if (host->version < SDHCI_SPEC_300) host 831 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_PROCTL); host 836 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_PROCTL); host 849 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_PROCTL); host 859 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_PROCTL); host 885 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_tuning_block_enable(struct sdhci_host *host, bool enable) host 889 drivers/mmc/host/sdhci-of-esdhc.c esdhc_clock_enable(host, false); host 891 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_DMA_SYSCTL); host 893 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_DMA_SYSCTL); host 895 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_TBCTL); host 900 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_TBCTL); host 902 drivers/mmc/host/sdhci-of-esdhc.c esdhc_clock_enable(host, true); host 905 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_prepare_sw_tuning(struct sdhci_host *host, u8 *window_start, host 908 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 920 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_TBCTL); host 923 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_TBCTL); host 928 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_TBCTL); host 929 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_TBCTL); host 934 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_TBSTAT); host 935 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_TBSTAT); host 938 drivers/mmc/host/sdhci-of-esdhc.c sdhci_reset(host, SDHCI_RESET_DATA); host 940 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, 0xFFFFFFFF, SDHCI_INT_STATUS); host 962 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_host *host = mmc_priv(mmc); host 963 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 972 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_TBPTR); host 975 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_TBCTL); host 978 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_TBCTL); host 988 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_host *host = mmc_priv(mmc); host 989 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1001 drivers/mmc/host/sdhci-of-esdhc.c if (host->clock > clk) host 1002 drivers/mmc/host/sdhci-of-esdhc.c esdhc_of_set_clock(host, clk); host 1004 drivers/mmc/host/sdhci-of-esdhc.c esdhc_tuning_block_enable(host, true); host 1006 drivers/mmc/host/sdhci-of-esdhc.c hs400_tuning = host->flags & SDHCI_HS400_TUNING; host 1011 drivers/mmc/host/sdhci-of-esdhc.c esdhc_of_set_clock(host, host->clock); host 1014 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_TBCTL); host 1017 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_TBCTL); host 1026 drivers/mmc/host/sdhci-of-esdhc.c ret = host->tuning_err; host 1032 drivers/mmc/host/sdhci-of-esdhc.c host->flags |= SDHCI_HS400_TUNING; host 1036 drivers/mmc/host/sdhci-of-esdhc.c esdhc_prepare_sw_tuning(host, &window_start, host 1045 drivers/mmc/host/sdhci-of-esdhc.c ret = host->tuning_err; host 1049 drivers/mmc/host/sdhci-of-esdhc.c host->flags |= SDHCI_HS400_TUNING; host 1051 drivers/mmc/host/sdhci-of-esdhc.c clk = host->max_clk / (esdhc->div_ratio + 1); host 1052 drivers/mmc/host/sdhci-of-esdhc.c esdhc_of_set_clock(host, clk); host 1064 drivers/mmc/host/sdhci-of-esdhc.c esdhc_tuning_block_enable(host, false); host 1066 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_SDTIMNGCTL); host 1068 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_SDTIMNGCTL); host 1074 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_set_uhs_signaling(struct sdhci_host *host, host 1078 drivers/mmc/host/sdhci-of-esdhc.c esdhc_tuning_block_enable(host, true); host 1080 drivers/mmc/host/sdhci-of-esdhc.c sdhci_set_uhs_signaling(host, timing); host 1083 drivers/mmc/host/sdhci-of-esdhc.c static u32 esdhc_irq(struct sdhci_host *host, u32 intmask) host 1089 drivers/mmc/host/sdhci-of-esdhc.c command = SDHCI_GET_CMD(sdhci_readw(host, host 1092 drivers/mmc/host/sdhci-of-esdhc.c sdhci_readw(host, SDHCI_BLOCK_COUNT) && host 1095 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, SDHCI_INT_DATA_END, host 1106 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_host *host = dev_get_drvdata(dev); host 1108 drivers/mmc/host/sdhci-of-esdhc.c esdhc_proctl = sdhci_readl(host, SDHCI_HOST_CONTROL); host 1110 drivers/mmc/host/sdhci-of-esdhc.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 1111 drivers/mmc/host/sdhci-of-esdhc.c mmc_retune_needed(host->mmc); host 1113 drivers/mmc/host/sdhci-of-esdhc.c return sdhci_suspend_host(host); host 1118 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_host *host = dev_get_drvdata(dev); host 1119 drivers/mmc/host/sdhci-of-esdhc.c int ret = sdhci_resume_host(host); host 1123 drivers/mmc/host/sdhci-of-esdhc.c esdhc_of_enable_dma(host); host 1124 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, esdhc_proctl, SDHCI_HOST_CONTROL); host 1205 drivers/mmc/host/sdhci-of-esdhc.c static void esdhc_init(struct platform_device *pdev, struct sdhci_host *host) host 1215 drivers/mmc/host/sdhci-of-esdhc.c pltfm_host = sdhci_priv(host); host 1218 drivers/mmc/host/sdhci-of-esdhc.c host_ver = sdhci_readw(host, SDHCI_HOST_VERSION); host 1264 drivers/mmc/host/sdhci-of-esdhc.c esdhc_clock_enable(host, false); host 1265 drivers/mmc/host/sdhci-of-esdhc.c val = sdhci_readl(host, ESDHC_DMA_SYSCTL); host 1267 drivers/mmc/host/sdhci-of-esdhc.c sdhci_writel(host, val, ESDHC_DMA_SYSCTL); host 1268 drivers/mmc/host/sdhci-of-esdhc.c esdhc_clock_enable(host, true); host 1280 drivers/mmc/host/sdhci-of-esdhc.c struct sdhci_host *host; host 1289 drivers/mmc/host/sdhci-of-esdhc.c host = sdhci_pltfm_init(pdev, &sdhci_esdhc_le_pdata, host 1292 drivers/mmc/host/sdhci-of-esdhc.c host = sdhci_pltfm_init(pdev, &sdhci_esdhc_be_pdata, host 1295 drivers/mmc/host/sdhci-of-esdhc.c if (IS_ERR(host)) host 1296 drivers/mmc/host/sdhci-of-esdhc.c return PTR_ERR(host); host 1298 drivers/mmc/host/sdhci-of-esdhc.c host->mmc_host_ops.start_signal_voltage_switch = host 1300 drivers/mmc/host/sdhci-of-esdhc.c host->mmc_host_ops.execute_tuning = esdhc_execute_tuning; host 1301 drivers/mmc/host/sdhci-of-esdhc.c host->mmc_host_ops.hs400_prepare_ddr = esdhc_hs400_prepare_ddr; host 1302 drivers/mmc/host/sdhci-of-esdhc.c host->tuning_delay = 1; host 1304 drivers/mmc/host/sdhci-of-esdhc.c esdhc_init(pdev, host); host 1308 drivers/mmc/host/sdhci-of-esdhc.c pltfm_host = sdhci_priv(host); host 1321 drivers/mmc/host/sdhci-of-esdhc.c host->quirks2 |= SDHCI_QUIRK2_HOST_NO_CMD23; host 1324 drivers/mmc/host/sdhci-of-esdhc.c host->quirks &= ~SDHCI_QUIRK_NO_BUSY_IRQ; host 1327 drivers/mmc/host/sdhci-of-esdhc.c host->quirks |= SDHCI_QUIRK_RESET_AFTER_REQUEST; host 1328 drivers/mmc/host/sdhci-of-esdhc.c host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; host 1336 drivers/mmc/host/sdhci-of-esdhc.c host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION; host 1339 drivers/mmc/host/sdhci-of-esdhc.c host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; host 1347 drivers/mmc/host/sdhci-of-esdhc.c host->quirks2 |= SDHCI_QUIRK2_BROKEN_HOST_CONTROL; host 1352 drivers/mmc/host/sdhci-of-esdhc.c ret = mmc_of_parse(host->mmc); host 1356 drivers/mmc/host/sdhci-of-esdhc.c mmc_of_parse_voltage(np, &host->ocr_mask); host 1358 drivers/mmc/host/sdhci-of-esdhc.c ret = sdhci_add_host(host); host 32 drivers/mmc/host/sdhci-of-hlwd.c static void sdhci_hlwd_writel(struct sdhci_host *host, u32 val, int reg) host 34 drivers/mmc/host/sdhci-of-hlwd.c sdhci_be32bs_writel(host, val, reg); host 38 drivers/mmc/host/sdhci-of-hlwd.c static void sdhci_hlwd_writew(struct sdhci_host *host, u16 val, int reg) host 40 drivers/mmc/host/sdhci-of-hlwd.c sdhci_be32bs_writew(host, val, reg); host 44 drivers/mmc/host/sdhci-of-hlwd.c static void sdhci_hlwd_writeb(struct sdhci_host *host, u8 val, int reg) host 46 drivers/mmc/host/sdhci-of-hlwd.c sdhci_be32bs_writeb(host, val, reg); host 100 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host; host 114 drivers/mmc/host/sdhci-omap.c static inline u32 sdhci_omap_readl(struct sdhci_omap_host *host, host 117 drivers/mmc/host/sdhci-omap.c return readl(host->base + offset); host 120 drivers/mmc/host/sdhci-omap.c static inline void sdhci_omap_writel(struct sdhci_omap_host *host, host 123 drivers/mmc/host/sdhci-omap.c writel(data, host->base + offset); host 171 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host = omap_host->host; host 172 drivers/mmc/host/sdhci-omap.c struct mmc_host *mmc = host->mmc; host 227 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host = mmc_priv(mmc); host 228 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 280 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host = mmc_priv(mmc); host 281 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 325 drivers/mmc/host/sdhci-omap.c if (host->ier & SDHCI_INT_DATA_CRC) { host 326 drivers/mmc/host/sdhci-omap.c host->ier &= ~SDHCI_INT_DATA_CRC; host 452 drivers/mmc/host/sdhci-omap.c sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); host 455 drivers/mmc/host/sdhci-omap.c host->ier |= SDHCI_INT_DATA_CRC; host 456 drivers/mmc/host/sdhci-omap.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 457 drivers/mmc/host/sdhci-omap.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 465 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host = mmc_priv(mmc); host 468 drivers/mmc/host/sdhci-omap.c u32 ier = host->ier; host 470 drivers/mmc/host/sdhci-omap.c pltfm_host = sdhci_priv(host); host 481 drivers/mmc/host/sdhci-omap.c disable_irq(host->irq); host 483 drivers/mmc/host/sdhci-omap.c sdhci_writel(host, ier, SDHCI_INT_ENABLE); host 484 drivers/mmc/host/sdhci-omap.c sdhci_writel(host, ier, SDHCI_SIGNAL_ENABLE); host 499 drivers/mmc/host/sdhci-omap.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 500 drivers/mmc/host/sdhci-omap.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 501 drivers/mmc/host/sdhci-omap.c enable_irq(host->irq); host 512 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host = mmc_priv(mmc); host 517 drivers/mmc/host/sdhci-omap.c pltfm_host = sdhci_priv(host); host 612 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host = mmc_priv(mmc); host 616 drivers/mmc/host/sdhci-omap.c pltfm_host = sdhci_priv(host); host 625 drivers/mmc/host/sdhci-omap.c static u16 sdhci_omap_calc_divisor(struct sdhci_pltfm_host *host, host 630 drivers/mmc/host/sdhci-omap.c dsor = DIV_ROUND_UP(clk_get_rate(host->clk), clock); host 655 drivers/mmc/host/sdhci-omap.c static void sdhci_omap_set_clock(struct sdhci_host *host, unsigned int clock) host 657 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 668 drivers/mmc/host/sdhci-omap.c sdhci_enable_clk(host, clkdiv); host 673 drivers/mmc/host/sdhci-omap.c static void sdhci_omap_set_power(struct sdhci_host *host, unsigned char mode, host 676 drivers/mmc/host/sdhci-omap.c struct mmc_host *mmc = host->mmc; host 681 drivers/mmc/host/sdhci-omap.c static int sdhci_omap_enable_dma(struct sdhci_host *host) host 684 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 694 drivers/mmc/host/sdhci-omap.c static unsigned int sdhci_omap_get_min_clock(struct sdhci_host *host) host 696 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 701 drivers/mmc/host/sdhci-omap.c static void sdhci_omap_set_bus_width(struct sdhci_host *host, int width) host 703 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 714 drivers/mmc/host/sdhci-omap.c sdhci_set_bus_width(host, width); host 717 drivers/mmc/host/sdhci-omap.c static void sdhci_omap_init_74_clocks(struct sdhci_host *host, u8 power_mode) host 721 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 730 drivers/mmc/host/sdhci-omap.c disable_irq(host->irq); host 754 drivers/mmc/host/sdhci-omap.c enable_irq(host->irq); host 757 drivers/mmc/host/sdhci-omap.c static void sdhci_omap_set_uhs_signaling(struct sdhci_host *host, host 761 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 773 drivers/mmc/host/sdhci-omap.c sdhci_set_uhs_signaling(host, timing); host 777 drivers/mmc/host/sdhci-omap.c static void sdhci_omap_reset(struct sdhci_host *host, u8 mask) host 779 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 786 drivers/mmc/host/sdhci-omap.c sdhci_reset(host, mask); host 793 drivers/mmc/host/sdhci-omap.c static u32 sdhci_omap_irq(struct sdhci_host *host, u32 intmask) host 795 drivers/mmc/host/sdhci-omap.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 798 drivers/mmc/host/sdhci-omap.c if (omap_host->is_tuning && host->cmd && !host->data_early && host 808 drivers/mmc/host/sdhci-omap.c host->cmd->error = -ETIMEDOUT; host 810 drivers/mmc/host/sdhci-omap.c host->cmd->error = -EILSEQ; host 812 drivers/mmc/host/sdhci-omap.c host->cmd = NULL; host 819 drivers/mmc/host/sdhci-omap.c sdhci_writel(host, intmask & CMD_MASK, SDHCI_INT_STATUS); host 931 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host = omap_host->host; host 932 drivers/mmc/host/sdhci-omap.c struct mmc_host *mmc = host->mmc; host 1033 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host; host 1052 drivers/mmc/host/sdhci-omap.c host = sdhci_pltfm_init(pdev, &sdhci_omap_pdata, host 1054 drivers/mmc/host/sdhci-omap.c if (IS_ERR(host)) { host 1056 drivers/mmc/host/sdhci-omap.c return PTR_ERR(host); host 1059 drivers/mmc/host/sdhci-omap.c pltfm_host = sdhci_priv(host); host 1061 drivers/mmc/host/sdhci-omap.c omap_host->host = host; host 1062 drivers/mmc/host/sdhci-omap.c omap_host->base = host->ioaddr; host 1067 drivers/mmc/host/sdhci-omap.c host->ioaddr += offset; host 1069 drivers/mmc/host/sdhci-omap.c mmc = host->mmc; host 1130 drivers/mmc/host/sdhci-omap.c host->mmc_host_ops.start_signal_voltage_switch = host 1132 drivers/mmc/host/sdhci-omap.c host->mmc_host_ops.set_ios = sdhci_omap_set_ios; host 1133 drivers/mmc/host/sdhci-omap.c host->mmc_host_ops.card_busy = sdhci_omap_card_busy; host 1134 drivers/mmc/host/sdhci-omap.c host->mmc_host_ops.execute_tuning = sdhci_omap_execute_tuning; host 1135 drivers/mmc/host/sdhci-omap.c host->mmc_host_ops.enable_sdio_irq = sdhci_omap_enable_sdio_irq; host 1140 drivers/mmc/host/sdhci-omap.c ret = sdhci_setup_host(host); host 1148 drivers/mmc/host/sdhci-omap.c ret = __sdhci_add_host(host); host 1155 drivers/mmc/host/sdhci-omap.c sdhci_cleanup_host(host); host 1171 drivers/mmc/host/sdhci-omap.c struct sdhci_host *host = platform_get_drvdata(pdev); host 1173 drivers/mmc/host/sdhci-omap.c sdhci_remove_host(host, true); host 93 drivers/mmc/host/sdhci-pci-arasan.c static int arasan_phy_addr_poll(struct sdhci_host *host, u32 offset, u32 mask) host 101 drivers/mmc/host/sdhci-pci-arasan.c val = sdhci_readw(host, PHY_ADDR_REG); host 109 drivers/mmc/host/sdhci-pci-arasan.c static int arasan_phy_write(struct sdhci_host *host, u8 data, u8 offset) host 111 drivers/mmc/host/sdhci-pci-arasan.c sdhci_writew(host, data, PHY_DAT_REG); host 112 drivers/mmc/host/sdhci-pci-arasan.c sdhci_writew(host, (PHY_WRITE | offset), PHY_ADDR_REG); host 113 drivers/mmc/host/sdhci-pci-arasan.c return arasan_phy_addr_poll(host, PHY_ADDR_REG, PHY_BUSY); host 116 drivers/mmc/host/sdhci-pci-arasan.c static int arasan_phy_read(struct sdhci_host *host, u8 offset, u8 *data) host 120 drivers/mmc/host/sdhci-pci-arasan.c sdhci_writew(host, 0, PHY_DAT_REG); host 121 drivers/mmc/host/sdhci-pci-arasan.c sdhci_writew(host, offset, PHY_ADDR_REG); host 122 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_addr_poll(host, PHY_ADDR_REG, PHY_BUSY); host 125 drivers/mmc/host/sdhci-pci-arasan.c *data = sdhci_readw(host, PHY_DAT_REG) & DATA_MASK; host 129 drivers/mmc/host/sdhci-pci-arasan.c static int arasan_phy_sts_poll(struct sdhci_host *host, u32 offset, u32 mask) host 138 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_read(host, offset, &val); host 149 drivers/mmc/host/sdhci-pci-arasan.c static int arasan_phy_init(struct sdhci_host *host) host 155 drivers/mmc/host/sdhci-pci-arasan.c if (arasan_phy_read(host, IPAD_CTRL1, &val) || host 156 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | RETB_ENBL | PDB_ENBL, IPAD_CTRL1) || host 157 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, IPAD_CTRL2, &val) || host 158 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | RTRIM_EN, IPAD_CTRL2)) host 160 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_sts_poll(host, IPAD_STS, CALDONE_MASK); host 165 drivers/mmc/host/sdhci-pci-arasan.c if (arasan_phy_read(host, IOREN_CTRL1, &val) || host 166 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | REN_CMND | REN_STRB, IOREN_CTRL1) || host 167 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, IOPU_CTRL1, &val) || host 168 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | PU_CMD, IOPU_CTRL1) || host 169 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, CMD_CTRL, &val) || host 170 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | PDB_CMND, CMD_CTRL) || host 171 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, IOREN_CTRL2, &val) || host 172 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | REN_DATA, IOREN_CTRL2) || host 173 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, IOPU_CTRL2, &val) || host 174 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | PU_DAT, IOPU_CTRL2) || host 175 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, DATA_CTRL, &val) || host 176 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | PDB_DATA, DATA_CTRL) || host 177 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, STRB_CTRL, &val) || host 178 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | PDB_STRB, STRB_CTRL) || host 179 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, CLK_CTRL, &val) || host 180 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | PDB_CLOCK, CLK_CTRL) || host 181 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_read(host, CLKBUF_SEL, &val) || host 182 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, val | MAX_CLK_BUF, CLKBUF_SEL) || host 183 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_write(host, LEGACY_MODE, MODE_CTRL)) host 189 drivers/mmc/host/sdhci-pci-arasan.c static int arasan_phy_set(struct sdhci_host *host, u8 mode, u8 otap, host 196 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, 0x0, MODE_CTRL); host 198 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, mode, MODE_CTRL); host 202 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_read(host, IPAD_CTRL1, &val); host 205 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, IOPAD(val, drv_type), IPAD_CTRL1); host 210 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, 0x0, OTAP_DELAY); host 213 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, 0x0, ITAP_DELAY); host 215 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, OTAPDLY(otap), OTAP_DELAY); host 219 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, ITAPDLY(itap), ITAP_DELAY); host 221 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, 0x0, ITAP_DELAY); host 226 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, trim, DLL_TRIM); host 230 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, 0, DLL_STATUS); host 234 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_write(host, FREQSEL(clk), DLL_STATUS); host 237 drivers/mmc/host/sdhci-pci-arasan.c ret = arasan_phy_sts_poll(host, DLL_STATUS, DLL_RDY_MASK); host 244 drivers/mmc/host/sdhci-pci-arasan.c static int arasan_select_phy_clock(struct sdhci_host *host) host 246 drivers/mmc/host/sdhci-pci-arasan.c struct sdhci_pci_slot *slot = sdhci_priv(host); host 250 drivers/mmc/host/sdhci-pci-arasan.c if (arasan_host->chg_clk == host->mmc->ios.clock) host 253 drivers/mmc/host/sdhci-pci-arasan.c arasan_host->chg_clk = host->mmc->ios.clock; host 254 drivers/mmc/host/sdhci-pci-arasan.c if (host->mmc->ios.clock == 200000000) host 256 drivers/mmc/host/sdhci-pci-arasan.c else if (host->mmc->ios.clock == 100000000) host 258 drivers/mmc/host/sdhci-pci-arasan.c else if (host->mmc->ios.clock == 50000000) host 263 drivers/mmc/host/sdhci-pci-arasan.c if (host->mmc_host_ops.hs400_enhanced_strobe) { host 264 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_set(host, ENHSTRB_MODE, 1, 0x0, 0x0, host 267 drivers/mmc/host/sdhci-pci-arasan.c switch (host->mmc->ios.timing) { host 269 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_set(host, LEGACY_MODE, 0x0, 0x0, 0x0, host 274 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_set(host, HISPD_MODE, 0x3, 0x0, 0x2, host 279 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_set(host, HS200_MODE, 0x2, host 280 drivers/mmc/host/sdhci-pci-arasan.c host->mmc->ios.drv_type, 0x0, host 285 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_set(host, DDR50_MODE, 0x1, 0x0, host 289 drivers/mmc/host/sdhci-pci-arasan.c arasan_phy_set(host, HS400_MODE, 0x1, host 290 drivers/mmc/host/sdhci-pci-arasan.c host->mmc->ios.drv_type, 0xa, host 304 drivers/mmc/host/sdhci-pci-arasan.c slot->host->mmc->caps |= MMC_CAP_NONREMOVABLE | MMC_CAP_8_BIT_DATA; host 305 drivers/mmc/host/sdhci-pci-arasan.c err = arasan_phy_init(slot->host); host 311 drivers/mmc/host/sdhci-pci-arasan.c static void arasan_sdhci_set_clock(struct sdhci_host *host, unsigned int clock) host 313 drivers/mmc/host/sdhci-pci-arasan.c sdhci_set_clock(host, clock); host 316 drivers/mmc/host/sdhci-pci-arasan.c arasan_select_phy_clock(host); host 41 drivers/mmc/host/sdhci-pci-core.c static void sdhci_pci_hw_reset(struct sdhci_host *host); host 54 drivers/mmc/host/sdhci-pci-core.c pm_flags |= slot->host->mmc->pm_flags; host 55 drivers/mmc/host/sdhci-pci-core.c if (slot->host->mmc->caps & MMC_CAP_CD_WAKE) host 76 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host; host 81 drivers/mmc/host/sdhci-pci-core.c host = slot->host; host 83 drivers/mmc/host/sdhci-pci-core.c if (chip->pm_retune && host->tuning_mode != SDHCI_TUNING_MODE_3) host 84 drivers/mmc/host/sdhci-pci-core.c mmc_retune_needed(host->mmc); host 86 drivers/mmc/host/sdhci-pci-core.c ret = sdhci_suspend_host(host); host 91 drivers/mmc/host/sdhci-pci-core.c mmc_gpio_set_cd_wake(host->mmc, true); host 98 drivers/mmc/host/sdhci-pci-core.c sdhci_resume_host(chip->slots[i]->host); host 112 drivers/mmc/host/sdhci-pci-core.c ret = sdhci_resume_host(slot->host); host 116 drivers/mmc/host/sdhci-pci-core.c mmc_gpio_set_cd_wake(slot->host->mmc, false); host 126 drivers/mmc/host/sdhci-pci-core.c ret = cqhci_suspend(chip->slots[0]->host->mmc); host 141 drivers/mmc/host/sdhci-pci-core.c return cqhci_resume(chip->slots[0]->host->mmc); host 149 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host; host 157 drivers/mmc/host/sdhci-pci-core.c host = slot->host; host 159 drivers/mmc/host/sdhci-pci-core.c ret = sdhci_runtime_suspend_host(host); host 164 drivers/mmc/host/sdhci-pci-core.c host->tuning_mode != SDHCI_TUNING_MODE_3) host 165 drivers/mmc/host/sdhci-pci-core.c mmc_retune_needed(host->mmc); host 172 drivers/mmc/host/sdhci-pci-core.c sdhci_runtime_resume_host(chip->slots[i]->host, 0); host 186 drivers/mmc/host/sdhci-pci-core.c ret = sdhci_runtime_resume_host(slot->host, 0); host 198 drivers/mmc/host/sdhci-pci-core.c ret = cqhci_suspend(chip->slots[0]->host->mmc); host 213 drivers/mmc/host/sdhci-pci-core.c return cqhci_resume(chip->slots[0]->host->mmc); host 217 drivers/mmc/host/sdhci-pci-core.c static u32 sdhci_cqhci_irq(struct sdhci_host *host, u32 intmask) host 222 drivers/mmc/host/sdhci-pci-core.c if (!sdhci_cqe_irq(host, intmask, &cmd_error, &data_error)) host 225 drivers/mmc/host/sdhci-pci-core.c cqhci_irq(host->mmc, intmask, cmd_error, data_error); host 251 drivers/mmc/host/sdhci-pci-core.c slot->host->caps = host 318 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA; host 338 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA; host 347 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = slot->host; host 349 drivers/mmc/host/sdhci-pci-core.c mmc_detect_change(host->mmc, msecs_to_jiffies(200)); host 411 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE; host 412 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps2 |= MMC_CAP2_BOOTPART_NOACC; host 418 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE; host 581 drivers/mmc/host/sdhci-pci-core.c static void sdhci_pci_int_hw_reset(struct sdhci_host *host) host 585 drivers/mmc/host/sdhci-pci-core.c reg = sdhci_readb(host, SDHCI_POWER_CONTROL); host 587 drivers/mmc/host/sdhci-pci-core.c sdhci_writeb(host, reg, SDHCI_POWER_CONTROL); host 591 drivers/mmc/host/sdhci-pci-core.c sdhci_writeb(host, reg, SDHCI_POWER_CONTROL); host 600 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = mmc_priv(card->host); host 601 drivers/mmc/host/sdhci-pci-core.c struct sdhci_pci_slot *slot = sdhci_priv(host); host 613 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = mmc_priv(mmc); host 620 drivers/mmc/host/sdhci-pci-core.c spin_lock_irqsave(&host->lock, flags); host 622 drivers/mmc/host/sdhci-pci-core.c if (host->flags & SDHCI_DEVICE_DEAD) host 625 drivers/mmc/host/sdhci-pci-core.c ret = !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); host 627 drivers/mmc/host/sdhci-pci-core.c spin_unlock_irqrestore(&host->lock, flags); host 635 drivers/mmc/host/sdhci-pci-core.c static void sdhci_intel_set_power(struct sdhci_host *host, unsigned char mode, host 641 drivers/mmc/host/sdhci-pci-core.c sdhci_set_power(host, mode, vdd); host 651 drivers/mmc/host/sdhci-pci-core.c reg = sdhci_readb(host, SDHCI_POWER_CONTROL); host 656 drivers/mmc/host/sdhci-pci-core.c sdhci_writeb(host, reg, SDHCI_POWER_CONTROL); host 666 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = mmc_priv(mmc); host 669 drivers/mmc/host/sdhci-pci-core.c val = sdhci_readl(host, INTEL_HS400_ES_REG); host 674 drivers/mmc/host/sdhci-pci-core.c sdhci_writel(host, val, INTEL_HS400_ES_REG); host 681 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = mmc_priv(mmc); host 682 drivers/mmc/host/sdhci-pci-core.c struct sdhci_pci_slot *slot = sdhci_priv(host); host 735 drivers/mmc/host/sdhci-pci-core.c struct mmc_host *mmc = slot->host->mmc; host 744 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = mmc_priv(mmc); host 754 drivers/mmc/host/sdhci-pci-core.c sdhci_reset(host, SDHCI_RESET_DATA); host 761 drivers/mmc/host/sdhci-pci-core.c struct mmc_host_ops *ops = &slot->host->mmc_host_ops; host 763 drivers/mmc/host/sdhci-pci-core.c struct mmc_host *mmc = slot->host->mmc; host 778 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_NONREMOVABLE | host 784 drivers/mmc/host/sdhci-pci-core.c slot->host->timeout_clk = 1000; /* 1000 kHz i.e. 1 MHz */ host 785 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc_host_ops.select_drive_strength = host 801 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps2 |= MMC_CAP2_CQE; host 804 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps2 |= MMC_CAP2_HS400_ES, host 805 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc_host_ops.hs400_enhanced_strobe = host 807 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps2 |= MMC_CAP2_CQE_DCMD; host 822 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = slot->host; host 827 drivers/mmc/host/sdhci-pci-core.c ret = sdhci_setup_host(host); host 837 drivers/mmc/host/sdhci-pci-core.c cq_host->mmio = host->ioaddr + 0x200; host 841 drivers/mmc/host/sdhci-pci-core.c dma64 = host->flags & SDHCI_USE_64_BIT_DMA; host 845 drivers/mmc/host/sdhci-pci-core.c ret = cqhci_init(cq_host, host->mmc, dma64); host 849 drivers/mmc/host/sdhci-pci-core.c ret = __sdhci_add_host(host); host 856 drivers/mmc/host/sdhci-pci-core.c sdhci_cleanup_host(host); host 870 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = slot->host; host 875 drivers/mmc/host/sdhci-pci-core.c if (intel_host->rpm_retune_ok || !mmc_can_retune(host->mmc)) host 878 drivers/mmc/host/sdhci-pci-core.c glk_rx_ctrl1 = sdhci_readl(host, GLK_RX_CTRL1); host 879 drivers/mmc/host/sdhci-pci-core.c glk_tun_val = sdhci_readl(host, GLK_TUN_VAL); host 901 drivers/mmc/host/sdhci-pci-core.c sdhci_writel(host, glk_rx_ctrl1, GLK_RX_CTRL1); host 905 drivers/mmc/host/sdhci-pci-core.c mmc_retune_needed(host->mmc); host 906 drivers/mmc/host/sdhci-pci-core.c pr_info("%s: Requiring re-tune after rpm resume", mmc_hostname(host->mmc)); host 945 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->f_max = max_freq * 1000000; host 966 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE | host 974 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_POWER_OFF_CARD | MMC_CAP_NONREMOVABLE | host 982 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY | host 990 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc_host_ops.get_cd = bxt_get_cd; host 994 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps2 |= MMC_CAP2_AVOID_3_3V; host 1144 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_NONREMOVABLE | host 1149 drivers/mmc/host/sdhci-pci-core.c slot->host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V; host 1153 drivers/mmc/host/sdhci-pci-core.c slot->host->ocr_mask = MMC_VDD_20_21 | MMC_VDD_165_195; host 1154 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_NONREMOVABLE | host 1262 drivers/mmc/host/sdhci-pci-core.c static void jmicron_enable_mmc(struct sdhci_host *host, int on) host 1266 drivers/mmc/host/sdhci-pci-core.c scratch = readb(host->ioaddr + 0xC0); host 1273 drivers/mmc/host/sdhci-pci-core.c writeb(scratch, host->ioaddr + 0xC0); host 1281 drivers/mmc/host/sdhci-pci-core.c version = readl(slot->host->ioaddr + SDHCI_HOST_VERSION); host 1291 drivers/mmc/host/sdhci-pci-core.c slot->host->quirks |= SDHCI_QUIRK_BROKEN_ADMA; host 1296 drivers/mmc/host/sdhci-pci-core.c slot->host->ocr_avail_sd = MMC_VDD_32_33 | MMC_VDD_33_34 | host 1299 drivers/mmc/host/sdhci-pci-core.c slot->host->ocr_avail_mmc = MMC_VDD_32_33 | MMC_VDD_33_34 | host 1309 drivers/mmc/host/sdhci-pci-core.c jmicron_enable_mmc(slot->host, 1); host 1311 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_BUS_WIDTH_TEST; host 1323 drivers/mmc/host/sdhci-pci-core.c jmicron_enable_mmc(slot->host, 0); host 1338 drivers/mmc/host/sdhci-pci-core.c jmicron_enable_mmc(chip->slots[i]->host, 0); host 1351 drivers/mmc/host/sdhci-pci-core.c jmicron_enable_mmc(chip->slots[i]->host, 1); host 1408 drivers/mmc/host/sdhci-pci-core.c u8 board_rev = readb(slot->host->ioaddr + SYSKT_BOARD_REV); host 1409 drivers/mmc/host/sdhci-pci-core.c u8 chip_rev = readb(slot->host->ioaddr + SYSKT_CHIP_REV); host 1415 drivers/mmc/host/sdhci-pci-core.c slot->host->quirks |= SDHCI_QUIRK_FORCE_DMA; host 1417 drivers/mmc/host/sdhci-pci-core.c writeb(SYSKT_POWER_330, slot->host->ioaddr + SYSKT_POWER_DATA); host 1418 drivers/mmc/host/sdhci-pci-core.c writeb(SYSKT_POWER_START, slot->host->ioaddr + SYSKT_POWER_CMD); host 1422 drivers/mmc/host/sdhci-pci-core.c ps = readw(slot->host->ioaddr + SYSKT_POWER_STATUS); host 1430 drivers/mmc/host/sdhci-pci-core.c writeb(0, slot->host->ioaddr + SYSKT_POWER_CMD); host 1457 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps2 |= MMC_CAP2_HS200; host 1485 drivers/mmc/host/sdhci-pci-core.c static void amd_tuning_reset(struct sdhci_host *host) host 1489 drivers/mmc/host/sdhci-pci-core.c val = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 1491 drivers/mmc/host/sdhci-pci-core.c sdhci_writew(host, val, SDHCI_HOST_CONTROL2); host 1493 drivers/mmc/host/sdhci-pci-core.c val = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 1495 drivers/mmc/host/sdhci-pci-core.c sdhci_writew(host, val, SDHCI_HOST_CONTROL2); host 1517 drivers/mmc/host/sdhci-pci-core.c static int amd_execute_tuning_hs200(struct sdhci_host *host, u32 opcode) host 1519 drivers/mmc/host/sdhci-pci-core.c struct sdhci_pci_slot *slot = sdhci_priv(host); host 1526 drivers/mmc/host/sdhci-pci-core.c amd_tuning_reset(host); host 1531 drivers/mmc/host/sdhci-pci-core.c if (mmc_send_tuning(host->mmc, opcode, NULL)) { host 1535 drivers/mmc/host/sdhci-pci-core.c sdhci_writeb(host, ctrl, SDHCI_SOFTWARE_RESET); host 1551 drivers/mmc/host/sdhci-pci-core.c host->mmc->retune_period = 0; host 1558 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host = mmc_priv(mmc); host 1561 drivers/mmc/host/sdhci-pci-core.c if (host->timing == MMC_TIMING_MMC_HS200) host 1562 drivers/mmc/host/sdhci-pci-core.c return amd_execute_tuning_hs200(host, opcode); host 1570 drivers/mmc/host/sdhci-pci-core.c struct mmc_host_ops *ops = &slot->host->mmc_host_ops; host 1605 drivers/mmc/host/sdhci-pci-core.c static u32 sdhci_read_present_state(struct sdhci_host *host) host 1607 drivers/mmc/host/sdhci-pci-core.c return sdhci_readl(host, SDHCI_PRESENT_STATE); host 1610 drivers/mmc/host/sdhci-pci-core.c static void amd_sdhci_reset(struct sdhci_host *host, u8 mask) host 1612 drivers/mmc/host/sdhci-pci-core.c struct sdhci_pci_slot *slot = sdhci_priv(host); host 1627 drivers/mmc/host/sdhci-pci-core.c pr_debug("%s: power_state=%u\n", mmc_hostname(host->mmc), host 1642 drivers/mmc/host/sdhci-pci-core.c host, host 1650 drivers/mmc/host/sdhci-pci-core.c return sdhci_reset(host, mask); host 1766 drivers/mmc/host/sdhci-pci-core.c int sdhci_pci_enable_dma(struct sdhci_host *host) host 1771 drivers/mmc/host/sdhci-pci-core.c slot = sdhci_priv(host); host 1776 drivers/mmc/host/sdhci-pci-core.c (host->flags & SDHCI_USE_SDMA)) { host 1786 drivers/mmc/host/sdhci-pci-core.c static void sdhci_pci_gpio_hw_reset(struct sdhci_host *host) host 1788 drivers/mmc/host/sdhci-pci-core.c struct sdhci_pci_slot *slot = sdhci_priv(host); host 1801 drivers/mmc/host/sdhci-pci-core.c static void sdhci_pci_hw_reset(struct sdhci_host *host) host 1803 drivers/mmc/host/sdhci-pci-core.c struct sdhci_pci_slot *slot = sdhci_priv(host); host 1806 drivers/mmc/host/sdhci-pci-core.c slot->hw_reset(host); host 1897 drivers/mmc/host/sdhci-pci-core.c struct sdhci_host *host; host 1921 drivers/mmc/host/sdhci-pci-core.c host = sdhci_alloc_host(&pdev->dev, sizeof(*slot) + priv_size); host 1922 drivers/mmc/host/sdhci-pci-core.c if (IS_ERR(host)) { host 1924 drivers/mmc/host/sdhci-pci-core.c return ERR_CAST(host); host 1927 drivers/mmc/host/sdhci-pci-core.c slot = sdhci_priv(host); host 1930 drivers/mmc/host/sdhci-pci-core.c slot->host = host; host 1951 drivers/mmc/host/sdhci-pci-core.c host->hw_name = "PCI"; host 1952 drivers/mmc/host/sdhci-pci-core.c host->ops = chip->fixes && chip->fixes->ops ? host 1955 drivers/mmc/host/sdhci-pci-core.c host->quirks = chip->quirks; host 1956 drivers/mmc/host/sdhci-pci-core.c host->quirks2 = chip->quirks2; host 1958 drivers/mmc/host/sdhci-pci-core.c host->irq = pdev->irq; host 1960 drivers/mmc/host/sdhci-pci-core.c ret = pcim_iomap_regions(pdev, BIT(bar), mmc_hostname(host->mmc)); host 1966 drivers/mmc/host/sdhci-pci-core.c host->ioaddr = pcim_iomap_table(pdev)[bar]; host 1977 drivers/mmc/host/sdhci-pci-core.c slot->host->mmc->caps |= MMC_CAP_HW_RESET; host 1985 drivers/mmc/host/sdhci-pci-core.c host->mmc->pm_caps = MMC_PM_KEEP_POWER; host 1986 drivers/mmc/host/sdhci-pci-core.c host->mmc->slotno = slotno; host 1987 drivers/mmc/host/sdhci-pci-core.c host->mmc->caps2 |= MMC_CAP2_NO_PRESCAN_POWERUP; host 1990 drivers/mmc/host/sdhci-pci-core.c host->mmc->pm_caps |= MMC_PM_WAKE_SDIO_IRQ; host 1992 drivers/mmc/host/sdhci-pci-core.c if (host->mmc->caps & MMC_CAP_CD_WAKE) host 1996 drivers/mmc/host/sdhci-pci-core.c ret = mmc_gpiod_request_cd(host->mmc, "cd", slot->cd_idx, host 1999 drivers/mmc/host/sdhci-pci-core.c ret = mmc_gpiod_request_cd(host->mmc, NULL, host 2015 drivers/mmc/host/sdhci-pci-core.c ret = sdhci_add_host(host); host 2041 drivers/mmc/host/sdhci-pci-core.c sdhci_free_host(host); host 2054 drivers/mmc/host/sdhci-pci-core.c scratch = readl(slot->host->ioaddr + SDHCI_INT_STATUS); host 2058 drivers/mmc/host/sdhci-pci-core.c sdhci_remove_host(slot->host, dead); host 2066 drivers/mmc/host/sdhci-pci-core.c sdhci_free_host(slot->host); host 31 drivers/mmc/host/sdhci-pci-dwc-mshc.c static void sdhci_snps_set_clock(struct sdhci_host *host, unsigned int clock) host 36 drivers/mmc/host/sdhci-pci-dwc-mshc.c vendor_ptr = sdhci_readw(host, SDHCI_VENDOR_PTR_R); host 39 drivers/mmc/host/sdhci-pci-dwc-mshc.c reg = sdhci_readl(host, (SDHC_AT_CTRL_R + vendor_ptr)); host 41 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_writel(host, reg, (SDHC_AT_CTRL_R + vendor_ptr)); host 44 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_set_clock(host, clock); host 47 drivers/mmc/host/sdhci-pci-dwc-mshc.c reg = sdhci_readl(host, (SDHC_GPIO_OUT + vendor_ptr)); host 49 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_writel(host, reg, (SDHC_GPIO_OUT + vendor_ptr)); host 53 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_writel(host, DIV_REG_100_MHZ, SDHC_MMCM_DIV_REG); host 54 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_writel(host, CLKFBOUT_100_MHZ, host 57 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_writel(host, DIV_REG_200_MHZ, SDHC_MMCM_DIV_REG); host 58 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_writel(host, CLKFBOUT_200_MHZ, host 63 drivers/mmc/host/sdhci-pci-dwc-mshc.c reg = sdhci_readl(host, (SDHC_GPIO_OUT + vendor_ptr)); host 65 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_writel(host, reg, (SDHC_GPIO_OUT + vendor_ptr)); host 70 drivers/mmc/host/sdhci-pci-dwc-mshc.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 69 drivers/mmc/host/sdhci-pci-gli.c static inline void gl9750_wt_on(struct sdhci_host *host) host 74 drivers/mmc/host/sdhci-pci-gli.c wt_value = sdhci_readl(host, SDHCI_GLI_9750_WT); host 83 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, wt_value, SDHCI_GLI_9750_WT); host 86 drivers/mmc/host/sdhci-pci-gli.c static inline void gl9750_wt_off(struct sdhci_host *host) host 91 drivers/mmc/host/sdhci-pci-gli.c wt_value = sdhci_readl(host, SDHCI_GLI_9750_WT); host 100 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, wt_value, SDHCI_GLI_9750_WT); host 103 drivers/mmc/host/sdhci-pci-gli.c static void gli_set_9750(struct sdhci_host *host) host 113 drivers/mmc/host/sdhci-pci-gli.c gl9750_wt_on(host); host 115 drivers/mmc/host/sdhci-pci-gli.c driving_value = sdhci_readl(host, SDHCI_GLI_9750_DRIVING); host 116 drivers/mmc/host/sdhci-pci-gli.c pll_value = sdhci_readl(host, SDHCI_GLI_9750_PLL); host 117 drivers/mmc/host/sdhci-pci-gli.c sw_ctrl_value = sdhci_readl(host, SDHCI_GLI_9750_SW_CTRL); host 118 drivers/mmc/host/sdhci-pci-gli.c misc_value = sdhci_readl(host, SDHCI_GLI_9750_MISC); host 119 drivers/mmc/host/sdhci-pci-gli.c parameter_value = sdhci_readl(host, SDHCI_GLI_9750_TUNING_PARAMETERS); host 120 drivers/mmc/host/sdhci-pci-gli.c control_value = sdhci_readl(host, SDHCI_GLI_9750_TUNING_CONTROL); host 130 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, driving_value, SDHCI_GLI_9750_DRIVING); host 135 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, sw_ctrl_value, SDHCI_GLI_9750_SW_CTRL); host 166 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, pll_value, SDHCI_GLI_9750_PLL); host 167 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, misc_value, SDHCI_GLI_9750_MISC); host 170 drivers/mmc/host/sdhci-pci-gli.c ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 172 drivers/mmc/host/sdhci-pci-gli.c sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2); host 178 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, control_value, SDHCI_GLI_9750_TUNING_CONTROL); host 181 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, parameter_value, SDHCI_GLI_9750_TUNING_PARAMETERS); host 187 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, control_value, SDHCI_GLI_9750_TUNING_CONTROL); host 190 drivers/mmc/host/sdhci-pci-gli.c ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 192 drivers/mmc/host/sdhci-pci-gli.c sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2); host 194 drivers/mmc/host/sdhci-pci-gli.c gl9750_wt_off(host); host 197 drivers/mmc/host/sdhci-pci-gli.c static void gli_set_9750_rx_inv(struct sdhci_host *host, bool b) host 201 drivers/mmc/host/sdhci-pci-gli.c gl9750_wt_on(host); host 203 drivers/mmc/host/sdhci-pci-gli.c misc_value = sdhci_readl(host, SDHCI_GLI_9750_MISC); host 212 drivers/mmc/host/sdhci-pci-gli.c sdhci_writel(host, misc_value, SDHCI_GLI_9750_MISC); host 214 drivers/mmc/host/sdhci-pci-gli.c gl9750_wt_off(host); host 217 drivers/mmc/host/sdhci-pci-gli.c static int __sdhci_execute_tuning_9750(struct sdhci_host *host, u32 opcode) host 223 drivers/mmc/host/sdhci-pci-gli.c gli_set_9750_rx_inv(host, !!rx_inv); host 224 drivers/mmc/host/sdhci-pci-gli.c sdhci_start_tuning(host); host 229 drivers/mmc/host/sdhci-pci-gli.c sdhci_send_tuning(host, opcode); host 231 drivers/mmc/host/sdhci-pci-gli.c if (!host->tuning_done) { host 232 drivers/mmc/host/sdhci-pci-gli.c sdhci_abort_tuning(host, opcode); host 236 drivers/mmc/host/sdhci-pci-gli.c ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 244 drivers/mmc/host/sdhci-pci-gli.c if (!host->tuning_done) { host 246 drivers/mmc/host/sdhci-pci-gli.c mmc_hostname(host->mmc)); host 251 drivers/mmc/host/sdhci-pci-gli.c mmc_hostname(host->mmc)); host 252 drivers/mmc/host/sdhci-pci-gli.c sdhci_reset_tuning(host); host 257 drivers/mmc/host/sdhci-pci-gli.c static int gl9750_execute_tuning(struct sdhci_host *host, u32 opcode) host 259 drivers/mmc/host/sdhci-pci-gli.c host->mmc->retune_period = 0; host 260 drivers/mmc/host/sdhci-pci-gli.c if (host->tuning_mode == SDHCI_TUNING_MODE_1) host 261 drivers/mmc/host/sdhci-pci-gli.c host->mmc->retune_period = host->tuning_count; host 263 drivers/mmc/host/sdhci-pci-gli.c gli_set_9750(host); host 264 drivers/mmc/host/sdhci-pci-gli.c host->tuning_err = __sdhci_execute_tuning_9750(host, opcode); host 265 drivers/mmc/host/sdhci-pci-gli.c sdhci_end_tuning(host); host 278 drivers/mmc/host/sdhci-pci-gli.c mmc_hostname(slot->host->mmc), ret); host 282 drivers/mmc/host/sdhci-pci-gli.c slot->host->irq = pci_irq_vector(slot->chip->pdev, 0); host 287 drivers/mmc/host/sdhci-pci-gli.c struct sdhci_host *host = slot->host; host 290 drivers/mmc/host/sdhci-pci-gli.c slot->host->mmc->caps2 |= MMC_CAP2_NO_SDIO; host 291 drivers/mmc/host/sdhci-pci-gli.c sdhci_enable_v4_mode(host); host 298 drivers/mmc/host/sdhci-pci-gli.c struct sdhci_host *host = slot->host; host 301 drivers/mmc/host/sdhci-pci-gli.c slot->host->mmc->caps2 |= MMC_CAP2_NO_SDIO; host 302 drivers/mmc/host/sdhci-pci-gli.c sdhci_enable_v4_mode(host); host 307 drivers/mmc/host/sdhci-pci-gli.c static void sdhci_gli_voltage_switch(struct sdhci_host *host) host 325 drivers/mmc/host/sdhci-pci-gli.c static void sdhci_gl9750_reset(struct sdhci_host *host, u8 mask) host 327 drivers/mmc/host/sdhci-pci-gli.c sdhci_reset(host, mask); host 328 drivers/mmc/host/sdhci-pci-gli.c gli_set_9750(host); host 331 drivers/mmc/host/sdhci-pci-gli.c static u32 sdhci_gl9750_readl(struct sdhci_host *host, int reg) host 335 drivers/mmc/host/sdhci-pci-gli.c value = readl(host->ioaddr + reg); host 71 drivers/mmc/host/sdhci-pci-o2micro.c static void sdhci_o2_wait_card_detect_stable(struct sdhci_host *host) host 81 drivers/mmc/host/sdhci-pci-o2micro.c scratch32 = sdhci_readl(host, SDHCI_PRESENT_STATE); host 88 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 89 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_dumpregs(host); host 96 drivers/mmc/host/sdhci-pci-o2micro.c static void sdhci_o2_enable_internal_clock(struct sdhci_host *host) host 103 drivers/mmc/host/sdhci-pci-o2micro.c scratch32 = sdhci_readl(host, O2_PLL_DLL_WDT_CONTROL1); host 105 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writel(host, scratch32, O2_PLL_DLL_WDT_CONTROL1); host 108 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writel(host, scratch32, O2_PLL_DLL_WDT_CONTROL1); host 112 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writel(host, scratch32, O2_PLL_DLL_WDT_CONTROL1); host 119 drivers/mmc/host/sdhci-pci-o2micro.c scratch = sdhci_readw(host, O2_PLL_DLL_WDT_CONTROL1); host 124 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 125 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_dumpregs(host); host 133 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_o2_wait_card_detect_stable(host); host 137 drivers/mmc/host/sdhci-pci-o2micro.c scratch32 = sdhci_readl(host, O2_PLL_DLL_WDT_CONTROL1); host 139 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writel(host, scratch32, O2_PLL_DLL_WDT_CONTROL1); host 144 drivers/mmc/host/sdhci-pci-o2micro.c struct sdhci_host *host = mmc_priv(mmc); host 146 drivers/mmc/host/sdhci-pci-o2micro.c if (!(sdhci_readw(host, O2_PLL_DLL_WDT_CONTROL1) & O2_PLL_LOCK_STATUS)) host 147 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_o2_enable_internal_clock(host); host 149 drivers/mmc/host/sdhci-pci-o2micro.c return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); host 166 drivers/mmc/host/sdhci-pci-o2micro.c static u32 sdhci_o2_pll_dll_wdt_control(struct sdhci_host *host) host 168 drivers/mmc/host/sdhci-pci-o2micro.c return sdhci_readl(host, O2_PLL_DLL_WDT_CONTROL1); host 177 drivers/mmc/host/sdhci-pci-o2micro.c static int sdhci_o2_wait_dll_detect_lock(struct sdhci_host *host) host 181 drivers/mmc/host/sdhci-pci-o2micro.c return readx_poll_timeout(sdhci_o2_pll_dll_wdt_control, host, host 185 drivers/mmc/host/sdhci-pci-o2micro.c static void sdhci_o2_set_tuning_mode(struct sdhci_host *host) host 190 drivers/mmc/host/sdhci-pci-o2micro.c reg = sdhci_readw(host, O2_SD_VENDOR_SETTING); host 192 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writew(host, reg, O2_SD_VENDOR_SETTING); host 195 drivers/mmc/host/sdhci-pci-o2micro.c static void __sdhci_o2_execute_tuning(struct sdhci_host *host, u32 opcode) host 199 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_send_tuning(host, MMC_SEND_TUNING_BLOCK_HS200); host 202 drivers/mmc/host/sdhci-pci-o2micro.c u16 ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 206 drivers/mmc/host/sdhci-pci-o2micro.c host->tuning_done = true; host 210 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 218 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 219 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_reset_tuning(host); host 229 drivers/mmc/host/sdhci-pci-o2micro.c static int sdhci_o2_dll_recovery(struct sdhci_host *host) host 234 drivers/mmc/host/sdhci-pci-o2micro.c struct sdhci_pci_slot *slot = sdhci_priv(host); host 245 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writeb(host, 0, SDHCI_CLOCK_CONTROL); host 248 drivers/mmc/host/sdhci-pci-o2micro.c scratch_32 = sdhci_readl(host, O2_PLL_DLL_WDT_CONTROL1); host 250 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writel(host, scratch_32, O2_PLL_DLL_WDT_CONTROL1); host 262 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writeb(host, scratch_8, SDHCI_CLOCK_CONTROL); host 264 drivers/mmc/host/sdhci-pci-o2micro.c if (sdhci_o2_get_cd(host->mmc)) { host 270 drivers/mmc/host/sdhci-pci-o2micro.c if (sdhci_o2_wait_dll_detect_lock(host)) { host 272 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writeb(host, scratch_8, host 277 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc), host 282 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 290 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 301 drivers/mmc/host/sdhci-pci-o2micro.c struct sdhci_host *host = mmc_priv(mmc); host 308 drivers/mmc/host/sdhci-pci-o2micro.c if (host->timing != MMC_TIMING_MMC_HS200) host 317 drivers/mmc/host/sdhci-pci-o2micro.c if (!sdhci_o2_wait_dll_detect_lock(host)) host 318 drivers/mmc/host/sdhci-pci-o2micro.c if (!sdhci_o2_dll_recovery(host)) { host 320 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 329 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_set_bus_width(host, MMC_BUS_WIDTH_4); host 332 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_o2_set_tuning_mode(host); host 334 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_start_tuning(host); host 336 drivers/mmc/host/sdhci-pci-o2micro.c __sdhci_o2_execute_tuning(host, opcode); host 338 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_end_tuning(host); host 342 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_set_bus_width(host, current_bus_width); host 345 drivers/mmc/host/sdhci-pci-o2micro.c host->flags &= ~SDHCI_HS400_TUNING; host 462 drivers/mmc/host/sdhci-pci-o2micro.c struct sdhci_host *host) host 469 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 477 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc), ret); host 481 drivers/mmc/host/sdhci-pci-o2micro.c host->irq = pci_irq_vector(chip->pdev, 0); host 484 drivers/mmc/host/sdhci-pci-o2micro.c static void sdhci_o2_enable_clk(struct sdhci_host *host, u16 clk) host 488 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 490 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_o2_enable_internal_clock(host); host 491 drivers/mmc/host/sdhci-pci-o2micro.c if (sdhci_o2_get_cd(host->mmc)) { host 493 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 497 drivers/mmc/host/sdhci-pci-o2micro.c void sdhci_pci_o2_set_clock(struct sdhci_host *host, unsigned int clock) host 501 drivers/mmc/host/sdhci-pci-o2micro.c host->mmc->actual_clock = 0; host 503 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); host 508 drivers/mmc/host/sdhci-pci-o2micro.c clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock); host 509 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_o2_enable_clk(host, clk); host 515 drivers/mmc/host/sdhci-pci-o2micro.c struct sdhci_host *host; host 521 drivers/mmc/host/sdhci-pci-o2micro.c host = slot->host; host 524 drivers/mmc/host/sdhci-pci-o2micro.c caps = sdhci_readl(host, SDHCI_CAPABILITIES); host 531 drivers/mmc/host/sdhci-pci-o2micro.c host->mmc->caps |= MMC_CAP_8_BIT_DATA; host 539 drivers/mmc/host/sdhci-pci-o2micro.c reg = sdhci_readl(host, O2_SD_VENDOR_SETTING); host 541 drivers/mmc/host/sdhci-pci-o2micro.c host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; host 543 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_pci_o2_enable_msi(chip, host); host 552 drivers/mmc/host/sdhci-pci-o2micro.c mmc_hostname(host->mmc)); host 553 drivers/mmc/host/sdhci-pci-o2micro.c host->flags &= ~SDHCI_SIGNALING_330; host 554 drivers/mmc/host/sdhci-pci-o2micro.c host->flags |= SDHCI_SIGNALING_180; host 555 drivers/mmc/host/sdhci-pci-o2micro.c host->mmc->caps2 |= MMC_CAP2_NO_SD; host 556 drivers/mmc/host/sdhci-pci-o2micro.c host->mmc->caps2 |= MMC_CAP2_NO_SDIO; host 561 drivers/mmc/host/sdhci-pci-o2micro.c slot->host->mmc_host_ops.get_cd = sdhci_o2_get_cd; host 564 drivers/mmc/host/sdhci-pci-o2micro.c host->mmc_host_ops.execute_tuning = sdhci_o2_execute_tuning; host 569 drivers/mmc/host/sdhci-pci-o2micro.c reg = sdhci_readl(host, O2_SD_VENDOR_SETTING2); host 571 drivers/mmc/host/sdhci-pci-o2micro.c sdhci_writel(host, reg, O2_SD_VENDOR_SETTING2); host 155 drivers/mmc/host/sdhci-pci.h struct sdhci_host *host; host 165 drivers/mmc/host/sdhci-pci.h void (*hw_reset)(struct sdhci_host *host); host 191 drivers/mmc/host/sdhci-pci.h int sdhci_pci_enable_dma(struct sdhci_host *host); host 51 drivers/mmc/host/sdhci-pic32.c static unsigned int pic32_sdhci_get_max_clock(struct sdhci_host *host) host 53 drivers/mmc/host/sdhci-pic32.c struct pic32_sdhci_priv *sdhci_pdata = sdhci_priv(host); host 58 drivers/mmc/host/sdhci-pic32.c static void pic32_sdhci_set_bus_width(struct sdhci_host *host, int width) host 62 drivers/mmc/host/sdhci-pic32.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 65 drivers/mmc/host/sdhci-pic32.c if (host->version >= SDHCI_SPEC_300) host 68 drivers/mmc/host/sdhci-pic32.c if (host->version >= SDHCI_SPEC_300) host 79 drivers/mmc/host/sdhci-pic32.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 82 drivers/mmc/host/sdhci-pic32.c static unsigned int pic32_sdhci_get_ro(struct sdhci_host *host) host 108 drivers/mmc/host/sdhci-pic32.c struct sdhci_host *host = platform_get_drvdata(pdev); host 109 drivers/mmc/host/sdhci-pic32.c u32 bus = readl(host->ioaddr + SDH_SHARED_BUS_CTRL); host 121 drivers/mmc/host/sdhci-pic32.c writel(bus, host->ioaddr + SDH_SHARED_BUS_CTRL); host 129 drivers/mmc/host/sdhci-pic32.c struct sdhci_host *host = platform_get_drvdata(pdev); host 132 drivers/mmc/host/sdhci-pic32.c host->caps = readl(host->ioaddr + SDHCI_CAPABILITIES); host 133 drivers/mmc/host/sdhci-pic32.c caps_slot_type = (host->caps & SDH_CAPS_SDH_SLOT_TYPE_MASK) >> 30; host 142 drivers/mmc/host/sdhci-pic32.c struct sdhci_host *host; host 148 drivers/mmc/host/sdhci-pic32.c host = sdhci_pltfm_init(pdev, &sdhci_pic32_pdata, host 150 drivers/mmc/host/sdhci-pic32.c if (IS_ERR(host)) { host 151 drivers/mmc/host/sdhci-pic32.c ret = PTR_ERR(host); host 155 drivers/mmc/host/sdhci-pic32.c pltfm_host = sdhci_priv(host); host 192 drivers/mmc/host/sdhci-pic32.c ret = mmc_of_parse(host->mmc); host 202 drivers/mmc/host/sdhci-pic32.c ret = sdhci_add_host(host); host 222 drivers/mmc/host/sdhci-pic32.c struct sdhci_host *host = platform_get_drvdata(pdev); host 223 drivers/mmc/host/sdhci-pic32.c struct pic32_sdhci_priv *sdhci_pdata = sdhci_priv(host); host 226 drivers/mmc/host/sdhci-pic32.c scratch = readl(host->ioaddr + SDHCI_INT_STATUS); host 227 drivers/mmc/host/sdhci-pic32.c sdhci_remove_host(host, scratch == (u32)~0); host 28 drivers/mmc/host/sdhci-pltfm.c unsigned int sdhci_pltfm_clk_get_max_clock(struct sdhci_host *host) host 30 drivers/mmc/host/sdhci-pltfm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 60 drivers/mmc/host/sdhci-pltfm.c struct sdhci_host *host = platform_get_drvdata(pdev); host 67 drivers/mmc/host/sdhci-pltfm.c host->quirks |= SDHCI_QUIRK_BROKEN_DMA; host 73 drivers/mmc/host/sdhci-pltfm.c host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL; host 82 drivers/mmc/host/sdhci-pltfm.c struct sdhci_host *host = platform_get_drvdata(pdev); host 83 drivers/mmc/host/sdhci-pltfm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 87 drivers/mmc/host/sdhci-pltfm.c host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; host 92 drivers/mmc/host/sdhci-pltfm.c host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA; host 95 drivers/mmc/host/sdhci-pltfm.c host->quirks |= SDHCI_QUIRK_INVERTED_WRITE_PROTECT; host 98 drivers/mmc/host/sdhci-pltfm.c host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION; host 101 drivers/mmc/host/sdhci-pltfm.c host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V; host 108 drivers/mmc/host/sdhci-pltfm.c host->mmc->pm_caps |= MMC_PM_KEEP_POWER; host 112 drivers/mmc/host/sdhci-pltfm.c host->mmc->pm_caps |= MMC_PM_WAKE_SDIO_IRQ; host 120 drivers/mmc/host/sdhci-pltfm.c struct sdhci_host *host; host 136 drivers/mmc/host/sdhci-pltfm.c host = sdhci_alloc_host(&pdev->dev, host 139 drivers/mmc/host/sdhci-pltfm.c if (IS_ERR(host)) { host 140 drivers/mmc/host/sdhci-pltfm.c ret = PTR_ERR(host); host 144 drivers/mmc/host/sdhci-pltfm.c host->ioaddr = ioaddr; host 145 drivers/mmc/host/sdhci-pltfm.c host->irq = irq; host 146 drivers/mmc/host/sdhci-pltfm.c host->hw_name = dev_name(&pdev->dev); host 148 drivers/mmc/host/sdhci-pltfm.c host->ops = pdata->ops; host 150 drivers/mmc/host/sdhci-pltfm.c host->ops = &sdhci_pltfm_ops; host 152 drivers/mmc/host/sdhci-pltfm.c host->quirks = pdata->quirks; host 153 drivers/mmc/host/sdhci-pltfm.c host->quirks2 = pdata->quirks2; host 156 drivers/mmc/host/sdhci-pltfm.c platform_set_drvdata(pdev, host); host 158 drivers/mmc/host/sdhci-pltfm.c return host; host 167 drivers/mmc/host/sdhci-pltfm.c struct sdhci_host *host = platform_get_drvdata(pdev); host 169 drivers/mmc/host/sdhci-pltfm.c sdhci_free_host(host); host 177 drivers/mmc/host/sdhci-pltfm.c struct sdhci_host *host; host 180 drivers/mmc/host/sdhci-pltfm.c host = sdhci_pltfm_init(pdev, pdata, priv_size); host 181 drivers/mmc/host/sdhci-pltfm.c if (IS_ERR(host)) host 182 drivers/mmc/host/sdhci-pltfm.c return PTR_ERR(host); host 186 drivers/mmc/host/sdhci-pltfm.c ret = sdhci_add_host(host); host 196 drivers/mmc/host/sdhci-pltfm.c struct sdhci_host *host = platform_get_drvdata(pdev); host 197 drivers/mmc/host/sdhci-pltfm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 198 drivers/mmc/host/sdhci-pltfm.c int dead = (readl(host->ioaddr + SDHCI_INT_STATUS) == 0xffffffff); host 200 drivers/mmc/host/sdhci-pltfm.c sdhci_remove_host(host, dead); host 211 drivers/mmc/host/sdhci-pltfm.c struct sdhci_host *host = dev_get_drvdata(dev); host 212 drivers/mmc/host/sdhci-pltfm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 215 drivers/mmc/host/sdhci-pltfm.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 216 drivers/mmc/host/sdhci-pltfm.c mmc_retune_needed(host->mmc); host 218 drivers/mmc/host/sdhci-pltfm.c ret = sdhci_suspend_host(host); host 230 drivers/mmc/host/sdhci-pltfm.c struct sdhci_host *host = dev_get_drvdata(dev); host 231 drivers/mmc/host/sdhci-pltfm.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 238 drivers/mmc/host/sdhci-pltfm.c ret = sdhci_resume_host(host); host 36 drivers/mmc/host/sdhci-pltfm.h static inline u32 sdhci_be32bs_readl(struct sdhci_host *host, int reg) host 38 drivers/mmc/host/sdhci-pltfm.h return in_be32(host->ioaddr + reg); host 41 drivers/mmc/host/sdhci-pltfm.h static inline u16 sdhci_be32bs_readw(struct sdhci_host *host, int reg) host 43 drivers/mmc/host/sdhci-pltfm.h return in_be16(host->ioaddr + (reg ^ 0x2)); host 46 drivers/mmc/host/sdhci-pltfm.h static inline u8 sdhci_be32bs_readb(struct sdhci_host *host, int reg) host 48 drivers/mmc/host/sdhci-pltfm.h return in_8(host->ioaddr + (reg ^ 0x3)); host 51 drivers/mmc/host/sdhci-pltfm.h static inline void sdhci_be32bs_writel(struct sdhci_host *host, host 54 drivers/mmc/host/sdhci-pltfm.h out_be32(host->ioaddr + reg, val); host 57 drivers/mmc/host/sdhci-pltfm.h static inline void sdhci_be32bs_writew(struct sdhci_host *host, host 60 drivers/mmc/host/sdhci-pltfm.h struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 73 drivers/mmc/host/sdhci-pltfm.h sdhci_be32bs_writel(host, host 78 drivers/mmc/host/sdhci-pltfm.h clrsetbits_be32(host->ioaddr + base, 0xffff << shift, val << shift); host 81 drivers/mmc/host/sdhci-pltfm.h static inline void sdhci_be32bs_writeb(struct sdhci_host *host, u8 val, int reg) host 86 drivers/mmc/host/sdhci-pltfm.h clrsetbits_be32(host->ioaddr + base , 0xff << shift, val << shift); host 107 drivers/mmc/host/sdhci-pltfm.h extern unsigned int sdhci_pltfm_clk_get_max_clock(struct sdhci_host *host); host 109 drivers/mmc/host/sdhci-pltfm.h static inline void *sdhci_pltfm_priv(struct sdhci_pltfm_host *host) host 111 drivers/mmc/host/sdhci-pltfm.h return host->private; host 44 drivers/mmc/host/sdhci-pxav2.c static void pxav2_reset(struct sdhci_host *host, u8 mask) host 46 drivers/mmc/host/sdhci-pxav2.c struct platform_device *pdev = to_platform_device(mmc_dev(host->mmc)); host 49 drivers/mmc/host/sdhci-pxav2.c sdhci_reset(host, mask); host 59 drivers/mmc/host/sdhci-pxav2.c tmp = readw(host->ioaddr + SD_CLOCK_BURST_SIZE_SETUP); host 67 drivers/mmc/host/sdhci-pxav2.c writew(tmp, host->ioaddr + SD_CLOCK_BURST_SIZE_SETUP); host 71 drivers/mmc/host/sdhci-pxav2.c tmp = readw(host->ioaddr + SD_FIFO_PARAM); host 73 drivers/mmc/host/sdhci-pxav2.c writew(tmp, host->ioaddr + SD_FIFO_PARAM); host 75 drivers/mmc/host/sdhci-pxav2.c tmp = readw(host->ioaddr + SD_FIFO_PARAM); host 78 drivers/mmc/host/sdhci-pxav2.c writew(tmp, host->ioaddr + SD_FIFO_PARAM); host 83 drivers/mmc/host/sdhci-pxav2.c static void pxav2_mmc_set_bus_width(struct sdhci_host *host, int width) host 88 drivers/mmc/host/sdhci-pxav2.c ctrl = readb(host->ioaddr + SDHCI_HOST_CONTROL); host 89 drivers/mmc/host/sdhci-pxav2.c tmp = readw(host->ioaddr + SD_CE_ATA_2); host 100 drivers/mmc/host/sdhci-pxav2.c writew(tmp, host->ioaddr + SD_CE_ATA_2); host 101 drivers/mmc/host/sdhci-pxav2.c writeb(ctrl, host->ioaddr + SDHCI_HOST_CONTROL); host 159 drivers/mmc/host/sdhci-pxav2.c struct sdhci_host *host = NULL; host 165 drivers/mmc/host/sdhci-pxav2.c host = sdhci_pltfm_init(pdev, NULL, 0); host 166 drivers/mmc/host/sdhci-pxav2.c if (IS_ERR(host)) host 167 drivers/mmc/host/sdhci-pxav2.c return PTR_ERR(host); host 169 drivers/mmc/host/sdhci-pxav2.c pltfm_host = sdhci_priv(host); host 184 drivers/mmc/host/sdhci-pxav2.c host->quirks = SDHCI_QUIRK_BROKEN_ADMA host 195 drivers/mmc/host/sdhci-pxav2.c host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION; host 196 drivers/mmc/host/sdhci-pxav2.c host->mmc->caps |= MMC_CAP_NONREMOVABLE; host 201 drivers/mmc/host/sdhci-pxav2.c host->mmc->caps |= MMC_CAP_8_BIT_DATA; host 204 drivers/mmc/host/sdhci-pxav2.c host->quirks |= pdata->quirks; host 206 drivers/mmc/host/sdhci-pxav2.c host->mmc->caps |= pdata->host_caps; host 208 drivers/mmc/host/sdhci-pxav2.c host->mmc->pm_caps |= pdata->pm_caps; host 211 drivers/mmc/host/sdhci-pxav2.c host->ops = &pxav2_sdhci_ops; host 213 drivers/mmc/host/sdhci-pxav2.c ret = sdhci_add_host(host); host 119 drivers/mmc/host/sdhci-pxav3.c struct sdhci_host *host) host 122 drivers/mmc/host/sdhci-pxav3.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 126 drivers/mmc/host/sdhci-pxav3.c host->quirks &= ~SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN; host 127 drivers/mmc/host/sdhci-pxav3.c host->quirks |= SDHCI_QUIRK_MISSING_CAPS; host 129 drivers/mmc/host/sdhci-pxav3.c host->caps = sdhci_readl(host, SDHCI_CAPABILITIES); host 130 drivers/mmc/host/sdhci-pxav3.c host->caps1 = sdhci_readl(host, SDHCI_CAPABILITIES_1); host 145 drivers/mmc/host/sdhci-pxav3.c host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_DDR50); host 156 drivers/mmc/host/sdhci-pxav3.c host->caps &= ~SDHCI_CAN_VDD_180; host 157 drivers/mmc/host/sdhci-pxav3.c host->mmc->caps &= ~MMC_CAP_1_8V_DDR; host 159 drivers/mmc/host/sdhci-pxav3.c host->caps &= ~SDHCI_CAN_VDD_330; host 161 drivers/mmc/host/sdhci-pxav3.c host->caps1 &= ~(SDHCI_SUPPORT_SDR104 | SDHCI_USE_SDR50_TUNING); host 166 drivers/mmc/host/sdhci-pxav3.c static void pxav3_reset(struct sdhci_host *host, u8 mask) host 168 drivers/mmc/host/sdhci-pxav3.c struct platform_device *pdev = to_platform_device(mmc_dev(host->mmc)); host 171 drivers/mmc/host/sdhci-pxav3.c sdhci_reset(host, mask); host 181 drivers/mmc/host/sdhci-pxav3.c tmp = readw(host->ioaddr + SD_CLOCK_BURST_SIZE_SETUP); host 185 drivers/mmc/host/sdhci-pxav3.c writew(tmp, host->ioaddr + SD_CLOCK_BURST_SIZE_SETUP); host 191 drivers/mmc/host/sdhci-pxav3.c static void pxav3_gen_init_74_clocks(struct sdhci_host *host, u8 power_mode) host 193 drivers/mmc/host/sdhci-pxav3.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 201 drivers/mmc/host/sdhci-pxav3.c dev_dbg(mmc_dev(host->mmc), host 209 drivers/mmc/host/sdhci-pxav3.c tmp = readw(host->ioaddr + SD_CE_ATA_2); host 211 drivers/mmc/host/sdhci-pxav3.c writew(tmp, host->ioaddr + SD_CE_ATA_2); host 214 drivers/mmc/host/sdhci-pxav3.c tmp = readw(host->ioaddr + SD_CFG_FIFO_PARAM); host 216 drivers/mmc/host/sdhci-pxav3.c writew(tmp, host->ioaddr + SD_CFG_FIFO_PARAM); host 223 drivers/mmc/host/sdhci-pxav3.c if ((readw(host->ioaddr + SD_CE_ATA_2) host 230 drivers/mmc/host/sdhci-pxav3.c dev_warn(mmc_dev(host->mmc), "74 clock interrupt not cleared\n"); host 233 drivers/mmc/host/sdhci-pxav3.c tmp = readw(host->ioaddr + SD_CE_ATA_2); host 235 drivers/mmc/host/sdhci-pxav3.c writew(tmp, host->ioaddr + SD_CE_ATA_2); host 240 drivers/mmc/host/sdhci-pxav3.c static void pxav3_set_uhs_signaling(struct sdhci_host *host, unsigned int uhs) host 242 drivers/mmc/host/sdhci-pxav3.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 250 drivers/mmc/host/sdhci-pxav3.c ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 294 drivers/mmc/host/sdhci-pxav3.c sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); host 295 drivers/mmc/host/sdhci-pxav3.c dev_dbg(mmc_dev(host->mmc), host 300 drivers/mmc/host/sdhci-pxav3.c static void pxav3_set_power(struct sdhci_host *host, unsigned char mode, host 303 drivers/mmc/host/sdhci-pxav3.c struct mmc_host *mmc = host->mmc; host 304 drivers/mmc/host/sdhci-pxav3.c u8 pwr = host->pwr; host 306 drivers/mmc/host/sdhci-pxav3.c sdhci_set_power_noreg(host, mode, vdd); host 308 drivers/mmc/host/sdhci-pxav3.c if (host->pwr == pwr) host 311 drivers/mmc/host/sdhci-pxav3.c if (host->pwr == 0) host 377 drivers/mmc/host/sdhci-pxav3.c struct sdhci_host *host = NULL; host 382 drivers/mmc/host/sdhci-pxav3.c host = sdhci_pltfm_init(pdev, &sdhci_pxav3_pdata, sizeof(*pxa)); host 383 drivers/mmc/host/sdhci-pxav3.c if (IS_ERR(host)) host 384 drivers/mmc/host/sdhci-pxav3.c return PTR_ERR(host); host 386 drivers/mmc/host/sdhci-pxav3.c pltfm_host = sdhci_priv(host); host 405 drivers/mmc/host/sdhci-pxav3.c host->mmc->caps |= MMC_CAP_1_8V_DDR; host 408 drivers/mmc/host/sdhci-pxav3.c ret = armada_38x_quirks(pdev, host); host 418 drivers/mmc/host/sdhci-pxav3.c ret = mmc_of_parse(host->mmc); host 427 drivers/mmc/host/sdhci-pxav3.c host->mmc->caps |= MMC_CAP_NONREMOVABLE; host 431 drivers/mmc/host/sdhci-pxav3.c host->mmc->caps |= MMC_CAP_8_BIT_DATA; host 434 drivers/mmc/host/sdhci-pxav3.c host->quirks |= pdata->quirks; host 436 drivers/mmc/host/sdhci-pxav3.c host->quirks2 |= pdata->quirks2; host 438 drivers/mmc/host/sdhci-pxav3.c host->mmc->caps |= pdata->host_caps; host 440 drivers/mmc/host/sdhci-pxav3.c host->mmc->caps2 |= pdata->host_caps2; host 442 drivers/mmc/host/sdhci-pxav3.c host->mmc->pm_caps |= pdata->pm_caps; host 452 drivers/mmc/host/sdhci-pxav3.c ret = sdhci_add_host(host); host 456 drivers/mmc/host/sdhci-pxav3.c if (host->mmc->pm_caps & MMC_PM_WAKE_SDIO_IRQ) host 477 drivers/mmc/host/sdhci-pxav3.c struct sdhci_host *host = platform_get_drvdata(pdev); host 478 drivers/mmc/host/sdhci-pxav3.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 485 drivers/mmc/host/sdhci-pxav3.c sdhci_remove_host(host, 1); host 499 drivers/mmc/host/sdhci-pxav3.c struct sdhci_host *host = dev_get_drvdata(dev); host 502 drivers/mmc/host/sdhci-pxav3.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 503 drivers/mmc/host/sdhci-pxav3.c mmc_retune_needed(host->mmc); host 504 drivers/mmc/host/sdhci-pxav3.c ret = sdhci_suspend_host(host); host 514 drivers/mmc/host/sdhci-pxav3.c struct sdhci_host *host = dev_get_drvdata(dev); host 517 drivers/mmc/host/sdhci-pxav3.c ret = sdhci_resume_host(host); host 528 drivers/mmc/host/sdhci-pxav3.c struct sdhci_host *host = dev_get_drvdata(dev); host 529 drivers/mmc/host/sdhci-pxav3.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 533 drivers/mmc/host/sdhci-pxav3.c ret = sdhci_runtime_suspend_host(host); host 537 drivers/mmc/host/sdhci-pxav3.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 538 drivers/mmc/host/sdhci-pxav3.c mmc_retune_needed(host->mmc); host 549 drivers/mmc/host/sdhci-pxav3.c struct sdhci_host *host = dev_get_drvdata(dev); host 550 drivers/mmc/host/sdhci-pxav3.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 557 drivers/mmc/host/sdhci-pxav3.c return sdhci_runtime_resume_host(host, 0); host 114 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host; host 142 drivers/mmc/host/sdhci-s3c.c static inline struct sdhci_s3c *to_s3c(struct sdhci_host *host) host 144 drivers/mmc/host/sdhci-s3c.c return sdhci_priv(host); host 153 drivers/mmc/host/sdhci-s3c.c static unsigned int sdhci_s3c_get_max_clk(struct sdhci_host *host) host 155 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *ourhost = to_s3c(host); host 222 drivers/mmc/host/sdhci-s3c.c static void sdhci_s3c_set_clock(struct sdhci_host *host, unsigned int clock) host 224 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *ourhost = to_s3c(host); host 231 drivers/mmc/host/sdhci-s3c.c host->mmc->actual_clock = 0; host 235 drivers/mmc/host/sdhci-s3c.c sdhci_set_clock(host, clock); host 261 drivers/mmc/host/sdhci-s3c.c host->max_clk = ourhost->clk_rates[best_src]; host 265 drivers/mmc/host/sdhci-s3c.c writew(0, host->ioaddr + SDHCI_CLOCK_CONTROL); host 267 drivers/mmc/host/sdhci-s3c.c ctrl = readl(host->ioaddr + S3C_SDHCI_CONTROL2); host 270 drivers/mmc/host/sdhci-s3c.c writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL2); host 274 drivers/mmc/host/sdhci-s3c.c host->ioaddr + S3C64XX_SDHCI_CONTROL4); host 276 drivers/mmc/host/sdhci-s3c.c ctrl = readl(host->ioaddr + S3C_SDHCI_CONTROL2); host 282 drivers/mmc/host/sdhci-s3c.c writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL2); host 288 drivers/mmc/host/sdhci-s3c.c writel(ctrl, host->ioaddr + S3C_SDHCI_CONTROL3); host 290 drivers/mmc/host/sdhci-s3c.c sdhci_set_clock(host, clock); host 302 drivers/mmc/host/sdhci-s3c.c static unsigned int sdhci_s3c_get_min_clock(struct sdhci_host *host) host 304 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *ourhost = to_s3c(host); host 320 drivers/mmc/host/sdhci-s3c.c static unsigned int sdhci_cmu_get_max_clock(struct sdhci_host *host) host 322 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *ourhost = to_s3c(host); host 342 drivers/mmc/host/sdhci-s3c.c static unsigned int sdhci_cmu_get_min_clock(struct sdhci_host *host) host 344 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *ourhost = to_s3c(host); host 364 drivers/mmc/host/sdhci-s3c.c static void sdhci_cmu_set_clock(struct sdhci_host *host, unsigned int clock) host 366 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *ourhost = to_s3c(host); host 372 drivers/mmc/host/sdhci-s3c.c host->mmc->actual_clock = 0; host 376 drivers/mmc/host/sdhci-s3c.c sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); host 380 drivers/mmc/host/sdhci-s3c.c sdhci_s3c_set_clock(host, clock); host 383 drivers/mmc/host/sdhci-s3c.c clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 385 drivers/mmc/host/sdhci-s3c.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 390 drivers/mmc/host/sdhci-s3c.c mmc_hostname(host->mmc), clock); host 395 drivers/mmc/host/sdhci-s3c.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 399 drivers/mmc/host/sdhci-s3c.c while (!((clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL)) host 403 drivers/mmc/host/sdhci-s3c.c mmc_hostname(host->mmc)); host 411 drivers/mmc/host/sdhci-s3c.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 425 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host, struct s3c_sdhci_platdata *pdata) host 455 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host, struct s3c_sdhci_platdata *pdata) host 482 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host; host 496 drivers/mmc/host/sdhci-s3c.c host = sdhci_alloc_host(dev, sizeof(struct sdhci_s3c)); host 497 drivers/mmc/host/sdhci-s3c.c if (IS_ERR(host)) { host 499 drivers/mmc/host/sdhci-s3c.c return PTR_ERR(host); host 501 drivers/mmc/host/sdhci-s3c.c sc = sdhci_priv(host); host 510 drivers/mmc/host/sdhci-s3c.c ret = sdhci_s3c_parse_dt(&pdev->dev, host, pdata); host 520 drivers/mmc/host/sdhci-s3c.c sc->host = host; host 525 drivers/mmc/host/sdhci-s3c.c platform_set_drvdata(pdev, host); host 559 drivers/mmc/host/sdhci-s3c.c host->ioaddr = devm_ioremap_resource(&pdev->dev, res); host 560 drivers/mmc/host/sdhci-s3c.c if (IS_ERR(host->ioaddr)) { host 561 drivers/mmc/host/sdhci-s3c.c ret = PTR_ERR(host->ioaddr); host 569 drivers/mmc/host/sdhci-s3c.c host->hw_name = "samsung-hsmmc"; host 570 drivers/mmc/host/sdhci-s3c.c host->ops = &sdhci_s3c_ops; host 571 drivers/mmc/host/sdhci-s3c.c host->quirks = 0; host 572 drivers/mmc/host/sdhci-s3c.c host->quirks2 = 0; host 573 drivers/mmc/host/sdhci-s3c.c host->irq = irq; host 576 drivers/mmc/host/sdhci-s3c.c host->quirks |= SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC; host 577 drivers/mmc/host/sdhci-s3c.c host->quirks |= SDHCI_QUIRK_NO_HISPD_BIT; host 579 drivers/mmc/host/sdhci-s3c.c host->quirks |= drv_data->sdhci_quirks; host 587 drivers/mmc/host/sdhci-s3c.c host->quirks |= SDHCI_QUIRK_BROKEN_DMA; host 594 drivers/mmc/host/sdhci-s3c.c host->quirks |= SDHCI_QUIRK_NO_BUSY_IRQ; host 597 drivers/mmc/host/sdhci-s3c.c host->quirks |= SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12; host 600 drivers/mmc/host/sdhci-s3c.c host->quirks |= SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC; host 604 drivers/mmc/host/sdhci-s3c.c host->quirks |= SDHCI_QUIRK_BROKEN_CARD_DETECTION; host 607 drivers/mmc/host/sdhci-s3c.c host->mmc->caps = MMC_CAP_NONREMOVABLE; host 611 drivers/mmc/host/sdhci-s3c.c host->mmc->caps |= MMC_CAP_8_BIT_DATA; host 614 drivers/mmc/host/sdhci-s3c.c host->mmc->caps |= MMC_CAP_4_BIT_DATA; host 619 drivers/mmc/host/sdhci-s3c.c host->mmc->pm_caps |= pdata->pm_caps; host 621 drivers/mmc/host/sdhci-s3c.c host->quirks |= (SDHCI_QUIRK_32BIT_DMA_ADDR | host 625 drivers/mmc/host/sdhci-s3c.c host->quirks |= SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK; host 639 drivers/mmc/host/sdhci-s3c.c host->mmc->caps |= pdata->host_caps; host 642 drivers/mmc/host/sdhci-s3c.c host->mmc->caps2 |= pdata->host_caps2; host 649 drivers/mmc/host/sdhci-s3c.c ret = mmc_of_parse(host->mmc); host 653 drivers/mmc/host/sdhci-s3c.c ret = sdhci_add_host(host); host 670 drivers/mmc/host/sdhci-s3c.c sdhci_free_host(host); host 677 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host = platform_get_drvdata(pdev); host 678 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *sc = sdhci_priv(host); host 687 drivers/mmc/host/sdhci-s3c.c sdhci_remove_host(host, 1); host 694 drivers/mmc/host/sdhci-s3c.c sdhci_free_host(host); host 702 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host = dev_get_drvdata(dev); host 704 drivers/mmc/host/sdhci-s3c.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 705 drivers/mmc/host/sdhci-s3c.c mmc_retune_needed(host->mmc); host 707 drivers/mmc/host/sdhci-s3c.c return sdhci_suspend_host(host); host 712 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host = dev_get_drvdata(dev); host 714 drivers/mmc/host/sdhci-s3c.c return sdhci_resume_host(host); host 721 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host = dev_get_drvdata(dev); host 722 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *ourhost = to_s3c(host); host 726 drivers/mmc/host/sdhci-s3c.c ret = sdhci_runtime_suspend_host(host); host 728 drivers/mmc/host/sdhci-s3c.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 729 drivers/mmc/host/sdhci-s3c.c mmc_retune_needed(host->mmc); host 739 drivers/mmc/host/sdhci-s3c.c struct sdhci_host *host = dev_get_drvdata(dev); host 740 drivers/mmc/host/sdhci-s3c.c struct sdhci_s3c *ourhost = to_s3c(host); host 747 drivers/mmc/host/sdhci-s3c.c ret = sdhci_runtime_resume_host(host, 0); host 20 drivers/mmc/host/sdhci-sirf.c static void sdhci_sirf_set_bus_width(struct sdhci_host *host, int width) host 24 drivers/mmc/host/sdhci-sirf.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 37 drivers/mmc/host/sdhci-sirf.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 40 drivers/mmc/host/sdhci-sirf.c static u32 sdhci_sirf_readl_le(struct sdhci_host *host, int reg) host 42 drivers/mmc/host/sdhci-sirf.c u32 val = readl(host->ioaddr + reg); host 45 drivers/mmc/host/sdhci-sirf.c (host->mmc->caps & MMC_CAP_UHS_SDR50))) { host 60 drivers/mmc/host/sdhci-sirf.c static u16 sdhci_sirf_readw_le(struct sdhci_host *host, int reg) host 64 drivers/mmc/host/sdhci-sirf.c ret = readw(host->ioaddr + reg); host 67 drivers/mmc/host/sdhci-sirf.c ret = readw(host->ioaddr + SDHCI_HOST_VERSION); host 74 drivers/mmc/host/sdhci-sirf.c static int sdhci_sirf_execute_tuning(struct sdhci_host *host, u32 opcode) host 82 drivers/mmc/host/sdhci-sirf.c struct mmc_host *mmc = host->mmc; host 84 drivers/mmc/host/sdhci-sirf.c clock_setting = sdhci_readw(host, SDHCI_CLK_DELAY_SETTING); host 91 drivers/mmc/host/sdhci-sirf.c sdhci_writel(host, host 125 drivers/mmc/host/sdhci-sirf.c sdhci_writel(host, host 165 drivers/mmc/host/sdhci-sirf.c struct sdhci_host *host; host 176 drivers/mmc/host/sdhci-sirf.c host = sdhci_pltfm_init(pdev, &sdhci_sirf_pdata, 0); host 177 drivers/mmc/host/sdhci-sirf.c if (IS_ERR(host)) host 178 drivers/mmc/host/sdhci-sirf.c return PTR_ERR(host); host 180 drivers/mmc/host/sdhci-sirf.c pltfm_host = sdhci_priv(host); host 189 drivers/mmc/host/sdhci-sirf.c ret = sdhci_add_host(host); host 197 drivers/mmc/host/sdhci-sirf.c ret = mmc_gpiod_request_cd(host->mmc, "cd", 0, false, 0, NULL); host 201 drivers/mmc/host/sdhci-sirf.c mmc_gpiod_request_cd_irq(host->mmc); host 206 drivers/mmc/host/sdhci-sirf.c sdhci_remove_host(host, 0); host 45 drivers/mmc/host/sdhci-spear.c struct sdhci_host *host; host 52 drivers/mmc/host/sdhci-spear.c host = sdhci_alloc_host(dev, sizeof(*sdhci)); host 53 drivers/mmc/host/sdhci-spear.c if (IS_ERR(host)) { host 54 drivers/mmc/host/sdhci-spear.c ret = PTR_ERR(host); host 60 drivers/mmc/host/sdhci-spear.c host->ioaddr = devm_ioremap_resource(&pdev->dev, iomem); host 61 drivers/mmc/host/sdhci-spear.c if (IS_ERR(host->ioaddr)) { host 62 drivers/mmc/host/sdhci-spear.c ret = PTR_ERR(host->ioaddr); host 67 drivers/mmc/host/sdhci-spear.c host->hw_name = "sdhci"; host 68 drivers/mmc/host/sdhci-spear.c host->ops = &sdhci_pltfm_ops; host 69 drivers/mmc/host/sdhci-spear.c host->irq = platform_get_irq(pdev, 0); host 70 drivers/mmc/host/sdhci-spear.c if (host->irq <= 0) { host 74 drivers/mmc/host/sdhci-spear.c host->quirks = SDHCI_QUIRK_BROKEN_ADMA; host 76 drivers/mmc/host/sdhci-spear.c sdhci = sdhci_priv(host); host 101 drivers/mmc/host/sdhci-spear.c ret = mmc_gpiod_request_cd(host->mmc, "cd", 0, false, 0, NULL); host 105 drivers/mmc/host/sdhci-spear.c ret = sdhci_add_host(host); host 109 drivers/mmc/host/sdhci-spear.c platform_set_drvdata(pdev, host); host 116 drivers/mmc/host/sdhci-spear.c sdhci_free_host(host); host 124 drivers/mmc/host/sdhci-spear.c struct sdhci_host *host = platform_get_drvdata(pdev); host 125 drivers/mmc/host/sdhci-spear.c struct spear_sdhci *sdhci = sdhci_priv(host); host 129 drivers/mmc/host/sdhci-spear.c scratch = readl(host->ioaddr + SDHCI_INT_STATUS); host 133 drivers/mmc/host/sdhci-spear.c sdhci_remove_host(host, dead); host 135 drivers/mmc/host/sdhci-spear.c sdhci_free_host(host); host 143 drivers/mmc/host/sdhci-spear.c struct sdhci_host *host = dev_get_drvdata(dev); host 144 drivers/mmc/host/sdhci-spear.c struct spear_sdhci *sdhci = sdhci_priv(host); host 147 drivers/mmc/host/sdhci-spear.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 148 drivers/mmc/host/sdhci-spear.c mmc_retune_needed(host->mmc); host 150 drivers/mmc/host/sdhci-spear.c ret = sdhci_suspend_host(host); host 159 drivers/mmc/host/sdhci-spear.c struct sdhci_host *host = dev_get_drvdata(dev); host 160 drivers/mmc/host/sdhci-spear.c struct spear_sdhci *sdhci = sdhci_priv(host); host 169 drivers/mmc/host/sdhci-spear.c return sdhci_resume_host(host); host 101 drivers/mmc/host/sdhci-sprd.c #define TO_SPRD_HOST(host) sdhci_pltfm_priv(sdhci_priv(host)) host 103 drivers/mmc/host/sdhci-sprd.c static void sdhci_sprd_init_config(struct sdhci_host *host) host 108 drivers/mmc/host/sdhci-sprd.c val = sdhci_readl(host, SDHCI_SPRD_REG_DEBOUNCE); host 110 drivers/mmc/host/sdhci-sprd.c sdhci_writel(host, val, SDHCI_SPRD_REG_DEBOUNCE); host 113 drivers/mmc/host/sdhci-sprd.c static inline u32 sdhci_sprd_readl(struct sdhci_host *host, int reg) host 118 drivers/mmc/host/sdhci-sprd.c return readl_relaxed(host->ioaddr + reg); host 121 drivers/mmc/host/sdhci-sprd.c static inline void sdhci_sprd_writel(struct sdhci_host *host, u32 val, int reg) host 130 drivers/mmc/host/sdhci-sprd.c writel_relaxed(val, host->ioaddr + reg); host 133 drivers/mmc/host/sdhci-sprd.c static inline void sdhci_sprd_writew(struct sdhci_host *host, u16 val, int reg) host 139 drivers/mmc/host/sdhci-sprd.c writew_relaxed(val, host->ioaddr + reg); host 142 drivers/mmc/host/sdhci-sprd.c static inline void sdhci_sprd_writeb(struct sdhci_host *host, u8 val, int reg) host 153 drivers/mmc/host/sdhci-sprd.c if (readb_relaxed(host->ioaddr + reg) & SDHCI_HW_RESET_CARD) host 157 drivers/mmc/host/sdhci-sprd.c writeb_relaxed(val, host->ioaddr + reg); host 160 drivers/mmc/host/sdhci-sprd.c static inline void sdhci_sprd_sd_clk_off(struct sdhci_host *host) host 162 drivers/mmc/host/sdhci-sprd.c u16 ctrl = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 165 drivers/mmc/host/sdhci-sprd.c sdhci_writew(host, ctrl, SDHCI_CLOCK_CONTROL); host 168 drivers/mmc/host/sdhci-sprd.c static inline void sdhci_sprd_sd_clk_on(struct sdhci_host *host) host 172 drivers/mmc/host/sdhci-sprd.c ctrl = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 174 drivers/mmc/host/sdhci-sprd.c sdhci_writew(host, ctrl, SDHCI_CLOCK_CONTROL); host 178 drivers/mmc/host/sdhci-sprd.c sdhci_sprd_set_dll_invert(struct sdhci_host *host, u32 mask, bool en) host 182 drivers/mmc/host/sdhci-sprd.c dll_dly_offset = sdhci_readl(host, SDHCI_SPRD_REG_32_DLL_DLY_OFFSET); host 187 drivers/mmc/host/sdhci-sprd.c sdhci_writel(host, dll_dly_offset, SDHCI_SPRD_REG_32_DLL_DLY_OFFSET); host 214 drivers/mmc/host/sdhci-sprd.c static inline void _sdhci_sprd_set_clock(struct sdhci_host *host, host 217 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 220 drivers/mmc/host/sdhci-sprd.c sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); host 224 drivers/mmc/host/sdhci-sprd.c sdhci_enable_clk(host, div); host 227 drivers/mmc/host/sdhci-sprd.c val = sdhci_readl(host, SDHCI_SPRD_REG_32_BUSY_POSI); host 232 drivers/mmc/host/sdhci-sprd.c sdhci_writel(host, val, SDHCI_SPRD_REG_32_BUSY_POSI); host 236 drivers/mmc/host/sdhci-sprd.c static void sdhci_sprd_enable_phy_dll(struct sdhci_host *host) host 240 drivers/mmc/host/sdhci-sprd.c tmp = sdhci_readl(host, SDHCI_SPRD_REG_32_DLL_CFG); host 242 drivers/mmc/host/sdhci-sprd.c sdhci_writel(host, tmp, SDHCI_SPRD_REG_32_DLL_CFG); host 246 drivers/mmc/host/sdhci-sprd.c tmp = sdhci_readl(host, SDHCI_SPRD_REG_32_DLL_CFG); host 249 drivers/mmc/host/sdhci-sprd.c sdhci_writel(host, tmp, SDHCI_SPRD_REG_32_DLL_CFG); host 253 drivers/mmc/host/sdhci-sprd.c tmp = sdhci_readl(host, SDHCI_SPRD_REG_32_DLL_CFG); host 255 drivers/mmc/host/sdhci-sprd.c sdhci_writel(host, tmp, SDHCI_SPRD_REG_32_DLL_CFG); host 260 drivers/mmc/host/sdhci-sprd.c static void sdhci_sprd_set_clock(struct sdhci_host *host, unsigned int clock) host 265 drivers/mmc/host/sdhci-sprd.c sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); host 266 drivers/mmc/host/sdhci-sprd.c } else if (clock != host->clock) { host 267 drivers/mmc/host/sdhci-sprd.c sdhci_sprd_sd_clk_off(host); host 268 drivers/mmc/host/sdhci-sprd.c _sdhci_sprd_set_clock(host, clock); host 272 drivers/mmc/host/sdhci-sprd.c sdhci_sprd_set_dll_invert(host, SDHCI_SPRD_BIT_CMD_DLY_INV | host 276 drivers/mmc/host/sdhci-sprd.c _sdhci_sprd_set_clock(host, clock); host 286 drivers/mmc/host/sdhci-sprd.c sdhci_sprd_enable_phy_dll(host); host 289 drivers/mmc/host/sdhci-sprd.c static unsigned int sdhci_sprd_get_max_clock(struct sdhci_host *host) host 291 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 296 drivers/mmc/host/sdhci-sprd.c static unsigned int sdhci_sprd_get_min_clock(struct sdhci_host *host) host 301 drivers/mmc/host/sdhci-sprd.c static void sdhci_sprd_set_uhs_signaling(struct sdhci_host *host, host 304 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 305 drivers/mmc/host/sdhci-sprd.c struct mmc_host *mmc = host->mmc; host 309 drivers/mmc/host/sdhci-sprd.c if (timing == host->timing) host 312 drivers/mmc/host/sdhci-sprd.c ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 344 drivers/mmc/host/sdhci-sprd.c sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); host 347 drivers/mmc/host/sdhci-sprd.c sdhci_writel(host, p[timing], SDHCI_SPRD_REG_32_DLL_DLY); host 350 drivers/mmc/host/sdhci-sprd.c static void sdhci_sprd_hw_reset(struct sdhci_host *host) host 360 drivers/mmc/host/sdhci-sprd.c val = readb_relaxed(host->ioaddr + SDHCI_SOFTWARE_RESET); host 362 drivers/mmc/host/sdhci-sprd.c writeb_relaxed(val, host->ioaddr + SDHCI_SOFTWARE_RESET); host 367 drivers/mmc/host/sdhci-sprd.c writeb_relaxed(val, host->ioaddr + SDHCI_SOFTWARE_RESET); host 371 drivers/mmc/host/sdhci-sprd.c static unsigned int sdhci_sprd_get_max_timeout_count(struct sdhci_host *host) host 377 drivers/mmc/host/sdhci-sprd.c static unsigned int sdhci_sprd_get_ro(struct sdhci_host *host) host 399 drivers/mmc/host/sdhci-sprd.c struct sdhci_host *host = mmc_priv(mmc); host 400 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 402 drivers/mmc/host/sdhci-sprd.c host->flags |= sprd_host->flags & SDHCI_AUTO_CMD23; host 409 drivers/mmc/host/sdhci-sprd.c if (host->version >= SDHCI_SPEC_410 && host 411 drivers/mmc/host/sdhci-sprd.c (host->flags & SDHCI_AUTO_CMD23)) host 412 drivers/mmc/host/sdhci-sprd.c host->flags &= ~SDHCI_AUTO_CMD23; host 419 drivers/mmc/host/sdhci-sprd.c struct sdhci_host *host = mmc_priv(mmc); host 420 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 461 drivers/mmc/host/sdhci-sprd.c sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); host 469 drivers/mmc/host/sdhci-sprd.c struct sdhci_host *host = mmc_priv(mmc); host 470 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 477 drivers/mmc/host/sdhci-sprd.c sdhci_sprd_sd_clk_off(host); host 480 drivers/mmc/host/sdhci-sprd.c ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 483 drivers/mmc/host/sdhci-sprd.c sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); host 485 drivers/mmc/host/sdhci-sprd.c sdhci_sprd_sd_clk_on(host); host 488 drivers/mmc/host/sdhci-sprd.c sdhci_writel(host, p[MMC_TIMING_MMC_HS400 + 1], host 522 drivers/mmc/host/sdhci-sprd.c struct sdhci_host *host; host 527 drivers/mmc/host/sdhci-sprd.c host = sdhci_pltfm_init(pdev, &sdhci_sprd_pdata, sizeof(*sprd_host)); host 528 drivers/mmc/host/sdhci-sprd.c if (IS_ERR(host)) host 529 drivers/mmc/host/sdhci-sprd.c return PTR_ERR(host); host 531 drivers/mmc/host/sdhci-sprd.c host->dma_mask = DMA_BIT_MASK(64); host 532 drivers/mmc/host/sdhci-sprd.c pdev->dev.dma_mask = &host->dma_mask; host 533 drivers/mmc/host/sdhci-sprd.c host->mmc_host_ops.request = sdhci_sprd_request; host 534 drivers/mmc/host/sdhci-sprd.c host->mmc_host_ops.hs400_enhanced_strobe = host 542 drivers/mmc/host/sdhci-sprd.c host->mmc_host_ops.start_signal_voltage_switch = host 545 drivers/mmc/host/sdhci-sprd.c host->mmc->caps = MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED | host 547 drivers/mmc/host/sdhci-sprd.c ret = mmc_of_parse(host->mmc); host 551 drivers/mmc/host/sdhci-sprd.c sprd_host = TO_SPRD_HOST(host); host 604 drivers/mmc/host/sdhci-sprd.c sdhci_sprd_init_config(host); host 605 drivers/mmc/host/sdhci-sprd.c host->version = sdhci_readw(host, SDHCI_HOST_VERSION); host 606 drivers/mmc/host/sdhci-sprd.c sprd_host->version = ((host->version & SDHCI_VENDOR_VER_MASK) >> host 616 drivers/mmc/host/sdhci-sprd.c sdhci_enable_v4_mode(host); host 623 drivers/mmc/host/sdhci-sprd.c host->caps = sdhci_readl(host, SDHCI_CAPABILITIES); host 624 drivers/mmc/host/sdhci-sprd.c host->caps1 = sdhci_readl(host, SDHCI_CAPABILITIES_1); host 625 drivers/mmc/host/sdhci-sprd.c host->caps1 &= ~(SDHCI_SUPPORT_SDR50 | SDHCI_SUPPORT_SDR104 | host 628 drivers/mmc/host/sdhci-sprd.c ret = sdhci_setup_host(host); host 632 drivers/mmc/host/sdhci-sprd.c sprd_host->flags = host->flags; host 634 drivers/mmc/host/sdhci-sprd.c ret = __sdhci_add_host(host); host 644 drivers/mmc/host/sdhci-sprd.c sdhci_cleanup_host(host); host 666 drivers/mmc/host/sdhci-sprd.c struct sdhci_host *host = platform_get_drvdata(pdev); host 667 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 668 drivers/mmc/host/sdhci-sprd.c struct mmc_host *mmc = host->mmc; host 689 drivers/mmc/host/sdhci-sprd.c struct sdhci_host *host = dev_get_drvdata(dev); host 690 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 692 drivers/mmc/host/sdhci-sprd.c sdhci_runtime_suspend_host(host); host 703 drivers/mmc/host/sdhci-sprd.c struct sdhci_host *host = dev_get_drvdata(dev); host 704 drivers/mmc/host/sdhci-sprd.c struct sdhci_sprd_host *sprd_host = TO_SPRD_HOST(host); host 719 drivers/mmc/host/sdhci-sprd.c sdhci_runtime_resume_host(host, 1); host 142 drivers/mmc/host/sdhci-st.c static void st_mmcss_cconfig(struct device_node *np, struct sdhci_host *host) host 144 drivers/mmc/host/sdhci-st.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 145 drivers/mmc/host/sdhci-st.c struct mmc_host *mhost = host->mmc; host 157 drivers/mmc/host/sdhci-st.c host->ioaddr + ST_MMC_CCONFIG_REG_1); host 176 drivers/mmc/host/sdhci-st.c writel_relaxed(cconf2, host->ioaddr + ST_MMC_CCONFIG_REG_2); host 183 drivers/mmc/host/sdhci-st.c host->ioaddr + ST_MMC_GP_OUTPUT); host 209 drivers/mmc/host/sdhci-st.c writel_relaxed(cconf3, host->ioaddr + ST_MMC_CCONFIG_REG_3); host 210 drivers/mmc/host/sdhci-st.c writel_relaxed(cconf4, host->ioaddr + ST_MMC_CCONFIG_REG_4); host 211 drivers/mmc/host/sdhci-st.c writel_relaxed(cconf5, host->ioaddr + ST_MMC_CCONFIG_REG_5); host 242 drivers/mmc/host/sdhci-st.c static int sdhci_st_set_dll_for_clock(struct sdhci_host *host) host 245 drivers/mmc/host/sdhci-st.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 248 drivers/mmc/host/sdhci-st.c if (host->clock > CLK_TO_CHECK_DLL_LOCK) { host 250 drivers/mmc/host/sdhci-st.c ret = st_mmcss_lock_dll(host->ioaddr); host 256 drivers/mmc/host/sdhci-st.c static void sdhci_st_set_uhs_signaling(struct sdhci_host *host, host 259 drivers/mmc/host/sdhci-st.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 261 drivers/mmc/host/sdhci-st.c u16 ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 283 drivers/mmc/host/sdhci-st.c ret = sdhci_st_set_dll_for_clock(host); host 289 drivers/mmc/host/sdhci-st.c ret = sdhci_st_set_dll_for_clock(host); host 299 drivers/mmc/host/sdhci-st.c dev_warn(mmc_dev(host->mmc), "Error setting dll for clock " host 302 drivers/mmc/host/sdhci-st.c dev_dbg(mmc_dev(host->mmc), "uhs %d, ctrl_2 %04X\n", uhs, ctrl_2); host 304 drivers/mmc/host/sdhci-st.c sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); host 307 drivers/mmc/host/sdhci-st.c static u32 sdhci_st_readl(struct sdhci_host *host, int reg) host 313 drivers/mmc/host/sdhci-st.c ret = readl_relaxed(host->ioaddr + reg); host 318 drivers/mmc/host/sdhci-st.c ret = readl_relaxed(host->ioaddr + reg); host 345 drivers/mmc/host/sdhci-st.c struct sdhci_host *host; host 371 drivers/mmc/host/sdhci-st.c host = sdhci_pltfm_init(pdev, &sdhci_st_pdata, sizeof(*pdata)); host 372 drivers/mmc/host/sdhci-st.c if (IS_ERR(host)) { host 374 drivers/mmc/host/sdhci-st.c ret = PTR_ERR(host); host 378 drivers/mmc/host/sdhci-st.c pltfm_host = sdhci_priv(host); host 382 drivers/mmc/host/sdhci-st.c ret = mmc_of_parse(host->mmc); host 413 drivers/mmc/host/sdhci-st.c st_mmcss_cconfig(np, host); host 415 drivers/mmc/host/sdhci-st.c ret = sdhci_add_host(host); host 419 drivers/mmc/host/sdhci-st.c host_version = readw_relaxed((host->ioaddr + SDHCI_HOST_VERSION)); host 443 drivers/mmc/host/sdhci-st.c struct sdhci_host *host = platform_get_drvdata(pdev); host 444 drivers/mmc/host/sdhci-st.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 462 drivers/mmc/host/sdhci-st.c struct sdhci_host *host = dev_get_drvdata(dev); host 463 drivers/mmc/host/sdhci-st.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 467 drivers/mmc/host/sdhci-st.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 468 drivers/mmc/host/sdhci-st.c mmc_retune_needed(host->mmc); host 470 drivers/mmc/host/sdhci-st.c ret = sdhci_suspend_host(host); host 485 drivers/mmc/host/sdhci-st.c struct sdhci_host *host = dev_get_drvdata(dev); host 486 drivers/mmc/host/sdhci-st.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 504 drivers/mmc/host/sdhci-st.c st_mmcss_cconfig(np, host); host 506 drivers/mmc/host/sdhci-st.c return sdhci_resume_host(host); host 155 drivers/mmc/host/sdhci-tegra.c static u16 tegra_sdhci_readw(struct sdhci_host *host, int reg) host 157 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 167 drivers/mmc/host/sdhci-tegra.c return readw(host->ioaddr + reg); host 170 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_writew(struct sdhci_host *host, u16 val, int reg) host 172 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 184 drivers/mmc/host/sdhci-tegra.c host->ioaddr + SDHCI_TRANSFER_MODE); host 188 drivers/mmc/host/sdhci-tegra.c writew(val, host->ioaddr + reg); host 191 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_writel(struct sdhci_host *host, u32 val, int reg) host 193 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 204 drivers/mmc/host/sdhci-tegra.c writel(val, host->ioaddr + reg); host 209 drivers/mmc/host/sdhci-tegra.c u8 gap_ctrl = readb(host->ioaddr + SDHCI_BLOCK_GAP_CONTROL); host 214 drivers/mmc/host/sdhci-tegra.c writeb(gap_ctrl, host->ioaddr + SDHCI_BLOCK_GAP_CONTROL); host 218 drivers/mmc/host/sdhci-tegra.c static bool tegra_sdhci_configure_card_clk(struct sdhci_host *host, bool enable) host 223 drivers/mmc/host/sdhci-tegra.c reg = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 234 drivers/mmc/host/sdhci-tegra.c sdhci_writew(host, reg, SDHCI_CLOCK_CONTROL); host 239 drivers/mmc/host/sdhci-tegra.c static void tegra210_sdhci_writew(struct sdhci_host *host, u16 val, int reg) host 252 drivers/mmc/host/sdhci-tegra.c clk_enabled = tegra_sdhci_configure_card_clk(host, 0); host 254 drivers/mmc/host/sdhci-tegra.c writew(val, host->ioaddr + reg); host 258 drivers/mmc/host/sdhci-tegra.c sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); host 259 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_configure_card_clk(host, clk_enabled); host 263 drivers/mmc/host/sdhci-tegra.c static unsigned int tegra_sdhci_get_ro(struct sdhci_host *host) host 270 drivers/mmc/host/sdhci-tegra.c return mmc_gpio_get_ro(host->mmc); host 273 drivers/mmc/host/sdhci-tegra.c static bool tegra_sdhci_is_pad_and_regulator_valid(struct sdhci_host *host) host 275 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 290 drivers/mmc/host/sdhci-tegra.c if (IS_ERR(host->mmc->supply.vqmmc)) host 293 drivers/mmc/host/sdhci-tegra.c has_1v8 = regulator_is_supported_voltage(host->mmc->supply.vqmmc, host 296 drivers/mmc/host/sdhci-tegra.c has_3v3 = regulator_is_supported_voltage(host->mmc->supply.vqmmc, host 306 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_set_tap(struct sdhci_host *host, unsigned int tap) host 308 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 321 drivers/mmc/host/sdhci-tegra.c card_clk_enabled = tegra_sdhci_configure_card_clk(host, false); host 323 drivers/mmc/host/sdhci-tegra.c reg = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); host 326 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, reg, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); host 331 drivers/mmc/host/sdhci-tegra.c sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); host 332 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_configure_card_clk(host, card_clk_enabled); host 339 drivers/mmc/host/sdhci-tegra.c struct sdhci_host *host = mmc_priv(mmc); host 342 drivers/mmc/host/sdhci-tegra.c val = sdhci_readl(host, SDHCI_TEGRA_VENDOR_SYS_SW_CTRL); host 349 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, val, SDHCI_TEGRA_VENDOR_SYS_SW_CTRL); host 353 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask) host 355 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 360 drivers/mmc/host/sdhci-tegra.c sdhci_reset(host, mask); host 365 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_tap(host, tegra_host->default_tap); host 367 drivers/mmc/host/sdhci-tegra.c misc_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_MISC_CTRL); host 368 drivers/mmc/host/sdhci-tegra.c clk_ctrl = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); host 378 drivers/mmc/host/sdhci-tegra.c if (tegra_sdhci_is_pad_and_regulator_valid(host)) { host 395 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, misc_ctrl, SDHCI_TEGRA_VENDOR_MISC_CTRL); host 396 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, clk_ctrl, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); host 399 drivers/mmc/host/sdhci-tegra.c pad_ctrl = sdhci_readl(host, SDHCI_TEGRA_SDMEM_COMP_PADCTRL); host 402 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, pad_ctrl, SDHCI_TEGRA_SDMEM_COMP_PADCTRL); host 410 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_configure_cal_pad(struct sdhci_host *host, bool enable) host 418 drivers/mmc/host/sdhci-tegra.c val = sdhci_readl(host, SDHCI_TEGRA_SDMEM_COMP_PADCTRL); host 425 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, val, SDHCI_TEGRA_SDMEM_COMP_PADCTRL); host 431 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_set_pad_autocal_offset(struct sdhci_host *host, host 436 drivers/mmc/host/sdhci-tegra.c reg = sdhci_readl(host, SDHCI_TEGRA_AUTO_CAL_CONFIG); host 439 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, reg, SDHCI_TEGRA_AUTO_CAL_CONFIG); host 442 drivers/mmc/host/sdhci-tegra.c static int tegra_sdhci_set_padctrl(struct sdhci_host *host, int voltage, host 445 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 478 drivers/mmc/host/sdhci-tegra.c dev_err(mmc_dev(host->mmc), host 481 drivers/mmc/host/sdhci-tegra.c reg = sdhci_readl(host, host 485 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, reg, host 498 drivers/mmc/host/sdhci-tegra.c dev_err(mmc_dev(host->mmc), host 504 drivers/mmc/host/sdhci-tegra.c dev_err(mmc_dev(host->mmc), host 512 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_pad_autocalib(struct sdhci_host *host) host 514 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 518 drivers/mmc/host/sdhci-tegra.c struct mmc_ios *ios = &host->mmc->ios; host 539 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_pad_autocal_offset(host, pdpu); host 541 drivers/mmc/host/sdhci-tegra.c card_clk_enabled = tegra_sdhci_configure_card_clk(host, false); host 543 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_configure_cal_pad(host, true); host 545 drivers/mmc/host/sdhci-tegra.c reg = sdhci_readl(host, SDHCI_TEGRA_AUTO_CAL_CONFIG); host 547 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, reg, SDHCI_TEGRA_AUTO_CAL_CONFIG); host 551 drivers/mmc/host/sdhci-tegra.c ret = readl_poll_timeout(host->ioaddr + SDHCI_TEGRA_AUTO_CAL_STATUS, host 555 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_configure_cal_pad(host, false); host 557 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_configure_card_clk(host, card_clk_enabled); host 560 drivers/mmc/host/sdhci-tegra.c dev_err(mmc_dev(host->mmc), "Pad autocal timed out\n"); host 563 drivers/mmc/host/sdhci-tegra.c reg = sdhci_readl(host, SDHCI_TEGRA_AUTO_CAL_CONFIG); host 565 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, reg, SDHCI_TEGRA_AUTO_CAL_CONFIG); host 567 drivers/mmc/host/sdhci-tegra.c ret = tegra_sdhci_set_padctrl(host, ios->signal_voltage, false); host 569 drivers/mmc/host/sdhci-tegra.c dev_err(mmc_dev(host->mmc), host 574 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_parse_pad_autocal_dt(struct sdhci_host *host) host 576 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 582 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 588 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 594 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 600 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 606 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 613 drivers/mmc/host/sdhci-tegra.c mmc_hostname(host->mmc)); host 617 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 624 drivers/mmc/host/sdhci-tegra.c mmc_hostname(host->mmc)); host 628 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 635 drivers/mmc/host/sdhci-tegra.c mmc_hostname(host->mmc)); host 639 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 646 drivers/mmc/host/sdhci-tegra.c mmc_hostname(host->mmc)); host 650 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 656 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 662 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 668 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, host 677 drivers/mmc/host/sdhci-tegra.c struct sdhci_host *host = mmc_priv(mmc); host 678 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 684 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_pad_autocalib(host); host 691 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_parse_tap_and_trim(struct sdhci_host *host) host 693 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 697 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, "nvidia,default-tap", host 702 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, "nvidia,default-trim", host 707 drivers/mmc/host/sdhci-tegra.c err = device_property_read_u32(host->mmc->parent, "nvidia,dqs-trim", host 713 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_parse_dt(struct sdhci_host *host) host 715 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 718 drivers/mmc/host/sdhci-tegra.c if (device_property_read_bool(host->mmc->parent, "supports-cqe")) host 723 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_parse_pad_autocal_dt(host); host 724 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_parse_tap_and_trim(host); host 727 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_set_clock(struct sdhci_host *host, unsigned int clock) host 729 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 734 drivers/mmc/host/sdhci-tegra.c return sdhci_set_clock(host, clock); host 752 drivers/mmc/host/sdhci-tegra.c host->max_clk = host_clk; host 754 drivers/mmc/host/sdhci-tegra.c host->max_clk = clk_get_rate(pltfm_host->clk); host 756 drivers/mmc/host/sdhci-tegra.c sdhci_set_clock(host, clock); host 759 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_pad_autocalib(host); host 764 drivers/mmc/host/sdhci-tegra.c static unsigned int tegra_sdhci_get_max_clock(struct sdhci_host *host) host 766 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 771 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_set_dqs_trim(struct sdhci_host *host, u8 trim) host 775 drivers/mmc/host/sdhci-tegra.c val = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CAP_OVERRIDES); host 778 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, val, SDHCI_TEGRA_VENDOR_CAP_OVERRIDES); host 781 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_hs400_dll_cal(struct sdhci_host *host) host 786 drivers/mmc/host/sdhci-tegra.c reg = sdhci_readl(host, SDHCI_TEGRA_VENDOR_DLLCAL_CFG); host 788 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, reg, SDHCI_TEGRA_VENDOR_DLLCAL_CFG); host 791 drivers/mmc/host/sdhci-tegra.c err = readl_poll_timeout(host->ioaddr + SDHCI_TEGRA_VENDOR_DLLCAL_STA, host 795 drivers/mmc/host/sdhci-tegra.c dev_err(mmc_dev(host->mmc), host 799 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_tap_correction(struct sdhci_host *host, u8 thd_up, host 802 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 816 drivers/mmc/host/sdhci-tegra.c u8 total_tuning_words = host->tuning_loop_count / TUNING_WORD_BIT_SIZE; host 823 drivers/mmc/host/sdhci-tegra.c val = sdhci_readl(host, SDHCI_VNDR_TUN_CTRL0_0); host 826 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, val, SDHCI_VNDR_TUN_CTRL0_0); host 827 drivers/mmc/host/sdhci-tegra.c tun_status = sdhci_readl(host, SDHCI_TEGRA_VNDR_TUN_STATUS0); host 882 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_post_tuning(struct sdhci_host *host) host 884 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 894 drivers/mmc/host/sdhci-tegra.c val = sdhci_readl(host, SDHCI_TEGRA_VENDOR_CLOCK_CTRL); host 917 drivers/mmc/host/sdhci-tegra.c val = sdhci_readl(host, SDHCI_TEGRA_VNDR_TUN_STATUS1); host 922 drivers/mmc/host/sdhci-tegra.c num_iter = host->tuning_loop_count; host 931 drivers/mmc/host/sdhci-tegra.c mmc_hostname(host->mmc)); host 932 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_tap_correction(host, thdupper, thdlower, host 937 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_tap(host, tegra_host->tuned_tap_delay); host 942 drivers/mmc/host/sdhci-tegra.c struct sdhci_host *host = mmc_priv(mmc); host 946 drivers/mmc/host/sdhci-tegra.c if (!err && !host->tuning_err) host 947 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_post_tuning(host); host 952 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_set_uhs_signaling(struct sdhci_host *host, host 955 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 987 drivers/mmc/host/sdhci-tegra.c val = sdhci_readl(host, SDHCI_VNDR_TUN_CTRL0_0); host 994 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, val, SDHCI_VNDR_TUN_CTRL0_0); host 995 drivers/mmc/host/sdhci-tegra.c sdhci_writel(host, 0, SDHCI_TEGRA_VNDR_TUN_CTRL1_0); host 997 drivers/mmc/host/sdhci-tegra.c host->tuning_loop_count = (iter == TRIES_128) ? 128 : 256; host 999 drivers/mmc/host/sdhci-tegra.c sdhci_set_uhs_signaling(host, timing); host 1001 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_pad_autocalib(host); host 1004 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_tap(host, tegra_host->tuned_tap_delay); host 1006 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_tap(host, tegra_host->default_tap); host 1009 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_dqs_trim(host, tegra_host->dqs_trim); host 1012 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_hs400_dll_cal(host); host 1015 drivers/mmc/host/sdhci-tegra.c static int tegra_sdhci_execute_tuning(struct sdhci_host *host, u32 opcode) host 1026 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_tap(host, min); host 1027 drivers/mmc/host/sdhci-tegra.c if (!mmc_send_tuning(host->mmc, opcode, NULL)) host 1035 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_tap(host, max); host 1036 drivers/mmc/host/sdhci-tegra.c if (mmc_send_tuning(host->mmc, opcode, NULL)) { host 1044 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_set_tap(host, min + ((max - min) * 3 / 4)); host 1046 drivers/mmc/host/sdhci-tegra.c return mmc_send_tuning(host->mmc, opcode, NULL); host 1052 drivers/mmc/host/sdhci-tegra.c struct sdhci_host *host = mmc_priv(mmc); host 1053 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1058 drivers/mmc/host/sdhci-tegra.c ret = tegra_sdhci_set_padctrl(host, ios->signal_voltage, true); host 1066 drivers/mmc/host/sdhci-tegra.c ret = tegra_sdhci_set_padctrl(host, ios->signal_voltage, true); host 1070 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_pad_autocalib(host); host 1120 drivers/mmc/host/sdhci-tegra.c static void tegra_sdhci_voltage_switch(struct sdhci_host *host) host 1122 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1217 drivers/mmc/host/sdhci-tegra.c static u32 sdhci_tegra_cqhci_irq(struct sdhci_host *host, u32 intmask) host 1222 drivers/mmc/host/sdhci-tegra.c if (!sdhci_cqe_irq(host, intmask, &cmd_error, &data_error)) host 1225 drivers/mmc/host/sdhci-tegra.c cqhci_irq(host->mmc, intmask, cmd_error, data_error); host 1238 drivers/mmc/host/sdhci-tegra.c static int tegra_sdhci_set_dma_mask(struct sdhci_host *host) host 1240 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *platform = sdhci_priv(host); host 1243 drivers/mmc/host/sdhci-tegra.c struct device *dev = mmc_dev(host->mmc); host 1456 drivers/mmc/host/sdhci-tegra.c static int sdhci_tegra_add_host(struct sdhci_host *host) host 1458 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1465 drivers/mmc/host/sdhci-tegra.c return sdhci_add_host(host); host 1467 drivers/mmc/host/sdhci-tegra.c sdhci_enable_v4_mode(host); host 1469 drivers/mmc/host/sdhci-tegra.c ret = sdhci_setup_host(host); host 1473 drivers/mmc/host/sdhci-tegra.c host->mmc->caps2 |= MMC_CAP2_CQE | MMC_CAP2_CQE_DCMD; host 1475 drivers/mmc/host/sdhci-tegra.c cq_host = devm_kzalloc(host->mmc->parent, host 1482 drivers/mmc/host/sdhci-tegra.c cq_host->mmio = host->ioaddr + SDHCI_TEGRA_CQE_BASE_ADDR; host 1485 drivers/mmc/host/sdhci-tegra.c dma64 = host->flags & SDHCI_USE_64_BIT_DMA; host 1489 drivers/mmc/host/sdhci-tegra.c ret = cqhci_init(cq_host, host->mmc, dma64); host 1493 drivers/mmc/host/sdhci-tegra.c ret = __sdhci_add_host(host); host 1500 drivers/mmc/host/sdhci-tegra.c sdhci_cleanup_host(host); host 1508 drivers/mmc/host/sdhci-tegra.c struct sdhci_host *host; host 1519 drivers/mmc/host/sdhci-tegra.c host = sdhci_pltfm_init(pdev, soc_data->pdata, sizeof(*tegra_host)); host 1520 drivers/mmc/host/sdhci-tegra.c if (IS_ERR(host)) host 1521 drivers/mmc/host/sdhci-tegra.c return PTR_ERR(host); host 1522 drivers/mmc/host/sdhci-tegra.c pltfm_host = sdhci_priv(host); host 1533 drivers/mmc/host/sdhci-tegra.c host->mmc_host_ops.start_signal_voltage_switch = host 1539 drivers/mmc/host/sdhci-tegra.c host->mmc_host_ops.request = tegra_sdhci_request; host 1541 drivers/mmc/host/sdhci-tegra.c host->mmc_host_ops.hs400_enhanced_strobe = host 1544 drivers/mmc/host/sdhci-tegra.c if (!host->ops->platform_execute_tuning) host 1545 drivers/mmc/host/sdhci-tegra.c host->mmc_host_ops.execute_tuning = host 1548 drivers/mmc/host/sdhci-tegra.c rc = mmc_of_parse(host->mmc); host 1553 drivers/mmc/host/sdhci-tegra.c host->mmc->caps |= MMC_CAP_1_8V_DDR; host 1556 drivers/mmc/host/sdhci-tegra.c host->mmc->caps |= MMC_CAP_NEED_RSP_BUSY; host 1558 drivers/mmc/host/sdhci-tegra.c tegra_sdhci_parse_dt(host); host 1567 drivers/mmc/host/sdhci-tegra.c clk = devm_clk_get(mmc_dev(host->mmc), NULL); host 1599 drivers/mmc/host/sdhci-tegra.c rc = sdhci_tegra_add_host(host); host 1618 drivers/mmc/host/sdhci-tegra.c struct sdhci_host *host = platform_get_drvdata(pdev); host 1619 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1622 drivers/mmc/host/sdhci-tegra.c sdhci_remove_host(host, 0); host 1636 drivers/mmc/host/sdhci-tegra.c struct sdhci_host *host = dev_get_drvdata(dev); host 1637 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1640 drivers/mmc/host/sdhci-tegra.c if (host->mmc->caps2 & MMC_CAP2_CQE) { host 1641 drivers/mmc/host/sdhci-tegra.c ret = cqhci_suspend(host->mmc); host 1646 drivers/mmc/host/sdhci-tegra.c ret = sdhci_suspend_host(host); host 1648 drivers/mmc/host/sdhci-tegra.c cqhci_resume(host->mmc); host 1658 drivers/mmc/host/sdhci-tegra.c struct sdhci_host *host = dev_get_drvdata(dev); host 1659 drivers/mmc/host/sdhci-tegra.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 1666 drivers/mmc/host/sdhci-tegra.c ret = sdhci_resume_host(host); host 1670 drivers/mmc/host/sdhci-tegra.c if (host->mmc->caps2 & MMC_CAP2_CQE) { host 1671 drivers/mmc/host/sdhci-tegra.c ret = cqhci_resume(host->mmc); host 1679 drivers/mmc/host/sdhci-tegra.c sdhci_suspend_host(host); host 157 drivers/mmc/host/sdhci-xenon-phy.c void (*set_soc_pad)(struct sdhci_host *host, host 200 drivers/mmc/host/sdhci-xenon-phy.c static int xenon_alloc_emmc_phy(struct sdhci_host *host) host 202 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 206 drivers/mmc/host/sdhci-xenon-phy.c params = devm_kzalloc(mmc_dev(host->mmc), sizeof(*params), GFP_KERNEL); host 227 drivers/mmc/host/sdhci-xenon-phy.c static int xenon_emmc_phy_init(struct sdhci_host *host) host 231 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 235 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->timing_adj); host 237 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, phy_regs->timing_adj); host 255 drivers/mmc/host/sdhci-xenon-phy.c clock = host->clock; host 265 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->timing_adj); host 268 drivers/mmc/host/sdhci-xenon-phy.c dev_err(mmc_dev(host->mmc), "eMMC PHY init cannot complete after %d us\n", host 279 drivers/mmc/host/sdhci-xenon-phy.c static void armada_3700_soc_pad_voltage_set(struct sdhci_host *host, host 282 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 301 drivers/mmc/host/sdhci-xenon-phy.c static void xenon_emmc_phy_set_soc_pad(struct sdhci_host *host, host 304 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 312 drivers/mmc/host/sdhci-xenon-phy.c params->pad_ctrl.set_soc_pad(host, signal_voltage); host 320 drivers/mmc/host/sdhci-xenon-phy.c static int xenon_emmc_phy_enable_dll(struct sdhci_host *host) host 323 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 328 drivers/mmc/host/sdhci-xenon-phy.c if (WARN_ON(host->clock <= MMC_HIGH_52_MAX_DTR)) host 331 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->dll_ctrl); host 336 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->dll_ctrl); host 353 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, phy_regs->dll_ctrl); host 360 drivers/mmc/host/sdhci-xenon-phy.c if (sdhci_readw(host, XENON_SLOT_EXT_PRESENT_STATE) & host 364 drivers/mmc/host/sdhci-xenon-phy.c dev_err(mmc_dev(host->mmc), "Wait for DLL Lock time-out\n"); host 376 drivers/mmc/host/sdhci-xenon-phy.c static int xenon_emmc_phy_config_tuning(struct sdhci_host *host) host 378 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 384 drivers/mmc/host/sdhci-xenon-phy.c if (host->clock <= MMC_HIGH_52_MAX_DTR) host 387 drivers/mmc/host/sdhci-xenon-phy.c ret = xenon_emmc_phy_enable_dll(host); host 392 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_SLOT_DLL_CUR_DLY_VAL); host 395 drivers/mmc/host/sdhci-xenon-phy.c dev_warn(mmc_dev(host->mmc), host 402 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_SLOT_OP_STATUS_CTRL); host 408 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_SLOT_OP_STATUS_CTRL); host 413 drivers/mmc/host/sdhci-xenon-phy.c static void xenon_emmc_phy_disable_strobe(struct sdhci_host *host) host 415 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 420 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_SLOT_EMMC_CTRL); host 422 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_SLOT_EMMC_CTRL); host 426 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_EMMC_5_0_PHY_PAD_CONTROL); host 428 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_EMMC_5_0_PHY_PAD_CONTROL); host 430 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_EMMC_PHY_PAD_CONTROL1); host 432 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_EMMC_PHY_PAD_CONTROL1); host 437 drivers/mmc/host/sdhci-xenon-phy.c static void xenon_emmc_phy_strobe_delay_adj(struct sdhci_host *host) host 439 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 443 drivers/mmc/host/sdhci-xenon-phy.c if (WARN_ON(host->timing != MMC_TIMING_MMC_HS400)) host 446 drivers/mmc/host/sdhci-xenon-phy.c if (host->clock <= MMC_HIGH_52_MAX_DTR) host 449 drivers/mmc/host/sdhci-xenon-phy.c dev_dbg(mmc_dev(host->mmc), "starts HS400 strobe delay adjustment\n"); host 451 drivers/mmc/host/sdhci-xenon-phy.c xenon_emmc_phy_enable_dll(host); host 454 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_SLOT_EMMC_CTRL); host 463 drivers/mmc/host/sdhci-xenon-phy.c if (host->mmc->ios.enhanced_strobe) host 465 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_SLOT_EMMC_CTRL); host 469 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_EMMC_5_0_PHY_PAD_CONTROL); host 472 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_EMMC_5_0_PHY_PAD_CONTROL); host 474 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_EMMC_PHY_PAD_CONTROL1); host 477 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_EMMC_PHY_PAD_CONTROL1); host 489 drivers/mmc/host/sdhci-xenon-phy.c static bool xenon_emmc_phy_slow_mode(struct sdhci_host *host, host 492 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 499 drivers/mmc/host/sdhci-xenon-phy.c if (host->clock > MMC_HIGH_52_MAX_DTR) host 502 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->timing_adj); host 536 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, phy_regs->timing_adj); host 544 drivers/mmc/host/sdhci-xenon-phy.c static void xenon_emmc_phy_set(struct sdhci_host *host, host 548 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 553 drivers/mmc/host/sdhci-xenon-phy.c dev_dbg(mmc_dev(host->mmc), "eMMC PHY setting starts\n"); host 556 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->pad_ctrl); host 561 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, phy_regs->pad_ctrl); host 565 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_EMMC_5_0_PHY_PAD_CONTROL); host 568 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_EMMC_5_0_PHY_PAD_CONTROL); host 570 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, XENON_EMMC_PHY_PAD_CONTROL1); host 573 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, XENON_EMMC_PHY_PAD_CONTROL1); host 577 drivers/mmc/host/sdhci-xenon-phy.c xenon_emmc_phy_slow_mode(host, timing); host 585 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->timing_adj); host 590 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, phy_regs->timing_adj); host 592 drivers/mmc/host/sdhci-xenon-phy.c if (xenon_emmc_phy_slow_mode(host, timing)) host 600 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->pad_ctrl2); host 603 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, phy_regs->pad_ctrl2); host 609 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, SDHCI_CLOCK_CONTROL); host 611 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writew(host, reg, SDHCI_CLOCK_CONTROL); host 613 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, phy_regs->func_ctrl); host 630 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, reg, phy_regs->func_ctrl); host 633 drivers/mmc/host/sdhci-xenon-phy.c reg = sdhci_readl(host, SDHCI_CLOCK_CONTROL); host 635 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writew(host, reg, SDHCI_CLOCK_CONTROL); host 639 drivers/mmc/host/sdhci-xenon-phy.c sdhci_writel(host, phy_regs->logic_timing_val, host 642 drivers/mmc/host/sdhci-xenon-phy.c xenon_emmc_phy_disable_strobe(host); host 645 drivers/mmc/host/sdhci-xenon-phy.c xenon_emmc_phy_init(host); host 647 drivers/mmc/host/sdhci-xenon-phy.c dev_dbg(mmc_dev(host->mmc), "eMMC PHY setting completes\n"); host 650 drivers/mmc/host/sdhci-xenon-phy.c static int get_dt_pad_ctrl_data(struct sdhci_host *host, host 664 drivers/mmc/host/sdhci-xenon-phy.c dev_err(mmc_dev(host->mmc), "Unable to find SoC PAD ctrl register address for %pOFn\n", host 669 drivers/mmc/host/sdhci-xenon-phy.c params->pad_ctrl.reg = devm_ioremap_resource(mmc_dev(host->mmc), host 676 drivers/mmc/host/sdhci-xenon-phy.c dev_err(mmc_dev(host->mmc), "Unable to determine SoC PHY PAD ctrl type\n"); host 684 drivers/mmc/host/sdhci-xenon-phy.c dev_err(mmc_dev(host->mmc), "Unsupported SoC PHY PAD ctrl type %s\n", host 692 drivers/mmc/host/sdhci-xenon-phy.c static int xenon_emmc_phy_parse_param_dt(struct sdhci_host *host, host 720 drivers/mmc/host/sdhci-xenon-phy.c return get_dt_pad_ctrl_data(host, np, params); host 724 drivers/mmc/host/sdhci-xenon-phy.c void xenon_soc_pad_ctrl(struct sdhci_host *host, host 727 drivers/mmc/host/sdhci-xenon-phy.c xenon_emmc_phy_set_soc_pad(host, signal_voltage); host 735 drivers/mmc/host/sdhci-xenon-phy.c static int xenon_hs_delay_adj(struct sdhci_host *host) host 739 drivers/mmc/host/sdhci-xenon-phy.c if (WARN_ON(host->clock <= XENON_DEFAULT_SDCLK_FREQ)) host 742 drivers/mmc/host/sdhci-xenon-phy.c switch (host->timing) { host 744 drivers/mmc/host/sdhci-xenon-phy.c xenon_emmc_phy_strobe_delay_adj(host); host 748 drivers/mmc/host/sdhci-xenon-phy.c return xenon_emmc_phy_config_tuning(host); host 762 drivers/mmc/host/sdhci-xenon-phy.c dev_warn_once(mmc_dev(host->mmc), "Timing issue might occur in DDR mode\n"); host 776 drivers/mmc/host/sdhci-xenon-phy.c int xenon_phy_adj(struct sdhci_host *host, struct mmc_ios *ios) host 778 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 782 drivers/mmc/host/sdhci-xenon-phy.c if (!host->clock) { host 792 drivers/mmc/host/sdhci-xenon-phy.c if ((host->clock == priv->clock) && host 797 drivers/mmc/host/sdhci-xenon-phy.c xenon_emmc_phy_set(host, ios->timing); host 803 drivers/mmc/host/sdhci-xenon-phy.c priv->clock = host->clock; host 809 drivers/mmc/host/sdhci-xenon-phy.c if (host->clock > XENON_DEFAULT_SDCLK_FREQ) host 810 drivers/mmc/host/sdhci-xenon-phy.c ret = xenon_hs_delay_adj(host); host 814 drivers/mmc/host/sdhci-xenon-phy.c static int xenon_add_phy(struct device_node *np, struct sdhci_host *host, host 817 drivers/mmc/host/sdhci-xenon-phy.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 823 drivers/mmc/host/sdhci-xenon-phy.c dev_err(mmc_dev(host->mmc), host 829 drivers/mmc/host/sdhci-xenon-phy.c ret = xenon_alloc_emmc_phy(host); host 833 drivers/mmc/host/sdhci-xenon-phy.c return xenon_emmc_phy_parse_param_dt(host, np, priv->phy_params); host 836 drivers/mmc/host/sdhci-xenon-phy.c int xenon_phy_parse_dt(struct device_node *np, struct sdhci_host *host) host 841 drivers/mmc/host/sdhci-xenon-phy.c return xenon_add_phy(np, host, phy_type); host 843 drivers/mmc/host/sdhci-xenon-phy.c return xenon_add_phy(np, host, "emmc 5.1 phy"); host 24 drivers/mmc/host/sdhci-xenon.c static int xenon_enable_internal_clk(struct sdhci_host *host) host 29 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, SDHCI_CLOCK_CONTROL); host 31 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, SDHCI_CLOCK_CONTROL); host 37 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 41 drivers/mmc/host/sdhci-xenon.c dev_err(mmc_dev(host->mmc), "Internal clock never stabilised.\n"); host 51 drivers/mmc/host/sdhci-xenon.c static void xenon_set_sdclk_off_idle(struct sdhci_host *host, host 57 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SYS_OP_CTRL); host 65 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SYS_OP_CTRL); host 69 drivers/mmc/host/sdhci-xenon.c static void xenon_set_acg(struct sdhci_host *host, bool enable) host 73 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SYS_OP_CTRL); host 78 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SYS_OP_CTRL); host 82 drivers/mmc/host/sdhci-xenon.c static void xenon_enable_sdhc(struct sdhci_host *host, host 87 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SYS_OP_CTRL); host 89 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SYS_OP_CTRL); host 91 drivers/mmc/host/sdhci-xenon.c host->mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY; host 96 drivers/mmc/host/sdhci-xenon.c host->mmc->caps &= ~MMC_CAP_BUS_WIDTH_TEST; host 100 drivers/mmc/host/sdhci-xenon.c static void xenon_disable_sdhc(struct sdhci_host *host, host 105 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SYS_OP_CTRL); host 107 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SYS_OP_CTRL); host 111 drivers/mmc/host/sdhci-xenon.c static void xenon_enable_sdhc_parallel_tran(struct sdhci_host *host, host 116 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SYS_EXT_OP_CTRL); host 118 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SYS_EXT_OP_CTRL); host 122 drivers/mmc/host/sdhci-xenon.c static void xenon_mask_cmd_conflict_err(struct sdhci_host *host) host 126 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SYS_EXT_OP_CTRL); host 128 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SYS_EXT_OP_CTRL); host 131 drivers/mmc/host/sdhci-xenon.c static void xenon_retune_setup(struct sdhci_host *host) host 133 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 138 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SLOT_RETUNING_REQ_CTRL); host 140 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SLOT_RETUNING_REQ_CTRL); host 143 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, SDHCI_SIGNAL_ENABLE); host 145 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, SDHCI_SIGNAL_ENABLE); host 146 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, SDHCI_INT_ENABLE); host 148 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, SDHCI_INT_ENABLE); host 151 drivers/mmc/host/sdhci-xenon.c host->tuning_mode = SDHCI_TUNING_MODE_1; host 153 drivers/mmc/host/sdhci-xenon.c host->tuning_count = 1 << (priv->tuning_count - 1); host 160 drivers/mmc/host/sdhci-xenon.c static void xenon_reset_exit(struct sdhci_host *host, host 168 drivers/mmc/host/sdhci-xenon.c xenon_retune_setup(host); host 170 drivers/mmc/host/sdhci-xenon.c xenon_set_acg(host, true); host 172 drivers/mmc/host/sdhci-xenon.c xenon_set_sdclk_off_idle(host, sdhc_id, false); host 174 drivers/mmc/host/sdhci-xenon.c xenon_mask_cmd_conflict_err(host); host 177 drivers/mmc/host/sdhci-xenon.c static void xenon_reset(struct sdhci_host *host, u8 mask) host 179 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 182 drivers/mmc/host/sdhci-xenon.c sdhci_reset(host, mask); host 183 drivers/mmc/host/sdhci-xenon.c xenon_reset_exit(host, priv->sdhc_id, mask); host 190 drivers/mmc/host/sdhci-xenon.c static void xenon_set_uhs_signaling(struct sdhci_host *host, host 195 drivers/mmc/host/sdhci-xenon.c ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 213 drivers/mmc/host/sdhci-xenon.c sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); host 216 drivers/mmc/host/sdhci-xenon.c static void xenon_set_power(struct sdhci_host *host, unsigned char mode, host 219 drivers/mmc/host/sdhci-xenon.c struct mmc_host *mmc = host->mmc; host 220 drivers/mmc/host/sdhci-xenon.c u8 pwr = host->pwr; host 222 drivers/mmc/host/sdhci-xenon.c sdhci_set_power_noreg(host, mode, vdd); host 224 drivers/mmc/host/sdhci-xenon.c if (host->pwr == pwr) host 227 drivers/mmc/host/sdhci-xenon.c if (host->pwr == 0) host 234 drivers/mmc/host/sdhci-xenon.c static void xenon_voltage_switch(struct sdhci_host *host) host 247 drivers/mmc/host/sdhci-xenon.c sdhci_readw(host, SDHCI_HOST_CONTROL2); host 272 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = mmc_priv(mmc); host 273 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 287 drivers/mmc/host/sdhci-xenon.c host->preset_enabled = false; host 288 drivers/mmc/host/sdhci-xenon.c host->quirks2 |= SDHCI_QUIRK2_PRESET_VALUE_BROKEN; host 289 drivers/mmc/host/sdhci-xenon.c host->flags &= ~SDHCI_PV_ENABLED; host 291 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 293 drivers/mmc/host/sdhci-xenon.c sdhci_writew(host, reg, SDHCI_HOST_CONTROL2); host 295 drivers/mmc/host/sdhci-xenon.c host->quirks2 &= ~SDHCI_QUIRK2_PRESET_VALUE_BROKEN; host 299 drivers/mmc/host/sdhci-xenon.c xenon_phy_adj(host, ios); host 301 drivers/mmc/host/sdhci-xenon.c if (host->clock > XENON_DEFAULT_SDCLK_FREQ) host 302 drivers/mmc/host/sdhci-xenon.c xenon_set_sdclk_off_idle(host, priv->sdhc_id, true); host 308 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = mmc_priv(mmc); host 320 drivers/mmc/host/sdhci-xenon.c xenon_enable_internal_clk(host); host 322 drivers/mmc/host/sdhci-xenon.c xenon_soc_pad_ctrl(host, ios->signal_voltage); host 341 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = mmc_priv(mmc); host 342 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 351 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = mmc_priv(mmc); host 353 drivers/mmc/host/sdhci-xenon.c if (host->timing == MMC_TIMING_UHS_DDR50 || host 354 drivers/mmc/host/sdhci-xenon.c host->timing == MMC_TIMING_MMC_DDR52) host 362 drivers/mmc/host/sdhci-xenon.c if (host->tuning_mode != SDHCI_TUNING_MODE_1) host 363 drivers/mmc/host/sdhci-xenon.c xenon_retune_setup(host); host 370 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = mmc_priv(mmc); host 371 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 383 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SYS_CFG_INFO); host 385 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SYS_CFG_INFO); host 388 drivers/mmc/host/sdhci-xenon.c reg = sdhci_readl(host, XENON_SYS_CFG_INFO); host 390 drivers/mmc/host/sdhci-xenon.c sdhci_writel(host, reg, XENON_SYS_CFG_INFO); host 394 drivers/mmc/host/sdhci-xenon.c static void xenon_replace_mmc_host_ops(struct sdhci_host *host) host 396 drivers/mmc/host/sdhci-xenon.c host->mmc_host_ops.set_ios = xenon_set_ios; host 397 drivers/mmc/host/sdhci-xenon.c host->mmc_host_ops.start_signal_voltage_switch = host 399 drivers/mmc/host/sdhci-xenon.c host->mmc_host_ops.init_card = xenon_init_card; host 400 drivers/mmc/host/sdhci-xenon.c host->mmc_host_ops.execute_tuning = xenon_execute_tuning; host 401 drivers/mmc/host/sdhci-xenon.c host->mmc_host_ops.enable_sdio_irq = xenon_enable_sdio_irq; host 413 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = platform_get_drvdata(pdev); host 414 drivers/mmc/host/sdhci-xenon.c struct mmc_host *mmc = host->mmc; host 415 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 422 drivers/mmc/host/sdhci-xenon.c host->quirks2 |= SDHCI_QUIRK2_BROKEN_HS200; host 426 drivers/mmc/host/sdhci-xenon.c nr_sdhc = sdhci_readl(host, XENON_SYS_CFG_INFO); host 447 drivers/mmc/host/sdhci-xenon.c return xenon_phy_parse_dt(np, host); host 450 drivers/mmc/host/sdhci-xenon.c static int xenon_sdhc_prepare(struct sdhci_host *host) host 452 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 457 drivers/mmc/host/sdhci-xenon.c xenon_enable_sdhc(host, sdhc_id); host 460 drivers/mmc/host/sdhci-xenon.c xenon_set_acg(host, true); host 463 drivers/mmc/host/sdhci-xenon.c xenon_enable_sdhc_parallel_tran(host, sdhc_id); host 466 drivers/mmc/host/sdhci-xenon.c xenon_set_sdclk_off_idle(host, sdhc_id, false); host 468 drivers/mmc/host/sdhci-xenon.c xenon_mask_cmd_conflict_err(host); host 473 drivers/mmc/host/sdhci-xenon.c static void xenon_sdhc_unprepare(struct sdhci_host *host) host 475 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 480 drivers/mmc/host/sdhci-xenon.c xenon_disable_sdhc(host, sdhc_id); host 486 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host; host 490 drivers/mmc/host/sdhci-xenon.c host = sdhci_pltfm_init(pdev, &sdhci_xenon_pdata, host 492 drivers/mmc/host/sdhci-xenon.c if (IS_ERR(host)) host 493 drivers/mmc/host/sdhci-xenon.c return PTR_ERR(host); host 495 drivers/mmc/host/sdhci-xenon.c pltfm_host = sdhci_priv(host); host 502 drivers/mmc/host/sdhci-xenon.c xenon_replace_mmc_host_ops(host); host 525 drivers/mmc/host/sdhci-xenon.c err = mmc_of_parse(host->mmc); host 531 drivers/mmc/host/sdhci-xenon.c xenon_set_acg(host, false); host 538 drivers/mmc/host/sdhci-xenon.c err = xenon_sdhc_prepare(host); host 549 drivers/mmc/host/sdhci-xenon.c err = sdhci_add_host(host); host 560 drivers/mmc/host/sdhci-xenon.c xenon_sdhc_unprepare(host); host 572 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = platform_get_drvdata(pdev); host 573 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 580 drivers/mmc/host/sdhci-xenon.c sdhci_remove_host(host, 0); host 582 drivers/mmc/host/sdhci-xenon.c xenon_sdhc_unprepare(host); host 594 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = dev_get_drvdata(dev); host 595 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 609 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = dev_get_drvdata(dev); host 610 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 614 drivers/mmc/host/sdhci-xenon.c ret = sdhci_runtime_suspend_host(host); host 618 drivers/mmc/host/sdhci-xenon.c if (host->tuning_mode != SDHCI_TUNING_MODE_3) host 619 drivers/mmc/host/sdhci-xenon.c mmc_retune_needed(host->mmc); host 633 drivers/mmc/host/sdhci-xenon.c struct sdhci_host *host = dev_get_drvdata(dev); host 634 drivers/mmc/host/sdhci-xenon.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 645 drivers/mmc/host/sdhci-xenon.c ret = xenon_sdhc_prepare(host); host 651 drivers/mmc/host/sdhci-xenon.c ret = sdhci_runtime_resume_host(host, 0); host 95 drivers/mmc/host/sdhci-xenon.h int xenon_phy_adj(struct sdhci_host *host, struct mmc_ios *ios); host 97 drivers/mmc/host/sdhci-xenon.h struct sdhci_host *host); host 98 drivers/mmc/host/sdhci-xenon.h void xenon_soc_pad_ctrl(struct sdhci_host *host, host 39 drivers/mmc/host/sdhci.c pr_debug("%s: " DRIVER_NAME ": " f, mmc_hostname(host->mmc), ## x) host 42 drivers/mmc/host/sdhci.c pr_err("%s: " DRIVER_NAME ": " f, mmc_hostname(host->mmc), ## x) host 51 drivers/mmc/host/sdhci.c static void sdhci_enable_preset_value(struct sdhci_host *host, bool enable); host 53 drivers/mmc/host/sdhci.c void sdhci_dumpregs(struct sdhci_host *host) host 58 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_DMA_ADDRESS), host 59 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_HOST_VERSION)); host 61 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_BLOCK_SIZE), host 62 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_BLOCK_COUNT)); host 64 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_ARGUMENT), host 65 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_TRANSFER_MODE)); host 67 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_PRESENT_STATE), host 68 drivers/mmc/host/sdhci.c sdhci_readb(host, SDHCI_HOST_CONTROL)); host 70 drivers/mmc/host/sdhci.c sdhci_readb(host, SDHCI_POWER_CONTROL), host 71 drivers/mmc/host/sdhci.c sdhci_readb(host, SDHCI_BLOCK_GAP_CONTROL)); host 73 drivers/mmc/host/sdhci.c sdhci_readb(host, SDHCI_WAKE_UP_CONTROL), host 74 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_CLOCK_CONTROL)); host 76 drivers/mmc/host/sdhci.c sdhci_readb(host, SDHCI_TIMEOUT_CONTROL), host 77 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_INT_STATUS)); host 79 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_INT_ENABLE), host 80 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_SIGNAL_ENABLE)); host 82 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_AUTO_CMD_STATUS), host 83 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_SLOT_INT_STATUS)); host 85 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_CAPABILITIES), host 86 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_CAPABILITIES_1)); host 88 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_COMMAND), host 89 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_MAX_CURRENT)); host 91 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_RESPONSE), host 92 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_RESPONSE + 4)); host 94 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_RESPONSE + 8), host 95 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_RESPONSE + 12)); host 97 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_HOST_CONTROL2)); host 99 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_ADMA) { host 100 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_64_BIT_DMA) { host 102 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_ADMA_ERROR), host 103 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_ADMA_ADDRESS_HI), host 104 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_ADMA_ADDRESS)); host 107 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_ADMA_ERROR), host 108 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_ADMA_ADDRESS)); host 122 drivers/mmc/host/sdhci.c static void sdhci_do_enable_v4_mode(struct sdhci_host *host) host 126 drivers/mmc/host/sdhci.c ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 131 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2); host 138 drivers/mmc/host/sdhci.c void sdhci_enable_v4_mode(struct sdhci_host *host) host 140 drivers/mmc/host/sdhci.c host->v4_mode = true; host 141 drivers/mmc/host/sdhci.c sdhci_do_enable_v4_mode(host); host 150 drivers/mmc/host/sdhci.c static void sdhci_set_card_detection(struct sdhci_host *host, bool enable) host 154 drivers/mmc/host/sdhci.c if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) || host 155 drivers/mmc/host/sdhci.c !mmc_card_is_removable(host->mmc)) host 159 drivers/mmc/host/sdhci.c present = sdhci_readl(host, SDHCI_PRESENT_STATE) & host 162 drivers/mmc/host/sdhci.c host->ier |= present ? SDHCI_INT_CARD_REMOVE : host 165 drivers/mmc/host/sdhci.c host->ier &= ~(SDHCI_INT_CARD_REMOVE | SDHCI_INT_CARD_INSERT); host 168 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 169 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 172 drivers/mmc/host/sdhci.c static void sdhci_enable_card_detection(struct sdhci_host *host) host 174 drivers/mmc/host/sdhci.c sdhci_set_card_detection(host, true); host 177 drivers/mmc/host/sdhci.c static void sdhci_disable_card_detection(struct sdhci_host *host) host 179 drivers/mmc/host/sdhci.c sdhci_set_card_detection(host, false); host 182 drivers/mmc/host/sdhci.c static void sdhci_runtime_pm_bus_on(struct sdhci_host *host) host 184 drivers/mmc/host/sdhci.c if (host->bus_on) host 186 drivers/mmc/host/sdhci.c host->bus_on = true; host 187 drivers/mmc/host/sdhci.c pm_runtime_get_noresume(host->mmc->parent); host 190 drivers/mmc/host/sdhci.c static void sdhci_runtime_pm_bus_off(struct sdhci_host *host) host 192 drivers/mmc/host/sdhci.c if (!host->bus_on) host 194 drivers/mmc/host/sdhci.c host->bus_on = false; host 195 drivers/mmc/host/sdhci.c pm_runtime_put_noidle(host->mmc->parent); host 198 drivers/mmc/host/sdhci.c void sdhci_reset(struct sdhci_host *host, u8 mask) host 202 drivers/mmc/host/sdhci.c sdhci_writeb(host, mask, SDHCI_SOFTWARE_RESET); host 205 drivers/mmc/host/sdhci.c host->clock = 0; host 207 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON) host 208 drivers/mmc/host/sdhci.c sdhci_runtime_pm_bus_off(host); host 218 drivers/mmc/host/sdhci.c if (!(sdhci_readb(host, SDHCI_SOFTWARE_RESET) & mask)) host 222 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), (int)mask); host 223 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 231 drivers/mmc/host/sdhci.c static void sdhci_do_reset(struct sdhci_host *host, u8 mask) host 233 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_NO_CARD_NO_RESET) { host 234 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 240 drivers/mmc/host/sdhci.c host->ops->reset(host, mask); host 243 drivers/mmc/host/sdhci.c if (host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA)) { host 244 drivers/mmc/host/sdhci.c if (host->ops->enable_dma) host 245 drivers/mmc/host/sdhci.c host->ops->enable_dma(host); host 249 drivers/mmc/host/sdhci.c host->preset_enabled = false; host 253 drivers/mmc/host/sdhci.c static void sdhci_set_default_irqs(struct sdhci_host *host) host 255 drivers/mmc/host/sdhci.c host->ier = SDHCI_INT_BUS_POWER | SDHCI_INT_DATA_END_BIT | host 261 drivers/mmc/host/sdhci.c if (host->tuning_mode == SDHCI_TUNING_MODE_2 || host 262 drivers/mmc/host/sdhci.c host->tuning_mode == SDHCI_TUNING_MODE_3) host 263 drivers/mmc/host/sdhci.c host->ier |= SDHCI_INT_RETUNE; host 265 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 266 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 269 drivers/mmc/host/sdhci.c static void sdhci_config_dma(struct sdhci_host *host) host 274 drivers/mmc/host/sdhci.c if (host->version < SDHCI_SPEC_200) host 277 drivers/mmc/host/sdhci.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 285 drivers/mmc/host/sdhci.c if (!(host->flags & SDHCI_REQ_USE_DMA)) host 289 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_ADMA) host 292 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_64_BIT_DMA) { host 298 drivers/mmc/host/sdhci.c if (host->v4_mode) { host 299 drivers/mmc/host/sdhci.c ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 301 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2); host 302 drivers/mmc/host/sdhci.c } else if (host->flags & SDHCI_USE_ADMA) { host 312 drivers/mmc/host/sdhci.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 315 drivers/mmc/host/sdhci.c static void sdhci_init(struct sdhci_host *host, int soft) host 317 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 320 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); host 322 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_ALL); host 324 drivers/mmc/host/sdhci.c if (host->v4_mode) host 325 drivers/mmc/host/sdhci.c sdhci_do_enable_v4_mode(host); host 327 drivers/mmc/host/sdhci.c sdhci_set_default_irqs(host); host 329 drivers/mmc/host/sdhci.c host->cqe_on = false; host 333 drivers/mmc/host/sdhci.c host->clock = 0; host 338 drivers/mmc/host/sdhci.c static void sdhci_reinit(struct sdhci_host *host) host 340 drivers/mmc/host/sdhci.c sdhci_init(host, 0); host 341 drivers/mmc/host/sdhci.c sdhci_enable_card_detection(host); host 344 drivers/mmc/host/sdhci.c static void __sdhci_led_activate(struct sdhci_host *host) host 348 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_NO_LED) host 351 drivers/mmc/host/sdhci.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 353 drivers/mmc/host/sdhci.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 356 drivers/mmc/host/sdhci.c static void __sdhci_led_deactivate(struct sdhci_host *host) host 360 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_NO_LED) host 363 drivers/mmc/host/sdhci.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 365 drivers/mmc/host/sdhci.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 372 drivers/mmc/host/sdhci.c struct sdhci_host *host = container_of(led, struct sdhci_host, led); host 375 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 377 drivers/mmc/host/sdhci.c if (host->runtime_suspended) host 381 drivers/mmc/host/sdhci.c __sdhci_led_deactivate(host); host 383 drivers/mmc/host/sdhci.c __sdhci_led_activate(host); host 385 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 388 drivers/mmc/host/sdhci.c static int sdhci_led_register(struct sdhci_host *host) host 390 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 392 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_NO_LED) host 395 drivers/mmc/host/sdhci.c snprintf(host->led_name, sizeof(host->led_name), host 398 drivers/mmc/host/sdhci.c host->led.name = host->led_name; host 399 drivers/mmc/host/sdhci.c host->led.brightness = LED_OFF; host 400 drivers/mmc/host/sdhci.c host->led.default_trigger = mmc_hostname(mmc); host 401 drivers/mmc/host/sdhci.c host->led.brightness_set = sdhci_led_control; host 403 drivers/mmc/host/sdhci.c return led_classdev_register(mmc_dev(mmc), &host->led); host 406 drivers/mmc/host/sdhci.c static void sdhci_led_unregister(struct sdhci_host *host) host 408 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_NO_LED) host 411 drivers/mmc/host/sdhci.c led_classdev_unregister(&host->led); host 414 drivers/mmc/host/sdhci.c static inline void sdhci_led_activate(struct sdhci_host *host) host 418 drivers/mmc/host/sdhci.c static inline void sdhci_led_deactivate(struct sdhci_host *host) host 424 drivers/mmc/host/sdhci.c static inline int sdhci_led_register(struct sdhci_host *host) host 429 drivers/mmc/host/sdhci.c static inline void sdhci_led_unregister(struct sdhci_host *host) host 433 drivers/mmc/host/sdhci.c static inline void sdhci_led_activate(struct sdhci_host *host) host 435 drivers/mmc/host/sdhci.c __sdhci_led_activate(host); host 438 drivers/mmc/host/sdhci.c static inline void sdhci_led_deactivate(struct sdhci_host *host) host 440 drivers/mmc/host/sdhci.c __sdhci_led_deactivate(host); host 445 drivers/mmc/host/sdhci.c static void sdhci_mod_timer(struct sdhci_host *host, struct mmc_request *mrq, host 449 drivers/mmc/host/sdhci.c mod_timer(&host->data_timer, timeout); host 451 drivers/mmc/host/sdhci.c mod_timer(&host->timer, timeout); host 454 drivers/mmc/host/sdhci.c static void sdhci_del_timer(struct sdhci_host *host, struct mmc_request *mrq) host 457 drivers/mmc/host/sdhci.c del_timer(&host->data_timer); host 459 drivers/mmc/host/sdhci.c del_timer(&host->timer); host 462 drivers/mmc/host/sdhci.c static inline bool sdhci_has_requests(struct sdhci_host *host) host 464 drivers/mmc/host/sdhci.c return host->cmd || host->data_cmd; host 473 drivers/mmc/host/sdhci.c static void sdhci_read_block_pio(struct sdhci_host *host) host 482 drivers/mmc/host/sdhci.c blksize = host->data->blksz; host 488 drivers/mmc/host/sdhci.c BUG_ON(!sg_miter_next(&host->sg_miter)); host 490 drivers/mmc/host/sdhci.c len = min(host->sg_miter.length, blksize); host 493 drivers/mmc/host/sdhci.c host->sg_miter.consumed = len; host 495 drivers/mmc/host/sdhci.c buf = host->sg_miter.addr; host 499 drivers/mmc/host/sdhci.c scratch = sdhci_readl(host, SDHCI_BUFFER); host 512 drivers/mmc/host/sdhci.c sg_miter_stop(&host->sg_miter); host 517 drivers/mmc/host/sdhci.c static void sdhci_write_block_pio(struct sdhci_host *host) host 526 drivers/mmc/host/sdhci.c blksize = host->data->blksz; host 533 drivers/mmc/host/sdhci.c BUG_ON(!sg_miter_next(&host->sg_miter)); host 535 drivers/mmc/host/sdhci.c len = min(host->sg_miter.length, blksize); host 538 drivers/mmc/host/sdhci.c host->sg_miter.consumed = len; host 540 drivers/mmc/host/sdhci.c buf = host->sg_miter.addr; host 550 drivers/mmc/host/sdhci.c sdhci_writel(host, scratch, SDHCI_BUFFER); host 557 drivers/mmc/host/sdhci.c sg_miter_stop(&host->sg_miter); host 562 drivers/mmc/host/sdhci.c static void sdhci_transfer_pio(struct sdhci_host *host) host 566 drivers/mmc/host/sdhci.c if (host->blocks == 0) host 569 drivers/mmc/host/sdhci.c if (host->data->flags & MMC_DATA_READ) host 579 drivers/mmc/host/sdhci.c if ((host->quirks & SDHCI_QUIRK_BROKEN_SMALL_PIO) && host 580 drivers/mmc/host/sdhci.c (host->data->blocks == 1)) host 583 drivers/mmc/host/sdhci.c while (sdhci_readl(host, SDHCI_PRESENT_STATE) & mask) { host 584 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_PIO_NEEDS_DELAY) host 587 drivers/mmc/host/sdhci.c if (host->data->flags & MMC_DATA_READ) host 588 drivers/mmc/host/sdhci.c sdhci_read_block_pio(host); host 590 drivers/mmc/host/sdhci.c sdhci_write_block_pio(host); host 592 drivers/mmc/host/sdhci.c host->blocks--; host 593 drivers/mmc/host/sdhci.c if (host->blocks == 0) host 600 drivers/mmc/host/sdhci.c static int sdhci_pre_dma_transfer(struct sdhci_host *host, host 613 drivers/mmc/host/sdhci.c if (host->bounce_buffer) { host 616 drivers/mmc/host/sdhci.c if (length > host->bounce_buffer_size) { host 618 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), length, host 619 drivers/mmc/host/sdhci.c host->bounce_buffer_size); host 625 drivers/mmc/host/sdhci.c host->bounce_buffer, host 629 drivers/mmc/host/sdhci.c dma_sync_single_for_device(host->mmc->parent, host 630 drivers/mmc/host/sdhci.c host->bounce_addr, host 631 drivers/mmc/host/sdhci.c host->bounce_buffer_size, host 637 drivers/mmc/host/sdhci.c sg_count = dma_map_sg(mmc_dev(host->mmc), host 663 drivers/mmc/host/sdhci.c void sdhci_adma_write_desc(struct sdhci_host *host, void **desc, host 673 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_64_BIT_DMA) host 676 drivers/mmc/host/sdhci.c *desc += host->desc_sz; host 680 drivers/mmc/host/sdhci.c static inline void __sdhci_adma_write_desc(struct sdhci_host *host, host 684 drivers/mmc/host/sdhci.c if (host->ops->adma_write_desc) host 685 drivers/mmc/host/sdhci.c host->ops->adma_write_desc(host, desc, addr, len, cmd); host 687 drivers/mmc/host/sdhci.c sdhci_adma_write_desc(host, desc, addr, len, cmd); host 698 drivers/mmc/host/sdhci.c static void sdhci_adma_table_pre(struct sdhci_host *host, host 713 drivers/mmc/host/sdhci.c host->sg_count = sg_count; host 715 drivers/mmc/host/sdhci.c desc = host->adma_table; host 716 drivers/mmc/host/sdhci.c align = host->align_buffer; host 718 drivers/mmc/host/sdhci.c align_addr = host->align_addr; host 720 drivers/mmc/host/sdhci.c for_each_sg(data->sg, sg, host->sg_count, i) { host 740 drivers/mmc/host/sdhci.c __sdhci_adma_write_desc(host, &desc, align_addr, host 756 drivers/mmc/host/sdhci.c __sdhci_adma_write_desc(host, &desc, addr, len, host 763 drivers/mmc/host/sdhci.c WARN_ON((desc - host->adma_table) >= host->adma_table_sz); host 766 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC) { host 768 drivers/mmc/host/sdhci.c if (desc != host->adma_table) { host 769 drivers/mmc/host/sdhci.c desc -= host->desc_sz; host 774 drivers/mmc/host/sdhci.c __sdhci_adma_write_desc(host, &desc, 0, 0, ADMA2_NOP_END_VALID); host 778 drivers/mmc/host/sdhci.c static void sdhci_adma_table_post(struct sdhci_host *host, host 791 drivers/mmc/host/sdhci.c for_each_sg(data->sg, sg, host->sg_count, i) host 798 drivers/mmc/host/sdhci.c dma_sync_sg_for_cpu(mmc_dev(host->mmc), data->sg, host 801 drivers/mmc/host/sdhci.c align = host->align_buffer; host 803 drivers/mmc/host/sdhci.c for_each_sg(data->sg, sg, host->sg_count, i) { host 819 drivers/mmc/host/sdhci.c static void sdhci_set_adma_addr(struct sdhci_host *host, dma_addr_t addr) host 821 drivers/mmc/host/sdhci.c sdhci_writel(host, lower_32_bits(addr), SDHCI_ADMA_ADDRESS); host 822 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_64_BIT_DMA) host 823 drivers/mmc/host/sdhci.c sdhci_writel(host, upper_32_bits(addr), SDHCI_ADMA_ADDRESS_HI); host 826 drivers/mmc/host/sdhci.c static dma_addr_t sdhci_sdma_address(struct sdhci_host *host) host 828 drivers/mmc/host/sdhci.c if (host->bounce_buffer) host 829 drivers/mmc/host/sdhci.c return host->bounce_addr; host 831 drivers/mmc/host/sdhci.c return sg_dma_address(host->data->sg); host 834 drivers/mmc/host/sdhci.c static void sdhci_set_sdma_addr(struct sdhci_host *host, dma_addr_t addr) host 836 drivers/mmc/host/sdhci.c if (host->v4_mode) host 837 drivers/mmc/host/sdhci.c sdhci_set_adma_addr(host, addr); host 839 drivers/mmc/host/sdhci.c sdhci_writel(host, addr, SDHCI_DMA_ADDRESS); host 842 drivers/mmc/host/sdhci.c static unsigned int sdhci_target_timeout(struct sdhci_host *host, host 853 drivers/mmc/host/sdhci.c if (host->clock && data->timeout_clks) { host 862 drivers/mmc/host/sdhci.c if (do_div(val, host->clock)) host 871 drivers/mmc/host/sdhci.c static void sdhci_calc_sw_timeout(struct sdhci_host *host, host 875 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 883 drivers/mmc/host/sdhci.c target_timeout = sdhci_target_timeout(host, cmd, data); host 888 drivers/mmc/host/sdhci.c freq = host->mmc->actual_clock ? : host->clock; host 894 drivers/mmc/host/sdhci.c host->data_timeout = data->blocks * target_timeout + host 897 drivers/mmc/host/sdhci.c host->data_timeout = target_timeout; host 900 drivers/mmc/host/sdhci.c if (host->data_timeout) host 901 drivers/mmc/host/sdhci.c host->data_timeout += MMC_CMD_TRANSFER_TIME; host 904 drivers/mmc/host/sdhci.c static u8 sdhci_calc_timeout(struct sdhci_host *host, struct mmc_command *cmd, host 919 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_BROKEN_TIMEOUT_VAL) host 932 drivers/mmc/host/sdhci.c target_timeout = sdhci_target_timeout(host, cmd, data); host 945 drivers/mmc/host/sdhci.c current_timeout = (1 << 13) * 1000 / host->timeout_clk; host 954 drivers/mmc/host/sdhci.c if (!(host->quirks2 & SDHCI_QUIRK2_DISABLE_HW_TIMEOUT)) host 965 drivers/mmc/host/sdhci.c static void sdhci_set_transfer_irqs(struct sdhci_host *host) host 970 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_REQ_USE_DMA) host 971 drivers/mmc/host/sdhci.c host->ier = (host->ier & ~pio_irqs) | dma_irqs; host 973 drivers/mmc/host/sdhci.c host->ier = (host->ier & ~dma_irqs) | pio_irqs; host 975 drivers/mmc/host/sdhci.c if (host->flags & (SDHCI_AUTO_CMD23 | SDHCI_AUTO_CMD12)) host 976 drivers/mmc/host/sdhci.c host->ier |= SDHCI_INT_AUTO_CMD_ERR; host 978 drivers/mmc/host/sdhci.c host->ier &= ~SDHCI_INT_AUTO_CMD_ERR; host 980 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 981 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 984 drivers/mmc/host/sdhci.c void sdhci_set_data_timeout_irq(struct sdhci_host *host, bool enable) host 987 drivers/mmc/host/sdhci.c host->ier |= SDHCI_INT_DATA_TIMEOUT; host 989 drivers/mmc/host/sdhci.c host->ier &= ~SDHCI_INT_DATA_TIMEOUT; host 990 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 991 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 995 drivers/mmc/host/sdhci.c void __sdhci_set_timeout(struct sdhci_host *host, struct mmc_command *cmd) host 998 drivers/mmc/host/sdhci.c u8 count = sdhci_calc_timeout(host, cmd, &too_big); host 1001 drivers/mmc/host/sdhci.c host->quirks2 & SDHCI_QUIRK2_DISABLE_HW_TIMEOUT) { host 1002 drivers/mmc/host/sdhci.c sdhci_calc_sw_timeout(host, cmd); host 1003 drivers/mmc/host/sdhci.c sdhci_set_data_timeout_irq(host, false); host 1004 drivers/mmc/host/sdhci.c } else if (!(host->ier & SDHCI_INT_DATA_TIMEOUT)) { host 1005 drivers/mmc/host/sdhci.c sdhci_set_data_timeout_irq(host, true); host 1008 drivers/mmc/host/sdhci.c sdhci_writeb(host, count, SDHCI_TIMEOUT_CONTROL); host 1012 drivers/mmc/host/sdhci.c static void sdhci_set_timeout(struct sdhci_host *host, struct mmc_command *cmd) host 1014 drivers/mmc/host/sdhci.c if (host->ops->set_timeout) host 1015 drivers/mmc/host/sdhci.c host->ops->set_timeout(host, cmd); host 1017 drivers/mmc/host/sdhci.c __sdhci_set_timeout(host, cmd); host 1020 drivers/mmc/host/sdhci.c static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd) host 1024 drivers/mmc/host/sdhci.c host->data_timeout = 0; host 1027 drivers/mmc/host/sdhci.c sdhci_set_timeout(host, cmd); host 1032 drivers/mmc/host/sdhci.c WARN_ON(host->data); host 1036 drivers/mmc/host/sdhci.c BUG_ON(data->blksz > host->mmc->max_blk_size); host 1039 drivers/mmc/host/sdhci.c host->data = data; host 1040 drivers/mmc/host/sdhci.c host->data_early = 0; host 1041 drivers/mmc/host/sdhci.c host->data->bytes_xfered = 0; host 1043 drivers/mmc/host/sdhci.c if (host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA)) { host 1048 drivers/mmc/host/sdhci.c host->flags |= SDHCI_REQ_USE_DMA; host 1059 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_ADMA) { host 1060 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_32BIT_ADMA_SIZE) { host 1070 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_32BIT_DMA_SIZE) host 1072 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_32BIT_DMA_ADDR) host 1081 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_REQ_USE_DMA; host 1086 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_REQ_USE_DMA; host 1093 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_REQ_USE_DMA) { host 1094 drivers/mmc/host/sdhci.c int sg_cnt = sdhci_pre_dma_transfer(host, data, COOKIE_MAPPED); host 1102 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_REQ_USE_DMA; host 1103 drivers/mmc/host/sdhci.c } else if (host->flags & SDHCI_USE_ADMA) { host 1104 drivers/mmc/host/sdhci.c sdhci_adma_table_pre(host, data, sg_cnt); host 1105 drivers/mmc/host/sdhci.c sdhci_set_adma_addr(host, host->adma_addr); host 1108 drivers/mmc/host/sdhci.c sdhci_set_sdma_addr(host, sdhci_sdma_address(host)); host 1112 drivers/mmc/host/sdhci.c sdhci_config_dma(host); host 1114 drivers/mmc/host/sdhci.c if (!(host->flags & SDHCI_REQ_USE_DMA)) { host 1118 drivers/mmc/host/sdhci.c if (host->data->flags & MMC_DATA_READ) host 1122 drivers/mmc/host/sdhci.c sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags); host 1123 drivers/mmc/host/sdhci.c host->blocks = data->blocks; host 1126 drivers/mmc/host/sdhci.c sdhci_set_transfer_irqs(host); host 1129 drivers/mmc/host/sdhci.c sdhci_writew(host, SDHCI_MAKE_BLKSZ(host->sdma_boundary, data->blksz), host 1136 drivers/mmc/host/sdhci.c if (host->version >= SDHCI_SPEC_410 && host->v4_mode && host 1137 drivers/mmc/host/sdhci.c (host->quirks2 & SDHCI_QUIRK2_USE_32BIT_BLK_CNT)) { host 1138 drivers/mmc/host/sdhci.c if (sdhci_readw(host, SDHCI_BLOCK_COUNT)) host 1139 drivers/mmc/host/sdhci.c sdhci_writew(host, 0, SDHCI_BLOCK_COUNT); host 1140 drivers/mmc/host/sdhci.c sdhci_writew(host, data->blocks, SDHCI_32BIT_BLK_CNT); host 1142 drivers/mmc/host/sdhci.c sdhci_writew(host, data->blocks, SDHCI_BLOCK_COUNT); host 1146 drivers/mmc/host/sdhci.c static inline bool sdhci_auto_cmd12(struct sdhci_host *host, host 1149 drivers/mmc/host/sdhci.c return !mrq->sbc && (host->flags & SDHCI_AUTO_CMD12) && host 1153 drivers/mmc/host/sdhci.c static inline void sdhci_auto_cmd_select(struct sdhci_host *host, host 1157 drivers/mmc/host/sdhci.c bool use_cmd12 = sdhci_auto_cmd12(host, cmd->mrq) && host 1159 drivers/mmc/host/sdhci.c bool use_cmd23 = cmd->mrq->sbc && (host->flags & SDHCI_AUTO_CMD23); host 1167 drivers/mmc/host/sdhci.c if (host->version >= SDHCI_SPEC_410 && (use_cmd12 || use_cmd23)) { host 1170 drivers/mmc/host/sdhci.c ctrl2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 1175 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl2, SDHCI_HOST_CONTROL2); host 1190 drivers/mmc/host/sdhci.c static void sdhci_set_transfer_mode(struct sdhci_host *host, host 1197 drivers/mmc/host/sdhci.c if (host->quirks2 & host 1201 drivers/mmc/host/sdhci.c sdhci_writew(host, 0x0, SDHCI_TRANSFER_MODE); host 1204 drivers/mmc/host/sdhci.c mode = sdhci_readw(host, SDHCI_TRANSFER_MODE); host 1205 drivers/mmc/host/sdhci.c sdhci_writew(host, mode & ~(SDHCI_TRNS_AUTO_CMD12 | host 1211 drivers/mmc/host/sdhci.c WARN_ON(!host->data); host 1213 drivers/mmc/host/sdhci.c if (!(host->quirks2 & SDHCI_QUIRK2_SUPPORT_SINGLE)) host 1218 drivers/mmc/host/sdhci.c sdhci_auto_cmd_select(host, cmd, &mode); host 1219 drivers/mmc/host/sdhci.c if (cmd->mrq->sbc && (host->flags & SDHCI_AUTO_CMD23)) host 1220 drivers/mmc/host/sdhci.c sdhci_writel(host, cmd->mrq->sbc->arg, SDHCI_ARGUMENT2); host 1225 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_REQ_USE_DMA) host 1228 drivers/mmc/host/sdhci.c sdhci_writew(host, mode, SDHCI_TRANSFER_MODE); host 1231 drivers/mmc/host/sdhci.c static bool sdhci_needs_reset(struct sdhci_host *host, struct mmc_request *mrq) host 1233 drivers/mmc/host/sdhci.c return (!(host->flags & SDHCI_DEVICE_DEAD) && host 1237 drivers/mmc/host/sdhci.c (host->quirks & SDHCI_QUIRK_RESET_AFTER_REQUEST))); host 1240 drivers/mmc/host/sdhci.c static void __sdhci_finish_mrq(struct sdhci_host *host, struct mmc_request *mrq) host 1244 drivers/mmc/host/sdhci.c if (host->cmd && host->cmd->mrq == mrq) host 1245 drivers/mmc/host/sdhci.c host->cmd = NULL; host 1247 drivers/mmc/host/sdhci.c if (host->data_cmd && host->data_cmd->mrq == mrq) host 1248 drivers/mmc/host/sdhci.c host->data_cmd = NULL; host 1250 drivers/mmc/host/sdhci.c if (host->data && host->data->mrq == mrq) host 1251 drivers/mmc/host/sdhci.c host->data = NULL; host 1253 drivers/mmc/host/sdhci.c if (sdhci_needs_reset(host, mrq)) host 1254 drivers/mmc/host/sdhci.c host->pending_reset = true; host 1257 drivers/mmc/host/sdhci.c if (host->mrqs_done[i] == mrq) { host 1264 drivers/mmc/host/sdhci.c if (!host->mrqs_done[i]) { host 1265 drivers/mmc/host/sdhci.c host->mrqs_done[i] = mrq; host 1272 drivers/mmc/host/sdhci.c sdhci_del_timer(host, mrq); host 1274 drivers/mmc/host/sdhci.c if (!sdhci_has_requests(host)) host 1275 drivers/mmc/host/sdhci.c sdhci_led_deactivate(host); host 1278 drivers/mmc/host/sdhci.c static void sdhci_finish_mrq(struct sdhci_host *host, struct mmc_request *mrq) host 1280 drivers/mmc/host/sdhci.c __sdhci_finish_mrq(host, mrq); host 1282 drivers/mmc/host/sdhci.c queue_work(host->complete_wq, &host->complete_work); host 1285 drivers/mmc/host/sdhci.c static void sdhci_finish_data(struct sdhci_host *host) host 1287 drivers/mmc/host/sdhci.c struct mmc_command *data_cmd = host->data_cmd; host 1288 drivers/mmc/host/sdhci.c struct mmc_data *data = host->data; host 1290 drivers/mmc/host/sdhci.c host->data = NULL; host 1291 drivers/mmc/host/sdhci.c host->data_cmd = NULL; host 1298 drivers/mmc/host/sdhci.c if (!host->cmd || host->cmd == data_cmd) host 1299 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_CMD); host 1300 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_DATA); host 1303 drivers/mmc/host/sdhci.c if ((host->flags & (SDHCI_REQ_USE_DMA | SDHCI_USE_ADMA)) == host 1305 drivers/mmc/host/sdhci.c sdhci_adma_table_post(host, data); host 1333 drivers/mmc/host/sdhci.c __sdhci_finish_mrq(host, data->mrq); host 1336 drivers/mmc/host/sdhci.c host->cmd = NULL; host 1337 drivers/mmc/host/sdhci.c sdhci_send_command(host, data->stop); host 1340 drivers/mmc/host/sdhci.c __sdhci_finish_mrq(host, data->mrq); host 1344 drivers/mmc/host/sdhci.c void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd) host 1350 drivers/mmc/host/sdhci.c WARN_ON(host->cmd); host 1355 drivers/mmc/host/sdhci.c if ((host->quirks2 & SDHCI_QUIRK2_STOP_WITH_TC) && host 1371 drivers/mmc/host/sdhci.c while (sdhci_readl(host, SDHCI_PRESENT_STATE) & mask) { host 1374 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 1375 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 1377 drivers/mmc/host/sdhci.c sdhci_finish_mrq(host, cmd->mrq); host 1384 drivers/mmc/host/sdhci.c host->cmd = cmd; host 1386 drivers/mmc/host/sdhci.c WARN_ON(host->data_cmd); host 1387 drivers/mmc/host/sdhci.c host->data_cmd = cmd; host 1390 drivers/mmc/host/sdhci.c sdhci_prepare_data(host, cmd); host 1392 drivers/mmc/host/sdhci.c sdhci_writel(host, cmd->arg, SDHCI_ARGUMENT); host 1394 drivers/mmc/host/sdhci.c sdhci_set_transfer_mode(host, cmd); host 1398 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 1400 drivers/mmc/host/sdhci.c sdhci_finish_mrq(host, cmd->mrq); host 1424 drivers/mmc/host/sdhci.c if (host->data_timeout) host 1425 drivers/mmc/host/sdhci.c timeout += nsecs_to_jiffies(host->data_timeout); host 1430 drivers/mmc/host/sdhci.c sdhci_mod_timer(host, cmd->mrq, timeout); host 1432 drivers/mmc/host/sdhci.c sdhci_writew(host, SDHCI_MAKE_CMD(cmd->opcode, flags), SDHCI_COMMAND); host 1436 drivers/mmc/host/sdhci.c static void sdhci_read_rsp_136(struct sdhci_host *host, struct mmc_command *cmd) host 1442 drivers/mmc/host/sdhci.c cmd->resp[i] = sdhci_readl(host, reg); host 1445 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_RSP_136_HAS_CRC) host 1456 drivers/mmc/host/sdhci.c static void sdhci_finish_command(struct sdhci_host *host) host 1458 drivers/mmc/host/sdhci.c struct mmc_command *cmd = host->cmd; host 1460 drivers/mmc/host/sdhci.c host->cmd = NULL; host 1464 drivers/mmc/host/sdhci.c sdhci_read_rsp_136(host, cmd); host 1466 drivers/mmc/host/sdhci.c cmd->resp[0] = sdhci_readl(host, SDHCI_RESPONSE); host 1471 drivers/mmc/host/sdhci.c mmc_command_done(host->mmc, cmd->mrq); host 1486 drivers/mmc/host/sdhci.c } else if (!(host->quirks & SDHCI_QUIRK_NO_BUSY_IRQ) && host 1487 drivers/mmc/host/sdhci.c cmd == host->data_cmd) { host 1495 drivers/mmc/host/sdhci.c sdhci_send_command(host, cmd->mrq->cmd); host 1499 drivers/mmc/host/sdhci.c if (host->data && host->data_early) host 1500 drivers/mmc/host/sdhci.c sdhci_finish_data(host); host 1503 drivers/mmc/host/sdhci.c __sdhci_finish_mrq(host, cmd->mrq); host 1507 drivers/mmc/host/sdhci.c static u16 sdhci_get_preset_value(struct sdhci_host *host) host 1511 drivers/mmc/host/sdhci.c switch (host->timing) { host 1513 drivers/mmc/host/sdhci.c preset = sdhci_readw(host, SDHCI_PRESET_FOR_SDR12); host 1516 drivers/mmc/host/sdhci.c preset = sdhci_readw(host, SDHCI_PRESET_FOR_SDR25); host 1519 drivers/mmc/host/sdhci.c preset = sdhci_readw(host, SDHCI_PRESET_FOR_SDR50); host 1523 drivers/mmc/host/sdhci.c preset = sdhci_readw(host, SDHCI_PRESET_FOR_SDR104); host 1527 drivers/mmc/host/sdhci.c preset = sdhci_readw(host, SDHCI_PRESET_FOR_DDR50); host 1530 drivers/mmc/host/sdhci.c preset = sdhci_readw(host, SDHCI_PRESET_FOR_HS400); host 1534 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 1535 drivers/mmc/host/sdhci.c preset = sdhci_readw(host, SDHCI_PRESET_FOR_SDR12); host 1541 drivers/mmc/host/sdhci.c u16 sdhci_calc_clk(struct sdhci_host *host, unsigned int clock, host 1549 drivers/mmc/host/sdhci.c if (host->version >= SDHCI_SPEC_300) { host 1550 drivers/mmc/host/sdhci.c if (host->preset_enabled) { host 1553 drivers/mmc/host/sdhci.c clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 1554 drivers/mmc/host/sdhci.c pre_val = sdhci_get_preset_value(host); host 1557 drivers/mmc/host/sdhci.c if (host->clk_mul && host 1561 drivers/mmc/host/sdhci.c clk_mul = host->clk_mul; host 1572 drivers/mmc/host/sdhci.c if (host->clk_mul) { host 1574 drivers/mmc/host/sdhci.c if ((host->max_clk * host->clk_mul / div) host 1578 drivers/mmc/host/sdhci.c if ((host->max_clk * host->clk_mul / div) <= clock) { host 1585 drivers/mmc/host/sdhci.c clk_mul = host->clk_mul; host 1596 drivers/mmc/host/sdhci.c if (!host->clk_mul || switch_base_clk) { host 1598 drivers/mmc/host/sdhci.c if (host->max_clk <= clock) host 1603 drivers/mmc/host/sdhci.c if ((host->max_clk / div) <= clock) host 1609 drivers/mmc/host/sdhci.c if ((host->quirks2 & SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN) host 1610 drivers/mmc/host/sdhci.c && !div && host->max_clk <= 25000000) host 1616 drivers/mmc/host/sdhci.c if ((host->max_clk / div) <= clock) host 1625 drivers/mmc/host/sdhci.c *actual_clock = (host->max_clk * clk_mul) / real_div; host 1634 drivers/mmc/host/sdhci.c void sdhci_enable_clk(struct sdhci_host *host, u16 clk) host 1639 drivers/mmc/host/sdhci.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 1646 drivers/mmc/host/sdhci.c clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 1651 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 1652 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 1658 drivers/mmc/host/sdhci.c if (host->version >= SDHCI_SPEC_410 && host->v4_mode) { host 1661 drivers/mmc/host/sdhci.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 1668 drivers/mmc/host/sdhci.c clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 1673 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 1674 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 1682 drivers/mmc/host/sdhci.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 1686 drivers/mmc/host/sdhci.c void sdhci_set_clock(struct sdhci_host *host, unsigned int clock) host 1690 drivers/mmc/host/sdhci.c host->mmc->actual_clock = 0; host 1692 drivers/mmc/host/sdhci.c sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL); host 1697 drivers/mmc/host/sdhci.c clk = sdhci_calc_clk(host, clock, &host->mmc->actual_clock); host 1698 drivers/mmc/host/sdhci.c sdhci_enable_clk(host, clk); host 1702 drivers/mmc/host/sdhci.c static void sdhci_set_power_reg(struct sdhci_host *host, unsigned char mode, host 1705 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 1710 drivers/mmc/host/sdhci.c sdhci_writeb(host, SDHCI_POWER_ON, SDHCI_POWER_CONTROL); host 1712 drivers/mmc/host/sdhci.c sdhci_writeb(host, 0, SDHCI_POWER_CONTROL); host 1715 drivers/mmc/host/sdhci.c void sdhci_set_power_noreg(struct sdhci_host *host, unsigned char mode, host 1742 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), vdd); host 1747 drivers/mmc/host/sdhci.c if (host->pwr == pwr) host 1750 drivers/mmc/host/sdhci.c host->pwr = pwr; host 1753 drivers/mmc/host/sdhci.c sdhci_writeb(host, 0, SDHCI_POWER_CONTROL); host 1754 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON) host 1755 drivers/mmc/host/sdhci.c sdhci_runtime_pm_bus_off(host); host 1761 drivers/mmc/host/sdhci.c if (!(host->quirks & SDHCI_QUIRK_SINGLE_POWER_WRITE)) host 1762 drivers/mmc/host/sdhci.c sdhci_writeb(host, 0, SDHCI_POWER_CONTROL); host 1769 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER) host 1770 drivers/mmc/host/sdhci.c sdhci_writeb(host, pwr, SDHCI_POWER_CONTROL); host 1774 drivers/mmc/host/sdhci.c sdhci_writeb(host, pwr, SDHCI_POWER_CONTROL); host 1776 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON) host 1777 drivers/mmc/host/sdhci.c sdhci_runtime_pm_bus_on(host); host 1783 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_DELAY_AFTER_POWER) host 1789 drivers/mmc/host/sdhci.c void sdhci_set_power(struct sdhci_host *host, unsigned char mode, host 1792 drivers/mmc/host/sdhci.c if (IS_ERR(host->mmc->supply.vmmc)) host 1793 drivers/mmc/host/sdhci.c sdhci_set_power_noreg(host, mode, vdd); host 1795 drivers/mmc/host/sdhci.c sdhci_set_power_reg(host, mode, vdd); host 1807 drivers/mmc/host/sdhci.c struct sdhci_host *host; host 1811 drivers/mmc/host/sdhci.c host = mmc_priv(mmc); host 1816 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 1818 drivers/mmc/host/sdhci.c sdhci_led_activate(host); host 1824 drivers/mmc/host/sdhci.c if (sdhci_auto_cmd12(host, mrq)) { host 1831 drivers/mmc/host/sdhci.c if (!present || host->flags & SDHCI_DEVICE_DEAD) { host 1833 drivers/mmc/host/sdhci.c sdhci_finish_mrq(host, mrq); host 1835 drivers/mmc/host/sdhci.c if (mrq->sbc && !(host->flags & SDHCI_AUTO_CMD23)) host 1836 drivers/mmc/host/sdhci.c sdhci_send_command(host, mrq->sbc); host 1838 drivers/mmc/host/sdhci.c sdhci_send_command(host, mrq->cmd); host 1841 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 1845 drivers/mmc/host/sdhci.c void sdhci_set_bus_width(struct sdhci_host *host, int width) host 1849 drivers/mmc/host/sdhci.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 1854 drivers/mmc/host/sdhci.c if (host->mmc->caps & MMC_CAP_8_BIT_DATA) host 1861 drivers/mmc/host/sdhci.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 1865 drivers/mmc/host/sdhci.c void sdhci_set_uhs_signaling(struct sdhci_host *host, unsigned timing) host 1869 drivers/mmc/host/sdhci.c ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 1886 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); host 1892 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 1898 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_DEVICE_DEAD) { host 1910 drivers/mmc/host/sdhci.c sdhci_writel(host, 0, SDHCI_SIGNAL_ENABLE); host 1911 drivers/mmc/host/sdhci.c sdhci_reinit(host); host 1914 drivers/mmc/host/sdhci.c if (host->version >= SDHCI_SPEC_300 && host 1916 drivers/mmc/host/sdhci.c !(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN)) host 1917 drivers/mmc/host/sdhci.c sdhci_enable_preset_value(host, false); host 1919 drivers/mmc/host/sdhci.c if (!ios->clock || ios->clock != host->clock) { host 1920 drivers/mmc/host/sdhci.c host->ops->set_clock(host, ios->clock); host 1921 drivers/mmc/host/sdhci.c host->clock = ios->clock; host 1923 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK && host 1924 drivers/mmc/host/sdhci.c host->clock) { host 1925 drivers/mmc/host/sdhci.c host->timeout_clk = host->mmc->actual_clock ? host 1926 drivers/mmc/host/sdhci.c host->mmc->actual_clock / 1000 : host 1927 drivers/mmc/host/sdhci.c host->clock / 1000; host 1928 drivers/mmc/host/sdhci.c host->mmc->max_busy_timeout = host 1929 drivers/mmc/host/sdhci.c host->ops->get_max_timeout_count ? host 1930 drivers/mmc/host/sdhci.c host->ops->get_max_timeout_count(host) : host 1932 drivers/mmc/host/sdhci.c host->mmc->max_busy_timeout /= host->timeout_clk; host 1936 drivers/mmc/host/sdhci.c if (host->ops->set_power) host 1937 drivers/mmc/host/sdhci.c host->ops->set_power(host, ios->power_mode, ios->vdd); host 1939 drivers/mmc/host/sdhci.c sdhci_set_power(host, ios->power_mode, ios->vdd); host 1941 drivers/mmc/host/sdhci.c if (host->ops->platform_send_init_74_clocks) host 1942 drivers/mmc/host/sdhci.c host->ops->platform_send_init_74_clocks(host, ios->power_mode); host 1944 drivers/mmc/host/sdhci.c host->ops->set_bus_width(host, ios->bus_width); host 1946 drivers/mmc/host/sdhci.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 1948 drivers/mmc/host/sdhci.c if (!(host->quirks & SDHCI_QUIRK_NO_HISPD_BIT)) { host 1963 drivers/mmc/host/sdhci.c if (host->version >= SDHCI_SPEC_300) { host 1966 drivers/mmc/host/sdhci.c if (!host->preset_enabled) { host 1967 drivers/mmc/host/sdhci.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 1972 drivers/mmc/host/sdhci.c ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 1988 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); host 1998 drivers/mmc/host/sdhci.c clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 2000 drivers/mmc/host/sdhci.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 2002 drivers/mmc/host/sdhci.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 2005 drivers/mmc/host/sdhci.c host->ops->set_clock(host, host->clock); host 2009 drivers/mmc/host/sdhci.c clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL); host 2011 drivers/mmc/host/sdhci.c sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL); host 2013 drivers/mmc/host/sdhci.c host->ops->set_uhs_signaling(host, ios->timing); host 2014 drivers/mmc/host/sdhci.c host->timing = ios->timing; host 2016 drivers/mmc/host/sdhci.c if (!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN) && host 2025 drivers/mmc/host/sdhci.c sdhci_enable_preset_value(host, true); host 2026 drivers/mmc/host/sdhci.c preset = sdhci_get_preset_value(host); host 2032 drivers/mmc/host/sdhci.c host->ops->set_clock(host, host->clock); host 2034 drivers/mmc/host/sdhci.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 2041 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_RESET_CMD_DATA_ON_IOS) host 2042 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); host 2048 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2051 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_DEVICE_DEAD) host 2055 drivers/mmc/host/sdhci.c if (!mmc_card_is_removable(host->mmc)) host 2066 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) host 2070 drivers/mmc/host/sdhci.c return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); host 2073 drivers/mmc/host/sdhci.c static int sdhci_check_ro(struct sdhci_host *host) host 2078 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2080 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_DEVICE_DEAD) host 2082 drivers/mmc/host/sdhci.c else if (host->ops->get_ro) host 2083 drivers/mmc/host/sdhci.c is_readonly = host->ops->get_ro(host); host 2084 drivers/mmc/host/sdhci.c else if (mmc_can_gpio_ro(host->mmc)) host 2085 drivers/mmc/host/sdhci.c is_readonly = mmc_gpio_get_ro(host->mmc); host 2087 drivers/mmc/host/sdhci.c is_readonly = !(sdhci_readl(host, SDHCI_PRESENT_STATE) host 2090 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2093 drivers/mmc/host/sdhci.c return host->quirks & SDHCI_QUIRK_INVERTED_WRITE_PROTECT ? host 2101 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2104 drivers/mmc/host/sdhci.c if (!(host->quirks & SDHCI_QUIRK_UNSTABLE_RO_DETECT)) host 2105 drivers/mmc/host/sdhci.c return sdhci_check_ro(host); host 2109 drivers/mmc/host/sdhci.c if (sdhci_check_ro(host)) { host 2120 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2122 drivers/mmc/host/sdhci.c if (host->ops && host->ops->hw_reset) host 2123 drivers/mmc/host/sdhci.c host->ops->hw_reset(host); host 2126 drivers/mmc/host/sdhci.c static void sdhci_enable_sdio_irq_nolock(struct sdhci_host *host, int enable) host 2128 drivers/mmc/host/sdhci.c if (!(host->flags & SDHCI_DEVICE_DEAD)) { host 2130 drivers/mmc/host/sdhci.c host->ier |= SDHCI_INT_CARD_INT; host 2132 drivers/mmc/host/sdhci.c host->ier &= ~SDHCI_INT_CARD_INT; host 2134 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 2135 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 2141 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2145 drivers/mmc/host/sdhci.c pm_runtime_get_noresume(host->mmc->parent); host 2147 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2148 drivers/mmc/host/sdhci.c sdhci_enable_sdio_irq_nolock(host, enable); host 2149 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2152 drivers/mmc/host/sdhci.c pm_runtime_put_noidle(host->mmc->parent); host 2158 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2161 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2162 drivers/mmc/host/sdhci.c sdhci_enable_sdio_irq_nolock(host, true); host 2163 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2169 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2177 drivers/mmc/host/sdhci.c if (host->version < SDHCI_SPEC_300) host 2180 drivers/mmc/host/sdhci.c ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 2184 drivers/mmc/host/sdhci.c if (!(host->flags & SDHCI_SIGNALING_330)) host 2188 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2); host 2202 drivers/mmc/host/sdhci.c ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 2211 drivers/mmc/host/sdhci.c if (!(host->flags & SDHCI_SIGNALING_180)) host 2227 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2); host 2230 drivers/mmc/host/sdhci.c if (host->ops->voltage_switch) host 2231 drivers/mmc/host/sdhci.c host->ops->voltage_switch(host); host 2234 drivers/mmc/host/sdhci.c ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 2243 drivers/mmc/host/sdhci.c if (!(host->flags & SDHCI_SIGNALING_120)) host 2263 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2267 drivers/mmc/host/sdhci.c present_state = sdhci_readl(host, SDHCI_PRESENT_STATE); host 2274 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2277 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2278 drivers/mmc/host/sdhci.c host->flags |= SDHCI_HS400_TUNING; host 2279 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2284 drivers/mmc/host/sdhci.c void sdhci_start_tuning(struct sdhci_host *host) host 2288 drivers/mmc/host/sdhci.c ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 2290 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_TUNING_WORK_AROUND) host 2292 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2); host 2304 drivers/mmc/host/sdhci.c sdhci_writel(host, SDHCI_INT_DATA_AVAIL, SDHCI_INT_ENABLE); host 2305 drivers/mmc/host/sdhci.c sdhci_writel(host, SDHCI_INT_DATA_AVAIL, SDHCI_SIGNAL_ENABLE); host 2309 drivers/mmc/host/sdhci.c void sdhci_end_tuning(struct sdhci_host *host) host 2311 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 2312 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 2316 drivers/mmc/host/sdhci.c void sdhci_reset_tuning(struct sdhci_host *host) host 2320 drivers/mmc/host/sdhci.c ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 2323 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2); host 2327 drivers/mmc/host/sdhci.c void sdhci_abort_tuning(struct sdhci_host *host, u32 opcode) host 2329 drivers/mmc/host/sdhci.c sdhci_reset_tuning(host); host 2331 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_CMD); host 2332 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_DATA); host 2334 drivers/mmc/host/sdhci.c sdhci_end_tuning(host); host 2336 drivers/mmc/host/sdhci.c mmc_abort_tuning(host->mmc, opcode); host 2347 drivers/mmc/host/sdhci.c void sdhci_send_tuning(struct sdhci_host *host, u32 opcode) host 2349 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 2353 drivers/mmc/host/sdhci.c u32 b = host->sdma_boundary; host 2355 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2369 drivers/mmc/host/sdhci.c sdhci_writew(host, SDHCI_MAKE_BLKSZ(b, 128), SDHCI_BLOCK_SIZE); host 2371 drivers/mmc/host/sdhci.c sdhci_writew(host, SDHCI_MAKE_BLKSZ(b, 64), SDHCI_BLOCK_SIZE); host 2379 drivers/mmc/host/sdhci.c sdhci_writew(host, SDHCI_TRNS_READ, SDHCI_TRANSFER_MODE); host 2381 drivers/mmc/host/sdhci.c sdhci_send_command(host, &cmd); host 2383 drivers/mmc/host/sdhci.c host->cmd = NULL; host 2385 drivers/mmc/host/sdhci.c sdhci_del_timer(host, &mrq); host 2387 drivers/mmc/host/sdhci.c host->tuning_done = 0; host 2389 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2392 drivers/mmc/host/sdhci.c wait_event_timeout(host->buf_ready_int, (host->tuning_done == 1), host 2398 drivers/mmc/host/sdhci.c static int __sdhci_execute_tuning(struct sdhci_host *host, u32 opcode) host 2406 drivers/mmc/host/sdhci.c for (i = 0; i < host->tuning_loop_count; i++) { host 2409 drivers/mmc/host/sdhci.c sdhci_send_tuning(host, opcode); host 2411 drivers/mmc/host/sdhci.c if (!host->tuning_done) { host 2413 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 2414 drivers/mmc/host/sdhci.c sdhci_abort_tuning(host, opcode); host 2419 drivers/mmc/host/sdhci.c if (host->tuning_delay > 0) host 2420 drivers/mmc/host/sdhci.c mdelay(host->tuning_delay); host 2422 drivers/mmc/host/sdhci.c ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 2432 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 2433 drivers/mmc/host/sdhci.c sdhci_reset_tuning(host); host 2439 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2444 drivers/mmc/host/sdhci.c hs400_tuning = host->flags & SDHCI_HS400_TUNING; host 2446 drivers/mmc/host/sdhci.c if (host->tuning_mode == SDHCI_TUNING_MODE_1) host 2447 drivers/mmc/host/sdhci.c tuning_count = host->tuning_count; host 2456 drivers/mmc/host/sdhci.c switch (host->timing) { host 2476 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_SDR50_NEEDS_TUNING) host 2484 drivers/mmc/host/sdhci.c if (host->ops->platform_execute_tuning) { host 2485 drivers/mmc/host/sdhci.c err = host->ops->platform_execute_tuning(host, opcode); host 2489 drivers/mmc/host/sdhci.c host->mmc->retune_period = tuning_count; host 2491 drivers/mmc/host/sdhci.c if (host->tuning_delay < 0) host 2492 drivers/mmc/host/sdhci.c host->tuning_delay = opcode == MMC_SEND_TUNING_BLOCK; host 2494 drivers/mmc/host/sdhci.c sdhci_start_tuning(host); host 2496 drivers/mmc/host/sdhci.c host->tuning_err = __sdhci_execute_tuning(host, opcode); host 2498 drivers/mmc/host/sdhci.c sdhci_end_tuning(host); host 2500 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_HS400_TUNING; host 2506 drivers/mmc/host/sdhci.c static void sdhci_enable_preset_value(struct sdhci_host *host, bool enable) host 2509 drivers/mmc/host/sdhci.c if (host->version < SDHCI_SPEC_300) host 2516 drivers/mmc/host/sdhci.c if (host->preset_enabled != enable) { host 2517 drivers/mmc/host/sdhci.c u16 ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2); host 2524 drivers/mmc/host/sdhci.c sdhci_writew(host, ctrl, SDHCI_HOST_CONTROL2); host 2527 drivers/mmc/host/sdhci.c host->flags |= SDHCI_PV_ENABLED; host 2529 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_PV_ENABLED; host 2531 drivers/mmc/host/sdhci.c host->preset_enabled = enable; host 2538 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2542 drivers/mmc/host/sdhci.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 2550 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2559 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_REQ_USE_DMA && !host->bounce_buffer) host 2560 drivers/mmc/host/sdhci.c sdhci_pre_dma_transfer(host, mrq->data, COOKIE_PRE_MAPPED); host 2563 drivers/mmc/host/sdhci.c static void sdhci_error_out_mrqs(struct sdhci_host *host, int err) host 2565 drivers/mmc/host/sdhci.c if (host->data_cmd) { host 2566 drivers/mmc/host/sdhci.c host->data_cmd->error = err; host 2567 drivers/mmc/host/sdhci.c sdhci_finish_mrq(host, host->data_cmd->mrq); host 2570 drivers/mmc/host/sdhci.c if (host->cmd) { host 2571 drivers/mmc/host/sdhci.c host->cmd->error = err; host 2572 drivers/mmc/host/sdhci.c sdhci_finish_mrq(host, host->cmd->mrq); host 2578 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 2583 drivers/mmc/host/sdhci.c if (host->ops->card_event) host 2584 drivers/mmc/host/sdhci.c host->ops->card_event(host); host 2588 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2591 drivers/mmc/host/sdhci.c if (sdhci_has_requests(host) && !present) { host 2593 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 2595 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 2597 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_CMD); host 2598 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_DATA); host 2600 drivers/mmc/host/sdhci.c sdhci_error_out_mrqs(host, -ENOMEDIUM); host 2603 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2629 drivers/mmc/host/sdhci.c static bool sdhci_request_done(struct sdhci_host *host) host 2635 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2638 drivers/mmc/host/sdhci.c mrq = host->mrqs_done[i]; host 2644 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2653 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_REQ_USE_DMA) { host 2657 drivers/mmc/host/sdhci.c if (host->bounce_buffer) { host 2665 drivers/mmc/host/sdhci.c if (length > host->bounce_buffer_size) { host 2667 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), host 2668 drivers/mmc/host/sdhci.c host->bounce_buffer_size, host 2671 drivers/mmc/host/sdhci.c length = host->bounce_buffer_size; host 2674 drivers/mmc/host/sdhci.c host->mmc->parent, host 2675 drivers/mmc/host/sdhci.c host->bounce_addr, host 2676 drivers/mmc/host/sdhci.c host->bounce_buffer_size, host 2680 drivers/mmc/host/sdhci.c host->bounce_buffer, host 2685 drivers/mmc/host/sdhci.c host->mmc->parent, host 2686 drivers/mmc/host/sdhci.c host->bounce_addr, host 2687 drivers/mmc/host/sdhci.c host->bounce_buffer_size, host 2692 drivers/mmc/host/sdhci.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, host 2704 drivers/mmc/host/sdhci.c if (sdhci_needs_reset(host, mrq)) { host 2711 drivers/mmc/host/sdhci.c if (host->cmd || host->data_cmd) { host 2712 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2717 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_CLOCK_BEFORE_RESET) host 2719 drivers/mmc/host/sdhci.c host->ops->set_clock(host, host->clock); host 2723 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_CMD); host 2724 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_DATA); host 2726 drivers/mmc/host/sdhci.c host->pending_reset = false; host 2729 drivers/mmc/host/sdhci.c host->mrqs_done[i] = NULL; host 2731 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2733 drivers/mmc/host/sdhci.c mmc_request_done(host->mmc, mrq); host 2740 drivers/mmc/host/sdhci.c struct sdhci_host *host = container_of(work, struct sdhci_host, host 2743 drivers/mmc/host/sdhci.c while (!sdhci_request_done(host)) host 2749 drivers/mmc/host/sdhci.c struct sdhci_host *host; host 2752 drivers/mmc/host/sdhci.c host = from_timer(host, t, timer); host 2754 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2756 drivers/mmc/host/sdhci.c if (host->cmd && !sdhci_data_line_cmd(host->cmd)) { host 2758 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 2759 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 2761 drivers/mmc/host/sdhci.c host->cmd->error = -ETIMEDOUT; host 2762 drivers/mmc/host/sdhci.c sdhci_finish_mrq(host, host->cmd->mrq); host 2765 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2770 drivers/mmc/host/sdhci.c struct sdhci_host *host; host 2773 drivers/mmc/host/sdhci.c host = from_timer(host, t, data_timer); host 2775 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 2777 drivers/mmc/host/sdhci.c if (host->data || host->data_cmd || host 2778 drivers/mmc/host/sdhci.c (host->cmd && sdhci_data_line_cmd(host->cmd))) { host 2780 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 2781 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 2783 drivers/mmc/host/sdhci.c if (host->data) { host 2784 drivers/mmc/host/sdhci.c host->data->error = -ETIMEDOUT; host 2785 drivers/mmc/host/sdhci.c sdhci_finish_data(host); host 2786 drivers/mmc/host/sdhci.c queue_work(host->complete_wq, &host->complete_work); host 2787 drivers/mmc/host/sdhci.c } else if (host->data_cmd) { host 2788 drivers/mmc/host/sdhci.c host->data_cmd->error = -ETIMEDOUT; host 2789 drivers/mmc/host/sdhci.c sdhci_finish_mrq(host, host->data_cmd->mrq); host 2791 drivers/mmc/host/sdhci.c host->cmd->error = -ETIMEDOUT; host 2792 drivers/mmc/host/sdhci.c sdhci_finish_mrq(host, host->cmd->mrq); host 2796 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 2805 drivers/mmc/host/sdhci.c static void sdhci_cmd_irq(struct sdhci_host *host, u32 intmask, u32 *intmask_p) host 2808 drivers/mmc/host/sdhci.c if (intmask & SDHCI_INT_AUTO_CMD_ERR && host->data_cmd) { host 2809 drivers/mmc/host/sdhci.c struct mmc_request *mrq = host->data_cmd->mrq; host 2810 drivers/mmc/host/sdhci.c u16 auto_cmd_status = sdhci_readw(host, SDHCI_AUTO_CMD_STATUS); host 2816 drivers/mmc/host/sdhci.c if (!mrq->sbc && (host->flags & SDHCI_AUTO_CMD12)) { host 2822 drivers/mmc/host/sdhci.c if (!host->cmd) { host 2828 drivers/mmc/host/sdhci.c if (host->pending_reset) host 2831 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), (unsigned)intmask); host 2832 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 2839 drivers/mmc/host/sdhci.c host->cmd->error = -ETIMEDOUT; host 2841 drivers/mmc/host/sdhci.c host->cmd->error = -EILSEQ; host 2844 drivers/mmc/host/sdhci.c if (host->cmd->data && host 2847 drivers/mmc/host/sdhci.c host->cmd = NULL; host 2852 drivers/mmc/host/sdhci.c __sdhci_finish_mrq(host, host->cmd->mrq); host 2858 drivers/mmc/host/sdhci.c struct mmc_request *mrq = host->cmd->mrq; host 2859 drivers/mmc/host/sdhci.c u16 auto_cmd_status = sdhci_readw(host, SDHCI_AUTO_CMD_STATUS); host 2864 drivers/mmc/host/sdhci.c if (mrq->sbc && (host->flags & SDHCI_AUTO_CMD23)) { host 2866 drivers/mmc/host/sdhci.c __sdhci_finish_mrq(host, mrq); host 2872 drivers/mmc/host/sdhci.c sdhci_finish_command(host); host 2875 drivers/mmc/host/sdhci.c static void sdhci_adma_show_error(struct sdhci_host *host) host 2877 drivers/mmc/host/sdhci.c void *desc = host->adma_table; host 2878 drivers/mmc/host/sdhci.c dma_addr_t dma = host->adma_addr; host 2880 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 2885 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_64_BIT_DMA) host 2899 drivers/mmc/host/sdhci.c desc += host->desc_sz; host 2900 drivers/mmc/host/sdhci.c dma += host->desc_sz; host 2907 drivers/mmc/host/sdhci.c static void sdhci_data_irq(struct sdhci_host *host, u32 intmask) host 2913 drivers/mmc/host/sdhci.c command = SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND)); host 2916 drivers/mmc/host/sdhci.c host->tuning_done = 1; host 2917 drivers/mmc/host/sdhci.c wake_up(&host->buf_ready_int); host 2922 drivers/mmc/host/sdhci.c if (!host->data) { host 2923 drivers/mmc/host/sdhci.c struct mmc_command *data_cmd = host->data_cmd; host 2932 drivers/mmc/host/sdhci.c host->data_cmd = NULL; host 2934 drivers/mmc/host/sdhci.c __sdhci_finish_mrq(host, data_cmd->mrq); host 2938 drivers/mmc/host/sdhci.c host->data_cmd = NULL; host 2944 drivers/mmc/host/sdhci.c if (host->cmd == data_cmd) host 2947 drivers/mmc/host/sdhci.c __sdhci_finish_mrq(host, data_cmd->mrq); host 2957 drivers/mmc/host/sdhci.c if (host->pending_reset) host 2961 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), (unsigned)intmask); host 2962 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 2968 drivers/mmc/host/sdhci.c host->data->error = -ETIMEDOUT; host 2970 drivers/mmc/host/sdhci.c host->data->error = -EILSEQ; host 2972 drivers/mmc/host/sdhci.c SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND)) host 2974 drivers/mmc/host/sdhci.c host->data->error = -EILSEQ; host 2976 drivers/mmc/host/sdhci.c pr_err("%s: ADMA error: 0x%08x\n", mmc_hostname(host->mmc), host 2978 drivers/mmc/host/sdhci.c sdhci_adma_show_error(host); host 2979 drivers/mmc/host/sdhci.c host->data->error = -EIO; host 2980 drivers/mmc/host/sdhci.c if (host->ops->adma_workaround) host 2981 drivers/mmc/host/sdhci.c host->ops->adma_workaround(host, intmask); host 2984 drivers/mmc/host/sdhci.c if (host->data->error) host 2985 drivers/mmc/host/sdhci.c sdhci_finish_data(host); host 2988 drivers/mmc/host/sdhci.c sdhci_transfer_pio(host); host 3002 drivers/mmc/host/sdhci.c dmastart = sdhci_sdma_address(host); host 3003 drivers/mmc/host/sdhci.c dmanow = dmastart + host->data->bytes_xfered; host 3010 drivers/mmc/host/sdhci.c host->data->bytes_xfered = dmanow - dmastart; host 3012 drivers/mmc/host/sdhci.c &dmastart, host->data->bytes_xfered, &dmanow); host 3013 drivers/mmc/host/sdhci.c sdhci_set_sdma_addr(host, dmanow); host 3017 drivers/mmc/host/sdhci.c if (host->cmd == host->data_cmd) { host 3023 drivers/mmc/host/sdhci.c host->data_early = 1; host 3025 drivers/mmc/host/sdhci.c sdhci_finish_data(host); host 3031 drivers/mmc/host/sdhci.c static inline bool sdhci_defer_done(struct sdhci_host *host, host 3036 drivers/mmc/host/sdhci.c return host->pending_reset || host 3037 drivers/mmc/host/sdhci.c ((host->flags & SDHCI_REQ_USE_DMA) && data && host 3045 drivers/mmc/host/sdhci.c struct sdhci_host *host = dev_id; host 3050 drivers/mmc/host/sdhci.c spin_lock(&host->lock); host 3052 drivers/mmc/host/sdhci.c if (host->runtime_suspended) { host 3053 drivers/mmc/host/sdhci.c spin_unlock(&host->lock); host 3057 drivers/mmc/host/sdhci.c intmask = sdhci_readl(host, SDHCI_INT_STATUS); host 3066 drivers/mmc/host/sdhci.c if (host->ops->irq) { host 3067 drivers/mmc/host/sdhci.c intmask = host->ops->irq(host, intmask); host 3075 drivers/mmc/host/sdhci.c sdhci_writel(host, mask, SDHCI_INT_STATUS); host 3078 drivers/mmc/host/sdhci.c u32 present = sdhci_readl(host, SDHCI_PRESENT_STATE) & host 3092 drivers/mmc/host/sdhci.c host->ier &= ~(SDHCI_INT_CARD_INSERT | host 3094 drivers/mmc/host/sdhci.c host->ier |= present ? SDHCI_INT_CARD_REMOVE : host 3096 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 3097 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 3099 drivers/mmc/host/sdhci.c sdhci_writel(host, intmask & (SDHCI_INT_CARD_INSERT | host 3102 drivers/mmc/host/sdhci.c host->thread_isr |= intmask & (SDHCI_INT_CARD_INSERT | host 3108 drivers/mmc/host/sdhci.c sdhci_cmd_irq(host, intmask & SDHCI_INT_CMD_MASK, &intmask); host 3111 drivers/mmc/host/sdhci.c sdhci_data_irq(host, intmask & SDHCI_INT_DATA_MASK); host 3115 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 3118 drivers/mmc/host/sdhci.c mmc_retune_needed(host->mmc); host 3121 drivers/mmc/host/sdhci.c (host->ier & SDHCI_INT_CARD_INT)) { host 3122 drivers/mmc/host/sdhci.c sdhci_enable_sdio_irq_nolock(host, false); host 3123 drivers/mmc/host/sdhci.c sdio_signal_irq(host->mmc); host 3133 drivers/mmc/host/sdhci.c sdhci_writel(host, intmask, SDHCI_INT_STATUS); host 3139 drivers/mmc/host/sdhci.c intmask = sdhci_readl(host, SDHCI_INT_STATUS); host 3144 drivers/mmc/host/sdhci.c struct mmc_request *mrq = host->mrqs_done[i]; host 3149 drivers/mmc/host/sdhci.c if (sdhci_defer_done(host, mrq)) { host 3153 drivers/mmc/host/sdhci.c host->mrqs_done[i] = NULL; host 3157 drivers/mmc/host/sdhci.c spin_unlock(&host->lock); host 3162 drivers/mmc/host/sdhci.c mmc_request_done(host->mmc, mrqs_done[i]); host 3167 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), unexpected); host 3168 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 3176 drivers/mmc/host/sdhci.c struct sdhci_host *host = dev_id; host 3180 drivers/mmc/host/sdhci.c while (!sdhci_request_done(host)) host 3183 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 3184 drivers/mmc/host/sdhci.c isr = host->thread_isr; host 3185 drivers/mmc/host/sdhci.c host->thread_isr = 0; host 3186 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 3189 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 3206 drivers/mmc/host/sdhci.c static bool sdhci_cd_irq_can_wakeup(struct sdhci_host *host) host 3208 drivers/mmc/host/sdhci.c return mmc_card_is_removable(host->mmc) && host 3209 drivers/mmc/host/sdhci.c !(host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) && host 3210 drivers/mmc/host/sdhci.c !mmc_can_gpio_cd(host->mmc); host 3221 drivers/mmc/host/sdhci.c static bool sdhci_enable_irq_wakeups(struct sdhci_host *host) host 3229 drivers/mmc/host/sdhci.c if (sdhci_cd_irq_can_wakeup(host)) { host 3234 drivers/mmc/host/sdhci.c if (mmc_card_wake_sdio_irq(host->mmc)) { host 3242 drivers/mmc/host/sdhci.c val = sdhci_readb(host, SDHCI_WAKE_UP_CONTROL); host 3245 drivers/mmc/host/sdhci.c sdhci_writeb(host, val, SDHCI_WAKE_UP_CONTROL); host 3247 drivers/mmc/host/sdhci.c sdhci_writel(host, irq_val, SDHCI_INT_ENABLE); host 3249 drivers/mmc/host/sdhci.c host->irq_wake_enabled = !enable_irq_wake(host->irq); host 3251 drivers/mmc/host/sdhci.c return host->irq_wake_enabled; host 3254 drivers/mmc/host/sdhci.c static void sdhci_disable_irq_wakeups(struct sdhci_host *host) host 3260 drivers/mmc/host/sdhci.c val = sdhci_readb(host, SDHCI_WAKE_UP_CONTROL); host 3262 drivers/mmc/host/sdhci.c sdhci_writeb(host, val, SDHCI_WAKE_UP_CONTROL); host 3264 drivers/mmc/host/sdhci.c disable_irq_wake(host->irq); host 3266 drivers/mmc/host/sdhci.c host->irq_wake_enabled = false; host 3269 drivers/mmc/host/sdhci.c int sdhci_suspend_host(struct sdhci_host *host) host 3271 drivers/mmc/host/sdhci.c sdhci_disable_card_detection(host); host 3273 drivers/mmc/host/sdhci.c mmc_retune_timer_stop(host->mmc); host 3275 drivers/mmc/host/sdhci.c if (!device_may_wakeup(mmc_dev(host->mmc)) || host 3276 drivers/mmc/host/sdhci.c !sdhci_enable_irq_wakeups(host)) { host 3277 drivers/mmc/host/sdhci.c host->ier = 0; host 3278 drivers/mmc/host/sdhci.c sdhci_writel(host, 0, SDHCI_INT_ENABLE); host 3279 drivers/mmc/host/sdhci.c sdhci_writel(host, 0, SDHCI_SIGNAL_ENABLE); host 3280 drivers/mmc/host/sdhci.c free_irq(host->irq, host); host 3288 drivers/mmc/host/sdhci.c int sdhci_resume_host(struct sdhci_host *host) host 3290 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 3293 drivers/mmc/host/sdhci.c if (host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA)) { host 3294 drivers/mmc/host/sdhci.c if (host->ops->enable_dma) host 3295 drivers/mmc/host/sdhci.c host->ops->enable_dma(host); host 3298 drivers/mmc/host/sdhci.c if ((host->mmc->pm_flags & MMC_PM_KEEP_POWER) && host 3299 drivers/mmc/host/sdhci.c (host->quirks2 & SDHCI_QUIRK2_HOST_OFF_CARD_ON)) { host 3301 drivers/mmc/host/sdhci.c sdhci_init(host, 0); host 3302 drivers/mmc/host/sdhci.c host->pwr = 0; host 3303 drivers/mmc/host/sdhci.c host->clock = 0; host 3306 drivers/mmc/host/sdhci.c sdhci_init(host, (host->mmc->pm_flags & MMC_PM_KEEP_POWER)); host 3309 drivers/mmc/host/sdhci.c if (host->irq_wake_enabled) { host 3310 drivers/mmc/host/sdhci.c sdhci_disable_irq_wakeups(host); host 3312 drivers/mmc/host/sdhci.c ret = request_threaded_irq(host->irq, sdhci_irq, host 3314 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), host); host 3319 drivers/mmc/host/sdhci.c sdhci_enable_card_detection(host); host 3326 drivers/mmc/host/sdhci.c int sdhci_runtime_suspend_host(struct sdhci_host *host) host 3330 drivers/mmc/host/sdhci.c mmc_retune_timer_stop(host->mmc); host 3332 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 3333 drivers/mmc/host/sdhci.c host->ier &= SDHCI_INT_CARD_INT; host 3334 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 3335 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 3336 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 3338 drivers/mmc/host/sdhci.c synchronize_hardirq(host->irq); host 3340 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 3341 drivers/mmc/host/sdhci.c host->runtime_suspended = true; host 3342 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 3348 drivers/mmc/host/sdhci.c int sdhci_runtime_resume_host(struct sdhci_host *host, int soft_reset) host 3350 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 3352 drivers/mmc/host/sdhci.c int host_flags = host->flags; host 3355 drivers/mmc/host/sdhci.c if (host->ops->enable_dma) host 3356 drivers/mmc/host/sdhci.c host->ops->enable_dma(host); host 3359 drivers/mmc/host/sdhci.c sdhci_init(host, soft_reset); host 3364 drivers/mmc/host/sdhci.c host->pwr = 0; host 3365 drivers/mmc/host/sdhci.c host->clock = 0; host 3370 drivers/mmc/host/sdhci.c !(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN)) { host 3371 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 3372 drivers/mmc/host/sdhci.c sdhci_enable_preset_value(host, true); host 3373 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 3381 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 3383 drivers/mmc/host/sdhci.c host->runtime_suspended = false; host 3387 drivers/mmc/host/sdhci.c sdhci_enable_sdio_irq_nolock(host, true); host 3390 drivers/mmc/host/sdhci.c sdhci_enable_card_detection(host); host 3392 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 3408 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 3412 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 3414 drivers/mmc/host/sdhci.c ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); host 3421 drivers/mmc/host/sdhci.c if (host->v4_mode && (host->caps1 & SDHCI_CAN_DO_ADMA3)) host 3423 drivers/mmc/host/sdhci.c else if (host->flags & SDHCI_USE_64_BIT_DMA) host 3427 drivers/mmc/host/sdhci.c sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL); host 3429 drivers/mmc/host/sdhci.c sdhci_writew(host, SDHCI_MAKE_BLKSZ(host->sdma_boundary, 512), host 3433 drivers/mmc/host/sdhci.c sdhci_set_timeout(host, NULL); host 3435 drivers/mmc/host/sdhci.c host->ier = host->cqe_ier; host 3437 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); host 3438 drivers/mmc/host/sdhci.c sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); host 3440 drivers/mmc/host/sdhci.c host->cqe_on = true; host 3443 drivers/mmc/host/sdhci.c mmc_hostname(mmc), host->ier, host 3444 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_INT_STATUS)); host 3446 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 3452 drivers/mmc/host/sdhci.c struct sdhci_host *host = mmc_priv(mmc); host 3455 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 3457 drivers/mmc/host/sdhci.c sdhci_set_default_irqs(host); host 3459 drivers/mmc/host/sdhci.c host->cqe_on = false; host 3462 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_CMD); host 3463 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_DATA); host 3467 drivers/mmc/host/sdhci.c mmc_hostname(mmc), host->ier, host 3468 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_INT_STATUS)); host 3470 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 3474 drivers/mmc/host/sdhci.c bool sdhci_cqe_irq(struct sdhci_host *host, u32 intmask, int *cmd_error, host 3479 drivers/mmc/host/sdhci.c if (!host->cqe_on) host 3499 drivers/mmc/host/sdhci.c mask = intmask & host->cqe_ier; host 3500 drivers/mmc/host/sdhci.c sdhci_writel(host, mask, SDHCI_INT_STATUS); host 3504 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc)); host 3506 drivers/mmc/host/sdhci.c intmask &= ~(host->cqe_ier | SDHCI_INT_ERROR); host 3508 drivers/mmc/host/sdhci.c sdhci_writel(host, intmask, SDHCI_INT_STATUS); host 3510 drivers/mmc/host/sdhci.c mmc_hostname(host->mmc), intmask); host 3511 drivers/mmc/host/sdhci.c sdhci_dumpregs(host); host 3528 drivers/mmc/host/sdhci.c struct sdhci_host *host; host 3536 drivers/mmc/host/sdhci.c host = mmc_priv(mmc); host 3537 drivers/mmc/host/sdhci.c host->mmc = mmc; host 3538 drivers/mmc/host/sdhci.c host->mmc_host_ops = sdhci_ops; host 3539 drivers/mmc/host/sdhci.c mmc->ops = &host->mmc_host_ops; host 3541 drivers/mmc/host/sdhci.c host->flags = SDHCI_SIGNALING_330; host 3543 drivers/mmc/host/sdhci.c host->cqe_ier = SDHCI_CQE_INT_MASK; host 3544 drivers/mmc/host/sdhci.c host->cqe_err_ier = SDHCI_CQE_INT_ERR_MASK; host 3546 drivers/mmc/host/sdhci.c host->tuning_delay = -1; host 3547 drivers/mmc/host/sdhci.c host->tuning_loop_count = MAX_TUNING_LOOP; host 3549 drivers/mmc/host/sdhci.c host->sdma_boundary = SDHCI_DEFAULT_BOUNDARY_ARG; host 3556 drivers/mmc/host/sdhci.c host->adma_table_cnt = SDHCI_MAX_SEGS * 2 + 1; host 3558 drivers/mmc/host/sdhci.c return host; host 3563 drivers/mmc/host/sdhci.c static int sdhci_set_dma_mask(struct sdhci_host *host) host 3565 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 3569 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_BROKEN_64_BIT_DMA) host 3570 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_USE_64_BIT_DMA; host 3573 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_64_BIT_DMA) { host 3578 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_USE_64_BIT_DMA; host 3593 drivers/mmc/host/sdhci.c void __sdhci_read_caps(struct sdhci_host *host, const u16 *ver, host 3600 drivers/mmc/host/sdhci.c if (host->read_caps) host 3603 drivers/mmc/host/sdhci.c host->read_caps = true; host 3606 drivers/mmc/host/sdhci.c host->quirks = debug_quirks; host 3609 drivers/mmc/host/sdhci.c host->quirks2 = debug_quirks2; host 3611 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_ALL); host 3613 drivers/mmc/host/sdhci.c if (host->v4_mode) host 3614 drivers/mmc/host/sdhci.c sdhci_do_enable_v4_mode(host); host 3616 drivers/mmc/host/sdhci.c of_property_read_u64(mmc_dev(host->mmc)->of_node, host 3618 drivers/mmc/host/sdhci.c of_property_read_u64(mmc_dev(host->mmc)->of_node, host 3621 drivers/mmc/host/sdhci.c v = ver ? *ver : sdhci_readw(host, SDHCI_HOST_VERSION); host 3622 drivers/mmc/host/sdhci.c host->version = (v & SDHCI_SPEC_VER_MASK) >> SDHCI_SPEC_VER_SHIFT; host 3624 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_MISSING_CAPS) host 3628 drivers/mmc/host/sdhci.c host->caps = *caps; host 3630 drivers/mmc/host/sdhci.c host->caps = sdhci_readl(host, SDHCI_CAPABILITIES); host 3631 drivers/mmc/host/sdhci.c host->caps &= ~lower_32_bits(dt_caps_mask); host 3632 drivers/mmc/host/sdhci.c host->caps |= lower_32_bits(dt_caps); host 3635 drivers/mmc/host/sdhci.c if (host->version < SDHCI_SPEC_300) host 3639 drivers/mmc/host/sdhci.c host->caps1 = *caps1; host 3641 drivers/mmc/host/sdhci.c host->caps1 = sdhci_readl(host, SDHCI_CAPABILITIES_1); host 3642 drivers/mmc/host/sdhci.c host->caps1 &= ~upper_32_bits(dt_caps_mask); host 3643 drivers/mmc/host/sdhci.c host->caps1 |= upper_32_bits(dt_caps); host 3648 drivers/mmc/host/sdhci.c static void sdhci_allocate_bounce_buffer(struct sdhci_host *host) host 3650 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 3675 drivers/mmc/host/sdhci.c host->bounce_buffer = devm_kmalloc(mmc->parent, host 3678 drivers/mmc/host/sdhci.c if (!host->bounce_buffer) { host 3689 drivers/mmc/host/sdhci.c host->bounce_addr = dma_map_single(mmc->parent, host 3690 drivers/mmc/host/sdhci.c host->bounce_buffer, host 3693 drivers/mmc/host/sdhci.c ret = dma_mapping_error(mmc->parent, host->bounce_addr); host 3697 drivers/mmc/host/sdhci.c host->bounce_buffer_size = bounce_size; host 3708 drivers/mmc/host/sdhci.c static inline bool sdhci_can_64bit_dma(struct sdhci_host *host) host 3715 drivers/mmc/host/sdhci.c if (host->version >= SDHCI_SPEC_410 && host->v4_mode) host 3716 drivers/mmc/host/sdhci.c return host->caps & SDHCI_CAN_64BIT_V4; host 3718 drivers/mmc/host/sdhci.c return host->caps & SDHCI_CAN_64BIT; host 3721 drivers/mmc/host/sdhci.c int sdhci_setup_host(struct sdhci_host *host) host 3730 drivers/mmc/host/sdhci.c WARN_ON(host == NULL); host 3731 drivers/mmc/host/sdhci.c if (host == NULL) host 3734 drivers/mmc/host/sdhci.c mmc = host->mmc; host 3747 drivers/mmc/host/sdhci.c sdhci_readw(host, SDHCI_HOST_VERSION), host 3748 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_PRESENT_STATE)); host 3750 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_CAPABILITIES), host 3751 drivers/mmc/host/sdhci.c sdhci_readl(host, SDHCI_CAPABILITIES_1)); host 3753 drivers/mmc/host/sdhci.c sdhci_read_caps(host); host 3755 drivers/mmc/host/sdhci.c override_timeout_clk = host->timeout_clk; host 3757 drivers/mmc/host/sdhci.c if (host->version > SDHCI_SPEC_420) { host 3759 drivers/mmc/host/sdhci.c mmc_hostname(mmc), host->version); host 3762 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_BROKEN_CQE) host 3765 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_FORCE_DMA) host 3766 drivers/mmc/host/sdhci.c host->flags |= SDHCI_USE_SDMA; host 3767 drivers/mmc/host/sdhci.c else if (!(host->caps & SDHCI_CAN_DO_SDMA)) host 3770 drivers/mmc/host/sdhci.c host->flags |= SDHCI_USE_SDMA; host 3772 drivers/mmc/host/sdhci.c if ((host->quirks & SDHCI_QUIRK_BROKEN_DMA) && host 3773 drivers/mmc/host/sdhci.c (host->flags & SDHCI_USE_SDMA)) { host 3775 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_USE_SDMA; host 3778 drivers/mmc/host/sdhci.c if ((host->version >= SDHCI_SPEC_200) && host 3779 drivers/mmc/host/sdhci.c (host->caps & SDHCI_CAN_DO_ADMA2)) host 3780 drivers/mmc/host/sdhci.c host->flags |= SDHCI_USE_ADMA; host 3782 drivers/mmc/host/sdhci.c if ((host->quirks & SDHCI_QUIRK_BROKEN_ADMA) && host 3783 drivers/mmc/host/sdhci.c (host->flags & SDHCI_USE_ADMA)) { host 3785 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_USE_ADMA; host 3788 drivers/mmc/host/sdhci.c if (sdhci_can_64bit_dma(host)) host 3789 drivers/mmc/host/sdhci.c host->flags |= SDHCI_USE_64_BIT_DMA; host 3791 drivers/mmc/host/sdhci.c if (host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA)) { host 3792 drivers/mmc/host/sdhci.c if (host->ops->set_dma_mask) host 3793 drivers/mmc/host/sdhci.c ret = host->ops->set_dma_mask(host); host 3795 drivers/mmc/host/sdhci.c ret = sdhci_set_dma_mask(host); host 3797 drivers/mmc/host/sdhci.c if (!ret && host->ops->enable_dma) host 3798 drivers/mmc/host/sdhci.c ret = host->ops->enable_dma(host); host 3803 drivers/mmc/host/sdhci.c host->flags &= ~(SDHCI_USE_SDMA | SDHCI_USE_ADMA); host 3810 drivers/mmc/host/sdhci.c if ((host->flags & SDHCI_USE_64_BIT_DMA) && !host->v4_mode) host 3811 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_USE_SDMA; host 3813 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_ADMA) { host 3817 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_64_BIT_DMA) { host 3818 drivers/mmc/host/sdhci.c host->adma_table_sz = host->adma_table_cnt * host 3819 drivers/mmc/host/sdhci.c SDHCI_ADMA2_64_DESC_SZ(host); host 3820 drivers/mmc/host/sdhci.c host->desc_sz = SDHCI_ADMA2_64_DESC_SZ(host); host 3822 drivers/mmc/host/sdhci.c host->adma_table_sz = host->adma_table_cnt * host 3824 drivers/mmc/host/sdhci.c host->desc_sz = SDHCI_ADMA2_32_DESC_SZ; host 3827 drivers/mmc/host/sdhci.c host->align_buffer_sz = SDHCI_MAX_SEGS * SDHCI_ADMA2_ALIGN; host 3833 drivers/mmc/host/sdhci.c host->align_buffer_sz + host->adma_table_sz, host 3838 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_USE_ADMA; host 3839 drivers/mmc/host/sdhci.c } else if ((dma + host->align_buffer_sz) & host 3843 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_USE_ADMA; host 3844 drivers/mmc/host/sdhci.c dma_free_coherent(mmc_dev(mmc), host->align_buffer_sz + host 3845 drivers/mmc/host/sdhci.c host->adma_table_sz, buf, dma); host 3847 drivers/mmc/host/sdhci.c host->align_buffer = buf; host 3848 drivers/mmc/host/sdhci.c host->align_addr = dma; host 3850 drivers/mmc/host/sdhci.c host->adma_table = buf + host->align_buffer_sz; host 3851 drivers/mmc/host/sdhci.c host->adma_addr = dma + host->align_buffer_sz; host 3860 drivers/mmc/host/sdhci.c if (!(host->flags & (SDHCI_USE_SDMA | SDHCI_USE_ADMA))) { host 3861 drivers/mmc/host/sdhci.c host->dma_mask = DMA_BIT_MASK(64); host 3862 drivers/mmc/host/sdhci.c mmc_dev(mmc)->dma_mask = &host->dma_mask; host 3865 drivers/mmc/host/sdhci.c if (host->version >= SDHCI_SPEC_300) host 3866 drivers/mmc/host/sdhci.c host->max_clk = (host->caps & SDHCI_CLOCK_V3_BASE_MASK) host 3869 drivers/mmc/host/sdhci.c host->max_clk = (host->caps & SDHCI_CLOCK_BASE_MASK) host 3872 drivers/mmc/host/sdhci.c host->max_clk *= 1000000; host 3873 drivers/mmc/host/sdhci.c if (host->max_clk == 0 || host->quirks & host 3875 drivers/mmc/host/sdhci.c if (!host->ops->get_max_clock) { host 3881 drivers/mmc/host/sdhci.c host->max_clk = host->ops->get_max_clock(host); host 3888 drivers/mmc/host/sdhci.c host->clk_mul = (host->caps1 & SDHCI_CLOCK_MUL_MASK) >> host 3897 drivers/mmc/host/sdhci.c if (host->clk_mul) host 3898 drivers/mmc/host/sdhci.c host->clk_mul += 1; host 3903 drivers/mmc/host/sdhci.c max_clk = host->max_clk; host 3905 drivers/mmc/host/sdhci.c if (host->ops->get_min_clock) host 3906 drivers/mmc/host/sdhci.c mmc->f_min = host->ops->get_min_clock(host); host 3907 drivers/mmc/host/sdhci.c else if (host->version >= SDHCI_SPEC_300) { host 3908 drivers/mmc/host/sdhci.c if (host->clk_mul) host 3909 drivers/mmc/host/sdhci.c max_clk = host->max_clk * host->clk_mul; host 3914 drivers/mmc/host/sdhci.c mmc->f_min = host->max_clk / SDHCI_MAX_DIV_SPEC_300; host 3916 drivers/mmc/host/sdhci.c mmc->f_min = host->max_clk / SDHCI_MAX_DIV_SPEC_200; host 3921 drivers/mmc/host/sdhci.c if (!(host->quirks & SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK)) { host 3922 drivers/mmc/host/sdhci.c host->timeout_clk = (host->caps & SDHCI_TIMEOUT_CLK_MASK) >> host 3925 drivers/mmc/host/sdhci.c if (host->caps & SDHCI_TIMEOUT_CLK_UNIT) host 3926 drivers/mmc/host/sdhci.c host->timeout_clk *= 1000; host 3928 drivers/mmc/host/sdhci.c if (host->timeout_clk == 0) { host 3929 drivers/mmc/host/sdhci.c if (!host->ops->get_timeout_clock) { host 3936 drivers/mmc/host/sdhci.c host->timeout_clk = host 3937 drivers/mmc/host/sdhci.c DIV_ROUND_UP(host->ops->get_timeout_clock(host), host 3942 drivers/mmc/host/sdhci.c host->timeout_clk = override_timeout_clk; host 3944 drivers/mmc/host/sdhci.c mmc->max_busy_timeout = host->ops->get_max_timeout_count ? host 3945 drivers/mmc/host/sdhci.c host->ops->get_max_timeout_count(host) : 1 << 27; host 3946 drivers/mmc/host/sdhci.c mmc->max_busy_timeout /= host->timeout_clk; host 3949 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_DISABLE_HW_TIMEOUT && host 3950 drivers/mmc/host/sdhci.c !host->ops->get_max_timeout_count) host 3956 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12) host 3957 drivers/mmc/host/sdhci.c host->flags |= SDHCI_AUTO_CMD12; host 3963 drivers/mmc/host/sdhci.c if ((host->version >= SDHCI_SPEC_300) && host 3964 drivers/mmc/host/sdhci.c ((host->flags & SDHCI_USE_ADMA) || host 3965 drivers/mmc/host/sdhci.c !(host->flags & SDHCI_USE_SDMA) || host->v4_mode) && host 3966 drivers/mmc/host/sdhci.c !(host->quirks2 & SDHCI_QUIRK2_ACMD23_BROKEN)) { host 3967 drivers/mmc/host/sdhci.c host->flags |= SDHCI_AUTO_CMD23; host 3980 drivers/mmc/host/sdhci.c if (!(host->quirks & SDHCI_QUIRK_FORCE_1_BIT_DATA)) host 3983 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_HOST_NO_CMD23) host 3986 drivers/mmc/host/sdhci.c if (host->caps & SDHCI_CAN_DO_HISPD) host 3989 drivers/mmc/host/sdhci.c if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) && host 3991 drivers/mmc/host/sdhci.c mmc_gpio_get_cd(host->mmc) < 0) host 4000 drivers/mmc/host/sdhci.c host->caps1 &= ~(SDHCI_SUPPORT_SDR104 | host 4007 drivers/mmc/host/sdhci.c host->flags &= ~SDHCI_SIGNALING_330; host 4016 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_NO_1_8_V) { host 4017 drivers/mmc/host/sdhci.c host->caps1 &= ~(SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_SDR50 | host 4032 drivers/mmc/host/sdhci.c if (host->caps1 & (SDHCI_SUPPORT_SDR104 | SDHCI_SUPPORT_SDR50 | host 4037 drivers/mmc/host/sdhci.c if (host->caps1 & SDHCI_SUPPORT_SDR104) { host 4042 drivers/mmc/host/sdhci.c if (!(host->quirks2 & SDHCI_QUIRK2_BROKEN_HS200)) host 4044 drivers/mmc/host/sdhci.c } else if (host->caps1 & SDHCI_SUPPORT_SDR50) { host 4048 drivers/mmc/host/sdhci.c if (host->quirks2 & SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400 && host 4049 drivers/mmc/host/sdhci.c (host->caps1 & SDHCI_SUPPORT_HS400)) host 4058 drivers/mmc/host/sdhci.c if ((host->caps1 & SDHCI_SUPPORT_DDR50) && host 4059 drivers/mmc/host/sdhci.c !(host->quirks2 & SDHCI_QUIRK2_BROKEN_DDR50)) host 4063 drivers/mmc/host/sdhci.c if (host->caps1 & SDHCI_USE_SDR50_TUNING) host 4064 drivers/mmc/host/sdhci.c host->flags |= SDHCI_SDR50_NEEDS_TUNING; host 4067 drivers/mmc/host/sdhci.c if (host->caps1 & SDHCI_DRIVER_TYPE_A) host 4069 drivers/mmc/host/sdhci.c if (host->caps1 & SDHCI_DRIVER_TYPE_C) host 4071 drivers/mmc/host/sdhci.c if (host->caps1 & SDHCI_DRIVER_TYPE_D) host 4075 drivers/mmc/host/sdhci.c host->tuning_count = (host->caps1 & SDHCI_RETUNING_TIMER_COUNT_MASK) >> host 4082 drivers/mmc/host/sdhci.c if (host->tuning_count) host 4083 drivers/mmc/host/sdhci.c host->tuning_count = 1 << (host->tuning_count - 1); host 4086 drivers/mmc/host/sdhci.c host->tuning_mode = (host->caps1 & SDHCI_RETUNING_MODE_MASK) >> host 4098 drivers/mmc/host/sdhci.c max_current_caps = sdhci_readl(host, SDHCI_MAX_CURRENT); host 4115 drivers/mmc/host/sdhci.c if (host->caps & SDHCI_CAN_VDD_330) { host 4123 drivers/mmc/host/sdhci.c if (host->caps & SDHCI_CAN_VDD_300) { host 4131 drivers/mmc/host/sdhci.c if (host->caps & SDHCI_CAN_VDD_180) { host 4141 drivers/mmc/host/sdhci.c if (host->ocr_mask) host 4142 drivers/mmc/host/sdhci.c ocr_avail = host->ocr_mask; host 4150 drivers/mmc/host/sdhci.c if (host->ocr_avail_sdio) host 4151 drivers/mmc/host/sdhci.c mmc->ocr_avail_sdio &= host->ocr_avail_sdio; host 4153 drivers/mmc/host/sdhci.c if (host->ocr_avail_sd) host 4154 drivers/mmc/host/sdhci.c mmc->ocr_avail_sd &= host->ocr_avail_sd; host 4158 drivers/mmc/host/sdhci.c if (host->ocr_avail_mmc) host 4159 drivers/mmc/host/sdhci.c mmc->ocr_avail_mmc &= host->ocr_avail_mmc; host 4172 drivers/mmc/host/sdhci.c host->flags |= SDHCI_SIGNALING_180; host 4175 drivers/mmc/host/sdhci.c host->flags |= SDHCI_SIGNALING_120; host 4177 drivers/mmc/host/sdhci.c spin_lock_init(&host->lock); host 4190 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_ADMA) { host 4192 drivers/mmc/host/sdhci.c } else if (host->flags & SDHCI_USE_SDMA) { host 4209 drivers/mmc/host/sdhci.c if (host->flags & SDHCI_USE_ADMA) { host 4210 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_BROKEN_ADMA_ZEROLEN_DESC) host 4222 drivers/mmc/host/sdhci.c if (host->quirks & SDHCI_QUIRK_FORCE_BLK_SZ_2048) { host 4225 drivers/mmc/host/sdhci.c mmc->max_blk_size = (host->caps & SDHCI_MAX_BLOCK_MASK) >> host 4239 drivers/mmc/host/sdhci.c mmc->max_blk_count = (host->quirks & SDHCI_QUIRK_NO_MULTIBLOCK) ? 1 : 65535; host 4243 drivers/mmc/host/sdhci.c sdhci_allocate_bounce_buffer(host); host 4251 drivers/mmc/host/sdhci.c if (host->align_buffer) host 4252 drivers/mmc/host/sdhci.c dma_free_coherent(mmc_dev(mmc), host->align_buffer_sz + host 4253 drivers/mmc/host/sdhci.c host->adma_table_sz, host->align_buffer, host 4254 drivers/mmc/host/sdhci.c host->align_addr); host 4255 drivers/mmc/host/sdhci.c host->adma_table = NULL; host 4256 drivers/mmc/host/sdhci.c host->align_buffer = NULL; host 4262 drivers/mmc/host/sdhci.c void sdhci_cleanup_host(struct sdhci_host *host) host 4264 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 4269 drivers/mmc/host/sdhci.c if (host->align_buffer) host 4270 drivers/mmc/host/sdhci.c dma_free_coherent(mmc_dev(mmc), host->align_buffer_sz + host 4271 drivers/mmc/host/sdhci.c host->adma_table_sz, host->align_buffer, host 4272 drivers/mmc/host/sdhci.c host->align_addr); host 4273 drivers/mmc/host/sdhci.c host->adma_table = NULL; host 4274 drivers/mmc/host/sdhci.c host->align_buffer = NULL; host 4278 drivers/mmc/host/sdhci.c int __sdhci_add_host(struct sdhci_host *host) host 4281 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 4284 drivers/mmc/host/sdhci.c host->complete_wq = alloc_workqueue("sdhci", flags, 0); host 4285 drivers/mmc/host/sdhci.c if (!host->complete_wq) host 4288 drivers/mmc/host/sdhci.c INIT_WORK(&host->complete_work, sdhci_complete_work); host 4290 drivers/mmc/host/sdhci.c timer_setup(&host->timer, sdhci_timeout_timer, 0); host 4291 drivers/mmc/host/sdhci.c timer_setup(&host->data_timer, sdhci_timeout_data_timer, 0); host 4293 drivers/mmc/host/sdhci.c init_waitqueue_head(&host->buf_ready_int); host 4295 drivers/mmc/host/sdhci.c sdhci_init(host, 0); host 4297 drivers/mmc/host/sdhci.c ret = request_threaded_irq(host->irq, sdhci_irq, sdhci_thread_irq, host 4298 drivers/mmc/host/sdhci.c IRQF_SHARED, mmc_hostname(mmc), host); host 4301 drivers/mmc/host/sdhci.c mmc_hostname(mmc), host->irq, ret); host 4305 drivers/mmc/host/sdhci.c ret = sdhci_led_register(host); host 4317 drivers/mmc/host/sdhci.c mmc_hostname(mmc), host->hw_name, dev_name(mmc_dev(mmc)), host 4318 drivers/mmc/host/sdhci.c (host->flags & SDHCI_USE_ADMA) ? host 4319 drivers/mmc/host/sdhci.c (host->flags & SDHCI_USE_64_BIT_DMA) ? "ADMA 64-bit" : "ADMA" : host 4320 drivers/mmc/host/sdhci.c (host->flags & SDHCI_USE_SDMA) ? "DMA" : "PIO"); host 4322 drivers/mmc/host/sdhci.c sdhci_enable_card_detection(host); host 4327 drivers/mmc/host/sdhci.c sdhci_led_unregister(host); host 4329 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_ALL); host 4330 drivers/mmc/host/sdhci.c sdhci_writel(host, 0, SDHCI_INT_ENABLE); host 4331 drivers/mmc/host/sdhci.c sdhci_writel(host, 0, SDHCI_SIGNAL_ENABLE); host 4332 drivers/mmc/host/sdhci.c free_irq(host->irq, host); host 4334 drivers/mmc/host/sdhci.c destroy_workqueue(host->complete_wq); host 4340 drivers/mmc/host/sdhci.c int sdhci_add_host(struct sdhci_host *host) host 4344 drivers/mmc/host/sdhci.c ret = sdhci_setup_host(host); host 4348 drivers/mmc/host/sdhci.c ret = __sdhci_add_host(host); host 4355 drivers/mmc/host/sdhci.c sdhci_cleanup_host(host); host 4361 drivers/mmc/host/sdhci.c void sdhci_remove_host(struct sdhci_host *host, int dead) host 4363 drivers/mmc/host/sdhci.c struct mmc_host *mmc = host->mmc; host 4367 drivers/mmc/host/sdhci.c spin_lock_irqsave(&host->lock, flags); host 4369 drivers/mmc/host/sdhci.c host->flags |= SDHCI_DEVICE_DEAD; host 4371 drivers/mmc/host/sdhci.c if (sdhci_has_requests(host)) { host 4374 drivers/mmc/host/sdhci.c sdhci_error_out_mrqs(host, -ENOMEDIUM); host 4377 drivers/mmc/host/sdhci.c spin_unlock_irqrestore(&host->lock, flags); host 4380 drivers/mmc/host/sdhci.c sdhci_disable_card_detection(host); host 4384 drivers/mmc/host/sdhci.c sdhci_led_unregister(host); host 4387 drivers/mmc/host/sdhci.c sdhci_do_reset(host, SDHCI_RESET_ALL); host 4389 drivers/mmc/host/sdhci.c sdhci_writel(host, 0, SDHCI_INT_ENABLE); host 4390 drivers/mmc/host/sdhci.c sdhci_writel(host, 0, SDHCI_SIGNAL_ENABLE); host 4391 drivers/mmc/host/sdhci.c free_irq(host->irq, host); host 4393 drivers/mmc/host/sdhci.c del_timer_sync(&host->timer); host 4394 drivers/mmc/host/sdhci.c del_timer_sync(&host->data_timer); host 4396 drivers/mmc/host/sdhci.c destroy_workqueue(host->complete_wq); host 4401 drivers/mmc/host/sdhci.c if (host->align_buffer) host 4402 drivers/mmc/host/sdhci.c dma_free_coherent(mmc_dev(mmc), host->align_buffer_sz + host 4403 drivers/mmc/host/sdhci.c host->adma_table_sz, host->align_buffer, host 4404 drivers/mmc/host/sdhci.c host->align_addr); host 4406 drivers/mmc/host/sdhci.c host->adma_table = NULL; host 4407 drivers/mmc/host/sdhci.c host->align_buffer = NULL; host 4412 drivers/mmc/host/sdhci.c void sdhci_free_host(struct sdhci_host *host) host 4414 drivers/mmc/host/sdhci.c mmc_free_host(host->mmc); host 332 drivers/mmc/host/sdhci.h #define SDHCI_ADMA2_64_DESC_SZ(host) ((host)->v4_mode ? 16 : 12) host 613 drivers/mmc/host/sdhci.h u32 (*read_l)(struct sdhci_host *host, int reg); host 614 drivers/mmc/host/sdhci.h u16 (*read_w)(struct sdhci_host *host, int reg); host 615 drivers/mmc/host/sdhci.h u8 (*read_b)(struct sdhci_host *host, int reg); host 616 drivers/mmc/host/sdhci.h void (*write_l)(struct sdhci_host *host, u32 val, int reg); host 617 drivers/mmc/host/sdhci.h void (*write_w)(struct sdhci_host *host, u16 val, int reg); host 618 drivers/mmc/host/sdhci.h void (*write_b)(struct sdhci_host *host, u8 val, int reg); host 621 drivers/mmc/host/sdhci.h void (*set_clock)(struct sdhci_host *host, unsigned int clock); host 622 drivers/mmc/host/sdhci.h void (*set_power)(struct sdhci_host *host, unsigned char mode, host 625 drivers/mmc/host/sdhci.h u32 (*irq)(struct sdhci_host *host, u32 intmask); host 627 drivers/mmc/host/sdhci.h int (*set_dma_mask)(struct sdhci_host *host); host 628 drivers/mmc/host/sdhci.h int (*enable_dma)(struct sdhci_host *host); host 629 drivers/mmc/host/sdhci.h unsigned int (*get_max_clock)(struct sdhci_host *host); host 630 drivers/mmc/host/sdhci.h unsigned int (*get_min_clock)(struct sdhci_host *host); host 632 drivers/mmc/host/sdhci.h unsigned int (*get_timeout_clock)(struct sdhci_host *host); host 633 drivers/mmc/host/sdhci.h unsigned int (*get_max_timeout_count)(struct sdhci_host *host); host 634 drivers/mmc/host/sdhci.h void (*set_timeout)(struct sdhci_host *host, host 636 drivers/mmc/host/sdhci.h void (*set_bus_width)(struct sdhci_host *host, int width); host 637 drivers/mmc/host/sdhci.h void (*platform_send_init_74_clocks)(struct sdhci_host *host, host 639 drivers/mmc/host/sdhci.h unsigned int (*get_ro)(struct sdhci_host *host); host 640 drivers/mmc/host/sdhci.h void (*reset)(struct sdhci_host *host, u8 mask); host 641 drivers/mmc/host/sdhci.h int (*platform_execute_tuning)(struct sdhci_host *host, u32 opcode); host 642 drivers/mmc/host/sdhci.h void (*set_uhs_signaling)(struct sdhci_host *host, unsigned int uhs); host 643 drivers/mmc/host/sdhci.h void (*hw_reset)(struct sdhci_host *host); host 644 drivers/mmc/host/sdhci.h void (*adma_workaround)(struct sdhci_host *host, u32 intmask); host 645 drivers/mmc/host/sdhci.h void (*card_event)(struct sdhci_host *host); host 646 drivers/mmc/host/sdhci.h void (*voltage_switch)(struct sdhci_host *host); host 647 drivers/mmc/host/sdhci.h void (*adma_write_desc)(struct sdhci_host *host, void **desc, host 653 drivers/mmc/host/sdhci.h static inline void sdhci_writel(struct sdhci_host *host, u32 val, int reg) host 655 drivers/mmc/host/sdhci.h if (unlikely(host->ops->write_l)) host 656 drivers/mmc/host/sdhci.h host->ops->write_l(host, val, reg); host 658 drivers/mmc/host/sdhci.h writel(val, host->ioaddr + reg); host 661 drivers/mmc/host/sdhci.h static inline void sdhci_writew(struct sdhci_host *host, u16 val, int reg) host 663 drivers/mmc/host/sdhci.h if (unlikely(host->ops->write_w)) host 664 drivers/mmc/host/sdhci.h host->ops->write_w(host, val, reg); host 666 drivers/mmc/host/sdhci.h writew(val, host->ioaddr + reg); host 669 drivers/mmc/host/sdhci.h static inline void sdhci_writeb(struct sdhci_host *host, u8 val, int reg) host 671 drivers/mmc/host/sdhci.h if (unlikely(host->ops->write_b)) host 672 drivers/mmc/host/sdhci.h host->ops->write_b(host, val, reg); host 674 drivers/mmc/host/sdhci.h writeb(val, host->ioaddr + reg); host 677 drivers/mmc/host/sdhci.h static inline u32 sdhci_readl(struct sdhci_host *host, int reg) host 679 drivers/mmc/host/sdhci.h if (unlikely(host->ops->read_l)) host 680 drivers/mmc/host/sdhci.h return host->ops->read_l(host, reg); host 682 drivers/mmc/host/sdhci.h return readl(host->ioaddr + reg); host 685 drivers/mmc/host/sdhci.h static inline u16 sdhci_readw(struct sdhci_host *host, int reg) host 687 drivers/mmc/host/sdhci.h if (unlikely(host->ops->read_w)) host 688 drivers/mmc/host/sdhci.h return host->ops->read_w(host, reg); host 690 drivers/mmc/host/sdhci.h return readw(host->ioaddr + reg); host 693 drivers/mmc/host/sdhci.h static inline u8 sdhci_readb(struct sdhci_host *host, int reg) host 695 drivers/mmc/host/sdhci.h if (unlikely(host->ops->read_b)) host 696 drivers/mmc/host/sdhci.h return host->ops->read_b(host, reg); host 698 drivers/mmc/host/sdhci.h return readb(host->ioaddr + reg); host 703 drivers/mmc/host/sdhci.h static inline void sdhci_writel(struct sdhci_host *host, u32 val, int reg) host 705 drivers/mmc/host/sdhci.h writel(val, host->ioaddr + reg); host 708 drivers/mmc/host/sdhci.h static inline void sdhci_writew(struct sdhci_host *host, u16 val, int reg) host 710 drivers/mmc/host/sdhci.h writew(val, host->ioaddr + reg); host 713 drivers/mmc/host/sdhci.h static inline void sdhci_writeb(struct sdhci_host *host, u8 val, int reg) host 715 drivers/mmc/host/sdhci.h writeb(val, host->ioaddr + reg); host 718 drivers/mmc/host/sdhci.h static inline u32 sdhci_readl(struct sdhci_host *host, int reg) host 720 drivers/mmc/host/sdhci.h return readl(host->ioaddr + reg); host 723 drivers/mmc/host/sdhci.h static inline u16 sdhci_readw(struct sdhci_host *host, int reg) host 725 drivers/mmc/host/sdhci.h return readw(host->ioaddr + reg); host 728 drivers/mmc/host/sdhci.h static inline u8 sdhci_readb(struct sdhci_host *host, int reg) host 730 drivers/mmc/host/sdhci.h return readb(host->ioaddr + reg); host 736 drivers/mmc/host/sdhci.h void sdhci_free_host(struct sdhci_host *host); host 738 drivers/mmc/host/sdhci.h static inline void *sdhci_priv(struct sdhci_host *host) host 740 drivers/mmc/host/sdhci.h return host->private; host 743 drivers/mmc/host/sdhci.h void sdhci_card_detect(struct sdhci_host *host); host 744 drivers/mmc/host/sdhci.h void __sdhci_read_caps(struct sdhci_host *host, const u16 *ver, host 746 drivers/mmc/host/sdhci.h int sdhci_setup_host(struct sdhci_host *host); host 747 drivers/mmc/host/sdhci.h void sdhci_cleanup_host(struct sdhci_host *host); host 748 drivers/mmc/host/sdhci.h int __sdhci_add_host(struct sdhci_host *host); host 749 drivers/mmc/host/sdhci.h int sdhci_add_host(struct sdhci_host *host); host 750 drivers/mmc/host/sdhci.h void sdhci_remove_host(struct sdhci_host *host, int dead); host 751 drivers/mmc/host/sdhci.h void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd); host 753 drivers/mmc/host/sdhci.h static inline void sdhci_read_caps(struct sdhci_host *host) host 755 drivers/mmc/host/sdhci.h __sdhci_read_caps(host, NULL, NULL, NULL); host 758 drivers/mmc/host/sdhci.h u16 sdhci_calc_clk(struct sdhci_host *host, unsigned int clock, host 760 drivers/mmc/host/sdhci.h void sdhci_set_clock(struct sdhci_host *host, unsigned int clock); host 761 drivers/mmc/host/sdhci.h void sdhci_enable_clk(struct sdhci_host *host, u16 clk); host 762 drivers/mmc/host/sdhci.h void sdhci_set_power(struct sdhci_host *host, unsigned char mode, host 764 drivers/mmc/host/sdhci.h void sdhci_set_power_noreg(struct sdhci_host *host, unsigned char mode, host 767 drivers/mmc/host/sdhci.h void sdhci_set_bus_width(struct sdhci_host *host, int width); host 768 drivers/mmc/host/sdhci.h void sdhci_reset(struct sdhci_host *host, u8 mask); host 769 drivers/mmc/host/sdhci.h void sdhci_set_uhs_signaling(struct sdhci_host *host, unsigned timing); host 775 drivers/mmc/host/sdhci.h void sdhci_adma_write_desc(struct sdhci_host *host, void **desc, host 779 drivers/mmc/host/sdhci.h int sdhci_suspend_host(struct sdhci_host *host); host 780 drivers/mmc/host/sdhci.h int sdhci_resume_host(struct sdhci_host *host); host 781 drivers/mmc/host/sdhci.h int sdhci_runtime_suspend_host(struct sdhci_host *host); host 782 drivers/mmc/host/sdhci.h int sdhci_runtime_resume_host(struct sdhci_host *host, int soft_reset); host 787 drivers/mmc/host/sdhci.h bool sdhci_cqe_irq(struct sdhci_host *host, u32 intmask, int *cmd_error, host 790 drivers/mmc/host/sdhci.h void sdhci_dumpregs(struct sdhci_host *host); host 791 drivers/mmc/host/sdhci.h void sdhci_enable_v4_mode(struct sdhci_host *host); host 793 drivers/mmc/host/sdhci.h void sdhci_start_tuning(struct sdhci_host *host); host 794 drivers/mmc/host/sdhci.h void sdhci_end_tuning(struct sdhci_host *host); host 795 drivers/mmc/host/sdhci.h void sdhci_reset_tuning(struct sdhci_host *host); host 796 drivers/mmc/host/sdhci.h void sdhci_send_tuning(struct sdhci_host *host, u32 opcode); host 797 drivers/mmc/host/sdhci.h void sdhci_abort_tuning(struct sdhci_host *host, u32 opcode); host 798 drivers/mmc/host/sdhci.h void sdhci_set_data_timeout_irq(struct sdhci_host *host, bool enable); host 799 drivers/mmc/host/sdhci.h void __sdhci_set_timeout(struct sdhci_host *host, struct mmc_command *cmd); host 97 drivers/mmc/host/sdhci_am654.c static void sdhci_am654_set_clock(struct sdhci_host *host, unsigned int clock) host 99 drivers/mmc/host/sdhci_am654.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 111 drivers/mmc/host/sdhci_am654.c sdhci_set_clock(host, clock); host 120 drivers/mmc/host/sdhci_am654.c if (host->mmc->ios.timing == MMC_TIMING_MMC_HS400) { host 184 drivers/mmc/host/sdhci_am654.c dev_err(mmc_dev(host->mmc), "DLL failed to relock\n"); host 192 drivers/mmc/host/sdhci_am654.c static void sdhci_j721e_4bit_set_clock(struct sdhci_host *host, host 195 drivers/mmc/host/sdhci_am654.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 204 drivers/mmc/host/sdhci_am654.c sdhci_set_clock(host, clock); host 207 drivers/mmc/host/sdhci_am654.c static void sdhci_am654_set_power(struct sdhci_host *host, unsigned char mode, host 210 drivers/mmc/host/sdhci_am654.c if (!IS_ERR(host->mmc->supply.vmmc)) { host 211 drivers/mmc/host/sdhci_am654.c struct mmc_host *mmc = host->mmc; host 215 drivers/mmc/host/sdhci_am654.c sdhci_set_power_noreg(host, mode, vdd); host 218 drivers/mmc/host/sdhci_am654.c static void sdhci_am654_write_b(struct sdhci_host *host, u8 val, int reg) host 220 drivers/mmc/host/sdhci_am654.c unsigned char timing = host->mmc->ios.timing; host 236 drivers/mmc/host/sdhci_am654.c writeb(val, host->ioaddr + reg); host 241 drivers/mmc/host/sdhci_am654.c struct sdhci_host *host = mmc_priv(mmc); host 250 drivers/mmc/host/sdhci_am654.c sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); host 320 drivers/mmc/host/sdhci_am654.c static int sdhci_am654_init(struct sdhci_host *host) host 322 drivers/mmc/host/sdhci_am654.c struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); host 354 drivers/mmc/host/sdhci_am654.c if (host->mmc->caps & MMC_CAP_NONREMOVABLE) host 360 drivers/mmc/host/sdhci_am654.c return sdhci_add_host(host); host 437 drivers/mmc/host/sdhci_am654.c struct sdhci_host *host; host 446 drivers/mmc/host/sdhci_am654.c host = sdhci_pltfm_init(pdev, drvdata->pdata, sizeof(*sdhci_am654)); host 447 drivers/mmc/host/sdhci_am654.c if (IS_ERR(host)) host 448 drivers/mmc/host/sdhci_am654.c return PTR_ERR(host); host 450 drivers/mmc/host/sdhci_am654.c pltfm_host = sdhci_priv(host); host 490 drivers/mmc/host/sdhci_am654.c ret = mmc_of_parse(host->mmc); host 496 drivers/mmc/host/sdhci_am654.c host->mmc_host_ops.execute_tuning = sdhci_am654_execute_tuning; host 498 drivers/mmc/host/sdhci_am654.c ret = sdhci_am654_init(host); host 515 drivers/mmc/host/sdhci_am654.c struct sdhci_host *host = platform_get_drvdata(pdev); host 518 drivers/mmc/host/sdhci_am654.c sdhci_remove_host(host, true); host 53 drivers/mmc/host/sdhci_f_sdh30.c static void sdhci_f_sdh30_soft_voltage_switch(struct sdhci_host *host) host 55 drivers/mmc/host/sdhci_f_sdh30.c struct f_sdhost_priv *priv = sdhci_priv(host); host 59 drivers/mmc/host/sdhci_f_sdh30.c ctrl = sdhci_readl(host, F_SDH30_IO_CONTROL2); host 61 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writel(host, ctrl, F_SDH30_IO_CONTROL2); host 63 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writel(host, ctrl, F_SDH30_IO_CONTROL2); host 66 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writel(host, ctrl, F_SDH30_IO_CONTROL2); host 71 drivers/mmc/host/sdhci_f_sdh30.c ctrl = sdhci_readl(host, F_SDH30_ESD_CONTROL); host 73 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writel(host, ctrl, F_SDH30_ESD_CONTROL); host 76 drivers/mmc/host/sdhci_f_sdh30.c ctrl = sdhci_readl(host, F_SDH30_TUNING_SETTING); host 78 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writel(host, ctrl, F_SDH30_TUNING_SETTING); host 81 drivers/mmc/host/sdhci_f_sdh30.c static unsigned int sdhci_f_sdh30_get_min_clock(struct sdhci_host *host) host 86 drivers/mmc/host/sdhci_f_sdh30.c static void sdhci_f_sdh30_reset(struct sdhci_host *host, u8 mask) host 88 drivers/mmc/host/sdhci_f_sdh30.c struct f_sdhost_priv *priv = sdhci_priv(host); host 91 drivers/mmc/host/sdhci_f_sdh30.c if (sdhci_readw(host, SDHCI_CLOCK_CONTROL) == 0) host 92 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writew(host, 0xBC01, SDHCI_CLOCK_CONTROL); host 94 drivers/mmc/host/sdhci_f_sdh30.c sdhci_reset(host, mask); host 97 drivers/mmc/host/sdhci_f_sdh30.c ctl = sdhci_readl(host, F_SDH30_ESD_CONTROL); host 99 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writel(host, ctl, F_SDH30_ESD_CONTROL); host 114 drivers/mmc/host/sdhci_f_sdh30.c struct sdhci_host *host; host 125 drivers/mmc/host/sdhci_f_sdh30.c host = sdhci_alloc_host(dev, sizeof(struct f_sdhost_priv)); host 126 drivers/mmc/host/sdhci_f_sdh30.c if (IS_ERR(host)) host 127 drivers/mmc/host/sdhci_f_sdh30.c return PTR_ERR(host); host 129 drivers/mmc/host/sdhci_f_sdh30.c priv = sdhci_priv(host); host 132 drivers/mmc/host/sdhci_f_sdh30.c host->quirks = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC | host 134 drivers/mmc/host/sdhci_f_sdh30.c host->quirks2 = SDHCI_QUIRK2_SUPPORT_SINGLE | host 140 drivers/mmc/host/sdhci_f_sdh30.c ret = mmc_of_parse(host->mmc); host 144 drivers/mmc/host/sdhci_f_sdh30.c platform_set_drvdata(pdev, host); host 146 drivers/mmc/host/sdhci_f_sdh30.c host->hw_name = "f_sdh30"; host 147 drivers/mmc/host/sdhci_f_sdh30.c host->ops = &sdhci_f_sdh30_ops; host 148 drivers/mmc/host/sdhci_f_sdh30.c host->irq = irq; host 151 drivers/mmc/host/sdhci_f_sdh30.c host->ioaddr = devm_ioremap_resource(&pdev->dev, res); host 152 drivers/mmc/host/sdhci_f_sdh30.c if (IS_ERR(host->ioaddr)) { host 153 drivers/mmc/host/sdhci_f_sdh30.c ret = PTR_ERR(host->ioaddr); host 182 drivers/mmc/host/sdhci_f_sdh30.c ctrl = sdhci_readw(host, F_SDH30_AHB_CONFIG); host 186 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writew(host, ctrl, F_SDH30_AHB_CONFIG); host 188 drivers/mmc/host/sdhci_f_sdh30.c reg = sdhci_readl(host, F_SDH30_ESD_CONTROL); host 189 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writel(host, reg & ~F_SDH30_EMMC_RST, F_SDH30_ESD_CONTROL); host 191 drivers/mmc/host/sdhci_f_sdh30.c sdhci_writel(host, reg | F_SDH30_EMMC_RST, F_SDH30_ESD_CONTROL); host 193 drivers/mmc/host/sdhci_f_sdh30.c reg = sdhci_readl(host, SDHCI_CAPABILITIES); host 197 drivers/mmc/host/sdhci_f_sdh30.c ret = sdhci_add_host(host); host 208 drivers/mmc/host/sdhci_f_sdh30.c sdhci_free_host(host); host 214 drivers/mmc/host/sdhci_f_sdh30.c struct sdhci_host *host = platform_get_drvdata(pdev); host 215 drivers/mmc/host/sdhci_f_sdh30.c struct f_sdhost_priv *priv = sdhci_priv(host); host 217 drivers/mmc/host/sdhci_f_sdh30.c sdhci_remove_host(host, readl(host->ioaddr + SDHCI_INT_STATUS) == host 223 drivers/mmc/host/sdhci_f_sdh30.c sdhci_free_host(host); host 88 drivers/mmc/host/sdricoh_cs.c static inline unsigned int sdricoh_readl(struct sdricoh_host *host, host 91 drivers/mmc/host/sdricoh_cs.c unsigned int value = readl(host->iobase + reg); host 92 drivers/mmc/host/sdricoh_cs.c dev_vdbg(host->dev, "rl %x 0x%x\n", reg, value); host 96 drivers/mmc/host/sdricoh_cs.c static inline void sdricoh_writel(struct sdricoh_host *host, unsigned int reg, host 99 drivers/mmc/host/sdricoh_cs.c writel(value, host->iobase + reg); host 100 drivers/mmc/host/sdricoh_cs.c dev_vdbg(host->dev, "wl %x 0x%x\n", reg, value); host 104 drivers/mmc/host/sdricoh_cs.c static inline unsigned int sdricoh_readw(struct sdricoh_host *host, host 107 drivers/mmc/host/sdricoh_cs.c unsigned int value = readw(host->iobase + reg); host 108 drivers/mmc/host/sdricoh_cs.c dev_vdbg(host->dev, "rb %x 0x%x\n", reg, value); host 112 drivers/mmc/host/sdricoh_cs.c static inline void sdricoh_writew(struct sdricoh_host *host, unsigned int reg, host 115 drivers/mmc/host/sdricoh_cs.c writew(value, host->iobase + reg); host 116 drivers/mmc/host/sdricoh_cs.c dev_vdbg(host->dev, "ww %x 0x%x\n", reg, value); host 119 drivers/mmc/host/sdricoh_cs.c static inline unsigned int sdricoh_readb(struct sdricoh_host *host, host 122 drivers/mmc/host/sdricoh_cs.c unsigned int value = readb(host->iobase + reg); host 123 drivers/mmc/host/sdricoh_cs.c dev_vdbg(host->dev, "rb %x 0x%x\n", reg, value); host 127 drivers/mmc/host/sdricoh_cs.c static int sdricoh_query_status(struct sdricoh_host *host, unsigned int wanted, host 131 drivers/mmc/host/sdricoh_cs.c struct device *dev = host->dev; host 133 drivers/mmc/host/sdricoh_cs.c status = sdricoh_readl(host, R21C_STATUS); host 134 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R2E4_STATUS_RESP, status); host 153 drivers/mmc/host/sdricoh_cs.c static int sdricoh_mmc_cmd(struct sdricoh_host *host, unsigned char opcode, host 160 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R21C_STATUS, 0x18); host 162 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R204_CMD_ARG, arg); host 163 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R200_CMD, (0x10000 << 8) | opcode); host 167 drivers/mmc/host/sdricoh_cs.c status = sdricoh_readl(host, R21C_STATUS); host 168 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R2E4_STATUS_RESP, status); host 184 drivers/mmc/host/sdricoh_cs.c static int sdricoh_reset(struct sdricoh_host *host) host 186 drivers/mmc/host/sdricoh_cs.c dev_dbg(host->dev, "reset\n"); host 187 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R2F0_RESET, 0x10001); host 188 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R2E0_INIT, 0x10000); host 189 drivers/mmc/host/sdricoh_cs.c if (sdricoh_readl(host, R2E0_INIT) != 0x10000) host 191 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R2E0_INIT, 0x10007); host 193 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R224_MODE, 0x2000000); host 194 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R228_POWER, 0xe0); host 198 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R21C_STATUS, 0x18); host 203 drivers/mmc/host/sdricoh_cs.c static int sdricoh_blockio(struct sdricoh_host *host, int read, host 210 drivers/mmc/host/sdricoh_cs.c if (sdricoh_query_status(host, STATUS_READY_TO_READ, host 213 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R21C_STATUS, 0x18); host 216 drivers/mmc/host/sdricoh_cs.c data = sdricoh_readl(host, R230_DATA); host 227 drivers/mmc/host/sdricoh_cs.c if (sdricoh_query_status(host, STATUS_READY_TO_WRITE, host 230 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R21C_STATUS, 0x18); host 241 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R230_DATA, data); host 250 drivers/mmc/host/sdricoh_cs.c struct sdricoh_host *host = mmc_priv(mmc); host 253 drivers/mmc/host/sdricoh_cs.c struct device *dev = host->dev; host 260 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R21C_STATUS, 0x18); host 263 drivers/mmc/host/sdricoh_cs.c if (host->app_cmd) { host 265 drivers/mmc/host/sdricoh_cs.c host->app_cmd = 0; host 267 drivers/mmc/host/sdricoh_cs.c host->app_cmd = 1; host 271 drivers/mmc/host/sdricoh_cs.c sdricoh_writew(host, R226_BLOCKSIZE, data->blksz); host 272 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R208_DATAIO, 0); host 275 drivers/mmc/host/sdricoh_cs.c cmd->error = sdricoh_mmc_cmd(host, opcode, cmd->arg); host 283 drivers/mmc/host/sdricoh_cs.c sdricoh_readl(host, host 287 drivers/mmc/host/sdricoh_cs.c sdricoh_readb(host, R20C_RESP + host 291 drivers/mmc/host/sdricoh_cs.c cmd->resp[0] = sdricoh_readl(host, R20C_RESP); host 301 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R21C_STATUS, 0x837f031e); host 311 drivers/mmc/host/sdricoh_cs.c sdricoh_blockio(host, host 324 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R208_DATAIO, 1); host 326 drivers/mmc/host/sdricoh_cs.c if (sdricoh_query_status(host, STATUS_TRANSFER_FINISHED, host 340 drivers/mmc/host/sdricoh_cs.c struct sdricoh_host *host = mmc_priv(mmc); host 341 drivers/mmc/host/sdricoh_cs.c dev_dbg(host->dev, "set_ios\n"); host 344 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R228_POWER, 0xc0e0); host 347 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R224_MODE, 0x2000300); host 348 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R228_POWER, 0x40e0); host 350 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R224_MODE, 0x2000340); host 354 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R224_MODE, 0x2000320); host 355 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R228_POWER, 0xe0); host 361 drivers/mmc/host/sdricoh_cs.c struct sdricoh_host *host = mmc_priv(mmc); host 364 drivers/mmc/host/sdricoh_cs.c status = sdricoh_readl(host, R21C_STATUS); host 365 drivers/mmc/host/sdricoh_cs.c sdricoh_writel(host, R2E4_STATUS_RESP, status); host 387 drivers/mmc/host/sdricoh_cs.c struct sdricoh_host *host; host 415 drivers/mmc/host/sdricoh_cs.c host = mmc_priv(mmc); host 417 drivers/mmc/host/sdricoh_cs.c host->iobase = iobase; host 418 drivers/mmc/host/sdricoh_cs.c host->dev = dev; host 419 drivers/mmc/host/sdricoh_cs.c host->pci_dev = pci_dev; host 434 drivers/mmc/host/sdricoh_cs.c if (sdricoh_reset(host)) { host 485 drivers/mmc/host/sdricoh_cs.c struct sdricoh_host *host = mmc_priv(mmc); host 487 drivers/mmc/host/sdricoh_cs.c pci_iounmap(host->pci_dev, host->iobase); host 488 drivers/mmc/host/sdricoh_cs.c pci_dev_put(host->pci_dev); host 258 drivers/mmc/host/sh_mmcif.c #define sh_mmcif_host_to_dev(host) (&host->pd->dev) host 260 drivers/mmc/host/sh_mmcif.c static inline void sh_mmcif_bitset(struct sh_mmcif_host *host, host 263 drivers/mmc/host/sh_mmcif.c writel(val | readl(host->addr + reg), host->addr + reg); host 266 drivers/mmc/host/sh_mmcif.c static inline void sh_mmcif_bitclr(struct sh_mmcif_host *host, host 269 drivers/mmc/host/sh_mmcif.c writel(~val & readl(host->addr + reg), host->addr + reg); host 274 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host = arg; host 275 drivers/mmc/host/sh_mmcif.c struct mmc_request *mrq = host->mrq; host 276 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 284 drivers/mmc/host/sh_mmcif.c complete(&host->dma_complete); host 287 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_start_dma_rx(struct sh_mmcif_host *host) host 289 drivers/mmc/host/sh_mmcif.c struct mmc_data *data = host->mrq->data; host 292 drivers/mmc/host/sh_mmcif.c struct dma_chan *chan = host->chan_rx; host 293 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 300 drivers/mmc/host/sh_mmcif.c host->dma_active = true; host 307 drivers/mmc/host/sh_mmcif.c desc->callback_param = host; host 309 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_BUF_ACC, BUF_ACC_DMAREN); host 319 drivers/mmc/host/sh_mmcif.c host->chan_rx = NULL; host 320 drivers/mmc/host/sh_mmcif.c host->dma_active = false; host 323 drivers/mmc/host/sh_mmcif.c chan = host->chan_tx; host 325 drivers/mmc/host/sh_mmcif.c host->chan_tx = NULL; host 330 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitclr(host, MMCIF_CE_BUF_ACC, BUF_ACC_DMAREN | BUF_ACC_DMAWEN); host 337 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_start_dma_tx(struct sh_mmcif_host *host) host 339 drivers/mmc/host/sh_mmcif.c struct mmc_data *data = host->mrq->data; host 342 drivers/mmc/host/sh_mmcif.c struct dma_chan *chan = host->chan_tx; host 343 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 350 drivers/mmc/host/sh_mmcif.c host->dma_active = true; host 357 drivers/mmc/host/sh_mmcif.c desc->callback_param = host; host 359 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_BUF_ACC, BUF_ACC_DMAWEN); host 369 drivers/mmc/host/sh_mmcif.c host->chan_tx = NULL; host 370 drivers/mmc/host/sh_mmcif.c host->dma_active = false; host 373 drivers/mmc/host/sh_mmcif.c chan = host->chan_rx; host 375 drivers/mmc/host/sh_mmcif.c host->chan_rx = NULL; host 380 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitclr(host, MMCIF_CE_BUF_ACC, BUF_ACC_DMAREN | BUF_ACC_DMAWEN); host 388 drivers/mmc/host/sh_mmcif.c sh_mmcif_request_dma_pdata(struct sh_mmcif_host *host, uintptr_t slave_id) host 400 drivers/mmc/host/sh_mmcif.c static int sh_mmcif_dma_slave_config(struct sh_mmcif_host *host, host 407 drivers/mmc/host/sh_mmcif.c res = platform_get_resource(host->pd, IORESOURCE_MEM, 0); host 421 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_request_dma(struct sh_mmcif_host *host) host 423 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 424 drivers/mmc/host/sh_mmcif.c host->dma_active = false; host 430 drivers/mmc/host/sh_mmcif.c host->chan_tx = sh_mmcif_request_dma_pdata(host, host 432 drivers/mmc/host/sh_mmcif.c host->chan_rx = sh_mmcif_request_dma_pdata(host, host 435 drivers/mmc/host/sh_mmcif.c host->chan_tx = dma_request_slave_channel(dev, "tx"); host 436 drivers/mmc/host/sh_mmcif.c host->chan_rx = dma_request_slave_channel(dev, "rx"); host 438 drivers/mmc/host/sh_mmcif.c dev_dbg(dev, "%s: got channel TX %p RX %p\n", __func__, host->chan_tx, host 439 drivers/mmc/host/sh_mmcif.c host->chan_rx); host 441 drivers/mmc/host/sh_mmcif.c if (!host->chan_tx || !host->chan_rx || host 442 drivers/mmc/host/sh_mmcif.c sh_mmcif_dma_slave_config(host, host->chan_tx, DMA_MEM_TO_DEV) || host 443 drivers/mmc/host/sh_mmcif.c sh_mmcif_dma_slave_config(host, host->chan_rx, DMA_DEV_TO_MEM)) host 449 drivers/mmc/host/sh_mmcif.c if (host->chan_tx) host 450 drivers/mmc/host/sh_mmcif.c dma_release_channel(host->chan_tx); host 451 drivers/mmc/host/sh_mmcif.c if (host->chan_rx) host 452 drivers/mmc/host/sh_mmcif.c dma_release_channel(host->chan_rx); host 453 drivers/mmc/host/sh_mmcif.c host->chan_tx = host->chan_rx = NULL; host 456 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_release_dma(struct sh_mmcif_host *host) host 458 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitclr(host, MMCIF_CE_BUF_ACC, BUF_ACC_DMAREN | BUF_ACC_DMAWEN); host 460 drivers/mmc/host/sh_mmcif.c if (host->chan_tx) { host 461 drivers/mmc/host/sh_mmcif.c struct dma_chan *chan = host->chan_tx; host 462 drivers/mmc/host/sh_mmcif.c host->chan_tx = NULL; host 465 drivers/mmc/host/sh_mmcif.c if (host->chan_rx) { host 466 drivers/mmc/host/sh_mmcif.c struct dma_chan *chan = host->chan_rx; host 467 drivers/mmc/host/sh_mmcif.c host->chan_rx = NULL; host 471 drivers/mmc/host/sh_mmcif.c host->dma_active = false; host 474 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_clock_control(struct sh_mmcif_host *host, unsigned int clk) host 476 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 479 drivers/mmc/host/sh_mmcif.c unsigned int current_clk = clk_get_rate(host->clk); host 482 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitclr(host, MMCIF_CE_CLK_CTRL, CLK_ENABLE); host 483 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitclr(host, MMCIF_CE_CLK_CTRL, CLK_CLEAR); host 488 drivers/mmc/host/sh_mmcif.c if (host->clkdiv_map) { host 496 drivers/mmc/host/sh_mmcif.c if (!((1 << i) & host->clkdiv_map)) host 505 drivers/mmc/host/sh_mmcif.c freq = clk_round_rate(host->clk, clk * div); host 520 drivers/mmc/host/sh_mmcif.c clk_set_rate(host->clk, best_freq); host 528 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_CLK_CTRL, CLK_CLEAR & clkdiv); host 529 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_CLK_CTRL, CLK_ENABLE); host 532 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_sync_reset(struct sh_mmcif_host *host) host 536 drivers/mmc/host/sh_mmcif.c tmp = 0x010f0000 & sh_mmcif_readl(host->addr, MMCIF_CE_CLK_CTRL); host 538 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_VERSION, SOFT_RST_ON); host 539 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_VERSION, SOFT_RST_OFF); host 540 drivers/mmc/host/sh_mmcif.c if (host->ccs_enable) host 542 drivers/mmc/host/sh_mmcif.c if (host->clk_ctrl2_enable) host 543 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_CLK_CTRL2, 0x0F0F0000); host 544 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_CLK_CTRL, tmp | host 547 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_BUF_ACC, BUF_ACC_ATYP); host 550 drivers/mmc/host/sh_mmcif.c static int sh_mmcif_error_manage(struct sh_mmcif_host *host) host 552 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 556 drivers/mmc/host/sh_mmcif.c host->sd_error = false; host 558 drivers/mmc/host/sh_mmcif.c state1 = sh_mmcif_readl(host->addr, MMCIF_CE_HOST_STS1); host 559 drivers/mmc/host/sh_mmcif.c state2 = sh_mmcif_readl(host->addr, MMCIF_CE_HOST_STS2); host 564 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_CMD_CTRL, CMD_CTRL_BREAK); host 565 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_CMD_CTRL, ~CMD_CTRL_BREAK); host 567 drivers/mmc/host/sh_mmcif.c if (!(sh_mmcif_readl(host->addr, MMCIF_CE_HOST_STS1) host 577 drivers/mmc/host/sh_mmcif.c sh_mmcif_sync_reset(host); host 584 drivers/mmc/host/sh_mmcif.c host->state, host->wait_for); host 588 drivers/mmc/host/sh_mmcif.c host->state, host->wait_for); host 592 drivers/mmc/host/sh_mmcif.c host->state, host->wait_for); host 598 drivers/mmc/host/sh_mmcif.c static bool sh_mmcif_next_block(struct sh_mmcif_host *host, u32 *p) host 600 drivers/mmc/host/sh_mmcif.c struct mmc_data *data = host->mrq->data; host 602 drivers/mmc/host/sh_mmcif.c host->sg_blkidx += host->blocksize; host 605 drivers/mmc/host/sh_mmcif.c BUG_ON(host->sg_blkidx > data->sg->length); host 607 drivers/mmc/host/sh_mmcif.c if (host->sg_blkidx == data->sg->length) { host 608 drivers/mmc/host/sh_mmcif.c host->sg_blkidx = 0; host 609 drivers/mmc/host/sh_mmcif.c if (++host->sg_idx < data->sg_len) host 610 drivers/mmc/host/sh_mmcif.c host->pio_ptr = sg_virt(++data->sg); host 612 drivers/mmc/host/sh_mmcif.c host->pio_ptr = p; host 615 drivers/mmc/host/sh_mmcif.c return host->sg_idx != data->sg_len; host 618 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_single_read(struct sh_mmcif_host *host, host 621 drivers/mmc/host/sh_mmcif.c host->blocksize = (sh_mmcif_readl(host->addr, MMCIF_CE_BLOCK_SET) & host 624 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_READ; host 627 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MBUFREN); host 630 drivers/mmc/host/sh_mmcif.c static bool sh_mmcif_read_block(struct sh_mmcif_host *host) host 632 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 633 drivers/mmc/host/sh_mmcif.c struct mmc_data *data = host->mrq->data; host 637 drivers/mmc/host/sh_mmcif.c if (host->sd_error) { host 638 drivers/mmc/host/sh_mmcif.c data->error = sh_mmcif_error_manage(host); host 643 drivers/mmc/host/sh_mmcif.c for (i = 0; i < host->blocksize / 4; i++) host 644 drivers/mmc/host/sh_mmcif.c *p++ = sh_mmcif_readl(host->addr, MMCIF_CE_DATA); host 647 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MBUFRE); host 648 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_READ_END; host 653 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_multi_read(struct sh_mmcif_host *host, host 661 drivers/mmc/host/sh_mmcif.c host->blocksize = sh_mmcif_readl(host->addr, MMCIF_CE_BLOCK_SET) & host 664 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_MREAD; host 665 drivers/mmc/host/sh_mmcif.c host->sg_idx = 0; host 666 drivers/mmc/host/sh_mmcif.c host->sg_blkidx = 0; host 667 drivers/mmc/host/sh_mmcif.c host->pio_ptr = sg_virt(data->sg); host 669 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MBUFREN); host 672 drivers/mmc/host/sh_mmcif.c static bool sh_mmcif_mread_block(struct sh_mmcif_host *host) host 674 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 675 drivers/mmc/host/sh_mmcif.c struct mmc_data *data = host->mrq->data; host 676 drivers/mmc/host/sh_mmcif.c u32 *p = host->pio_ptr; host 679 drivers/mmc/host/sh_mmcif.c if (host->sd_error) { host 680 drivers/mmc/host/sh_mmcif.c data->error = sh_mmcif_error_manage(host); host 687 drivers/mmc/host/sh_mmcif.c for (i = 0; i < host->blocksize / 4; i++) host 688 drivers/mmc/host/sh_mmcif.c *p++ = sh_mmcif_readl(host->addr, MMCIF_CE_DATA); host 690 drivers/mmc/host/sh_mmcif.c if (!sh_mmcif_next_block(host, p)) host 693 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MBUFREN); host 698 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_single_write(struct sh_mmcif_host *host, host 701 drivers/mmc/host/sh_mmcif.c host->blocksize = (sh_mmcif_readl(host->addr, MMCIF_CE_BLOCK_SET) & host 704 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_WRITE; host 707 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MBUFWEN); host 710 drivers/mmc/host/sh_mmcif.c static bool sh_mmcif_write_block(struct sh_mmcif_host *host) host 712 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 713 drivers/mmc/host/sh_mmcif.c struct mmc_data *data = host->mrq->data; host 717 drivers/mmc/host/sh_mmcif.c if (host->sd_error) { host 718 drivers/mmc/host/sh_mmcif.c data->error = sh_mmcif_error_manage(host); host 723 drivers/mmc/host/sh_mmcif.c for (i = 0; i < host->blocksize / 4; i++) host 724 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_DATA, *p++); host 727 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MDTRANE); host 728 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_WRITE_END; host 733 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_multi_write(struct sh_mmcif_host *host, host 741 drivers/mmc/host/sh_mmcif.c host->blocksize = sh_mmcif_readl(host->addr, MMCIF_CE_BLOCK_SET) & host 744 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_MWRITE; host 745 drivers/mmc/host/sh_mmcif.c host->sg_idx = 0; host 746 drivers/mmc/host/sh_mmcif.c host->sg_blkidx = 0; host 747 drivers/mmc/host/sh_mmcif.c host->pio_ptr = sg_virt(data->sg); host 749 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MBUFWEN); host 752 drivers/mmc/host/sh_mmcif.c static bool sh_mmcif_mwrite_block(struct sh_mmcif_host *host) host 754 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 755 drivers/mmc/host/sh_mmcif.c struct mmc_data *data = host->mrq->data; host 756 drivers/mmc/host/sh_mmcif.c u32 *p = host->pio_ptr; host 759 drivers/mmc/host/sh_mmcif.c if (host->sd_error) { host 760 drivers/mmc/host/sh_mmcif.c data->error = sh_mmcif_error_manage(host); host 767 drivers/mmc/host/sh_mmcif.c for (i = 0; i < host->blocksize / 4; i++) host 768 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_DATA, *p++); host 770 drivers/mmc/host/sh_mmcif.c if (!sh_mmcif_next_block(host, p)) host 773 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MBUFWEN); host 778 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_get_response(struct sh_mmcif_host *host, host 782 drivers/mmc/host/sh_mmcif.c cmd->resp[0] = sh_mmcif_readl(host->addr, MMCIF_CE_RESP3); host 783 drivers/mmc/host/sh_mmcif.c cmd->resp[1] = sh_mmcif_readl(host->addr, MMCIF_CE_RESP2); host 784 drivers/mmc/host/sh_mmcif.c cmd->resp[2] = sh_mmcif_readl(host->addr, MMCIF_CE_RESP1); host 785 drivers/mmc/host/sh_mmcif.c cmd->resp[3] = sh_mmcif_readl(host->addr, MMCIF_CE_RESP0); host 787 drivers/mmc/host/sh_mmcif.c cmd->resp[0] = sh_mmcif_readl(host->addr, MMCIF_CE_RESP0); host 790 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_get_cmd12response(struct sh_mmcif_host *host, host 793 drivers/mmc/host/sh_mmcif.c cmd->resp[0] = sh_mmcif_readl(host->addr, MMCIF_CE_RESP_CMD12); host 796 drivers/mmc/host/sh_mmcif.c static u32 sh_mmcif_set_cmd(struct sh_mmcif_host *host, host 799 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 828 drivers/mmc/host/sh_mmcif.c switch (host->bus_width) { host 842 drivers/mmc/host/sh_mmcif.c switch (host->timing) { host 861 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_BLOCK_SET, host 879 drivers/mmc/host/sh_mmcif.c static int sh_mmcif_data_trans(struct sh_mmcif_host *host, host 882 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 886 drivers/mmc/host/sh_mmcif.c sh_mmcif_multi_read(host, mrq); host 889 drivers/mmc/host/sh_mmcif.c sh_mmcif_multi_write(host, mrq); host 892 drivers/mmc/host/sh_mmcif.c sh_mmcif_single_write(host, mrq); host 896 drivers/mmc/host/sh_mmcif.c sh_mmcif_single_read(host, mrq); host 904 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_start_cmd(struct sh_mmcif_host *host, host 917 drivers/mmc/host/sh_mmcif.c if (host->ccs_enable) host 921 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_BLOCK_SET, 0); host 922 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_BLOCK_SET, host 925 drivers/mmc/host/sh_mmcif.c opc = sh_mmcif_set_cmd(host, mrq); host 927 drivers/mmc/host/sh_mmcif.c if (host->ccs_enable) host 928 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_INT, 0xD80430C0); host 930 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_INT, 0xD80430C0 | INT_CCS); host 931 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, mask); host 933 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_ARG, cmd->arg); host 935 drivers/mmc/host/sh_mmcif.c spin_lock_irqsave(&host->lock, flags); host 936 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_CMD_SET, opc); host 938 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_CMD; host 939 drivers/mmc/host/sh_mmcif.c schedule_delayed_work(&host->timeout_work, host->timeout); host 940 drivers/mmc/host/sh_mmcif.c spin_unlock_irqrestore(&host->lock, flags); host 943 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_stop_cmd(struct sh_mmcif_host *host, host 946 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 950 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MCMD12DRE); host 953 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitset(host, MMCIF_CE_INT_MASK, MASK_MCMD12RBE); host 957 drivers/mmc/host/sh_mmcif.c mrq->stop->error = sh_mmcif_error_manage(host); host 961 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_STOP; host 966 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host = mmc_priv(mmc); host 967 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 970 drivers/mmc/host/sh_mmcif.c spin_lock_irqsave(&host->lock, flags); host 971 drivers/mmc/host/sh_mmcif.c if (host->state != STATE_IDLE) { host 973 drivers/mmc/host/sh_mmcif.c __func__, host->state); host 974 drivers/mmc/host/sh_mmcif.c spin_unlock_irqrestore(&host->lock, flags); host 980 drivers/mmc/host/sh_mmcif.c host->state = STATE_REQUEST; host 981 drivers/mmc/host/sh_mmcif.c spin_unlock_irqrestore(&host->lock, flags); host 983 drivers/mmc/host/sh_mmcif.c host->mrq = mrq; host 985 drivers/mmc/host/sh_mmcif.c sh_mmcif_start_cmd(host, mrq); host 988 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_clk_setup(struct sh_mmcif_host *host) host 990 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 992 drivers/mmc/host/sh_mmcif.c if (host->mmc->f_max) { host 995 drivers/mmc/host/sh_mmcif.c f_max = host->mmc->f_max; host 997 drivers/mmc/host/sh_mmcif.c f_min = clk_round_rate(host->clk, f_min_old / 2); host 1006 drivers/mmc/host/sh_mmcif.c host->clkdiv_map = 0x3ff; host 1008 drivers/mmc/host/sh_mmcif.c host->mmc->f_max = f_max / (1 << ffs(host->clkdiv_map)); host 1009 drivers/mmc/host/sh_mmcif.c host->mmc->f_min = f_min / (1 << fls(host->clkdiv_map)); host 1011 drivers/mmc/host/sh_mmcif.c unsigned int clk = clk_get_rate(host->clk); host 1013 drivers/mmc/host/sh_mmcif.c host->mmc->f_max = clk / 2; host 1014 drivers/mmc/host/sh_mmcif.c host->mmc->f_min = clk / 512; host 1018 drivers/mmc/host/sh_mmcif.c host->mmc->f_max, host->mmc->f_min); host 1023 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host = mmc_priv(mmc); host 1024 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 1027 drivers/mmc/host/sh_mmcif.c spin_lock_irqsave(&host->lock, flags); host 1028 drivers/mmc/host/sh_mmcif.c if (host->state != STATE_IDLE) { host 1030 drivers/mmc/host/sh_mmcif.c __func__, host->state); host 1031 drivers/mmc/host/sh_mmcif.c spin_unlock_irqrestore(&host->lock, flags); host 1035 drivers/mmc/host/sh_mmcif.c host->state = STATE_IOS; host 1036 drivers/mmc/host/sh_mmcif.c spin_unlock_irqrestore(&host->lock, flags); host 1042 drivers/mmc/host/sh_mmcif.c if (!host->power) { host 1043 drivers/mmc/host/sh_mmcif.c clk_prepare_enable(host->clk); host 1045 drivers/mmc/host/sh_mmcif.c sh_mmcif_sync_reset(host); host 1046 drivers/mmc/host/sh_mmcif.c sh_mmcif_request_dma(host); host 1047 drivers/mmc/host/sh_mmcif.c host->power = true; host 1053 drivers/mmc/host/sh_mmcif.c if (host->power) { host 1054 drivers/mmc/host/sh_mmcif.c sh_mmcif_clock_control(host, 0); host 1055 drivers/mmc/host/sh_mmcif.c sh_mmcif_release_dma(host); host 1057 drivers/mmc/host/sh_mmcif.c clk_disable_unprepare(host->clk); host 1058 drivers/mmc/host/sh_mmcif.c host->power = false; host 1062 drivers/mmc/host/sh_mmcif.c sh_mmcif_clock_control(host, ios->clock); host 1066 drivers/mmc/host/sh_mmcif.c host->timing = ios->timing; host 1067 drivers/mmc/host/sh_mmcif.c host->bus_width = ios->bus_width; host 1068 drivers/mmc/host/sh_mmcif.c host->state = STATE_IDLE; host 1077 drivers/mmc/host/sh_mmcif.c static bool sh_mmcif_end_cmd(struct sh_mmcif_host *host) host 1079 drivers/mmc/host/sh_mmcif.c struct mmc_command *cmd = host->mrq->cmd; host 1080 drivers/mmc/host/sh_mmcif.c struct mmc_data *data = host->mrq->data; host 1081 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 1084 drivers/mmc/host/sh_mmcif.c if (host->sd_error) { host 1092 drivers/mmc/host/sh_mmcif.c cmd->error = sh_mmcif_error_manage(host); host 1097 drivers/mmc/host/sh_mmcif.c host->sd_error = false; host 1105 drivers/mmc/host/sh_mmcif.c sh_mmcif_get_response(host, cmd); host 1114 drivers/mmc/host/sh_mmcif.c init_completion(&host->dma_complete); host 1117 drivers/mmc/host/sh_mmcif.c if (host->chan_rx) host 1118 drivers/mmc/host/sh_mmcif.c sh_mmcif_start_dma_rx(host); host 1120 drivers/mmc/host/sh_mmcif.c if (host->chan_tx) host 1121 drivers/mmc/host/sh_mmcif.c sh_mmcif_start_dma_tx(host); host 1124 drivers/mmc/host/sh_mmcif.c if (!host->dma_active) { host 1125 drivers/mmc/host/sh_mmcif.c data->error = sh_mmcif_data_trans(host, host->mrq, cmd->opcode); host 1130 drivers/mmc/host/sh_mmcif.c time = wait_for_completion_interruptible_timeout(&host->dma_complete, host 1131 drivers/mmc/host/sh_mmcif.c host->timeout); host 1134 drivers/mmc/host/sh_mmcif.c dma_unmap_sg(host->chan_rx->device->dev, host 1138 drivers/mmc/host/sh_mmcif.c dma_unmap_sg(host->chan_tx->device->dev, host 1142 drivers/mmc/host/sh_mmcif.c if (host->sd_error) { host 1143 drivers/mmc/host/sh_mmcif.c dev_err(host->mmc->parent, host 1146 drivers/mmc/host/sh_mmcif.c data->error = sh_mmcif_error_manage(host); host 1148 drivers/mmc/host/sh_mmcif.c dev_err(host->mmc->parent, "DMA timeout!\n"); host 1151 drivers/mmc/host/sh_mmcif.c dev_err(host->mmc->parent, host 1155 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitclr(host, MMCIF_CE_BUF_ACC, host 1157 drivers/mmc/host/sh_mmcif.c host->dma_active = false; host 1163 drivers/mmc/host/sh_mmcif.c dmaengine_terminate_all(host->chan_rx); host 1165 drivers/mmc/host/sh_mmcif.c dmaengine_terminate_all(host->chan_tx); host 1173 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host = dev_id; host 1175 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 1180 drivers/mmc/host/sh_mmcif.c spin_lock_irqsave(&host->lock, flags); host 1181 drivers/mmc/host/sh_mmcif.c wait_work = host->wait_for; host 1182 drivers/mmc/host/sh_mmcif.c spin_unlock_irqrestore(&host->lock, flags); host 1184 drivers/mmc/host/sh_mmcif.c cancel_delayed_work_sync(&host->timeout_work); host 1186 drivers/mmc/host/sh_mmcif.c mutex_lock(&host->thread_lock); host 1188 drivers/mmc/host/sh_mmcif.c mrq = host->mrq; host 1191 drivers/mmc/host/sh_mmcif.c host->state, host->wait_for); host 1192 drivers/mmc/host/sh_mmcif.c mutex_unlock(&host->thread_lock); host 1203 drivers/mmc/host/sh_mmcif.c mutex_unlock(&host->thread_lock); host 1207 drivers/mmc/host/sh_mmcif.c wait = sh_mmcif_end_cmd(host); host 1211 drivers/mmc/host/sh_mmcif.c wait = sh_mmcif_mread_block(host); host 1215 drivers/mmc/host/sh_mmcif.c wait = sh_mmcif_read_block(host); host 1219 drivers/mmc/host/sh_mmcif.c wait = sh_mmcif_mwrite_block(host); host 1223 drivers/mmc/host/sh_mmcif.c wait = sh_mmcif_write_block(host); host 1226 drivers/mmc/host/sh_mmcif.c if (host->sd_error) { host 1227 drivers/mmc/host/sh_mmcif.c mrq->stop->error = sh_mmcif_error_manage(host); host 1231 drivers/mmc/host/sh_mmcif.c sh_mmcif_get_cmd12response(host, mrq->stop); host 1236 drivers/mmc/host/sh_mmcif.c if (host->sd_error) { host 1237 drivers/mmc/host/sh_mmcif.c mrq->data->error = sh_mmcif_error_manage(host); host 1246 drivers/mmc/host/sh_mmcif.c schedule_delayed_work(&host->timeout_work, host->timeout); host 1248 drivers/mmc/host/sh_mmcif.c mutex_unlock(&host->thread_lock); host 1252 drivers/mmc/host/sh_mmcif.c if (host->wait_for != MMCIF_WAIT_FOR_STOP) { host 1259 drivers/mmc/host/sh_mmcif.c sh_mmcif_stop_cmd(host, mrq); host 1261 drivers/mmc/host/sh_mmcif.c schedule_delayed_work(&host->timeout_work, host->timeout); host 1262 drivers/mmc/host/sh_mmcif.c mutex_unlock(&host->thread_lock); host 1268 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_REQUEST; host 1269 drivers/mmc/host/sh_mmcif.c host->state = STATE_IDLE; host 1270 drivers/mmc/host/sh_mmcif.c host->mrq = NULL; host 1271 drivers/mmc/host/sh_mmcif.c mmc_request_done(host->mmc, mrq); host 1273 drivers/mmc/host/sh_mmcif.c mutex_unlock(&host->thread_lock); host 1280 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host = dev_id; host 1281 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 1284 drivers/mmc/host/sh_mmcif.c state = sh_mmcif_readl(host->addr, MMCIF_CE_INT); host 1285 drivers/mmc/host/sh_mmcif.c mask = sh_mmcif_readl(host->addr, MMCIF_CE_INT_MASK); host 1286 drivers/mmc/host/sh_mmcif.c if (host->ccs_enable) host 1287 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_INT, ~(state & mask)); host 1289 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_INT, INT_CCS | ~(state & mask)); host 1290 drivers/mmc/host/sh_mmcif.c sh_mmcif_bitclr(host, MMCIF_CE_INT_MASK, state & MASK_CLEAN); host 1297 drivers/mmc/host/sh_mmcif.c host->sd_error = true; host 1301 drivers/mmc/host/sh_mmcif.c if (!host->mrq) host 1303 drivers/mmc/host/sh_mmcif.c if (!host->dma_active) host 1305 drivers/mmc/host/sh_mmcif.c else if (host->sd_error) host 1306 drivers/mmc/host/sh_mmcif.c sh_mmcif_dma_complete(host); host 1317 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host = container_of(d, struct sh_mmcif_host, timeout_work); host 1318 drivers/mmc/host/sh_mmcif.c struct mmc_request *mrq = host->mrq; host 1319 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 1322 drivers/mmc/host/sh_mmcif.c if (host->dying) host 1326 drivers/mmc/host/sh_mmcif.c spin_lock_irqsave(&host->lock, flags); host 1327 drivers/mmc/host/sh_mmcif.c if (host->state == STATE_IDLE) { host 1328 drivers/mmc/host/sh_mmcif.c spin_unlock_irqrestore(&host->lock, flags); host 1333 drivers/mmc/host/sh_mmcif.c host->wait_for, mrq->cmd->opcode); host 1335 drivers/mmc/host/sh_mmcif.c host->state = STATE_TIMEOUT; host 1336 drivers/mmc/host/sh_mmcif.c spin_unlock_irqrestore(&host->lock, flags); host 1342 drivers/mmc/host/sh_mmcif.c switch (host->wait_for) { host 1344 drivers/mmc/host/sh_mmcif.c mrq->cmd->error = sh_mmcif_error_manage(host); host 1347 drivers/mmc/host/sh_mmcif.c mrq->stop->error = sh_mmcif_error_manage(host); host 1355 drivers/mmc/host/sh_mmcif.c mrq->data->error = sh_mmcif_error_manage(host); host 1361 drivers/mmc/host/sh_mmcif.c host->state = STATE_IDLE; host 1362 drivers/mmc/host/sh_mmcif.c host->wait_for = MMCIF_WAIT_FOR_REQUEST; host 1363 drivers/mmc/host/sh_mmcif.c host->mrq = NULL; host 1364 drivers/mmc/host/sh_mmcif.c mmc_request_done(host->mmc, mrq); host 1367 drivers/mmc/host/sh_mmcif.c static void sh_mmcif_init_ocr(struct sh_mmcif_host *host) host 1369 drivers/mmc/host/sh_mmcif.c struct device *dev = sh_mmcif_host_to_dev(host); host 1371 drivers/mmc/host/sh_mmcif.c struct mmc_host *mmc = host->mmc; host 1388 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host; host 1413 drivers/mmc/host/sh_mmcif.c host = mmc_priv(mmc); host 1414 drivers/mmc/host/sh_mmcif.c host->mmc = mmc; host 1415 drivers/mmc/host/sh_mmcif.c host->addr = reg; host 1416 drivers/mmc/host/sh_mmcif.c host->timeout = msecs_to_jiffies(10000); host 1417 drivers/mmc/host/sh_mmcif.c host->ccs_enable = true; host 1418 drivers/mmc/host/sh_mmcif.c host->clk_ctrl2_enable = false; host 1420 drivers/mmc/host/sh_mmcif.c host->pd = pdev; host 1422 drivers/mmc/host/sh_mmcif.c spin_lock_init(&host->lock); host 1425 drivers/mmc/host/sh_mmcif.c sh_mmcif_init_ocr(host); host 1439 drivers/mmc/host/sh_mmcif.c platform_set_drvdata(pdev, host); host 1441 drivers/mmc/host/sh_mmcif.c host->clk = devm_clk_get(dev, NULL); host 1442 drivers/mmc/host/sh_mmcif.c if (IS_ERR(host->clk)) { host 1443 drivers/mmc/host/sh_mmcif.c ret = PTR_ERR(host->clk); host 1448 drivers/mmc/host/sh_mmcif.c ret = clk_prepare_enable(host->clk); host 1452 drivers/mmc/host/sh_mmcif.c sh_mmcif_clk_setup(host); host 1455 drivers/mmc/host/sh_mmcif.c host->power = false; host 1461 drivers/mmc/host/sh_mmcif.c INIT_DELAYED_WORK(&host->timeout_work, sh_mmcif_timeout_work); host 1463 drivers/mmc/host/sh_mmcif.c sh_mmcif_sync_reset(host); host 1464 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, MASK_ALL); host 1468 drivers/mmc/host/sh_mmcif.c sh_mmcif_irqt, 0, name, host); host 1476 drivers/mmc/host/sh_mmcif.c 0, "sh_mmc:int", host); host 1483 drivers/mmc/host/sh_mmcif.c mutex_init(&host->thread_lock); host 1492 drivers/mmc/host/sh_mmcif.c sh_mmcif_readl(host->addr, MMCIF_CE_VERSION) & 0xffff, host 1493 drivers/mmc/host/sh_mmcif.c clk_get_rate(host->clk) / 1000000UL); host 1496 drivers/mmc/host/sh_mmcif.c clk_disable_unprepare(host->clk); host 1500 drivers/mmc/host/sh_mmcif.c clk_disable_unprepare(host->clk); host 1510 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host = platform_get_drvdata(pdev); host 1512 drivers/mmc/host/sh_mmcif.c host->dying = true; host 1513 drivers/mmc/host/sh_mmcif.c clk_prepare_enable(host->clk); host 1518 drivers/mmc/host/sh_mmcif.c mmc_remove_host(host->mmc); host 1519 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, MASK_ALL); host 1526 drivers/mmc/host/sh_mmcif.c cancel_delayed_work_sync(&host->timeout_work); host 1528 drivers/mmc/host/sh_mmcif.c clk_disable_unprepare(host->clk); host 1529 drivers/mmc/host/sh_mmcif.c mmc_free_host(host->mmc); host 1539 drivers/mmc/host/sh_mmcif.c struct sh_mmcif_host *host = dev_get_drvdata(dev); host 1542 drivers/mmc/host/sh_mmcif.c sh_mmcif_writel(host->addr, MMCIF_CE_INT_MASK, MASK_ALL); host 76 drivers/mmc/host/sunxi-mmc.c #define mmc_readl(host, reg) \ host 77 drivers/mmc/host/sunxi-mmc.c readl((host)->reg_base + SDXC_##reg) host 78 drivers/mmc/host/sunxi-mmc.c #define mmc_writel(host, reg, value) \ host 79 drivers/mmc/host/sunxi-mmc.c writel((value), (host)->reg_base + SDXC_##reg) host 304 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_reset_host(struct sunxi_mmc_host *host) host 309 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_GCTRL, SDXC_HARDWARE_RESET); host 311 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_GCTRL); host 315 drivers/mmc/host/sunxi-mmc.c dev_err(mmc_dev(host->mmc), "fatal err reset timeout\n"); host 322 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_init_host(struct sunxi_mmc_host *host) host 326 drivers/mmc/host/sunxi-mmc.c if (sunxi_mmc_reset_host(host)) host 334 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_FTRGL, 0x20070008); host 336 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_TMOUT, 0xffffffff); host 338 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IMASK, host->sdio_imask); host 340 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_RINTR, 0xffffffff); host 342 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_DBGC, 0xdeb); host 344 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_FUNS, SDXC_CEATA_ON); host 346 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_DLBA, host->sg_dma); host 348 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_GCTRL); host 352 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_GCTRL, rval); host 357 drivers/mmc/host/sunxi-mmc.c static void sunxi_mmc_init_idma_des(struct sunxi_mmc_host *host, host 360 drivers/mmc/host/sunxi-mmc.c struct sunxi_idma_des *pdes = (struct sunxi_idma_des *)host->sg_cpu; host 361 drivers/mmc/host/sunxi-mmc.c dma_addr_t next_desc = host->sg_dma; host 362 drivers/mmc/host/sunxi-mmc.c int i, max_len = (1 << host->cfg->idma_des_size_bits); host 393 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_map_dma(struct sunxi_mmc_host *host, host 399 drivers/mmc/host/sunxi-mmc.c dma_len = dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 402 drivers/mmc/host/sunxi-mmc.c dev_err(mmc_dev(host->mmc), "dma_map_sg failed\n"); host 408 drivers/mmc/host/sunxi-mmc.c dev_err(mmc_dev(host->mmc), host 418 drivers/mmc/host/sunxi-mmc.c static void sunxi_mmc_start_dma(struct sunxi_mmc_host *host, host 423 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_init_idma_des(host, data); host 425 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_GCTRL); host 427 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_GCTRL, rval); host 429 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_GCTRL, rval); host 431 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_DMAC, SDXC_IDMAC_SOFT_RESET); host 434 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IDIE, SDXC_IDMAC_RECEIVE_INTERRUPT); host 436 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_DMAC, host 440 drivers/mmc/host/sunxi-mmc.c static void sunxi_mmc_send_manual_stop(struct sunxi_mmc_host *host, host 458 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_CARG, arg); host 459 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_CMDR, cmd_val); host 462 drivers/mmc/host/sunxi-mmc.c ri = mmc_readl(host, REG_RINTR); host 467 drivers/mmc/host/sunxi-mmc.c dev_err(mmc_dev(host->mmc), "send stop command failed\n"); host 472 drivers/mmc/host/sunxi-mmc.c req->stop->resp[0] = mmc_readl(host, REG_RESP0); host 475 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_RINTR, 0xffff); host 478 drivers/mmc/host/sunxi-mmc.c static void sunxi_mmc_dump_errinfo(struct sunxi_mmc_host *host) host 480 drivers/mmc/host/sunxi-mmc.c struct mmc_command *cmd = host->mrq->cmd; host 481 drivers/mmc/host/sunxi-mmc.c struct mmc_data *data = host->mrq->data; host 484 drivers/mmc/host/sunxi-mmc.c if ((host->int_sum & SDXC_INTERRUPT_ERROR_BIT) == host 489 drivers/mmc/host/sunxi-mmc.c dev_dbg(mmc_dev(host->mmc), host 491 drivers/mmc/host/sunxi-mmc.c host->mmc->index, cmd->opcode, host 493 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_RESP_ERROR ? " RE" : "", host 494 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_RESP_CRC_ERROR ? " RCE" : "", host 495 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_DATA_CRC_ERROR ? " DCE" : "", host 496 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_RESP_TIMEOUT ? " RTO" : "", host 497 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_DATA_TIMEOUT ? " DTO" : "", host 498 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_FIFO_RUN_ERROR ? " FE" : "", host 499 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_HARD_WARE_LOCKED ? " HL" : "", host 500 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_START_BIT_ERROR ? " SBE" : "", host 501 drivers/mmc/host/sunxi-mmc.c host->int_sum & SDXC_END_BIT_ERROR ? " EBE" : "" host 506 drivers/mmc/host/sunxi-mmc.c static irqreturn_t sunxi_mmc_finalize_request(struct sunxi_mmc_host *host) host 508 drivers/mmc/host/sunxi-mmc.c struct mmc_request *mrq = host->mrq; host 512 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IMASK, host->sdio_imask); host 513 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IDIE, 0); host 515 drivers/mmc/host/sunxi-mmc.c if (host->int_sum & SDXC_INTERRUPT_ERROR_BIT) { host 516 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_dump_errinfo(host); host 521 drivers/mmc/host/sunxi-mmc.c host->manual_stop_mrq = mrq; host 528 drivers/mmc/host/sunxi-mmc.c mrq->cmd->resp[0] = mmc_readl(host, REG_RESP3); host 529 drivers/mmc/host/sunxi-mmc.c mrq->cmd->resp[1] = mmc_readl(host, REG_RESP2); host 530 drivers/mmc/host/sunxi-mmc.c mrq->cmd->resp[2] = mmc_readl(host, REG_RESP1); host 531 drivers/mmc/host/sunxi-mmc.c mrq->cmd->resp[3] = mmc_readl(host, REG_RESP0); host 533 drivers/mmc/host/sunxi-mmc.c mrq->cmd->resp[0] = mmc_readl(host, REG_RESP0); host 541 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IDST, 0x337); host 542 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_DMAC, 0); host 543 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_GCTRL); host 545 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_GCTRL, rval); host 547 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_GCTRL, rval); host 549 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_GCTRL, rval); host 550 drivers/mmc/host/sunxi-mmc.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 554 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_RINTR, 0xffff); host 556 drivers/mmc/host/sunxi-mmc.c host->mrq = NULL; host 557 drivers/mmc/host/sunxi-mmc.c host->int_sum = 0; host 558 drivers/mmc/host/sunxi-mmc.c host->wait_dma = false; host 560 drivers/mmc/host/sunxi-mmc.c return host->manual_stop_mrq ? IRQ_WAKE_THREAD : IRQ_HANDLED; host 565 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = dev_id; host 572 drivers/mmc/host/sunxi-mmc.c spin_lock(&host->lock); host 574 drivers/mmc/host/sunxi-mmc.c idma_int = mmc_readl(host, REG_IDST); host 575 drivers/mmc/host/sunxi-mmc.c msk_int = mmc_readl(host, REG_MISTA); host 577 drivers/mmc/host/sunxi-mmc.c dev_dbg(mmc_dev(host->mmc), "irq: rq %p mi %08x idi %08x\n", host 578 drivers/mmc/host/sunxi-mmc.c host->mrq, msk_int, idma_int); host 580 drivers/mmc/host/sunxi-mmc.c mrq = host->mrq; host 583 drivers/mmc/host/sunxi-mmc.c host->wait_dma = false; host 585 drivers/mmc/host/sunxi-mmc.c host->int_sum |= msk_int; host 588 drivers/mmc/host/sunxi-mmc.c if ((host->int_sum & SDXC_RESP_TIMEOUT) && host 589 drivers/mmc/host/sunxi-mmc.c !(host->int_sum & SDXC_COMMAND_DONE)) host 590 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IMASK, host 591 drivers/mmc/host/sunxi-mmc.c host->sdio_imask | SDXC_COMMAND_DONE); host 593 drivers/mmc/host/sunxi-mmc.c else if (host->int_sum & SDXC_INTERRUPT_ERROR_BIT) host 595 drivers/mmc/host/sunxi-mmc.c else if ((host->int_sum & SDXC_INTERRUPT_DONE_BIT) && host 596 drivers/mmc/host/sunxi-mmc.c !host->wait_dma) host 603 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_RINTR, msk_int); host 604 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IDST, idma_int); host 607 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_finalize_request(host); host 609 drivers/mmc/host/sunxi-mmc.c spin_unlock(&host->lock); host 612 drivers/mmc/host/sunxi-mmc.c mmc_request_done(host->mmc, mrq); host 615 drivers/mmc/host/sunxi-mmc.c mmc_signal_sdio_irq(host->mmc); host 622 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = dev_id; host 626 drivers/mmc/host/sunxi-mmc.c spin_lock_irqsave(&host->lock, iflags); host 627 drivers/mmc/host/sunxi-mmc.c mrq = host->manual_stop_mrq; host 628 drivers/mmc/host/sunxi-mmc.c spin_unlock_irqrestore(&host->lock, iflags); host 631 drivers/mmc/host/sunxi-mmc.c dev_err(mmc_dev(host->mmc), "no request for manual stop\n"); host 635 drivers/mmc/host/sunxi-mmc.c dev_err(mmc_dev(host->mmc), "data error, sending stop command\n"); host 645 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_send_manual_stop(host, mrq); host 647 drivers/mmc/host/sunxi-mmc.c spin_lock_irqsave(&host->lock, iflags); host 648 drivers/mmc/host/sunxi-mmc.c host->manual_stop_mrq = NULL; host 649 drivers/mmc/host/sunxi-mmc.c spin_unlock_irqrestore(&host->lock, iflags); host 651 drivers/mmc/host/sunxi-mmc.c mmc_request_done(host->mmc, mrq); host 656 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_oclk_onoff(struct sunxi_mmc_host *host, u32 oclk_en) host 661 drivers/mmc/host/sunxi-mmc.c dev_dbg(mmc_dev(host->mmc), "%sabling the clock\n", host 664 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_CLKCR); host 669 drivers/mmc/host/sunxi-mmc.c if (host->cfg->mask_data0) host 672 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_CLKCR, rval); host 675 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_CMDR, rval); host 678 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_CMDR); host 682 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_RINTR, host 683 drivers/mmc/host/sunxi-mmc.c mmc_readl(host, REG_RINTR) & ~SDXC_SDIO_INTERRUPT); host 686 drivers/mmc/host/sunxi-mmc.c dev_err(mmc_dev(host->mmc), "fatal err update clk timeout\n"); host 690 drivers/mmc/host/sunxi-mmc.c if (host->cfg->mask_data0) { host 691 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_CLKCR); host 692 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_CLKCR, rval & ~SDXC_MASK_DATA0); host 698 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_calibrate(struct sunxi_mmc_host *host, int reg_off) host 700 drivers/mmc/host/sunxi-mmc.c if (!host->cfg->can_calibrate) host 712 drivers/mmc/host/sunxi-mmc.c writel(SDXC_CAL_DL_SW_EN, host->reg_base + reg_off); host 717 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_clk_set_phase(struct sunxi_mmc_host *host, host 723 drivers/mmc/host/sunxi-mmc.c if (host->use_new_timings) host 727 drivers/mmc/host/sunxi-mmc.c if (!host->cfg->clk_delays) host 745 drivers/mmc/host/sunxi-mmc.c dev_dbg(mmc_dev(host->mmc), "Invalid clock... returning\n"); host 749 drivers/mmc/host/sunxi-mmc.c clk_set_phase(host->clk_sample, host->cfg->clk_delays[index].sample); host 750 drivers/mmc/host/sunxi-mmc.c clk_set_phase(host->clk_output, host->cfg->clk_delays[index].output); host 755 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_clk_set_rate(struct sunxi_mmc_host *host, host 758 drivers/mmc/host/sunxi-mmc.c struct mmc_host *mmc = host->mmc; host 763 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_oclk_onoff(host, 0); host 783 drivers/mmc/host/sunxi-mmc.c (host->use_new_timings || host 789 drivers/mmc/host/sunxi-mmc.c if (host->use_new_timings && host->cfg->ccu_has_timings_switch) { host 790 drivers/mmc/host/sunxi-mmc.c ret = sunxi_ccu_set_mmc_timing_mode(host->clk_mmc, true); host 798 drivers/mmc/host/sunxi-mmc.c rate = clk_round_rate(host->clk_mmc, clock); host 808 drivers/mmc/host/sunxi-mmc.c ret = clk_set_rate(host->clk_mmc, rate); host 816 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_CLKCR); host 819 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_CLKCR, rval); host 830 drivers/mmc/host/sunxi-mmc.c if (host->use_new_timings) { host 832 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_SD_NTSR); host 834 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_SD_NTSR, rval); host 838 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_clk_set_phase(host, ios, rate); host 842 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_calibrate(host, SDXC_REG_SAMP_DL_REG); host 854 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_oclk_onoff(host, 1); host 864 drivers/mmc/host/sunxi-mmc.c static void sunxi_mmc_set_bus_width(struct sunxi_mmc_host *host, host 869 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_WIDTH, SDXC_WIDTH1); host 872 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_WIDTH, SDXC_WIDTH4); host 875 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_WIDTH, SDXC_WIDTH8); host 880 drivers/mmc/host/sunxi-mmc.c static void sunxi_mmc_set_clk(struct sunxi_mmc_host *host, struct mmc_ios *ios) host 885 drivers/mmc/host/sunxi-mmc.c rval = mmc_readl(host, REG_GCTRL); host 891 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_GCTRL, rval); host 893 drivers/mmc/host/sunxi-mmc.c host->ferror = sunxi_mmc_clk_set_rate(host, ios); host 897 drivers/mmc/host/sunxi-mmc.c static void sunxi_mmc_card_power(struct sunxi_mmc_host *host, host 900 drivers/mmc/host/sunxi-mmc.c struct mmc_host *mmc = host->mmc; host 907 drivers/mmc/host/sunxi-mmc.c host->ferror = mmc_regulator_set_ocr(mmc, host 910 drivers/mmc/host/sunxi-mmc.c if (host->ferror) host 915 drivers/mmc/host/sunxi-mmc.c host->ferror = regulator_enable(mmc->supply.vqmmc); host 916 drivers/mmc/host/sunxi-mmc.c if (host->ferror) { host 921 drivers/mmc/host/sunxi-mmc.c host->vqmmc_enabled = true; host 931 drivers/mmc/host/sunxi-mmc.c if (!IS_ERR(mmc->supply.vqmmc) && host->vqmmc_enabled) host 934 drivers/mmc/host/sunxi-mmc.c host->vqmmc_enabled = false; host 945 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = mmc_priv(mmc); host 947 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_card_power(host, ios); host 948 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_set_bus_width(host, ios->bus_width); host 949 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_set_clk(host, ios); host 967 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = mmc_priv(mmc); host 972 drivers/mmc/host/sunxi-mmc.c pm_runtime_get_noresume(host->dev); host 974 drivers/mmc/host/sunxi-mmc.c spin_lock_irqsave(&host->lock, flags); host 976 drivers/mmc/host/sunxi-mmc.c imask = mmc_readl(host, REG_IMASK); host 978 drivers/mmc/host/sunxi-mmc.c host->sdio_imask = SDXC_SDIO_INTERRUPT; host 981 drivers/mmc/host/sunxi-mmc.c host->sdio_imask = 0; host 984 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IMASK, imask); host 985 drivers/mmc/host/sunxi-mmc.c spin_unlock_irqrestore(&host->lock, flags); host 988 drivers/mmc/host/sunxi-mmc.c pm_runtime_put_noidle(host->mmc->parent); host 993 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = mmc_priv(mmc); host 994 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_HWRST, 0); host 996 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_HWRST, 1); host 1002 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = mmc_priv(mmc); host 1008 drivers/mmc/host/sunxi-mmc.c bool wait_dma = host->wait_dma; host 1012 drivers/mmc/host/sunxi-mmc.c if (host->ferror) { host 1013 drivers/mmc/host/sunxi-mmc.c mrq->cmd->error = host->ferror; host 1019 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_map_dma(host, data); host 1066 drivers/mmc/host/sunxi-mmc.c spin_lock_irqsave(&host->lock, iflags); host 1068 drivers/mmc/host/sunxi-mmc.c if (host->mrq || host->manual_stop_mrq) { host 1069 drivers/mmc/host/sunxi-mmc.c spin_unlock_irqrestore(&host->lock, iflags); host 1082 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_BLKSZ, data->blksz); host 1083 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_BCNTR, data->blksz * data->blocks); host 1084 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_start_dma(host, data); host 1087 drivers/mmc/host/sunxi-mmc.c host->mrq = mrq; host 1088 drivers/mmc/host/sunxi-mmc.c host->wait_dma = wait_dma; host 1089 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_IMASK, host->sdio_imask | imask); host 1090 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_CARG, cmd->arg); host 1091 drivers/mmc/host/sunxi-mmc.c mmc_writel(host, REG_CMDR, cmd_val); host 1093 drivers/mmc/host/sunxi-mmc.c spin_unlock_irqrestore(&host->lock, iflags); host 1098 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = mmc_priv(mmc); host 1100 drivers/mmc/host/sunxi-mmc.c return !!(mmc_readl(host, REG_STAS) & SDXC_CARD_DATA_BUSY); host 1189 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_enable(struct sunxi_mmc_host *host) host 1193 drivers/mmc/host/sunxi-mmc.c if (!IS_ERR(host->reset)) { host 1194 drivers/mmc/host/sunxi-mmc.c ret = reset_control_reset(host->reset); host 1196 drivers/mmc/host/sunxi-mmc.c dev_err(host->dev, "Couldn't reset the MMC controller (%d)\n", host 1202 drivers/mmc/host/sunxi-mmc.c ret = clk_prepare_enable(host->clk_ahb); host 1204 drivers/mmc/host/sunxi-mmc.c dev_err(host->dev, "Couldn't enable the bus clocks (%d)\n", ret); host 1208 drivers/mmc/host/sunxi-mmc.c ret = clk_prepare_enable(host->clk_mmc); host 1210 drivers/mmc/host/sunxi-mmc.c dev_err(host->dev, "Enable mmc clk err %d\n", ret); host 1214 drivers/mmc/host/sunxi-mmc.c ret = clk_prepare_enable(host->clk_output); host 1216 drivers/mmc/host/sunxi-mmc.c dev_err(host->dev, "Enable output clk err %d\n", ret); host 1220 drivers/mmc/host/sunxi-mmc.c ret = clk_prepare_enable(host->clk_sample); host 1222 drivers/mmc/host/sunxi-mmc.c dev_err(host->dev, "Enable sample clk err %d\n", ret); host 1230 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_reset_host(host); host 1237 drivers/mmc/host/sunxi-mmc.c clk_disable_unprepare(host->clk_sample); host 1239 drivers/mmc/host/sunxi-mmc.c clk_disable_unprepare(host->clk_output); host 1241 drivers/mmc/host/sunxi-mmc.c clk_disable_unprepare(host->clk_mmc); host 1243 drivers/mmc/host/sunxi-mmc.c clk_disable_unprepare(host->clk_ahb); host 1245 drivers/mmc/host/sunxi-mmc.c if (!IS_ERR(host->reset)) host 1246 drivers/mmc/host/sunxi-mmc.c reset_control_assert(host->reset); host 1250 drivers/mmc/host/sunxi-mmc.c static void sunxi_mmc_disable(struct sunxi_mmc_host *host) host 1252 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_reset_host(host); host 1254 drivers/mmc/host/sunxi-mmc.c clk_disable_unprepare(host->clk_sample); host 1255 drivers/mmc/host/sunxi-mmc.c clk_disable_unprepare(host->clk_output); host 1256 drivers/mmc/host/sunxi-mmc.c clk_disable_unprepare(host->clk_mmc); host 1257 drivers/mmc/host/sunxi-mmc.c clk_disable_unprepare(host->clk_ahb); host 1259 drivers/mmc/host/sunxi-mmc.c if (!IS_ERR(host->reset)) host 1260 drivers/mmc/host/sunxi-mmc.c reset_control_assert(host->reset); host 1263 drivers/mmc/host/sunxi-mmc.c static int sunxi_mmc_resource_request(struct sunxi_mmc_host *host, host 1268 drivers/mmc/host/sunxi-mmc.c host->cfg = of_device_get_match_data(&pdev->dev); host 1269 drivers/mmc/host/sunxi-mmc.c if (!host->cfg) host 1272 drivers/mmc/host/sunxi-mmc.c ret = mmc_regulator_get_supply(host->mmc); host 1276 drivers/mmc/host/sunxi-mmc.c host->reg_base = devm_ioremap_resource(&pdev->dev, host 1278 drivers/mmc/host/sunxi-mmc.c if (IS_ERR(host->reg_base)) host 1279 drivers/mmc/host/sunxi-mmc.c return PTR_ERR(host->reg_base); host 1281 drivers/mmc/host/sunxi-mmc.c host->clk_ahb = devm_clk_get(&pdev->dev, "ahb"); host 1282 drivers/mmc/host/sunxi-mmc.c if (IS_ERR(host->clk_ahb)) { host 1284 drivers/mmc/host/sunxi-mmc.c return PTR_ERR(host->clk_ahb); host 1287 drivers/mmc/host/sunxi-mmc.c host->clk_mmc = devm_clk_get(&pdev->dev, "mmc"); host 1288 drivers/mmc/host/sunxi-mmc.c if (IS_ERR(host->clk_mmc)) { host 1290 drivers/mmc/host/sunxi-mmc.c return PTR_ERR(host->clk_mmc); host 1293 drivers/mmc/host/sunxi-mmc.c if (host->cfg->clk_delays) { host 1294 drivers/mmc/host/sunxi-mmc.c host->clk_output = devm_clk_get(&pdev->dev, "output"); host 1295 drivers/mmc/host/sunxi-mmc.c if (IS_ERR(host->clk_output)) { host 1297 drivers/mmc/host/sunxi-mmc.c return PTR_ERR(host->clk_output); host 1300 drivers/mmc/host/sunxi-mmc.c host->clk_sample = devm_clk_get(&pdev->dev, "sample"); host 1301 drivers/mmc/host/sunxi-mmc.c if (IS_ERR(host->clk_sample)) { host 1303 drivers/mmc/host/sunxi-mmc.c return PTR_ERR(host->clk_sample); host 1307 drivers/mmc/host/sunxi-mmc.c host->reset = devm_reset_control_get_optional_exclusive(&pdev->dev, host 1309 drivers/mmc/host/sunxi-mmc.c if (PTR_ERR(host->reset) == -EPROBE_DEFER) host 1310 drivers/mmc/host/sunxi-mmc.c return PTR_ERR(host->reset); host 1312 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_enable(host); host 1316 drivers/mmc/host/sunxi-mmc.c host->irq = platform_get_irq(pdev, 0); host 1317 drivers/mmc/host/sunxi-mmc.c if (host->irq <= 0) { host 1322 drivers/mmc/host/sunxi-mmc.c return devm_request_threaded_irq(&pdev->dev, host->irq, sunxi_mmc_irq, host 1323 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_handle_manual_stop, 0, "sunxi-mmc", host); host 1326 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_disable(host); host 1332 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host; host 1343 drivers/mmc/host/sunxi-mmc.c host = mmc_priv(mmc); host 1344 drivers/mmc/host/sunxi-mmc.c host->dev = &pdev->dev; host 1345 drivers/mmc/host/sunxi-mmc.c host->mmc = mmc; host 1346 drivers/mmc/host/sunxi-mmc.c spin_lock_init(&host->lock); host 1348 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_resource_request(host, pdev); host 1352 drivers/mmc/host/sunxi-mmc.c host->sg_cpu = dma_alloc_coherent(&pdev->dev, PAGE_SIZE, host 1353 drivers/mmc/host/sunxi-mmc.c &host->sg_dma, GFP_KERNEL); host 1354 drivers/mmc/host/sunxi-mmc.c if (!host->sg_cpu) { host 1360 drivers/mmc/host/sunxi-mmc.c if (host->cfg->ccu_has_timings_switch) { host 1365 drivers/mmc/host/sunxi-mmc.c sunxi_ccu_set_mmc_timing_mode(host->clk_mmc, true); host 1368 drivers/mmc/host/sunxi-mmc.c ret = sunxi_ccu_get_mmc_timing_mode(host->clk_mmc); host 1375 drivers/mmc/host/sunxi-mmc.c host->use_new_timings = false; host 1377 drivers/mmc/host/sunxi-mmc.c host->use_new_timings = !!ret; host 1379 drivers/mmc/host/sunxi-mmc.c } else if (host->cfg->needs_new_timings) { host 1381 drivers/mmc/host/sunxi-mmc.c host->use_new_timings = true; host 1388 drivers/mmc/host/sunxi-mmc.c mmc->max_seg_size = (1 << host->cfg->idma_des_size_bits); host 1403 drivers/mmc/host/sunxi-mmc.c if ((host->cfg->clk_delays || host->use_new_timings) && host 1418 drivers/mmc/host/sunxi-mmc.c if (!(host->cfg->clk_delays || host->use_new_timings)) { host 1427 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_init_host(host); host 1442 drivers/mmc/host/sunxi-mmc.c host->use_new_timings ? ", uses new timings mode" : ""); host 1447 drivers/mmc/host/sunxi-mmc.c dma_free_coherent(&pdev->dev, PAGE_SIZE, host->sg_cpu, host->sg_dma); host 1456 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = mmc_priv(mmc); host 1460 drivers/mmc/host/sunxi-mmc.c disable_irq(host->irq); host 1461 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_disable(host); host 1462 drivers/mmc/host/sunxi-mmc.c dma_free_coherent(&pdev->dev, PAGE_SIZE, host->sg_cpu, host->sg_dma); host 1472 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = mmc_priv(mmc); host 1475 drivers/mmc/host/sunxi-mmc.c ret = sunxi_mmc_enable(host); host 1479 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_init_host(host); host 1480 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_set_bus_width(host, mmc->ios.bus_width); host 1481 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_set_clk(host, &mmc->ios); host 1482 drivers/mmc/host/sunxi-mmc.c enable_irq(host->irq); host 1490 drivers/mmc/host/sunxi-mmc.c struct sunxi_mmc_host *host = mmc_priv(mmc); host 1497 drivers/mmc/host/sunxi-mmc.c disable_irq(host->irq); host 1498 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_reset_host(host); host 1499 drivers/mmc/host/sunxi-mmc.c sunxi_mmc_disable(host); host 110 drivers/mmc/host/tifm_sd.c static void tifm_sd_read_fifo(struct tifm_sd *host, struct page *pg, host 113 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 118 drivers/mmc/host/tifm_sd.c if (host->cmd_flags & DATA_CARRY) { host 119 drivers/mmc/host/tifm_sd.c buf[pos++] = host->bounce_buf_data[0]; host 120 drivers/mmc/host/tifm_sd.c host->cmd_flags &= ~DATA_CARRY; host 127 drivers/mmc/host/tifm_sd.c host->bounce_buf_data[0] = (val >> 8) & 0xff; host 128 drivers/mmc/host/tifm_sd.c host->cmd_flags |= DATA_CARRY; host 136 drivers/mmc/host/tifm_sd.c static void tifm_sd_write_fifo(struct tifm_sd *host, struct page *pg, host 139 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 144 drivers/mmc/host/tifm_sd.c if (host->cmd_flags & DATA_CARRY) { host 145 drivers/mmc/host/tifm_sd.c val = host->bounce_buf_data[0] | ((buf[pos++] << 8) & 0xff00); host 147 drivers/mmc/host/tifm_sd.c host->cmd_flags &= ~DATA_CARRY; host 153 drivers/mmc/host/tifm_sd.c host->bounce_buf_data[0] = val & 0xff; host 154 drivers/mmc/host/tifm_sd.c host->cmd_flags |= DATA_CARRY; host 163 drivers/mmc/host/tifm_sd.c static void tifm_sd_transfer_data(struct tifm_sd *host) host 165 drivers/mmc/host/tifm_sd.c struct mmc_data *r_data = host->req->cmd->data; host 171 drivers/mmc/host/tifm_sd.c if (host->sg_pos == host->sg_len) host 174 drivers/mmc/host/tifm_sd.c cnt = sg[host->sg_pos].length - host->block_pos; host 176 drivers/mmc/host/tifm_sd.c host->block_pos = 0; host 177 drivers/mmc/host/tifm_sd.c host->sg_pos++; host 178 drivers/mmc/host/tifm_sd.c if (host->sg_pos == host->sg_len) { host 180 drivers/mmc/host/tifm_sd.c && (host->cmd_flags & DATA_CARRY)) host 181 drivers/mmc/host/tifm_sd.c writel(host->bounce_buf_data[0], host 182 drivers/mmc/host/tifm_sd.c host->dev->addr host 187 drivers/mmc/host/tifm_sd.c cnt = sg[host->sg_pos].length; host 189 drivers/mmc/host/tifm_sd.c off = sg[host->sg_pos].offset + host->block_pos; host 191 drivers/mmc/host/tifm_sd.c pg = nth_page(sg_page(&sg[host->sg_pos]), off >> PAGE_SHIFT); host 198 drivers/mmc/host/tifm_sd.c tifm_sd_read_fifo(host, pg, p_off, p_cnt); host 200 drivers/mmc/host/tifm_sd.c tifm_sd_write_fifo(host, pg, p_off, p_cnt); host 203 drivers/mmc/host/tifm_sd.c host->block_pos += p_cnt; host 220 drivers/mmc/host/tifm_sd.c static void tifm_sd_bounce_block(struct tifm_sd *host, struct mmc_data *r_data) host 228 drivers/mmc/host/tifm_sd.c dev_dbg(&host->dev->dev, "bouncing block\n"); host 230 drivers/mmc/host/tifm_sd.c cnt = sg[host->sg_pos].length - host->block_pos; host 232 drivers/mmc/host/tifm_sd.c host->block_pos = 0; host 233 drivers/mmc/host/tifm_sd.c host->sg_pos++; host 234 drivers/mmc/host/tifm_sd.c if (host->sg_pos == host->sg_len) host 236 drivers/mmc/host/tifm_sd.c cnt = sg[host->sg_pos].length; host 238 drivers/mmc/host/tifm_sd.c off = sg[host->sg_pos].offset + host->block_pos; host 240 drivers/mmc/host/tifm_sd.c pg = nth_page(sg_page(&sg[host->sg_pos]), off >> PAGE_SHIFT); host 247 drivers/mmc/host/tifm_sd.c tifm_sd_copy_page(sg_page(&host->bounce_buf), host 251 drivers/mmc/host/tifm_sd.c tifm_sd_copy_page(pg, p_off, sg_page(&host->bounce_buf), host 255 drivers/mmc/host/tifm_sd.c host->block_pos += p_cnt; host 259 drivers/mmc/host/tifm_sd.c static int tifm_sd_set_dma_data(struct tifm_sd *host, struct mmc_data *r_data) host 261 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 267 drivers/mmc/host/tifm_sd.c if (host->sg_pos == host->sg_len) host 270 drivers/mmc/host/tifm_sd.c if (host->cmd_flags & DATA_CARRY) { host 271 drivers/mmc/host/tifm_sd.c host->cmd_flags &= ~DATA_CARRY; host 273 drivers/mmc/host/tifm_sd.c tifm_sd_bounce_block(host, r_data); host 275 drivers/mmc/host/tifm_sd.c if (host->sg_pos == host->sg_len) host 279 drivers/mmc/host/tifm_sd.c dma_len = sg_dma_len(&r_data->sg[host->sg_pos]) - host->block_pos; host 281 drivers/mmc/host/tifm_sd.c host->block_pos = 0; host 282 drivers/mmc/host/tifm_sd.c host->sg_pos++; host 283 drivers/mmc/host/tifm_sd.c if (host->sg_pos == host->sg_len) host 285 drivers/mmc/host/tifm_sd.c dma_len = sg_dma_len(&r_data->sg[host->sg_pos]); host 290 drivers/mmc/host/tifm_sd.c dma_off = host->block_pos; host 291 drivers/mmc/host/tifm_sd.c host->block_pos += dma_blk_cnt * r_data->blksz; host 294 drivers/mmc/host/tifm_sd.c dma_off = host->block_pos; host 295 drivers/mmc/host/tifm_sd.c host->block_pos += t_size; host 299 drivers/mmc/host/tifm_sd.c sg = &r_data->sg[host->sg_pos]; host 303 drivers/mmc/host/tifm_sd.c tifm_sd_bounce_block(host, r_data); host 306 drivers/mmc/host/tifm_sd.c host->cmd_flags |= DATA_CARRY; host 308 drivers/mmc/host/tifm_sd.c sg = &host->bounce_buf; host 369 drivers/mmc/host/tifm_sd.c static void tifm_sd_exec(struct tifm_sd *host, struct mmc_command *cmd) host 371 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 374 drivers/mmc/host/tifm_sd.c if (host->open_drain) host 400 drivers/mmc/host/tifm_sd.c static void tifm_sd_check_status(struct tifm_sd *host) host 402 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 403 drivers/mmc/host/tifm_sd.c struct mmc_command *cmd = host->req->cmd; host 408 drivers/mmc/host/tifm_sd.c if (!(host->cmd_flags & CMD_READY)) host 413 drivers/mmc/host/tifm_sd.c if ((host->cmd_flags & SCMD_ACTIVE) host 414 drivers/mmc/host/tifm_sd.c && !(host->cmd_flags & SCMD_READY)) host 420 drivers/mmc/host/tifm_sd.c if (!(host->cmd_flags & BRS_READY)) host 423 drivers/mmc/host/tifm_sd.c if (!(host->no_dma || (host->cmd_flags & FIFO_READY))) host 427 drivers/mmc/host/tifm_sd.c if (host->req->stop) { host 428 drivers/mmc/host/tifm_sd.c if (!(host->cmd_flags & SCMD_ACTIVE)) { host 429 drivers/mmc/host/tifm_sd.c host->cmd_flags |= SCMD_ACTIVE; host 435 drivers/mmc/host/tifm_sd.c tifm_sd_exec(host, host->req->stop); host 438 drivers/mmc/host/tifm_sd.c if (!(host->cmd_flags & SCMD_READY) host 439 drivers/mmc/host/tifm_sd.c || (host->cmd_flags & CARD_BUSY)) host 448 drivers/mmc/host/tifm_sd.c if (host->cmd_flags & CARD_BUSY) host 456 drivers/mmc/host/tifm_sd.c if (host->req->stop) { host 457 drivers/mmc/host/tifm_sd.c if (!(host->cmd_flags & SCMD_ACTIVE)) { host 458 drivers/mmc/host/tifm_sd.c host->cmd_flags |= SCMD_ACTIVE; host 459 drivers/mmc/host/tifm_sd.c tifm_sd_exec(host, host->req->stop); host 462 drivers/mmc/host/tifm_sd.c if (!(host->cmd_flags & SCMD_READY)) host 469 drivers/mmc/host/tifm_sd.c tasklet_schedule(&host->finish_tasklet); host 475 drivers/mmc/host/tifm_sd.c struct tifm_sd *host; host 480 drivers/mmc/host/tifm_sd.c host = mmc_priv((struct mmc_host*)tifm_get_drvdata(sock)); host 483 drivers/mmc/host/tifm_sd.c fifo_status, host->cmd_flags); host 485 drivers/mmc/host/tifm_sd.c if (host->req) { host 486 drivers/mmc/host/tifm_sd.c r_data = host->req->cmd->data; host 489 drivers/mmc/host/tifm_sd.c if (tifm_sd_set_dma_data(host, r_data)) { host 490 drivers/mmc/host/tifm_sd.c host->cmd_flags |= FIFO_READY; host 491 drivers/mmc/host/tifm_sd.c tifm_sd_check_status(host); host 503 drivers/mmc/host/tifm_sd.c struct tifm_sd *host; host 510 drivers/mmc/host/tifm_sd.c host = mmc_priv((struct mmc_host*)tifm_get_drvdata(sock)); host 513 drivers/mmc/host/tifm_sd.c host_status, host->cmd_flags); host 515 drivers/mmc/host/tifm_sd.c if (host->req) { host 516 drivers/mmc/host/tifm_sd.c cmd = host->req->cmd; host 537 drivers/mmc/host/tifm_sd.c if (host->req->stop) { host 538 drivers/mmc/host/tifm_sd.c if (host->cmd_flags & SCMD_ACTIVE) { host 539 drivers/mmc/host/tifm_sd.c host->req->stop->error = cmd_error; host 540 drivers/mmc/host/tifm_sd.c host->cmd_flags |= SCMD_READY; host 543 drivers/mmc/host/tifm_sd.c host->cmd_flags |= SCMD_ACTIVE; host 544 drivers/mmc/host/tifm_sd.c tifm_sd_exec(host, host->req->stop); host 551 drivers/mmc/host/tifm_sd.c if (!(host->cmd_flags & CMD_READY)) { host 552 drivers/mmc/host/tifm_sd.c host->cmd_flags |= CMD_READY; host 554 drivers/mmc/host/tifm_sd.c } else if (host->cmd_flags & SCMD_ACTIVE) { host 555 drivers/mmc/host/tifm_sd.c host->cmd_flags |= SCMD_READY; host 556 drivers/mmc/host/tifm_sd.c tifm_sd_fetch_resp(host->req->stop, host 561 drivers/mmc/host/tifm_sd.c host->cmd_flags |= BRS_READY; host 564 drivers/mmc/host/tifm_sd.c if (host->no_dma && cmd->data) { host 572 drivers/mmc/host/tifm_sd.c tifm_sd_transfer_data(host); host 579 drivers/mmc/host/tifm_sd.c host->cmd_flags &= ~CARD_BUSY; host 581 drivers/mmc/host/tifm_sd.c host->cmd_flags |= CARD_BUSY; host 583 drivers/mmc/host/tifm_sd.c tifm_sd_check_status(host); host 590 drivers/mmc/host/tifm_sd.c static void tifm_sd_set_data_timeout(struct tifm_sd *host, host 593 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 600 drivers/mmc/host/tifm_sd.c ((1000000000UL / host->clk_freq) * host->clk_div); host 620 drivers/mmc/host/tifm_sd.c struct tifm_sd *host = mmc_priv(mmc); host 621 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 626 drivers/mmc/host/tifm_sd.c if (host->eject) { host 631 drivers/mmc/host/tifm_sd.c if (host->req) { host 638 drivers/mmc/host/tifm_sd.c host->cmd_flags = 0; host 639 drivers/mmc/host/tifm_sd.c host->block_pos = 0; host 640 drivers/mmc/host/tifm_sd.c host->sg_pos = 0; host 643 drivers/mmc/host/tifm_sd.c host->no_dma = 1; host 645 drivers/mmc/host/tifm_sd.c host->no_dma = no_dma ? 1 : 0; host 648 drivers/mmc/host/tifm_sd.c tifm_sd_set_data_timeout(host, r_data); host 655 drivers/mmc/host/tifm_sd.c if (host->no_dma) { host 663 drivers/mmc/host/tifm_sd.c host->sg_len = r_data->sg_len; host 665 drivers/mmc/host/tifm_sd.c sg_init_one(&host->bounce_buf, host->bounce_buf_data, host 668 drivers/mmc/host/tifm_sd.c if(1 != tifm_map_sg(sock, &host->bounce_buf, 1, host 677 drivers/mmc/host/tifm_sd.c host->sg_len = tifm_map_sg(sock, r_data->sg, host 683 drivers/mmc/host/tifm_sd.c if (host->sg_len < 1) { host 686 drivers/mmc/host/tifm_sd.c tifm_unmap_sg(sock, &host->bounce_buf, 1, host 710 drivers/mmc/host/tifm_sd.c tifm_sd_set_dma_data(host, r_data); host 719 drivers/mmc/host/tifm_sd.c host->req = mrq; host 720 drivers/mmc/host/tifm_sd.c mod_timer(&host->timer, jiffies + host->timeout_jiffies); host 723 drivers/mmc/host/tifm_sd.c tifm_sd_exec(host, mrq->cmd); host 734 drivers/mmc/host/tifm_sd.c struct tifm_sd *host = (struct tifm_sd*)data; host 735 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 743 drivers/mmc/host/tifm_sd.c del_timer(&host->timer); host 744 drivers/mmc/host/tifm_sd.c mrq = host->req; host 745 drivers/mmc/host/tifm_sd.c host->req = NULL; host 756 drivers/mmc/host/tifm_sd.c if (host->no_dma) { host 761 drivers/mmc/host/tifm_sd.c tifm_unmap_sg(sock, &host->bounce_buf, 1, host 785 drivers/mmc/host/tifm_sd.c struct tifm_sd *host = from_timer(host, t, timer); host 789 drivers/mmc/host/tifm_sd.c dev_name(&host->dev->dev), host->req->cmd->opcode, host->cmd_flags); host 791 drivers/mmc/host/tifm_sd.c tifm_eject(host->dev); host 796 drivers/mmc/host/tifm_sd.c struct tifm_sd *host = mmc_priv(mmc); host 797 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 831 drivers/mmc/host/tifm_sd.c host->clk_freq = 20000000; host 832 drivers/mmc/host/tifm_sd.c host->clk_div = clk_div1; host 837 drivers/mmc/host/tifm_sd.c host->clk_freq = 24000000; host 838 drivers/mmc/host/tifm_sd.c host->clk_div = clk_div2; host 844 drivers/mmc/host/tifm_sd.c host->clk_div = 0; host 846 drivers/mmc/host/tifm_sd.c host->clk_div &= TIFM_MMCSD_CLKMASK; host 847 drivers/mmc/host/tifm_sd.c writel(host->clk_div host 852 drivers/mmc/host/tifm_sd.c host->open_drain = (ios->bus_mode == MMC_BUSMODE_OPENDRAIN); host 864 drivers/mmc/host/tifm_sd.c struct tifm_sd *host = mmc_priv(mmc); host 865 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 881 drivers/mmc/host/tifm_sd.c static int tifm_sd_initialize_host(struct tifm_sd *host) host 885 drivers/mmc/host/tifm_sd.c struct tifm_dev *sock = host->dev; host 888 drivers/mmc/host/tifm_sd.c host->clk_div = 61; host 889 drivers/mmc/host/tifm_sd.c host->clk_freq = 20000000; host 891 drivers/mmc/host/tifm_sd.c writel(host->clk_div | TIFM_MMCSD_POWER, host 910 drivers/mmc/host/tifm_sd.c writel(host->clk_div | TIFM_MMCSD_POWER, host 945 drivers/mmc/host/tifm_sd.c struct tifm_sd *host; host 959 drivers/mmc/host/tifm_sd.c host = mmc_priv(mmc); host 961 drivers/mmc/host/tifm_sd.c host->dev = sock; host 962 drivers/mmc/host/tifm_sd.c host->timeout_jiffies = msecs_to_jiffies(1000); host 964 drivers/mmc/host/tifm_sd.c tasklet_init(&host->finish_tasklet, tifm_sd_end_cmd, host 965 drivers/mmc/host/tifm_sd.c (unsigned long)host); host 966 drivers/mmc/host/tifm_sd.c timer_setup(&host->timer, tifm_sd_abort, 0); host 982 drivers/mmc/host/tifm_sd.c rc = tifm_sd_initialize_host(host); host 996 drivers/mmc/host/tifm_sd.c struct tifm_sd *host = mmc_priv(mmc); host 1000 drivers/mmc/host/tifm_sd.c host->eject = 1; host 1004 drivers/mmc/host/tifm_sd.c tasklet_kill(&host->finish_tasklet); host 1007 drivers/mmc/host/tifm_sd.c if (host->req) { host 1011 drivers/mmc/host/tifm_sd.c host->req->cmd->error = -ENOMEDIUM; host 1012 drivers/mmc/host/tifm_sd.c if (host->req->stop) host 1013 drivers/mmc/host/tifm_sd.c host->req->stop->error = -ENOMEDIUM; host 1014 drivers/mmc/host/tifm_sd.c tasklet_schedule(&host->finish_tasklet); host 1033 drivers/mmc/host/tifm_sd.c struct tifm_sd *host = mmc_priv(mmc); host 1036 drivers/mmc/host/tifm_sd.c rc = tifm_sd_initialize_host(host); host 1040 drivers/mmc/host/tifm_sd.c host->eject = 1; host 29 drivers/mmc/host/tmio_mmc.c static void tmio_mmc_clk_start(struct tmio_mmc_host *host) host 31 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | host 32 drivers/mmc/host/tmio_mmc.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 35 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0100); host 39 drivers/mmc/host/tmio_mmc.c static void tmio_mmc_clk_stop(struct tmio_mmc_host *host) host 41 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_CLK_AND_WAIT_CTL, 0x0000); host 44 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & host 45 drivers/mmc/host/tmio_mmc.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 50 drivers/mmc/host/tmio_mmc.c static void tmio_mmc_set_clock(struct tmio_mmc_host *host, host 58 drivers/mmc/host/tmio_mmc.c tmio_mmc_clk_stop(host); host 62 drivers/mmc/host/tmio_mmc.c divisor = host->pdata->hclk / new_clock; host 68 drivers/mmc/host/tmio_mmc.c host->pdata->set_clk_div(host->pdev, clk_sel); host 70 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & host 71 drivers/mmc/host/tmio_mmc.c sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL)); host 72 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk & CLK_CTL_DIV_MASK); host 75 drivers/mmc/host/tmio_mmc.c tmio_mmc_clk_start(host); host 78 drivers/mmc/host/tmio_mmc.c static void tmio_mmc_reset(struct tmio_mmc_host *host) host 81 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_RESET_SD, 0x0000); host 82 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_RESET_SDIO, 0x0000); host 84 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_RESET_SD, 0x0001); host 85 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_RESET_SDIO, 0x0001); host 88 drivers/mmc/host/tmio_mmc.c if (host->pdata->flags & TMIO_MMC_SDIO_IRQ) { host 89 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask); host 90 drivers/mmc/host/tmio_mmc.c sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0001); host 131 drivers/mmc/host/tmio_mmc.c struct tmio_mmc_host *host; host 161 drivers/mmc/host/tmio_mmc.c host = tmio_mmc_host_alloc(pdev, pdata); host 162 drivers/mmc/host/tmio_mmc.c if (IS_ERR(host)) { host 163 drivers/mmc/host/tmio_mmc.c ret = PTR_ERR(host); host 168 drivers/mmc/host/tmio_mmc.c host->bus_shift = resource_size(res) >> 10; host 169 drivers/mmc/host/tmio_mmc.c host->set_clock = tmio_mmc_set_clock; host 170 drivers/mmc/host/tmio_mmc.c host->reset = tmio_mmc_reset; host 172 drivers/mmc/host/tmio_mmc.c host->mmc->f_max = pdata->hclk; host 173 drivers/mmc/host/tmio_mmc.c host->mmc->f_min = pdata->hclk / 512; host 175 drivers/mmc/host/tmio_mmc.c ret = tmio_mmc_host_probe(host); host 181 drivers/mmc/host/tmio_mmc.c dev_name(&pdev->dev), host); host 185 drivers/mmc/host/tmio_mmc.c pr_info("%s at 0x%08lx irq %d\n", mmc_hostname(host->mmc), host 186 drivers/mmc/host/tmio_mmc.c (unsigned long)host->ctl, irq); host 191 drivers/mmc/host/tmio_mmc.c tmio_mmc_host_remove(host); host 193 drivers/mmc/host/tmio_mmc.c tmio_mmc_host_free(host); host 204 drivers/mmc/host/tmio_mmc.c struct tmio_mmc_host *host = platform_get_drvdata(pdev); host 206 drivers/mmc/host/tmio_mmc.c tmio_mmc_host_remove(host); host 114 drivers/mmc/host/tmio_mmc.h void (*start)(struct tmio_mmc_host *host, struct mmc_data *data); host 115 drivers/mmc/host/tmio_mmc.h void (*enable)(struct tmio_mmc_host *host, bool enable); host 116 drivers/mmc/host/tmio_mmc.h void (*request)(struct tmio_mmc_host *host, host 118 drivers/mmc/host/tmio_mmc.h void (*release)(struct tmio_mmc_host *host); host 119 drivers/mmc/host/tmio_mmc.h void (*abort)(struct tmio_mmc_host *host); host 120 drivers/mmc/host/tmio_mmc.h void (*dataend)(struct tmio_mmc_host *host); host 132 drivers/mmc/host/tmio_mmc.h void (*set_pwr)(struct platform_device *host, int state); host 170 drivers/mmc/host/tmio_mmc.h int (*clk_enable)(struct tmio_mmc_host *host); host 171 drivers/mmc/host/tmio_mmc.h void (*set_clock)(struct tmio_mmc_host *host, unsigned int clock); host 174 drivers/mmc/host/tmio_mmc.h void (*clk_disable)(struct tmio_mmc_host *host); host 177 drivers/mmc/host/tmio_mmc.h int (*write16_hook)(struct tmio_mmc_host *host, int addr); host 178 drivers/mmc/host/tmio_mmc.h void (*reset)(struct tmio_mmc_host *host); host 179 drivers/mmc/host/tmio_mmc.h void (*hw_reset)(struct tmio_mmc_host *host); host 180 drivers/mmc/host/tmio_mmc.h void (*prepare_tuning)(struct tmio_mmc_host *host, unsigned long tap); host 181 drivers/mmc/host/tmio_mmc.h bool (*check_scc_error)(struct tmio_mmc_host *host); host 187 drivers/mmc/host/tmio_mmc.h unsigned int (*init_tuning)(struct tmio_mmc_host *host); host 188 drivers/mmc/host/tmio_mmc.h int (*select_tuning)(struct tmio_mmc_host *host); host 195 drivers/mmc/host/tmio_mmc.h void (*prepare_hs400_tuning)(struct tmio_mmc_host *host); host 196 drivers/mmc/host/tmio_mmc.h void (*hs400_downgrade)(struct tmio_mmc_host *host); host 197 drivers/mmc/host/tmio_mmc.h void (*hs400_complete)(struct tmio_mmc_host *host); host 204 drivers/mmc/host/tmio_mmc.h void tmio_mmc_host_free(struct tmio_mmc_host *host); host 205 drivers/mmc/host/tmio_mmc.h int tmio_mmc_host_probe(struct tmio_mmc_host *host); host 206 drivers/mmc/host/tmio_mmc.h void tmio_mmc_host_remove(struct tmio_mmc_host *host); host 207 drivers/mmc/host/tmio_mmc.h void tmio_mmc_do_data_irq(struct tmio_mmc_host *host); host 209 drivers/mmc/host/tmio_mmc.h void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *host, u32 i); host 210 drivers/mmc/host/tmio_mmc.h void tmio_mmc_disable_mmc_irqs(struct tmio_mmc_host *host, u32 i); host 232 drivers/mmc/host/tmio_mmc.h static inline u16 sd_ctrl_read16(struct tmio_mmc_host *host, int addr) host 234 drivers/mmc/host/tmio_mmc.h return ioread16(host->ctl + (addr << host->bus_shift)); host 237 drivers/mmc/host/tmio_mmc.h static inline void sd_ctrl_read16_rep(struct tmio_mmc_host *host, int addr, host 240 drivers/mmc/host/tmio_mmc.h ioread16_rep(host->ctl + (addr << host->bus_shift), buf, count); host 243 drivers/mmc/host/tmio_mmc.h static inline u32 sd_ctrl_read16_and_16_as_32(struct tmio_mmc_host *host, host 246 drivers/mmc/host/tmio_mmc.h return ioread16(host->ctl + (addr << host->bus_shift)) | host 247 drivers/mmc/host/tmio_mmc.h ioread16(host->ctl + ((addr + 2) << host->bus_shift)) << 16; host 250 drivers/mmc/host/tmio_mmc.h static inline void sd_ctrl_read32_rep(struct tmio_mmc_host *host, int addr, host 253 drivers/mmc/host/tmio_mmc.h ioread32_rep(host->ctl + (addr << host->bus_shift), buf, count); host 256 drivers/mmc/host/tmio_mmc.h static inline void sd_ctrl_write16(struct tmio_mmc_host *host, int addr, host 262 drivers/mmc/host/tmio_mmc.h if (host->write16_hook && host->write16_hook(host, addr)) host 264 drivers/mmc/host/tmio_mmc.h iowrite16(val, host->ctl + (addr << host->bus_shift)); host 267 drivers/mmc/host/tmio_mmc.h static inline void sd_ctrl_write16_rep(struct tmio_mmc_host *host, int addr, host 270 drivers/mmc/host/tmio_mmc.h iowrite16_rep(host->ctl + (addr << host->bus_shift), buf, count); host 273 drivers/mmc/host/tmio_mmc.h static inline void sd_ctrl_write32_as_16_and_16(struct tmio_mmc_host *host, host 277 drivers/mmc/host/tmio_mmc.h val |= host->sdcard_irq_setbit_mask; host 279 drivers/mmc/host/tmio_mmc.h iowrite16(val & 0xffff, host->ctl + (addr << host->bus_shift)); host 280 drivers/mmc/host/tmio_mmc.h iowrite16(val >> 16, host->ctl + ((addr + 2) << host->bus_shift)); host 283 drivers/mmc/host/tmio_mmc.h static inline void sd_ctrl_write32(struct tmio_mmc_host *host, int addr, u32 val) host 285 drivers/mmc/host/tmio_mmc.h iowrite32(val, host->ctl + (addr << host->bus_shift)); host 288 drivers/mmc/host/tmio_mmc.h static inline void sd_ctrl_write32_rep(struct tmio_mmc_host *host, int addr, host 291 drivers/mmc/host/tmio_mmc.h iowrite32_rep(host->ctl + (addr << host->bus_shift), buf, count); host 53 drivers/mmc/host/tmio_mmc_core.c static inline void tmio_mmc_start_dma(struct tmio_mmc_host *host, host 56 drivers/mmc/host/tmio_mmc_core.c if (host->dma_ops) host 57 drivers/mmc/host/tmio_mmc_core.c host->dma_ops->start(host, data); host 60 drivers/mmc/host/tmio_mmc_core.c static inline void tmio_mmc_enable_dma(struct tmio_mmc_host *host, bool enable) host 62 drivers/mmc/host/tmio_mmc_core.c if (host->dma_ops) host 63 drivers/mmc/host/tmio_mmc_core.c host->dma_ops->enable(host, enable); host 66 drivers/mmc/host/tmio_mmc_core.c static inline void tmio_mmc_request_dma(struct tmio_mmc_host *host, host 69 drivers/mmc/host/tmio_mmc_core.c if (host->dma_ops) { host 70 drivers/mmc/host/tmio_mmc_core.c host->dma_ops->request(host, pdata); host 72 drivers/mmc/host/tmio_mmc_core.c host->chan_tx = NULL; host 73 drivers/mmc/host/tmio_mmc_core.c host->chan_rx = NULL; host 77 drivers/mmc/host/tmio_mmc_core.c static inline void tmio_mmc_release_dma(struct tmio_mmc_host *host) host 79 drivers/mmc/host/tmio_mmc_core.c if (host->dma_ops) host 80 drivers/mmc/host/tmio_mmc_core.c host->dma_ops->release(host); host 83 drivers/mmc/host/tmio_mmc_core.c static inline void tmio_mmc_abort_dma(struct tmio_mmc_host *host) host 85 drivers/mmc/host/tmio_mmc_core.c if (host->dma_ops) host 86 drivers/mmc/host/tmio_mmc_core.c host->dma_ops->abort(host); host 89 drivers/mmc/host/tmio_mmc_core.c static inline void tmio_mmc_dataend_dma(struct tmio_mmc_host *host) host 91 drivers/mmc/host/tmio_mmc_core.c if (host->dma_ops) host 92 drivers/mmc/host/tmio_mmc_core.c host->dma_ops->dataend(host); host 95 drivers/mmc/host/tmio_mmc_core.c void tmio_mmc_enable_mmc_irqs(struct tmio_mmc_host *host, u32 i) host 97 drivers/mmc/host/tmio_mmc_core.c host->sdcard_irq_mask &= ~(i & TMIO_MASK_IRQ); host 98 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write32_as_16_and_16(host, CTL_IRQ_MASK, host->sdcard_irq_mask); host 102 drivers/mmc/host/tmio_mmc_core.c void tmio_mmc_disable_mmc_irqs(struct tmio_mmc_host *host, u32 i) host 104 drivers/mmc/host/tmio_mmc_core.c host->sdcard_irq_mask |= (i & TMIO_MASK_IRQ); host 105 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write32_as_16_and_16(host, CTL_IRQ_MASK, host->sdcard_irq_mask); host 109 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_ack_mmc_irqs(struct tmio_mmc_host *host, u32 i) host 111 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write32_as_16_and_16(host, CTL_STATUS, ~i); host 114 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_init_sg(struct tmio_mmc_host *host, struct mmc_data *data) host 116 drivers/mmc/host/tmio_mmc_core.c host->sg_len = data->sg_len; host 117 drivers/mmc/host/tmio_mmc_core.c host->sg_ptr = data->sg; host 118 drivers/mmc/host/tmio_mmc_core.c host->sg_orig = data->sg; host 119 drivers/mmc/host/tmio_mmc_core.c host->sg_off = 0; host 122 drivers/mmc/host/tmio_mmc_core.c static int tmio_mmc_next_sg(struct tmio_mmc_host *host) host 124 drivers/mmc/host/tmio_mmc_core.c host->sg_ptr = sg_next(host->sg_ptr); host 125 drivers/mmc/host/tmio_mmc_core.c host->sg_off = 0; host 126 drivers/mmc/host/tmio_mmc_core.c return --host->sg_len; host 133 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 135 drivers/mmc/host/tmio_mmc_core.c if (enable && !host->sdio_irq_enabled) { host 141 drivers/mmc/host/tmio_mmc_core.c host->sdio_irq_enabled = true; host 142 drivers/mmc/host/tmio_mmc_core.c host->sdio_irq_mask = TMIO_SDIO_MASK_ALL & ~TMIO_SDIO_STAT_IOIRQ; host 145 drivers/mmc/host/tmio_mmc_core.c sdio_status = sd_ctrl_read16(host, CTL_SDIO_STATUS) & ~TMIO_SDIO_MASK_ALL; host 146 drivers/mmc/host/tmio_mmc_core.c if (host->pdata->flags & TMIO_MMC_SDIO_STATUS_SETBITS) host 148 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SDIO_STATUS, sdio_status); host 150 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask); host 151 drivers/mmc/host/tmio_mmc_core.c } else if (!enable && host->sdio_irq_enabled) { host 152 drivers/mmc/host/tmio_mmc_core.c host->sdio_irq_mask = TMIO_SDIO_MASK_ALL; host 153 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask); host 155 drivers/mmc/host/tmio_mmc_core.c host->sdio_irq_enabled = false; host 161 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_reset(struct tmio_mmc_host *host) host 164 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_RESET_SD, 0x0000); host 166 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_RESET_SD, 0x0001); host 169 drivers/mmc/host/tmio_mmc_core.c if (host->pdata->flags & TMIO_MMC_SDIO_IRQ) { host 170 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SDIO_IRQ_MASK, host->sdio_irq_mask); host 171 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0001); host 177 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 179 drivers/mmc/host/tmio_mmc_core.c host->reset(host); host 181 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_abort_dma(host); host 183 drivers/mmc/host/tmio_mmc_core.c if (host->hw_reset) host 184 drivers/mmc/host/tmio_mmc_core.c host->hw_reset(host); host 189 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = container_of(work, struct tmio_mmc_host, host 194 drivers/mmc/host/tmio_mmc_core.c spin_lock_irqsave(&host->lock, flags); host 195 drivers/mmc/host/tmio_mmc_core.c mrq = host->mrq; host 203 drivers/mmc/host/tmio_mmc_core.c time_is_after_jiffies(host->last_req_ts + host 205 drivers/mmc/host/tmio_mmc_core.c spin_unlock_irqrestore(&host->lock, flags); host 209 drivers/mmc/host/tmio_mmc_core.c dev_warn(&host->pdev->dev, host 213 drivers/mmc/host/tmio_mmc_core.c if (host->data) host 214 drivers/mmc/host/tmio_mmc_core.c host->data->error = -ETIMEDOUT; host 215 drivers/mmc/host/tmio_mmc_core.c else if (host->cmd) host 216 drivers/mmc/host/tmio_mmc_core.c host->cmd->error = -ETIMEDOUT; host 220 drivers/mmc/host/tmio_mmc_core.c host->cmd = NULL; host 221 drivers/mmc/host/tmio_mmc_core.c host->data = NULL; host 223 drivers/mmc/host/tmio_mmc_core.c spin_unlock_irqrestore(&host->lock, flags); host 225 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_hw_reset(host->mmc); host 228 drivers/mmc/host/tmio_mmc_core.c host->mrq = NULL; host 230 drivers/mmc/host/tmio_mmc_core.c mmc_request_done(host->mmc, mrq); host 247 drivers/mmc/host/tmio_mmc_core.c static int tmio_mmc_start_command(struct tmio_mmc_host *host, host 250 drivers/mmc/host/tmio_mmc_core.c struct mmc_data *data = host->data; host 266 drivers/mmc/host/tmio_mmc_core.c host->cmd = cmd; host 276 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, TMIO_STOP_SEC); host 283 drivers/mmc/host/tmio_mmc_core.c if ((host->pdata->flags & TMIO_MMC_HAVE_CMD12_CTRL) && host 284 drivers/mmc/host/tmio_mmc_core.c (cmd->opcode == SD_IO_RW_EXTENDED || host->mrq->sbc)) host 291 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_enable_mmc_irqs(host, TMIO_MASK_CMD); host 294 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write32_as_16_and_16(host, CTL_ARG_REG, cmd->arg); host 295 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SD_CMD, c); host 300 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_transfer_data(struct tmio_mmc_host *host, host 304 drivers/mmc/host/tmio_mmc_core.c int is_read = host->data->flags & MMC_DATA_READ; host 310 drivers/mmc/host/tmio_mmc_core.c if (host->pdata->flags & TMIO_MMC_32BIT_DATA_PORT) { host 315 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_read32_rep(host, CTL_SD_DATA_PORT, buf32, host 318 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write32_rep(host, CTL_SD_DATA_PORT, buf32, host 329 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_read32_rep(host, CTL_SD_DATA_PORT, &data, 1); host 333 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write32_rep(host, CTL_SD_DATA_PORT, &data, 1); host 340 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_read16_rep(host, CTL_SD_DATA_PORT, buf, count >> 1); host 342 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16_rep(host, CTL_SD_DATA_PORT, buf, count >> 1); host 358 drivers/mmc/host/tmio_mmc_core.c *buf8 = sd_ctrl_read16(host, CTL_SD_DATA_PORT) & 0xff; host 360 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SD_DATA_PORT, *buf8); host 368 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_pio_irq(struct tmio_mmc_host *host) host 370 drivers/mmc/host/tmio_mmc_core.c struct mmc_data *data = host->data; host 376 drivers/mmc/host/tmio_mmc_core.c if (host->dma_on) { host 384 drivers/mmc/host/tmio_mmc_core.c sg_virt = tmio_mmc_kmap_atomic(host->sg_ptr, &flags); host 385 drivers/mmc/host/tmio_mmc_core.c buf = (unsigned short *)(sg_virt + host->sg_off); host 387 drivers/mmc/host/tmio_mmc_core.c count = host->sg_ptr->length - host->sg_off; host 392 drivers/mmc/host/tmio_mmc_core.c count, host->sg_off, data->flags); host 395 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_transfer_data(host, buf, count); host 397 drivers/mmc/host/tmio_mmc_core.c host->sg_off += count; host 399 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_kunmap_atomic(host->sg_ptr, &flags, sg_virt); host 401 drivers/mmc/host/tmio_mmc_core.c if (host->sg_off == host->sg_ptr->length) host 402 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_next_sg(host); host 405 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_check_bounce_buffer(struct tmio_mmc_host *host) host 407 drivers/mmc/host/tmio_mmc_core.c if (host->sg_ptr == &host->bounce_sg) { host 409 drivers/mmc/host/tmio_mmc_core.c void *sg_vaddr = tmio_mmc_kmap_atomic(host->sg_orig, &flags); host 411 drivers/mmc/host/tmio_mmc_core.c memcpy(sg_vaddr, host->bounce_buf, host->bounce_sg.length); host 412 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_kunmap_atomic(host->sg_orig, &flags, sg_vaddr); host 417 drivers/mmc/host/tmio_mmc_core.c void tmio_mmc_do_data_irq(struct tmio_mmc_host *host) host 419 drivers/mmc/host/tmio_mmc_core.c struct mmc_data *data = host->data; host 422 drivers/mmc/host/tmio_mmc_core.c host->data = NULL; host 425 drivers/mmc/host/tmio_mmc_core.c dev_warn(&host->pdev->dev, "Spurious data end IRQ\n"); host 448 drivers/mmc/host/tmio_mmc_core.c if (host->dma_on) host 449 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_check_bounce_buffer(host); host 450 drivers/mmc/host/tmio_mmc_core.c dev_dbg(&host->pdev->dev, "Complete Rx request %p\n", host 451 drivers/mmc/host/tmio_mmc_core.c host->mrq); host 453 drivers/mmc/host/tmio_mmc_core.c dev_dbg(&host->pdev->dev, "Complete Tx request %p\n", host 454 drivers/mmc/host/tmio_mmc_core.c host->mrq); host 457 drivers/mmc/host/tmio_mmc_core.c if (stop && !host->mrq->sbc) { host 459 drivers/mmc/host/tmio_mmc_core.c dev_err(&host->pdev->dev, "unsupported stop: CMD%u,0x%x. We did CMD12,0\n", host 463 drivers/mmc/host/tmio_mmc_core.c stop->resp[0] = sd_ctrl_read16_and_16_as_32(host, CTL_RESPONSE); host 465 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_STOP_INTERNAL_ACTION, 0); host 468 drivers/mmc/host/tmio_mmc_core.c schedule_work(&host->done); host 472 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_data_irq(struct tmio_mmc_host *host, unsigned int stat) host 476 drivers/mmc/host/tmio_mmc_core.c spin_lock(&host->lock); host 477 drivers/mmc/host/tmio_mmc_core.c data = host->data; host 485 drivers/mmc/host/tmio_mmc_core.c if (host->dma_on && (data->flags & MMC_DATA_WRITE)) { host 486 drivers/mmc/host/tmio_mmc_core.c u32 status = sd_ctrl_read16_and_16_as_32(host, CTL_STATUS); host 497 drivers/mmc/host/tmio_mmc_core.c if (host->pdata->flags & TMIO_MMC_HAS_IDLE_WAIT) { host 506 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_disable_mmc_irqs(host, TMIO_STAT_DATAEND); host 507 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_dataend_dma(host); host 509 drivers/mmc/host/tmio_mmc_core.c } else if (host->dma_on && (data->flags & MMC_DATA_READ)) { host 510 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_disable_mmc_irqs(host, TMIO_STAT_DATAEND); host 511 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_dataend_dma(host); host 513 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_do_data_irq(host); host 514 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_READOP | TMIO_MASK_WRITEOP); host 517 drivers/mmc/host/tmio_mmc_core.c spin_unlock(&host->lock); host 520 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_cmd_irq(struct tmio_mmc_host *host, unsigned int stat) host 522 drivers/mmc/host/tmio_mmc_core.c struct mmc_command *cmd = host->cmd; host 525 drivers/mmc/host/tmio_mmc_core.c spin_lock(&host->lock); host 527 drivers/mmc/host/tmio_mmc_core.c if (!host->cmd) { host 538 drivers/mmc/host/tmio_mmc_core.c cmd->resp[i] = sd_ctrl_read16_and_16_as_32(host, addr); host 560 drivers/mmc/host/tmio_mmc_core.c if (host->data && (!cmd->error || cmd->error == -EILSEQ)) { host 561 drivers/mmc/host/tmio_mmc_core.c if (host->data->flags & MMC_DATA_READ) { host 562 drivers/mmc/host/tmio_mmc_core.c if (!host->dma_on) { host 563 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_enable_mmc_irqs(host, TMIO_MASK_READOP); host 565 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_disable_mmc_irqs(host, host 567 drivers/mmc/host/tmio_mmc_core.c tasklet_schedule(&host->dma_issue); host 570 drivers/mmc/host/tmio_mmc_core.c if (!host->dma_on) { host 571 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_enable_mmc_irqs(host, TMIO_MASK_WRITEOP); host 573 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_disable_mmc_irqs(host, host 575 drivers/mmc/host/tmio_mmc_core.c tasklet_schedule(&host->dma_issue); host 579 drivers/mmc/host/tmio_mmc_core.c schedule_work(&host->done); host 583 drivers/mmc/host/tmio_mmc_core.c spin_unlock(&host->lock); host 586 drivers/mmc/host/tmio_mmc_core.c static bool __tmio_mmc_card_detect_irq(struct tmio_mmc_host *host, host 589 drivers/mmc/host/tmio_mmc_core.c struct mmc_host *mmc = host->mmc; host 593 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_ack_mmc_irqs(host, TMIO_STAT_CARD_INSERT | host 598 drivers/mmc/host/tmio_mmc_core.c mmc_detect_change(host->mmc, msecs_to_jiffies(100)); host 605 drivers/mmc/host/tmio_mmc_core.c static bool __tmio_mmc_sdcard_irq(struct tmio_mmc_host *host, int ireg, host 610 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_ack_mmc_irqs(host, TMIO_STAT_CMDRESPEND | host 612 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_cmd_irq(host, status); host 618 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_ack_mmc_irqs(host, TMIO_STAT_RXRDY | TMIO_STAT_TXRQ); host 619 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_pio_irq(host); host 625 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_ack_mmc_irqs(host, TMIO_STAT_DATAEND); host 626 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_data_irq(host, status); host 633 drivers/mmc/host/tmio_mmc_core.c static bool __tmio_mmc_sdio_irq(struct tmio_mmc_host *host) host 635 drivers/mmc/host/tmio_mmc_core.c struct mmc_host *mmc = host->mmc; host 636 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_data *pdata = host->pdata; host 643 drivers/mmc/host/tmio_mmc_core.c status = sd_ctrl_read16(host, CTL_SDIO_STATUS); host 644 drivers/mmc/host/tmio_mmc_core.c ireg = status & TMIO_SDIO_MASK_ALL & ~host->sdio_irq_mask; host 650 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SDIO_STATUS, sdio_status); host 660 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = devid; host 663 drivers/mmc/host/tmio_mmc_core.c status = sd_ctrl_read16_and_16_as_32(host, CTL_STATUS); host 664 drivers/mmc/host/tmio_mmc_core.c ireg = status & TMIO_MASK_IRQ & ~host->sdcard_irq_mask; host 667 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write32_as_16_and_16(host, CTL_STATUS, TMIO_MASK_IRQ); host 669 drivers/mmc/host/tmio_mmc_core.c if (__tmio_mmc_card_detect_irq(host, ireg, status)) host 671 drivers/mmc/host/tmio_mmc_core.c if (__tmio_mmc_sdcard_irq(host, ireg, status)) host 674 drivers/mmc/host/tmio_mmc_core.c if (__tmio_mmc_sdio_irq(host)) host 681 drivers/mmc/host/tmio_mmc_core.c static int tmio_mmc_start_data(struct tmio_mmc_host *host, host 684 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_data *pdata = host->pdata; host 690 drivers/mmc/host/tmio_mmc_core.c if (host->mmc->ios.bus_width == MMC_BUS_WIDTH_4 || host 691 drivers/mmc/host/tmio_mmc_core.c host->mmc->ios.bus_width == MMC_BUS_WIDTH_8) { host 696 drivers/mmc/host/tmio_mmc_core.c mmc_hostname(host->mmc), data->blksz); host 701 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_init_sg(host, data); host 702 drivers/mmc/host/tmio_mmc_core.c host->data = data; host 703 drivers/mmc/host/tmio_mmc_core.c host->dma_on = false; host 706 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SD_XFER_LEN, data->blksz); host 707 drivers/mmc/host/tmio_mmc_core.c if (host->mmc->max_blk_count >= SZ_64K) host 708 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write32(host, CTL_XFER_BLK_COUNT, data->blocks); host 710 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_XFER_BLK_COUNT, data->blocks); host 712 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_start_dma(host, data); host 719 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 722 drivers/mmc/host/tmio_mmc_core.c if (!host->init_tuning || !host->select_tuning) host 726 drivers/mmc/host/tmio_mmc_core.c host->tap_num = host->init_tuning(host); host 727 drivers/mmc/host/tmio_mmc_core.c if (!host->tap_num) host 731 drivers/mmc/host/tmio_mmc_core.c if (host->tap_num * 2 >= sizeof(host->taps) * BITS_PER_BYTE) { host 732 drivers/mmc/host/tmio_mmc_core.c dev_warn_once(&host->pdev->dev, host 737 drivers/mmc/host/tmio_mmc_core.c bitmap_zero(host->taps, host->tap_num * 2); host 740 drivers/mmc/host/tmio_mmc_core.c for (i = 0; i < 2 * host->tap_num; i++) { host 741 drivers/mmc/host/tmio_mmc_core.c if (host->prepare_tuning) host 742 drivers/mmc/host/tmio_mmc_core.c host->prepare_tuning(host, i % host->tap_num); host 746 drivers/mmc/host/tmio_mmc_core.c set_bit(i, host->taps); host 749 drivers/mmc/host/tmio_mmc_core.c ret = host->select_tuning(host); host 753 drivers/mmc/host/tmio_mmc_core.c dev_warn(&host->pdev->dev, "Tuning procedure failed\n"); host 760 drivers/mmc/host/tmio_mmc_core.c static void tmio_process_mrq(struct tmio_mmc_host *host, host 766 drivers/mmc/host/tmio_mmc_core.c if (mrq->sbc && host->cmd != mrq->sbc) { host 771 drivers/mmc/host/tmio_mmc_core.c ret = tmio_mmc_start_data(host, mrq->data); host 777 drivers/mmc/host/tmio_mmc_core.c ret = tmio_mmc_start_command(host, cmd); host 781 drivers/mmc/host/tmio_mmc_core.c schedule_delayed_work(&host->delayed_reset_work, host 786 drivers/mmc/host/tmio_mmc_core.c host->mrq = NULL; host 788 drivers/mmc/host/tmio_mmc_core.c mmc_request_done(host->mmc, mrq); host 794 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 797 drivers/mmc/host/tmio_mmc_core.c spin_lock_irqsave(&host->lock, flags); host 799 drivers/mmc/host/tmio_mmc_core.c if (host->mrq) { host 801 drivers/mmc/host/tmio_mmc_core.c if (IS_ERR(host->mrq)) { host 802 drivers/mmc/host/tmio_mmc_core.c spin_unlock_irqrestore(&host->lock, flags); host 809 drivers/mmc/host/tmio_mmc_core.c host->last_req_ts = jiffies; host 811 drivers/mmc/host/tmio_mmc_core.c host->mrq = mrq; host 813 drivers/mmc/host/tmio_mmc_core.c spin_unlock_irqrestore(&host->lock, flags); host 815 drivers/mmc/host/tmio_mmc_core.c tmio_process_mrq(host, mrq); host 818 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_finish_request(struct tmio_mmc_host *host) host 823 drivers/mmc/host/tmio_mmc_core.c spin_lock_irqsave(&host->lock, flags); host 825 drivers/mmc/host/tmio_mmc_core.c mrq = host->mrq; host 827 drivers/mmc/host/tmio_mmc_core.c spin_unlock_irqrestore(&host->lock, flags); host 832 drivers/mmc/host/tmio_mmc_core.c if (host->cmd != mrq->sbc) { host 833 drivers/mmc/host/tmio_mmc_core.c host->cmd = NULL; host 834 drivers/mmc/host/tmio_mmc_core.c host->data = NULL; host 835 drivers/mmc/host/tmio_mmc_core.c host->mrq = NULL; host 838 drivers/mmc/host/tmio_mmc_core.c cancel_delayed_work(&host->delayed_reset_work); host 840 drivers/mmc/host/tmio_mmc_core.c spin_unlock_irqrestore(&host->lock, flags); host 843 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_abort_dma(host); host 846 drivers/mmc/host/tmio_mmc_core.c if (host->check_scc_error && host->check_scc_error(host)) host 847 drivers/mmc/host/tmio_mmc_core.c mmc_retune_needed(host->mmc); host 850 drivers/mmc/host/tmio_mmc_core.c if (host->mrq && !mrq->cmd->error) { host 851 drivers/mmc/host/tmio_mmc_core.c tmio_process_mrq(host, mrq); host 855 drivers/mmc/host/tmio_mmc_core.c mmc_request_done(host->mmc, mrq); host 860 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = container_of(work, struct tmio_mmc_host, host 862 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_finish_request(host); host 865 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_power_on(struct tmio_mmc_host *host, unsigned short vdd) host 867 drivers/mmc/host/tmio_mmc_core.c struct mmc_host *mmc = host->mmc; host 872 drivers/mmc/host/tmio_mmc_core.c if (host->set_pwr) host 873 drivers/mmc/host/tmio_mmc_core.c host->set_pwr(host->pdev, 1); host 895 drivers/mmc/host/tmio_mmc_core.c dev_dbg(&host->pdev->dev, "Regulators failed to power up: %d\n", host 899 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_power_off(struct tmio_mmc_host *host) host 901 drivers/mmc/host/tmio_mmc_core.c struct mmc_host *mmc = host->mmc; host 909 drivers/mmc/host/tmio_mmc_core.c if (host->set_pwr) host 910 drivers/mmc/host/tmio_mmc_core.c host->set_pwr(host->pdev, 0); host 913 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_set_bus_width(struct tmio_mmc_host *host, host 916 drivers/mmc/host/tmio_mmc_core.c u16 reg = sd_ctrl_read16(host, CTL_SD_MEM_CARD_OPT) host 925 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, reg); host 936 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 937 drivers/mmc/host/tmio_mmc_core.c struct device *dev = &host->pdev->dev; host 940 drivers/mmc/host/tmio_mmc_core.c mutex_lock(&host->ios_lock); host 942 drivers/mmc/host/tmio_mmc_core.c spin_lock_irqsave(&host->lock, flags); host 943 drivers/mmc/host/tmio_mmc_core.c if (host->mrq) { host 944 drivers/mmc/host/tmio_mmc_core.c if (IS_ERR(host->mrq)) { host 949 drivers/mmc/host/tmio_mmc_core.c host->mrq = ERR_PTR(-EINTR); host 954 drivers/mmc/host/tmio_mmc_core.c host->mrq->cmd->opcode, host->last_req_ts, host 957 drivers/mmc/host/tmio_mmc_core.c spin_unlock_irqrestore(&host->lock, flags); host 959 drivers/mmc/host/tmio_mmc_core.c mutex_unlock(&host->ios_lock); host 963 drivers/mmc/host/tmio_mmc_core.c host->mrq = ERR_PTR(-EBUSY); host 965 drivers/mmc/host/tmio_mmc_core.c spin_unlock_irqrestore(&host->lock, flags); host 969 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_power_off(host); host 970 drivers/mmc/host/tmio_mmc_core.c host->set_clock(host, 0); host 973 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_power_on(host, ios->vdd); host 974 drivers/mmc/host/tmio_mmc_core.c host->set_clock(host, ios->clock); host 975 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_set_bus_width(host, ios->bus_width); host 978 drivers/mmc/host/tmio_mmc_core.c host->set_clock(host, ios->clock); host 979 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_set_bus_width(host, ios->bus_width); host 985 drivers/mmc/host/tmio_mmc_core.c if (PTR_ERR(host->mrq) == -EINTR) host 986 drivers/mmc/host/tmio_mmc_core.c dev_dbg(&host->pdev->dev, host 990 drivers/mmc/host/tmio_mmc_core.c host->mrq = NULL; host 992 drivers/mmc/host/tmio_mmc_core.c host->clk_cache = ios->clock; host 994 drivers/mmc/host/tmio_mmc_core.c mutex_unlock(&host->ios_lock); host 999 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 1001 drivers/mmc/host/tmio_mmc_core.c return !(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & host 1007 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 1009 drivers/mmc/host/tmio_mmc_core.c return !!(sd_ctrl_read16_and_16_as_32(host, CTL_STATUS) & host 1016 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(card->host); host 1018 drivers/mmc/host/tmio_mmc_core.c if (host->multi_io_quirk) host 1019 drivers/mmc/host/tmio_mmc_core.c return host->multi_io_quirk(card, direction, blk_size); host 1027 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 1029 drivers/mmc/host/tmio_mmc_core.c if (host->prepare_hs400_tuning) host 1030 drivers/mmc/host/tmio_mmc_core.c host->prepare_hs400_tuning(host); host 1037 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 1039 drivers/mmc/host/tmio_mmc_core.c if (host->hs400_downgrade) host 1040 drivers/mmc/host/tmio_mmc_core.c host->hs400_downgrade(host); host 1045 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = mmc_priv(mmc); host 1047 drivers/mmc/host/tmio_mmc_core.c if (host->hs400_complete) host 1048 drivers/mmc/host/tmio_mmc_core.c host->hs400_complete(host); host 1065 drivers/mmc/host/tmio_mmc_core.c static int tmio_mmc_init_ocr(struct tmio_mmc_host *host) host 1067 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_data *pdata = host->pdata; host 1068 drivers/mmc/host/tmio_mmc_core.c struct mmc_host *mmc = host->mmc; host 1109 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host; host 1124 drivers/mmc/host/tmio_mmc_core.c host = mmc_priv(mmc); host 1125 drivers/mmc/host/tmio_mmc_core.c host->ctl = ctl; host 1126 drivers/mmc/host/tmio_mmc_core.c host->mmc = mmc; host 1127 drivers/mmc/host/tmio_mmc_core.c host->pdev = pdev; host 1128 drivers/mmc/host/tmio_mmc_core.c host->pdata = pdata; host 1129 drivers/mmc/host/tmio_mmc_core.c host->ops = tmio_mmc_ops; host 1130 drivers/mmc/host/tmio_mmc_core.c mmc->ops = &host->ops; host 1132 drivers/mmc/host/tmio_mmc_core.c ret = mmc_of_parse(host->mmc); host 1134 drivers/mmc/host/tmio_mmc_core.c host = ERR_PTR(ret); host 1140 drivers/mmc/host/tmio_mmc_core.c platform_set_drvdata(pdev, host); host 1142 drivers/mmc/host/tmio_mmc_core.c return host; host 1146 drivers/mmc/host/tmio_mmc_core.c return host; host 1150 drivers/mmc/host/tmio_mmc_core.c void tmio_mmc_host_free(struct tmio_mmc_host *host) host 1152 drivers/mmc/host/tmio_mmc_core.c mmc_free_host(host->mmc); host 1272 drivers/mmc/host/tmio_mmc_core.c void tmio_mmc_host_remove(struct tmio_mmc_host *host) host 1274 drivers/mmc/host/tmio_mmc_core.c struct platform_device *pdev = host->pdev; host 1275 drivers/mmc/host/tmio_mmc_core.c struct mmc_host *mmc = host->mmc; host 1279 drivers/mmc/host/tmio_mmc_core.c if (host->pdata->flags & TMIO_MMC_SDIO_IRQ) host 1280 drivers/mmc/host/tmio_mmc_core.c sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0000); host 1285 drivers/mmc/host/tmio_mmc_core.c cancel_work_sync(&host->done); host 1286 drivers/mmc/host/tmio_mmc_core.c cancel_delayed_work_sync(&host->delayed_reset_work); host 1287 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_release_dma(host); host 1288 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_ALL); host 1290 drivers/mmc/host/tmio_mmc_core.c if (host->native_hotplug) host 1300 drivers/mmc/host/tmio_mmc_core.c static int tmio_mmc_clk_enable(struct tmio_mmc_host *host) host 1302 drivers/mmc/host/tmio_mmc_core.c if (!host->clk_enable) host 1305 drivers/mmc/host/tmio_mmc_core.c return host->clk_enable(host); host 1308 drivers/mmc/host/tmio_mmc_core.c static void tmio_mmc_clk_disable(struct tmio_mmc_host *host) host 1310 drivers/mmc/host/tmio_mmc_core.c if (host->clk_disable) host 1311 drivers/mmc/host/tmio_mmc_core.c host->clk_disable(host); host 1316 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = dev_get_drvdata(dev); host 1318 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_disable_mmc_irqs(host, TMIO_MASK_ALL); host 1320 drivers/mmc/host/tmio_mmc_core.c if (host->clk_cache) host 1321 drivers/mmc/host/tmio_mmc_core.c host->set_clock(host, 0); host 1323 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_clk_disable(host); host 1329 drivers/mmc/host/tmio_mmc_core.c static bool tmio_mmc_can_retune(struct tmio_mmc_host *host) host 1331 drivers/mmc/host/tmio_mmc_core.c return host->tap_num && mmc_can_retune(host->mmc); host 1336 drivers/mmc/host/tmio_mmc_core.c struct tmio_mmc_host *host = dev_get_drvdata(dev); host 1338 drivers/mmc/host/tmio_mmc_core.c if (!host->runtime_synced) { host 1339 drivers/mmc/host/tmio_mmc_core.c host->runtime_synced = true; host 1343 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_clk_enable(host); host 1344 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_hw_reset(host->mmc); host 1346 drivers/mmc/host/tmio_mmc_core.c if (host->clk_cache) host 1347 drivers/mmc/host/tmio_mmc_core.c host->set_clock(host, host->clk_cache); host 1349 drivers/mmc/host/tmio_mmc_core.c if (host->native_hotplug) host 1350 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_enable_mmc_irqs(host, host 1353 drivers/mmc/host/tmio_mmc_core.c tmio_mmc_enable_dma(host, true); host 1355 drivers/mmc/host/tmio_mmc_core.c if (tmio_mmc_can_retune(host) && host->select_tuning(host)) host 1356 drivers/mmc/host/tmio_mmc_core.c dev_warn(&host->pdev->dev, "Tuning selection failed\n"); host 35 drivers/mmc/host/toshsd.c static void toshsd_init(struct toshsd_host *host) host 38 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_CLKSTOP, host 40 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_CARDDETECT, 2); host 43 drivers/mmc/host/toshsd.c iowrite16(0, host->ioaddr + SD_SOFTWARERESET); /* assert */ host 45 drivers/mmc/host/toshsd.c iowrite16(1, host->ioaddr + SD_SOFTWARERESET); /* deassert */ host 49 drivers/mmc/host/toshsd.c iowrite16(0, host->ioaddr + SD_CARDCLOCKCTRL); host 50 drivers/mmc/host/toshsd.c iowrite32(0, host->ioaddr + SD_CARDSTATUS); host 51 drivers/mmc/host/toshsd.c iowrite32(0, host->ioaddr + SD_ERRORSTATUS0); host 52 drivers/mmc/host/toshsd.c iowrite16(0, host->ioaddr + SD_STOPINTERNAL); host 55 drivers/mmc/host/toshsd.c iowrite16(0x100, host->ioaddr + SDIO_BASE + SDIO_CLOCKNWAITCTRL); host 58 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_SDLED_ENABLE1, host 60 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_SDLED_ENABLE2, host 68 drivers/mmc/host/toshsd.c host->ioaddr + SD_INTMASKCARD); host 70 drivers/mmc/host/toshsd.c iowrite16(0x1000, host->ioaddr + SD_TRANSACTIONCTRL); host 80 drivers/mmc/host/toshsd.c struct toshsd_host *host = mmc_priv(mmc); host 92 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_CLKMODE, host 96 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_CLKMODE, 0); host 99 drivers/mmc/host/toshsd.c iowrite16(clk, host->ioaddr + SD_CARDCLOCKCTRL); host 103 drivers/mmc/host/toshsd.c iowrite16(0, host->ioaddr + SD_CARDCLOCKCTRL); host 107 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_POWER1, host 114 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_POWER1, host 116 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_POWER2, host 127 drivers/mmc/host/toshsd.c host->ioaddr + SD_CARDOPTIONSETUP); host 133 drivers/mmc/host/toshsd.c host->ioaddr + SD_CARDOPTIONSETUP); host 138 drivers/mmc/host/toshsd.c static void toshsd_set_led(struct toshsd_host *host, unsigned char state) host 140 drivers/mmc/host/toshsd.c iowrite16(state, host->ioaddr + SDIO_BASE + SDIO_LEDCTRL); host 143 drivers/mmc/host/toshsd.c static void toshsd_finish_request(struct toshsd_host *host) host 145 drivers/mmc/host/toshsd.c struct mmc_request *mrq = host->mrq; host 148 drivers/mmc/host/toshsd.c host->mrq = NULL; host 149 drivers/mmc/host/toshsd.c host->cmd = NULL; host 150 drivers/mmc/host/toshsd.c host->data = NULL; host 152 drivers/mmc/host/toshsd.c toshsd_set_led(host, 0); host 153 drivers/mmc/host/toshsd.c mmc_request_done(host->mmc, mrq); host 158 drivers/mmc/host/toshsd.c struct toshsd_host *host = dev_id; host 159 drivers/mmc/host/toshsd.c struct mmc_data *data = host->data; host 160 drivers/mmc/host/toshsd.c struct sg_mapping_iter *sg_miter = &host->sg_miter; host 166 drivers/mmc/host/toshsd.c dev_warn(&host->pdev->dev, "Spurious Data IRQ\n"); host 167 drivers/mmc/host/toshsd.c if (host->cmd) { host 168 drivers/mmc/host/toshsd.c host->cmd->error = -EIO; host 169 drivers/mmc/host/toshsd.c toshsd_finish_request(host); host 173 drivers/mmc/host/toshsd.c spin_lock_irqsave(&host->lock, flags); host 187 drivers/mmc/host/toshsd.c dev_dbg(&host->pdev->dev, "count: %08x, flags %08x\n", count, host 192 drivers/mmc/host/toshsd.c ioread32_rep(host->ioaddr + SD_DATAPORT, buf, count >> 2); host 194 drivers/mmc/host/toshsd.c iowrite32_rep(host->ioaddr + SD_DATAPORT, buf, count >> 2); host 200 drivers/mmc/host/toshsd.c spin_unlock_irqrestore(&host->lock, flags); host 205 drivers/mmc/host/toshsd.c static void toshsd_cmd_irq(struct toshsd_host *host) host 207 drivers/mmc/host/toshsd.c struct mmc_command *cmd = host->cmd; host 211 drivers/mmc/host/toshsd.c if (!host->cmd) { host 212 drivers/mmc/host/toshsd.c dev_warn(&host->pdev->dev, "Spurious CMD irq\n"); host 216 drivers/mmc/host/toshsd.c host->cmd = NULL; host 221 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE0); host 224 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE1); host 227 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE2); host 230 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE3); host 233 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE4); host 236 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE5); host 239 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE6); host 242 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE7); host 246 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE0); host 249 drivers/mmc/host/toshsd.c data = ioread16(host->ioaddr + SD_RESPONSE1); host 254 drivers/mmc/host/toshsd.c dev_dbg(&host->pdev->dev, "Command IRQ complete %d %d %x\n", host 259 drivers/mmc/host/toshsd.c if (host->data) host 262 drivers/mmc/host/toshsd.c toshsd_finish_request(host); host 265 drivers/mmc/host/toshsd.c static void toshsd_data_end_irq(struct toshsd_host *host) host 267 drivers/mmc/host/toshsd.c struct mmc_data *data = host->data; host 269 drivers/mmc/host/toshsd.c host->data = NULL; host 272 drivers/mmc/host/toshsd.c dev_warn(&host->pdev->dev, "Spurious data end IRQ\n"); host 281 drivers/mmc/host/toshsd.c dev_dbg(&host->pdev->dev, "Completed data request xfr=%d\n", host 284 drivers/mmc/host/toshsd.c iowrite16(0, host->ioaddr + SD_STOPINTERNAL); host 286 drivers/mmc/host/toshsd.c toshsd_finish_request(host); host 291 drivers/mmc/host/toshsd.c struct toshsd_host *host = dev_id; host 295 drivers/mmc/host/toshsd.c spin_lock(&host->lock); host 296 drivers/mmc/host/toshsd.c int_status = ioread32(host->ioaddr + SD_CARDSTATUS); host 297 drivers/mmc/host/toshsd.c int_mask = ioread32(host->ioaddr + SD_INTMASKCARD); host 300 drivers/mmc/host/toshsd.c dev_dbg(&host->pdev->dev, "IRQ status:%x mask:%x\n", host 311 drivers/mmc/host/toshsd.c dev_dbg(&host->pdev->dev, "Timeout\n"); host 314 drivers/mmc/host/toshsd.c dev_err(&host->pdev->dev, "BadCRC\n"); host 321 drivers/mmc/host/toshsd.c dev_err(&host->pdev->dev, "Buffer status error: { %s%s%s%s%s%s}\n", host 329 drivers/mmc/host/toshsd.c detail = ioread32(host->ioaddr + SD_ERRORSTATUS0); host 330 drivers/mmc/host/toshsd.c dev_err(&host->pdev->dev, "detail error status { %s%s%s%s%s%s%s%s%s%s%s%s%s}\n", host 348 drivers/mmc/host/toshsd.c if (host->cmd) host 349 drivers/mmc/host/toshsd.c host->cmd->error = error; host 354 drivers/mmc/host/toshsd.c host->ioaddr + SD_CARDSTATUS); host 356 drivers/mmc/host/toshsd.c toshsd_init(host); host 357 drivers/mmc/host/toshsd.c __toshsd_set_ios(host->mmc, &host->mmc->ios); host 366 drivers/mmc/host/toshsd.c host->ioaddr + SD_CARDSTATUS); host 369 drivers/mmc/host/toshsd.c toshsd_init(host); host 371 drivers/mmc/host/toshsd.c mmc_detect_change(host->mmc, 1); host 378 drivers/mmc/host/toshsd.c host->ioaddr + SD_CARDSTATUS); host 387 drivers/mmc/host/toshsd.c host->ioaddr + SD_CARDSTATUS); host 388 drivers/mmc/host/toshsd.c toshsd_cmd_irq(host); host 394 drivers/mmc/host/toshsd.c host->ioaddr + SD_CARDSTATUS); host 395 drivers/mmc/host/toshsd.c toshsd_data_end_irq(host); host 398 drivers/mmc/host/toshsd.c spin_unlock(&host->lock); host 402 drivers/mmc/host/toshsd.c static void toshsd_start_cmd(struct toshsd_host *host, struct mmc_command *cmd) host 404 drivers/mmc/host/toshsd.c struct mmc_data *data = host->data; host 407 drivers/mmc/host/toshsd.c dev_dbg(&host->pdev->dev, "Command opcode: %d\n", cmd->opcode); host 411 drivers/mmc/host/toshsd.c host->ioaddr + SD_STOPINTERNAL); host 418 drivers/mmc/host/toshsd.c toshsd_finish_request(host); host 441 drivers/mmc/host/toshsd.c dev_err(&host->pdev->dev, "Unknown response type %d\n", host 446 drivers/mmc/host/toshsd.c host->cmd = cmd; host 459 drivers/mmc/host/toshsd.c host->ioaddr + SD_STOPINTERNAL); host 470 drivers/mmc/host/toshsd.c iowrite32(cmd->arg, host->ioaddr + SD_ARG0); host 471 drivers/mmc/host/toshsd.c iowrite16(c, host->ioaddr + SD_CMD); host 474 drivers/mmc/host/toshsd.c static void toshsd_start_data(struct toshsd_host *host, struct mmc_data *data) host 478 drivers/mmc/host/toshsd.c dev_dbg(&host->pdev->dev, "setup data transfer: blocksize %08x nr_blocks %d, offset: %08x\n", host 481 drivers/mmc/host/toshsd.c host->data = data; host 488 drivers/mmc/host/toshsd.c sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags); host 491 drivers/mmc/host/toshsd.c iowrite16(data->blocks, host->ioaddr + SD_BLOCKCOUNT); host 492 drivers/mmc/host/toshsd.c iowrite16(data->blksz, host->ioaddr + SD_CARDXFERDATALEN); host 498 drivers/mmc/host/toshsd.c struct toshsd_host *host = mmc_priv(mmc); host 502 drivers/mmc/host/toshsd.c if (!(ioread16(host->ioaddr + SD_CARDSTATUS) & SD_CARD_PRESENT_0)) { host 508 drivers/mmc/host/toshsd.c spin_lock_irqsave(&host->lock, flags); host 510 drivers/mmc/host/toshsd.c WARN_ON(host->mrq != NULL); host 512 drivers/mmc/host/toshsd.c host->mrq = mrq; host 515 drivers/mmc/host/toshsd.c toshsd_start_data(host, mrq->data); host 517 drivers/mmc/host/toshsd.c toshsd_set_led(host, 1); host 519 drivers/mmc/host/toshsd.c toshsd_start_cmd(host, mrq->cmd); host 521 drivers/mmc/host/toshsd.c spin_unlock_irqrestore(&host->lock, flags); host 526 drivers/mmc/host/toshsd.c struct toshsd_host *host = mmc_priv(mmc); host 529 drivers/mmc/host/toshsd.c spin_lock_irqsave(&host->lock, flags); host 531 drivers/mmc/host/toshsd.c spin_unlock_irqrestore(&host->lock, flags); host 536 drivers/mmc/host/toshsd.c struct toshsd_host *host = mmc_priv(mmc); host 539 drivers/mmc/host/toshsd.c return !(ioread16(host->ioaddr + SD_CARDSTATUS) & SD_CARD_WRITE_PROTECT); host 544 drivers/mmc/host/toshsd.c struct toshsd_host *host = mmc_priv(mmc); host 546 drivers/mmc/host/toshsd.c return !!(ioread16(host->ioaddr + SD_CARDSTATUS) & SD_CARD_PRESENT_0); host 557 drivers/mmc/host/toshsd.c static void toshsd_powerdown(struct toshsd_host *host) host 560 drivers/mmc/host/toshsd.c iowrite32(0xffffffff, host->ioaddr + SD_INTMASKCARD); host 562 drivers/mmc/host/toshsd.c iowrite16(0x000, host->ioaddr + SDIO_BASE + SDIO_CLOCKNWAITCTRL); host 563 drivers/mmc/host/toshsd.c iowrite16(0, host->ioaddr + SD_CARDCLOCKCTRL); host 565 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_POWER1, SD_PCICFG_PWR1_OFF); host 567 drivers/mmc/host/toshsd.c pci_write_config_byte(host->pdev, SD_PCICFG_CLKSTOP, 0); host 574 drivers/mmc/host/toshsd.c struct toshsd_host *host = pci_get_drvdata(pdev); host 576 drivers/mmc/host/toshsd.c toshsd_powerdown(host); host 589 drivers/mmc/host/toshsd.c struct toshsd_host *host = pci_get_drvdata(pdev); host 598 drivers/mmc/host/toshsd.c toshsd_init(host); host 607 drivers/mmc/host/toshsd.c struct toshsd_host *host; host 621 drivers/mmc/host/toshsd.c host = mmc_priv(mmc); host 622 drivers/mmc/host/toshsd.c host->mmc = mmc; host 624 drivers/mmc/host/toshsd.c host->pdev = pdev; host 625 drivers/mmc/host/toshsd.c pci_set_drvdata(pdev, host); host 631 drivers/mmc/host/toshsd.c host->ioaddr = pci_iomap(pdev, 0, 0); host 632 drivers/mmc/host/toshsd.c if (!host->ioaddr) { host 645 drivers/mmc/host/toshsd.c spin_lock_init(&host->lock); host 647 drivers/mmc/host/toshsd.c toshsd_init(host); host 650 drivers/mmc/host/toshsd.c IRQF_SHARED, DRIVER_NAME, host); host 664 drivers/mmc/host/toshsd.c pci_iounmap(pdev, host->ioaddr); host 677 drivers/mmc/host/toshsd.c struct toshsd_host *host = pci_get_drvdata(pdev); host 679 drivers/mmc/host/toshsd.c mmc_remove_host(host->mmc); host 680 drivers/mmc/host/toshsd.c toshsd_powerdown(host); host 681 drivers/mmc/host/toshsd.c free_irq(pdev->irq, host); host 682 drivers/mmc/host/toshsd.c pci_iounmap(pdev, host->ioaddr); host 684 drivers/mmc/host/toshsd.c mmc_free_host(host->mmc); host 74 drivers/mmc/host/uniphier-sd.c static void *uniphier_sd_priv(struct tmio_mmc_host *host) host 76 drivers/mmc/host/uniphier-sd.c return container_of(host->pdata, struct uniphier_sd_priv, tmio_data); host 79 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_dma_endisable(struct tmio_mmc_host *host, int enable) host 81 drivers/mmc/host/uniphier-sd.c sd_ctrl_write16(host, CTL_DMA_ENABLE, enable ? DMA_ENABLE_DMASDRW : 0); host 87 drivers/mmc/host/uniphier-sd.c struct tmio_mmc_host *host = (void *)arg; host 88 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 90 drivers/mmc/host/uniphier-sd.c uniphier_sd_dma_endisable(host, 1); host 97 drivers/mmc/host/uniphier-sd.c struct tmio_mmc_host *host = param; host 98 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 101 drivers/mmc/host/uniphier-sd.c dma_unmap_sg(mmc_dev(host->mmc), host->sg_ptr, host->sg_len, host 104 drivers/mmc/host/uniphier-sd.c spin_lock_irqsave(&host->lock, flags); host 114 drivers/mmc/host/uniphier-sd.c tmio_mmc_enable_mmc_irqs(host, TMIO_STAT_DATAEND); host 116 drivers/mmc/host/uniphier-sd.c host->data->error = -ETIMEDOUT; host 117 drivers/mmc/host/uniphier-sd.c tmio_mmc_do_data_irq(host); host 120 drivers/mmc/host/uniphier-sd.c spin_unlock_irqrestore(&host->lock, flags); host 123 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_external_dma_start(struct tmio_mmc_host *host, host 126 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 143 drivers/mmc/host/uniphier-sd.c sg_len = dma_map_sg(mmc_dev(host->mmc), host->sg_ptr, host->sg_len, host 148 drivers/mmc/host/uniphier-sd.c desc = dmaengine_prep_slave_sg(priv->chan, host->sg_ptr, sg_len, host 154 drivers/mmc/host/uniphier-sd.c desc->callback_param = host; host 160 drivers/mmc/host/uniphier-sd.c host->dma_on = true; host 165 drivers/mmc/host/uniphier-sd.c dma_unmap_sg(mmc_dev(host->mmc), host->sg_ptr, host->sg_len, host 168 drivers/mmc/host/uniphier-sd.c uniphier_sd_dma_endisable(host, 0); host 171 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_external_dma_enable(struct tmio_mmc_host *host, host 176 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_external_dma_request(struct tmio_mmc_host *host, host 179 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 182 drivers/mmc/host/uniphier-sd.c chan = dma_request_chan(mmc_dev(host->mmc), "rx-tx"); host 184 drivers/mmc/host/uniphier-sd.c dev_warn(mmc_dev(host->mmc), host 191 drivers/mmc/host/uniphier-sd.c host->chan_rx = chan; host 192 drivers/mmc/host/uniphier-sd.c host->chan_tx = chan; host 194 drivers/mmc/host/uniphier-sd.c tasklet_init(&host->dma_issue, uniphier_sd_external_dma_issue, host 195 drivers/mmc/host/uniphier-sd.c (unsigned long)host); host 198 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_external_dma_release(struct tmio_mmc_host *host) host 200 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 206 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_external_dma_abort(struct tmio_mmc_host *host) host 208 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 210 drivers/mmc/host/uniphier-sd.c uniphier_sd_dma_endisable(host, 0); host 216 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_external_dma_dataend(struct tmio_mmc_host *host) host 218 drivers/mmc/host/uniphier-sd.c uniphier_sd_dma_endisable(host, 0); host 220 drivers/mmc/host/uniphier-sd.c tmio_mmc_do_data_irq(host); host 234 drivers/mmc/host/uniphier-sd.c struct tmio_mmc_host *host = (void *)arg; host 237 drivers/mmc/host/uniphier-sd.c spin_lock_irqsave(&host->lock, flags); host 238 drivers/mmc/host/uniphier-sd.c tmio_mmc_enable_mmc_irqs(host, TMIO_STAT_DATAEND); host 239 drivers/mmc/host/uniphier-sd.c spin_unlock_irqrestore(&host->lock, flags); host 241 drivers/mmc/host/uniphier-sd.c uniphier_sd_dma_endisable(host, 1); host 242 drivers/mmc/host/uniphier-sd.c writel(UNIPHIER_SD_DMA_CTL_START, host->ctl + UNIPHIER_SD_DMA_CTL); host 245 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_internal_dma_start(struct tmio_mmc_host *host, host 248 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 249 drivers/mmc/host/uniphier-sd.c struct scatterlist *sg = host->sg_ptr; host 255 drivers/mmc/host/uniphier-sd.c if ((data->flags & MMC_DATA_READ) && !host->chan_rx) host 258 drivers/mmc/host/uniphier-sd.c if (WARN_ON(host->sg_len != 1)) host 272 drivers/mmc/host/uniphier-sd.c sg_len = dma_map_sg(mmc_dev(host->mmc), sg, 1, priv->dma_dir); host 281 drivers/mmc/host/uniphier-sd.c writel(dma_mode, host->ctl + UNIPHIER_SD_DMA_MODE); host 284 drivers/mmc/host/uniphier-sd.c writel(lower_32_bits(dma_addr), host->ctl + UNIPHIER_SD_DMA_ADDR_L); host 285 drivers/mmc/host/uniphier-sd.c writel(upper_32_bits(dma_addr), host->ctl + UNIPHIER_SD_DMA_ADDR_H); host 287 drivers/mmc/host/uniphier-sd.c host->dma_on = true; host 291 drivers/mmc/host/uniphier-sd.c uniphier_sd_dma_endisable(host, 0); host 294 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_internal_dma_enable(struct tmio_mmc_host *host, host 299 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_internal_dma_request(struct tmio_mmc_host *host, host 302 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 309 drivers/mmc/host/uniphier-sd.c host->chan_rx = (void *)0xdeadbeaf; host 311 drivers/mmc/host/uniphier-sd.c host->chan_tx = (void *)0xdeadbeaf; host 313 drivers/mmc/host/uniphier-sd.c tasklet_init(&host->dma_issue, uniphier_sd_internal_dma_issue, host 314 drivers/mmc/host/uniphier-sd.c (unsigned long)host); host 317 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_internal_dma_release(struct tmio_mmc_host *host) host 320 drivers/mmc/host/uniphier-sd.c host->chan_rx = NULL; host 321 drivers/mmc/host/uniphier-sd.c host->chan_tx = NULL; host 324 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_internal_dma_abort(struct tmio_mmc_host *host) host 328 drivers/mmc/host/uniphier-sd.c uniphier_sd_dma_endisable(host, 0); host 330 drivers/mmc/host/uniphier-sd.c tmp = readl(host->ctl + UNIPHIER_SD_DMA_RST); host 332 drivers/mmc/host/uniphier-sd.c writel(tmp, host->ctl + UNIPHIER_SD_DMA_RST); host 335 drivers/mmc/host/uniphier-sd.c writel(tmp, host->ctl + UNIPHIER_SD_DMA_RST); host 338 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_internal_dma_dataend(struct tmio_mmc_host *host) host 340 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 342 drivers/mmc/host/uniphier-sd.c uniphier_sd_dma_endisable(host, 0); host 343 drivers/mmc/host/uniphier-sd.c dma_unmap_sg(mmc_dev(host->mmc), host->sg_ptr, 1, priv->dma_dir); host 345 drivers/mmc/host/uniphier-sd.c tmio_mmc_do_data_irq(host); host 357 drivers/mmc/host/uniphier-sd.c static int uniphier_sd_clk_enable(struct tmio_mmc_host *host) host 359 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 360 drivers/mmc/host/uniphier-sd.c struct mmc_host *mmc = host->mmc; host 404 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_clk_disable(struct tmio_mmc_host *host) host 406 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 413 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_hw_reset(struct tmio_mmc_host *host) host 415 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 425 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_set_clock(struct tmio_mmc_host *host, host 428 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 432 drivers/mmc/host/uniphier-sd.c tmp = readl(host->ctl + (CTL_SD_CARD_CLK_CTL << 1)); host 436 drivers/mmc/host/uniphier-sd.c writel(tmp, host->ctl + (CTL_SD_CARD_CLK_CTL << 1)); host 462 drivers/mmc/host/uniphier-sd.c writel(tmp, host->ctl + (CTL_SD_CARD_CLK_CTL << 1)); host 465 drivers/mmc/host/uniphier-sd.c writel(tmp, host->ctl + (CTL_SD_CARD_CLK_CTL << 1)); host 468 drivers/mmc/host/uniphier-sd.c static void uniphier_sd_host_init(struct tmio_mmc_host *host) host 470 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 485 drivers/mmc/host/uniphier-sd.c writel(val, host->ctl + UNIPHIER_SD_HOST_MODE); host 495 drivers/mmc/host/uniphier-sd.c writel(val, host->ctl + (CTL_SD_CARD_CLK_CTL << 1)); host 501 drivers/mmc/host/uniphier-sd.c struct tmio_mmc_host *host = mmc_priv(mmc); host 502 drivers/mmc/host/uniphier-sd.c struct uniphier_sd_priv *priv = uniphier_sd_priv(host); host 519 drivers/mmc/host/uniphier-sd.c tmp = readl(host->ctl + UNIPHIER_SD_VOLT); host 522 drivers/mmc/host/uniphier-sd.c writel(tmp, host->ctl + UNIPHIER_SD_VOLT); host 529 drivers/mmc/host/uniphier-sd.c static int uniphier_sd_uhs_init(struct tmio_mmc_host *host, host 532 drivers/mmc/host/uniphier-sd.c priv->pinctrl = devm_pinctrl_get(mmc_dev(host->mmc)); host 545 drivers/mmc/host/uniphier-sd.c host->ops.start_signal_voltage_switch = host 556 drivers/mmc/host/uniphier-sd.c struct tmio_mmc_host *host; host 593 drivers/mmc/host/uniphier-sd.c host = tmio_mmc_host_alloc(pdev, tmio_data); host 594 drivers/mmc/host/uniphier-sd.c if (IS_ERR(host)) host 595 drivers/mmc/host/uniphier-sd.c return PTR_ERR(host); host 597 drivers/mmc/host/uniphier-sd.c if (host->mmc->caps & MMC_CAP_HW_RESET) { host 604 drivers/mmc/host/uniphier-sd.c host->hw_reset = uniphier_sd_hw_reset; host 607 drivers/mmc/host/uniphier-sd.c if (host->mmc->caps & MMC_CAP_UHS) { host 608 drivers/mmc/host/uniphier-sd.c ret = uniphier_sd_uhs_init(host, priv); host 613 drivers/mmc/host/uniphier-sd.c host->mmc->caps &= ~MMC_CAP_UHS; host 618 drivers/mmc/host/uniphier-sd.c host->dma_ops = &uniphier_sd_internal_dma_ops; host 620 drivers/mmc/host/uniphier-sd.c host->dma_ops = &uniphier_sd_external_dma_ops; host 622 drivers/mmc/host/uniphier-sd.c host->bus_shift = 1; host 623 drivers/mmc/host/uniphier-sd.c host->clk_enable = uniphier_sd_clk_enable; host 624 drivers/mmc/host/uniphier-sd.c host->clk_disable = uniphier_sd_clk_disable; host 625 drivers/mmc/host/uniphier-sd.c host->set_clock = uniphier_sd_set_clock; host 627 drivers/mmc/host/uniphier-sd.c ret = uniphier_sd_clk_enable(host); host 631 drivers/mmc/host/uniphier-sd.c uniphier_sd_host_init(host); host 634 drivers/mmc/host/uniphier-sd.c if (host->mmc->caps & MMC_CAP_UHS) host 640 drivers/mmc/host/uniphier-sd.c ret = tmio_mmc_host_probe(host); host 645 drivers/mmc/host/uniphier-sd.c dev_name(dev), host); host 652 drivers/mmc/host/uniphier-sd.c tmio_mmc_host_remove(host); host 654 drivers/mmc/host/uniphier-sd.c tmio_mmc_host_free(host); host 661 drivers/mmc/host/uniphier-sd.c struct tmio_mmc_host *host = platform_get_drvdata(pdev); host 663 drivers/mmc/host/uniphier-sd.c tmio_mmc_host_remove(host); host 664 drivers/mmc/host/uniphier-sd.c uniphier_sd_clk_disable(host); host 208 drivers/mmc/host/usdhi6rol0.c static void usdhi6_write(struct usdhi6_host *host, u32 reg, u32 data) host 210 drivers/mmc/host/usdhi6rol0.c iowrite32(data, host->base + reg); host 211 drivers/mmc/host/usdhi6rol0.c dev_vdbg(mmc_dev(host->mmc), "%s(0x%p + 0x%x) = 0x%x\n", __func__, host 212 drivers/mmc/host/usdhi6rol0.c host->base, reg, data); host 215 drivers/mmc/host/usdhi6rol0.c static void usdhi6_write16(struct usdhi6_host *host, u32 reg, u16 data) host 217 drivers/mmc/host/usdhi6rol0.c iowrite16(data, host->base + reg); host 218 drivers/mmc/host/usdhi6rol0.c dev_vdbg(mmc_dev(host->mmc), "%s(0x%p + 0x%x) = 0x%x\n", __func__, host 219 drivers/mmc/host/usdhi6rol0.c host->base, reg, data); host 222 drivers/mmc/host/usdhi6rol0.c static u32 usdhi6_read(struct usdhi6_host *host, u32 reg) host 224 drivers/mmc/host/usdhi6rol0.c u32 data = ioread32(host->base + reg); host 225 drivers/mmc/host/usdhi6rol0.c dev_vdbg(mmc_dev(host->mmc), "%s(0x%p + 0x%x) = 0x%x\n", __func__, host 226 drivers/mmc/host/usdhi6rol0.c host->base, reg, data); host 230 drivers/mmc/host/usdhi6rol0.c static u16 usdhi6_read16(struct usdhi6_host *host, u32 reg) host 232 drivers/mmc/host/usdhi6rol0.c u16 data = ioread16(host->base + reg); host 233 drivers/mmc/host/usdhi6rol0.c dev_vdbg(mmc_dev(host->mmc), "%s(0x%p + 0x%x) = 0x%x\n", __func__, host 234 drivers/mmc/host/usdhi6rol0.c host->base, reg, data); host 238 drivers/mmc/host/usdhi6rol0.c static void usdhi6_irq_enable(struct usdhi6_host *host, u32 info1, u32 info2) host 240 drivers/mmc/host/usdhi6rol0.c host->status_mask = USDHI6_SD_INFO1_IRQ & ~info1; host 241 drivers/mmc/host/usdhi6rol0.c host->status2_mask = USDHI6_SD_INFO2_IRQ & ~info2; host 242 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_INFO1_MASK, host->status_mask); host 243 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_INFO2_MASK, host->status2_mask); host 246 drivers/mmc/host/usdhi6rol0.c static void usdhi6_wait_for_resp(struct usdhi6_host *host) host 248 drivers/mmc/host/usdhi6rol0.c usdhi6_irq_enable(host, USDHI6_SD_INFO1_RSP_END | host 253 drivers/mmc/host/usdhi6rol0.c static void usdhi6_wait_for_brwe(struct usdhi6_host *host, bool read) host 255 drivers/mmc/host/usdhi6rol0.c usdhi6_irq_enable(host, USDHI6_SD_INFO1_ACCESS_END | host 260 drivers/mmc/host/usdhi6rol0.c static void usdhi6_only_cd(struct usdhi6_host *host) host 263 drivers/mmc/host/usdhi6rol0.c usdhi6_irq_enable(host, USDHI6_SD_INFO1_CARD_CD, 0); host 266 drivers/mmc/host/usdhi6rol0.c static void usdhi6_mask_all(struct usdhi6_host *host) host 268 drivers/mmc/host/usdhi6rol0.c usdhi6_irq_enable(host, 0, 0); host 271 drivers/mmc/host/usdhi6rol0.c static int usdhi6_error_code(struct usdhi6_host *host) host 275 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_STOP, USDHI6_SD_STOP_STP); host 277 drivers/mmc/host/usdhi6rol0.c if (host->io_error & host 279 drivers/mmc/host/usdhi6rol0.c u32 rsp54 = usdhi6_read(host, USDHI6_SD_RSP54); host 280 drivers/mmc/host/usdhi6rol0.c int opc = host->mrq ? host->mrq->cmd->opcode : -1; host 282 drivers/mmc/host/usdhi6rol0.c err = usdhi6_read(host, USDHI6_SD_ERR_STS2); host 284 drivers/mmc/host/usdhi6rol0.c if (host->wait == USDHI6_WAIT_FOR_CMD) host 285 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), host 287 drivers/mmc/host/usdhi6rol0.c err, rsp54, host->wait, opc); host 289 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), host 291 drivers/mmc/host/usdhi6rol0.c err, rsp54, host->wait, opc); host 295 drivers/mmc/host/usdhi6rol0.c err = usdhi6_read(host, USDHI6_SD_ERR_STS1); host 297 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), "Err sts 0x%x, state %u, CMD%d\n", host 298 drivers/mmc/host/usdhi6rol0.c err, host->wait, host->mrq ? host->mrq->cmd->opcode : -1); host 299 drivers/mmc/host/usdhi6rol0.c if (host->io_error & USDHI6_SD_INFO2_ILA) host 313 drivers/mmc/host/usdhi6rol0.c static void usdhi6_blk_bounce(struct usdhi6_host *host, host 316 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 317 drivers/mmc/host/usdhi6rol0.c size_t blk_head = host->head_len; host 319 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): CMD%u of %u SG: %ux%u @ 0x%x\n", host 320 drivers/mmc/host/usdhi6rol0.c __func__, host->mrq->cmd->opcode, data->sg_len, host 323 drivers/mmc/host/usdhi6rol0.c host->head_pg.page = host->pg.page; host 324 drivers/mmc/host/usdhi6rol0.c host->head_pg.mapped = host->pg.mapped; host 325 drivers/mmc/host/usdhi6rol0.c host->pg.page = nth_page(host->pg.page, 1); host 326 drivers/mmc/host/usdhi6rol0.c host->pg.mapped = kmap(host->pg.page); host 328 drivers/mmc/host/usdhi6rol0.c host->blk_page = host->bounce_buf; host 329 drivers/mmc/host/usdhi6rol0.c host->offset = 0; host 334 drivers/mmc/host/usdhi6rol0.c memcpy(host->bounce_buf, host->head_pg.mapped + PAGE_SIZE - blk_head, host 336 drivers/mmc/host/usdhi6rol0.c memcpy(host->bounce_buf + blk_head, host->pg.mapped, host 341 drivers/mmc/host/usdhi6rol0.c static void usdhi6_sg_prep(struct usdhi6_host *host) host 343 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 346 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_SECCNT, data->blocks); host 348 drivers/mmc/host/usdhi6rol0.c host->sg = data->sg; host 350 drivers/mmc/host/usdhi6rol0.c host->offset = host->sg->offset; host 354 drivers/mmc/host/usdhi6rol0.c static void *usdhi6_sg_map(struct usdhi6_host *host) host 356 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 357 drivers/mmc/host/usdhi6rol0.c struct scatterlist *sg = data->sg_len > 1 ? host->sg : data->sg; host 361 drivers/mmc/host/usdhi6rol0.c WARN(host->pg.page, "%p not properly unmapped!\n", host->pg.page); host 367 drivers/mmc/host/usdhi6rol0.c host->pg.page = sg_page(sg); host 368 drivers/mmc/host/usdhi6rol0.c host->pg.mapped = kmap(host->pg.page); host 369 drivers/mmc/host/usdhi6rol0.c host->offset = sg->offset; host 375 drivers/mmc/host/usdhi6rol0.c host->head_len = blk_head; host 382 drivers/mmc/host/usdhi6rol0.c usdhi6_blk_bounce(host, sg); host 384 drivers/mmc/host/usdhi6rol0.c host->blk_page = host->pg.mapped; host 386 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "Mapped %p (%lx) at %p + %u for CMD%u @ 0x%p\n", host 387 drivers/mmc/host/usdhi6rol0.c host->pg.page, page_to_pfn(host->pg.page), host->pg.mapped, host 388 drivers/mmc/host/usdhi6rol0.c sg->offset, host->mrq->cmd->opcode, host->mrq); host 390 drivers/mmc/host/usdhi6rol0.c return host->blk_page + host->offset; host 394 drivers/mmc/host/usdhi6rol0.c static void usdhi6_sg_unmap(struct usdhi6_host *host, bool force) host 396 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 397 drivers/mmc/host/usdhi6rol0.c struct page *page = host->head_pg.page; host 402 drivers/mmc/host/usdhi6rol0.c host->sg : data->sg; host 403 drivers/mmc/host/usdhi6rol0.c size_t blk_head = host->head_len; host 406 drivers/mmc/host/usdhi6rol0.c memcpy(host->head_pg.mapped + PAGE_SIZE - blk_head, host 407 drivers/mmc/host/usdhi6rol0.c host->bounce_buf, blk_head); host 408 drivers/mmc/host/usdhi6rol0.c memcpy(host->pg.mapped, host->bounce_buf + blk_head, host 415 drivers/mmc/host/usdhi6rol0.c host->head_pg.page = NULL; host 418 drivers/mmc/host/usdhi6rol0.c (host->page_idx << PAGE_SHIFT) + data->blksz - blk_head) host 423 drivers/mmc/host/usdhi6rol0.c page = host->pg.page; host 430 drivers/mmc/host/usdhi6rol0.c host->pg.page = NULL; host 434 drivers/mmc/host/usdhi6rol0.c static void usdhi6_sg_advance(struct usdhi6_host *host) host 436 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 440 drivers/mmc/host/usdhi6rol0.c if (host->head_pg.page) { host 442 drivers/mmc/host/usdhi6rol0.c host->page_idx++; host 443 drivers/mmc/host/usdhi6rol0.c host->offset = data->blksz - host->head_len; host 444 drivers/mmc/host/usdhi6rol0.c host->blk_page = host->pg.mapped; host 445 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_unmap(host, false); host 447 drivers/mmc/host/usdhi6rol0.c host->offset += data->blksz; host 449 drivers/mmc/host/usdhi6rol0.c if (host->offset == PAGE_SIZE) { host 451 drivers/mmc/host/usdhi6rol0.c host->offset = 0; host 452 drivers/mmc/host/usdhi6rol0.c host->page_idx++; host 462 drivers/mmc/host/usdhi6rol0.c done = (host->page_idx << PAGE_SHIFT) + host->offset; host 463 drivers/mmc/host/usdhi6rol0.c total = host->sg->offset + sg_dma_len(host->sg); host 465 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): %zu of %zu @ %zu\n", __func__, host 466 drivers/mmc/host/usdhi6rol0.c done, total, host->offset); host 468 drivers/mmc/host/usdhi6rol0.c if (done < total && host->offset) { host 470 drivers/mmc/host/usdhi6rol0.c if (host->offset + data->blksz > PAGE_SIZE) host 472 drivers/mmc/host/usdhi6rol0.c usdhi6_blk_bounce(host, host->sg); host 478 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_unmap(host, false); host 486 drivers/mmc/host/usdhi6rol0.c struct scatterlist *next = sg_next(host->sg); host 488 drivers/mmc/host/usdhi6rol0.c host->page_idx = 0; host 491 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_DATA_END; host 492 drivers/mmc/host/usdhi6rol0.c host->sg = next; host 505 drivers/mmc/host/usdhi6rol0.c host->pg.page = nth_page(sg_page(host->sg), host->page_idx); host 506 drivers/mmc/host/usdhi6rol0.c host->pg.mapped = kmap(host->pg.page); host 507 drivers/mmc/host/usdhi6rol0.c host->blk_page = host->pg.mapped; host 509 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "Mapped %p (%lx) at %p for CMD%u @ 0x%p\n", host 510 drivers/mmc/host/usdhi6rol0.c host->pg.page, page_to_pfn(host->pg.page), host->pg.mapped, host 511 drivers/mmc/host/usdhi6rol0.c host->mrq->cmd->opcode, host->mrq); host 516 drivers/mmc/host/usdhi6rol0.c static void usdhi6_dma_release(struct usdhi6_host *host) host 518 drivers/mmc/host/usdhi6rol0.c host->dma_active = false; host 519 drivers/mmc/host/usdhi6rol0.c if (host->chan_tx) { host 520 drivers/mmc/host/usdhi6rol0.c struct dma_chan *chan = host->chan_tx; host 521 drivers/mmc/host/usdhi6rol0.c host->chan_tx = NULL; host 524 drivers/mmc/host/usdhi6rol0.c if (host->chan_rx) { host 525 drivers/mmc/host/usdhi6rol0.c struct dma_chan *chan = host->chan_rx; host 526 drivers/mmc/host/usdhi6rol0.c host->chan_rx = NULL; host 531 drivers/mmc/host/usdhi6rol0.c static void usdhi6_dma_stop_unmap(struct usdhi6_host *host) host 533 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 535 drivers/mmc/host/usdhi6rol0.c if (!host->dma_active) host 538 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_CC_EXT_MODE, 0); host 539 drivers/mmc/host/usdhi6rol0.c host->dma_active = false; host 542 drivers/mmc/host/usdhi6rol0.c dma_unmap_sg(host->chan_rx->device->dev, data->sg, host 545 drivers/mmc/host/usdhi6rol0.c dma_unmap_sg(host->chan_tx->device->dev, data->sg, host 551 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = arg; host 552 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 555 drivers/mmc/host/usdhi6rol0.c dev_name(mmc_dev(host->mmc)), mrq)) host 558 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): CMD%u DMA completed\n", __func__, host 561 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_stop_unmap(host); host 562 drivers/mmc/host/usdhi6rol0.c usdhi6_wait_for_brwe(host, mrq->data->flags & MMC_DATA_READ); host 565 drivers/mmc/host/usdhi6rol0.c static int usdhi6_dma_setup(struct usdhi6_host *host, struct dma_chan *chan, host 568 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 588 drivers/mmc/host/usdhi6rol0.c host->dma_active = true; host 595 drivers/mmc/host/usdhi6rol0.c desc->callback_param = host; host 599 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): mapped %d -> %d, cookie %d @ %p\n", host 606 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_release(host); host 607 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), host 614 drivers/mmc/host/usdhi6rol0.c static int usdhi6_dma_start(struct usdhi6_host *host) host 616 drivers/mmc/host/usdhi6rol0.c if (!host->chan_rx || !host->chan_tx) host 619 drivers/mmc/host/usdhi6rol0.c if (host->mrq->data->flags & MMC_DATA_READ) host 620 drivers/mmc/host/usdhi6rol0.c return usdhi6_dma_setup(host, host->chan_rx, DMA_DEV_TO_MEM); host 622 drivers/mmc/host/usdhi6rol0.c return usdhi6_dma_setup(host, host->chan_tx, DMA_MEM_TO_DEV); host 625 drivers/mmc/host/usdhi6rol0.c static void usdhi6_dma_kill(struct usdhi6_host *host) host 627 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 629 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): SG of %u: %ux%u\n", host 633 drivers/mmc/host/usdhi6rol0.c dmaengine_terminate_all(host->chan_rx); host 635 drivers/mmc/host/usdhi6rol0.c dmaengine_terminate_all(host->chan_tx); host 638 drivers/mmc/host/usdhi6rol0.c static void usdhi6_dma_check_error(struct usdhi6_host *host) host 640 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 642 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): IO error %d, status 0x%x\n", host 643 drivers/mmc/host/usdhi6rol0.c __func__, host->io_error, usdhi6_read(host, USDHI6_SD_INFO1)); host 645 drivers/mmc/host/usdhi6rol0.c if (host->io_error) { host 646 drivers/mmc/host/usdhi6rol0.c data->error = usdhi6_error_code(host); host 648 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_kill(host); host 649 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_release(host); host 650 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), host 660 drivers/mmc/host/usdhi6rol0.c if (host->irq_status & USDHI6_SD_INFO1_RSP_END) host 661 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), "Unexpected response received!\n"); host 664 drivers/mmc/host/usdhi6rol0.c static void usdhi6_dma_kick(struct usdhi6_host *host) host 666 drivers/mmc/host/usdhi6rol0.c if (host->mrq->data->flags & MMC_DATA_READ) host 667 drivers/mmc/host/usdhi6rol0.c dma_async_issue_pending(host->chan_rx); host 669 drivers/mmc/host/usdhi6rol0.c dma_async_issue_pending(host->chan_tx); host 672 drivers/mmc/host/usdhi6rol0.c static void usdhi6_dma_request(struct usdhi6_host *host, phys_addr_t start) host 680 drivers/mmc/host/usdhi6rol0.c host->chan_tx = dma_request_slave_channel(mmc_dev(host->mmc), "tx"); host 681 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s: TX: got channel %p\n", __func__, host 682 drivers/mmc/host/usdhi6rol0.c host->chan_tx); host 684 drivers/mmc/host/usdhi6rol0.c if (!host->chan_tx) host 691 drivers/mmc/host/usdhi6rol0.c ret = dmaengine_slave_config(host->chan_tx, &cfg); host 695 drivers/mmc/host/usdhi6rol0.c host->chan_rx = dma_request_slave_channel(mmc_dev(host->mmc), "rx"); host 696 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s: RX: got channel %p\n", __func__, host 697 drivers/mmc/host/usdhi6rol0.c host->chan_rx); host 699 drivers/mmc/host/usdhi6rol0.c if (!host->chan_rx) host 706 drivers/mmc/host/usdhi6rol0.c ret = dmaengine_slave_config(host->chan_rx, &cfg); host 713 drivers/mmc/host/usdhi6rol0.c dma_release_channel(host->chan_rx); host 714 drivers/mmc/host/usdhi6rol0.c host->chan_rx = NULL; host 716 drivers/mmc/host/usdhi6rol0.c dma_release_channel(host->chan_tx); host 717 drivers/mmc/host/usdhi6rol0.c host->chan_tx = NULL; host 722 drivers/mmc/host/usdhi6rol0.c static void usdhi6_clk_set(struct usdhi6_host *host, struct mmc_ios *ios) host 729 drivers/mmc/host/usdhi6rol0.c if (usdhi6_read(host, USDHI6_SD_INFO2) & USDHI6_SD_INFO2_SCLKDIVEN) host 735 drivers/mmc/host/usdhi6rol0.c dev_err(mmc_dev(host->mmc), "SD bus busy, clock set aborted\n"); host 739 drivers/mmc/host/usdhi6rol0.c val = usdhi6_read(host, USDHI6_SD_CLK_CTRL) & ~USDHI6_SD_CLK_CTRL_DIV_MASK; host 744 drivers/mmc/host/usdhi6rol0.c if (host->imclk <= rate) { host 747 drivers/mmc/host/usdhi6rol0.c new_rate = host->imclk; host 750 drivers/mmc/host/usdhi6rol0.c new_rate = host->imclk / 2; host 754 drivers/mmc/host/usdhi6rol0.c roundup_pow_of_two(DIV_ROUND_UP(host->imclk, rate)); host 756 drivers/mmc/host/usdhi6rol0.c new_rate = host->imclk / div; host 759 drivers/mmc/host/usdhi6rol0.c if (host->rate == new_rate) host 762 drivers/mmc/host/usdhi6rol0.c host->rate = new_rate; host 764 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "target %lu, div %u, set %lu\n", host 772 drivers/mmc/host/usdhi6rol0.c if (host->imclk == rate || host->imclk == host->rate || !rate) host 773 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_CLK_CTRL, host 777 drivers/mmc/host/usdhi6rol0.c host->rate = 0; host 781 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_CLK_CTRL, val); host 783 drivers/mmc/host/usdhi6rol0.c if (host->imclk == rate || host->imclk == host->rate || host 785 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_CLK_CTRL, host 789 drivers/mmc/host/usdhi6rol0.c static void usdhi6_set_power(struct usdhi6_host *host, struct mmc_ios *ios) host 791 drivers/mmc/host/usdhi6rol0.c struct mmc_host *mmc = host->mmc; host 799 drivers/mmc/host/usdhi6rol0.c static int usdhi6_reset(struct usdhi6_host *host) host 803 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SOFT_RST, USDHI6_SOFT_RST_RESERVED); host 805 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SOFT_RST, USDHI6_SOFT_RST_RESERVED | USDHI6_SOFT_RST_RESET); host 807 drivers/mmc/host/usdhi6rol0.c if (usdhi6_read(host, USDHI6_SOFT_RST) & USDHI6_SOFT_RST_RESET) host 815 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = mmc_priv(mmc); host 824 drivers/mmc/host/usdhi6rol0.c usdhi6_set_power(host, ios); host 825 drivers/mmc/host/usdhi6rol0.c usdhi6_only_cd(host); host 832 drivers/mmc/host/usdhi6rol0.c ret = usdhi6_reset(host); host 836 drivers/mmc/host/usdhi6rol0.c usdhi6_set_power(host, ios); host 837 drivers/mmc/host/usdhi6rol0.c usdhi6_only_cd(host); host 841 drivers/mmc/host/usdhi6rol0.c option = usdhi6_read(host, USDHI6_SD_OPTION); host 857 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_OPTION, option); host 858 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SDIF_MODE, mode); host 862 drivers/mmc/host/usdhi6rol0.c if (host->rate != ios->clock) host 863 drivers/mmc/host/usdhi6rol0.c usdhi6_clk_set(host, ios); host 867 drivers/mmc/host/usdhi6rol0.c static void usdhi6_timeout_set(struct usdhi6_host *host) host 869 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 874 drivers/mmc/host/usdhi6rol0.c ticks = host->rate / 1000 * mrq->cmd->busy_timeout; host 876 drivers/mmc/host/usdhi6rol0.c ticks = host->rate / 1000000 * (mrq->data->timeout_ns / 1000) + host 888 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "Set %s timeout %lu ticks @ %lu Hz\n", host 889 drivers/mmc/host/usdhi6rol0.c mrq->data ? "data" : "cmd", ticks, host->rate); host 892 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_OPTION, (val << USDHI6_SD_OPTION_TIMEOUT_SHIFT) | host 893 drivers/mmc/host/usdhi6rol0.c (usdhi6_read(host, USDHI6_SD_OPTION) & ~USDHI6_SD_OPTION_TIMEOUT_MASK)); host 896 drivers/mmc/host/usdhi6rol0.c static void usdhi6_request_done(struct usdhi6_host *host) host 898 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 901 drivers/mmc/host/usdhi6rol0.c if (WARN(host->pg.page || host->head_pg.page, host 903 drivers/mmc/host/usdhi6rol0.c host->pg.page, host->head_pg.page, host->wait, mrq->cmd->opcode, host 905 drivers/mmc/host/usdhi6rol0.c data ? host->offset : 0, data ? data->blocks : 0, host 907 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_unmap(host, true); host 912 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(CMD%d: %ux%u): err %d %d %d\n", host 920 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_CC_EXT_MODE, 0); host 921 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_REQUEST; host 922 drivers/mmc/host/usdhi6rol0.c host->mrq = NULL; host 924 drivers/mmc/host/usdhi6rol0.c mmc_request_done(host->mmc, mrq); host 927 drivers/mmc/host/usdhi6rol0.c static int usdhi6_cmd_flags(struct usdhi6_host *host) host 929 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 933 drivers/mmc/host/usdhi6rol0.c if (host->app_cmd) { host 934 drivers/mmc/host/usdhi6rol0.c host->app_cmd = false; host 970 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), host 980 drivers/mmc/host/usdhi6rol0.c static int usdhi6_rq_start(struct usdhi6_host *host) host 982 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 985 drivers/mmc/host/usdhi6rol0.c int opc = usdhi6_cmd_flags(host); host 992 drivers/mmc/host/usdhi6rol0.c if (!(usdhi6_read(host, USDHI6_SD_INFO2) & USDHI6_SD_INFO2_CBSY)) host 998 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "Command active, request aborted\n"); host 1006 drivers/mmc/host/usdhi6rol0.c host->page_idx = 0; host 1029 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), "%s(): %u blocks of %u bytes\n", host 1038 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_prep(host); host 1040 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_SIZE, data->blksz); host 1046 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), host 1053 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_start(host) >= DMA_MIN_COOKIE; host 1056 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_CC_EXT_MODE, USDHI6_CC_EXT_MODE_SDRW); host 1058 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), host 1065 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): request opcode %u\n", host 1070 drivers/mmc/host/usdhi6rol0.c usdhi6_wait_for_resp(host); host 1072 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_CMD; host 1073 drivers/mmc/host/usdhi6rol0.c schedule_delayed_work(&host->timeout_work, host->timeout); host 1076 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_STOP, host 1078 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_ARG, cmd->arg); host 1081 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_CMD, opc); host 1088 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = mmc_priv(mmc); host 1091 drivers/mmc/host/usdhi6rol0.c cancel_delayed_work_sync(&host->timeout_work); host 1093 drivers/mmc/host/usdhi6rol0.c host->mrq = mrq; host 1094 drivers/mmc/host/usdhi6rol0.c host->sg = NULL; host 1096 drivers/mmc/host/usdhi6rol0.c usdhi6_timeout_set(host); host 1097 drivers/mmc/host/usdhi6rol0.c ret = usdhi6_rq_start(host); host 1100 drivers/mmc/host/usdhi6rol0.c usdhi6_request_done(host); host 1106 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = mmc_priv(mmc); host 1108 drivers/mmc/host/usdhi6rol0.c u32 status = usdhi6_read(host, USDHI6_SD_INFO1) & USDHI6_SD_INFO1_CD; host 1122 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = mmc_priv(mmc); host 1124 drivers/mmc/host/usdhi6rol0.c u32 status = usdhi6_read(host, USDHI6_SD_INFO1) & USDHI6_SD_INFO1_WP; host 1138 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = mmc_priv(mmc); host 1143 drivers/mmc/host/usdhi6rol0.c host->sdio_mask = USDHI6_SDIO_INFO1_IRQ & ~USDHI6_SDIO_INFO1_IOIRQ; host 1144 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SDIO_INFO1_MASK, host->sdio_mask); host 1145 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SDIO_MODE, 1); host 1147 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SDIO_MODE, 0); host 1148 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SDIO_INFO1_MASK, USDHI6_SDIO_INFO1_IRQ); host 1149 drivers/mmc/host/usdhi6rol0.c host->sdio_mask = USDHI6_SDIO_INFO1_IRQ; host 1153 drivers/mmc/host/usdhi6rol0.c static int usdhi6_set_pinstates(struct usdhi6_host *host, int voltage) host 1155 drivers/mmc/host/usdhi6rol0.c if (IS_ERR(host->pins_uhs)) host 1161 drivers/mmc/host/usdhi6rol0.c return pinctrl_select_state(host->pinctrl, host 1162 drivers/mmc/host/usdhi6rol0.c host->pins_uhs); host 1165 drivers/mmc/host/usdhi6rol0.c return pinctrl_select_state(host->pinctrl, host 1166 drivers/mmc/host/usdhi6rol0.c host->pins_default); host 1196 drivers/mmc/host/usdhi6rol0.c static void usdhi6_resp_cmd12(struct usdhi6_host *host) host 1198 drivers/mmc/host/usdhi6rol0.c struct mmc_command *cmd = host->mrq->stop; host 1199 drivers/mmc/host/usdhi6rol0.c cmd->resp[0] = usdhi6_read(host, USDHI6_SD_RSP10); host 1202 drivers/mmc/host/usdhi6rol0.c static void usdhi6_resp_read(struct usdhi6_host *host) host 1204 drivers/mmc/host/usdhi6rol0.c struct mmc_command *cmd = host->mrq->cmd; host 1225 drivers/mmc/host/usdhi6rol0.c if (!(host->irq_status & USDHI6_SD_INFO1_RSP_END)) { host 1226 drivers/mmc/host/usdhi6rol0.c dev_err(mmc_dev(host->mmc), host 1235 drivers/mmc/host/usdhi6rol0.c tmp = usdhi6_read(host, USDHI6_SD_RSP10 + i * 8); host 1241 drivers/mmc/host/usdhi6rol0.c rsp[0] = usdhi6_read(host, USDHI6_SD_RSP54); host 1243 drivers/mmc/host/usdhi6rol0.c rsp[0] = usdhi6_read(host, USDHI6_SD_RSP10); host 1245 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "Response 0x%x\n", rsp[0]); host 1248 drivers/mmc/host/usdhi6rol0.c static int usdhi6_blk_read(struct usdhi6_host *host) host 1250 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 1254 drivers/mmc/host/usdhi6rol0.c if (host->io_error) { host 1255 drivers/mmc/host/usdhi6rol0.c data->error = usdhi6_error_code(host); host 1259 drivers/mmc/host/usdhi6rol0.c if (host->pg.page) { host 1260 drivers/mmc/host/usdhi6rol0.c p = host->blk_page + host->offset; host 1262 drivers/mmc/host/usdhi6rol0.c p = usdhi6_sg_map(host); host 1270 drivers/mmc/host/usdhi6rol0.c *p = usdhi6_read(host, USDHI6_SD_BUF0); host 1274 drivers/mmc/host/usdhi6rol0.c u16 d = usdhi6_read16(host, USDHI6_SD_BUF0); host 1283 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): %d\n", __func__, data->error); host 1284 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_REQUEST; host 1288 drivers/mmc/host/usdhi6rol0.c static int usdhi6_blk_write(struct usdhi6_host *host) host 1290 drivers/mmc/host/usdhi6rol0.c struct mmc_data *data = host->mrq->data; host 1294 drivers/mmc/host/usdhi6rol0.c if (host->io_error) { host 1295 drivers/mmc/host/usdhi6rol0.c data->error = usdhi6_error_code(host); host 1299 drivers/mmc/host/usdhi6rol0.c if (host->pg.page) { host 1300 drivers/mmc/host/usdhi6rol0.c p = host->blk_page + host->offset; host 1302 drivers/mmc/host/usdhi6rol0.c p = usdhi6_sg_map(host); host 1310 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_BUF0, *p); host 1320 drivers/mmc/host/usdhi6rol0.c usdhi6_write16(host, USDHI6_SD_BUF0, d); host 1326 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): %d\n", __func__, data->error); host 1327 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_REQUEST; host 1331 drivers/mmc/host/usdhi6rol0.c static int usdhi6_stop_cmd(struct usdhi6_host *host) host 1333 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 1339 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_STOP; host 1344 drivers/mmc/host/usdhi6rol0.c dev_err(mmc_dev(host->mmc), host 1353 drivers/mmc/host/usdhi6rol0.c static bool usdhi6_end_cmd(struct usdhi6_host *host) host 1355 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 1358 drivers/mmc/host/usdhi6rol0.c if (host->io_error) { host 1359 drivers/mmc/host/usdhi6rol0.c cmd->error = usdhi6_error_code(host); host 1363 drivers/mmc/host/usdhi6rol0.c usdhi6_resp_read(host); host 1368 drivers/mmc/host/usdhi6rol0.c if (host->dma_active) { host 1369 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_kick(host); host 1371 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_DMA; host 1372 drivers/mmc/host/usdhi6rol0.c else if (usdhi6_stop_cmd(host) < 0) host 1378 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_MREAD; host 1380 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_READ; host 1385 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_MWRITE; host 1387 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_WRITE; host 1393 drivers/mmc/host/usdhi6rol0.c static bool usdhi6_read_block(struct usdhi6_host *host) host 1396 drivers/mmc/host/usdhi6rol0.c int ret = usdhi6_blk_read(host); host 1403 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_unmap(host, true); host 1408 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_DATA_END; host 1412 drivers/mmc/host/usdhi6rol0.c static bool usdhi6_mread_block(struct usdhi6_host *host) host 1414 drivers/mmc/host/usdhi6rol0.c int ret = usdhi6_blk_read(host); host 1419 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_advance(host); host 1421 drivers/mmc/host/usdhi6rol0.c return !host->mrq->data->error && host 1422 drivers/mmc/host/usdhi6rol0.c (host->wait != USDHI6_WAIT_FOR_DATA_END || !host->mrq->stop); host 1425 drivers/mmc/host/usdhi6rol0.c static bool usdhi6_write_block(struct usdhi6_host *host) host 1427 drivers/mmc/host/usdhi6rol0.c int ret = usdhi6_blk_write(host); host 1430 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_unmap(host, true); host 1435 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_DATA_END; host 1439 drivers/mmc/host/usdhi6rol0.c static bool usdhi6_mwrite_block(struct usdhi6_host *host) host 1441 drivers/mmc/host/usdhi6rol0.c int ret = usdhi6_blk_write(host); host 1446 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_advance(host); host 1448 drivers/mmc/host/usdhi6rol0.c return !host->mrq->data->error && host 1449 drivers/mmc/host/usdhi6rol0.c (host->wait != USDHI6_WAIT_FOR_DATA_END || !host->mrq->stop); host 1456 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = dev_id; host 1462 drivers/mmc/host/usdhi6rol0.c cancel_delayed_work_sync(&host->timeout_work); host 1464 drivers/mmc/host/usdhi6rol0.c mrq = host->mrq; host 1471 drivers/mmc/host/usdhi6rol0.c switch (host->wait) { host 1477 drivers/mmc/host/usdhi6rol0.c io_wait = usdhi6_end_cmd(host); host 1481 drivers/mmc/host/usdhi6rol0.c io_wait = usdhi6_mread_block(host); host 1485 drivers/mmc/host/usdhi6rol0.c io_wait = usdhi6_read_block(host); host 1489 drivers/mmc/host/usdhi6rol0.c io_wait = usdhi6_mwrite_block(host); host 1493 drivers/mmc/host/usdhi6rol0.c io_wait = usdhi6_write_block(host); host 1496 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_check_error(host); host 1499 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_STOP, 0); host 1500 drivers/mmc/host/usdhi6rol0.c if (host->io_error) { host 1501 drivers/mmc/host/usdhi6rol0.c int ret = usdhi6_error_code(host); host 1506 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), "%s(): %d\n", __func__, ret); host 1509 drivers/mmc/host/usdhi6rol0.c usdhi6_resp_cmd12(host); host 1513 drivers/mmc/host/usdhi6rol0.c if (host->io_error) { host 1514 drivers/mmc/host/usdhi6rol0.c mrq->data->error = usdhi6_error_code(host); host 1515 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), "%s(): %d\n", __func__, host 1521 drivers/mmc/host/usdhi6rol0.c dev_err(mmc_dev(host->mmc), "Invalid state %u\n", host->wait); host 1522 drivers/mmc/host/usdhi6rol0.c usdhi6_request_done(host); host 1527 drivers/mmc/host/usdhi6rol0.c schedule_delayed_work(&host->timeout_work, host->timeout); host 1529 drivers/mmc/host/usdhi6rol0.c if (!host->dma_active) host 1530 drivers/mmc/host/usdhi6rol0.c usdhi6_wait_for_brwe(host, mrq->data->flags & MMC_DATA_READ); host 1537 drivers/mmc/host/usdhi6rol0.c if (host->wait != USDHI6_WAIT_FOR_STOP && host 1538 drivers/mmc/host/usdhi6rol0.c host->mrq->stop && host 1539 drivers/mmc/host/usdhi6rol0.c !host->mrq->stop->error && host 1540 drivers/mmc/host/usdhi6rol0.c !usdhi6_stop_cmd(host)) { host 1542 drivers/mmc/host/usdhi6rol0.c usdhi6_wait_for_resp(host); host 1544 drivers/mmc/host/usdhi6rol0.c schedule_delayed_work(&host->timeout_work, host 1545 drivers/mmc/host/usdhi6rol0.c host->timeout); host 1553 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), "%s(): data error %d\n", host 1555 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_unmap(host, true); host 1558 drivers/mmc/host/usdhi6rol0.c host->app_cmd = true; host 1562 drivers/mmc/host/usdhi6rol0.c usdhi6_request_done(host); host 1569 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = dev_id; host 1572 drivers/mmc/host/usdhi6rol0.c status = usdhi6_read(host, USDHI6_SD_INFO1) & ~host->status_mask & host 1574 drivers/mmc/host/usdhi6rol0.c status2 = usdhi6_read(host, USDHI6_SD_INFO2) & ~host->status2_mask; host 1576 drivers/mmc/host/usdhi6rol0.c usdhi6_only_cd(host); host 1578 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), host 1588 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_INFO1, host 1596 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_INFO2, host 1600 drivers/mmc/host/usdhi6rol0.c host->io_error = error; host 1601 drivers/mmc/host/usdhi6rol0.c host->irq_status = status; host 1605 drivers/mmc/host/usdhi6rol0.c if (host->wait != USDHI6_WAIT_FOR_CMD || host 1607 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), host 1611 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), host 1621 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = dev_id; host 1622 drivers/mmc/host/usdhi6rol0.c u32 status = usdhi6_read(host, USDHI6_SDIO_INFO1) & ~host->sdio_mask; host 1624 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), "%s(): status 0x%x\n", __func__, status); host 1629 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SDIO_INFO1, ~status); host 1631 drivers/mmc/host/usdhi6rol0.c mmc_signal_sdio_irq(host->mmc); host 1638 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = dev_id; host 1639 drivers/mmc/host/usdhi6rol0.c struct mmc_host *mmc = host->mmc; host 1643 drivers/mmc/host/usdhi6rol0.c status = usdhi6_read(host, USDHI6_SD_INFO1) & ~host->status_mask & host 1650 drivers/mmc/host/usdhi6rol0.c usdhi6_write(host, USDHI6_SD_INFO1, ~status); host 1670 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = container_of(d, struct usdhi6_host, timeout_work); host 1671 drivers/mmc/host/usdhi6rol0.c struct mmc_request *mrq = host->mrq; host 1675 drivers/mmc/host/usdhi6rol0.c dev_warn(mmc_dev(host->mmc), host 1677 drivers/mmc/host/usdhi6rol0.c host->dma_active ? "DMA" : "PIO", host 1678 drivers/mmc/host/usdhi6rol0.c host->wait, mrq ? mrq->cmd->opcode : -1, host 1679 drivers/mmc/host/usdhi6rol0.c usdhi6_read(host, USDHI6_SD_INFO1), host 1680 drivers/mmc/host/usdhi6rol0.c usdhi6_read(host, USDHI6_SD_INFO2), host->irq_status); host 1682 drivers/mmc/host/usdhi6rol0.c if (host->dma_active) { host 1683 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_kill(host); host 1684 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_stop_unmap(host); host 1687 drivers/mmc/host/usdhi6rol0.c switch (host->wait) { host 1689 drivers/mmc/host/usdhi6rol0.c dev_err(mmc_dev(host->mmc), "Invalid state %u\n", host->wait); host 1692 drivers/mmc/host/usdhi6rol0.c usdhi6_error_code(host); host 1697 drivers/mmc/host/usdhi6rol0.c usdhi6_error_code(host); host 1705 drivers/mmc/host/usdhi6rol0.c sg = host->sg ?: data->sg; host 1706 drivers/mmc/host/usdhi6rol0.c dev_dbg(mmc_dev(host->mmc), host 1708 drivers/mmc/host/usdhi6rol0.c data->flags & MMC_DATA_READ ? 'R' : 'W', host->page_idx, host 1709 drivers/mmc/host/usdhi6rol0.c host->offset, data->blocks, data->blksz, data->sg_len, host 1711 drivers/mmc/host/usdhi6rol0.c usdhi6_sg_unmap(host, true); host 1714 drivers/mmc/host/usdhi6rol0.c usdhi6_error_code(host); host 1719 drivers/mmc/host/usdhi6rol0.c usdhi6_request_done(host); host 1734 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host; host 1761 drivers/mmc/host/usdhi6rol0.c host = mmc_priv(mmc); host 1762 drivers/mmc/host/usdhi6rol0.c host->mmc = mmc; host 1763 drivers/mmc/host/usdhi6rol0.c host->wait = USDHI6_WAIT_FOR_REQUEST; host 1764 drivers/mmc/host/usdhi6rol0.c host->timeout = msecs_to_jiffies(4000); host 1766 drivers/mmc/host/usdhi6rol0.c host->pinctrl = devm_pinctrl_get(&pdev->dev); host 1767 drivers/mmc/host/usdhi6rol0.c if (IS_ERR(host->pinctrl)) { host 1768 drivers/mmc/host/usdhi6rol0.c ret = PTR_ERR(host->pinctrl); host 1772 drivers/mmc/host/usdhi6rol0.c host->pins_uhs = pinctrl_lookup_state(host->pinctrl, "state_uhs"); host 1773 drivers/mmc/host/usdhi6rol0.c if (!IS_ERR(host->pins_uhs)) { host 1774 drivers/mmc/host/usdhi6rol0.c host->pins_default = pinctrl_lookup_state(host->pinctrl, host 1777 drivers/mmc/host/usdhi6rol0.c if (IS_ERR(host->pins_default)) { host 1780 drivers/mmc/host/usdhi6rol0.c ret = PTR_ERR(host->pins_default); host 1786 drivers/mmc/host/usdhi6rol0.c host->base = devm_ioremap_resource(dev, res); host 1787 drivers/mmc/host/usdhi6rol0.c if (IS_ERR(host->base)) { host 1788 drivers/mmc/host/usdhi6rol0.c ret = PTR_ERR(host->base); host 1792 drivers/mmc/host/usdhi6rol0.c host->clk = devm_clk_get(dev, NULL); host 1793 drivers/mmc/host/usdhi6rol0.c if (IS_ERR(host->clk)) { host 1794 drivers/mmc/host/usdhi6rol0.c ret = PTR_ERR(host->clk); host 1798 drivers/mmc/host/usdhi6rol0.c host->imclk = clk_get_rate(host->clk); host 1800 drivers/mmc/host/usdhi6rol0.c ret = clk_prepare_enable(host->clk); host 1804 drivers/mmc/host/usdhi6rol0.c version = usdhi6_read(host, USDHI6_VERSION); host 1811 drivers/mmc/host/usdhi6rol0.c usdhi6_read(host, USDHI6_SD_PORT_SEL) >> USDHI6_SD_PORT_SEL_PORTS_SHIFT); host 1813 drivers/mmc/host/usdhi6rol0.c usdhi6_mask_all(host); host 1817 drivers/mmc/host/usdhi6rol0.c dev_name(dev), host); host 1825 drivers/mmc/host/usdhi6rol0.c dev_name(dev), host); host 1830 drivers/mmc/host/usdhi6rol0.c dev_name(dev), host); host 1834 drivers/mmc/host/usdhi6rol0.c INIT_DELAYED_WORK(&host->timeout_work, usdhi6_timeout_work); host 1836 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_request(host, res->start); host 1856 drivers/mmc/host/usdhi6rol0.c mmc->f_max = host->imclk; host 1857 drivers/mmc/host/usdhi6rol0.c mmc->f_min = host->imclk / 512; host 1859 drivers/mmc/host/usdhi6rol0.c platform_set_drvdata(pdev, host); host 1868 drivers/mmc/host/usdhi6rol0.c clk_disable_unprepare(host->clk); host 1877 drivers/mmc/host/usdhi6rol0.c struct usdhi6_host *host = platform_get_drvdata(pdev); host 1879 drivers/mmc/host/usdhi6rol0.c mmc_remove_host(host->mmc); host 1881 drivers/mmc/host/usdhi6rol0.c usdhi6_mask_all(host); host 1882 drivers/mmc/host/usdhi6rol0.c cancel_delayed_work_sync(&host->timeout_work); host 1883 drivers/mmc/host/usdhi6rol0.c usdhi6_dma_release(host); host 1884 drivers/mmc/host/usdhi6rol0.c clk_disable_unprepare(host->clk); host 1885 drivers/mmc/host/usdhi6rol0.c mmc_free_host(host->mmc); host 330 drivers/mmc/host/via-sdmmc.c static void via_print_sdchc(struct via_crdr_mmc_host *host) host 332 drivers/mmc/host/via-sdmmc.c void __iomem *addrbase = host->sdhc_mmiobase; host 349 drivers/mmc/host/via-sdmmc.c static void via_print_pcictrl(struct via_crdr_mmc_host *host) host 351 drivers/mmc/host/via-sdmmc.c void __iomem *addrbase = host->pcictrl_mmiobase; host 363 drivers/mmc/host/via-sdmmc.c static void via_save_pcictrlreg(struct via_crdr_mmc_host *host) host 368 drivers/mmc/host/via-sdmmc.c pm_pcictrl_reg = &(host->pm_pcictrl_reg); host 369 drivers/mmc/host/via-sdmmc.c addrbase = host->pcictrl_mmiobase; host 382 drivers/mmc/host/via-sdmmc.c static void via_restore_pcictrlreg(struct via_crdr_mmc_host *host) host 387 drivers/mmc/host/via-sdmmc.c pm_pcictrl_reg = &(host->pm_pcictrl_reg); host 388 drivers/mmc/host/via-sdmmc.c addrbase = host->pcictrl_mmiobase; host 399 drivers/mmc/host/via-sdmmc.c static void via_save_sdcreg(struct via_crdr_mmc_host *host) host 404 drivers/mmc/host/via-sdmmc.c pm_sdhc_reg = &(host->pm_sdhc_reg); host 405 drivers/mmc/host/via-sdmmc.c addrbase = host->sdhc_mmiobase; host 419 drivers/mmc/host/via-sdmmc.c static void via_restore_sdcreg(struct via_crdr_mmc_host *host) host 424 drivers/mmc/host/via-sdmmc.c pm_sdhc_reg = &(host->pm_sdhc_reg); host 425 drivers/mmc/host/via-sdmmc.c addrbase = host->sdhc_mmiobase; host 447 drivers/mmc/host/via-sdmmc.c static void via_set_ddma(struct via_crdr_mmc_host *host, host 459 drivers/mmc/host/via-sdmmc.c addrbase = host->ddma_mmiobase; host 468 drivers/mmc/host/via-sdmmc.c addrbase = host->pcictrl_mmiobase; host 470 drivers/mmc/host/via-sdmmc.c dev_info(host->mmc->parent, "forcing card speed to 8MHz\n"); host 475 drivers/mmc/host/via-sdmmc.c static void via_sdc_preparedata(struct via_crdr_mmc_host *host, host 482 drivers/mmc/host/via-sdmmc.c WARN_ON(host->data); host 485 drivers/mmc/host/via-sdmmc.c BUG_ON(data->blksz > host->mmc->max_blk_size); host 486 drivers/mmc/host/via-sdmmc.c BUG_ON(data->blocks > host->mmc->max_blk_count); host 488 drivers/mmc/host/via-sdmmc.c host->data = data; host 490 drivers/mmc/host/via-sdmmc.c count = dma_map_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 495 drivers/mmc/host/via-sdmmc.c via_set_ddma(host, sg_dma_address(data->sg), sg_dma_len(data->sg), host 498 drivers/mmc/host/via-sdmmc.c addrbase = host->sdhc_mmiobase; host 507 drivers/mmc/host/via-sdmmc.c static void via_sdc_get_response(struct via_crdr_mmc_host *host, host 510 drivers/mmc/host/via-sdmmc.c void __iomem *addrbase = host->sdhc_mmiobase; host 549 drivers/mmc/host/via-sdmmc.c static void via_sdc_send_command(struct via_crdr_mmc_host *host, host 556 drivers/mmc/host/via-sdmmc.c WARN_ON(host->cmd); host 559 drivers/mmc/host/via-sdmmc.c mod_timer(&host->timer, jiffies + HZ); host 560 drivers/mmc/host/via-sdmmc.c host->cmd = cmd; host 583 drivers/mmc/host/via-sdmmc.c pr_err("%s: cmd->flag is not valid\n", mmc_hostname(host->mmc)); host 590 drivers/mmc/host/via-sdmmc.c via_sdc_preparedata(host, data); host 610 drivers/mmc/host/via-sdmmc.c if (cmd == host->mrq->stop) host 615 drivers/mmc/host/via-sdmmc.c addrbase = host->sdhc_mmiobase; host 620 drivers/mmc/host/via-sdmmc.c static void via_sdc_finish_data(struct via_crdr_mmc_host *host) host 624 drivers/mmc/host/via-sdmmc.c BUG_ON(!host->data); host 626 drivers/mmc/host/via-sdmmc.c data = host->data; host 627 drivers/mmc/host/via-sdmmc.c host->data = NULL; host 634 drivers/mmc/host/via-sdmmc.c dma_unmap_sg(mmc_dev(host->mmc), data->sg, data->sg_len, host 639 drivers/mmc/host/via-sdmmc.c via_sdc_send_command(host, data->stop); host 641 drivers/mmc/host/via-sdmmc.c tasklet_schedule(&host->finish_tasklet); host 644 drivers/mmc/host/via-sdmmc.c static void via_sdc_finish_command(struct via_crdr_mmc_host *host) host 646 drivers/mmc/host/via-sdmmc.c via_sdc_get_response(host, host->cmd); host 648 drivers/mmc/host/via-sdmmc.c host->cmd->error = 0; host 650 drivers/mmc/host/via-sdmmc.c if (!host->cmd->data) host 651 drivers/mmc/host/via-sdmmc.c tasklet_schedule(&host->finish_tasklet); host 653 drivers/mmc/host/via-sdmmc.c host->cmd = NULL; host 659 drivers/mmc/host/via-sdmmc.c struct via_crdr_mmc_host *host; host 663 drivers/mmc/host/via-sdmmc.c host = mmc_priv(mmc); host 665 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 667 drivers/mmc/host/via-sdmmc.c addrbase = host->pcictrl_mmiobase; host 670 drivers/mmc/host/via-sdmmc.c status = readw(host->sdhc_mmiobase + VIA_CRDR_SDSTATUS); host 672 drivers/mmc/host/via-sdmmc.c writew(status, host->sdhc_mmiobase + VIA_CRDR_SDSTATUS); host 674 drivers/mmc/host/via-sdmmc.c WARN_ON(host->mrq != NULL); host 675 drivers/mmc/host/via-sdmmc.c host->mrq = mrq; host 677 drivers/mmc/host/via-sdmmc.c status = readw(host->sdhc_mmiobase + VIA_CRDR_SDSTATUS); host 678 drivers/mmc/host/via-sdmmc.c if (!(status & VIA_CRDR_SDSTS_SLOTG) || host->reject) { host 679 drivers/mmc/host/via-sdmmc.c host->mrq->cmd->error = -ENOMEDIUM; host 680 drivers/mmc/host/via-sdmmc.c tasklet_schedule(&host->finish_tasklet); host 682 drivers/mmc/host/via-sdmmc.c via_sdc_send_command(host, mrq->cmd); host 685 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 688 drivers/mmc/host/via-sdmmc.c static void via_sdc_set_power(struct via_crdr_mmc_host *host, host 694 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 696 drivers/mmc/host/via-sdmmc.c host->power = (1 << power); host 698 drivers/mmc/host/via-sdmmc.c gatt = readb(host->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); host 699 drivers/mmc/host/via-sdmmc.c if (host->power == MMC_VDD_165_195) host 707 drivers/mmc/host/via-sdmmc.c writeb(gatt, host->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); host 709 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 711 drivers/mmc/host/via-sdmmc.c via_pwron_sleep(host); host 716 drivers/mmc/host/via-sdmmc.c struct via_crdr_mmc_host *host; host 722 drivers/mmc/host/via-sdmmc.c host = mmc_priv(mmc); host 724 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 726 drivers/mmc/host/via-sdmmc.c addrbase = host->sdhc_mmiobase; host 763 drivers/mmc/host/via-sdmmc.c addrbase = host->pcictrl_mmiobase; host 767 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 770 drivers/mmc/host/via-sdmmc.c via_sdc_set_power(host, ios->vdd, 1); host 772 drivers/mmc/host/via-sdmmc.c via_sdc_set_power(host, ios->vdd, 0); host 777 drivers/mmc/host/via-sdmmc.c struct via_crdr_mmc_host *host; host 781 drivers/mmc/host/via-sdmmc.c host = mmc_priv(mmc); host 783 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 785 drivers/mmc/host/via-sdmmc.c status = readw(host->sdhc_mmiobase + VIA_CRDR_SDSTATUS); host 787 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 798 drivers/mmc/host/via-sdmmc.c static void via_reset_pcictrl(struct via_crdr_mmc_host *host) host 803 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 805 drivers/mmc/host/via-sdmmc.c via_save_pcictrlreg(host); host 806 drivers/mmc/host/via-sdmmc.c via_save_sdcreg(host); host 808 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 811 drivers/mmc/host/via-sdmmc.c if (host->power == MMC_VDD_165_195) host 815 drivers/mmc/host/via-sdmmc.c writeb(gatt, host->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); host 816 drivers/mmc/host/via-sdmmc.c via_pwron_sleep(host); host 818 drivers/mmc/host/via-sdmmc.c writeb(gatt, host->pcictrl_mmiobase + VIA_CRDR_PCICLKGATT); host 821 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 823 drivers/mmc/host/via-sdmmc.c via_restore_pcictrlreg(host); host 824 drivers/mmc/host/via-sdmmc.c via_restore_sdcreg(host); host 826 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 829 drivers/mmc/host/via-sdmmc.c static void via_sdc_cmd_isr(struct via_crdr_mmc_host *host, u16 intmask) host 833 drivers/mmc/host/via-sdmmc.c if (!host->cmd) { host 836 drivers/mmc/host/via-sdmmc.c mmc_hostname(host->mmc), intmask); host 841 drivers/mmc/host/via-sdmmc.c host->cmd->error = -ETIMEDOUT; host 843 drivers/mmc/host/via-sdmmc.c host->cmd->error = -EILSEQ; host 845 drivers/mmc/host/via-sdmmc.c if (host->cmd->error) host 846 drivers/mmc/host/via-sdmmc.c tasklet_schedule(&host->finish_tasklet); host 848 drivers/mmc/host/via-sdmmc.c via_sdc_finish_command(host); host 851 drivers/mmc/host/via-sdmmc.c static void via_sdc_data_isr(struct via_crdr_mmc_host *host, u16 intmask) host 856 drivers/mmc/host/via-sdmmc.c host->data->error = -ETIMEDOUT; host 858 drivers/mmc/host/via-sdmmc.c host->data->error = -EILSEQ; host 860 drivers/mmc/host/via-sdmmc.c via_sdc_finish_data(host); host 959 drivers/mmc/host/via-sdmmc.c struct via_crdr_mmc_host *host; host 963 drivers/mmc/host/via-sdmmc.c host = (struct via_crdr_mmc_host *)param; host 965 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 967 drivers/mmc/host/via-sdmmc.c del_timer(&host->timer); host 968 drivers/mmc/host/via-sdmmc.c mrq = host->mrq; host 969 drivers/mmc/host/via-sdmmc.c host->mrq = NULL; host 970 drivers/mmc/host/via-sdmmc.c host->cmd = NULL; host 971 drivers/mmc/host/via-sdmmc.c host->data = NULL; host 973 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 975 drivers/mmc/host/via-sdmmc.c mmc_request_done(host->mmc, mrq); host 980 drivers/mmc/host/via-sdmmc.c struct via_crdr_mmc_host *host; host 985 drivers/mmc/host/via-sdmmc.c host = container_of(work, struct via_crdr_mmc_host, carddet_work); host 987 drivers/mmc/host/via-sdmmc.c addrbase = host->ddma_mmiobase; host 990 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 992 drivers/mmc/host/via-sdmmc.c addrbase = host->pcictrl_mmiobase; host 995 drivers/mmc/host/via-sdmmc.c addrbase = host->sdhc_mmiobase; host 998 drivers/mmc/host/via-sdmmc.c if (host->mrq) { host 1000 drivers/mmc/host/via-sdmmc.c mmc_hostname(host->mmc)); host 1001 drivers/mmc/host/via-sdmmc.c host->mrq->cmd->error = -ENOMEDIUM; host 1002 drivers/mmc/host/via-sdmmc.c tasklet_schedule(&host->finish_tasklet); host 1005 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 1007 drivers/mmc/host/via-sdmmc.c via_reset_pcictrl(host); host 1009 drivers/mmc/host/via-sdmmc.c spin_lock_irqsave(&host->lock, flags); host 1012 drivers/mmc/host/via-sdmmc.c spin_unlock_irqrestore(&host->lock, flags); host 1014 drivers/mmc/host/via-sdmmc.c via_print_pcictrl(host); host 1015 drivers/mmc/host/via-sdmmc.c via_print_sdchc(host); host 1017 drivers/mmc/host/via-sdmmc.c mmc_detect_change(host->mmc, msecs_to_jiffies(500)); host 1020 drivers/mmc/host/via-sdmmc.c static void via_init_mmc_host(struct via_crdr_mmc_host *host) host 1022 drivers/mmc/host/via-sdmmc.c struct mmc_host *mmc = host->mmc; host 1027 drivers/mmc/host/via-sdmmc.c timer_setup(&host->timer, via_sdc_timeout, 0); host 1029 drivers/mmc/host/via-sdmmc.c spin_lock_init(&host->lock); host 1046 drivers/mmc/host/via-sdmmc.c INIT_WORK(&host->carddet_work, via_sdc_card_detect); host 1048 drivers/mmc/host/via-sdmmc.c tasklet_init(&host->finish_tasklet, via_sdc_tasklet_finish, host 1049 drivers/mmc/host/via-sdmmc.c (unsigned long)host); host 1051 drivers/mmc/host/via-sdmmc.c addrbase = host->sdhc_mmiobase; host 1220 drivers/mmc/host/via-sdmmc.c static void via_init_sdc_pm(struct via_crdr_mmc_host *host) host 1227 drivers/mmc/host/via-sdmmc.c pm_sdhcreg = &(host->pm_sdhc_reg); host 1228 drivers/mmc/host/via-sdmmc.c addrbase = host->sdhc_mmiobase; host 1250 drivers/mmc/host/via-sdmmc.c via_print_pcictrl(host); host 1251 drivers/mmc/host/via-sdmmc.c via_print_sdchc(host); host 1256 drivers/mmc/host/via-sdmmc.c struct via_crdr_mmc_host *host; host 1258 drivers/mmc/host/via-sdmmc.c host = pci_get_drvdata(pcidev); host 1260 drivers/mmc/host/via-sdmmc.c via_save_pcictrlreg(host); host 1261 drivers/mmc/host/via-sdmmc.c via_save_sdcreg(host); host 82 drivers/mmc/host/wbsd.c static inline void wbsd_unlock_config(struct wbsd_host *host) host 84 drivers/mmc/host/wbsd.c BUG_ON(host->config == 0); host 86 drivers/mmc/host/wbsd.c outb(host->unlock_code, host->config); host 87 drivers/mmc/host/wbsd.c outb(host->unlock_code, host->config); host 90 drivers/mmc/host/wbsd.c static inline void wbsd_lock_config(struct wbsd_host *host) host 92 drivers/mmc/host/wbsd.c BUG_ON(host->config == 0); host 94 drivers/mmc/host/wbsd.c outb(LOCK_CODE, host->config); host 97 drivers/mmc/host/wbsd.c static inline void wbsd_write_config(struct wbsd_host *host, u8 reg, u8 value) host 99 drivers/mmc/host/wbsd.c BUG_ON(host->config == 0); host 101 drivers/mmc/host/wbsd.c outb(reg, host->config); host 102 drivers/mmc/host/wbsd.c outb(value, host->config + 1); host 105 drivers/mmc/host/wbsd.c static inline u8 wbsd_read_config(struct wbsd_host *host, u8 reg) host 107 drivers/mmc/host/wbsd.c BUG_ON(host->config == 0); host 109 drivers/mmc/host/wbsd.c outb(reg, host->config); host 110 drivers/mmc/host/wbsd.c return inb(host->config + 1); host 113 drivers/mmc/host/wbsd.c static inline void wbsd_write_index(struct wbsd_host *host, u8 index, u8 value) host 115 drivers/mmc/host/wbsd.c outb(index, host->base + WBSD_IDXR); host 116 drivers/mmc/host/wbsd.c outb(value, host->base + WBSD_DATAR); host 119 drivers/mmc/host/wbsd.c static inline u8 wbsd_read_index(struct wbsd_host *host, u8 index) host 121 drivers/mmc/host/wbsd.c outb(index, host->base + WBSD_IDXR); host 122 drivers/mmc/host/wbsd.c return inb(host->base + WBSD_DATAR); host 129 drivers/mmc/host/wbsd.c static void wbsd_init_device(struct wbsd_host *host) host 136 drivers/mmc/host/wbsd.c setup = wbsd_read_index(host, WBSD_IDX_SETUP); host 138 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_SETUP, setup); host 144 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_SETUP, setup); host 145 drivers/mmc/host/wbsd.c host->flags &= ~WBSD_FIGNORE_DETECT; host 150 drivers/mmc/host/wbsd.c host->clk = wbsd_read_index(host, WBSD_IDX_CLK); host 155 drivers/mmc/host/wbsd.c outb(WBSD_POWER_N, host->base + WBSD_CSR); host 160 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_TAAC, 0x7F); host 165 drivers/mmc/host/wbsd.c if (inb(host->base + WBSD_CSR) & WBSD_CARDPRESENT) host 166 drivers/mmc/host/wbsd.c host->flags |= WBSD_FCARD_PRESENT; host 168 drivers/mmc/host/wbsd.c host->flags &= ~WBSD_FCARD_PRESENT; host 180 drivers/mmc/host/wbsd.c outb(ier, host->base + WBSD_EIR); host 185 drivers/mmc/host/wbsd.c inb(host->base + WBSD_ISR); host 188 drivers/mmc/host/wbsd.c static void wbsd_reset(struct wbsd_host *host) host 192 drivers/mmc/host/wbsd.c pr_err("%s: Resetting chip\n", mmc_hostname(host->mmc)); host 197 drivers/mmc/host/wbsd.c setup = wbsd_read_index(host, WBSD_IDX_SETUP); host 199 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_SETUP, setup); host 202 drivers/mmc/host/wbsd.c static void wbsd_request_end(struct wbsd_host *host, struct mmc_request *mrq) host 206 drivers/mmc/host/wbsd.c if (host->dma >= 0) { host 211 drivers/mmc/host/wbsd.c disable_dma(host->dma); host 212 drivers/mmc/host/wbsd.c clear_dma_ff(host->dma); host 218 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_DMA, 0); host 221 drivers/mmc/host/wbsd.c host->mrq = NULL; host 226 drivers/mmc/host/wbsd.c spin_unlock(&host->lock); host 227 drivers/mmc/host/wbsd.c mmc_request_done(host->mmc, mrq); host 228 drivers/mmc/host/wbsd.c spin_lock(&host->lock); host 235 drivers/mmc/host/wbsd.c static inline void wbsd_init_sg(struct wbsd_host *host, struct mmc_data *data) host 240 drivers/mmc/host/wbsd.c host->cur_sg = data->sg; host 241 drivers/mmc/host/wbsd.c host->num_sg = data->sg_len; host 243 drivers/mmc/host/wbsd.c host->offset = 0; host 244 drivers/mmc/host/wbsd.c host->remain = host->cur_sg->length; host 247 drivers/mmc/host/wbsd.c static inline int wbsd_next_sg(struct wbsd_host *host) host 252 drivers/mmc/host/wbsd.c host->cur_sg++; host 253 drivers/mmc/host/wbsd.c host->num_sg--; host 258 drivers/mmc/host/wbsd.c if (host->num_sg > 0) { host 259 drivers/mmc/host/wbsd.c host->offset = 0; host 260 drivers/mmc/host/wbsd.c host->remain = host->cur_sg->length; host 263 drivers/mmc/host/wbsd.c return host->num_sg; host 266 drivers/mmc/host/wbsd.c static inline char *wbsd_map_sg(struct wbsd_host *host) host 268 drivers/mmc/host/wbsd.c return kmap_atomic(sg_page(host->cur_sg)) + host->cur_sg->offset; host 271 drivers/mmc/host/wbsd.c static inline void wbsd_sg_to_dma(struct wbsd_host *host, struct mmc_data *data) host 278 drivers/mmc/host/wbsd.c sg_copy_to_buffer(data->sg, data->sg_len, host->dma_buffer, len); host 281 drivers/mmc/host/wbsd.c static inline void wbsd_dma_to_sg(struct wbsd_host *host, struct mmc_data *data) host 288 drivers/mmc/host/wbsd.c sg_copy_from_buffer(data->sg, data->sg_len, host->dma_buffer, len); host 295 drivers/mmc/host/wbsd.c static inline void wbsd_get_short_reply(struct wbsd_host *host, host 301 drivers/mmc/host/wbsd.c if (wbsd_read_index(host, WBSD_IDX_RSPLEN) != WBSD_RSP_SHORT) { host 306 drivers/mmc/host/wbsd.c cmd->resp[0] = wbsd_read_index(host, WBSD_IDX_RESP12) << 24; host 307 drivers/mmc/host/wbsd.c cmd->resp[0] |= wbsd_read_index(host, WBSD_IDX_RESP13) << 16; host 308 drivers/mmc/host/wbsd.c cmd->resp[0] |= wbsd_read_index(host, WBSD_IDX_RESP14) << 8; host 309 drivers/mmc/host/wbsd.c cmd->resp[0] |= wbsd_read_index(host, WBSD_IDX_RESP15) << 0; host 310 drivers/mmc/host/wbsd.c cmd->resp[1] = wbsd_read_index(host, WBSD_IDX_RESP16) << 24; host 313 drivers/mmc/host/wbsd.c static inline void wbsd_get_long_reply(struct wbsd_host *host, host 321 drivers/mmc/host/wbsd.c if (wbsd_read_index(host, WBSD_IDX_RSPLEN) != WBSD_RSP_LONG) { host 328 drivers/mmc/host/wbsd.c wbsd_read_index(host, WBSD_IDX_RESP1 + i * 4) << 24; host 330 drivers/mmc/host/wbsd.c wbsd_read_index(host, WBSD_IDX_RESP2 + i * 4) << 16; host 332 drivers/mmc/host/wbsd.c wbsd_read_index(host, WBSD_IDX_RESP3 + i * 4) << 8; host 334 drivers/mmc/host/wbsd.c wbsd_read_index(host, WBSD_IDX_RESP4 + i * 4) << 0; host 338 drivers/mmc/host/wbsd.c static void wbsd_send_command(struct wbsd_host *host, struct mmc_command *cmd) host 348 drivers/mmc/host/wbsd.c host->isr = 0; host 353 drivers/mmc/host/wbsd.c outb(cmd->opcode, host->base + WBSD_CMDR); host 355 drivers/mmc/host/wbsd.c outb((cmd->arg >> (i * 8)) & 0xff, host->base + WBSD_CMDR); host 363 drivers/mmc/host/wbsd.c status = wbsd_read_index(host, WBSD_IDX_STATUS); host 373 drivers/mmc/host/wbsd.c isr = host->isr; host 387 drivers/mmc/host/wbsd.c wbsd_get_long_reply(host, cmd); host 389 drivers/mmc/host/wbsd.c wbsd_get_short_reply(host, cmd); host 398 drivers/mmc/host/wbsd.c static void wbsd_empty_fifo(struct wbsd_host *host) host 400 drivers/mmc/host/wbsd.c struct mmc_data *data = host->mrq->cmd->data; host 407 drivers/mmc/host/wbsd.c if (host->num_sg == 0) host 410 drivers/mmc/host/wbsd.c buffer = wbsd_map_sg(host) + host->offset; host 417 drivers/mmc/host/wbsd.c while (!((fsr = inb(host->base + WBSD_FSR)) & WBSD_FIFO_EMPTY)) { host 430 drivers/mmc/host/wbsd.c buffer[idx++] = inb(host->base + WBSD_DFR); host 431 drivers/mmc/host/wbsd.c host->offset++; host 432 drivers/mmc/host/wbsd.c host->remain--; host 439 drivers/mmc/host/wbsd.c if (host->remain == 0) { host 444 drivers/mmc/host/wbsd.c if (!wbsd_next_sg(host)) host 447 drivers/mmc/host/wbsd.c buffer = wbsd_map_sg(host); host 460 drivers/mmc/host/wbsd.c tasklet_schedule(&host->fifo_tasklet); host 463 drivers/mmc/host/wbsd.c static void wbsd_fill_fifo(struct wbsd_host *host) host 465 drivers/mmc/host/wbsd.c struct mmc_data *data = host->mrq->cmd->data; host 473 drivers/mmc/host/wbsd.c if (host->num_sg == 0) host 476 drivers/mmc/host/wbsd.c buffer = wbsd_map_sg(host) + host->offset; host 483 drivers/mmc/host/wbsd.c while (!((fsr = inb(host->base + WBSD_FSR)) & WBSD_FIFO_FULL)) { host 496 drivers/mmc/host/wbsd.c outb(buffer[idx], host->base + WBSD_DFR); host 497 drivers/mmc/host/wbsd.c host->offset++; host 498 drivers/mmc/host/wbsd.c host->remain--; host 505 drivers/mmc/host/wbsd.c if (host->remain == 0) { host 510 drivers/mmc/host/wbsd.c if (!wbsd_next_sg(host)) host 513 drivers/mmc/host/wbsd.c buffer = wbsd_map_sg(host); host 525 drivers/mmc/host/wbsd.c tasklet_schedule(&host->fifo_tasklet); host 528 drivers/mmc/host/wbsd.c static void wbsd_prepare_data(struct wbsd_host *host, struct mmc_data *data) host 545 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_TAAC, 127); host 547 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_TAAC, host 552 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_NSAC, 255); host 554 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_NSAC, data->timeout_clks); host 564 drivers/mmc/host/wbsd.c if (host->bus_width == MMC_BUS_WIDTH_1) { host 567 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_PBSMSB, (blksize >> 4) & 0xF0); host 568 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_PBSLSB, blksize & 0xFF); host 569 drivers/mmc/host/wbsd.c } else if (host->bus_width == MMC_BUS_WIDTH_4) { host 572 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_PBSMSB, host 574 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_PBSLSB, blksize & 0xFF); host 585 drivers/mmc/host/wbsd.c setup = wbsd_read_index(host, WBSD_IDX_SETUP); host 587 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_SETUP, setup); host 592 drivers/mmc/host/wbsd.c if (host->dma >= 0) { host 607 drivers/mmc/host/wbsd.c wbsd_sg_to_dma(host, data); host 613 drivers/mmc/host/wbsd.c disable_dma(host->dma); host 614 drivers/mmc/host/wbsd.c clear_dma_ff(host->dma); host 616 drivers/mmc/host/wbsd.c set_dma_mode(host->dma, DMA_MODE_READ & ~0x40); host 618 drivers/mmc/host/wbsd.c set_dma_mode(host->dma, DMA_MODE_WRITE & ~0x40); host 619 drivers/mmc/host/wbsd.c set_dma_addr(host->dma, host->dma_addr); host 620 drivers/mmc/host/wbsd.c set_dma_count(host->dma, size); host 622 drivers/mmc/host/wbsd.c enable_dma(host->dma); host 628 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_DMA, WBSD_DMA_ENABLE); host 634 drivers/mmc/host/wbsd.c host->firsterr = 1; host 639 drivers/mmc/host/wbsd.c wbsd_init_sg(host, data); host 644 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_DMA, 0); host 651 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_FIFOEN, host 654 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_FIFOEN, host 656 drivers/mmc/host/wbsd.c wbsd_fill_fifo(host); host 663 drivers/mmc/host/wbsd.c static void wbsd_finish_data(struct wbsd_host *host, struct mmc_data *data) host 669 drivers/mmc/host/wbsd.c WARN_ON(host->mrq == NULL); host 675 drivers/mmc/host/wbsd.c wbsd_send_command(host, data->stop); host 682 drivers/mmc/host/wbsd.c status = wbsd_read_index(host, WBSD_IDX_STATUS); host 688 drivers/mmc/host/wbsd.c if (host->dma >= 0) { host 692 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_DMA, 0); host 698 drivers/mmc/host/wbsd.c disable_dma(host->dma); host 699 drivers/mmc/host/wbsd.c clear_dma_ff(host->dma); host 700 drivers/mmc/host/wbsd.c count = get_dma_residue(host->dma); host 703 drivers/mmc/host/wbsd.c data->bytes_xfered = host->mrq->data->blocks * host 704 drivers/mmc/host/wbsd.c host->mrq->data->blksz - count; host 713 drivers/mmc/host/wbsd.c mmc_hostname(host->mmc), count); host 723 drivers/mmc/host/wbsd.c wbsd_dma_to_sg(host, data); host 732 drivers/mmc/host/wbsd.c wbsd_request_end(host, host->mrq); host 743 drivers/mmc/host/wbsd.c struct wbsd_host *host = mmc_priv(mmc); host 749 drivers/mmc/host/wbsd.c spin_lock_bh(&host->lock); host 751 drivers/mmc/host/wbsd.c BUG_ON(host->mrq != NULL); host 755 drivers/mmc/host/wbsd.c host->mrq = mrq; host 760 drivers/mmc/host/wbsd.c if (!(host->flags & WBSD_FCARD_PRESENT)) { host 793 drivers/mmc/host/wbsd.c mmc_hostname(host->mmc), cmd->opcode); host 804 drivers/mmc/host/wbsd.c wbsd_prepare_data(host, cmd->data); host 810 drivers/mmc/host/wbsd.c wbsd_send_command(host, cmd); host 821 drivers/mmc/host/wbsd.c if (host->dma == -1) host 822 drivers/mmc/host/wbsd.c tasklet_schedule(&host->fifo_tasklet); host 824 drivers/mmc/host/wbsd.c spin_unlock_bh(&host->lock); host 830 drivers/mmc/host/wbsd.c wbsd_request_end(host, mrq); host 832 drivers/mmc/host/wbsd.c spin_unlock_bh(&host->lock); host 837 drivers/mmc/host/wbsd.c struct wbsd_host *host = mmc_priv(mmc); host 840 drivers/mmc/host/wbsd.c spin_lock_bh(&host->lock); host 847 drivers/mmc/host/wbsd.c wbsd_init_device(host); host 862 drivers/mmc/host/wbsd.c if (clk != host->clk) { host 863 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_CLK, clk); host 864 drivers/mmc/host/wbsd.c host->clk = clk; host 871 drivers/mmc/host/wbsd.c pwr = inb(host->base + WBSD_CSR); host 873 drivers/mmc/host/wbsd.c outb(pwr, host->base + WBSD_CSR); host 881 drivers/mmc/host/wbsd.c setup = wbsd_read_index(host, WBSD_IDX_SETUP); host 885 drivers/mmc/host/wbsd.c host->flags |= WBSD_FIGNORE_DETECT; host 894 drivers/mmc/host/wbsd.c mod_timer(&host->ignore_timer, jiffies + HZ / 100); host 897 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_SETUP, setup); host 903 drivers/mmc/host/wbsd.c host->bus_width = ios->bus_width; host 905 drivers/mmc/host/wbsd.c spin_unlock_bh(&host->lock); host 910 drivers/mmc/host/wbsd.c struct wbsd_host *host = mmc_priv(mmc); host 913 drivers/mmc/host/wbsd.c spin_lock_bh(&host->lock); host 915 drivers/mmc/host/wbsd.c csr = inb(host->base + WBSD_CSR); host 917 drivers/mmc/host/wbsd.c outb(csr, host->base + WBSD_CSR); host 921 drivers/mmc/host/wbsd.c csr = inb(host->base + WBSD_CSR); host 923 drivers/mmc/host/wbsd.c outb(csr, host->base + WBSD_CSR); host 925 drivers/mmc/host/wbsd.c spin_unlock_bh(&host->lock); host 948 drivers/mmc/host/wbsd.c struct wbsd_host *host = from_timer(host, t, ignore_timer); host 950 drivers/mmc/host/wbsd.c BUG_ON(host == NULL); host 954 drivers/mmc/host/wbsd.c spin_lock_bh(&host->lock); host 956 drivers/mmc/host/wbsd.c host->flags &= ~WBSD_FIGNORE_DETECT; host 962 drivers/mmc/host/wbsd.c tasklet_schedule(&host->card_tasklet); host 964 drivers/mmc/host/wbsd.c spin_unlock_bh(&host->lock); host 971 drivers/mmc/host/wbsd.c static inline struct mmc_data *wbsd_get_data(struct wbsd_host *host) host 973 drivers/mmc/host/wbsd.c WARN_ON(!host->mrq); host 974 drivers/mmc/host/wbsd.c if (!host->mrq) host 977 drivers/mmc/host/wbsd.c WARN_ON(!host->mrq->cmd); host 978 drivers/mmc/host/wbsd.c if (!host->mrq->cmd) host 981 drivers/mmc/host/wbsd.c WARN_ON(!host->mrq->cmd->data); host 982 drivers/mmc/host/wbsd.c if (!host->mrq->cmd->data) host 985 drivers/mmc/host/wbsd.c return host->mrq->cmd->data; host 990 drivers/mmc/host/wbsd.c struct wbsd_host *host = (struct wbsd_host *)param; host 994 drivers/mmc/host/wbsd.c spin_lock(&host->lock); host 996 drivers/mmc/host/wbsd.c if (host->flags & WBSD_FIGNORE_DETECT) { host 997 drivers/mmc/host/wbsd.c spin_unlock(&host->lock); host 1001 drivers/mmc/host/wbsd.c csr = inb(host->base + WBSD_CSR); host 1005 drivers/mmc/host/wbsd.c if (!(host->flags & WBSD_FCARD_PRESENT)) { host 1007 drivers/mmc/host/wbsd.c host->flags |= WBSD_FCARD_PRESENT; host 1011 drivers/mmc/host/wbsd.c } else if (host->flags & WBSD_FCARD_PRESENT) { host 1013 drivers/mmc/host/wbsd.c host->flags &= ~WBSD_FCARD_PRESENT; host 1015 drivers/mmc/host/wbsd.c if (host->mrq) { host 1017 drivers/mmc/host/wbsd.c mmc_hostname(host->mmc)); host 1018 drivers/mmc/host/wbsd.c wbsd_reset(host); host 1020 drivers/mmc/host/wbsd.c host->mrq->cmd->error = -ENOMEDIUM; host 1021 drivers/mmc/host/wbsd.c tasklet_schedule(&host->finish_tasklet); host 1031 drivers/mmc/host/wbsd.c spin_unlock(&host->lock); host 1034 drivers/mmc/host/wbsd.c mmc_detect_change(host->mmc, msecs_to_jiffies(delay)); host 1039 drivers/mmc/host/wbsd.c struct wbsd_host *host = (struct wbsd_host *)param; host 1042 drivers/mmc/host/wbsd.c spin_lock(&host->lock); host 1044 drivers/mmc/host/wbsd.c if (!host->mrq) host 1047 drivers/mmc/host/wbsd.c data = wbsd_get_data(host); host 1052 drivers/mmc/host/wbsd.c wbsd_fill_fifo(host); host 1054 drivers/mmc/host/wbsd.c wbsd_empty_fifo(host); host 1059 drivers/mmc/host/wbsd.c if (host->num_sg == 0) { host 1060 drivers/mmc/host/wbsd.c wbsd_write_index(host, WBSD_IDX_FIFOEN, 0); host 1061 drivers/mmc/host/wbsd.c tasklet_schedule(&host->finish_tasklet); host 1065 drivers/mmc/host/wbsd.c spin_unlock(&host->lock); host 1070 drivers/mmc/host/wbsd.c struct wbsd_host *host = (struct wbsd_host *)param; host 1073 drivers/mmc/host/wbsd.c spin_lock(&host->lock); host 1075 drivers/mmc/host/wbsd.c if (!host->mrq) host 1078 drivers/mmc/host/wbsd.c data = wbsd_get_data(host); host 1086 drivers/mmc/host/wbsd.c tasklet_schedule(&host->finish_tasklet); host 1089 drivers/mmc/host/wbsd.c spin_unlock(&host->lock); host 1094 drivers/mmc/host/wbsd.c struct wbsd_host *host = (struct wbsd_host *)param; host 1097 drivers/mmc/host/wbsd.c spin_lock(&host->lock); host 1099 drivers/mmc/host/wbsd.c if (!host->mrq) host 1102 drivers/mmc/host/wbsd.c data = wbsd_get_data(host); host 1110 drivers/mmc/host/wbsd.c tasklet_schedule(&host->finish_tasklet); host 1113 drivers/mmc/host/wbsd.c spin_unlock(&host->lock); host 1118 drivers/mmc/host/wbsd.c struct wbsd_host *host = (struct wbsd_host *)param; host 1121 drivers/mmc/host/wbsd.c spin_lock(&host->lock); host 1123 drivers/mmc/host/wbsd.c WARN_ON(!host->mrq); host 1124 drivers/mmc/host/wbsd.c if (!host->mrq) host 1127 drivers/mmc/host/wbsd.c data = wbsd_get_data(host); host 1131 drivers/mmc/host/wbsd.c wbsd_finish_data(host, data); host 1134 drivers/mmc/host/wbsd.c spin_unlock(&host->lock); host 1143 drivers/mmc/host/wbsd.c struct wbsd_host *host = dev_id; host 1146 drivers/mmc/host/wbsd.c isr = inb(host->base + WBSD_ISR); host 1154 drivers/mmc/host/wbsd.c host->isr |= isr; host 1160 drivers/mmc/host/wbsd.c tasklet_schedule(&host->card_tasklet); host 1162 drivers/mmc/host/wbsd.c tasklet_schedule(&host->fifo_tasklet); host 1164 drivers/mmc/host/wbsd.c tasklet_hi_schedule(&host->crc_tasklet); host 1166 drivers/mmc/host/wbsd.c tasklet_hi_schedule(&host->timeout_tasklet); host 1168 drivers/mmc/host/wbsd.c tasklet_schedule(&host->finish_tasklet); host 1186 drivers/mmc/host/wbsd.c struct wbsd_host *host; host 1195 drivers/mmc/host/wbsd.c host = mmc_priv(mmc); host 1196 drivers/mmc/host/wbsd.c host->mmc = mmc; host 1198 drivers/mmc/host/wbsd.c host->dma = -1; host 1209 drivers/mmc/host/wbsd.c spin_lock_init(&host->lock); host 1214 drivers/mmc/host/wbsd.c timer_setup(&host->ignore_timer, wbsd_reset_ignore, 0); host 1253 drivers/mmc/host/wbsd.c struct wbsd_host *host; host 1259 drivers/mmc/host/wbsd.c host = mmc_priv(mmc); host 1260 drivers/mmc/host/wbsd.c BUG_ON(host == NULL); host 1262 drivers/mmc/host/wbsd.c del_timer_sync(&host->ignore_timer); host 1273 drivers/mmc/host/wbsd.c static int wbsd_scan(struct wbsd_host *host) host 1289 drivers/mmc/host/wbsd.c host->config = config_ports[i]; host 1290 drivers/mmc/host/wbsd.c host->unlock_code = unlock_codes[j]; host 1292 drivers/mmc/host/wbsd.c wbsd_unlock_config(host); host 1300 drivers/mmc/host/wbsd.c wbsd_lock_config(host); host 1304 drivers/mmc/host/wbsd.c host->chip_id = id; host 1319 drivers/mmc/host/wbsd.c host->config = 0; host 1320 drivers/mmc/host/wbsd.c host->unlock_code = 0; host 1329 drivers/mmc/host/wbsd.c static int wbsd_request_region(struct wbsd_host *host, int base) host 1337 drivers/mmc/host/wbsd.c host->base = base; host 1342 drivers/mmc/host/wbsd.c static void wbsd_release_regions(struct wbsd_host *host) host 1344 drivers/mmc/host/wbsd.c if (host->base) host 1345 drivers/mmc/host/wbsd.c release_region(host->base, 8); host 1347 drivers/mmc/host/wbsd.c host->base = 0; host 1349 drivers/mmc/host/wbsd.c if (host->config) host 1350 drivers/mmc/host/wbsd.c release_region(host->config, 2); host 1352 drivers/mmc/host/wbsd.c host->config = 0; host 1359 drivers/mmc/host/wbsd.c static void wbsd_request_dma(struct wbsd_host *host, int dma) host 1371 drivers/mmc/host/wbsd.c host->dma_buffer = kmalloc(WBSD_DMA_SIZE, host 1373 drivers/mmc/host/wbsd.c if (!host->dma_buffer) host 1379 drivers/mmc/host/wbsd.c host->dma_addr = dma_map_single(mmc_dev(host->mmc), host->dma_buffer, host 1381 drivers/mmc/host/wbsd.c if (dma_mapping_error(mmc_dev(host->mmc), host->dma_addr)) host 1387 drivers/mmc/host/wbsd.c if ((host->dma_addr & 0xffff) != 0) host 1392 drivers/mmc/host/wbsd.c else if (host->dma_addr >= 0x1000000) host 1395 drivers/mmc/host/wbsd.c host->dma = dma; host 1405 drivers/mmc/host/wbsd.c dma_unmap_single(mmc_dev(host->mmc), host->dma_addr, host 1407 drivers/mmc/host/wbsd.c host->dma_addr = 0; host 1410 drivers/mmc/host/wbsd.c kfree(host->dma_buffer); host 1411 drivers/mmc/host/wbsd.c host->dma_buffer = NULL; host 1421 drivers/mmc/host/wbsd.c static void wbsd_release_dma(struct wbsd_host *host) host 1426 drivers/mmc/host/wbsd.c if (host->dma_buffer) { host 1427 drivers/mmc/host/wbsd.c dma_unmap_single(mmc_dev(host->mmc), host->dma_addr, host 1429 drivers/mmc/host/wbsd.c kfree(host->dma_buffer); host 1431 drivers/mmc/host/wbsd.c if (host->dma >= 0) host 1432 drivers/mmc/host/wbsd.c free_dma(host->dma); host 1434 drivers/mmc/host/wbsd.c host->dma = -1; host 1435 drivers/mmc/host/wbsd.c host->dma_buffer = NULL; host 1436 drivers/mmc/host/wbsd.c host->dma_addr = 0; host 1443 drivers/mmc/host/wbsd.c static int wbsd_request_irq(struct wbsd_host *host, int irq) host 1450 drivers/mmc/host/wbsd.c tasklet_init(&host->card_tasklet, wbsd_tasklet_card, host 1451 drivers/mmc/host/wbsd.c (unsigned long)host); host 1452 drivers/mmc/host/wbsd.c tasklet_init(&host->fifo_tasklet, wbsd_tasklet_fifo, host 1453 drivers/mmc/host/wbsd.c (unsigned long)host); host 1454 drivers/mmc/host/wbsd.c tasklet_init(&host->crc_tasklet, wbsd_tasklet_crc, host 1455 drivers/mmc/host/wbsd.c (unsigned long)host); host 1456 drivers/mmc/host/wbsd.c tasklet_init(&host->timeout_tasklet, wbsd_tasklet_timeout, host 1457 drivers/mmc/host/wbsd.c (unsigned long)host); host 1458 drivers/mmc/host/wbsd.c tasklet_init(&host->finish_tasklet, wbsd_tasklet_finish, host 1459 drivers/mmc/host/wbsd.c (unsigned long)host); host 1464 drivers/mmc/host/wbsd.c ret = request_irq(irq, wbsd_irq, IRQF_SHARED, DRIVER_NAME, host); host 1468 drivers/mmc/host/wbsd.c host->irq = irq; host 1473 drivers/mmc/host/wbsd.c static void wbsd_release_irq(struct wbsd_host *host) host 1475 drivers/mmc/host/wbsd.c if (!host->irq) host 1478 drivers/mmc/host/wbsd.c free_irq(host->irq, host); host 1480 drivers/mmc/host/wbsd.c host->irq = 0; host 1482 drivers/mmc/host/wbsd.c tasklet_kill(&host->card_tasklet); host 1483 drivers/mmc/host/wbsd.c tasklet_kill(&host->fifo_tasklet); host 1484 drivers/mmc/host/wbsd.c tasklet_kill(&host->crc_tasklet); host 1485 drivers/mmc/host/wbsd.c tasklet_kill(&host->timeout_tasklet); host 1486 drivers/mmc/host/wbsd.c tasklet_kill(&host->finish_tasklet); host 1493 drivers/mmc/host/wbsd.c static int wbsd_request_resources(struct wbsd_host *host, host 1501 drivers/mmc/host/wbsd.c ret = wbsd_request_region(host, base); host 1508 drivers/mmc/host/wbsd.c ret = wbsd_request_irq(host, irq); host 1515 drivers/mmc/host/wbsd.c wbsd_request_dma(host, dma); host 1524 drivers/mmc/host/wbsd.c static void wbsd_release_resources(struct wbsd_host *host) host 1526 drivers/mmc/host/wbsd.c wbsd_release_dma(host); host 1527 drivers/mmc/host/wbsd.c wbsd_release_irq(host); host 1528 drivers/mmc/host/wbsd.c wbsd_release_regions(host); host 1535 drivers/mmc/host/wbsd.c static void wbsd_chip_config(struct wbsd_host *host) host 1537 drivers/mmc/host/wbsd.c wbsd_unlock_config(host); host 1542 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_SWRST, 1); host 1543 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_SWRST, 0); host 1548 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_DEVICE, DEVICE_SD); host 1553 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_PINS, WBSD_PINS_DETECT_GP11); host 1558 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_PORT_HI, host->base >> 8); host 1559 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_PORT_LO, host->base & 0xff); host 1561 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_IRQ, host->irq); host 1563 drivers/mmc/host/wbsd.c if (host->dma >= 0) host 1564 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_DRQ, host->dma); host 1569 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_ENABLE, 1); host 1570 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_POWER, 0x20); host 1572 drivers/mmc/host/wbsd.c wbsd_lock_config(host); host 1579 drivers/mmc/host/wbsd.c static int wbsd_chip_validate(struct wbsd_host *host) host 1583 drivers/mmc/host/wbsd.c wbsd_unlock_config(host); host 1588 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_DEVICE, DEVICE_SD); host 1593 drivers/mmc/host/wbsd.c base = wbsd_read_config(host, WBSD_CONF_PORT_HI) << 8; host 1594 drivers/mmc/host/wbsd.c base |= wbsd_read_config(host, WBSD_CONF_PORT_LO); host 1596 drivers/mmc/host/wbsd.c irq = wbsd_read_config(host, WBSD_CONF_IRQ); host 1598 drivers/mmc/host/wbsd.c dma = wbsd_read_config(host, WBSD_CONF_DRQ); host 1600 drivers/mmc/host/wbsd.c wbsd_lock_config(host); host 1605 drivers/mmc/host/wbsd.c if (base != host->base) host 1607 drivers/mmc/host/wbsd.c if (irq != host->irq) host 1609 drivers/mmc/host/wbsd.c if ((dma != host->dma) && (host->dma != -1)) host 1619 drivers/mmc/host/wbsd.c static void wbsd_chip_poweroff(struct wbsd_host *host) host 1621 drivers/mmc/host/wbsd.c wbsd_unlock_config(host); host 1623 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_DEVICE, DEVICE_SD); host 1624 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_ENABLE, 0); host 1626 drivers/mmc/host/wbsd.c wbsd_lock_config(host); host 1638 drivers/mmc/host/wbsd.c struct wbsd_host *host = NULL; host 1647 drivers/mmc/host/wbsd.c host = mmc_priv(mmc); host 1652 drivers/mmc/host/wbsd.c ret = wbsd_scan(host); host 1665 drivers/mmc/host/wbsd.c ret = wbsd_request_resources(host, base, irq, dma); host 1667 drivers/mmc/host/wbsd.c wbsd_release_resources(host); host 1676 drivers/mmc/host/wbsd.c if ((host->config != 0) && !wbsd_chip_validate(host)) { host 1678 drivers/mmc/host/wbsd.c wbsd_chip_config(host); host 1681 drivers/mmc/host/wbsd.c wbsd_chip_config(host); host 1688 drivers/mmc/host/wbsd.c if (host->config) { host 1689 drivers/mmc/host/wbsd.c wbsd_unlock_config(host); host 1690 drivers/mmc/host/wbsd.c wbsd_write_config(host, WBSD_CONF_PME, 0xA0); host 1691 drivers/mmc/host/wbsd.c wbsd_lock_config(host); host 1702 drivers/mmc/host/wbsd.c wbsd_init_device(host); host 1707 drivers/mmc/host/wbsd.c if (host->chip_id != 0) host 1708 drivers/mmc/host/wbsd.c printk(" id %x", (int)host->chip_id); host 1709 drivers/mmc/host/wbsd.c printk(" at 0x%x irq %d", (int)host->base, (int)host->irq); host 1710 drivers/mmc/host/wbsd.c if (host->dma >= 0) host 1711 drivers/mmc/host/wbsd.c printk(" dma %d", (int)host->dma); host 1724 drivers/mmc/host/wbsd.c struct wbsd_host *host; host 1729 drivers/mmc/host/wbsd.c host = mmc_priv(mmc); host 1737 drivers/mmc/host/wbsd.c wbsd_chip_poweroff(host); host 1739 drivers/mmc/host/wbsd.c wbsd_release_resources(host); host 1804 drivers/mmc/host/wbsd.c struct wbsd_host *host; host 1811 drivers/mmc/host/wbsd.c host = mmc_priv(mmc); host 1813 drivers/mmc/host/wbsd.c wbsd_chip_poweroff(host); host 1820 drivers/mmc/host/wbsd.c struct wbsd_host *host; host 1827 drivers/mmc/host/wbsd.c host = mmc_priv(mmc); host 1829 drivers/mmc/host/wbsd.c wbsd_chip_config(host); host 1836 drivers/mmc/host/wbsd.c wbsd_init_device(host); host 1856 drivers/mmc/host/wbsd.c struct wbsd_host *host; host 1863 drivers/mmc/host/wbsd.c host = mmc_priv(mmc); host 1868 drivers/mmc/host/wbsd.c if (host->config != 0) { host 1869 drivers/mmc/host/wbsd.c if (!wbsd_chip_validate(host)) { host 1871 drivers/mmc/host/wbsd.c wbsd_chip_config(host); host 1880 drivers/mmc/host/wbsd.c wbsd_init_device(host); host 683 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 684 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 687 drivers/mtd/nand/raw/brcmnand/brcmnand.c (host->cs << 16) | ((addr >> 32) & 0xffff)); host 719 drivers/mtd/nand/raw/brcmnand/brcmnand.c static void brcmnand_wr_corr_thresh(struct brcmnand_host *host, u8 val) host 721 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 724 drivers/mtd/nand/raw/brcmnand/brcmnand.c int cs = host->cs; host 804 drivers/mtd/nand/raw/brcmnand/brcmnand.c static void brcmnand_set_ecc_enabled(struct brcmnand_host *host, int en) host 806 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 807 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_ACC_CONTROL); host 813 drivers/mtd/nand/raw/brcmnand/brcmnand.c acc_control |= host->hwcfg.ecc_level host 835 drivers/mtd/nand/raw/brcmnand/brcmnand.c static int brcmnand_get_sector_size_1k(struct brcmnand_host *host) host 837 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 839 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 acc_control_offs = brcmnand_cs_offset(ctrl, host->cs, host 848 drivers/mtd/nand/raw/brcmnand/brcmnand.c static void brcmnand_set_sector_size_1k(struct brcmnand_host *host, int val) host 850 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 852 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 acc_control_offs = brcmnand_cs_offset(ctrl, host->cs, host 984 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 985 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_cfg *cfg = &host->hwcfg; host 1002 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1003 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_cfg *cfg = &host->hwcfg; host 1042 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1043 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_cfg *cfg = &host->hwcfg; host 1060 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1061 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_cfg *cfg = &host->hwcfg; host 1086 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1087 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_cfg *cfg = &host->hwcfg; host 1115 drivers/mtd/nand/raw/brcmnand/brcmnand.c static int brcmstb_choose_ecc_layout(struct brcmnand_host *host) host 1117 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_cfg *p = &host->hwcfg; host 1118 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct mtd_info *mtd = nand_to_mtd(&host->chip); host 1119 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct nand_ecc_ctrl *ecc = &host->chip.ecc; host 1127 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (is_hamming_ecc(host->ctrl, p)) { host 1146 drivers/mtd/nand/raw/brcmnand/brcmnand.c dev_err(&host->pdev->dev, host 1158 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1159 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1193 drivers/mtd/nand/raw/brcmnand/brcmnand.c dev_err_ratelimited(&host->pdev->dev, host 1320 drivers/mtd/nand/raw/brcmnand/brcmnand.c static void brcmnand_send_cmd(struct brcmnand_host *host, int cmd) host 1322 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1353 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1354 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1378 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1379 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1410 drivers/mtd/nand/raw/brcmnand/brcmnand.c static int brcmnand_low_level_op(struct brcmnand_host *host, host 1414 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct nand_chip *chip = &host->chip; host 1415 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1445 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_send_cmd(host, CMD_LOW_LEVEL_OP); host 1453 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1454 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1468 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->last_cmd = command; host 1469 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->last_byte = 0; host 1470 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->last_addr = addr; host 1494 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_low_level_op(host, LL_OP_CMD, command, false); host 1495 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_low_level_op(host, LL_OP_ADDR, column, false); host 1504 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (brcmnand_get_sector_size_1k(host)) { host 1505 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.sector_size_1k = host 1506 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_get_sector_size_1k(host); host 1507 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_sector_size_1k(host, 0); host 1516 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_send_cmd(host, native_cmd); host 1541 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (host->hwcfg.sector_size_1k) host 1542 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_sector_size_1k(host, host 1543 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.sector_size_1k); host 1553 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1554 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1558 drivers/mtd/nand/raw/brcmnand/brcmnand.c switch (host->last_cmd) { host 1560 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (host->last_byte < 4) host 1562 drivers/mtd/nand/raw/brcmnand/brcmnand.c (24 - (host->last_byte << 3)); host 1563 drivers/mtd/nand/raw/brcmnand/brcmnand.c else if (host->last_byte < 8) host 1565 drivers/mtd/nand/raw/brcmnand/brcmnand.c (56 - (host->last_byte << 3)); host 1569 drivers/mtd/nand/raw/brcmnand/brcmnand.c ret = oob_reg_read(ctrl, host->last_byte); host 1581 drivers/mtd/nand/raw/brcmnand/brcmnand.c addr = host->last_addr + host->last_byte; host 1585 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (host->last_byte > 0 && offs == 0) host 1591 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (host->last_byte >= ONFI_SUBFEATURE_PARAM_LEN) { host 1594 drivers/mtd/nand/raw/brcmnand/brcmnand.c bool last = host->last_byte == host 1596 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_low_level_op(host, LL_OP_RD, 0, last); host 1602 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->last_byte++; host 1619 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1621 drivers/mtd/nand/raw/brcmnand/brcmnand.c switch (host->last_cmd) { host 1624 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_low_level_op(host, LL_OP_WR, buf[i], host 1639 drivers/mtd/nand/raw/brcmnand/brcmnand.c static int brcmnand_fill_dma_desc(struct brcmnand_host *host, host 1661 drivers/mtd/nand/raw/brcmnand/brcmnand.c desc->cs = host->cs; host 1669 drivers/mtd/nand/raw/brcmnand/brcmnand.c static void brcmnand_dma_run(struct brcmnand_host *host, dma_addr_t desc) host 1671 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1694 drivers/mtd/nand/raw/brcmnand/brcmnand.c static int brcmnand_dma_trans(struct brcmnand_host *host, u64 addr, u32 *buf, host 1697 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1707 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_fill_dma_desc(host, ctrl->dma_desc, addr, buf_pa, len, host 1710 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_dma_run(host, ctrl->dma_pa); host 1729 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1730 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1738 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_send_cmd(host, CMD_PAGE_READ); host 1753 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.sector_size_1k); host 1825 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1826 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1837 drivers/mtd/nand/raw/brcmnand/brcmnand.c err = brcmnand_dma_trans(host, addr, buf, trans * FC_BYTES, host 1906 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1911 drivers/mtd/nand/raw/brcmnand/brcmnand.c return brcmnand_read(mtd, chip, host->last_addr, host 1918 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1925 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 0); host 1926 drivers/mtd/nand/raw/brcmnand/brcmnand.c ret = brcmnand_read(mtd, chip, host->last_addr, host 1928 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 1); host 1944 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1946 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 0); host 1950 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 1); host 1957 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 1958 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 1975 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (brcmnand_dma_trans(host, addr, (u32 *)buf, host 2000 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.sector_size_1k); host 2004 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_send_cmd(host, CMD_PROGRAM_PAGE); host 2023 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 2027 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_write(mtd, chip, host->last_addr, (const u32 *)buf, oob); host 2036 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 2040 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 0); host 2041 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_write(mtd, chip, host->last_addr, (const u32 *)buf, oob); host 2042 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 1); host 2057 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 2060 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 0); host 2063 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 1); host 2072 drivers/mtd/nand/raw/brcmnand/brcmnand.c static int brcmnand_set_cfg(struct brcmnand_host *host, host 2075 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 2076 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct nand_chip *chip = &host->chip; host 2077 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 cfg_offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_CFG); host 2078 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 cfg_ext_offs = brcmnand_cs_offset(ctrl, host->cs, host 2080 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 acc_control_offs = brcmnand_cs_offset(ctrl, host->cs, host 2162 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_sector_size_1k(host, cfg->sector_size_1k); host 2165 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_wr_corr_thresh(host, DIV_ROUND_UP(chip->ecc.strength * 3, 4)); host 2170 drivers/mtd/nand/raw/brcmnand/brcmnand.c static void brcmnand_print_cfg(struct brcmnand_host *host, host 2182 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (is_hamming_ecc(host->ctrl, cfg)) host 2202 drivers/mtd/nand/raw/brcmnand/brcmnand.c static int brcmnand_setup_dev(struct brcmnand_host *host) host 2204 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct mtd_info *mtd = nand_to_mtd(&host->chip); host 2205 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct nand_chip *chip = &host->chip; host 2206 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 2207 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_cfg *cfg = &host->hwcfg; host 2306 drivers/mtd/nand/raw/brcmnand/brcmnand.c ret = brcmnand_set_cfg(host, cfg); host 2310 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_set_ecc_enabled(host, 1); host 2312 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_print_cfg(host, msg, cfg); host 2316 drivers/mtd/nand/raw/brcmnand/brcmnand.c offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_ACC_CONTROL); host 2336 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host = nand_get_controller_data(chip); host 2350 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (brcmnand_setup_dev(host)) host 2353 drivers/mtd/nand/raw/brcmnand/brcmnand.c chip->ecc.size = host->hwcfg.sector_size_1k ? 1024 : 512; host 2358 drivers/mtd/nand/raw/brcmnand/brcmnand.c ret = brcmstb_choose_ecc_layout(host); host 2367 drivers/mtd/nand/raw/brcmnand/brcmnand.c static int brcmnand_init_cs(struct brcmnand_host *host, struct device_node *dn) host 2369 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 2370 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct platform_device *pdev = host->pdev; host 2376 drivers/mtd/nand/raw/brcmnand/brcmnand.c ret = of_property_read_u32(dn, "reg", &host->cs); host 2382 drivers/mtd/nand/raw/brcmnand/brcmnand.c mtd = nand_to_mtd(&host->chip); host 2383 drivers/mtd/nand/raw/brcmnand/brcmnand.c chip = &host->chip; host 2386 drivers/mtd/nand/raw/brcmnand/brcmnand.c nand_set_controller_data(chip, host); host 2388 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->cs); host 2419 drivers/mtd/nand/raw/brcmnand/brcmnand.c cfg_offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_CFG); host 2434 drivers/mtd/nand/raw/brcmnand/brcmnand.c static void brcmnand_save_restore_cs_config(struct brcmnand_host *host, host 2437 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_controller *ctrl = host->ctrl; host 2438 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 cfg_offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_CFG); host 2439 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 cfg_ext_offs = brcmnand_cs_offset(ctrl, host->cs, host 2441 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 acc_control_offs = brcmnand_cs_offset(ctrl, host->cs, host 2443 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 t1_offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_TIMING1); host 2444 drivers/mtd/nand/raw/brcmnand/brcmnand.c u16 t2_offs = brcmnand_cs_offset(ctrl, host->cs, BRCMNAND_CS_TIMING2); host 2447 drivers/mtd/nand/raw/brcmnand/brcmnand.c nand_writereg(ctrl, cfg_offs, host->hwcfg.config); host 2450 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.config_ext); host 2451 drivers/mtd/nand/raw/brcmnand/brcmnand.c nand_writereg(ctrl, acc_control_offs, host->hwcfg.acc_control); host 2452 drivers/mtd/nand/raw/brcmnand/brcmnand.c nand_writereg(ctrl, t1_offs, host->hwcfg.timing_1); host 2453 drivers/mtd/nand/raw/brcmnand/brcmnand.c nand_writereg(ctrl, t2_offs, host->hwcfg.timing_2); host 2455 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.config = nand_readreg(ctrl, cfg_offs); host 2457 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.config_ext = host 2459 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.acc_control = nand_readreg(ctrl, acc_control_offs); host 2460 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.timing_1 = nand_readreg(ctrl, t1_offs); host 2461 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->hwcfg.timing_2 = nand_readreg(ctrl, t2_offs); host 2468 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host; host 2470 drivers/mtd/nand/raw/brcmnand/brcmnand.c list_for_each_entry(host, &ctrl->host_list, node) host 2471 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_save_restore_cs_config(host, 0); host 2487 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host; host 2504 drivers/mtd/nand/raw/brcmnand/brcmnand.c list_for_each_entry(host, &ctrl->host_list, node) { host 2505 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct nand_chip *chip = &host->chip; host 2507 drivers/mtd/nand/raw/brcmnand/brcmnand.c brcmnand_save_restore_cs_config(host, 1); host 2701 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host; host 2703 drivers/mtd/nand/raw/brcmnand/brcmnand.c host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); host 2704 drivers/mtd/nand/raw/brcmnand/brcmnand.c if (!host) { host 2709 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->pdev = pdev; host 2710 drivers/mtd/nand/raw/brcmnand/brcmnand.c host->ctrl = ctrl; host 2712 drivers/mtd/nand/raw/brcmnand/brcmnand.c ret = brcmnand_init_cs(host, child); host 2714 drivers/mtd/nand/raw/brcmnand/brcmnand.c devm_kfree(dev, host); host 2718 drivers/mtd/nand/raw/brcmnand/brcmnand.c list_add_tail(&host->node, &ctrl->host_list); host 2740 drivers/mtd/nand/raw/brcmnand/brcmnand.c struct brcmnand_host *host; host 2742 drivers/mtd/nand/raw/brcmnand/brcmnand.c list_for_each_entry(host, &ctrl->host_list, node) host 2743 drivers/mtd/nand/raw/brcmnand/brcmnand.c nand_release(&host->chip); host 62 drivers/mtd/nand/raw/denali.c return ioread32(denali->host + addr); host 68 drivers/mtd/nand/raw/denali.c iowrite32(data, denali->host + addr); host 79 drivers/mtd/nand/raw/denali.c iowrite32(addr, denali->host + DENALI_INDEXED_CTRL); host 80 drivers/mtd/nand/raw/denali.c return ioread32(denali->host + DENALI_INDEXED_DATA); host 86 drivers/mtd/nand/raw/denali.c iowrite32(addr, denali->host + DENALI_INDEXED_CTRL); host 87 drivers/mtd/nand/raw/denali.c iowrite32(data, denali->host + DENALI_INDEXED_DATA); host 368 drivers/mtd/nand/raw/denali.h void __iomem *host; host 181 drivers/mtd/nand/raw/denali_dt.c denali->host = devm_ioremap_resource(dev, res); host 182 drivers/mtd/nand/raw/denali_dt.c if (IS_ERR(denali->host)) host 183 drivers/mtd/nand/raw/denali_dt.c return PTR_ERR(denali->host); host 83 drivers/mtd/nand/raw/denali_pci.c denali->host = ioremap_nocache(mem_base, mem_len); host 84 drivers/mtd/nand/raw/denali_pci.c if (!denali->host) { host 121 drivers/mtd/nand/raw/denali_pci.c iounmap(denali->host); host 133 drivers/mtd/nand/raw/denali_pci.c iounmap(denali->host); host 253 drivers/mtd/nand/raw/fsmc_nand.c static void fsmc_nand_setup(struct fsmc_nand_data *host, host 266 drivers/mtd/nand/raw/fsmc_nand.c if (host->nand.options & NAND_BUSWIDTH_16) host 269 drivers/mtd/nand/raw/fsmc_nand.c writel_relaxed(value | tclr | tar, host->regs_va + FSMC_PC); host 270 drivers/mtd/nand/raw/fsmc_nand.c writel_relaxed(thiz | thold | twait | tset, host->regs_va + COMM); host 271 drivers/mtd/nand/raw/fsmc_nand.c writel_relaxed(thiz | thold | twait | tset, host->regs_va + ATTRIB); host 274 drivers/mtd/nand/raw/fsmc_nand.c static int fsmc_calc_timings(struct fsmc_nand_data *host, host 278 drivers/mtd/nand/raw/fsmc_nand.c unsigned long hclk = clk_get_rate(host->clk); host 333 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = nand_to_fsmc(nand); host 342 drivers/mtd/nand/raw/fsmc_nand.c ret = fsmc_calc_timings(host, sdrt, &tims); host 349 drivers/mtd/nand/raw/fsmc_nand.c fsmc_nand_setup(host, &tims); host 359 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = nand_to_fsmc(chip); host 361 drivers/mtd/nand/raw/fsmc_nand.c writel_relaxed(readl(host->regs_va + FSMC_PC) & ~FSMC_ECCPLEN_256, host 362 drivers/mtd/nand/raw/fsmc_nand.c host->regs_va + FSMC_PC); host 363 drivers/mtd/nand/raw/fsmc_nand.c writel_relaxed(readl(host->regs_va + FSMC_PC) & ~FSMC_ECCEN, host 364 drivers/mtd/nand/raw/fsmc_nand.c host->regs_va + FSMC_PC); host 365 drivers/mtd/nand/raw/fsmc_nand.c writel_relaxed(readl(host->regs_va + FSMC_PC) | FSMC_ECCEN, host 366 drivers/mtd/nand/raw/fsmc_nand.c host->regs_va + FSMC_PC); host 377 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = nand_to_fsmc(chip); host 382 drivers/mtd/nand/raw/fsmc_nand.c if (readl_relaxed(host->regs_va + STS) & FSMC_CODE_RDY) host 389 drivers/mtd/nand/raw/fsmc_nand.c dev_err(host->dev, "calculate ecc timed out\n"); host 393 drivers/mtd/nand/raw/fsmc_nand.c ecc_tmp = readl_relaxed(host->regs_va + ECC1); host 399 drivers/mtd/nand/raw/fsmc_nand.c ecc_tmp = readl_relaxed(host->regs_va + ECC2); host 405 drivers/mtd/nand/raw/fsmc_nand.c ecc_tmp = readl_relaxed(host->regs_va + ECC3); host 411 drivers/mtd/nand/raw/fsmc_nand.c ecc_tmp = readl_relaxed(host->regs_va + STS); host 425 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = nand_to_fsmc(chip); host 428 drivers/mtd/nand/raw/fsmc_nand.c ecc_tmp = readl_relaxed(host->regs_va + ECC1); host 452 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = param; host 454 drivers/mtd/nand/raw/fsmc_nand.c complete(&host->dma_access_complete); host 457 drivers/mtd/nand/raw/fsmc_nand.c static int dma_xfer(struct fsmc_nand_data *host, void *buffer, int len, host 470 drivers/mtd/nand/raw/fsmc_nand.c chan = host->write_dma_chan; host 472 drivers/mtd/nand/raw/fsmc_nand.c chan = host->read_dma_chan; host 481 drivers/mtd/nand/raw/fsmc_nand.c dma_dst = host->data_pa; host 483 drivers/mtd/nand/raw/fsmc_nand.c dma_src = host->data_pa; host 490 drivers/mtd/nand/raw/fsmc_nand.c dev_err(host->dev, "device_prep_dma_memcpy error\n"); host 496 drivers/mtd/nand/raw/fsmc_nand.c tx->callback_param = host; host 501 drivers/mtd/nand/raw/fsmc_nand.c dev_err(host->dev, "dma_submit_error %d\n", cookie); host 508 drivers/mtd/nand/raw/fsmc_nand.c wait_for_completion_timeout(&host->dma_access_complete, host 512 drivers/mtd/nand/raw/fsmc_nand.c dev_err(host->dev, "wait_for_completion_timeout\n"); host 531 drivers/mtd/nand/raw/fsmc_nand.c static void fsmc_write_buf(struct fsmc_nand_data *host, const u8 *buf, host 542 drivers/mtd/nand/raw/fsmc_nand.c writel_relaxed(p[i], host->data_va); host 545 drivers/mtd/nand/raw/fsmc_nand.c writeb_relaxed(buf[i], host->data_va); host 555 drivers/mtd/nand/raw/fsmc_nand.c static void fsmc_read_buf(struct fsmc_nand_data *host, u8 *buf, int len) host 565 drivers/mtd/nand/raw/fsmc_nand.c p[i] = readl_relaxed(host->data_va); host 568 drivers/mtd/nand/raw/fsmc_nand.c buf[i] = readb_relaxed(host->data_va); host 578 drivers/mtd/nand/raw/fsmc_nand.c static void fsmc_read_buf_dma(struct fsmc_nand_data *host, u8 *buf, host 581 drivers/mtd/nand/raw/fsmc_nand.c dma_xfer(host, buf, len, DMA_FROM_DEVICE); host 590 drivers/mtd/nand/raw/fsmc_nand.c static void fsmc_write_buf_dma(struct fsmc_nand_data *host, const u8 *buf, host 593 drivers/mtd/nand/raw/fsmc_nand.c dma_xfer(host, (void *)buf, len, DMA_TO_DEVICE); host 605 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = nand_to_fsmc(chip); host 620 drivers/mtd/nand/raw/fsmc_nand.c writeb_relaxed(instr->ctx.cmd.opcode, host->cmd_va); host 626 drivers/mtd/nand/raw/fsmc_nand.c host->addr_va); host 630 drivers/mtd/nand/raw/fsmc_nand.c if (host->mode == USE_DMA_ACCESS) host 631 drivers/mtd/nand/raw/fsmc_nand.c fsmc_read_buf_dma(host, instr->ctx.data.buf.in, host 634 drivers/mtd/nand/raw/fsmc_nand.c fsmc_read_buf(host, instr->ctx.data.buf.in, host 639 drivers/mtd/nand/raw/fsmc_nand.c if (host->mode == USE_DMA_ACCESS) host 640 drivers/mtd/nand/raw/fsmc_nand.c fsmc_write_buf_dma(host, host 644 drivers/mtd/nand/raw/fsmc_nand.c fsmc_write_buf(host, instr->ctx.data.buf.out, host 748 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = nand_to_fsmc(chip); host 753 drivers/mtd/nand/raw/fsmc_nand.c num_err = (readl_relaxed(host->regs_va + STS) >> 10) & 0xF; host 796 drivers/mtd/nand/raw/fsmc_nand.c ecc1 = readl_relaxed(host->regs_va + ECC1); host 797 drivers/mtd/nand/raw/fsmc_nand.c ecc2 = readl_relaxed(host->regs_va + ECC2); host 798 drivers/mtd/nand/raw/fsmc_nand.c ecc3 = readl_relaxed(host->regs_va + ECC3); host 799 drivers/mtd/nand/raw/fsmc_nand.c ecc4 = readl_relaxed(host->regs_va + STS); host 830 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host, host 851 drivers/mtd/nand/raw/fsmc_nand.c host->dev_timings = devm_kzalloc(&pdev->dev, host 852 drivers/mtd/nand/raw/fsmc_nand.c sizeof(*host->dev_timings), host 854 drivers/mtd/nand/raw/fsmc_nand.c if (!host->dev_timings) host 857 drivers/mtd/nand/raw/fsmc_nand.c ret = of_property_read_u8_array(np, "timings", (u8 *)host->dev_timings, host 858 drivers/mtd/nand/raw/fsmc_nand.c sizeof(*host->dev_timings)); host 860 drivers/mtd/nand/raw/fsmc_nand.c host->dev_timings = NULL; host 863 drivers/mtd/nand/raw/fsmc_nand.c host->bank = 0; host 869 drivers/mtd/nand/raw/fsmc_nand.c host->bank = val; host 877 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = nand_to_fsmc(nand); host 879 drivers/mtd/nand/raw/fsmc_nand.c if (AMBA_REV_BITS(host->pid) >= 8) { host 888 drivers/mtd/nand/raw/fsmc_nand.c dev_warn(host->dev, host 901 drivers/mtd/nand/raw/fsmc_nand.c dev_info(host->dev, "Using 1-bit HW ECC scheme\n"); host 911 drivers/mtd/nand/raw/fsmc_nand.c dev_info(host->dev, host 920 drivers/mtd/nand/raw/fsmc_nand.c dev_err(host->dev, "Unsupported ECC mode!\n"); host 937 drivers/mtd/nand/raw/fsmc_nand.c dev_warn(host->dev, host 957 drivers/mtd/nand/raw/fsmc_nand.c static void fsmc_nand_disable(struct fsmc_nand_data *host) host 961 drivers/mtd/nand/raw/fsmc_nand.c val = readl(host->regs_va + FSMC_PC); host 963 drivers/mtd/nand/raw/fsmc_nand.c writel(val, host->regs_va + FSMC_PC); host 972 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host; host 983 drivers/mtd/nand/raw/fsmc_nand.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 984 drivers/mtd/nand/raw/fsmc_nand.c if (!host) host 987 drivers/mtd/nand/raw/fsmc_nand.c nand = &host->nand; host 989 drivers/mtd/nand/raw/fsmc_nand.c ret = fsmc_nand_probe_config_dt(pdev, host, nand); host 994 drivers/mtd/nand/raw/fsmc_nand.c host->data_va = devm_ioremap_resource(&pdev->dev, res); host 995 drivers/mtd/nand/raw/fsmc_nand.c if (IS_ERR(host->data_va)) host 996 drivers/mtd/nand/raw/fsmc_nand.c return PTR_ERR(host->data_va); host 998 drivers/mtd/nand/raw/fsmc_nand.c host->data_pa = (dma_addr_t)res->start; host 1001 drivers/mtd/nand/raw/fsmc_nand.c host->addr_va = devm_ioremap_resource(&pdev->dev, res); host 1002 drivers/mtd/nand/raw/fsmc_nand.c if (IS_ERR(host->addr_va)) host 1003 drivers/mtd/nand/raw/fsmc_nand.c return PTR_ERR(host->addr_va); host 1006 drivers/mtd/nand/raw/fsmc_nand.c host->cmd_va = devm_ioremap_resource(&pdev->dev, res); host 1007 drivers/mtd/nand/raw/fsmc_nand.c if (IS_ERR(host->cmd_va)) host 1008 drivers/mtd/nand/raw/fsmc_nand.c return PTR_ERR(host->cmd_va); host 1015 drivers/mtd/nand/raw/fsmc_nand.c host->regs_va = base + FSMC_NOR_REG_SIZE + host 1016 drivers/mtd/nand/raw/fsmc_nand.c (host->bank * FSMC_NAND_BANK_SZ); host 1018 drivers/mtd/nand/raw/fsmc_nand.c host->clk = devm_clk_get(&pdev->dev, NULL); host 1019 drivers/mtd/nand/raw/fsmc_nand.c if (IS_ERR(host->clk)) { host 1021 drivers/mtd/nand/raw/fsmc_nand.c return PTR_ERR(host->clk); host 1024 drivers/mtd/nand/raw/fsmc_nand.c ret = clk_prepare_enable(host->clk); host 1036 drivers/mtd/nand/raw/fsmc_nand.c host->pid = pid; host 1043 drivers/mtd/nand/raw/fsmc_nand.c host->dev = &pdev->dev; host 1045 drivers/mtd/nand/raw/fsmc_nand.c if (host->mode == USE_DMA_ACCESS) host 1046 drivers/mtd/nand/raw/fsmc_nand.c init_completion(&host->dma_access_complete); host 1049 drivers/mtd/nand/raw/fsmc_nand.c mtd = nand_to_mtd(&host->nand); host 1063 drivers/mtd/nand/raw/fsmc_nand.c if (host->mode == USE_DMA_ACCESS) { host 1066 drivers/mtd/nand/raw/fsmc_nand.c host->read_dma_chan = dma_request_channel(mask, filter, NULL); host 1067 drivers/mtd/nand/raw/fsmc_nand.c if (!host->read_dma_chan) { host 1071 drivers/mtd/nand/raw/fsmc_nand.c host->write_dma_chan = dma_request_channel(mask, filter, NULL); host 1072 drivers/mtd/nand/raw/fsmc_nand.c if (!host->write_dma_chan) { host 1078 drivers/mtd/nand/raw/fsmc_nand.c if (host->dev_timings) { host 1079 drivers/mtd/nand/raw/fsmc_nand.c fsmc_nand_setup(host, host->dev_timings); host 1083 drivers/mtd/nand/raw/fsmc_nand.c if (AMBA_REV_BITS(host->pid) >= 8) { host 1091 drivers/mtd/nand/raw/fsmc_nand.c nand_controller_init(&host->base); host 1092 drivers/mtd/nand/raw/fsmc_nand.c host->base.ops = &fsmc_nand_controller_ops; host 1093 drivers/mtd/nand/raw/fsmc_nand.c nand->controller = &host->base; host 1107 drivers/mtd/nand/raw/fsmc_nand.c platform_set_drvdata(pdev, host); host 1115 drivers/mtd/nand/raw/fsmc_nand.c if (host->mode == USE_DMA_ACCESS) host 1116 drivers/mtd/nand/raw/fsmc_nand.c dma_release_channel(host->write_dma_chan); host 1118 drivers/mtd/nand/raw/fsmc_nand.c if (host->mode == USE_DMA_ACCESS) host 1119 drivers/mtd/nand/raw/fsmc_nand.c dma_release_channel(host->read_dma_chan); host 1121 drivers/mtd/nand/raw/fsmc_nand.c fsmc_nand_disable(host); host 1122 drivers/mtd/nand/raw/fsmc_nand.c clk_disable_unprepare(host->clk); host 1132 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = platform_get_drvdata(pdev); host 1134 drivers/mtd/nand/raw/fsmc_nand.c if (host) { host 1135 drivers/mtd/nand/raw/fsmc_nand.c nand_release(&host->nand); host 1136 drivers/mtd/nand/raw/fsmc_nand.c fsmc_nand_disable(host); host 1138 drivers/mtd/nand/raw/fsmc_nand.c if (host->mode == USE_DMA_ACCESS) { host 1139 drivers/mtd/nand/raw/fsmc_nand.c dma_release_channel(host->write_dma_chan); host 1140 drivers/mtd/nand/raw/fsmc_nand.c dma_release_channel(host->read_dma_chan); host 1142 drivers/mtd/nand/raw/fsmc_nand.c clk_disable_unprepare(host->clk); host 1151 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = dev_get_drvdata(dev); host 1153 drivers/mtd/nand/raw/fsmc_nand.c if (host) host 1154 drivers/mtd/nand/raw/fsmc_nand.c clk_disable_unprepare(host->clk); host 1161 drivers/mtd/nand/raw/fsmc_nand.c struct fsmc_nand_data *host = dev_get_drvdata(dev); host 1163 drivers/mtd/nand/raw/fsmc_nand.c if (host) { host 1164 drivers/mtd/nand/raw/fsmc_nand.c clk_prepare_enable(host->clk); host 1165 drivers/mtd/nand/raw/fsmc_nand.c if (host->dev_timings) host 1166 drivers/mtd/nand/raw/fsmc_nand.c fsmc_nand_setup(host, host->dev_timings); host 1167 drivers/mtd/nand/raw/fsmc_nand.c nand_reset(&host->nand, 0); host 144 drivers/mtd/nand/raw/hisi504_nand.c static inline unsigned int hinfc_read(struct hinfc_host *host, unsigned int reg) host 146 drivers/mtd/nand/raw/hisi504_nand.c return readl(host->iobase + reg); host 149 drivers/mtd/nand/raw/hisi504_nand.c static inline void hinfc_write(struct hinfc_host *host, unsigned int value, host 152 drivers/mtd/nand/raw/hisi504_nand.c writel(value, host->iobase + reg); host 155 drivers/mtd/nand/raw/hisi504_nand.c static void wait_controller_finished(struct hinfc_host *host) host 161 drivers/mtd/nand/raw/hisi504_nand.c val = hinfc_read(host, HINFC504_STATUS); host 162 drivers/mtd/nand/raw/hisi504_nand.c if (host->command == NAND_CMD_ERASE2) { host 166 drivers/mtd/nand/raw/hisi504_nand.c val = hinfc_read(host, HINFC504_STATUS); host 176 drivers/mtd/nand/raw/hisi504_nand.c dev_err(host->dev, "Wait NAND controller exec cmd timeout.\n"); host 179 drivers/mtd/nand/raw/hisi504_nand.c static void hisi_nfc_dma_transfer(struct hinfc_host *host, int todev) host 181 drivers/mtd/nand/raw/hisi504_nand.c struct nand_chip *chip = &host->chip; host 186 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, host->dma_buffer, HINFC504_DMA_ADDR_DATA); host 187 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, host->dma_oob, HINFC504_DMA_ADDR_OOB); host 190 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, ((mtd->oobsize & HINFC504_DMA_LEN_OOB_MASK) host 193 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_DMA_PARA_DATA_RW_EN host 196 drivers/mtd/nand/raw/hisi504_nand.c if (host->command == NAND_CMD_READOOB) host 197 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_DMA_PARA_OOB_RW_EN host 201 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_DMA_PARA_DATA_RW_EN host 213 drivers/mtd/nand/raw/hisi504_nand.c | ((host->addr_cycle == 4 ? 1 : 0) host 215 drivers/mtd/nand/raw/hisi504_nand.c | ((host->chipselect & HINFC504_DMA_CTRL_CS_MASK) host 221 drivers/mtd/nand/raw/hisi504_nand.c init_completion(&host->cmd_complete); host 223 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, val, HINFC504_DMA_CTRL); host 224 drivers/mtd/nand/raw/hisi504_nand.c ret = wait_for_completion_timeout(&host->cmd_complete, host 228 drivers/mtd/nand/raw/hisi504_nand.c dev_err(host->dev, "DMA operation(irq) timeout!\n"); host 230 drivers/mtd/nand/raw/hisi504_nand.c val = hinfc_read(host, HINFC504_DMA_CTRL); host 232 drivers/mtd/nand/raw/hisi504_nand.c dev_err(host->dev, "DMA is already done but without irq ACK!\n"); host 234 drivers/mtd/nand/raw/hisi504_nand.c dev_err(host->dev, "DMA is really timeout!\n"); host 238 drivers/mtd/nand/raw/hisi504_nand.c static int hisi_nfc_send_cmd_pageprog(struct hinfc_host *host) host 240 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[0] &= 0xffff0000; host 242 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, host->addr_value[0], HINFC504_ADDRL); host 243 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, host->addr_value[1], HINFC504_ADDRH); host 244 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, NAND_CMD_PAGEPROG << 8 | NAND_CMD_SEQIN, host 247 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_dma_transfer(host, 1); host 252 drivers/mtd/nand/raw/hisi504_nand.c static int hisi_nfc_send_cmd_readstart(struct hinfc_host *host) host 254 drivers/mtd/nand/raw/hisi504_nand.c struct mtd_info *mtd = nand_to_mtd(&host->chip); host 256 drivers/mtd/nand/raw/hisi504_nand.c if ((host->addr_value[0] == host->cache_addr_value[0]) && host 257 drivers/mtd/nand/raw/hisi504_nand.c (host->addr_value[1] == host->cache_addr_value[1])) host 260 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[0] &= 0xffff0000; host 262 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, host->addr_value[0], HINFC504_ADDRL); host 263 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, host->addr_value[1], HINFC504_ADDRH); host 264 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, NAND_CMD_READSTART << 8 | NAND_CMD_READ0, host 267 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, 0, HINFC504_LOG_READ_ADDR); host 268 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, mtd->writesize + mtd->oobsize, host 271 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_dma_transfer(host, 0); host 273 drivers/mtd/nand/raw/hisi504_nand.c host->cache_addr_value[0] = host->addr_value[0]; host 274 drivers/mtd/nand/raw/hisi504_nand.c host->cache_addr_value[1] = host->addr_value[1]; host 279 drivers/mtd/nand/raw/hisi504_nand.c static int hisi_nfc_send_cmd_erase(struct hinfc_host *host) host 281 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, host->addr_value[0], HINFC504_ADDRL); host 282 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, (NAND_CMD_ERASE2 << 8) | NAND_CMD_ERASE1, host 285 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_OP_WAIT_READY_EN host 289 drivers/mtd/nand/raw/hisi504_nand.c | ((host->chipselect & HINFC504_OP_NF_CS_MASK) host 291 drivers/mtd/nand/raw/hisi504_nand.c | ((host->addr_cycle & HINFC504_OP_ADDR_CYCLE_MASK) host 295 drivers/mtd/nand/raw/hisi504_nand.c wait_controller_finished(host); host 300 drivers/mtd/nand/raw/hisi504_nand.c static int hisi_nfc_send_cmd_readid(struct hinfc_host *host) host 302 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_NANDINFO_LEN, HINFC504_DATA_NUM); host 303 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, NAND_CMD_READID, HINFC504_CMD); host 304 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, 0, HINFC504_ADDRL); host 306 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_OP_CMD1_EN | HINFC504_OP_ADDR_EN host 308 drivers/mtd/nand/raw/hisi504_nand.c | ((host->chipselect & HINFC504_OP_NF_CS_MASK) host 312 drivers/mtd/nand/raw/hisi504_nand.c wait_controller_finished(host); host 317 drivers/mtd/nand/raw/hisi504_nand.c static int hisi_nfc_send_cmd_status(struct hinfc_host *host) host 319 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_NANDINFO_LEN, HINFC504_DATA_NUM); host 320 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, NAND_CMD_STATUS, HINFC504_CMD); host 321 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_OP_CMD1_EN host 323 drivers/mtd/nand/raw/hisi504_nand.c | ((host->chipselect & HINFC504_OP_NF_CS_MASK) host 327 drivers/mtd/nand/raw/hisi504_nand.c wait_controller_finished(host); host 332 drivers/mtd/nand/raw/hisi504_nand.c static int hisi_nfc_send_cmd_reset(struct hinfc_host *host, int chipselect) host 334 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, NAND_CMD_RESET, HINFC504_CMD); host 336 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_OP_CMD1_EN host 342 drivers/mtd/nand/raw/hisi504_nand.c wait_controller_finished(host); host 349 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 354 drivers/mtd/nand/raw/hisi504_nand.c host->chipselect = chipselect; host 359 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 361 drivers/mtd/nand/raw/hisi504_nand.c if (host->command == NAND_CMD_STATUS) host 362 drivers/mtd/nand/raw/hisi504_nand.c return *(uint8_t *)(host->mmio); host 364 drivers/mtd/nand/raw/hisi504_nand.c host->offset++; host 366 drivers/mtd/nand/raw/hisi504_nand.c if (host->command == NAND_CMD_READID) host 367 drivers/mtd/nand/raw/hisi504_nand.c return *(uint8_t *)(host->mmio + host->offset - 1); host 369 drivers/mtd/nand/raw/hisi504_nand.c return *(uint8_t *)(host->buffer + host->offset - 1); host 375 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 377 drivers/mtd/nand/raw/hisi504_nand.c memcpy(host->buffer + host->offset, buf, len); host 378 drivers/mtd/nand/raw/hisi504_nand.c host->offset += len; host 383 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 385 drivers/mtd/nand/raw/hisi504_nand.c memcpy(buf, host->buffer + host->offset, len); host 386 drivers/mtd/nand/raw/hisi504_nand.c host->offset += len; host 392 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 393 drivers/mtd/nand/raw/hisi504_nand.c unsigned int command = host->command; host 395 drivers/mtd/nand/raw/hisi504_nand.c host->addr_cycle = 0; host 396 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[0] = 0; host 397 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[1] = 0; host 406 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[0] = column & 0xffff; host 407 drivers/mtd/nand/raw/hisi504_nand.c host->addr_cycle = 2; host 410 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[0] |= (page_addr & 0xffff) host 411 drivers/mtd/nand/raw/hisi504_nand.c << (host->addr_cycle * 8); host 412 drivers/mtd/nand/raw/hisi504_nand.c host->addr_cycle += 2; host 414 drivers/mtd/nand/raw/hisi504_nand.c host->addr_cycle += 1; host 415 drivers/mtd/nand/raw/hisi504_nand.c if (host->command == NAND_CMD_ERASE1) host 416 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[0] |= ((page_addr >> 16) & 0xff) << 16; host 418 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[1] |= ((page_addr >> 16) & 0xff); host 427 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 431 drivers/mtd/nand/raw/hisi504_nand.c host->command = command; host 437 drivers/mtd/nand/raw/hisi504_nand.c host->offset = column; host 439 drivers/mtd/nand/raw/hisi504_nand.c host->offset = column + mtd->writesize; host 443 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_send_cmd_readstart(host); host 447 drivers/mtd/nand/raw/hisi504_nand.c host->offset = column; host 456 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_send_cmd_pageprog(host); host 460 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_send_cmd_erase(host); host 464 drivers/mtd/nand/raw/hisi504_nand.c host->offset = column; host 465 drivers/mtd/nand/raw/hisi504_nand.c memset(host->mmio, 0, 0x10); host 466 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_send_cmd_readid(host); host 470 drivers/mtd/nand/raw/hisi504_nand.c flag = hinfc_read(host, HINFC504_CON); host 472 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, host 476 drivers/mtd/nand/raw/hisi504_nand.c host->offset = 0; host 477 drivers/mtd/nand/raw/hisi504_nand.c memset(host->mmio, 0, 0x10); host 478 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_send_cmd_status(host); host 479 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, flag, HINFC504_CON); host 483 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_send_cmd_reset(host, host->chipselect); host 487 drivers/mtd/nand/raw/hisi504_nand.c dev_err(host->dev, "Error: unsupported cmd(cmd=%x, col=%x, page=%x)\n", host 492 drivers/mtd/nand/raw/hisi504_nand.c host->cache_addr_value[0] = ~0; host 493 drivers/mtd/nand/raw/hisi504_nand.c host->cache_addr_value[1] = ~0; host 499 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = devid; host 502 drivers/mtd/nand/raw/hisi504_nand.c flag = hinfc_read(host, HINFC504_INTS); host 504 drivers/mtd/nand/raw/hisi504_nand.c host->irq_status |= flag; host 507 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_INTCLR_DMA, HINFC504_INTCLR); host 508 drivers/mtd/nand/raw/hisi504_nand.c complete(&host->cmd_complete); host 510 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_INTCLR_CE, HINFC504_INTCLR); host 512 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_INTCLR_UE, HINFC504_INTCLR); host 522 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 530 drivers/mtd/nand/raw/hisi504_nand.c if (host->irq_status & HINFC504_INTS_UE) { host 532 drivers/mtd/nand/raw/hisi504_nand.c } else if (host->irq_status & HINFC504_INTS_CE) { host 536 drivers/mtd/nand/raw/hisi504_nand.c status_ecc = hinfc_read(host, HINFC504_ECC_STATUS) >> host 546 drivers/mtd/nand/raw/hisi504_nand.c host->irq_status = 0; host 554 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 558 drivers/mtd/nand/raw/hisi504_nand.c if (host->irq_status & HINFC504_INTS_UE) { host 559 drivers/mtd/nand/raw/hisi504_nand.c host->irq_status = 0; host 563 drivers/mtd/nand/raw/hisi504_nand.c host->irq_status = 0; host 580 drivers/mtd/nand/raw/hisi504_nand.c static void hisi_nfc_host_init(struct hinfc_host *host) host 582 drivers/mtd/nand/raw/hisi504_nand.c struct nand_chip *chip = &host->chip; host 585 drivers/mtd/nand/raw/hisi504_nand.c host->version = hinfc_read(host, HINFC_VERSION); host 586 drivers/mtd/nand/raw/hisi504_nand.c host->addr_cycle = 0; host 587 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[0] = 0; host 588 drivers/mtd/nand/raw/hisi504_nand.c host->addr_value[1] = 0; host 589 drivers/mtd/nand/raw/hisi504_nand.c host->cache_addr_value[0] = ~0; host 590 drivers/mtd/nand/raw/hisi504_nand.c host->cache_addr_value[1] = ~0; host 591 drivers/mtd/nand/raw/hisi504_nand.c host->chipselect = 0; host 601 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, flag, HINFC504_CON); host 603 drivers/mtd/nand/raw/hisi504_nand.c memset(host->mmio, 0xff, HINFC504_BUFFER_BASE_ADDRESS_LEN); host 605 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, SET_HINFC504_PWIDTH(HINFC504_W_LATCH, host 609 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, HINFC504_INTEN_DMA, HINFC504_INTEN); host 636 drivers/mtd/nand/raw/hisi504_nand.c static int hisi_nfc_ecc_probe(struct hinfc_host *host) host 640 drivers/mtd/nand/raw/hisi504_nand.c struct device *dev = host->dev; host 641 drivers/mtd/nand/raw/hisi504_nand.c struct nand_chip *chip = &host->chip; host 679 drivers/mtd/nand/raw/hisi504_nand.c flag = hinfc_read(host, HINFC504_CON); host 683 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, flag, HINFC504_CON); host 686 drivers/mtd/nand/raw/hisi504_nand.c flag = hinfc_read(host, HINFC504_INTEN) & 0xfff; host 687 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, flag | HINFC504_INTEN_UE | HINFC504_INTEN_CE, host 696 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = nand_get_controller_data(chip); host 699 drivers/mtd/nand/raw/hisi504_nand.c host->buffer = dmam_alloc_coherent(host->dev, host 701 drivers/mtd/nand/raw/hisi504_nand.c &host->dma_buffer, GFP_KERNEL); host 702 drivers/mtd/nand/raw/hisi504_nand.c if (!host->buffer) host 705 drivers/mtd/nand/raw/hisi504_nand.c host->dma_oob = host->dma_buffer + mtd->writesize; host 706 drivers/mtd/nand/raw/hisi504_nand.c memset(host->buffer, 0xff, mtd->writesize + mtd->oobsize); host 708 drivers/mtd/nand/raw/hisi504_nand.c flag = hinfc_read(host, HINFC504_CON); host 719 drivers/mtd/nand/raw/hisi504_nand.c dev_err(host->dev, "NON-2KB page size nand flash\n"); host 722 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, flag, HINFC504_CON); host 725 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_ecc_probe(host); host 738 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host; host 744 drivers/mtd/nand/raw/hisi504_nand.c host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); host 745 drivers/mtd/nand/raw/hisi504_nand.c if (!host) host 747 drivers/mtd/nand/raw/hisi504_nand.c host->dev = dev; host 749 drivers/mtd/nand/raw/hisi504_nand.c platform_set_drvdata(pdev, host); host 750 drivers/mtd/nand/raw/hisi504_nand.c chip = &host->chip; host 760 drivers/mtd/nand/raw/hisi504_nand.c host->iobase = devm_ioremap_resource(dev, res); host 761 drivers/mtd/nand/raw/hisi504_nand.c if (IS_ERR(host->iobase)) host 762 drivers/mtd/nand/raw/hisi504_nand.c return PTR_ERR(host->iobase); host 765 drivers/mtd/nand/raw/hisi504_nand.c host->mmio = devm_ioremap_resource(dev, res); host 766 drivers/mtd/nand/raw/hisi504_nand.c if (IS_ERR(host->mmio)) { host 768 drivers/mtd/nand/raw/hisi504_nand.c return PTR_ERR(host->mmio); host 774 drivers/mtd/nand/raw/hisi504_nand.c nand_set_controller_data(chip, host); host 785 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_host_init(host); host 787 drivers/mtd/nand/raw/hisi504_nand.c ret = devm_request_irq(dev, irq, hinfc_irq_handle, 0x0, "nandc", host); host 810 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = platform_get_drvdata(pdev); host 812 drivers/mtd/nand/raw/hisi504_nand.c nand_release(&host->chip); host 820 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = dev_get_drvdata(dev); host 824 drivers/mtd/nand/raw/hisi504_nand.c if (((hinfc_read(host, HINFC504_STATUS) & 0x1) == 0x0) && host 825 drivers/mtd/nand/raw/hisi504_nand.c (hinfc_read(host, HINFC504_DMA_CTRL) & host 832 drivers/mtd/nand/raw/hisi504_nand.c dev_err(host->dev, "nand controller suspend timeout.\n"); host 840 drivers/mtd/nand/raw/hisi504_nand.c struct hinfc_host *host = dev_get_drvdata(dev); host 841 drivers/mtd/nand/raw/hisi504_nand.c struct nand_chip *chip = &host->chip; host 844 drivers/mtd/nand/raw/hisi504_nand.c hisi_nfc_send_cmd_reset(host, cs); host 845 drivers/mtd/nand/raw/hisi504_nand.c hinfc_write(host, SET_HINFC504_PWIDTH(HINFC504_W_LATCH, host 232 drivers/mtd/nand/raw/lpc32xx_mlc.c static void lpc32xx_nand_setup(struct lpc32xx_nand_host *host) host 237 drivers/mtd/nand/raw/lpc32xx_mlc.c writel(MLCCMD_RESET, MLC_CMD(host->io_base)); host 241 drivers/mtd/nand/raw/lpc32xx_mlc.c clkrate = clk_get_rate(host->clk); host 247 drivers/mtd/nand/raw/lpc32xx_mlc.c writew(MLCLOCKPR_MAGIC, MLC_LOCK_PR(host->io_base)); host 251 drivers/mtd/nand/raw/lpc32xx_mlc.c writel(tmp, MLC_ICR(host->io_base)); host 255 drivers/mtd/nand/raw/lpc32xx_mlc.c writew(MLCLOCKPR_MAGIC, MLC_LOCK_PR(host->io_base)); host 259 drivers/mtd/nand/raw/lpc32xx_mlc.c tmp |= MLCTIMEREG_TCEA_DELAY(clkrate / host->ncfg->tcea_delay + 1); host 260 drivers/mtd/nand/raw/lpc32xx_mlc.c tmp |= MLCTIMEREG_BUSY_DELAY(clkrate / host->ncfg->busy_delay + 1); host 261 drivers/mtd/nand/raw/lpc32xx_mlc.c tmp |= MLCTIMEREG_NAND_TA(clkrate / host->ncfg->nand_ta + 1); host 262 drivers/mtd/nand/raw/lpc32xx_mlc.c tmp |= MLCTIMEREG_RD_HIGH(clkrate / host->ncfg->rd_high + 1); host 263 drivers/mtd/nand/raw/lpc32xx_mlc.c tmp |= MLCTIMEREG_RD_LOW(clkrate / host->ncfg->rd_low); host 264 drivers/mtd/nand/raw/lpc32xx_mlc.c tmp |= MLCTIMEREG_WR_HIGH(clkrate / host->ncfg->wr_high + 1); host 265 drivers/mtd/nand/raw/lpc32xx_mlc.c tmp |= MLCTIMEREG_WR_LOW(clkrate / host->ncfg->wr_low); host 266 drivers/mtd/nand/raw/lpc32xx_mlc.c writel(tmp, MLC_TIME_REG(host->io_base)); host 270 drivers/mtd/nand/raw/lpc32xx_mlc.c MLC_IRQ_MR(host->io_base)); host 273 drivers/mtd/nand/raw/lpc32xx_mlc.c writel(MLCCEH_NORMAL, MLC_CEH(host->io_base)); host 282 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(nand_chip); host 286 drivers/mtd/nand/raw/lpc32xx_mlc.c writel(cmd, MLC_CMD(host->io_base)); host 288 drivers/mtd/nand/raw/lpc32xx_mlc.c writel(cmd, MLC_ADDR(host->io_base)); host 297 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(nand_chip); host 299 drivers/mtd/nand/raw/lpc32xx_mlc.c if ((readb(MLC_ISR(host->io_base)) & host 307 drivers/mtd/nand/raw/lpc32xx_mlc.c static irqreturn_t lpc3xxx_nand_irq(int irq, struct lpc32xx_nand_host *host) host 312 drivers/mtd/nand/raw/lpc32xx_mlc.c sr = readb(MLC_IRQ_SR(host->io_base)); host 314 drivers/mtd/nand/raw/lpc32xx_mlc.c complete(&host->comp_nand); host 316 drivers/mtd/nand/raw/lpc32xx_mlc.c complete(&host->comp_controller); host 324 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 326 drivers/mtd/nand/raw/lpc32xx_mlc.c if (readb(MLC_ISR(host->io_base)) & MLCISR_NAND_READY) host 329 drivers/mtd/nand/raw/lpc32xx_mlc.c wait_for_completion(&host->comp_nand); host 331 drivers/mtd/nand/raw/lpc32xx_mlc.c while (!(readb(MLC_ISR(host->io_base)) & MLCISR_NAND_READY)) { host 344 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 346 drivers/mtd/nand/raw/lpc32xx_mlc.c if (readb(MLC_ISR(host->io_base)) & MLCISR_CONTROLLER_READY) host 349 drivers/mtd/nand/raw/lpc32xx_mlc.c wait_for_completion(&host->comp_controller); host 351 drivers/mtd/nand/raw/lpc32xx_mlc.c while (!(readb(MLC_ISR(host->io_base)) & host 372 drivers/mtd/nand/raw/lpc32xx_mlc.c static void lpc32xx_wp_enable(struct lpc32xx_nand_host *host) host 374 drivers/mtd/nand/raw/lpc32xx_mlc.c if (gpio_is_valid(host->ncfg->wp_gpio)) host 375 drivers/mtd/nand/raw/lpc32xx_mlc.c gpio_set_value(host->ncfg->wp_gpio, 0); host 381 drivers/mtd/nand/raw/lpc32xx_mlc.c static void lpc32xx_wp_disable(struct lpc32xx_nand_host *host) host 383 drivers/mtd/nand/raw/lpc32xx_mlc.c if (gpio_is_valid(host->ncfg->wp_gpio)) host 384 drivers/mtd/nand/raw/lpc32xx_mlc.c gpio_set_value(host->ncfg->wp_gpio, 1); host 396 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 401 drivers/mtd/nand/raw/lpc32xx_mlc.c sg_init_one(&host->sgl, mem, len); host 403 drivers/mtd/nand/raw/lpc32xx_mlc.c res = dma_map_sg(host->dma_chan->device->dev, &host->sgl, 1, host 409 drivers/mtd/nand/raw/lpc32xx_mlc.c desc = dmaengine_prep_slave_sg(host->dma_chan, &host->sgl, 1, dir, host 416 drivers/mtd/nand/raw/lpc32xx_mlc.c init_completion(&host->comp_dma); host 418 drivers/mtd/nand/raw/lpc32xx_mlc.c desc->callback_param = &host->comp_dma; host 421 drivers/mtd/nand/raw/lpc32xx_mlc.c dma_async_issue_pending(host->dma_chan); host 423 drivers/mtd/nand/raw/lpc32xx_mlc.c wait_for_completion_timeout(&host->comp_dma, msecs_to_jiffies(1000)); host 425 drivers/mtd/nand/raw/lpc32xx_mlc.c dma_unmap_sg(host->dma_chan->device->dev, &host->sgl, 1, host 429 drivers/mtd/nand/raw/lpc32xx_mlc.c dma_unmap_sg(host->dma_chan->device->dev, &host->sgl, 1, host 438 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 450 drivers/mtd/nand/raw/lpc32xx_mlc.c dma_buf = host->dma_buf; host 458 drivers/mtd/nand/raw/lpc32xx_mlc.c for (i = 0; i < host->mlcsubpages; i++) { host 460 drivers/mtd/nand/raw/lpc32xx_mlc.c writeb(0x00, MLC_ECC_AUTO_DEC_REG(host->io_base)); host 466 drivers/mtd/nand/raw/lpc32xx_mlc.c mlc_isr = readl(MLC_ISR(host->io_base)); host 483 drivers/mtd/nand/raw/lpc32xx_mlc.c readl(MLC_BUFF(host->io_base)); host 489 drivers/mtd/nand/raw/lpc32xx_mlc.c readl(MLC_BUFF(host->io_base)); host 505 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 512 drivers/mtd/nand/raw/lpc32xx_mlc.c dma_buf = host->dma_buf; host 518 drivers/mtd/nand/raw/lpc32xx_mlc.c for (i = 0; i < host->mlcsubpages; i++) { host 520 drivers/mtd/nand/raw/lpc32xx_mlc.c writeb(0x00, MLC_ECC_ENC_REG(host->io_base)); host 531 drivers/mtd/nand/raw/lpc32xx_mlc.c MLC_BUFF(host->io_base)); host 535 drivers/mtd/nand/raw/lpc32xx_mlc.c writel(*((uint32_t *)(oobbuf)), MLC_BUFF(host->io_base)); host 537 drivers/mtd/nand/raw/lpc32xx_mlc.c writew(*((uint16_t *)(oobbuf)), MLC_BUFF(host->io_base)); host 541 drivers/mtd/nand/raw/lpc32xx_mlc.c writeb(0x00, MLC_ECC_AUTO_ENC_REG(host->io_base)); host 552 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 555 drivers/mtd/nand/raw/lpc32xx_mlc.c lpc32xx_read_page(chip, host->dummy_buf, 1, page); host 572 drivers/mtd/nand/raw/lpc32xx_mlc.c static int lpc32xx_dma_setup(struct lpc32xx_nand_host *host) host 574 drivers/mtd/nand/raw/lpc32xx_mlc.c struct mtd_info *mtd = nand_to_mtd(&host->nand_chip); host 577 drivers/mtd/nand/raw/lpc32xx_mlc.c if (!host->pdata || !host->pdata->dma_filter) { host 584 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_chan = dma_request_channel(mask, host->pdata->dma_filter, host 586 drivers/mtd/nand/raw/lpc32xx_mlc.c if (!host->dma_chan) { host 596 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_slave_config.direction = DMA_DEV_TO_MEM; host 597 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 598 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 599 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_slave_config.src_maxburst = 128; host 600 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_slave_config.dst_maxburst = 128; host 602 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_slave_config.device_fc = false; host 603 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_slave_config.src_addr = MLC_BUFF(host->io_base_phy); host 604 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_slave_config.dst_addr = MLC_BUFF(host->io_base_phy); host 605 drivers/mtd/nand/raw/lpc32xx_mlc.c if (dmaengine_slave_config(host->dma_chan, &host->dma_slave_config)) { host 612 drivers/mtd/nand/raw/lpc32xx_mlc.c dma_release_channel(host->dma_chan); host 648 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 649 drivers/mtd/nand/raw/lpc32xx_mlc.c struct device *dev = &host->pdev->dev; host 651 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dma_buf = devm_kzalloc(dev, mtd->writesize, GFP_KERNEL); host 652 drivers/mtd/nand/raw/lpc32xx_mlc.c if (!host->dma_buf) host 655 drivers/mtd/nand/raw/lpc32xx_mlc.c host->dummy_buf = devm_kzalloc(dev, mtd->writesize, GFP_KERNEL); host 656 drivers/mtd/nand/raw/lpc32xx_mlc.c if (!host->dummy_buf) host 662 drivers/mtd/nand/raw/lpc32xx_mlc.c host->mlcsubpages = mtd->writesize / 512; host 676 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host; host 683 drivers/mtd/nand/raw/lpc32xx_mlc.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 684 drivers/mtd/nand/raw/lpc32xx_mlc.c if (!host) host 687 drivers/mtd/nand/raw/lpc32xx_mlc.c host->pdev = pdev; host 690 drivers/mtd/nand/raw/lpc32xx_mlc.c host->io_base = devm_ioremap_resource(&pdev->dev, rc); host 691 drivers/mtd/nand/raw/lpc32xx_mlc.c if (IS_ERR(host->io_base)) host 692 drivers/mtd/nand/raw/lpc32xx_mlc.c return PTR_ERR(host->io_base); host 694 drivers/mtd/nand/raw/lpc32xx_mlc.c host->io_base_phy = rc->start; host 696 drivers/mtd/nand/raw/lpc32xx_mlc.c nand_chip = &host->nand_chip; host 699 drivers/mtd/nand/raw/lpc32xx_mlc.c host->ncfg = lpc32xx_parse_dt(&pdev->dev); host 700 drivers/mtd/nand/raw/lpc32xx_mlc.c if (!host->ncfg) { host 705 drivers/mtd/nand/raw/lpc32xx_mlc.c if (host->ncfg->wp_gpio == -EPROBE_DEFER) host 707 drivers/mtd/nand/raw/lpc32xx_mlc.c if (gpio_is_valid(host->ncfg->wp_gpio) && host 708 drivers/mtd/nand/raw/lpc32xx_mlc.c gpio_request(host->ncfg->wp_gpio, "NAND WP")) { host 712 drivers/mtd/nand/raw/lpc32xx_mlc.c lpc32xx_wp_disable(host); host 714 drivers/mtd/nand/raw/lpc32xx_mlc.c host->pdata = dev_get_platdata(&pdev->dev); host 717 drivers/mtd/nand/raw/lpc32xx_mlc.c nand_set_controller_data(nand_chip, host); host 722 drivers/mtd/nand/raw/lpc32xx_mlc.c host->clk = clk_get(&pdev->dev, NULL); host 723 drivers/mtd/nand/raw/lpc32xx_mlc.c if (IS_ERR(host->clk)) { host 728 drivers/mtd/nand/raw/lpc32xx_mlc.c res = clk_prepare_enable(host->clk); host 735 drivers/mtd/nand/raw/lpc32xx_mlc.c nand_chip->legacy.IO_ADDR_R = MLC_DATA(host->io_base); host 736 drivers/mtd/nand/raw/lpc32xx_mlc.c nand_chip->legacy.IO_ADDR_W = MLC_DATA(host->io_base); host 739 drivers/mtd/nand/raw/lpc32xx_mlc.c lpc32xx_nand_setup(host); host 741 drivers/mtd/nand/raw/lpc32xx_mlc.c platform_set_drvdata(pdev, host); host 761 drivers/mtd/nand/raw/lpc32xx_mlc.c res = lpc32xx_dma_setup(host); host 769 drivers/mtd/nand/raw/lpc32xx_mlc.c readb(MLC_IRQ_SR(host->io_base)); host 771 drivers/mtd/nand/raw/lpc32xx_mlc.c init_completion(&host->comp_nand); host 772 drivers/mtd/nand/raw/lpc32xx_mlc.c init_completion(&host->comp_controller); host 774 drivers/mtd/nand/raw/lpc32xx_mlc.c host->irq = platform_get_irq(pdev, 0); host 775 drivers/mtd/nand/raw/lpc32xx_mlc.c if (host->irq < 0) { host 781 drivers/mtd/nand/raw/lpc32xx_mlc.c if (request_irq(host->irq, (irq_handler_t)&lpc3xxx_nand_irq, host 782 drivers/mtd/nand/raw/lpc32xx_mlc.c IRQF_TRIGGER_HIGH, DRV_NAME, host)) { host 799 drivers/mtd/nand/raw/lpc32xx_mlc.c res = mtd_device_register(mtd, host->ncfg->parts, host 800 drivers/mtd/nand/raw/lpc32xx_mlc.c host->ncfg->num_parts); host 809 drivers/mtd/nand/raw/lpc32xx_mlc.c free_irq(host->irq, host); host 812 drivers/mtd/nand/raw/lpc32xx_mlc.c dma_release_channel(host->dma_chan); host 814 drivers/mtd/nand/raw/lpc32xx_mlc.c clk_disable_unprepare(host->clk); host 816 drivers/mtd/nand/raw/lpc32xx_mlc.c clk_put(host->clk); host 818 drivers/mtd/nand/raw/lpc32xx_mlc.c lpc32xx_wp_enable(host); host 819 drivers/mtd/nand/raw/lpc32xx_mlc.c gpio_free(host->ncfg->wp_gpio); host 829 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = platform_get_drvdata(pdev); host 831 drivers/mtd/nand/raw/lpc32xx_mlc.c nand_release(&host->nand_chip); host 832 drivers/mtd/nand/raw/lpc32xx_mlc.c free_irq(host->irq, host); host 834 drivers/mtd/nand/raw/lpc32xx_mlc.c dma_release_channel(host->dma_chan); host 836 drivers/mtd/nand/raw/lpc32xx_mlc.c clk_disable_unprepare(host->clk); host 837 drivers/mtd/nand/raw/lpc32xx_mlc.c clk_put(host->clk); host 839 drivers/mtd/nand/raw/lpc32xx_mlc.c lpc32xx_wp_enable(host); host 840 drivers/mtd/nand/raw/lpc32xx_mlc.c gpio_free(host->ncfg->wp_gpio); host 848 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = platform_get_drvdata(pdev); host 852 drivers/mtd/nand/raw/lpc32xx_mlc.c ret = clk_prepare_enable(host->clk); host 857 drivers/mtd/nand/raw/lpc32xx_mlc.c lpc32xx_nand_setup(host); host 860 drivers/mtd/nand/raw/lpc32xx_mlc.c lpc32xx_wp_disable(host); host 867 drivers/mtd/nand/raw/lpc32xx_mlc.c struct lpc32xx_nand_host *host = platform_get_drvdata(pdev); host 870 drivers/mtd/nand/raw/lpc32xx_mlc.c lpc32xx_wp_enable(host); host 873 drivers/mtd/nand/raw/lpc32xx_mlc.c clk_disable_unprepare(host->clk); host 238 drivers/mtd/nand/raw/lpc32xx_slc.c static void lpc32xx_nand_setup(struct lpc32xx_nand_host *host) host 243 drivers/mtd/nand/raw/lpc32xx_slc.c writel(SLCCTRL_SW_RESET, SLC_CTRL(host->io_base)); host 247 drivers/mtd/nand/raw/lpc32xx_slc.c writel(0, SLC_CFG(host->io_base)); host 248 drivers/mtd/nand/raw/lpc32xx_slc.c writel(0, SLC_IEN(host->io_base)); host 250 drivers/mtd/nand/raw/lpc32xx_slc.c SLC_ICR(host->io_base)); host 253 drivers/mtd/nand/raw/lpc32xx_slc.c clkrate = clk_get_rate(host->clk); host 258 drivers/mtd/nand/raw/lpc32xx_slc.c tmp = SLCTAC_WDR(host->ncfg->wdr_clks) | host 259 drivers/mtd/nand/raw/lpc32xx_slc.c SLCTAC_WWIDTH(clkrate, host->ncfg->wwidth) | host 260 drivers/mtd/nand/raw/lpc32xx_slc.c SLCTAC_WHOLD(clkrate, host->ncfg->whold) | host 261 drivers/mtd/nand/raw/lpc32xx_slc.c SLCTAC_WSETUP(clkrate, host->ncfg->wsetup) | host 262 drivers/mtd/nand/raw/lpc32xx_slc.c SLCTAC_RDR(host->ncfg->rdr_clks) | host 263 drivers/mtd/nand/raw/lpc32xx_slc.c SLCTAC_RWIDTH(clkrate, host->ncfg->rwidth) | host 264 drivers/mtd/nand/raw/lpc32xx_slc.c SLCTAC_RHOLD(clkrate, host->ncfg->rhold) | host 265 drivers/mtd/nand/raw/lpc32xx_slc.c SLCTAC_RSETUP(clkrate, host->ncfg->rsetup); host 266 drivers/mtd/nand/raw/lpc32xx_slc.c writel(tmp, SLC_TAC(host->io_base)); host 276 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 279 drivers/mtd/nand/raw/lpc32xx_slc.c tmp = readl(SLC_CFG(host->io_base)); host 284 drivers/mtd/nand/raw/lpc32xx_slc.c writel(tmp, SLC_CFG(host->io_base)); host 288 drivers/mtd/nand/raw/lpc32xx_slc.c writel(cmd, SLC_CMD(host->io_base)); host 290 drivers/mtd/nand/raw/lpc32xx_slc.c writel(cmd, SLC_ADDR(host->io_base)); host 299 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 302 drivers/mtd/nand/raw/lpc32xx_slc.c if ((readl(SLC_STAT(host->io_base)) & SLCSTAT_NAND_READY) != 0) host 311 drivers/mtd/nand/raw/lpc32xx_slc.c static void lpc32xx_wp_enable(struct lpc32xx_nand_host *host) host 313 drivers/mtd/nand/raw/lpc32xx_slc.c if (gpio_is_valid(host->ncfg->wp_gpio)) host 314 drivers/mtd/nand/raw/lpc32xx_slc.c gpio_set_value(host->ncfg->wp_gpio, 0); host 320 drivers/mtd/nand/raw/lpc32xx_slc.c static void lpc32xx_wp_disable(struct lpc32xx_nand_host *host) host 322 drivers/mtd/nand/raw/lpc32xx_slc.c if (gpio_is_valid(host->ncfg->wp_gpio)) host 323 drivers/mtd/nand/raw/lpc32xx_slc.c gpio_set_value(host->ncfg->wp_gpio, 1); host 353 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 355 drivers/mtd/nand/raw/lpc32xx_slc.c return (uint8_t)readl(SLC_DATA(host->io_base)); host 363 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 367 drivers/mtd/nand/raw/lpc32xx_slc.c *buf++ = (uint8_t)readl(SLC_DATA(host->io_base)); host 376 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 380 drivers/mtd/nand/raw/lpc32xx_slc.c writel((uint32_t)*buf++, SLC_DATA(host->io_base)); host 431 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 436 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_slave_config.direction = dir; host 437 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_slave_config.src_addr = dma; host 438 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_slave_config.dst_addr = dma; host 439 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_slave_config.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 440 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_slave_config.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 441 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_slave_config.src_maxburst = 4; host 442 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_slave_config.dst_maxburst = 4; host 444 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_slave_config.device_fc = false; host 445 drivers/mtd/nand/raw/lpc32xx_slc.c if (dmaengine_slave_config(host->dma_chan, &host->dma_slave_config)) { host 450 drivers/mtd/nand/raw/lpc32xx_slc.c sg_init_one(&host->sgl, mem, len); host 452 drivers/mtd/nand/raw/lpc32xx_slc.c res = dma_map_sg(host->dma_chan->device->dev, &host->sgl, 1, host 458 drivers/mtd/nand/raw/lpc32xx_slc.c desc = dmaengine_prep_slave_sg(host->dma_chan, &host->sgl, 1, dir, host 465 drivers/mtd/nand/raw/lpc32xx_slc.c init_completion(&host->comp); host 467 drivers/mtd/nand/raw/lpc32xx_slc.c desc->callback_param = &host->comp; host 470 drivers/mtd/nand/raw/lpc32xx_slc.c dma_async_issue_pending(host->dma_chan); host 472 drivers/mtd/nand/raw/lpc32xx_slc.c wait_for_completion_timeout(&host->comp, msecs_to_jiffies(1000)); host 474 drivers/mtd/nand/raw/lpc32xx_slc.c dma_unmap_sg(host->dma_chan->device->dev, &host->sgl, 1, host 479 drivers/mtd/nand/raw/lpc32xx_slc.c dma_unmap_sg(host->dma_chan->device->dev, &host->sgl, 1, host 491 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 504 drivers/mtd/nand/raw/lpc32xx_slc.c dma_buf = host->data_buf; host 507 drivers/mtd/nand/raw/lpc32xx_slc.c memcpy(host->data_buf, buf, mtd->writesize); host 511 drivers/mtd/nand/raw/lpc32xx_slc.c writel(readl(SLC_CFG(host->io_base)) | host 513 drivers/mtd/nand/raw/lpc32xx_slc.c SLCCFG_DMA_BURST, SLC_CFG(host->io_base)); host 515 drivers/mtd/nand/raw/lpc32xx_slc.c writel((readl(SLC_CFG(host->io_base)) | host 518 drivers/mtd/nand/raw/lpc32xx_slc.c SLC_CFG(host->io_base)); host 522 drivers/mtd/nand/raw/lpc32xx_slc.c writel(SLCCTRL_ECC_CLEAR, SLC_CTRL(host->io_base)); host 525 drivers/mtd/nand/raw/lpc32xx_slc.c writel(mtd->writesize, SLC_TC(host->io_base)); host 528 drivers/mtd/nand/raw/lpc32xx_slc.c writel(readl(SLC_CTRL(host->io_base)) | SLCCTRL_DMA_START, host 529 drivers/mtd/nand/raw/lpc32xx_slc.c SLC_CTRL(host->io_base)); host 533 drivers/mtd/nand/raw/lpc32xx_slc.c res = lpc32xx_xmit_dma(mtd, SLC_DMA_DATA(host->io_base_dma), host 544 drivers/mtd/nand/raw/lpc32xx_slc.c res = lpc32xx_xmit_dma(mtd, SLC_ECC(host->io_base_dma), host 545 drivers/mtd/nand/raw/lpc32xx_slc.c &host->ecc_buf[i], 4, DMA_DEV_TO_MEM); host 557 drivers/mtd/nand/raw/lpc32xx_slc.c if (readl(SLC_STAT(host->io_base)) & SLCSTAT_DMA_FIFO) { host 560 drivers/mtd/nand/raw/lpc32xx_slc.c while ((readl(SLC_STAT(host->io_base)) & SLCSTAT_DMA_FIFO) && host 572 drivers/mtd/nand/raw/lpc32xx_slc.c host->ecc_buf[chip->ecc.steps - 1] = host 573 drivers/mtd/nand/raw/lpc32xx_slc.c readl(SLC_ECC(host->io_base)); host 576 drivers/mtd/nand/raw/lpc32xx_slc.c dmaengine_terminate_all(host->dma_chan); host 578 drivers/mtd/nand/raw/lpc32xx_slc.c if (readl(SLC_STAT(host->io_base)) & SLCSTAT_DMA_FIFO || host 579 drivers/mtd/nand/raw/lpc32xx_slc.c readl(SLC_TC(host->io_base))) { host 586 drivers/mtd/nand/raw/lpc32xx_slc.c writel(readl(SLC_CTRL(host->io_base)) & ~SLCCTRL_DMA_START, host 587 drivers/mtd/nand/raw/lpc32xx_slc.c SLC_CTRL(host->io_base)); host 588 drivers/mtd/nand/raw/lpc32xx_slc.c writel(readl(SLC_CFG(host->io_base)) & host 590 drivers/mtd/nand/raw/lpc32xx_slc.c SLCCFG_DMA_BURST), SLC_CFG(host->io_base)); host 593 drivers/mtd/nand/raw/lpc32xx_slc.c memcpy(buf, host->data_buf, mtd->writesize); host 606 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 621 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_slc_ecc_copy(tmpecc, (uint32_t *) host->ecc_buf, chip->ecc.steps); host 674 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 695 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_slc_ecc_copy(pb, (uint32_t *)host->ecc_buf, chip->ecc.steps); host 721 drivers/mtd/nand/raw/lpc32xx_slc.c static int lpc32xx_nand_dma_setup(struct lpc32xx_nand_host *host) host 723 drivers/mtd/nand/raw/lpc32xx_slc.c struct mtd_info *mtd = nand_to_mtd(&host->nand_chip); host 726 drivers/mtd/nand/raw/lpc32xx_slc.c if (!host->pdata || !host->pdata->dma_filter) { host 733 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_chan = dma_request_channel(mask, host->pdata->dma_filter, host 735 drivers/mtd/nand/raw/lpc32xx_slc.c if (!host->dma_chan) { host 776 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = nand_get_controller_data(chip); host 779 drivers/mtd/nand/raw/lpc32xx_slc.c host->ecc_buf = (uint32_t *)(host->data_buf + LPC32XX_DMA_DATA_SIZE); host 818 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host; host 825 drivers/mtd/nand/raw/lpc32xx_slc.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 826 drivers/mtd/nand/raw/lpc32xx_slc.c if (!host) host 830 drivers/mtd/nand/raw/lpc32xx_slc.c host->io_base = devm_ioremap_resource(&pdev->dev, rc); host 831 drivers/mtd/nand/raw/lpc32xx_slc.c if (IS_ERR(host->io_base)) host 832 drivers/mtd/nand/raw/lpc32xx_slc.c return PTR_ERR(host->io_base); host 834 drivers/mtd/nand/raw/lpc32xx_slc.c host->io_base_dma = rc->start; host 836 drivers/mtd/nand/raw/lpc32xx_slc.c host->ncfg = lpc32xx_parse_dt(&pdev->dev); host 837 drivers/mtd/nand/raw/lpc32xx_slc.c if (!host->ncfg) { host 842 drivers/mtd/nand/raw/lpc32xx_slc.c if (host->ncfg->wp_gpio == -EPROBE_DEFER) host 844 drivers/mtd/nand/raw/lpc32xx_slc.c if (gpio_is_valid(host->ncfg->wp_gpio) && devm_gpio_request(&pdev->dev, host 845 drivers/mtd/nand/raw/lpc32xx_slc.c host->ncfg->wp_gpio, "NAND WP")) { host 849 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_wp_disable(host); host 851 drivers/mtd/nand/raw/lpc32xx_slc.c host->pdata = dev_get_platdata(&pdev->dev); host 853 drivers/mtd/nand/raw/lpc32xx_slc.c chip = &host->nand_chip; host 855 drivers/mtd/nand/raw/lpc32xx_slc.c nand_set_controller_data(chip, host); host 861 drivers/mtd/nand/raw/lpc32xx_slc.c host->clk = devm_clk_get(&pdev->dev, NULL); host 862 drivers/mtd/nand/raw/lpc32xx_slc.c if (IS_ERR(host->clk)) { host 867 drivers/mtd/nand/raw/lpc32xx_slc.c res = clk_prepare_enable(host->clk); host 872 drivers/mtd/nand/raw/lpc32xx_slc.c chip->legacy.IO_ADDR_R = SLC_DATA(host->io_base); host 873 drivers/mtd/nand/raw/lpc32xx_slc.c chip->legacy.IO_ADDR_W = SLC_DATA(host->io_base); host 879 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_nand_setup(host); host 881 drivers/mtd/nand/raw/lpc32xx_slc.c platform_set_drvdata(pdev, host); host 903 drivers/mtd/nand/raw/lpc32xx_slc.c host->dma_buf_len = LPC32XX_DMA_DATA_SIZE + LPC32XX_ECC_SAVE_SIZE; host 904 drivers/mtd/nand/raw/lpc32xx_slc.c host->data_buf = devm_kzalloc(&pdev->dev, host->dma_buf_len, host 906 drivers/mtd/nand/raw/lpc32xx_slc.c if (host->data_buf == NULL) { host 911 drivers/mtd/nand/raw/lpc32xx_slc.c res = lpc32xx_nand_dma_setup(host); host 924 drivers/mtd/nand/raw/lpc32xx_slc.c res = mtd_device_register(mtd, host->ncfg->parts, host 925 drivers/mtd/nand/raw/lpc32xx_slc.c host->ncfg->num_parts); host 934 drivers/mtd/nand/raw/lpc32xx_slc.c dma_release_channel(host->dma_chan); host 936 drivers/mtd/nand/raw/lpc32xx_slc.c clk_disable_unprepare(host->clk); host 938 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_wp_enable(host); host 949 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = platform_get_drvdata(pdev); host 951 drivers/mtd/nand/raw/lpc32xx_slc.c nand_release(&host->nand_chip); host 952 drivers/mtd/nand/raw/lpc32xx_slc.c dma_release_channel(host->dma_chan); host 955 drivers/mtd/nand/raw/lpc32xx_slc.c tmp = readl(SLC_CTRL(host->io_base)); host 957 drivers/mtd/nand/raw/lpc32xx_slc.c writel(tmp, SLC_CTRL(host->io_base)); host 959 drivers/mtd/nand/raw/lpc32xx_slc.c clk_disable_unprepare(host->clk); host 960 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_wp_enable(host); host 968 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = platform_get_drvdata(pdev); host 972 drivers/mtd/nand/raw/lpc32xx_slc.c ret = clk_prepare_enable(host->clk); host 977 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_nand_setup(host); host 980 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_wp_disable(host); host 988 drivers/mtd/nand/raw/lpc32xx_slc.c struct lpc32xx_nand_host *host = platform_get_drvdata(pdev); host 991 drivers/mtd/nand/raw/lpc32xx_slc.c tmp = readl(SLC_CTRL(host->io_base)); host 993 drivers/mtd/nand/raw/lpc32xx_slc.c writel(tmp, SLC_CTRL(host->io_base)); host 996 drivers/mtd/nand/raw/lpc32xx_slc.c lpc32xx_wp_enable(host); host 999 drivers/mtd/nand/raw/lpc32xx_slc.c clk_disable_unprepare(host->clk); host 29 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_BUF_SIZE (host->regs + 0x00) host 30 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_BUF_ADDR (host->regs + 0x04) host 31 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_FLASH_ADDR (host->regs + 0x06) host 32 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_FLASH_CMD (host->regs + 0x08) host 33 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_CONFIG (host->regs + 0x0a) host 34 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_ECC_STATUS_RESULT (host->regs + 0x0c) host 35 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_RSLTMAIN_AREA (host->regs + 0x0e) host 36 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_RSLTSPARE_AREA (host->regs + 0x10) host 37 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_WRPROT (host->regs + 0x12) host 38 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_UNLOCKSTART_BLKADDR (host->regs + 0x14) host 39 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_UNLOCKEND_BLKADDR (host->regs + 0x16) host 40 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_UNLOCKSTART_BLKADDR0 (host->regs + 0x20) host 41 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_UNLOCKSTART_BLKADDR1 (host->regs + 0x24) host 42 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_UNLOCKSTART_BLKADDR2 (host->regs + 0x28) host 43 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_UNLOCKSTART_BLKADDR3 (host->regs + 0x2c) host 44 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_UNLOCKEND_BLKADDR0 (host->regs + 0x22) host 45 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_UNLOCKEND_BLKADDR1 (host->regs + 0x26) host 46 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_UNLOCKEND_BLKADDR2 (host->regs + 0x2a) host 47 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V21_UNLOCKEND_BLKADDR3 (host->regs + 0x2e) host 48 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_NF_WRPRST (host->regs + 0x18) host 49 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_CONFIG1 (host->regs + 0x1a) host 50 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V1_V2_CONFIG2 (host->regs + 0x1c) host 76 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_FLASH_CMD (host->regs_axi + 0x00) host 77 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_FLASH_ADDR0 (host->regs_axi + 0x04) host 79 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_CONFIG1 (host->regs_axi + 0x34) host 83 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_ECC_STATUS_RESULT (host->regs_axi + 0x38) host 85 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_LAUNCH (host->regs_axi + 0x40) host 87 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_WRPROT (host->regs_ip + 0x0) host 93 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_WRPROT_UNLOCK_BLK_ADD0 (host->regs_ip + 0x04) host 95 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_CONFIG2 (host->regs_ip + 0x24) host 110 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_CONFIG3 (host->regs_ip + 0x28) host 118 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_IPC (host->regs_ip + 0x2C) host 122 drivers/mtd/nand/raw/mxc_nand.c #define NFC_V3_DELAY_LINE (host->regs_ip + 0x34) host 253 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(this); host 258 drivers/mtd/nand/raw/mxc_nand.c u8 __iomem *s = host->spare0; host 259 drivers/mtd/nand/raw/mxc_nand.c u16 sparebuf_size = host->devtype_data->spare_len; host 262 drivers/mtd/nand/raw/mxc_nand.c oob_chunk_size = (host->used_oobsize / num_chunks) & ~1; host 273 drivers/mtd/nand/raw/mxc_nand.c host->used_oobsize - i * oob_chunk_size); host 283 drivers/mtd/nand/raw/mxc_nand.c host->used_oobsize - i * oob_chunk_size); host 296 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 300 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, column & 0xff, host 304 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, host 312 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, (page_addr & 0xff), false); host 317 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, host 320 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, host 325 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, host 330 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, host 333 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, host 338 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_addr(host, host 344 drivers/mtd/nand/raw/mxc_nand.c static int check_int_v3(struct mxc_nand_host *host) host 358 drivers/mtd/nand/raw/mxc_nand.c static int check_int_v1_v2(struct mxc_nand_host *host) host 366 drivers/mtd/nand/raw/mxc_nand.c if (!host->devtype_data->irqpending_quirk) host 372 drivers/mtd/nand/raw/mxc_nand.c static void irq_control_v1_v2(struct mxc_nand_host *host, int activate) host 386 drivers/mtd/nand/raw/mxc_nand.c static void irq_control_v3(struct mxc_nand_host *host, int activate) host 400 drivers/mtd/nand/raw/mxc_nand.c static void irq_control(struct mxc_nand_host *host, int activate) host 402 drivers/mtd/nand/raw/mxc_nand.c if (host->devtype_data->irqpending_quirk) { host 404 drivers/mtd/nand/raw/mxc_nand.c enable_irq(host->irq); host 406 drivers/mtd/nand/raw/mxc_nand.c disable_irq_nosync(host->irq); host 408 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->irq_control(host, activate); host 412 drivers/mtd/nand/raw/mxc_nand.c static u32 get_ecc_status_v1(struct mxc_nand_host *host) host 417 drivers/mtd/nand/raw/mxc_nand.c static u32 get_ecc_status_v2(struct mxc_nand_host *host) host 422 drivers/mtd/nand/raw/mxc_nand.c static u32 get_ecc_status_v3(struct mxc_nand_host *host) host 429 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = dev_id; host 431 drivers/mtd/nand/raw/mxc_nand.c if (!host->devtype_data->check_int(host)) host 434 drivers/mtd/nand/raw/mxc_nand.c irq_control(host, 0); host 436 drivers/mtd/nand/raw/mxc_nand.c complete(&host->op_completion); host 444 drivers/mtd/nand/raw/mxc_nand.c static int wait_op_done(struct mxc_nand_host *host, int useirq) host 452 drivers/mtd/nand/raw/mxc_nand.c if (host->devtype_data->check_int(host)) host 458 drivers/mtd/nand/raw/mxc_nand.c reinit_completion(&host->op_completion); host 460 drivers/mtd/nand/raw/mxc_nand.c irq_control(host, 1); host 462 drivers/mtd/nand/raw/mxc_nand.c timeout = wait_for_completion_timeout(&host->op_completion, HZ); host 463 drivers/mtd/nand/raw/mxc_nand.c if (!timeout && !host->devtype_data->check_int(host)) { host 464 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "timeout waiting for irq\n"); host 474 drivers/mtd/nand/raw/mxc_nand.c done = host->devtype_data->check_int(host); host 481 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "timeout polling for completion\n"); host 491 drivers/mtd/nand/raw/mxc_nand.c static void send_cmd_v3(struct mxc_nand_host *host, uint16_t cmd, int useirq) host 500 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, useirq); host 505 drivers/mtd/nand/raw/mxc_nand.c static void send_cmd_v1_v2(struct mxc_nand_host *host, uint16_t cmd, int useirq) host 507 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "send_cmd(host, 0x%x, %d)\n", cmd, useirq); host 512 drivers/mtd/nand/raw/mxc_nand.c if (host->devtype_data->irqpending_quirk && (cmd == NAND_CMD_RESET)) { host 523 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "%s: RESET failed\n", __func__); host 526 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, useirq); host 530 drivers/mtd/nand/raw/mxc_nand.c static void send_addr_v3(struct mxc_nand_host *host, uint16_t addr, int islast) host 538 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, 0); host 544 drivers/mtd/nand/raw/mxc_nand.c static void send_addr_v1_v2(struct mxc_nand_host *host, uint16_t addr, int islast) host 546 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "send_addr(host, 0x%x %d)\n", addr, islast); host 552 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, islast); host 558 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 568 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, false); host 574 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 577 drivers/mtd/nand/raw/mxc_nand.c writew(host->active_cs << 4, NFC_V1_V2_BUF_ADDR); host 582 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, true); host 588 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 599 drivers/mtd/nand/raw/mxc_nand.c writew((host->active_cs << 4) | i, NFC_V1_V2_BUF_ADDR); host 604 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, true); host 608 drivers/mtd/nand/raw/mxc_nand.c static void send_read_id_v3(struct mxc_nand_host *host) host 613 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, true); host 615 drivers/mtd/nand/raw/mxc_nand.c memcpy32_fromio(host->data_buf, host->main_area0, 16); host 619 drivers/mtd/nand/raw/mxc_nand.c static void send_read_id_v1_v2(struct mxc_nand_host *host) host 622 drivers/mtd/nand/raw/mxc_nand.c writew(host->active_cs << 4, NFC_V1_V2_BUF_ADDR); host 627 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, true); host 629 drivers/mtd/nand/raw/mxc_nand.c memcpy32_fromio(host->data_buf, host->main_area0, 16); host 632 drivers/mtd/nand/raw/mxc_nand.c static uint16_t get_dev_status_v3(struct mxc_nand_host *host) host 635 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, true); host 642 drivers/mtd/nand/raw/mxc_nand.c static uint16_t get_dev_status_v1_v2(struct mxc_nand_host *host) host 644 drivers/mtd/nand/raw/mxc_nand.c void __iomem *main_buf = host->main_area0; host 648 drivers/mtd/nand/raw/mxc_nand.c writew(host->active_cs << 4, NFC_V1_V2_BUF_ADDR); host 658 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, true); host 669 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 687 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 717 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 722 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->enable_hwecc(chip, ecc); host 724 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, NAND_CMD_READ0, false); host 728 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, NAND_CMD_READSTART, true); host 736 drivers/mtd/nand/raw/mxc_nand.c writew((host->active_cs << 4) | i, NFC_V1_V2_BUF_ADDR); host 741 drivers/mtd/nand/raw/mxc_nand.c wait_op_done(host, true); host 743 drivers/mtd/nand/raw/mxc_nand.c ecc_stats = get_ecc_status_v1(host); host 764 drivers/mtd/nand/raw/mxc_nand.c memcpy32_fromio(buf, host->main_area0, mtd->writesize); host 775 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 781 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->enable_hwecc(chip, ecc); host 783 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, NAND_CMD_READ0, false); host 787 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, host 790 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_page(mtd, NFC_OUTPUT); host 793 drivers/mtd/nand/raw/mxc_nand.c memcpy32_fromio(buf, host->main_area0, mtd->writesize); host 797 drivers/mtd/nand/raw/mxc_nand.c ecc_bit_mask = (host->eccsize == 4) ? 0x7 : 0xf; host 798 drivers/mtd/nand/raw/mxc_nand.c err_limit = (host->eccsize == 4) ? 0x4 : 0x8; host 802 drivers/mtd/nand/raw/mxc_nand.c ecc_stat = host->devtype_data->get_ecc_status(host); host 822 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 830 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data->read_page(chip, buf, oob_buf, 1, page); host 836 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 844 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data->read_page(chip, buf, oob_buf, 0, page); host 849 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 851 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data->read_page(chip, NULL, chip->oob_poi, 0, host 859 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 861 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->enable_hwecc(chip, ecc); host 863 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, NAND_CMD_SEQIN, false); host 866 drivers/mtd/nand/raw/mxc_nand.c memcpy32_toio(host->main_area0, buf, mtd->writesize); host 869 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_page(mtd, NFC_INPUT); host 870 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, NAND_CMD_PAGEPROG, true); host 891 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 893 drivers/mtd/nand/raw/mxc_nand.c memset(host->data_buf, 0xff, mtd->writesize); host 895 drivers/mtd/nand/raw/mxc_nand.c return mxc_nand_write_page(chip, host->data_buf, false, page); host 900 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 904 drivers/mtd/nand/raw/mxc_nand.c if (host->status_request) host 905 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data->get_dev_status(host) & 0xFF; host 909 drivers/mtd/nand/raw/mxc_nand.c ret = *(uint16_t *)(host->data_buf + host->buf_start); host 911 drivers/mtd/nand/raw/mxc_nand.c host->buf_start += 2; host 913 drivers/mtd/nand/raw/mxc_nand.c ret = *(uint8_t *)(host->data_buf + host->buf_start); host 914 drivers/mtd/nand/raw/mxc_nand.c host->buf_start++; host 917 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "%s: ret=0x%hhx (start=%u)\n", __func__, ret, host->buf_start); host 928 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 929 drivers/mtd/nand/raw/mxc_nand.c u16 col = host->buf_start; host 934 drivers/mtd/nand/raw/mxc_nand.c memcpy(host->data_buf + col, buf, n); host 936 drivers/mtd/nand/raw/mxc_nand.c host->buf_start += n; host 947 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 948 drivers/mtd/nand/raw/mxc_nand.c u16 col = host->buf_start; host 953 drivers/mtd/nand/raw/mxc_nand.c memcpy(buf, host->data_buf + col, n); host 955 drivers/mtd/nand/raw/mxc_nand.c host->buf_start += n; host 962 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 966 drivers/mtd/nand/raw/mxc_nand.c if (host->clk_act) { host 967 drivers/mtd/nand/raw/mxc_nand.c clk_disable_unprepare(host->clk); host 968 drivers/mtd/nand/raw/mxc_nand.c host->clk_act = 0; host 973 drivers/mtd/nand/raw/mxc_nand.c if (!host->clk_act) { host 975 drivers/mtd/nand/raw/mxc_nand.c clk_prepare_enable(host->clk); host 976 drivers/mtd/nand/raw/mxc_nand.c host->clk_act = 1; host 982 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 986 drivers/mtd/nand/raw/mxc_nand.c if (host->clk_act) { host 987 drivers/mtd/nand/raw/mxc_nand.c clk_disable_unprepare(host->clk); host 988 drivers/mtd/nand/raw/mxc_nand.c host->clk_act = 0; host 993 drivers/mtd/nand/raw/mxc_nand.c if (!host->clk_act) { host 995 drivers/mtd/nand/raw/mxc_nand.c clk_prepare_enable(host->clk); host 996 drivers/mtd/nand/raw/mxc_nand.c host->clk_act = 1; host 999 drivers/mtd/nand/raw/mxc_nand.c host->active_cs = chip; host 1000 drivers/mtd/nand/raw/mxc_nand.c writew(host->active_cs << 4, NFC_V1_V2_BUF_ADDR); host 1117 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 1123 drivers/mtd/nand/raw/mxc_nand.c if (!host->devtype_data->irqpending_quirk) host 1126 drivers/mtd/nand/raw/mxc_nand.c host->eccsize = 1; host 1145 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 1167 drivers/mtd/nand/raw/mxc_nand.c rate_round = clk_round_rate(host->clk, rate); host 1172 drivers/mtd/nand/raw/mxc_nand.c rate_round = clk_round_rate(host->clk, rate); host 1196 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "Timing out of bounds\n"); host 1203 drivers/mtd/nand/raw/mxc_nand.c ret = clk_set_rate(host->clk, rate); host 1209 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "Setting rate to %ldHz, %s mode\n", rate_round, host 1219 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 1224 drivers/mtd/nand/raw/mxc_nand.c if (!host->devtype_data->irqpending_quirk) host 1233 drivers/mtd/nand/raw/mxc_nand.c host->eccsize = get_eccsize(mtd); host 1234 drivers/mtd/nand/raw/mxc_nand.c if (host->eccsize == 4) host 1239 drivers/mtd/nand/raw/mxc_nand.c host->eccsize = 1; host 1268 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 1311 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->ppb_shift); host 1312 drivers/mtd/nand/raw/mxc_nand.c host->eccsize = get_eccsize(mtd); host 1313 drivers/mtd/nand/raw/mxc_nand.c if (host->eccsize == 8) host 1339 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(nand_chip); host 1341 drivers/mtd/nand/raw/mxc_nand.c dev_dbg(host->dev, "mxc_nand_command (cmd = 0x%x, col = 0x%x, page = 0x%x)\n", host 1345 drivers/mtd/nand/raw/mxc_nand.c host->status_request = false; host 1350 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->preset(mtd); host 1351 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, command, false); host 1355 drivers/mtd/nand/raw/mxc_nand.c host->buf_start = 0; host 1356 drivers/mtd/nand/raw/mxc_nand.c host->status_request = true; host 1358 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, command, true); host 1366 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, command, true); host 1368 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_read_id(host); host 1369 drivers/mtd/nand/raw/mxc_nand.c host->buf_start = 0; host 1374 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, command, false); host 1382 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, command, false); host 1384 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_page(mtd, NFC_OUTPUT); host 1385 drivers/mtd/nand/raw/mxc_nand.c memcpy32_fromio(host->data_buf, host->main_area0, 512); host 1386 drivers/mtd/nand/raw/mxc_nand.c host->buf_start = 0; host 1399 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 1402 drivers/mtd/nand/raw/mxc_nand.c host->buf_start = 0; host 1407 drivers/mtd/nand/raw/mxc_nand.c memcpy32_toio(host->main_area0, host->data_buf, mtd->writesize); host 1408 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, NAND_CMD_SET_FEATURES, false); host 1410 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_page(mtd, NFC_INPUT); host 1419 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 1422 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_cmd(host, NAND_CMD_GET_FEATURES, false); host 1424 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->send_page(mtd, NFC_OUTPUT); host 1425 drivers/mtd/nand/raw/mxc_nand.c memcpy32_fromio(host->data_buf, host->main_area0, 512); host 1426 drivers/mtd/nand/raw/mxc_nand.c host->buf_start = 0; host 1588 drivers/mtd/nand/raw/mxc_nand.c static inline int is_imx21_nfc(struct mxc_nand_host *host) host 1590 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data == &imx21_nand_devtype_data; host 1593 drivers/mtd/nand/raw/mxc_nand.c static inline int is_imx27_nfc(struct mxc_nand_host *host) host 1595 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data == &imx27_nand_devtype_data; host 1598 drivers/mtd/nand/raw/mxc_nand.c static inline int is_imx25_nfc(struct mxc_nand_host *host) host 1600 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data == &imx25_nand_devtype_data; host 1603 drivers/mtd/nand/raw/mxc_nand.c static inline int is_imx51_nfc(struct mxc_nand_host *host) host 1605 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data == &imx51_nand_devtype_data; host 1608 drivers/mtd/nand/raw/mxc_nand.c static inline int is_imx53_nfc(struct mxc_nand_host *host) host 1610 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data == &imx53_nand_devtype_data; host 1657 drivers/mtd/nand/raw/mxc_nand.c static int mxcnd_probe_dt(struct mxc_nand_host *host) host 1659 drivers/mtd/nand/raw/mxc_nand.c struct device_node *np = host->dev->of_node; host 1661 drivers/mtd/nand/raw/mxc_nand.c of_match_device(mxcnd_dt_ids, host->dev); host 1666 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data = of_id->data; host 1671 drivers/mtd/nand/raw/mxc_nand.c static int mxcnd_probe_dt(struct mxc_nand_host *host) host 1680 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 1706 drivers/mtd/nand/raw/mxc_nand.c devm_kfree(dev, (void *)host->data_buf); host 1707 drivers/mtd/nand/raw/mxc_nand.c host->data_buf = devm_kzalloc(dev, mtd->writesize + mtd->oobsize, host 1709 drivers/mtd/nand/raw/mxc_nand.c if (!host->data_buf) host 1713 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->preset(mtd); host 1716 drivers/mtd/nand/raw/mxc_nand.c if (host->eccsize == 8) host 1718 drivers/mtd/nand/raw/mxc_nand.c else if (host->eccsize == 4) host 1729 drivers/mtd/nand/raw/mxc_nand.c host->used_oobsize = min(mtd->oobsize, 218U); host 1732 drivers/mtd/nand/raw/mxc_nand.c if (is_imx21_nfc(host) || is_imx27_nfc(host)) host 1735 drivers/mtd/nand/raw/mxc_nand.c chip->ecc.strength = (host->eccsize == 4) ? 4 : 8; host 1744 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = nand_get_controller_data(chip); host 1746 drivers/mtd/nand/raw/mxc_nand.c return host->devtype_data->setup_data_interface(chip, chipnr, conf); host 1758 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host; host 1763 drivers/mtd/nand/raw/mxc_nand.c host = devm_kzalloc(&pdev->dev, sizeof(struct mxc_nand_host), host 1765 drivers/mtd/nand/raw/mxc_nand.c if (!host) host 1769 drivers/mtd/nand/raw/mxc_nand.c host->data_buf = devm_kzalloc(&pdev->dev, PAGE_SIZE, GFP_KERNEL); host 1770 drivers/mtd/nand/raw/mxc_nand.c if (!host->data_buf) host 1773 drivers/mtd/nand/raw/mxc_nand.c host->dev = &pdev->dev; host 1775 drivers/mtd/nand/raw/mxc_nand.c this = &host->nand; host 1783 drivers/mtd/nand/raw/mxc_nand.c nand_set_controller_data(this, host); host 1793 drivers/mtd/nand/raw/mxc_nand.c host->clk = devm_clk_get(&pdev->dev, NULL); host 1794 drivers/mtd/nand/raw/mxc_nand.c if (IS_ERR(host->clk)) host 1795 drivers/mtd/nand/raw/mxc_nand.c return PTR_ERR(host->clk); host 1797 drivers/mtd/nand/raw/mxc_nand.c err = mxcnd_probe_dt(host); host 1802 drivers/mtd/nand/raw/mxc_nand.c host->pdata = *pdata; host 1803 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data = (struct mxc_nand_devtype_data *) host 1812 drivers/mtd/nand/raw/mxc_nand.c if (!host->devtype_data->setup_data_interface) host 1815 drivers/mtd/nand/raw/mxc_nand.c if (host->devtype_data->needs_ip) { host 1817 drivers/mtd/nand/raw/mxc_nand.c host->regs_ip = devm_ioremap_resource(&pdev->dev, res); host 1818 drivers/mtd/nand/raw/mxc_nand.c if (IS_ERR(host->regs_ip)) host 1819 drivers/mtd/nand/raw/mxc_nand.c return PTR_ERR(host->regs_ip); host 1826 drivers/mtd/nand/raw/mxc_nand.c host->base = devm_ioremap_resource(&pdev->dev, res); host 1827 drivers/mtd/nand/raw/mxc_nand.c if (IS_ERR(host->base)) host 1828 drivers/mtd/nand/raw/mxc_nand.c return PTR_ERR(host->base); host 1830 drivers/mtd/nand/raw/mxc_nand.c host->main_area0 = host->base; host 1832 drivers/mtd/nand/raw/mxc_nand.c if (host->devtype_data->regs_offset) host 1833 drivers/mtd/nand/raw/mxc_nand.c host->regs = host->base + host->devtype_data->regs_offset; host 1834 drivers/mtd/nand/raw/mxc_nand.c host->spare0 = host->base + host->devtype_data->spare0_offset; host 1835 drivers/mtd/nand/raw/mxc_nand.c if (host->devtype_data->axi_offset) host 1836 drivers/mtd/nand/raw/mxc_nand.c host->regs_axi = host->base + host->devtype_data->axi_offset; host 1838 drivers/mtd/nand/raw/mxc_nand.c this->ecc.bytes = host->devtype_data->eccbytes; host 1839 drivers/mtd/nand/raw/mxc_nand.c host->eccsize = host->devtype_data->eccsize; host 1841 drivers/mtd/nand/raw/mxc_nand.c this->legacy.select_chip = host->devtype_data->select_chip; host 1843 drivers/mtd/nand/raw/mxc_nand.c mtd_set_ooblayout(mtd, host->devtype_data->ooblayout); host 1845 drivers/mtd/nand/raw/mxc_nand.c if (host->pdata.hw_ecc) { host 1853 drivers/mtd/nand/raw/mxc_nand.c if (host->pdata.width == 2) host 1857 drivers/mtd/nand/raw/mxc_nand.c if (host->pdata.flash_bbt) host 1860 drivers/mtd/nand/raw/mxc_nand.c init_completion(&host->op_completion); host 1862 drivers/mtd/nand/raw/mxc_nand.c host->irq = platform_get_irq(pdev, 0); host 1863 drivers/mtd/nand/raw/mxc_nand.c if (host->irq < 0) host 1864 drivers/mtd/nand/raw/mxc_nand.c return host->irq; host 1871 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->irq_control(host, 0); host 1873 drivers/mtd/nand/raw/mxc_nand.c err = devm_request_irq(&pdev->dev, host->irq, mxc_nfc_irq, host 1874 drivers/mtd/nand/raw/mxc_nand.c 0, DRIVER_NAME, host); host 1878 drivers/mtd/nand/raw/mxc_nand.c err = clk_prepare_enable(host->clk); host 1881 drivers/mtd/nand/raw/mxc_nand.c host->clk_act = 1; host 1888 drivers/mtd/nand/raw/mxc_nand.c if (host->devtype_data->irqpending_quirk) { host 1889 drivers/mtd/nand/raw/mxc_nand.c disable_irq_nosync(host->irq); host 1890 drivers/mtd/nand/raw/mxc_nand.c host->devtype_data->irq_control(host, 1); host 1895 drivers/mtd/nand/raw/mxc_nand.c err = nand_scan(this, is_imx25_nfc(host) ? 4 : 1); host 1901 drivers/mtd/nand/raw/mxc_nand.c host->pdata.parts, host 1902 drivers/mtd/nand/raw/mxc_nand.c host->pdata.nr_parts); host 1906 drivers/mtd/nand/raw/mxc_nand.c platform_set_drvdata(pdev, host); host 1913 drivers/mtd/nand/raw/mxc_nand.c if (host->clk_act) host 1914 drivers/mtd/nand/raw/mxc_nand.c clk_disable_unprepare(host->clk); host 1921 drivers/mtd/nand/raw/mxc_nand.c struct mxc_nand_host *host = platform_get_drvdata(pdev); host 1923 drivers/mtd/nand/raw/mxc_nand.c nand_release(&host->nand); host 1924 drivers/mtd/nand/raw/mxc_nand.c if (host->clk_act) host 1925 drivers/mtd/nand/raw/mxc_nand.c clk_disable_unprepare(host->clk); host 1315 drivers/mtd/nand/raw/nandsim.c write_inode_now(mapping->host, 1); host 660 drivers/mtd/nand/raw/qcom_nandc.c static void set_address(struct qcom_nand_host *host, u16 column, int page) host 662 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 679 drivers/mtd/nand/raw/qcom_nandc.c static void update_rw_regs(struct qcom_nand_host *host, int num_cw, bool read) host 681 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 686 drivers/mtd/nand/raw/qcom_nandc.c if (host->use_ecc) host 694 drivers/mtd/nand/raw/qcom_nandc.c if (host->use_ecc) { host 695 drivers/mtd/nand/raw/qcom_nandc.c cfg0 = (host->cfg0 & ~(7U << CW_PER_PAGE)) | host 698 drivers/mtd/nand/raw/qcom_nandc.c cfg1 = host->cfg1; host 699 drivers/mtd/nand/raw/qcom_nandc.c ecc_bch_cfg = host->ecc_bch_cfg; host 701 drivers/mtd/nand/raw/qcom_nandc.c cfg0 = (host->cfg0_raw & ~(7U << CW_PER_PAGE)) | host 704 drivers/mtd/nand/raw/qcom_nandc.c cfg1 = host->cfg1_raw; host 712 drivers/mtd/nand/raw/qcom_nandc.c nandc_set_reg(nandc, NAND_EBI2_ECC_BUF_CFG, host->ecc_buf_cfg); host 713 drivers/mtd/nand/raw/qcom_nandc.c nandc_set_reg(nandc, NAND_FLASH_STATUS, host->clrflashstatus); host 714 drivers/mtd/nand/raw/qcom_nandc.c nandc_set_reg(nandc, NAND_READ_STATUS, host->clrreadstatus); host 718 drivers/mtd/nand/raw/qcom_nandc.c nandc_set_read_loc(nandc, 0, 0, host->use_ecc ? host 719 drivers/mtd/nand/raw/qcom_nandc.c host->cw_data : host->cw_size, 1); host 1155 drivers/mtd/nand/raw/qcom_nandc.c static int nandc_param(struct qcom_nand_host *host) host 1157 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1213 drivers/mtd/nand/raw/qcom_nandc.c static int erase_block(struct qcom_nand_host *host, int page_addr) host 1215 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1223 drivers/mtd/nand/raw/qcom_nandc.c host->cfg0_raw & ~(7 << CW_PER_PAGE)); host 1224 drivers/mtd/nand/raw/qcom_nandc.c nandc_set_reg(nandc, NAND_DEV0_CFG1, host->cfg1_raw); host 1226 drivers/mtd/nand/raw/qcom_nandc.c nandc_set_reg(nandc, NAND_FLASH_STATUS, host->clrflashstatus); host 1227 drivers/mtd/nand/raw/qcom_nandc.c nandc_set_reg(nandc, NAND_READ_STATUS, host->clrreadstatus); host 1242 drivers/mtd/nand/raw/qcom_nandc.c static int read_id(struct qcom_nand_host *host, int column) host 1244 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1266 drivers/mtd/nand/raw/qcom_nandc.c static int reset(struct qcom_nand_host *host) host 1268 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1364 drivers/mtd/nand/raw/qcom_nandc.c static void pre_command(struct qcom_nand_host *host, int command) host 1366 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1371 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = false; host 1372 drivers/mtd/nand/raw/qcom_nandc.c host->last_command = command; host 1386 drivers/mtd/nand/raw/qcom_nandc.c static void parse_erase_write_errors(struct qcom_nand_host *host, int command) host 1388 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1401 drivers/mtd/nand/raw/qcom_nandc.c host->status &= ~NAND_STATUS_WP; host 1406 drivers/mtd/nand/raw/qcom_nandc.c host->status |= NAND_STATUS_FAIL; host 1410 drivers/mtd/nand/raw/qcom_nandc.c static void post_command(struct qcom_nand_host *host, int command) host 1412 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1423 drivers/mtd/nand/raw/qcom_nandc.c parse_erase_write_errors(host, command); host 1439 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 1445 drivers/mtd/nand/raw/qcom_nandc.c pre_command(host, command); host 1449 drivers/mtd/nand/raw/qcom_nandc.c ret = reset(host); host 1455 drivers/mtd/nand/raw/qcom_nandc.c ret = read_id(host, column); host 1460 drivers/mtd/nand/raw/qcom_nandc.c ret = nandc_param(host); host 1465 drivers/mtd/nand/raw/qcom_nandc.c ret = erase_block(host, page_addr); host 1473 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = true; host 1474 drivers/mtd/nand/raw/qcom_nandc.c set_address(host, 0, page_addr); host 1475 drivers/mtd/nand/raw/qcom_nandc.c update_rw_regs(host, ecc->steps, true); host 1480 drivers/mtd/nand/raw/qcom_nandc.c set_address(host, 0, page_addr); host 1507 drivers/mtd/nand/raw/qcom_nandc.c post_command(host, command); host 1565 drivers/mtd/nand/raw/qcom_nandc.c static int check_flash_errors(struct qcom_nand_host *host, int cw_cnt) host 1567 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1586 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 1593 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = false; host 1596 drivers/mtd/nand/raw/qcom_nandc.c set_address(host, host->cw_size * cw, page); host 1597 drivers/mtd/nand/raw/qcom_nandc.c update_rw_regs(host, 1, true); host 1600 drivers/mtd/nand/raw/qcom_nandc.c data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); host 1601 drivers/mtd/nand/raw/qcom_nandc.c oob_size1 = host->bbm_size; host 1606 drivers/mtd/nand/raw/qcom_nandc.c oob_size2 = (ecc->steps * 4) + host->ecc_bytes_hw + host 1607 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes; host 1609 drivers/mtd/nand/raw/qcom_nandc.c data_size2 = host->cw_data - data_size1; host 1610 drivers/mtd/nand/raw/qcom_nandc.c oob_size2 = host->ecc_bytes_hw + host->spare_bytes; host 1646 drivers/mtd/nand/raw/qcom_nandc.c return check_flash_errors(host, 1); host 1665 drivers/mtd/nand/raw/qcom_nandc.c check_for_erased_page(struct qcom_nand_host *host, u8 *data_buf, host 1669 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1686 drivers/mtd/nand/raw/qcom_nandc.c oob_size = (ecc->steps * 4) + host->ecc_bytes_hw; host 1688 drivers/mtd/nand/raw/qcom_nandc.c data_size = host->cw_data; host 1689 drivers/mtd/nand/raw/qcom_nandc.c oob_size = host->ecc_bytes_hw; host 1693 drivers/mtd/nand/raw/qcom_nandc.c cw_data_buf = data_buf + (cw * host->cw_data); host 1706 drivers/mtd/nand/raw/qcom_nandc.c cw_oob_buf + host->bbm_size, host 1724 drivers/mtd/nand/raw/qcom_nandc.c static int parse_read_errors(struct qcom_nand_host *host, u8 *data_buf, host 1727 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1748 drivers/mtd/nand/raw/qcom_nandc.c data_len = host->cw_data; host 1769 drivers/mtd/nand/raw/qcom_nandc.c if (host->bch_enabled) { host 1819 drivers/mtd/nand/raw/qcom_nandc.c return check_for_erased_page(host, data_buf_start, oob_buf_start, host 1828 drivers/mtd/nand/raw/qcom_nandc.c static int read_page_ecc(struct qcom_nand_host *host, u8 *data_buf, host 1831 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1845 drivers/mtd/nand/raw/qcom_nandc.c oob_size = (ecc->steps << 2) + host->ecc_bytes_hw + host 1846 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes; host 1848 drivers/mtd/nand/raw/qcom_nandc.c data_size = host->cw_data; host 1849 drivers/mtd/nand/raw/qcom_nandc.c oob_size = host->ecc_bytes_hw + host->spare_bytes; host 1881 drivers/mtd/nand/raw/qcom_nandc.c for (j = 0; j < host->bbm_size; j++) host 1902 drivers/mtd/nand/raw/qcom_nandc.c return parse_read_errors(host, data_buf_start, oob_buf_start, page); host 1909 drivers/mtd/nand/raw/qcom_nandc.c static int copy_last_cw(struct qcom_nand_host *host, int page) host 1911 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 1919 drivers/mtd/nand/raw/qcom_nandc.c size = host->use_ecc ? host->cw_data : host->cw_size; host 1924 drivers/mtd/nand/raw/qcom_nandc.c set_address(host, host->cw_size * (ecc->steps - 1), page); host 1925 drivers/mtd/nand/raw/qcom_nandc.c update_rw_regs(host, 1, true); host 1927 drivers/mtd/nand/raw/qcom_nandc.c config_nand_single_cw_page_read(nandc, host->use_ecc); host 1944 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 1954 drivers/mtd/nand/raw/qcom_nandc.c return read_page_ecc(host, data_buf, oob_buf, page); host 1962 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 1973 drivers/mtd/nand/raw/qcom_nandc.c data_buf += host->cw_data; host 1983 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 1990 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = true; host 1991 drivers/mtd/nand/raw/qcom_nandc.c set_address(host, 0, page); host 1992 drivers/mtd/nand/raw/qcom_nandc.c update_rw_regs(host, ecc->steps, true); host 1994 drivers/mtd/nand/raw/qcom_nandc.c return read_page_ecc(host, NULL, chip->oob_poi, page); host 2001 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2015 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = true; host 2016 drivers/mtd/nand/raw/qcom_nandc.c update_rw_regs(host, ecc->steps, false); host 2024 drivers/mtd/nand/raw/qcom_nandc.c oob_size = (ecc->steps << 2) + host->ecc_bytes_hw + host 2025 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes; host 2027 drivers/mtd/nand/raw/qcom_nandc.c data_size = host->cw_data; host 2043 drivers/mtd/nand/raw/qcom_nandc.c oob_buf += host->bbm_size; host 2073 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2086 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = false; host 2087 drivers/mtd/nand/raw/qcom_nandc.c update_rw_regs(host, ecc->steps, false); host 2094 drivers/mtd/nand/raw/qcom_nandc.c data_size1 = mtd->writesize - host->cw_size * (ecc->steps - 1); host 2095 drivers/mtd/nand/raw/qcom_nandc.c oob_size1 = host->bbm_size; host 2100 drivers/mtd/nand/raw/qcom_nandc.c oob_size2 = (ecc->steps << 2) + host->ecc_bytes_hw + host 2101 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes; host 2103 drivers/mtd/nand/raw/qcom_nandc.c data_size2 = host->cw_data - data_size1; host 2104 drivers/mtd/nand/raw/qcom_nandc.c oob_size2 = host->ecc_bytes_hw + host->spare_bytes; host 2150 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2157 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = true; host 2164 drivers/mtd/nand/raw/qcom_nandc.c memset(nandc->data_buffer, 0xff, host->cw_data); host 2169 drivers/mtd/nand/raw/qcom_nandc.c set_address(host, host->cw_size * (ecc->steps - 1), page); host 2170 drivers/mtd/nand/raw/qcom_nandc.c update_rw_regs(host, 1, false); host 2192 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2205 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = false; host 2208 drivers/mtd/nand/raw/qcom_nandc.c ret = copy_last_cw(host, page); host 2212 drivers/mtd/nand/raw/qcom_nandc.c if (check_flash_errors(host, 1)) { host 2217 drivers/mtd/nand/raw/qcom_nandc.c bbpos = mtd->writesize - host->cw_size * (ecc->steps - 1); host 2229 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2242 drivers/mtd/nand/raw/qcom_nandc.c memset(nandc->data_buffer, 0x00, host->cw_size); host 2247 drivers/mtd/nand/raw/qcom_nandc.c host->use_ecc = false; host 2248 drivers/mtd/nand/raw/qcom_nandc.c set_address(host, host->cw_size * (ecc->steps - 1), page); host 2249 drivers/mtd/nand/raw/qcom_nandc.c update_rw_regs(host, 1, false); host 2253 drivers/mtd/nand/raw/qcom_nandc.c nandc->data_buffer, host->cw_size, 0); host 2276 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2281 drivers/mtd/nand/raw/qcom_nandc.c if (host->last_command == NAND_CMD_STATUS) { host 2282 drivers/mtd/nand/raw/qcom_nandc.c ret = host->status; host 2284 drivers/mtd/nand/raw/qcom_nandc.c host->status = NAND_STATUS_READY | NAND_STATUS_WP; host 2415 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2423 drivers/mtd/nand/raw/qcom_nandc.c host->bbm_size; host 2426 drivers/mtd/nand/raw/qcom_nandc.c oobregion->length = host->ecc_bytes_hw + host->spare_bytes; host 2437 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2444 drivers/mtd/nand/raw/qcom_nandc.c oobregion->offset = ((ecc->steps - 1) * ecc->bytes) + host->bbm_size; host 2465 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host = to_qcom_nand_host(chip); host 2490 drivers/mtd/nand/raw/qcom_nandc.c host->bch_enabled = true; host 2494 drivers/mtd/nand/raw/qcom_nandc.c host->ecc_bytes_hw = 14; host 2495 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes = 0; host 2496 drivers/mtd/nand/raw/qcom_nandc.c host->bbm_size = 2; host 2498 drivers/mtd/nand/raw/qcom_nandc.c host->ecc_bytes_hw = 13; host 2499 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes = 2; host 2500 drivers/mtd/nand/raw/qcom_nandc.c host->bbm_size = 1; host 2510 drivers/mtd/nand/raw/qcom_nandc.c host->bch_enabled = true; host 2514 drivers/mtd/nand/raw/qcom_nandc.c host->ecc_bytes_hw = 8; host 2515 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes = 2; host 2516 drivers/mtd/nand/raw/qcom_nandc.c host->bbm_size = 2; host 2518 drivers/mtd/nand/raw/qcom_nandc.c host->ecc_bytes_hw = 7; host 2519 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes = 4; host 2520 drivers/mtd/nand/raw/qcom_nandc.c host->bbm_size = 1; host 2524 drivers/mtd/nand/raw/qcom_nandc.c host->ecc_bytes_hw = 10; host 2527 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes = 0; host 2528 drivers/mtd/nand/raw/qcom_nandc.c host->bbm_size = 2; host 2530 drivers/mtd/nand/raw/qcom_nandc.c host->spare_bytes = 1; host 2531 drivers/mtd/nand/raw/qcom_nandc.c host->bbm_size = 1; host 2542 drivers/mtd/nand/raw/qcom_nandc.c ecc->bytes = host->ecc_bytes_hw + host->spare_bytes + host->bbm_size; host 2563 drivers/mtd/nand/raw/qcom_nandc.c host->cw_data = 516; host 2569 drivers/mtd/nand/raw/qcom_nandc.c host->cw_size = host->cw_data + ecc->bytes; host 2570 drivers/mtd/nand/raw/qcom_nandc.c bad_block_byte = mtd->writesize - host->cw_size * (cwperpage - 1) + 1; host 2572 drivers/mtd/nand/raw/qcom_nandc.c host->cfg0 = (cwperpage - 1) << CW_PER_PAGE host 2573 drivers/mtd/nand/raw/qcom_nandc.c | host->cw_data << UD_SIZE_BYTES host 2576 drivers/mtd/nand/raw/qcom_nandc.c | host->ecc_bytes_hw << ECC_PARITY_SIZE_BYTES_RS host 2579 drivers/mtd/nand/raw/qcom_nandc.c | host->spare_bytes << SPARE_SIZE_BYTES; host 2581 drivers/mtd/nand/raw/qcom_nandc.c host->cfg1 = 7 << NAND_RECOVERY_CYCLES host 2587 drivers/mtd/nand/raw/qcom_nandc.c | host->bch_enabled << ENABLE_BCH_ECC; host 2589 drivers/mtd/nand/raw/qcom_nandc.c host->cfg0_raw = (cwperpage - 1) << CW_PER_PAGE host 2590 drivers/mtd/nand/raw/qcom_nandc.c | host->cw_size << UD_SIZE_BYTES host 2594 drivers/mtd/nand/raw/qcom_nandc.c host->cfg1_raw = 7 << NAND_RECOVERY_CYCLES host 2602 drivers/mtd/nand/raw/qcom_nandc.c host->ecc_bch_cfg = !host->bch_enabled << ECC_CFG_ECC_DISABLE host 2604 drivers/mtd/nand/raw/qcom_nandc.c | host->cw_data << ECC_NUM_DATA_BYTES host 2607 drivers/mtd/nand/raw/qcom_nandc.c | host->ecc_bytes_hw << ECC_PARITY_SIZE_BYTES_BCH; host 2609 drivers/mtd/nand/raw/qcom_nandc.c host->ecc_buf_cfg = 0x203 << NUM_STEPS; host 2611 drivers/mtd/nand/raw/qcom_nandc.c host->clrflashstatus = FS_READY_BSY_N; host 2612 drivers/mtd/nand/raw/qcom_nandc.c host->clrreadstatus = 0xc0; host 2620 drivers/mtd/nand/raw/qcom_nandc.c host->cfg0, host->cfg1, host->ecc_buf_cfg, host->ecc_bch_cfg, host 2621 drivers/mtd/nand/raw/qcom_nandc.c host->cw_size, host->cw_data, ecc->strength, ecc->bytes, host 2774 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host, host 2777 drivers/mtd/nand/raw/qcom_nandc.c struct nand_chip *chip = &host->chip; host 2782 drivers/mtd/nand/raw/qcom_nandc.c ret = of_property_read_u32(dn, "reg", &host->cs); host 2789 drivers/mtd/nand/raw/qcom_nandc.c mtd->name = devm_kasprintf(dev, GFP_KERNEL, "qcom_nand.%d", host->cs); host 2820 drivers/mtd/nand/raw/qcom_nandc.c host->status = NAND_STATUS_READY | NAND_STATUS_WP; host 2847 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host; host 2851 drivers/mtd/nand/raw/qcom_nandc.c host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); host 2852 drivers/mtd/nand/raw/qcom_nandc.c if (!host) { host 2857 drivers/mtd/nand/raw/qcom_nandc.c ret = qcom_nand_host_init_and_register(nandc, host, child); host 2859 drivers/mtd/nand/raw/qcom_nandc.c devm_kfree(dev, host); host 2863 drivers/mtd/nand/raw/qcom_nandc.c list_add_tail(&host->node, &nandc->host_list); host 2984 drivers/mtd/nand/raw/qcom_nandc.c struct qcom_nand_host *host; host 2986 drivers/mtd/nand/raw/qcom_nandc.c list_for_each_entry(host, &nandc->host_list, node) host 2987 drivers/mtd/nand/raw/qcom_nandc.c nand_release(&host->chip); host 40 drivers/mtd/nand/raw/socrates_nand.c struct socrates_nand_host *host = nand_get_controller_data(this); host 43 drivers/mtd/nand/raw/socrates_nand.c out_be32(host->io_base, FPGA_NAND_ENABLE | host 59 drivers/mtd/nand/raw/socrates_nand.c struct socrates_nand_host *host = nand_get_controller_data(this); host 64 drivers/mtd/nand/raw/socrates_nand.c out_be32(host->io_base, val); host 66 drivers/mtd/nand/raw/socrates_nand.c buf[i] = (in_be32(host->io_base) >> host 88 drivers/mtd/nand/raw/socrates_nand.c struct socrates_nand_host *host = nand_get_controller_data(nand_chip); host 104 drivers/mtd/nand/raw/socrates_nand.c out_be32(host->io_base, val); host 112 drivers/mtd/nand/raw/socrates_nand.c struct socrates_nand_host *host = nand_get_controller_data(nand_chip); host 114 drivers/mtd/nand/raw/socrates_nand.c if (in_be32(host->io_base) & FPGA_NAND_BUSY) host 124 drivers/mtd/nand/raw/socrates_nand.c struct socrates_nand_host *host; host 130 drivers/mtd/nand/raw/socrates_nand.c host = devm_kzalloc(&ofdev->dev, sizeof(*host), GFP_KERNEL); host 131 drivers/mtd/nand/raw/socrates_nand.c if (!host) host 134 drivers/mtd/nand/raw/socrates_nand.c host->io_base = of_iomap(ofdev->dev.of_node, 0); host 135 drivers/mtd/nand/raw/socrates_nand.c if (host->io_base == NULL) { host 140 drivers/mtd/nand/raw/socrates_nand.c nand_chip = &host->nand_chip; host 142 drivers/mtd/nand/raw/socrates_nand.c host->dev = &ofdev->dev; host 145 drivers/mtd/nand/raw/socrates_nand.c nand_set_controller_data(nand_chip, host); host 162 drivers/mtd/nand/raw/socrates_nand.c dev_set_drvdata(&ofdev->dev, host); host 175 drivers/mtd/nand/raw/socrates_nand.c iounmap(host->io_base); host 184 drivers/mtd/nand/raw/socrates_nand.c struct socrates_nand_host *host = dev_get_drvdata(&ofdev->dev); host 186 drivers/mtd/nand/raw/socrates_nand.c nand_release(&host->nand_chip); host 188 drivers/mtd/nand/raw/socrates_nand.c iounmap(host->io_base); host 85 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host; host 103 drivers/mtd/spi-nor/hisi-sfc.c static inline int hisi_spi_nor_wait_op_finish(struct hifmc_host *host) host 107 drivers/mtd/spi-nor/hisi-sfc.c return readl_poll_timeout(host->regbase + FMC_INT, reg, host 137 drivers/mtd/spi-nor/hisi-sfc.c static void hisi_spi_nor_init(struct hifmc_host *host) host 144 drivers/mtd/spi-nor/hisi-sfc.c writel(reg, host->regbase + FMC_SPI_TIMING_CFG); host 150 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = priv->host; host 153 drivers/mtd/spi-nor/hisi-sfc.c mutex_lock(&host->lock); host 155 drivers/mtd/spi-nor/hisi-sfc.c ret = clk_set_rate(host->clk, priv->clkrate); host 159 drivers/mtd/spi-nor/hisi-sfc.c ret = clk_prepare_enable(host->clk); host 166 drivers/mtd/spi-nor/hisi-sfc.c mutex_unlock(&host->lock); host 173 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = priv->host; host 175 drivers/mtd/spi-nor/hisi-sfc.c clk_disable_unprepare(host->clk); host 176 drivers/mtd/spi-nor/hisi-sfc.c mutex_unlock(&host->lock); host 183 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = priv->host; host 187 drivers/mtd/spi-nor/hisi-sfc.c writel(reg, host->regbase + FMC_CMD); host 190 drivers/mtd/spi-nor/hisi-sfc.c writel(reg, host->regbase + FMC_DATA_NUM); host 193 drivers/mtd/spi-nor/hisi-sfc.c writel(reg, host->regbase + FMC_OP_CFG); host 195 drivers/mtd/spi-nor/hisi-sfc.c writel(0xff, host->regbase + FMC_INT_CLR); host 197 drivers/mtd/spi-nor/hisi-sfc.c writel(reg, host->regbase + FMC_OP); host 199 drivers/mtd/spi-nor/hisi-sfc.c return hisi_spi_nor_wait_op_finish(host); host 206 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = priv->host; host 213 drivers/mtd/spi-nor/hisi-sfc.c memcpy_fromio(buf, host->iobase, len); host 221 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = priv->host; host 224 drivers/mtd/spi-nor/hisi-sfc.c memcpy_toio(host->iobase, buf, len); host 233 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = priv->host; host 237 drivers/mtd/spi-nor/hisi-sfc.c reg = readl(host->regbase + FMC_CFG); host 242 drivers/mtd/spi-nor/hisi-sfc.c writel(reg, host->regbase + FMC_CFG); host 244 drivers/mtd/spi-nor/hisi-sfc.c writel(start_off, host->regbase + FMC_ADDRL); host 245 drivers/mtd/spi-nor/hisi-sfc.c writel(dma_buf, host->regbase + FMC_DMA_SADDR_D0); host 246 drivers/mtd/spi-nor/hisi-sfc.c writel(FMC_DMA_LEN_SET(len), host->regbase + FMC_DMA_LEN); host 256 drivers/mtd/spi-nor/hisi-sfc.c writel(reg, host->regbase + FMC_OP_CFG); host 258 drivers/mtd/spi-nor/hisi-sfc.c writel(0xff, host->regbase + FMC_INT_CLR); host 263 drivers/mtd/spi-nor/hisi-sfc.c writel(reg, host->regbase + FMC_OP_DMA); host 265 drivers/mtd/spi-nor/hisi-sfc.c return hisi_spi_nor_wait_op_finish(host); host 272 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = priv->host; host 280 drivers/mtd/spi-nor/hisi-sfc.c from + offset, host->dma_buffer, trans, FMC_OP_READ); host 285 drivers/mtd/spi-nor/hisi-sfc.c memcpy(read_buf + offset, host->buffer, trans); host 295 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = priv->host; host 302 drivers/mtd/spi-nor/hisi-sfc.c memcpy(host->buffer, write_buf + offset, trans); host 304 drivers/mtd/spi-nor/hisi-sfc.c to + offset, host->dma_buffer, trans, FMC_OP_WRITE); host 318 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host) host 327 drivers/mtd/spi-nor/hisi-sfc.c struct device *dev = host->dev; host 358 drivers/mtd/spi-nor/hisi-sfc.c priv->host = host; host 378 drivers/mtd/spi-nor/hisi-sfc.c host->nor[host->num_chip] = nor; host 379 drivers/mtd/spi-nor/hisi-sfc.c host->num_chip++; host 383 drivers/mtd/spi-nor/hisi-sfc.c static void hisi_spi_nor_unregister_all(struct hifmc_host *host) host 387 drivers/mtd/spi-nor/hisi-sfc.c for (i = 0; i < host->num_chip; i++) host 388 drivers/mtd/spi-nor/hisi-sfc.c mtd_device_unregister(&host->nor[i]->mtd); host 391 drivers/mtd/spi-nor/hisi-sfc.c static int hisi_spi_nor_register_all(struct hifmc_host *host) host 393 drivers/mtd/spi-nor/hisi-sfc.c struct device *dev = host->dev; host 398 drivers/mtd/spi-nor/hisi-sfc.c ret = hisi_spi_nor_register(np, host); host 402 drivers/mtd/spi-nor/hisi-sfc.c if (host->num_chip == HIFMC_MAX_CHIP_NUM) { host 412 drivers/mtd/spi-nor/hisi-sfc.c hisi_spi_nor_unregister_all(host); host 420 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host; host 423 drivers/mtd/spi-nor/hisi-sfc.c host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); host 424 drivers/mtd/spi-nor/hisi-sfc.c if (!host) host 427 drivers/mtd/spi-nor/hisi-sfc.c platform_set_drvdata(pdev, host); host 428 drivers/mtd/spi-nor/hisi-sfc.c host->dev = dev; host 431 drivers/mtd/spi-nor/hisi-sfc.c host->regbase = devm_ioremap_resource(dev, res); host 432 drivers/mtd/spi-nor/hisi-sfc.c if (IS_ERR(host->regbase)) host 433 drivers/mtd/spi-nor/hisi-sfc.c return PTR_ERR(host->regbase); host 436 drivers/mtd/spi-nor/hisi-sfc.c host->iobase = devm_ioremap_resource(dev, res); host 437 drivers/mtd/spi-nor/hisi-sfc.c if (IS_ERR(host->iobase)) host 438 drivers/mtd/spi-nor/hisi-sfc.c return PTR_ERR(host->iobase); host 440 drivers/mtd/spi-nor/hisi-sfc.c host->clk = devm_clk_get(dev, NULL); host 441 drivers/mtd/spi-nor/hisi-sfc.c if (IS_ERR(host->clk)) host 442 drivers/mtd/spi-nor/hisi-sfc.c return PTR_ERR(host->clk); host 450 drivers/mtd/spi-nor/hisi-sfc.c host->buffer = dmam_alloc_coherent(dev, HIFMC_DMA_MAX_LEN, host 451 drivers/mtd/spi-nor/hisi-sfc.c &host->dma_buffer, GFP_KERNEL); host 452 drivers/mtd/spi-nor/hisi-sfc.c if (!host->buffer) host 455 drivers/mtd/spi-nor/hisi-sfc.c ret = clk_prepare_enable(host->clk); host 459 drivers/mtd/spi-nor/hisi-sfc.c mutex_init(&host->lock); host 460 drivers/mtd/spi-nor/hisi-sfc.c hisi_spi_nor_init(host); host 461 drivers/mtd/spi-nor/hisi-sfc.c ret = hisi_spi_nor_register_all(host); host 463 drivers/mtd/spi-nor/hisi-sfc.c mutex_destroy(&host->lock); host 465 drivers/mtd/spi-nor/hisi-sfc.c clk_disable_unprepare(host->clk); host 471 drivers/mtd/spi-nor/hisi-sfc.c struct hifmc_host *host = platform_get_drvdata(pdev); host 473 drivers/mtd/spi-nor/hisi-sfc.c hisi_spi_nor_unregister_all(host); host 474 drivers/mtd/spi-nor/hisi-sfc.c mutex_destroy(&host->lock); host 475 drivers/mtd/spi-nor/hisi-sfc.c clk_disable_unprepare(host->clk); host 842 drivers/mtd/ubi/cdev.c ubi = ubi_get_by_major(imajor(file->f_mapping->host)); host 182 drivers/net/ethernet/sfc/falcon/filter.h __be32 host, __be16 port) host 189 drivers/net/ethernet/sfc/falcon/filter.h spec->loc_host[0] = host; host 208 drivers/net/ethernet/sfc/filter.h __be32 host, __be16 port) host 215 drivers/net/ethernet/sfc/filter.h spec->loc_host[0] = host; host 402 drivers/net/hippi/rrunner.c u32 misc, io, host, i; host 408 drivers/net/hippi/rrunner.c host = readl(®s->HostCtrl); host 409 drivers/net/hippi/rrunner.c writel(host | HALT_NIC, ®s->HostCtrl); host 419 drivers/net/hippi/rrunner.c writel(host, ®s->HostCtrl); host 105 drivers/net/wireless/ath/ath10k/sdio.c return mmc_wait_for_cmd(card->host, &io_cmd, 0); host 120 drivers/net/wireless/ath/ath10k/sdio.c ret = mmc_wait_for_cmd(card->host, &io_cmd, 0); host 1462 drivers/net/wireless/ath/ath10k/sdio.c ret = mmc_hw_reset(ar_sdio->func->card->host); host 147 drivers/net/wireless/ath/ath6kl/sdio.c return mmc_wait_for_cmd(card->host, &io_cmd, 0); host 325 drivers/net/wireless/ath/ath6kl/sdio.c mmc_wait_for_req(ar_sdio->func->card->host, &mmc_req); host 744 drivers/net/wireless/ath/ath6kl/sdio.c if (ar_sdio->func->card->host->max_segs < MAX_SCATTER_ENTRIES_PER_REQ) { host 746 drivers/net/wireless/ath/ath6kl/sdio.c ar_sdio->func->card->host->max_segs, host 923 drivers/net/wireless/ath/ath6kl/sdio.c if (func->card && func->card->host) host 924 drivers/net/wireless/ath/ath6kl/sdio.c func->card->host->pm_flags &= ~MMC_PM_KEEP_POWER; host 2361 drivers/net/wireless/ath/wil6210/debugfs.c blob->data = (void * __force)wil->csr + HOSTADDR(map->host); host 132 drivers/net/wireless/ath/wil6210/pcie_bus.c wil->iccm_base = iccm_section->host; host 427 drivers/net/wireless/ath/wil6210/wil6210.h u32 host; /* PCI/Host address - BAR0 + 0x880000 */ host 34 drivers/net/wireless/ath/wil6210/wil_crash_dump.c host_min = map->host; host 35 drivers/net/wireless/ath/wil6210/wil_crash_dump.c host_max = map->host + (map->to - map->from); host 43 drivers/net/wireless/ath/wil6210/wil_crash_dump.c if (map->host < host_min) host 44 drivers/net/wireless/ath/wil6210/wil_crash_dump.c host_min = map->host; host 46 drivers/net/wireless/ath/wil6210/wil_crash_dump.c tmp_max = map->host + (map->to - map->from); host 87 drivers/net/wireless/ath/wil6210/wil_crash_dump.c data = (void * __force)wil->csr + HOSTADDR(map->host); host 89 drivers/net/wireless/ath/wil6210/wil_crash_dump.c offset = map->host - host_min; host 253 drivers/net/wireless/ath/wil6210/wmi.c return x + fw_mapping[i].host - fw_mapping[i].from; host 351 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c mmc_wait_for_req(func->card->host, mr); host 753 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c struct mmc_host *host; host 759 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c host = func->card->host; host 760 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->sg_support = host->max_segs > 1; host 761 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c max_blocks = min_t(uint, host->max_blk_count, 511u); host 762 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->max_request_size = min_t(uint, host->max_req_size, host 764 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->max_segment_count = min_t(uint, host->max_segs, host 766 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c sdiodev->max_segment_size = host->max_seg_size; host 891 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c pm_runtime_allow(sdiodev->func1->card->host->parent); host 895 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c static void brcmf_sdiod_host_fixup(struct mmc_host *host) host 898 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c pm_runtime_forbid(host->parent); host 900 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c host->caps |= MMC_CAP_NONREMOVABLE; host 943 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c brcmf_sdiod_host_fixup(sdiodev->func2->card->host); host 832 drivers/net/wireless/marvell/libertas/if_sdio.c struct mmc_host *host = func->card->host; host 845 drivers/net/wireless/marvell/libertas/if_sdio.c (host->caps & MMC_CAP_SDIO_IRQ) && host 846 drivers/net/wireless/marvell/libertas/if_sdio.c (host->ios.bus_width == MMC_BUS_WIDTH_1)) { host 1059 drivers/net/wireless/marvell/libertas/if_sdio.c reset_host = card->func->card->host; host 1224 drivers/net/wireless/marvell/libertas/if_sdio.c priv->is_polling = !(func->card->host->caps & MMC_CAP_SDIO_IRQ); host 2233 drivers/net/wireless/marvell/mwifiex/sdio.c ret = mmc_hw_reset(func->card->host); host 75 drivers/net/wireless/rsi/rsi_91x_sdio.c return mmc_wait_for_cmd(card->host, &io_cmd, 0); host 100 drivers/net/wireless/rsi/rsi_91x_sdio.c err = mmc_wait_for_cmd(card->host, &io_cmd, 0); host 123 drivers/net/wireless/rsi/rsi_91x_sdio.c struct mmc_host *host; host 126 drivers/net/wireless/rsi/rsi_91x_sdio.c host = func->card->host; host 132 drivers/net/wireless/rsi/rsi_91x_sdio.c err = mmc_wait_for_cmd(host, &cmd, 3); host 172 drivers/net/wireless/rsi/rsi_91x_sdio.c struct mmc_host *host = card->host; host 192 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.chip_select = MMC_CS_DONTCARE; host 193 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.bus_mode = MMC_BUSMODE_OPENDRAIN; host 194 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.power_mode = MMC_POWER_UP; host 195 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.bus_width = MMC_BUS_WIDTH_1; host 196 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.timing = MMC_TIMING_LEGACY; host 197 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 205 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.clock = host->f_min; host 206 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.power_mode = MMC_POWER_ON; host 207 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 216 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.chip_select = MMC_CS_HIGH; host 217 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 224 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.chip_select = MMC_CS_DONTCARE; host 225 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 227 drivers/net/wireless/rsi/rsi_91x_sdio.c host->use_spi_crc = 0; host 272 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.bus_mode = MMC_BUSMODE_PUSHPULL; host 273 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 287 drivers/net/wireless/rsi/rsi_91x_sdio.c if (card->host->caps & MMC_CAP_SD_HIGHSPEED) { host 303 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.timing = MMC_TIMING_SD_HS; host 304 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 314 drivers/net/wireless/rsi/rsi_91x_sdio.c if (clock > host->f_max) host 315 drivers/net/wireless/rsi/rsi_91x_sdio.c clock = host->f_max; host 317 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.clock = clock; host 318 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 320 drivers/net/wireless/rsi/rsi_91x_sdio.c if (card->host->caps & MMC_CAP_4_BIT_DATA) { host 331 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.bus_width = MMC_BUS_WIDTH_4; host 332 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 347 drivers/net/wireless/rsi/rsi_91x_sdio.c struct mmc_host *host = dev->pfunction->card->host; host 351 drivers/net/wireless/rsi/rsi_91x_sdio.c if (clock > host->f_max) host 352 drivers/net/wireless/rsi/rsi_91x_sdio.c clock = host->f_max; host 353 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ios.clock = clock; host 354 drivers/net/wireless/rsi/rsi_91x_sdio.c host->ops->set_ios(host, &host->ios); host 157 drivers/net/wireless/ti/wlcore/sdio.c mmc_hw_reset(card->host); host 232 drivers/nfc/st-nci/se.c ndev->hci_dev->pipes[pipe_info[2]].host = host 310 drivers/nfc/st-nci/se.c u8 host, u8 event, host 321 drivers/nfc/st-nci/se.c r = nfc_se_connectivity(ndev->nfc_dev, host); host 351 drivers/nfc/st-nci/se.c r = nfc_se_transaction(ndev->nfc_dev, host, transaction); host 365 drivers/nfc/st-nci/se.c u8 host = ndev->hci_dev->pipes[pipe].host; host 375 drivers/nfc/st-nci/se.c st_nci_hci_connectivity_event_received(ndev, host, event, skb); host 392 drivers/nfc/st-nci/se.c ndev->hci_dev->pipes[pipe].host != ST_NCI_UICC_HOST_ID) host 895 drivers/nfc/st21nfca/core.c u8 host = hdev->pipes[pipe].dest_host; host 905 drivers/nfc/st21nfca/core.c return st21nfca_connectivity_event_received(hdev, host, host 293 drivers/nfc/st21nfca/se.c int st21nfca_connectivity_event_received(struct nfc_hci_dev *hdev, u8 host, host 304 drivers/nfc/st21nfca/se.c r = nfc_se_connectivity(hdev->ndev, host); host 336 drivers/nfc/st21nfca/se.c r = nfc_se_transaction(hdev->ndev, host, transaction); host 181 drivers/nfc/st21nfca/st21nfca.h int st21nfca_connectivity_event_received(struct nfc_hci_dev *hdev, u8 host, host 2233 drivers/nvme/host/core.c struct nvme_feat_host_behavior *host; host 2240 drivers/nvme/host/core.c host = kzalloc(sizeof(*host), GFP_KERNEL); host 2241 drivers/nvme/host/core.c if (!host) host 2244 drivers/nvme/host/core.c host->acre = NVME_ENABLE_ACRE; host 2246 drivers/nvme/host/core.c host, sizeof(*host), NULL); host 2247 drivers/nvme/host/core.c kfree(host); host 26 drivers/nvme/host/fabrics.c struct nvmf_host *host; host 28 drivers/nvme/host/fabrics.c list_for_each_entry(host, &nvmf_hosts, list) { host 29 drivers/nvme/host/fabrics.c if (!strcmp(host->nqn, hostnqn)) host 30 drivers/nvme/host/fabrics.c return host; host 38 drivers/nvme/host/fabrics.c struct nvmf_host *host; host 41 drivers/nvme/host/fabrics.c host = __nvmf_host_find(hostnqn); host 42 drivers/nvme/host/fabrics.c if (host) { host 43 drivers/nvme/host/fabrics.c kref_get(&host->ref); host 47 drivers/nvme/host/fabrics.c host = kmalloc(sizeof(*host), GFP_KERNEL); host 48 drivers/nvme/host/fabrics.c if (!host) host 51 drivers/nvme/host/fabrics.c kref_init(&host->ref); host 52 drivers/nvme/host/fabrics.c strlcpy(host->nqn, hostnqn, NVMF_NQN_SIZE); host 54 drivers/nvme/host/fabrics.c list_add_tail(&host->list, &nvmf_hosts); host 57 drivers/nvme/host/fabrics.c return host; host 62 drivers/nvme/host/fabrics.c struct nvmf_host *host; host 64 drivers/nvme/host/fabrics.c host = kmalloc(sizeof(*host), GFP_KERNEL); host 65 drivers/nvme/host/fabrics.c if (!host) host 68 drivers/nvme/host/fabrics.c kref_init(&host->ref); host 69 drivers/nvme/host/fabrics.c uuid_gen(&host->id); host 70 drivers/nvme/host/fabrics.c snprintf(host->nqn, NVMF_NQN_SIZE, host 71 drivers/nvme/host/fabrics.c "nqn.2014-08.org.nvmexpress:uuid:%pUb", &host->id); host 74 drivers/nvme/host/fabrics.c list_add_tail(&host->list, &nvmf_hosts); host 77 drivers/nvme/host/fabrics.c return host; host 82 drivers/nvme/host/fabrics.c struct nvmf_host *host = container_of(ref, struct nvmf_host, ref); host 85 drivers/nvme/host/fabrics.c list_del(&host->list); host 88 drivers/nvme/host/fabrics.c kfree(host); host 91 drivers/nvme/host/fabrics.c static void nvmf_host_put(struct nvmf_host *host) host 93 drivers/nvme/host/fabrics.c if (host) host 94 drivers/nvme/host/fabrics.c kref_put(&host->ref, nvmf_host_destroy); host 394 drivers/nvme/host/fabrics.c uuid_copy(&data->hostid, &ctrl->opts->host->id); host 397 drivers/nvme/host/fabrics.c strncpy(data->hostnqn, ctrl->opts->host->nqn, NVMF_NQN_SIZE); host 457 drivers/nvme/host/fabrics.c uuid_copy(&data->hostid, &ctrl->opts->host->id); host 460 drivers/nvme/host/fabrics.c strncpy(data->hostnqn, ctrl->opts->host->nqn, NVMF_NQN_SIZE); host 755 drivers/nvme/host/fabrics.c if (opts->host) { host 757 drivers/nvme/host/fabrics.c opts->host->nqn); host 774 drivers/nvme/host/fabrics.c nvmf_host_put(opts->host); host 775 drivers/nvme/host/fabrics.c opts->host = nvmf_host_add(p); host 777 drivers/nvme/host/fabrics.c if (!opts->host) { host 890 drivers/nvme/host/fabrics.c if (!opts->host) { host 892 drivers/nvme/host/fabrics.c opts->host = nvmf_default_host; host 895 drivers/nvme/host/fabrics.c uuid_copy(&opts->host->id, &hostid); host 974 drivers/nvme/host/fabrics.c nvmf_host_put(opts->host); host 106 drivers/nvme/host/fabrics.h struct nvmf_host *host; host 158 drivers/nvme/host/fabrics.h strcmp(opts->host->nqn, ctrl->opts->host->nqn) || host 159 drivers/nvme/host/fabrics.h memcmp(&opts->host->id, &ctrl->opts->host->id, sizeof(uuid_t))) host 1216 drivers/nvme/host/fc.c uuid_copy(&assoc_rqst->assoc_cmd.hostid, &ctrl->ctrl.opts->host->id); host 1217 drivers/nvme/host/fc.c strncpy(assoc_rqst->assoc_cmd.hostnqn, ctrl->ctrl.opts->host->nqn, host 701 drivers/nvme/target/configfs.c struct nvmet_host *host; host 710 drivers/nvme/target/configfs.c host = to_host(target); host 714 drivers/nvme/target/configfs.c link->host = host; host 725 drivers/nvme/target/configfs.c if (!strcmp(nvmet_host_name(p->host), nvmet_host_name(host))) host 729 drivers/nvme/target/configfs.c nvmet_subsys_disc_changed(subsys, host); host 743 drivers/nvme/target/configfs.c struct nvmet_host *host = to_host(target); host 748 drivers/nvme/target/configfs.c if (!strcmp(nvmet_host_name(p->host), nvmet_host_name(host))) host 756 drivers/nvme/target/configfs.c nvmet_subsys_disc_changed(subsys, host); host 1253 drivers/nvme/target/configfs.c struct nvmet_host *host = to_host(item); host 1255 drivers/nvme/target/configfs.c kfree(host); host 1270 drivers/nvme/target/configfs.c struct nvmet_host *host; host 1272 drivers/nvme/target/configfs.c host = kzalloc(sizeof(*host), GFP_KERNEL); host 1273 drivers/nvme/target/configfs.c if (!host) host 1276 drivers/nvme/target/configfs.c config_group_init_type_name(&host->group, name, &nvmet_host_type); host 1278 drivers/nvme/target/configfs.c return &host->group; host 1158 drivers/nvme/target/core.c if (!strcmp(nvmet_host_name(p->host), hostnqn)) host 52 drivers/nvme/target/discovery.c struct nvmet_host *host) host 58 drivers/nvme/target/discovery.c if (host && strcmp(nvmet_host_name(host), ctrl->hostnqn)) host 67 drivers/nvme/target/discovery.c struct nvmet_host *host) host 78 drivers/nvme/target/discovery.c __nvmet_subsys_disc_changed(port, subsys, host); host 253 drivers/nvme/target/nvmet.h static inline char *nvmet_host_name(struct nvmet_host *host) host 255 drivers/nvme/target/nvmet.h return config_item_name(&host->group.cg_item); host 260 drivers/nvme/target/nvmet.h struct nvmet_host *host; host 443 drivers/nvme/target/nvmet.h struct nvmet_host *host); host 574 drivers/of/address.c struct device_node **host) host 587 drivers/of/address.c *host = NULL; host 631 drivers/of/address.c *host = of_node_get(dev); host 666 drivers/of/address.c struct device_node *host; host 670 drivers/of/address.c in_addr, "ranges", &host); host 671 drivers/of/address.c if (host) { host 672 drivers/of/address.c of_node_put(host); host 700 drivers/of/address.c struct device_node *host; host 704 drivers/of/address.c in_addr, "dma-ranges", &host); host 706 drivers/of/address.c if (host) { host 707 drivers/of/address.c of_node_put(host); host 758 drivers/of/address.c struct device_node *host; host 761 drivers/of/address.c in_addr, "ranges", &host); host 762 drivers/of/address.c if (host) { host 764 drivers/of/address.c port = logic_pio_trans_hwaddr(&host->fwnode, taddr, size); host 765 drivers/of/address.c of_node_put(host); host 438 drivers/pci/controller/pci-ftpci100.c struct pci_host_bridge *host; host 446 drivers/pci/controller/pci-ftpci100.c host = devm_pci_alloc_host_bridge(dev, sizeof(*p)); host 447 drivers/pci/controller/pci-ftpci100.c if (!host) host 450 drivers/pci/controller/pci-ftpci100.c host->dev.parent = dev; host 451 drivers/pci/controller/pci-ftpci100.c host->ops = &faraday_pci_ops; host 452 drivers/pci/controller/pci-ftpci100.c host->busnr = 0; host 453 drivers/pci/controller/pci-ftpci100.c host->msi = NULL; host 454 drivers/pci/controller/pci-ftpci100.c host->map_irq = of_irq_parse_and_map_pci; host 455 drivers/pci/controller/pci-ftpci100.c host->swizzle_irq = pci_common_swizzle; host 456 drivers/pci/controller/pci-ftpci100.c p = pci_host_bridge_priv(host); host 457 drivers/pci/controller/pci-ftpci100.c host->sysdata = p; host 572 drivers/pci/controller/pci-ftpci100.c list_splice_init(&res, &host->windows); host 573 drivers/pci/controller/pci-ftpci100.c ret = pci_scan_root_bus_bridge(host); host 578 drivers/pci/controller/pci-ftpci100.c p->bus = host->bus; host 802 drivers/pci/controller/pci-tegra.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 803 drivers/pci/controller/pci-tegra.c struct list_head *windows = &host->windows; host 825 drivers/pci/controller/pci-tegra.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 826 drivers/pci/controller/pci-tegra.c struct list_head *windows = &host->windows; host 1750 drivers/pci/controller/pci-tegra.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 1803 drivers/pci/controller/pci-tegra.c host->msi = &msi->chip; host 2766 drivers/pci/controller/pci-tegra.c struct pci_host_bridge *host; host 2771 drivers/pci/controller/pci-tegra.c host = devm_pci_alloc_host_bridge(dev, sizeof(*pcie)); host 2772 drivers/pci/controller/pci-tegra.c if (!host) host 2775 drivers/pci/controller/pci-tegra.c pcie = pci_host_bridge_priv(host); host 2776 drivers/pci/controller/pci-tegra.c host->sysdata = pcie; host 2810 drivers/pci/controller/pci-tegra.c host->busnr = pcie->busn.start; host 2811 drivers/pci/controller/pci-tegra.c host->dev.parent = &pdev->dev; host 2812 drivers/pci/controller/pci-tegra.c host->ops = &tegra_pcie_ops; host 2813 drivers/pci/controller/pci-tegra.c host->map_irq = tegra_pcie_map_irq; host 2814 drivers/pci/controller/pci-tegra.c host->swizzle_irq = pci_common_swizzle; host 2816 drivers/pci/controller/pci-tegra.c err = pci_scan_root_bus_bridge(host); host 2822 drivers/pci/controller/pci-tegra.c pci_bus_size_bridges(host->bus); host 2823 drivers/pci/controller/pci-tegra.c pci_bus_assign_resources(host->bus); host 2825 drivers/pci/controller/pci-tegra.c list_for_each_entry(child, &host->bus->children, node) host 2828 drivers/pci/controller/pci-tegra.c pci_bus_add_devices(host->bus); host 2853 drivers/pci/controller/pci-tegra.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 2859 drivers/pci/controller/pci-tegra.c pci_stop_root_bus(host->bus); host 2860 drivers/pci/controller/pci-tegra.c pci_remove_root_bus(host->bus); host 524 drivers/pci/controller/pci-v3-semi.c struct pci_host_bridge *host, host 604 drivers/pci/controller/pci-v3-semi.c host->busnr = win->res->start; host 739 drivers/pci/controller/pci-v3-semi.c struct pci_host_bridge *host; host 746 drivers/pci/controller/pci-v3-semi.c host = pci_alloc_host_bridge(sizeof(*v3)); host 747 drivers/pci/controller/pci-v3-semi.c if (!host) host 750 drivers/pci/controller/pci-v3-semi.c host->dev.parent = dev; host 751 drivers/pci/controller/pci-v3-semi.c host->ops = &v3_pci_ops; host 752 drivers/pci/controller/pci-v3-semi.c host->busnr = 0; host 753 drivers/pci/controller/pci-v3-semi.c host->msi = NULL; host 754 drivers/pci/controller/pci-v3-semi.c host->map_irq = of_irq_parse_and_map_pci; host 755 drivers/pci/controller/pci-v3-semi.c host->swizzle_irq = pci_common_swizzle; host 756 drivers/pci/controller/pci-v3-semi.c v3 = pci_host_bridge_priv(host); host 757 drivers/pci/controller/pci-v3-semi.c host->sysdata = v3; host 856 drivers/pci/controller/pci-v3-semi.c ret = v3_pci_setup_resource(v3, io_base, host, win); host 934 drivers/pci/controller/pci-v3-semi.c list_splice_init(&res, &host->windows); host 935 drivers/pci/controller/pci-v3-semi.c ret = pci_scan_root_bus_bridge(host); host 940 drivers/pci/controller/pci-v3-semi.c v3->bus = host->bus; host 1217 drivers/pci/controller/pcie-iproc.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 1240 drivers/pci/controller/pcie-iproc.c list_splice_init(&resources, &host->dma_ranges); host 1491 drivers/pci/controller/pcie-iproc.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 1546 drivers/pci/controller/pcie-iproc.c list_splice_init(res, &host->windows); host 1547 drivers/pci/controller/pcie-iproc.c host->busnr = 0; host 1548 drivers/pci/controller/pcie-iproc.c host->dev.parent = dev; host 1549 drivers/pci/controller/pcie-iproc.c host->ops = &iproc_pcie_ops; host 1550 drivers/pci/controller/pcie-iproc.c host->sysdata = pcie; host 1551 drivers/pci/controller/pcie-iproc.c host->map_irq = pcie->map_irq; host 1552 drivers/pci/controller/pcie-iproc.c host->swizzle_irq = pci_common_swizzle; host 1554 drivers/pci/controller/pcie-iproc.c ret = pci_scan_root_bus_bridge(host); host 1560 drivers/pci/controller/pcie-iproc.c pci_assign_unassigned_bus_resources(host->bus); host 1562 drivers/pci/controller/pcie-iproc.c pcie->root_bus = host->bus; host 1564 drivers/pci/controller/pcie-iproc.c list_for_each_entry(child, &host->bus->children, node) host 1567 drivers/pci/controller/pcie-iproc.c pci_bus_add_devices(host->bus); host 1024 drivers/pci/controller/pcie-mediatek.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 1025 drivers/pci/controller/pcie-mediatek.c struct list_head *windows = &host->windows; host 1095 drivers/pci/controller/pcie-mediatek.c struct pci_host_bridge *host; host 1098 drivers/pci/controller/pcie-mediatek.c host = devm_pci_alloc_host_bridge(dev, sizeof(*pcie)); host 1099 drivers/pci/controller/pcie-mediatek.c if (!host) host 1102 drivers/pci/controller/pcie-mediatek.c pcie = pci_host_bridge_priv(host); host 1113 drivers/pci/controller/pcie-mediatek.c host->busnr = pcie->busnr; host 1114 drivers/pci/controller/pcie-mediatek.c host->dev.parent = pcie->dev; host 1115 drivers/pci/controller/pcie-mediatek.c host->ops = pcie->soc->ops; host 1116 drivers/pci/controller/pcie-mediatek.c host->map_irq = of_irq_parse_and_map_pci; host 1117 drivers/pci/controller/pcie-mediatek.c host->swizzle_irq = pci_common_swizzle; host 1118 drivers/pci/controller/pcie-mediatek.c host->sysdata = pcie; host 1120 drivers/pci/controller/pcie-mediatek.c err = pci_host_probe(host); host 1136 drivers/pci/controller/pcie-mediatek.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 1137 drivers/pci/controller/pcie-mediatek.c struct list_head *windows = &host->windows; host 1145 drivers/pci/controller/pcie-mediatek.c struct pci_host_bridge *host = pci_host_bridge_from_priv(pcie); host 1147 drivers/pci/controller/pcie-mediatek.c pci_stop_root_bus(host->bus); host 1148 drivers/pci/controller/pcie-mediatek.c pci_remove_root_bus(host->bus); host 70 drivers/pci/hotplug/acpi_pcihp.c const struct pci_host_bridge *host; host 81 drivers/pci/hotplug/acpi_pcihp.c host = pci_find_host_bridge(pdev->bus); host 82 drivers/pci/hotplug/acpi_pcihp.c root = acpi_pci_find_root(ACPI_HANDLE(&host->dev)); host 91 drivers/pci/hotplug/acpi_pcihp.c if (host->native_shpc_hotplug) host 255 drivers/pci/hotplug/pciehp_core.c const struct pci_host_bridge *host; host 257 drivers/pci/hotplug/pciehp_core.c host = pci_find_host_bridge(dev->port->bus); host 258 drivers/pci/hotplug/pciehp_core.c return pcie_ports_native || host->native_pme; host 295 drivers/pci/p2pdma.c static bool __host_bridge_whitelist(struct pci_host_bridge *host, host 298 drivers/pci/p2pdma.c struct pci_dev *root = pci_get_slot(host->bus, PCI_DEVFN(0, 0)); host 793 drivers/pci/pci-acpi.c const struct pci_host_bridge *host; host 806 drivers/pci/pci-acpi.c host = pci_find_host_bridge(bridge->bus); host 807 drivers/pci/pci-acpi.c return host->native_pcie_hotplug; host 208 drivers/pci/pcie/portdrv_core.c struct pci_host_bridge *host = pci_find_host_bridge(dev->bus); host 212 drivers/pci/pcie/portdrv_core.c (pcie_ports_native || host->native_pcie_hotplug)) { host 225 drivers/pci/pcie/portdrv_core.c (pcie_ports_native || host->native_aer)) { host 242 drivers/pci/pcie/portdrv_core.c (pcie_ports_native || host->native_pme)) { host 1939 drivers/pci/probe.c struct pci_host_bridge *host; host 1958 drivers/pci/probe.c host = pci_find_host_bridge(dev->bus); host 1959 drivers/pci/probe.c if (!host) host 1966 drivers/pci/probe.c if (host->no_ext_tags) { host 2028 drivers/pci/probe.c struct pci_host_bridge *host = pci_find_host_bridge(dev->bus); host 2053 drivers/pci/probe.c if (!host->native_ltr) host 1687 drivers/pci/setup-bus.c struct pci_host_bridge *host; host 1692 drivers/pci/setup-bus.c host = pci_find_host_bridge(bus); host 1693 drivers/pci/setup-bus.c if (host->preserve_config) host 152 drivers/phy/motorola/phy-cpcap-usb.c static int cpcap_usb_phy_set_host(struct usb_otg *otg, struct usb_bus *host) host 154 drivers/phy/motorola/phy-cpcap-usb.c otg->host = host; host 155 drivers/phy/motorola/phy-cpcap-usb.c if (!host) host 144 drivers/phy/renesas/phy-rcar-gen3-usb2.c static void rcar_gen3_set_host_mode(struct rcar_gen3_chan *ch, int host) host 149 drivers/phy/renesas/phy-rcar-gen3-usb2.c dev_vdbg(ch->dev, "%s: %08x, %d\n", __func__, val, host); host 150 drivers/phy/renesas/phy-rcar-gen3-usb2.c if (host) host 62 drivers/phy/ti/phy-dm816x-usb.c static int dm816x_usb_phy_set_host(struct usb_otg *otg, struct usb_bus *host) host 64 drivers/phy/ti/phy-dm816x-usb.c otg->host = host; host 65 drivers/phy/ti/phy-dm816x-usb.c if (!host) host 77 drivers/phy/ti/phy-omap-usb2.c static int omap_usb_set_host(struct usb_otg *otg, struct usb_bus *host) host 79 drivers/phy/ti/phy-omap-usb2.c otg->host = host; host 80 drivers/phy/ti/phy-omap-usb2.c if (!host) host 642 drivers/phy/ti/phy-twl4030-usb.c static int twl4030_set_host(struct usb_otg *otg, struct usb_bus *host) host 647 drivers/phy/ti/phy-twl4030-usb.c otg->host = host; host 648 drivers/phy/ti/phy-twl4030-usb.c if (!host) host 353 drivers/pnp/quirks.c struct pci_dev *host; host 356 drivers/pnp/quirks.c host = pci_get_device(PCI_VENDOR_ID_INTEL, mch_quirk_devices[i], host 358 drivers/pnp/quirks.c if (host) host 359 drivers/pnp/quirks.c return host; host 366 drivers/pnp/quirks.c struct pci_dev *host; host 373 drivers/pnp/quirks.c host = get_intel_host(); host 374 drivers/pnp/quirks.c if (!host) host 390 drivers/pnp/quirks.c pci_read_config_dword(host, 0x48, &addr_lo); host 392 drivers/pnp/quirks.c pci_read_config_dword(host, 0x4c, &addr_hi); host 398 drivers/pnp/quirks.c pcibios_bus_to_resource(host->bus, &mch, ®ion); host 408 drivers/pnp/quirks.c res, pci_name(host), &mch); host 414 drivers/pnp/quirks.c pci_dev_put(host); host 616 drivers/s390/scsi/zfcp_dbf.c (struct zfcp_adapter *) sdev->host->hostdata[0]; host 367 drivers/s390/scsi/zfcp_dbf.h scmd->device->host->hostdata[0]; host 424 drivers/s390/scsi/zfcp_dbf.h sdev->host->hostdata[0]; host 117 drivers/s390/scsi/zfcp_scsi.c (struct zfcp_adapter *) sdev->host->hostdata[0]; host 168 drivers/s390/scsi/zfcp_scsi.c struct Scsi_Host *scsi_host = scpnt->device->host; host 591 drivers/s390/scsi/zfcp_scsi.c zfcp_scsi_get_fc_host_stats(struct Scsi_Host *host) host 598 drivers/s390/scsi/zfcp_scsi.c adapter = (struct zfcp_adapter *)host->hostdata[0]; host 158 drivers/scsi/3w-9xxx.c struct Scsi_Host *host = class_to_shost(dev); host 159 drivers/scsi/3w-9xxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 163 drivers/scsi/3w-9xxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 186 drivers/scsi/3w-9xxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 310 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1, "Found unaligned address during AEN drain"); host 320 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2, "Error posting request sense"); host 326 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x3, "No valid response while draining AEN queue"); host 376 drivers/scsi/3w-9xxx.c char host[16]; host 385 drivers/scsi/3w-9xxx.c host[0] = '\0'; host 386 drivers/scsi/3w-9xxx.c if (tw_dev->host) { host 387 drivers/scsi/3w-9xxx.c sprintf(host, " scsi%d:", tw_dev->host->host_no); host 412 drivers/scsi/3w-9xxx.c host, host 451 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x4, "Post failed while reading AEN queue"); host 526 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed"); host 531 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x6, "Failed to allocate correctly aligned memory"); host 585 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x7, "Initconnection failed while checking SRL"); host 602 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xa, "Initconnection (base mode) failed while checking SRL"); host 607 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x32, "Firmware and driver incompatibility: please upgrade firmware"); host 609 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x33, "Firmware and driver incompatibility: please upgrade driver"); host 694 drivers/scsi/3w-9xxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 712 drivers/scsi/3w-9xxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 723 drivers/scsi/3w-9xxx.c tw_dev->host->host_no, TW_DRIVER, 0x37, host 734 drivers/scsi/3w-9xxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 738 drivers/scsi/3w-9xxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 909 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xc, "PCI Parity Error: clearing"); host 914 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xd, "PCI Abort: clearing"); host 923 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xe, "Controller Queue Error: clearing"); host 929 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x10, "Microcontroller Error: clearing"); host 1002 drivers/scsi/3w-9xxx.c tw_dev->host->host_no, host 1089 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x13, "No valid response during get param") host 1153 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x15, "No valid response during init connection"); host 1178 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x16, "Command packet memory allocation failed"); host 1184 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x17, "Generic memory allocation failed"); host 1191 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x18, "Event info memory allocation failed"); host 1228 drivers/scsi/3w-9xxx.c spin_lock(tw_dev->host->host_lock); host 1277 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x19, "Found request id that wasn't pending"); host 1316 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1a, "Received a request id that wasn't posted"); host 1326 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1b, "Error completing AEN during attention interrupt"); host 1375 drivers/scsi/3w-9xxx.c spin_unlock(tw_dev->host->host_lock); host 1429 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1e, "Found unexpected request id while polling for response"); host 1588 drivers/scsi/3w-9xxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 1619 drivers/scsi/3w-9xxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 1643 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x36, "Response queue (large) empty failed during reset sequence"); host 1652 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1f, "Microcontroller not ready during reset sequence"); host 1660 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x20, "Response queue empty failed during reset sequence"); host 1670 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x21, "Compatibility check failed during reset sequence"); host 1683 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x22, "AEN drain failed during reset sequence"); host 1703 drivers/scsi/3w-9xxx.c tw_dev = (TW_Device_Extension *)sdev->host->hostdata; host 1728 drivers/scsi/3w-9xxx.c tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata; host 1741 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2b, "Controller reset failed during scsi host reset"); host 1755 drivers/scsi/3w-9xxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata; host 1870 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2e, "Found unaligned sgl address during execute scsi"); host 1883 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2f, "Found unaligned sgl address during internal post"); host 1946 drivers/scsi/3w-9xxx.c printk(KERN_WARNING "3w-9xxx: Shutting down host %d.\n", tw_dev->host->host_no); host 1950 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x31, "Connection shutdown failed"); host 1962 drivers/scsi/3w-9xxx.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1963 drivers/scsi/3w-9xxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 2009 drivers/scsi/3w-9xxx.c struct Scsi_Host *host = NULL; host 2016 drivers/scsi/3w-9xxx.c TW_PRINTK(host, TW_DRIVER, 0x34, "Failed to enable pci device"); host 2027 drivers/scsi/3w-9xxx.c TW_PRINTK(host, TW_DRIVER, 0x23, "Failed to set dma mask"); host 2032 drivers/scsi/3w-9xxx.c host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension)); host 2033 drivers/scsi/3w-9xxx.c if (!host) { host 2034 drivers/scsi/3w-9xxx.c TW_PRINTK(host, TW_DRIVER, 0x24, "Failed to allocate memory for device extension"); host 2038 drivers/scsi/3w-9xxx.c tw_dev = (TW_Device_Extension *)host->hostdata; host 2041 drivers/scsi/3w-9xxx.c tw_dev->host = host; host 2045 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x25, "Failed to initialize device extension"); host 2053 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x26, "Failed to get mem region"); host 2068 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x35, "Failed to ioremap"); host 2085 drivers/scsi/3w-9xxx.c host->max_id = TW_MAX_UNITS_9650SE; host 2087 drivers/scsi/3w-9xxx.c host->max_id = TW_MAX_UNITS; host 2089 drivers/scsi/3w-9xxx.c host->max_cmd_len = TW_MAX_CDB_LEN; host 2092 drivers/scsi/3w-9xxx.c host->max_lun = TW_MAX_LUNS(tw_dev->tw_compat_info.working_srl); host 2093 drivers/scsi/3w-9xxx.c host->max_channel = 0; host 2096 drivers/scsi/3w-9xxx.c retval = scsi_add_host(host, &pdev->dev); host 2098 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x27, "scsi add host failed"); host 2102 drivers/scsi/3w-9xxx.c pci_set_drvdata(pdev, host); host 2105 drivers/scsi/3w-9xxx.c host->host_no, mem_addr, pdev->irq); host 2107 drivers/scsi/3w-9xxx.c host->host_no, host 2123 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x30, "Error requesting IRQ"); host 2134 drivers/scsi/3w-9xxx.c scsi_scan_host(host); host 2138 drivers/scsi/3w-9xxx.c TW_PRINTK(host, TW_DRIVER, 0x29, "Failed to register character device"); host 2145 drivers/scsi/3w-9xxx.c scsi_remove_host(host); host 2152 drivers/scsi/3w-9xxx.c scsi_host_put(host); host 2162 drivers/scsi/3w-9xxx.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 2163 drivers/scsi/3w-9xxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 2165 drivers/scsi/3w-9xxx.c scsi_remove_host(tw_dev->host); host 2189 drivers/scsi/3w-9xxx.c scsi_host_put(tw_dev->host); host 2198 drivers/scsi/3w-9xxx.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 2199 drivers/scsi/3w-9xxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 2201 drivers/scsi/3w-9xxx.c printk(KERN_WARNING "3w-9xxx: Suspending host %d.\n", tw_dev->host->host_no); host 2211 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x38, "Connection shutdown failed during suspend"); host 2228 drivers/scsi/3w-9xxx.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 2229 drivers/scsi/3w-9xxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 2231 drivers/scsi/3w-9xxx.c printk(KERN_WARNING "3w-9xxx: Resuming host %d.\n", tw_dev->host->host_no); host 2238 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x39, "Enable device failed during resume"); host 2249 drivers/scsi/3w-9xxx.c TW_PRINTK(host, TW_DRIVER, 0x40, "Failed to set dma mask during resume"); host 2263 drivers/scsi/3w-9xxx.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x42, "Error requesting IRQ during resume"); host 2279 drivers/scsi/3w-9xxx.c scsi_remove_host(host); host 661 drivers/scsi/3w-9xxx.h struct Scsi_Host *host; host 111 drivers/scsi/3w-sas.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 113 drivers/scsi/3w-sas.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 142 drivers/scsi/3w-sas.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 144 drivers/scsi/3w-sas.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 163 drivers/scsi/3w-sas.c struct Scsi_Host *host = class_to_shost(dev); host 164 drivers/scsi/3w-sas.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 168 drivers/scsi/3w-sas.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 187 drivers/scsi/3w-sas.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 226 drivers/scsi/3w-sas.c char host[16]; host 234 drivers/scsi/3w-sas.c host[0] = '\0'; host 235 drivers/scsi/3w-sas.c if (tw_dev->host) host 236 drivers/scsi/3w-sas.c sprintf(host, " scsi%d:", tw_dev->host->host_no); host 258 drivers/scsi/3w-sas.c host, host 400 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x2, "Post failed while reading AEN queue"); host 591 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x3, "Error posting request sense"); host 597 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x4, "No valid response while draining AEN queue"); host 653 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x5, "Memory allocation failed"); host 767 drivers/scsi/3w-sas.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 785 drivers/scsi/3w-sas.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 796 drivers/scsi/3w-sas.c tw_dev->host->host_no, TW_DRIVER, 0x6, host 807 drivers/scsi/3w-sas.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 811 drivers/scsi/3w-sas.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 879 drivers/scsi/3w-sas.c tw_dev->host->host_no, host 959 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x7, "No valid response during get param") host 1015 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x8, "No valid response during init connection"); host 1040 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x9, "Command packet memory allocation failed"); host 1046 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xa, "Generic memory allocation failed"); host 1052 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xb, "Sense buffer allocation failed"); host 1059 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xc, "Event info memory allocation failed"); host 1093 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xd, "Microcontroller Error: clearing"); host 1130 drivers/scsi/3w-sas.c spin_lock(tw_dev->host->host_lock); host 1194 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xe, "Received a request id that wasn't posted"); host 1204 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0xf, "Error completing AEN during attention interrupt"); host 1234 drivers/scsi/3w-sas.c spin_unlock(tw_dev->host->host_lock); host 1278 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x10, "Controller never went non-ready during reset sequence"); host 1283 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x11, "Controller not ready during reset sequence"); host 1296 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x12, "Initconnection failed while checking SRL"); host 1316 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x13, "Bad controller status after loading sense buffers"); host 1324 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x14, "AEN drain failed during reset sequence"); host 1358 drivers/scsi/3w-sas.c scsi_block_requests(tw_dev->host); host 1364 drivers/scsi/3w-sas.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 1390 drivers/scsi/3w-sas.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 1403 drivers/scsi/3w-sas.c scsi_unblock_requests(tw_dev->host); host 1413 drivers/scsi/3w-sas.c tw_dev = (TW_Device_Extension *)sdev->host->hostdata; host 1436 drivers/scsi/3w-sas.c tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata; host 1449 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x15, "Controller reset failed during scsi host reset"); host 1463 drivers/scsi/3w-sas.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata; host 1503 drivers/scsi/3w-sas.c printk(KERN_WARNING "3w-sas: Shutting down host %d.\n", tw_dev->host->host_no); host 1507 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x16, "Connection shutdown failed"); host 1519 drivers/scsi/3w-sas.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1522 drivers/scsi/3w-sas.c if (!host) host 1525 drivers/scsi/3w-sas.c tw_dev = (TW_Device_Extension *)host->hostdata; host 1562 drivers/scsi/3w-sas.c struct Scsi_Host *host = NULL; host 1569 drivers/scsi/3w-sas.c TW_PRINTK(host, TW_DRIVER, 0x17, "Failed to enable pci device"); host 1580 drivers/scsi/3w-sas.c TW_PRINTK(host, TW_DRIVER, 0x18, "Failed to set dma mask"); host 1585 drivers/scsi/3w-sas.c host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension)); host 1586 drivers/scsi/3w-sas.c if (!host) { host 1587 drivers/scsi/3w-sas.c TW_PRINTK(host, TW_DRIVER, 0x19, "Failed to allocate memory for device extension"); host 1591 drivers/scsi/3w-sas.c tw_dev = shost_priv(host); host 1594 drivers/scsi/3w-sas.c tw_dev->host = host; host 1598 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1a, "Failed to initialize device extension"); host 1606 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1b, "Failed to get mem region"); host 1613 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1c, "Failed to ioremap"); host 1623 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1d, "Controller reset failed during probe"); host 1629 drivers/scsi/3w-sas.c host->max_id = TW_MAX_UNITS; host 1630 drivers/scsi/3w-sas.c host->max_cmd_len = TW_MAX_CDB_LEN; host 1631 drivers/scsi/3w-sas.c host->max_lun = TW_MAX_LUNS; host 1632 drivers/scsi/3w-sas.c host->max_channel = 0; host 1635 drivers/scsi/3w-sas.c retval = scsi_add_host(host, &pdev->dev); host 1637 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1e, "scsi add host failed"); host 1641 drivers/scsi/3w-sas.c pci_set_drvdata(pdev, host); host 1644 drivers/scsi/3w-sas.c host->host_no, host 1655 drivers/scsi/3w-sas.c host->host_no, host 1669 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x1f, "Error requesting IRQ"); host 1680 drivers/scsi/3w-sas.c scsi_scan_host(host); host 1683 drivers/scsi/3w-sas.c if (sysfs_create_bin_file(&host->shost_dev.kobj, &twl_sysfs_aen_read_attr)) host 1684 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x20, "Failed to create sysfs binary file: 3ware_aen_read"); host 1685 drivers/scsi/3w-sas.c if (sysfs_create_bin_file(&host->shost_dev.kobj, &twl_sysfs_compat_info_attr)) host 1686 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x21, "Failed to create sysfs binary file: 3ware_compat_info"); host 1690 drivers/scsi/3w-sas.c TW_PRINTK(host, TW_DRIVER, 0x22, "Failed to register character device"); host 1698 drivers/scsi/3w-sas.c scsi_remove_host(host); host 1705 drivers/scsi/3w-sas.c scsi_host_put(host); host 1715 drivers/scsi/3w-sas.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1718 drivers/scsi/3w-sas.c if (!host) host 1721 drivers/scsi/3w-sas.c tw_dev = (TW_Device_Extension *)host->hostdata; host 1727 drivers/scsi/3w-sas.c sysfs_remove_bin_file(&host->shost_dev.kobj, &twl_sysfs_aen_read_attr); host 1728 drivers/scsi/3w-sas.c sysfs_remove_bin_file(&host->shost_dev.kobj, &twl_sysfs_compat_info_attr); host 1730 drivers/scsi/3w-sas.c scsi_remove_host(tw_dev->host); host 1754 drivers/scsi/3w-sas.c scsi_host_put(tw_dev->host); host 1763 drivers/scsi/3w-sas.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1764 drivers/scsi/3w-sas.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 1766 drivers/scsi/3w-sas.c printk(KERN_WARNING "3w-sas: Suspending host %d.\n", tw_dev->host->host_no); host 1774 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x23, "Connection shutdown failed during suspend"); host 1793 drivers/scsi/3w-sas.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1794 drivers/scsi/3w-sas.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 1796 drivers/scsi/3w-sas.c printk(KERN_WARNING "3w-sas: Resuming host %d.\n", tw_dev->host->host_no); host 1803 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x24, "Enable device failed during resume"); host 1814 drivers/scsi/3w-sas.c TW_PRINTK(host, TW_DRIVER, 0x25, "Failed to set dma mask during resume"); host 1828 drivers/scsi/3w-sas.c TW_PRINTK(tw_dev->host, TW_DRIVER, 0x26, "Error requesting IRQ during resume"); host 1844 drivers/scsi/3w-sas.c scsi_remove_host(host); host 376 drivers/scsi/3w-sas.h struct Scsi_Host *host; host 257 drivers/scsi/3w-xxxx.c char host[16]; host 262 drivers/scsi/3w-xxxx.c sprintf(host, " scsi%d:", tw_dev->host->host_no); host 264 drivers/scsi/3w-xxxx.c host[0] = '\0'; host 267 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx:%s PCI Parity Error: clearing.\n", host); host 272 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx:%s PCI Abort: clearing.\n", host); host 278 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx:%s Controller Queue Error: clearing.\n", host); host 283 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx:%s SBUF Write Error: clearing.\n", host); host 289 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx:%s Microcontroller Error: clearing.\n", host); host 409 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Command failed: status = 0x%x, flags = 0x%x, unit #%d.\n", tw_dev->host->host_no, command->status, command->flags, TW_UNIT_OUT(command->unit__hostid)); host 493 drivers/scsi/3w-xxxx.c struct Scsi_Host *host = class_to_shost(dev); host 494 drivers/scsi/3w-xxxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 498 drivers/scsi/3w-xxxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 521 drivers/scsi/3w-xxxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 624 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: AEN: INFO: AEN queue overflow.\n", tw_dev->host->host_no); host 629 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: AEN: %s%d.\n", tw_dev->host->host_no, tw_aen_string[aen & 0xff], aen >> 8); host 632 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: AEN: %s.\n", tw_dev->host->host_no, tw_aen_string[aen & 0xff]); host 635 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Received AEN %d.\n", tw_dev->host->host_no, aen); host 658 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Error completing AEN.\n", tw_dev->host->host_no); host 936 drivers/scsi/3w-xxxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 947 drivers/scsi/3w-xxxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 952 drivers/scsi/3w-xxxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 984 drivers/scsi/3w-xxxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 994 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Character ioctl (0x%x) timed out, resetting card.\n", tw_dev->host->host_no, cmd); host 997 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: tw_chrdev_ioctl(): Reset failed for card %d.\n", tw_dev->host->host_no); host 1006 drivers/scsi/3w-xxxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 1010 drivers/scsi/3w-xxxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 1216 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: AEN drain failed, retrying.\n", tw_dev->host->host_no); host 1223 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Controller errors found, retrying.\n", tw_dev->host->host_no); host 1233 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Controller errors, card not responding, check all cabling.\n", tw_dev->host->host_no); host 1239 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Connection initialization failed.\n", tw_dev->host->host_no); host 1299 drivers/scsi/3w-xxxx.c spin_lock_irqsave(tw_dev->host->host_lock, flags); host 1328 drivers/scsi/3w-xxxx.c spin_unlock_irqrestore(tw_dev->host->host_lock, flags); host 1331 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Reset sequence failed.\n", tw_dev->host->host_no); host 1350 drivers/scsi/3w-xxxx.c tw_dev = (TW_Device_Extension *)sdev->host->hostdata; host 1376 drivers/scsi/3w-xxxx.c tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata; host 1389 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Reset failed.\n", tw_dev->host->host_no); host 1930 drivers/scsi/3w-xxxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)SCpnt->device->host->hostdata; host 1981 drivers/scsi/3w-xxxx.c printk(KERN_NOTICE "3w-xxxx: scsi%d: Unknown scsi opcode: 0x%x\n", tw_dev->host->host_no, *command); host 2013 drivers/scsi/3w-xxxx.c spin_lock(tw_dev->host->host_lock); host 2050 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Error reading aen queue.\n", tw_dev->host->host_no); host 2062 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Found request id that wasn't pending.\n", tw_dev->host->host_no); host 2105 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Received a request id that wasn't posted.\n", tw_dev->host->host_no); host 2119 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Error completing aen.\n", tw_dev->host->host_no); host 2193 drivers/scsi/3w-xxxx.c spin_unlock(tw_dev->host->host_lock); host 2206 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: Shutting down host %d.\n", tw_dev->host->host_no); host 2222 drivers/scsi/3w-xxxx.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 2223 drivers/scsi/3w-xxxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 2258 drivers/scsi/3w-xxxx.c struct Scsi_Host *host = NULL; host 2276 drivers/scsi/3w-xxxx.c host = scsi_host_alloc(&driver_template, sizeof(TW_Device_Extension)); host 2277 drivers/scsi/3w-xxxx.c if (!host) { host 2282 drivers/scsi/3w-xxxx.c tw_dev = (TW_Device_Extension *)host->hostdata; host 2285 drivers/scsi/3w-xxxx.c tw_dev->host = host; host 2317 drivers/scsi/3w-xxxx.c host->max_id = TW_MAX_UNITS; host 2318 drivers/scsi/3w-xxxx.c host->max_cmd_len = TW_MAX_CDB_LEN; host 2321 drivers/scsi/3w-xxxx.c host->max_lun = 0; host 2322 drivers/scsi/3w-xxxx.c host->max_channel = 0; host 2325 drivers/scsi/3w-xxxx.c retval = scsi_add_host(host, &pdev->dev); host 2331 drivers/scsi/3w-xxxx.c pci_set_drvdata(pdev, host); host 2333 drivers/scsi/3w-xxxx.c printk(KERN_WARNING "3w-xxxx: scsi%d: Found a 3ware Storage Controller at 0x%x, IRQ: %d.\n", host->host_no, tw_dev->base_addr, pdev->irq); host 2349 drivers/scsi/3w-xxxx.c scsi_scan_host(host); host 2358 drivers/scsi/3w-xxxx.c scsi_remove_host(host); host 2363 drivers/scsi/3w-xxxx.c scsi_host_put(host); host 2373 drivers/scsi/3w-xxxx.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 2374 drivers/scsi/3w-xxxx.c TW_Device_Extension *tw_dev = (TW_Device_Extension *)host->hostdata; host 2376 drivers/scsi/3w-xxxx.c scsi_remove_host(tw_dev->host); host 2393 drivers/scsi/3w-xxxx.c scsi_host_put(tw_dev->host); host 419 drivers/scsi/3w-xxxx.h struct Scsi_Host *host; host 160 drivers/scsi/53c700.c STATIC void NCR_700_chip_setup(struct Scsi_Host *host); host 161 drivers/scsi/53c700.c STATIC void NCR_700_chip_reset(struct Scsi_Host *host); host 265 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)SDp->host->hostdata[0]; host 279 drivers/scsi/53c700.c struct Scsi_Host *host; host 319 drivers/scsi/53c700.c host = scsi_host_alloc(tpnt, 4); host 320 drivers/scsi/53c700.c if (!host) host 354 drivers/scsi/53c700.c host->max_id = 8; host 355 drivers/scsi/53c700.c host->max_lun = NCR_700_MAX_LUNS; host 357 drivers/scsi/53c700.c host->transportt = NCR_700_transport_template; host 358 drivers/scsi/53c700.c host->unique_id = (unsigned long)hostdata->base; host 360 drivers/scsi/53c700.c host->hostdata[0] = (unsigned long)hostdata; host 362 drivers/scsi/53c700.c NCR_700_writeb(0xff, host, CTEST9_REG); host 364 drivers/scsi/53c700.c hostdata->rev = (NCR_700_readb(host, CTEST8_REG)>>4) & 0x0f; host 366 drivers/scsi/53c700.c hostdata->rev = (NCR_700_readb(host, CTEST7_REG)>>4) & 0x0f; host 367 drivers/scsi/53c700.c hostdata->fast = (NCR_700_readb(host, CTEST9_REG) == 0); host 372 drivers/scsi/53c700.c printk(KERN_NOTICE "scsi%d: %s rev %d %s\n", host->host_no, host 378 drivers/scsi/53c700.c NCR_700_chip_reset(host); host 380 drivers/scsi/53c700.c if (scsi_add_host(host, dev)) { host 382 drivers/scsi/53c700.c scsi_host_put(host); host 386 drivers/scsi/53c700.c spi_signalling(host) = hostdata->differential ? SPI_SIGNAL_HVD : host 389 drivers/scsi/53c700.c return host; host 393 drivers/scsi/53c700.c NCR_700_release(struct Scsi_Host *host) host 396 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 422 drivers/scsi/53c700.c NCR_700_data_residual (struct Scsi_Host *host) { host 424 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 429 drivers/scsi/53c700.c count = ((NCR_700_readb(host, DFIFO_REG) & 0x7f) - host 430 drivers/scsi/53c700.c (NCR_700_readl(host, DBC_REG) & 0x7f)) & 0x7f; host 432 drivers/scsi/53c700.c count = ((NCR_700_readb(host, DFIFO_REG) & 0x3f) - host 433 drivers/scsi/53c700.c (NCR_700_readl(host, DBC_REG) & 0x3f)) & 0x3f; host 437 drivers/scsi/53c700.c synchronous = NCR_700_readb(host, SXFER_REG) & 0x0f; host 440 drivers/scsi/53c700.c ddir = NCR_700_readb(host, CTEST0_REG) & 0x01; host 445 drivers/scsi/53c700.c count += (NCR_700_readb(host, SSTAT2_REG) & 0xf0) >> 4; host 447 drivers/scsi/53c700.c if (NCR_700_readb(host, SSTAT1_REG) & SIDL_REG_FULL) host 451 drivers/scsi/53c700.c __u8 sstat = NCR_700_readb(host, SSTAT1_REG); host 616 drivers/scsi/53c700.c NCR_700_internal_bus_reset(struct Scsi_Host *host) host 619 drivers/scsi/53c700.c NCR_700_writeb(ASSERT_RST, host, SCNTL1_REG); host 621 drivers/scsi/53c700.c NCR_700_writeb(0, host, SCNTL1_REG); host 626 drivers/scsi/53c700.c NCR_700_chip_setup(struct Scsi_Host *host) host 629 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 656 drivers/scsi/53c700.c NCR_700_writeb(hostdata->dcntl_extra, host, DCNTL_REG); host 658 drivers/scsi/53c700.c host, DMODE_710_REG); host 661 drivers/scsi/53c700.c host, CTEST7_REG); host 662 drivers/scsi/53c700.c NCR_700_writeb(BTB_TIMER_DISABLE, host, CTEST0_REG); host 664 drivers/scsi/53c700.c | AUTO_ATN, host, SCNTL0_REG); host 667 drivers/scsi/53c700.c host, DMODE_700_REG); host 669 drivers/scsi/53c700.c DIFF : 0, host, CTEST7_REG); host 673 drivers/scsi/53c700.c | GENERATE_RECEIVE_PARITY, host, host 677 drivers/scsi/53c700.c | PARITY | AUTO_ATN, host, SCNTL0_REG); host 681 drivers/scsi/53c700.c NCR_700_writeb(1 << host->this_id, host, SCID_REG); host 682 drivers/scsi/53c700.c NCR_700_writeb(0, host, SBCL_REG); host 683 drivers/scsi/53c700.c NCR_700_writeb(ASYNC_OPERATION, host, SXFER_REG); host 686 drivers/scsi/53c700.c | RST_INT | PAR_ERR_INT | SELECT_INT, host, SIEN_REG); host 688 drivers/scsi/53c700.c NCR_700_writeb(ABORT_INT | INT_INST_INT | ILGL_INST_INT, host, DIEN_REG); host 689 drivers/scsi/53c700.c NCR_700_writeb(ENABLE_SELECT, host, SCNTL1_REG); host 695 drivers/scsi/53c700.c NCR_700_writeb(SYNC_DIV_2_0, host, SBCL_REG); host 696 drivers/scsi/53c700.c NCR_700_writeb(ASYNC_DIV_3_0 | hostdata->dcntl_extra, host, DCNTL_REG); host 701 drivers/scsi/53c700.c NCR_700_writeb(SYNC_DIV_1_5, host, SBCL_REG); host 702 drivers/scsi/53c700.c NCR_700_writeb(ASYNC_DIV_3_0 | hostdata->dcntl_extra, host, DCNTL_REG); host 709 drivers/scsi/53c700.c NCR_700_writeb(SYNC_DIV_1_0, host, SBCL_REG); host 710 drivers/scsi/53c700.c NCR_700_writeb(ASYNC_DIV_2_0 | hostdata->dcntl_extra, host, DCNTL_REG); host 715 drivers/scsi/53c700.c NCR_700_writeb(SYNC_DIV_1_0, host, SBCL_REG); host 716 drivers/scsi/53c700.c NCR_700_writeb(ASYNC_DIV_1_5 | hostdata->dcntl_extra, host, DCNTL_REG); host 720 drivers/scsi/53c700.c NCR_700_writeb(SYNC_DIV_1_0, host, SBCL_REG); host 721 drivers/scsi/53c700.c NCR_700_writeb(ASYNC_DIV_1_0 | hostdata->dcntl_extra, host, DCNTL_REG); host 736 drivers/scsi/53c700.c NCR_700_chip_reset(struct Scsi_Host *host) host 739 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 741 drivers/scsi/53c700.c NCR_700_writeb(SOFTWARE_RESET_710, host, ISTAT_REG); host 744 drivers/scsi/53c700.c NCR_700_writeb(0, host, ISTAT_REG); host 746 drivers/scsi/53c700.c NCR_700_writeb(SOFTWARE_RESET, host, DCNTL_REG); host 749 drivers/scsi/53c700.c NCR_700_writeb(0, host, DCNTL_REG); host 754 drivers/scsi/53c700.c NCR_700_chip_setup(host); host 764 drivers/scsi/53c700.c process_extended_message(struct Scsi_Host *host, host 800 drivers/scsi/53c700.c host, SXFER_REG); host 804 drivers/scsi/53c700.c shost_printk(KERN_WARNING, host, host 818 drivers/scsi/53c700.c host->host_no, pun, lun); host 829 drivers/scsi/53c700.c host->host_no, pun, lun, host 842 drivers/scsi/53c700.c NCR_700_writel(temp, host, TEMP_REG); host 847 drivers/scsi/53c700.c process_message(struct Scsi_Host *host, struct NCR_700_Host_Parameters *hostdata, host 860 drivers/scsi/53c700.c printk("scsi%d (%d:%d): message %s: ", host->host_no, pun, lun, host 869 drivers/scsi/53c700.c resume_offset = process_extended_message(host, hostdata, SCp, host 890 drivers/scsi/53c700.c scsi_change_queue_depth(SCp->device, host->cmd_per_lun); host 892 drivers/scsi/53c700.c shost_printk(KERN_WARNING, host, host 901 drivers/scsi/53c700.c printk(KERN_ERR "scsi%d (%d:%d) Parity Error!\n", host->host_no, host 903 drivers/scsi/53c700.c NCR_700_internal_bus_reset(host); host 906 drivers/scsi/53c700.c printk(KERN_INFO "scsi%d (%d:%d) SIMPLE TAG %d %s\n", host->host_no, host 913 drivers/scsi/53c700.c host->host_no, pun, lun, host 929 drivers/scsi/53c700.c NCR_700_writel(temp, host, TEMP_REG); host 937 drivers/scsi/53c700.c struct Scsi_Host *host, host 1049 drivers/scsi/53c700.c sbcl_to_string(NCR_700_readb(host, SBCL_REG))); host 1054 drivers/scsi/53c700.c NCR_700_internal_bus_reset(host); host 1059 drivers/scsi/53c700.c host->host_no, pun, lun, NCR_700_fatal_messages[i]); host 1064 drivers/scsi/53c700.c NCR_700_internal_bus_reset(host); host 1070 drivers/scsi/53c700.c host->host_no, pun, lun, host 1085 drivers/scsi/53c700.c host->host_no, reselection_id, lun)); host 1087 drivers/scsi/53c700.c SDp = __scsi_device_lookup(host, 0, reselection_id, lun); host 1090 drivers/scsi/53c700.c host->host_no, reselection_id, lun); host 1096 drivers/scsi/53c700.c SCp = scsi_host_find_tag(SDp->host, hostdata->msgin[2]); host 1099 drivers/scsi/53c700.c host->host_no, reselection_id, lun, hostdata->msgin[2]); host 1121 drivers/scsi/53c700.c host->host_no, reselection_id, lun, host 1127 drivers/scsi/53c700.c host->host_no); host 1146 drivers/scsi/53c700.c host, SXFER_REG); host 1168 drivers/scsi/53c700.c __u8 reselection_id = NCR_700_readb(host, SFBR_REG); host 1172 drivers/scsi/53c700.c reselection_id &= ~(1<<host->this_id); host 1177 drivers/scsi/53c700.c host->host_no, reselection_id, lun, dsp, dsp - hostdata->pScript, hostdata->state, hostdata->command_slot_count); host 1202 drivers/scsi/53c700.c printk(KERN_ERR "scsi%d: Invalid reselection during selection!!\n", host->host_no); host 1206 drivers/scsi/53c700.c host->host_no); host 1230 drivers/scsi/53c700.c resume_offset = process_message(host, hostdata, SCp, host 1235 drivers/scsi/53c700.c host->host_no, pun, lun, NCR_700_condition[i], host 1245 drivers/scsi/53c700.c NCR_700_internal_bus_reset(host); host 1248 drivers/scsi/53c700.c host->host_no, pun, lun, dsps & 0xfff, dsp, dsp - hostdata->pScript); host 1252 drivers/scsi/53c700.c host->host_no, pun, lun, dsps, dsp - hostdata->pScript); host 1253 drivers/scsi/53c700.c NCR_700_internal_bus_reset(host); host 1266 drivers/scsi/53c700.c process_selection(struct Scsi_Host *host, __u32 dsp) host 1272 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 1277 drivers/scsi/53c700.c id = NCR_700_readb(host, hostdata->chip710 ? host 1281 drivers/scsi/53c700.c id &= ~(1<<host->this_id); host 1286 drivers/scsi/53c700.c sbcl = NCR_700_readb(host, SBCL_REG); host 1294 drivers/scsi/53c700.c host->host_no, id)); host 1320 drivers/scsi/53c700.c process_script_interrupt(A_GOOD_STATUS_AFTER_STATUS, dsp, SCp, host, hostdata); host 1347 drivers/scsi/53c700.c NCR_700_clear_fifo(struct Scsi_Host *host) { host 1349 drivers/scsi/53c700.c = (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 1351 drivers/scsi/53c700.c NCR_700_writeb(CLR_FIFO_710, host, CTEST8_REG); host 1353 drivers/scsi/53c700.c NCR_700_writeb(CLR_FIFO, host, DFIFO_REG); host 1358 drivers/scsi/53c700.c NCR_700_flush_fifo(struct Scsi_Host *host) { host 1360 drivers/scsi/53c700.c = (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 1362 drivers/scsi/53c700.c NCR_700_writeb(FLUSH_DMA_FIFO_710, host, CTEST8_REG); host 1364 drivers/scsi/53c700.c NCR_700_writeb(0, host, CTEST8_REG); host 1366 drivers/scsi/53c700.c NCR_700_writeb(FLUSH_DMA_FIFO, host, DFIFO_REG); host 1368 drivers/scsi/53c700.c NCR_700_writeb(0, host, DFIFO_REG); host 1381 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0]; host 1392 drivers/scsi/53c700.c SCp->device->host->host_no, slot->cmnd, slot)); host 1444 drivers/scsi/53c700.c NCR_700_clear_fifo(SCp->device->host); host 1457 drivers/scsi/53c700.c SCp->device->host, SXFER_REG); host 1458 drivers/scsi/53c700.c NCR_700_writel(slot->temp, SCp->device->host, TEMP_REG); host 1459 drivers/scsi/53c700.c NCR_700_writel(slot->resume_offset, SCp->device->host, DSP_REG); host 1467 drivers/scsi/53c700.c struct Scsi_Host *host = (struct Scsi_Host *)dev_id; host 1469 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 1481 drivers/scsi/53c700.c spin_lock_irqsave(host->host_lock, flags); host 1482 drivers/scsi/53c700.c if((istat = NCR_700_readb(host, ISTAT_REG)) host 1497 drivers/scsi/53c700.c sstat0 = NCR_700_readb(host, SSTAT0_REG); host 1503 drivers/scsi/53c700.c dstat = NCR_700_readb(host, DSTAT_REG); host 1506 drivers/scsi/53c700.c dsps = NCR_700_readl(host, DSPS_REG); host 1507 drivers/scsi/53c700.c dsp = NCR_700_readl(host, DSP_REG); host 1510 drivers/scsi/53c700.c host->host_no, istat, sstat0, dstat, host 1526 drivers/scsi/53c700.c host->host_no, SCp, SCp == NULL ? NULL : SCp->host_scribble, dsp, dsp - hostdata->pScript); host 1528 drivers/scsi/53c700.c scsi_report_bus_reset(host, 0); host 1531 drivers/scsi/53c700.c __shost_for_each_device(SDp, host) host 1559 drivers/scsi/53c700.c NCR_700_chip_setup(host); host 1569 drivers/scsi/53c700.c host->host_no, pun, lun)); host 1579 drivers/scsi/53c700.c __u32 temp = NCR_700_readl(host, TEMP_REG); host 1580 drivers/scsi/53c700.c int count = (hostdata->script[Ent_SendMessage/4] & 0xffffff) - ((NCR_700_readl(host, DBC_REG) & 0xffffff) + NCR_700_data_residual(host)); host 1581 drivers/scsi/53c700.c printk("scsi%d (%d:%d) PHASE MISMATCH IN SEND MESSAGE %d remain, return %p[%04x], phase %s\n", host->host_no, pun, lun, count, (void *)temp, temp - hostdata->pScript, sbcl_to_string(NCR_700_readb(host, SBCL_REG))); host 1586 drivers/scsi/53c700.c int data_transfer = NCR_700_readl(host, DBC_REG) & 0xffffff; host 1588 drivers/scsi/53c700.c int residual = NCR_700_data_residual(host); host 1591 drivers/scsi/53c700.c __u32 naddr = NCR_700_readl(host, DNAD_REG); host 1594 drivers/scsi/53c700.c host->host_no, pun, lun, host 1599 drivers/scsi/53c700.c host->host_no, pun, lun, host 1619 drivers/scsi/53c700.c printk("scsi%d (%d:%d) transfer mismatch pAddr=%lx, naddr=%lx, data_transfer=%d, residual=%d\n", host->host_no, pun, lun, (unsigned long)pAddr, (unsigned long)naddr, data_transfer, residual); host 1634 drivers/scsi/53c700.c NCR_700_flush_fifo(host); host 1636 drivers/scsi/53c700.c __u8 sbcl = NCR_700_readb(host, SBCL_REG); host 1638 drivers/scsi/53c700.c host->host_no, pun, lun, dsp - hostdata->pScript, sbcl_to_string(sbcl)); host 1639 drivers/scsi/53c700.c NCR_700_internal_bus_reset(host); host 1644 drivers/scsi/53c700.c host->host_no, pun, lun); host 1648 drivers/scsi/53c700.c host->host_no, pun, lun); host 1652 drivers/scsi/53c700.c host->host_no, pun, lun)); host 1653 drivers/scsi/53c700.c resume_offset = process_script_interrupt(dsps, dsp, SCp, host, hostdata); host 1657 drivers/scsi/53c700.c host->host_no, pun, lun, host 1662 drivers/scsi/53c700.c host->host_no, pun, lun, dstat); host 1688 drivers/scsi/53c700.c resume_offset = process_selection(host, dsp); host 1697 drivers/scsi/53c700.c host->host_no, resume_offset, resume_offset - hostdata->pScript); host 1702 drivers/scsi/53c700.c NCR_700_clear_fifo(host); host 1703 drivers/scsi/53c700.c NCR_700_writel(resume_offset, host, DSP_REG); host 1723 drivers/scsi/53c700.c host->host_no, &hostdata->slots[j], host 1732 drivers/scsi/53c700.c spin_unlock_irqrestore(host->host_lock, flags); host 1740 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0]; host 1748 drivers/scsi/53c700.c printk(KERN_WARNING "scsi%d: Command depth has gone over queue depth\n", SCp->device->host->host_no); host 1784 drivers/scsi/53c700.c printk("53c700: scsi%d, command ", SCp->device->host->host_no); host 1918 drivers/scsi/53c700.c NCR_700_internal_bus_reset(SCp->device->host); host 1930 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)SCp->device->host->hostdata[0]; host 1939 drivers/scsi/53c700.c spin_lock_irq(SCp->device->host->host_lock); host 1941 drivers/scsi/53c700.c spin_unlock_irq(SCp->device->host->host_lock); host 1943 drivers/scsi/53c700.c spin_lock_irq(SCp->device->host->host_lock); host 1947 drivers/scsi/53c700.c NCR_700_internal_bus_reset(SCp->device->host); host 1948 drivers/scsi/53c700.c NCR_700_chip_reset(SCp->device->host); host 1950 drivers/scsi/53c700.c spin_unlock_irq(SCp->device->host->host_lock); host 1952 drivers/scsi/53c700.c spin_lock_irq(SCp->device->host->host_lock); host 1959 drivers/scsi/53c700.c spin_unlock_irq(SCp->device->host->host_lock); host 2024 drivers/scsi/53c700.c (struct NCR_700_Host_Parameters *)SDp->host->hostdata[0]; host 60 drivers/scsi/53c700.h int NCR_700_release(struct Scsi_Host *host); host 481 drivers/scsi/53c700.h NCR_700_readb(struct Scsi_Host *host, __u32 reg) host 484 drivers/scsi/53c700.h = (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 490 drivers/scsi/53c700.h NCR_700_readl(struct Scsi_Host *host, __u32 reg) host 493 drivers/scsi/53c700.h = (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 505 drivers/scsi/53c700.h NCR_700_writeb(__u8 value, struct Scsi_Host *host, __u32 reg) host 508 drivers/scsi/53c700.h = (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 514 drivers/scsi/53c700.h NCR_700_writel(__u32 value, struct Scsi_Host *host, __u32 reg) host 517 drivers/scsi/53c700.h = (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 146 drivers/scsi/BusLogic.c static const char *blogic_drvr_info(struct Scsi_Host *host) host 149 drivers/scsi/BusLogic.c (struct blogic_adapter *) host->hostdata; host 2292 drivers/scsi/BusLogic.c struct Scsi_Host *host) host 2294 drivers/scsi/BusLogic.c host->max_id = adapter->maxdev; host 2295 drivers/scsi/BusLogic.c host->max_lun = adapter->maxlun; host 2296 drivers/scsi/BusLogic.c host->max_channel = 0; host 2297 drivers/scsi/BusLogic.c host->unique_id = adapter->io_addr; host 2298 drivers/scsi/BusLogic.c host->this_id = adapter->scsi_id; host 2299 drivers/scsi/BusLogic.c host->can_queue = adapter->drvr_qdepth; host 2300 drivers/scsi/BusLogic.c host->sg_tablesize = adapter->drvr_sglimit; host 2301 drivers/scsi/BusLogic.c host->unchecked_isa_dma = adapter->need_bouncebuf; host 2302 drivers/scsi/BusLogic.c host->cmd_per_lun = adapter->untag_qdepth; host 2316 drivers/scsi/BusLogic.c (struct blogic_adapter *) dev->host->hostdata; host 2388 drivers/scsi/BusLogic.c struct Scsi_Host *host; host 2452 drivers/scsi/BusLogic.c host = scsi_host_alloc(&blogic_template, host 2454 drivers/scsi/BusLogic.c if (host == NULL) { host 2459 drivers/scsi/BusLogic.c myadapter = (struct blogic_adapter *) host->hostdata; host 2461 drivers/scsi/BusLogic.c myadapter->scsi_host = host; host 2462 drivers/scsi/BusLogic.c myadapter->host_no = host->host_no; host 2506 drivers/scsi/BusLogic.c scsi_host_put(host); host 2510 drivers/scsi/BusLogic.c host); host 2511 drivers/scsi/BusLogic.c if (scsi_add_host(host, myadapter->pci_device host 2520 drivers/scsi/BusLogic.c scsi_host_put(host); host 2523 drivers/scsi/BusLogic.c scsi_scan_host(host); host 2541 drivers/scsi/BusLogic.c scsi_host_put(host); host 2560 drivers/scsi/BusLogic.c struct Scsi_Host *host = adapter->scsi_host; host 2562 drivers/scsi/BusLogic.c scsi_remove_host(host); host 2586 drivers/scsi/BusLogic.c scsi_host_put(host); host 3000 drivers/scsi/BusLogic.c (struct blogic_adapter *) SCpnt->device->host->hostdata; host 3006 drivers/scsi/BusLogic.c spin_lock_irq(SCpnt->device->host->host_lock); host 3011 drivers/scsi/BusLogic.c spin_unlock_irq(SCpnt->device->host->host_lock); host 3024 drivers/scsi/BusLogic.c (struct blogic_adapter *) command->device->host->hostdata; host 3247 drivers/scsi/BusLogic.c (struct blogic_adapter *) command->device->host->hostdata; host 3388 drivers/scsi/BusLogic.c (struct blogic_adapter *) sdev->host->hostdata; host 388 drivers/scsi/NCR5380.c hostdata->host = instance; host 682 drivers/scsi/NCR5380.c struct Scsi_Host *instance = hostdata->host; host 2225 drivers/scsi/NCR5380.c struct Scsi_Host *instance = cmd->device->host; host 2365 drivers/scsi/NCR5380.c struct Scsi_Host *instance = cmd->device->host; host 208 drivers/scsi/NCR5380.h struct Scsi_Host *host; /* SCSI host backpointer */ host 253 drivers/scsi/NCR5380.h #define dsprintk(flg, host, fmt, ...) \ host 255 drivers/scsi/NCR5380.h shost_printk(KERN_DEBUG, host, fmt, ## __VA_ARGS__); \ host 85 drivers/scsi/a100u2w.c static struct orc_scb *__orc_alloc_scb(struct orc_host * host); host 86 drivers/scsi/a100u2w.c static void inia100_scb_handler(struct orc_host *host, struct orc_scb *scb); host 139 drivers/scsi/a100u2w.c static u8 wait_chip_ready(struct orc_host * host) host 144 drivers/scsi/a100u2w.c if (inb(host->base + ORC_HCTRL) & HOSTSTOP) /* Wait HOSTSTOP set */ host 151 drivers/scsi/a100u2w.c static u8 wait_firmware_ready(struct orc_host * host) host 156 drivers/scsi/a100u2w.c if (inb(host->base + ORC_HSTUS) & RREADY) /* Wait READY set */ host 164 drivers/scsi/a100u2w.c static u8 wait_scsi_reset_done(struct orc_host * host) host 169 drivers/scsi/a100u2w.c if (!(inb(host->base + ORC_HCTRL) & SCSIRST)) /* Wait SCSIRST done */ host 177 drivers/scsi/a100u2w.c static u8 wait_HDO_off(struct orc_host * host) host 182 drivers/scsi/a100u2w.c if (!(inb(host->base + ORC_HCTRL) & HDO)) /* Wait HDO off */ host 190 drivers/scsi/a100u2w.c static u8 wait_hdi_set(struct orc_host * host, u8 * data) host 195 drivers/scsi/a100u2w.c if ((*data = inb(host->base + ORC_HSTUS)) & HDI) host 203 drivers/scsi/a100u2w.c static unsigned short orc_read_fwrev(struct orc_host * host) host 208 drivers/scsi/a100u2w.c outb(ORC_CMD_VERSION, host->base + ORC_HDATA); host 209 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); host 210 drivers/scsi/a100u2w.c if (wait_HDO_off(host) == 0) /* Wait HDO off */ host 213 drivers/scsi/a100u2w.c if (wait_hdi_set(host, &data) == 0) /* Wait HDI set */ host 215 drivers/scsi/a100u2w.c version = inb(host->base + ORC_HDATA); host 216 drivers/scsi/a100u2w.c outb(data, host->base + ORC_HSTUS); /* Clear HDI */ host 218 drivers/scsi/a100u2w.c if (wait_hdi_set(host, &data) == 0) /* Wait HDI set */ host 220 drivers/scsi/a100u2w.c version |= inb(host->base + ORC_HDATA) << 8; host 221 drivers/scsi/a100u2w.c outb(data, host->base + ORC_HSTUS); /* Clear HDI */ host 227 drivers/scsi/a100u2w.c static u8 orc_nv_write(struct orc_host * host, unsigned char address, unsigned char value) host 229 drivers/scsi/a100u2w.c outb(ORC_CMD_SET_NVM, host->base + ORC_HDATA); /* Write command */ host 230 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); host 231 drivers/scsi/a100u2w.c if (wait_HDO_off(host) == 0) /* Wait HDO off */ host 234 drivers/scsi/a100u2w.c outb(address, host->base + ORC_HDATA); /* Write address */ host 235 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); host 236 drivers/scsi/a100u2w.c if (wait_HDO_off(host) == 0) /* Wait HDO off */ host 239 drivers/scsi/a100u2w.c outb(value, host->base + ORC_HDATA); /* Write value */ host 240 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); host 241 drivers/scsi/a100u2w.c if (wait_HDO_off(host) == 0) /* Wait HDO off */ host 248 drivers/scsi/a100u2w.c static u8 orc_nv_read(struct orc_host * host, u8 address, u8 *ptr) host 252 drivers/scsi/a100u2w.c outb(ORC_CMD_GET_NVM, host->base + ORC_HDATA); /* Write command */ host 253 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); host 254 drivers/scsi/a100u2w.c if (wait_HDO_off(host) == 0) /* Wait HDO off */ host 257 drivers/scsi/a100u2w.c outb(address, host->base + ORC_HDATA); /* Write address */ host 258 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); host 259 drivers/scsi/a100u2w.c if (wait_HDO_off(host) == 0) /* Wait HDO off */ host 262 drivers/scsi/a100u2w.c if (wait_hdi_set(host, &data) == 0) /* Wait HDI set */ host 264 drivers/scsi/a100u2w.c *ptr = inb(host->base + ORC_HDATA); host 265 drivers/scsi/a100u2w.c outb(data, host->base + ORC_HSTUS); /* Clear HDI */ host 277 drivers/scsi/a100u2w.c static void orc_exec_scb(struct orc_host * host, struct orc_scb * scb) host 280 drivers/scsi/a100u2w.c outb(scb->scbidx, host->base + ORC_PQUEUE); host 291 drivers/scsi/a100u2w.c static int se2_rd_all(struct orc_host * host) host 298 drivers/scsi/a100u2w.c if (orc_nv_read(host, (u8) i, np) == 0) host 319 drivers/scsi/a100u2w.c static void se2_update_all(struct orc_host * host) host 334 drivers/scsi/a100u2w.c orc_nv_write(host, (u8) i, *np); host 346 drivers/scsi/a100u2w.c static void read_eeprom(struct orc_host * host) host 348 drivers/scsi/a100u2w.c if (se2_rd_all(host) != 1) { host 349 drivers/scsi/a100u2w.c se2_update_all(host); /* setup default pattern */ host 350 drivers/scsi/a100u2w.c se2_rd_all(host); /* load again */ host 365 drivers/scsi/a100u2w.c static u8 orc_load_firmware(struct orc_host * host) host 375 drivers/scsi/a100u2w.c data = inb(host->base + ORC_GCFG); host 376 drivers/scsi/a100u2w.c outb(data | EEPRG, host->base + ORC_GCFG); /* Enable EEPROM programming */ host 377 drivers/scsi/a100u2w.c outb(0x00, host->base + ORC_EBIOSADR2); host 378 drivers/scsi/a100u2w.c outw(0x0000, host->base + ORC_EBIOSADR0); host 379 drivers/scsi/a100u2w.c if (inb(host->base + ORC_EBIOSDATA) != 0x55) { host 380 drivers/scsi/a100u2w.c outb(data, host->base + ORC_GCFG); /* Disable EEPROM programming */ host 383 drivers/scsi/a100u2w.c outw(0x0001, host->base + ORC_EBIOSADR0); host 384 drivers/scsi/a100u2w.c if (inb(host->base + ORC_EBIOSDATA) != 0xAA) { host 385 drivers/scsi/a100u2w.c outb(data, host->base + ORC_GCFG); /* Disable EEPROM programming */ host 389 drivers/scsi/a100u2w.c outb(PRGMRST | DOWNLOAD, host->base + ORC_RISCCTL); /* Enable SRAM programming */ host 392 drivers/scsi/a100u2w.c outw(0x0010, host->base + ORC_EBIOSADR0); host 393 drivers/scsi/a100u2w.c *data32_ptr = inb(host->base + ORC_EBIOSDATA); /* Read from BIOS */ host 394 drivers/scsi/a100u2w.c outw(0x0011, host->base + ORC_EBIOSADR0); host 395 drivers/scsi/a100u2w.c *(data32_ptr + 1) = inb(host->base + ORC_EBIOSDATA); /* Read from BIOS */ host 396 drivers/scsi/a100u2w.c outw(0x0012, host->base + ORC_EBIOSADR0); host 397 drivers/scsi/a100u2w.c *(data32_ptr + 2) = inb(host->base + ORC_EBIOSDATA); /* Read from BIOS */ host 398 drivers/scsi/a100u2w.c outw(*(data32_ptr + 2), host->base + ORC_EBIOSADR2); host 399 drivers/scsi/a100u2w.c outl(le32_to_cpu(data32), host->base + ORC_FWBASEADR); /* Write FW address */ host 408 drivers/scsi/a100u2w.c outw(bios_addr, host->base + ORC_EBIOSADR0); host 409 drivers/scsi/a100u2w.c *data32_ptr++ = inb(host->base + ORC_EBIOSDATA); /* Read from BIOS */ host 411 drivers/scsi/a100u2w.c outl(le32_to_cpu(data32), host->base + ORC_RISCRAM); /* Write every 4 bytes */ host 418 drivers/scsi/a100u2w.c outb(PRGMRST | DOWNLOAD, host->base + ORC_RISCCTL); /* Reset program count 0 */ host 423 drivers/scsi/a100u2w.c outw(bios_addr, host->base + ORC_EBIOSADR0); host 424 drivers/scsi/a100u2w.c *data32_ptr++ = inb(host->base + ORC_EBIOSDATA); /* Read from BIOS */ host 426 drivers/scsi/a100u2w.c if (inl(host->base + ORC_RISCRAM) != le32_to_cpu(data32)) { host 427 drivers/scsi/a100u2w.c outb(PRGMRST, host->base + ORC_RISCCTL); /* Reset program to 0 */ host 428 drivers/scsi/a100u2w.c outb(data, host->base + ORC_GCFG); /*Disable EEPROM programming */ host 436 drivers/scsi/a100u2w.c outb(PRGMRST, host->base + ORC_RISCCTL); /* Reset program to 0 */ host 437 drivers/scsi/a100u2w.c outb(data, host->base + ORC_GCFG); /* Disable EEPROM programming */ host 442 drivers/scsi/a100u2w.c static void setup_SCBs(struct orc_host * host) host 450 drivers/scsi/a100u2w.c outb(ORC_MAXQUEUE, host->base + ORC_SCBSIZE); /* Total number of SCBs */ host 452 drivers/scsi/a100u2w.c outl(host->scb_phys, host->base + ORC_SCBBASE0); host 454 drivers/scsi/a100u2w.c outl(host->scb_phys, host->base + ORC_SCBBASE1); host 457 drivers/scsi/a100u2w.c scb = host->scb_virt; host 458 drivers/scsi/a100u2w.c escb = host->escb_virt; host 461 drivers/scsi/a100u2w.c escb_phys = (host->escb_phys + (sizeof(struct orc_extended_scb) * i)); host 479 drivers/scsi/a100u2w.c static void init_alloc_map(struct orc_host * host) host 485 drivers/scsi/a100u2w.c host->allocation_map[i][j] = 0xffffffff; host 499 drivers/scsi/a100u2w.c static int init_orchid(struct orc_host * host) host 505 drivers/scsi/a100u2w.c init_alloc_map(host); host 506 drivers/scsi/a100u2w.c outb(0xFF, host->base + ORC_GIMSK); /* Disable all interrupts */ host 508 drivers/scsi/a100u2w.c if (inb(host->base + ORC_HSTUS) & RREADY) { /* Orchid is ready */ host 509 drivers/scsi/a100u2w.c revision = orc_read_fwrev(host); host 511 drivers/scsi/a100u2w.c outb(DEVRST, host->base + ORC_HCTRL); /* Reset Host Adapter */ host 512 drivers/scsi/a100u2w.c if (wait_chip_ready(host) == 0) host 514 drivers/scsi/a100u2w.c orc_load_firmware(host); /* Download FW */ host 515 drivers/scsi/a100u2w.c setup_SCBs(host); /* Setup SCB base and SCB Size registers */ host 516 drivers/scsi/a100u2w.c outb(0x00, host->base + ORC_HCTRL); /* clear HOSTSTOP */ host 517 drivers/scsi/a100u2w.c if (wait_firmware_ready(host) == 0) host 521 drivers/scsi/a100u2w.c setup_SCBs(host); /* Setup SCB base and SCB Size registers */ host 524 drivers/scsi/a100u2w.c outb(DEVRST, host->base + ORC_HCTRL); /* Reset Host Adapter */ host 525 drivers/scsi/a100u2w.c if (wait_chip_ready(host) == 0) host 527 drivers/scsi/a100u2w.c orc_load_firmware(host); /* Download FW */ host 528 drivers/scsi/a100u2w.c setup_SCBs(host); /* Setup SCB base and SCB Size registers */ host 529 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); /* Do Hardware Reset & */ host 532 drivers/scsi/a100u2w.c if (wait_firmware_ready(host) == 0) /* Wait for firmware ready */ host 538 drivers/scsi/a100u2w.c read_eeprom(host); host 543 drivers/scsi/a100u2w.c host->scsi_id = nvramp->scsi_id; host 544 drivers/scsi/a100u2w.c host->BIOScfg = nvramp->BIOSConfig1; host 545 drivers/scsi/a100u2w.c host->max_targets = MAX_TARGETS; host 548 drivers/scsi/a100u2w.c host->target_flag[i] = *ptr; host 549 drivers/scsi/a100u2w.c host->max_tags[i] = ORC_MAXTAGS; host 553 drivers/scsi/a100u2w.c host->flags |= HCF_SCSI_RESET; host 554 drivers/scsi/a100u2w.c outb(0xFB, host->base + ORC_GIMSK); /* enable RP FIFO interrupt */ host 565 drivers/scsi/a100u2w.c static int orc_reset_scsi_bus(struct orc_host * host) host 569 drivers/scsi/a100u2w.c spin_lock_irqsave(&host->allocation_lock, flags); host 571 drivers/scsi/a100u2w.c init_alloc_map(host); host 573 drivers/scsi/a100u2w.c outb(SCSIRST, host->base + ORC_HCTRL); host 576 drivers/scsi/a100u2w.c if (wait_scsi_reset_done(host) == 0) { host 577 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&host->allocation_lock, flags); host 580 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&host->allocation_lock, flags); host 595 drivers/scsi/a100u2w.c static int orc_device_reset(struct orc_host * host, struct scsi_cmnd *cmd, unsigned int target) host 603 drivers/scsi/a100u2w.c spin_lock_irqsave(&(host->allocation_lock), flags); host 608 drivers/scsi/a100u2w.c host_scb = host->scb_virt; host 612 drivers/scsi/a100u2w.c init_alloc_map(host); host 624 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&(host->allocation_lock), flags); host 629 drivers/scsi/a100u2w.c if ((scb = __orc_alloc_scb(host)) == NULL) { host 631 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&(host->allocation_lock), flags); host 650 drivers/scsi/a100u2w.c orc_exec_scb(host, scb); /* Start execute SCB */ host 651 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&host->allocation_lock, flags); host 665 drivers/scsi/a100u2w.c static struct orc_scb *__orc_alloc_scb(struct orc_host * host) host 672 drivers/scsi/a100u2w.c channel = host->index; host 675 drivers/scsi/a100u2w.c if ((host->allocation_map[channel][i] >> index) & 0x01) { host 676 drivers/scsi/a100u2w.c host->allocation_map[channel][i] &= ~(1 << index); host 681 drivers/scsi/a100u2w.c return host->scb_virt + idx; host 696 drivers/scsi/a100u2w.c static struct orc_scb *orc_alloc_scb(struct orc_host * host) host 701 drivers/scsi/a100u2w.c spin_lock_irqsave(&host->allocation_lock, flags); host 702 drivers/scsi/a100u2w.c scb = __orc_alloc_scb(host); host 703 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&host->allocation_lock, flags); host 716 drivers/scsi/a100u2w.c static void orc_release_scb(struct orc_host *host, struct orc_scb *scb) host 721 drivers/scsi/a100u2w.c spin_lock_irqsave(&(host->allocation_lock), flags); host 722 drivers/scsi/a100u2w.c channel = host->index; /* Channel */ host 726 drivers/scsi/a100u2w.c host->allocation_map[channel][i] |= (1 << index); host 727 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&(host->allocation_lock), flags); host 738 drivers/scsi/a100u2w.c static int orchid_abort_scb(struct orc_host * host, struct orc_scb * scb) host 742 drivers/scsi/a100u2w.c outb(ORC_CMD_ABORT_SCB, host->base + ORC_HDATA); /* Write command */ host 743 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); host 744 drivers/scsi/a100u2w.c if (wait_HDO_off(host) == 0) /* Wait HDO off */ host 747 drivers/scsi/a100u2w.c outb(scb->scbidx, host->base + ORC_HDATA); /* Write address */ host 748 drivers/scsi/a100u2w.c outb(HDO, host->base + ORC_HCTRL); host 749 drivers/scsi/a100u2w.c if (wait_HDO_off(host) == 0) /* Wait HDO off */ host 752 drivers/scsi/a100u2w.c if (wait_hdi_set(host, &data) == 0) /* Wait HDI set */ host 754 drivers/scsi/a100u2w.c status = inb(host->base + ORC_HDATA); host 755 drivers/scsi/a100u2w.c outb(data, host->base + ORC_HSTUS); /* Clear HDI */ host 762 drivers/scsi/a100u2w.c static int inia100_abort_cmd(struct orc_host * host, struct scsi_cmnd *cmd) host 769 drivers/scsi/a100u2w.c spin_lock_irqsave(&(host->allocation_lock), flags); host 771 drivers/scsi/a100u2w.c scb = host->scb_virt; host 784 drivers/scsi/a100u2w.c if (orchid_abort_scb(host, scb)) { host 786 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&host->allocation_lock, flags); host 794 drivers/scsi/a100u2w.c spin_unlock_irqrestore(&host->allocation_lock, flags); host 811 drivers/scsi/a100u2w.c static irqreturn_t orc_interrupt(struct orc_host * host) host 817 drivers/scsi/a100u2w.c if (inb(host->base + ORC_RQUEUECNT) == 0) host 822 drivers/scsi/a100u2w.c scb_index = inb(host->base + ORC_RQUEUE); host 825 drivers/scsi/a100u2w.c scb = (struct orc_scb *) ((unsigned long) host->scb_virt + (unsigned long) (sizeof(struct orc_scb) * scb_index)); host 828 drivers/scsi/a100u2w.c inia100_scb_handler(host, scb); host 829 drivers/scsi/a100u2w.c } while (inb(host->base + ORC_RQUEUECNT)); host 842 drivers/scsi/a100u2w.c static int inia100_build_scb(struct orc_host * host, struct orc_scb * scb, struct scsi_cmnd * cmd) host 917 drivers/scsi/a100u2w.c struct orc_host *host; /* Point to Host adapter control block */ host 919 drivers/scsi/a100u2w.c host = (struct orc_host *) cmd->device->host->hostdata; host 922 drivers/scsi/a100u2w.c if ((scb = orc_alloc_scb(host)) == NULL) host 925 drivers/scsi/a100u2w.c if (inia100_build_scb(host, scb, cmd)) { host 926 drivers/scsi/a100u2w.c orc_release_scb(host, scb); host 929 drivers/scsi/a100u2w.c orc_exec_scb(host, scb); /* Start execute SCB */ host 945 drivers/scsi/a100u2w.c struct orc_host *host; host 947 drivers/scsi/a100u2w.c host = (struct orc_host *) cmd->device->host->hostdata; host 948 drivers/scsi/a100u2w.c return inia100_abort_cmd(host, cmd); host 961 drivers/scsi/a100u2w.c struct orc_host *host; host 962 drivers/scsi/a100u2w.c host = (struct orc_host *) cmd->device->host->hostdata; host 963 drivers/scsi/a100u2w.c return orc_reset_scsi_bus(host); host 975 drivers/scsi/a100u2w.c struct orc_host *host; host 976 drivers/scsi/a100u2w.c host = (struct orc_host *) cmd->device->host->hostdata; host 977 drivers/scsi/a100u2w.c return orc_device_reset(host, cmd, scmd_id(cmd)); host 991 drivers/scsi/a100u2w.c static void inia100_scb_handler(struct orc_host *host, struct orc_scb *scb) host 999 drivers/scsi/a100u2w.c orc_release_scb(host, scb); /* Release SCB for current channel */ host 1046 drivers/scsi/a100u2w.c orc_release_scb(host, scb); /* Release SCB for current channel */ host 1060 drivers/scsi/a100u2w.c struct orc_host *host = (struct orc_host *)shost->hostdata; host 1065 drivers/scsi/a100u2w.c res = orc_interrupt(host); host 1087 drivers/scsi/a100u2w.c struct orc_host *host; host 1118 drivers/scsi/a100u2w.c host = (struct orc_host *)shost->hostdata; host 1119 drivers/scsi/a100u2w.c host->pdev = pdev; host 1120 drivers/scsi/a100u2w.c host->base = port; host 1121 drivers/scsi/a100u2w.c host->BIOScfg = bios; host 1122 drivers/scsi/a100u2w.c spin_lock_init(&host->allocation_lock); host 1126 drivers/scsi/a100u2w.c host->scb_virt = dma_alloc_coherent(&pdev->dev, sz, &host->scb_phys, host 1128 drivers/scsi/a100u2w.c if (!host->scb_virt) { host 1135 drivers/scsi/a100u2w.c host->escb_virt = dma_alloc_coherent(&pdev->dev, sz, &host->escb_phys, host 1137 drivers/scsi/a100u2w.c if (!host->escb_virt) { host 1142 drivers/scsi/a100u2w.c biosaddr = host->BIOScfg; host 1145 drivers/scsi/a100u2w.c if (init_orchid(host)) { /* Initialize orchid chip */ host 1150 drivers/scsi/a100u2w.c shost->io_port = host->base; host 1154 drivers/scsi/a100u2w.c shost->max_id = host->max_targets; host 1157 drivers/scsi/a100u2w.c shost->this_id = host->scsi_id; /* Assign HCS index */ host 1183 drivers/scsi/a100u2w.c host->escb_virt, host->escb_phys); host 1187 drivers/scsi/a100u2w.c host->scb_virt, host->scb_phys); host 1201 drivers/scsi/a100u2w.c struct orc_host *host = (struct orc_host *)shost->hostdata; host 1208 drivers/scsi/a100u2w.c host->escb_virt, host->escb_phys); host 1211 drivers/scsi/a100u2w.c host->scb_virt, host->scb_phys); host 44 drivers/scsi/a2091.c struct Scsi_Host *instance = cmd->device->host; host 48 drivers/scsi/a3000.c struct Scsi_Host *instance = cmd->device->host; host 40 drivers/scsi/a4000t.c struct Scsi_Host *host; host 67 drivers/scsi/a4000t.c host = NCR_700_detect(&a4000t_scsi_driver_template, hostdata, host 69 drivers/scsi/a4000t.c if (!host) { host 75 drivers/scsi/a4000t.c host->this_id = 7; host 76 drivers/scsi/a4000t.c host->base = scsi_addr; host 77 drivers/scsi/a4000t.c host->irq = IRQ_AMIGA_PORTS; host 79 drivers/scsi/a4000t.c if (request_irq(host->irq, NCR_700_intr, IRQF_SHARED, "a4000t-scsi", host 80 drivers/scsi/a4000t.c host)) { host 85 drivers/scsi/a4000t.c platform_set_drvdata(pdev, host); host 86 drivers/scsi/a4000t.c scsi_scan_host(host); host 90 drivers/scsi/a4000t.c scsi_host_put(host); host 100 drivers/scsi/a4000t.c struct Scsi_Host *host = platform_get_drvdata(pdev); host 101 drivers/scsi/a4000t.c struct NCR_700_Host_Parameters *hostdata = shost_priv(host); host 104 drivers/scsi/a4000t.c scsi_remove_host(host); host 105 drivers/scsi/a4000t.c NCR_700_release(host); host 107 drivers/scsi/a4000t.c free_irq(host->irq, host); host 575 drivers/scsi/aacraid/aachba.c dev = (struct aac_dev *)scsicmd->device->host->hostdata; host 611 drivers/scsi/aacraid/aachba.c struct fsa_dev_info *fsa_dev_ptr = ((struct aac_dev *)(scsicmd->device->host->hostdata))->fsa_dev; host 737 drivers/scsi/aacraid/aachba.c if ((fibptr = aac_fib_alloc((struct aac_dev *)scsicmd->device->host->hostdata))) { host 775 drivers/scsi/aacraid/aachba.c struct fsa_dev_info *fsa_dev_ptr = ((struct aac_dev *)(scsicmd->device->host->hostdata))->fsa_dev; host 818 drivers/scsi/aacraid/aachba.c scsidev->host = dev->scsi_host_ptr; host 997 drivers/scsi/aacraid/aachba.c dev = (struct aac_dev *)scsicmd->device->host->hostdata; host 1107 drivers/scsi/aacraid/aachba.c dev = (struct aac_dev *)scsicmd->device->host->hostdata; host 1521 drivers/scsi/aacraid/aachba.c dev = (struct aac_dev *)cmd->device->host->hostdata; host 1635 drivers/scsi/aacraid/aachba.c dev = (struct aac_dev *)cmd->device->host->hostdata; host 2415 drivers/scsi/aacraid/aachba.c dev = (struct aac_dev *)scsicmd->device->host->hostdata; host 2517 drivers/scsi/aacraid/aachba.c dev = (struct aac_dev *)scsicmd->device->host->hostdata; host 2718 drivers/scsi/aacraid/aachba.c aac = (struct aac_dev *)sdev->host->hostdata; host 2784 drivers/scsi/aacraid/aachba.c struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata; host 2848 drivers/scsi/aacraid/aachba.c struct Scsi_Host *host = scsicmd->device->host; host 2849 drivers/scsi/aacraid/aachba.c struct aac_dev *dev = (struct aac_dev *)host->hostdata; host 2860 drivers/scsi/aacraid/aachba.c if (cid != host->this_id) { host 2968 drivers/scsi/aacraid/aachba.c arr[0] = (scmd_id(scsicmd) == host->this_id) ? host 3031 drivers/scsi/aacraid/aachba.c if (cid == host->this_id) { host 3833 drivers/scsi/aacraid/aachba.c dev = (struct aac_dev *)scsicmd->device->host->hostdata; host 3875 drivers/scsi/aacraid/aachba.c dev = shost_priv(scsicmd->device->host); host 514 drivers/scsi/aacraid/comminit.c struct Scsi_Host * host = dev->scsi_host_ptr; host 525 drivers/scsi/aacraid/comminit.c dev->sg_tablesize = host->sg_tablesize = (dev->max_fib_size host 603 drivers/scsi/aacraid/comminit.c host->max_sectors = (status[1] >> 16) << 1; host 606 drivers/scsi/aacraid/comminit.c host->sg_tablesize = status[2] >> 16; host 609 drivers/scsi/aacraid/comminit.c if (host->can_queue > (status[3] >> 16) - host 611 drivers/scsi/aacraid/comminit.c host->can_queue = (status[3] >> 16) - host 613 drivers/scsi/aacraid/comminit.c } else if (host->can_queue > (status[3] & 0xFFFF) - host 615 drivers/scsi/aacraid/comminit.c host->can_queue = (status[3] & 0xFFFF) - host 621 drivers/scsi/aacraid/comminit.c if (numacb < host->can_queue) host 622 drivers/scsi/aacraid/comminit.c host->can_queue = numacb; host 1470 drivers/scsi/aacraid/commsup.c struct Scsi_Host *host; host 1489 drivers/scsi/aacraid/commsup.c host = aac->scsi_host_ptr; host 1490 drivers/scsi/aacraid/commsup.c scsi_block_requests(host); host 1493 drivers/scsi/aacraid/commsup.c spin_unlock_irq(host->host_lock); host 1587 drivers/scsi/aacraid/commsup.c if ((quirks & AAC_QUIRK_34SG) && (host->sg_tablesize > 34)) { host 1588 drivers/scsi/aacraid/commsup.c host->sg_tablesize = 34; host 1589 drivers/scsi/aacraid/commsup.c host->max_sectors = (host->sg_tablesize * 8) + 112; host 1591 drivers/scsi/aacraid/commsup.c if ((quirks & AAC_QUIRK_17SG) && (host->sg_tablesize > 17)) { host 1592 drivers/scsi/aacraid/commsup.c host->sg_tablesize = 17; host 1593 drivers/scsi/aacraid/commsup.c host->max_sectors = (host->sg_tablesize * 8) + 112; host 1602 drivers/scsi/aacraid/commsup.c __shost_for_each_device(dev, host) { host 1625 drivers/scsi/aacraid/commsup.c __shost_for_each_device(dev, host) { host 1633 drivers/scsi/aacraid/commsup.c scsi_unblock_requests(host); host 1645 drivers/scsi/aacraid/commsup.c spin_lock_irq(host->host_lock); host 1654 drivers/scsi/aacraid/commsup.c struct Scsi_Host * host; host 1672 drivers/scsi/aacraid/commsup.c host = aac->scsi_host_ptr; host 1673 drivers/scsi/aacraid/commsup.c scsi_block_requests(host); host 1678 drivers/scsi/aacraid/commsup.c spin_lock_irqsave(host->host_lock, flagv); host 1682 drivers/scsi/aacraid/commsup.c spin_unlock_irqrestore(host->host_lock, flagv); host 390 drivers/scsi/aacraid/linit.c struct aac_dev *aac = (struct aac_dev *)sdev->host->hostdata; host 435 drivers/scsi/aacraid/linit.c struct Scsi_Host *host = sdev->host; host 446 drivers/scsi/aacraid/linit.c __shost_for_each_device(dev, host) { host 463 drivers/scsi/aacraid/linit.c depth = (host->can_queue - num_one) / num_lsu; host 514 drivers/scsi/aacraid/linit.c struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata); host 526 drivers/scsi/aacraid/linit.c struct Scsi_Host *host = sdev->host; host 529 drivers/scsi/aacraid/linit.c __shost_for_each_device(dev, host) { host 535 drivers/scsi/aacraid/linit.c if (num >= host->can_queue) host 536 drivers/scsi/aacraid/linit.c num = host->can_queue - 1; host 537 drivers/scsi/aacraid/linit.c if (depth > (host->can_queue - num)) host 538 drivers/scsi/aacraid/linit.c depth = host->can_queue - num; host 555 drivers/scsi/aacraid/linit.c struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata); host 576 drivers/scsi/aacraid/linit.c struct aac_dev *aac = (struct aac_dev *)(sdev->host->hostdata); host 611 drivers/scsi/aacraid/linit.c struct aac_dev *dev = (struct aac_dev *)sdev->host->hostdata; host 670 drivers/scsi/aacraid/linit.c struct Scsi_Host * host = dev->host; host 671 drivers/scsi/aacraid/linit.c struct aac_dev * aac = (struct aac_dev *)host->hostdata; host 689 drivers/scsi/aacraid/linit.c host->host_no, sdev_channel(dev), sdev_id(dev), (int)dev->lun); host 692 drivers/scsi/aacraid/linit.c for (count = 0; count < (host->can_queue + AAC_NUM_MGT_FIB); ++count) { host 744 drivers/scsi/aacraid/linit.c host->host_no, sdev_channel(dev), sdev_id(dev), host 760 drivers/scsi/aacraid/linit.c count < (host->can_queue + AAC_NUM_MGT_FIB); host 781 drivers/scsi/aacraid/linit.c count < (host->can_queue + AAC_NUM_MGT_FIB); host 887 drivers/scsi/aacraid/linit.c struct Scsi_Host * host = dev->host; host 888 drivers/scsi/aacraid/linit.c struct aac_dev * aac = (struct aac_dev *)host->hostdata; host 945 drivers/scsi/aacraid/linit.c struct Scsi_Host * host = dev->host; host 946 drivers/scsi/aacraid/linit.c struct aac_dev * aac = (struct aac_dev *)host->hostdata; host 1004 drivers/scsi/aacraid/linit.c struct Scsi_Host * host = dev->host; host 1005 drivers/scsi/aacraid/linit.c struct aac_dev * aac = (struct aac_dev *)host->hostdata; host 1013 drivers/scsi/aacraid/linit.c for (count = 0; count < (host->can_queue + AAC_NUM_MGT_FIB); ++count) { host 1057 drivers/scsi/aacraid/linit.c struct Scsi_Host * host = dev->host; host 1058 drivers/scsi/aacraid/linit.c struct aac_dev * aac = (struct aac_dev *)host->hostdata; host 1201 drivers/scsi/aacraid/linit.c struct aac_dev *dev = (struct aac_dev *)sdev->host->hostdata; host 3652 drivers/scsi/advansys.c ASC_STATS(scp->device->host, done); host 7107 drivers/scsi/advansys.c struct Scsi_Host *shost = scp->device->host; host 7188 drivers/scsi/advansys.c struct asc_board *boardp = shost_priv(sdev->host); host 7191 drivers/scsi/advansys.c ASC_STATS(sdev->host, biosparam); host 7482 drivers/scsi/advansys.c struct asc_board *boardp = shost_priv(sdev->host); host 7496 drivers/scsi/advansys.c struct asc_board *board = shost_priv(scp->device->host); host 7566 drivers/scsi/advansys.c if (use_sg > scp->device->host->sg_tablesize) { host 7569 drivers/scsi/advansys.c scp->device->host->sg_tablesize); host 7589 drivers/scsi/advansys.c ASC_STATS_ADD(scp->device->host, xfer_elem, host 7600 drivers/scsi/advansys.c ASC_STATS_ADD(scp->device->host, xfer_sect, host 7605 drivers/scsi/advansys.c ASC_STATS(scp->device->host, xfer_cnt); host 7652 drivers/scsi/advansys.c ASC_STATS(scp->device->host, adv_build_nosg); host 7702 drivers/scsi/advansys.c ASC_STATS_ADD(scp->device->host, xfer_sect, host 7749 drivers/scsi/advansys.c ASC_STATS(scp->device->host, adv_build_noreq); host 7795 drivers/scsi/advansys.c ASC_STATS(scp->device->host, adv_build_noreq); host 7806 drivers/scsi/advansys.c ASC_STATS(scp->device->host, adv_build_noreq); host 7820 drivers/scsi/advansys.c scp->device->host->sg_tablesize); host 7841 drivers/scsi/advansys.c ASC_STATS_ADD(scp->device->host, xfer_elem, use_sg); host 7844 drivers/scsi/advansys.c ASC_STATS(scp->device->host, xfer_cnt); host 8468 drivers/scsi/advansys.c struct asc_board *boardp = shost_priv(scp->device->host); host 8478 drivers/scsi/advansys.c ASC_STATS(scp->device->host, build_error); host 8505 drivers/scsi/advansys.c ASC_STATS(scp->device->host, build_error); host 8515 drivers/scsi/advansys.c ASC_STATS(scp->device->host, exe_noerror); host 8525 drivers/scsi/advansys.c ASC_STATS(scp->device->host, exe_busy); host 8530 drivers/scsi/advansys.c ASC_STATS(scp->device->host, exe_error); host 8536 drivers/scsi/advansys.c ASC_STATS(scp->device->host, exe_unknown); host 8554 drivers/scsi/advansys.c struct Scsi_Host *shost = scp->device->host; host 11577 drivers/scsi/advansys.c struct Scsi_Host *host[2]; host 11651 drivers/scsi/advansys.c data->host[i] = shost; host 11667 drivers/scsi/advansys.c kfree(data->host[0]); host 11668 drivers/scsi/advansys.c kfree(data->host[1]); host 11681 drivers/scsi/advansys.c struct Scsi_Host *shost = data->host[i]; host 277 drivers/scsi/aha152x.c (cmd) ? ((cmd)->device->host->host_no) : -1, \ host 910 drivers/scsi/aha152x.c struct Scsi_Host *shpnt = SCpnt->device->host; host 1006 drivers/scsi/aha152x.c struct Scsi_Host *shpnt = SCpnt->device->host; host 1047 drivers/scsi/aha152x.c struct Scsi_Host *shpnt = SCpnt->device->host; host 1167 drivers/scsi/aha152x.c return aha152x_bus_reset_host(SCpnt->device->host); host 1226 drivers/scsi/aha152x.c struct Scsi_Host *shpnt = sdev->host; host 247 drivers/scsi/aha1542.c struct device *dev = cmd->device->host->dma_dev; host 509 drivers/scsi/aha1542.c aha1542_outb(cmd->device->host->io_port, CMD_START_SCSI); host 854 drivers/scsi/aha1542.c struct Scsi_Host *sh = cmd->device->host; host 912 drivers/scsi/aha1542.c struct Scsi_Host *sh = cmd->device->host; host 924 drivers/scsi/aha1542.c outb(reset_cmd, CONTROL(cmd->device->host->io_port)); host 926 drivers/scsi/aha1542.c if (!wait_mask(STATUS(cmd->device->host->io_port), host 937 drivers/scsi/aha1542.c setup_mailboxes(cmd->device->host); host 945 drivers/scsi/aha1542.c shost_printk(KERN_WARNING, cmd->device->host, "Sent BUS RESET to scsi host %d\n", cmd->device->host->host_no); host 984 drivers/scsi/aha1542.c struct aha1542_hostdata *aha1542 = shost_priv(sdev->host); host 86 drivers/scsi/aha1740.c #define HOSTDATA(host) ((struct aha1740_hostdata *) &host->hostdata) host 88 drivers/scsi/aha1740.c static inline struct ecb *ecb_dma_to_cpu (struct Scsi_Host *host, host 91 drivers/scsi/aha1740.c struct aha1740_hostdata *hdata = HOSTDATA (host); host 99 drivers/scsi/aha1740.c static inline dma_addr_t ecb_cpu_to_dma (struct Scsi_Host *host, void *cpu) host 101 drivers/scsi/aha1740.c struct aha1740_hostdata *hdata = HOSTDATA (host); host 111 drivers/scsi/aha1740.c struct aha1740_hostdata *host = HOSTDATA(shpnt); host 114 drivers/scsi/aha1740.c shpnt->io_port, shpnt->irq, host->edev->slot, host 115 drivers/scsi/aha1740.c host->translation ? "en" : "dis"); host 209 drivers/scsi/aha1740.c struct Scsi_Host *host = (struct Scsi_Host *) dev_id; host 221 drivers/scsi/aha1740.c if (!host) host 223 drivers/scsi/aha1740.c spin_lock_irqsave(host->host_lock, flags); host 224 drivers/scsi/aha1740.c base = host->io_port; host 226 drivers/scsi/aha1740.c edev = HOSTDATA(host)->edev; host 232 drivers/scsi/aha1740.c ecbptr = ecb_dma_to_cpu (host, inl(MBOXIN0(base))); host 310 drivers/scsi/aha1740.c spin_unlock_irqrestore(host->host_lock, flags); host 320 drivers/scsi/aha1740.c struct aha1740_hostdata *host = HOSTDATA(SCpnt->device->host); host 348 drivers/scsi/aha1740.c spin_lock_irqsave(SCpnt->device->host->host_lock, flags); host 349 drivers/scsi/aha1740.c ecbno = host->last_ecb_used + 1; /* An optimization */ host 353 drivers/scsi/aha1740.c if (!host->ecb[ecbno].cmdw) host 358 drivers/scsi/aha1740.c } while (ecbno != host->last_ecb_used); host 360 drivers/scsi/aha1740.c if (host->ecb[ecbno].cmdw) host 363 drivers/scsi/aha1740.c host->ecb[ecbno].cmdw = AHA1740CMD_INIT; /* SCSI Initiator Command host 366 drivers/scsi/aha1740.c host->last_ecb_used = ecbno; host 367 drivers/scsi/aha1740.c spin_unlock_irqrestore(SCpnt->device->host->host_lock, flags); host 373 drivers/scsi/aha1740.c host->ecb[ecbno].cdblen = SCpnt->cmd_len; /* SCSI Command host 383 drivers/scsi/aha1740.c memcpy(host->ecb[ecbno].cdb, cmd, SCpnt->cmd_len); host 385 drivers/scsi/aha1740.c SCpnt->host_scribble = dma_alloc_coherent (&host->edev->dev, host 403 drivers/scsi/aha1740.c host->ecb[ecbno].sg = 1; /* SCSI Initiator Command host 410 drivers/scsi/aha1740.c host->ecb[ecbno].datalen = nseg * sizeof(struct aha1740_chain); host 411 drivers/scsi/aha1740.c host->ecb[ecbno].dataptr = sg_dma; host 418 drivers/scsi/aha1740.c host->ecb[ecbno].datalen = 0; host 419 drivers/scsi/aha1740.c host->ecb[ecbno].dataptr = 0; host 421 drivers/scsi/aha1740.c host->ecb[ecbno].lun = SCpnt->device->lun; host 422 drivers/scsi/aha1740.c host->ecb[ecbno].ses = 1; /* Suppress underrun errors */ host 423 drivers/scsi/aha1740.c host->ecb[ecbno].dir = direction; host 424 drivers/scsi/aha1740.c host->ecb[ecbno].ars = 1; /* Yes, get the sense on an error */ host 425 drivers/scsi/aha1740.c host->ecb[ecbno].senselen = 12; host 426 drivers/scsi/aha1740.c host->ecb[ecbno].senseptr = ecb_cpu_to_dma (SCpnt->device->host, host 427 drivers/scsi/aha1740.c host->ecb[ecbno].sense); host 428 drivers/scsi/aha1740.c host->ecb[ecbno].statusptr = ecb_cpu_to_dma (SCpnt->device->host, host 429 drivers/scsi/aha1740.c host->ecb[ecbno].status); host 430 drivers/scsi/aha1740.c host->ecb[ecbno].done = done; host 431 drivers/scsi/aha1740.c host->ecb[ecbno].SCpnt = SCpnt; host 436 drivers/scsi/aha1740.c for (i = 0; i < sizeof(host->ecb[ecbno]) - 10; i++) host 437 drivers/scsi/aha1740.c printk("%02x ", ((unchar *)&host->ecb[ecbno])[i]); host 457 drivers/scsi/aha1740.c unsigned int base = SCpnt->device->host->io_port; host 460 drivers/scsi/aha1740.c spin_lock_irqsave(SCpnt->device->host->host_lock, flags); host 469 drivers/scsi/aha1740.c outl (ecb_cpu_to_dma (SCpnt->device->host, host->ecb + ecbno), host 480 drivers/scsi/aha1740.c spin_unlock_irqrestore(SCpnt->device->host->host_lock, flags); host 509 drivers/scsi/aha1740.c int extended = HOSTDATA(sdev->host)->translation; host 556 drivers/scsi/aha1740.c struct aha1740_hostdata *host; host 587 drivers/scsi/aha1740.c host = HOSTDATA(shpnt); host 588 drivers/scsi/aha1740.c host->edev = edev; host 589 drivers/scsi/aha1740.c host->translation = translation; host 590 drivers/scsi/aha1740.c host->ecb_dma_addr = dma_map_single (&edev->dev, host->ecb, host 591 drivers/scsi/aha1740.c sizeof (host->ecb), host 593 drivers/scsi/aha1740.c if (!host->ecb_dma_addr) { host 619 drivers/scsi/aha1740.c dma_unmap_single (&edev->dev, host->ecb_dma_addr, host 620 drivers/scsi/aha1740.c sizeof (host->ecb), DMA_BIDIRECTIONAL); host 632 drivers/scsi/aha1740.c struct aha1740_hostdata *host = HOSTDATA (shpnt); host 637 drivers/scsi/aha1740.c dma_unmap_single (dev, host->ecb_dma_addr, host 638 drivers/scsi/aha1740.c sizeof (host->ecb), DMA_BIDIRECTIONAL); host 115 drivers/scsi/aic7xxx/aic7770_osm.c if (ahc->platform_data && ahc->platform_data->host) host 116 drivers/scsi/aic7xxx/aic7770_osm.c scsi_remove_host(ahc->platform_data->host); host 227 drivers/scsi/aic7xxx/aic79xx_osm.c ahd->platform_data->host->host_no, host 551 drivers/scsi/aic7xxx/aic79xx_osm.c ahd_linux_info(struct Scsi_Host *host) host 559 drivers/scsi/aic7xxx/aic79xx_osm.c ahd = *(struct ahd_softc **)host->hostdata; host 582 drivers/scsi/aic7xxx/aic79xx_osm.c ahd = *(struct ahd_softc **)cmd->device->host->hostdata; host 675 drivers/scsi/aic7xxx/aic79xx_osm.c *((struct ahd_softc **)sdev->host->hostdata); host 705 drivers/scsi/aic7xxx/aic79xx_osm.c ahd = *((struct ahd_softc **)sdev->host->hostdata); host 734 drivers/scsi/aic7xxx/aic79xx_osm.c ahd = *((struct ahd_softc **)sdev->host->hostdata); host 798 drivers/scsi/aic7xxx/aic79xx_osm.c ahd = *(struct ahd_softc **)cmd->device->host->hostdata; host 886 drivers/scsi/aic7xxx/aic79xx_osm.c ahd = *(struct ahd_softc **)cmd->device->host->hostdata; host 1226 drivers/scsi/aic7xxx/aic79xx_osm.c struct Scsi_Host *host; host 1232 drivers/scsi/aic7xxx/aic79xx_osm.c host = scsi_host_alloc(template, sizeof(struct ahd_softc *)); host 1233 drivers/scsi/aic7xxx/aic79xx_osm.c if (host == NULL) host 1236 drivers/scsi/aic7xxx/aic79xx_osm.c *((struct ahd_softc **)host->hostdata) = ahd; host 1237 drivers/scsi/aic7xxx/aic79xx_osm.c ahd->platform_data->host = host; host 1238 drivers/scsi/aic7xxx/aic79xx_osm.c host->can_queue = AHD_MAX_QUEUE; host 1239 drivers/scsi/aic7xxx/aic79xx_osm.c host->cmd_per_lun = 2; host 1240 drivers/scsi/aic7xxx/aic79xx_osm.c host->sg_tablesize = AHD_NSEG; host 1241 drivers/scsi/aic7xxx/aic79xx_osm.c host->this_id = ahd->our_id; host 1242 drivers/scsi/aic7xxx/aic79xx_osm.c host->irq = ahd->platform_data->irq; host 1243 drivers/scsi/aic7xxx/aic79xx_osm.c host->max_id = (ahd->features & AHD_WIDE) ? 16 : 8; host 1244 drivers/scsi/aic7xxx/aic79xx_osm.c host->max_lun = AHD_NUM_LUNS; host 1245 drivers/scsi/aic7xxx/aic79xx_osm.c host->max_channel = 0; host 1246 drivers/scsi/aic7xxx/aic79xx_osm.c host->sg_tablesize = AHD_NSEG; host 1250 drivers/scsi/aic7xxx/aic79xx_osm.c sprintf(buf, "scsi%d", host->host_no); host 1256 drivers/scsi/aic7xxx/aic79xx_osm.c host->unique_id = ahd->unit; host 1260 drivers/scsi/aic7xxx/aic79xx_osm.c host->transportt = ahd_linux_transport_template; host 1262 drivers/scsi/aic7xxx/aic79xx_osm.c retval = scsi_add_host(host, &ahd->dev_softc->dev); host 1265 drivers/scsi/aic7xxx/aic79xx_osm.c scsi_host_put(host); host 1269 drivers/scsi/aic7xxx/aic79xx_osm.c scsi_scan_host(host); host 1365 drivers/scsi/aic7xxx/aic79xx_osm.c if (ahd->platform_data->host) host 1366 drivers/scsi/aic7xxx/aic79xx_osm.c scsi_host_put(ahd->platform_data->host); host 1531 drivers/scsi/aic7xxx/aic79xx_osm.c struct ahd_softc *ahd = *((struct ahd_softc **)sdev->host->hostdata); host 1755 drivers/scsi/aic7xxx/aic79xx_osm.c scsi_report_device_reset(ahd->platform_data->host, host 1760 drivers/scsi/aic7xxx/aic79xx_osm.c if (ahd->platform_data->host != NULL) { host 1761 drivers/scsi/aic7xxx/aic79xx_osm.c scsi_report_bus_reset(ahd->platform_data->host, host 2137 drivers/scsi/aic7xxx/aic79xx_osm.c scsi_block_requests(ahd->platform_data->host); host 2143 drivers/scsi/aic7xxx/aic79xx_osm.c scsi_unblock_requests(ahd->platform_data->host); host 2168 drivers/scsi/aic7xxx/aic79xx_osm.c ahd = *(struct ahd_softc **)cmd->device->host->hostdata; host 347 drivers/scsi/aic7xxx/aic79xx_osm.h struct Scsi_Host *host; /* pointer to scsi host */ host 129 drivers/scsi/aic7xxx/aic79xx_osm_pci.c if (ahd->platform_data && ahd->platform_data->host) host 130 drivers/scsi/aic7xxx/aic79xx_osm_pci.c scsi_remove_host(ahd->platform_data->host); host 256 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc->platform_data->host->host_no, host 495 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc_linux_info(struct Scsi_Host *host) host 503 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc = *(struct ahc_softc **)host->hostdata; host 528 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc = *(struct ahc_softc **)cmd->device->host->hostdata; host 643 drivers/scsi/aic7xxx/aic7xxx_osm.c *((struct ahc_softc **)sdev->host->hostdata); host 676 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc = *((struct ahc_softc **)sdev->host->hostdata); host 707 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc = *((struct ahc_softc **)sdev->host->hostdata); host 778 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc = *(struct ahc_softc **)cmd->device->host->hostdata; host 1089 drivers/scsi/aic7xxx/aic7xxx_osm.c struct Scsi_Host *host; host 1095 drivers/scsi/aic7xxx/aic7xxx_osm.c host = scsi_host_alloc(template, sizeof(struct ahc_softc *)); host 1096 drivers/scsi/aic7xxx/aic7xxx_osm.c if (host == NULL) host 1099 drivers/scsi/aic7xxx/aic7xxx_osm.c *((struct ahc_softc **)host->hostdata) = ahc; host 1100 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc->platform_data->host = host; host 1101 drivers/scsi/aic7xxx/aic7xxx_osm.c host->can_queue = AHC_MAX_QUEUE; host 1102 drivers/scsi/aic7xxx/aic7xxx_osm.c host->cmd_per_lun = 2; host 1104 drivers/scsi/aic7xxx/aic7xxx_osm.c host->this_id = ahc->our_id; host 1105 drivers/scsi/aic7xxx/aic7xxx_osm.c host->irq = ahc->platform_data->irq; host 1106 drivers/scsi/aic7xxx/aic7xxx_osm.c host->max_id = (ahc->features & AHC_WIDE) ? 16 : 8; host 1107 drivers/scsi/aic7xxx/aic7xxx_osm.c host->max_lun = AHC_NUM_LUNS; host 1108 drivers/scsi/aic7xxx/aic7xxx_osm.c host->max_channel = (ahc->features & AHC_TWIN) ? 1 : 0; host 1109 drivers/scsi/aic7xxx/aic7xxx_osm.c host->sg_tablesize = AHC_NSEG; host 1113 drivers/scsi/aic7xxx/aic7xxx_osm.c sprintf(buf, "scsi%d", host->host_no); host 1119 drivers/scsi/aic7xxx/aic7xxx_osm.c host->unique_id = ahc->unit; host 1123 drivers/scsi/aic7xxx/aic7xxx_osm.c host->transportt = ahc_linux_transport_template; host 1125 drivers/scsi/aic7xxx/aic7xxx_osm.c retval = scsi_add_host(host, ahc->dev); host 1128 drivers/scsi/aic7xxx/aic7xxx_osm.c scsi_host_put(host); host 1132 drivers/scsi/aic7xxx/aic7xxx_osm.c scsi_scan_host(host); host 1253 drivers/scsi/aic7xxx/aic7xxx_osm.c if (ahc->platform_data->host) host 1254 drivers/scsi/aic7xxx/aic7xxx_osm.c scsi_host_put(ahc->platform_data->host); host 1395 drivers/scsi/aic7xxx/aic7xxx_osm.c struct ahc_softc *ahc = *((struct ahc_softc **)sdev->host->hostdata); host 1671 drivers/scsi/aic7xxx/aic7xxx_osm.c scsi_report_device_reset(ahc->platform_data->host, host 1676 drivers/scsi/aic7xxx/aic7xxx_osm.c if (ahc->platform_data->host != NULL) { host 1677 drivers/scsi/aic7xxx/aic7xxx_osm.c scsi_report_bus_reset(ahc->platform_data->host, host 2016 drivers/scsi/aic7xxx/aic7xxx_osm.c scsi_block_requests(ahc->platform_data->host); host 2046 drivers/scsi/aic7xxx/aic7xxx_osm.c scsi_unblock_requests(ahc->platform_data->host); host 2070 drivers/scsi/aic7xxx/aic7xxx_osm.c ahc = *(struct ahc_softc **)cmd->device->host->hostdata; host 359 drivers/scsi/aic7xxx/aic7xxx_osm.h struct Scsi_Host *host; /* pointer to scsi host */ host 172 drivers/scsi/aic7xxx/aic7xxx_osm_pci.c if (ahc->platform_data && ahc->platform_data->host) host 173 drivers/scsi/aic7xxx/aic7xxx_osm_pci.c scsi_remove_host(ahc->platform_data->host); host 27 drivers/scsi/am53c974.c shost_printk(KERN_DEBUG, esp->host, f, ##a); \ host 408 drivers/scsi/am53c974.c esp->host = shost; host 513 drivers/scsi/am53c974.c scsi_host_put(esp->host); host 744 drivers/scsi/arcmsr/arcmsr.h struct Scsi_Host * host; host 70 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 71 drivers/scsi/arcmsr/arcmsr_attr.c struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; host 117 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 118 drivers/scsi/arcmsr/arcmsr_attr.c struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; host 165 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 166 drivers/scsi/arcmsr/arcmsr_attr.c struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; host 222 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = acb->host; host 225 drivers/scsi/arcmsr/arcmsr_attr.c error = sysfs_create_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_read_attr); host 230 drivers/scsi/arcmsr/arcmsr_attr.c error = sysfs_create_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_write_attr); host 235 drivers/scsi/arcmsr/arcmsr_attr.c error = sysfs_create_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_clear_attr); host 242 drivers/scsi/arcmsr/arcmsr_attr.c sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_write_attr); host 244 drivers/scsi/arcmsr/arcmsr_attr.c sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_read_attr); host 251 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = acb->host; host 253 drivers/scsi/arcmsr/arcmsr_attr.c sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_clear_attr); host 254 drivers/scsi/arcmsr/arcmsr_attr.c sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_write_attr); host 255 drivers/scsi/arcmsr/arcmsr_attr.c sysfs_remove_bin_file(&host->shost_dev.kobj, &arcmsr_sysfs_message_read_attr); host 272 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 274 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 284 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 286 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 296 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 298 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 308 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 310 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 320 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 322 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 333 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 335 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 346 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 348 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 359 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 361 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 372 drivers/scsi/arcmsr/arcmsr_attr.c struct Scsi_Host *host = class_to_shost(dev); host 374 drivers/scsi/arcmsr/arcmsr_attr.c (struct AdapterControlBlock *) host->hostdata; host 250 drivers/scsi/arcmsr/arcmsr_hba.c printk(KERN_NOTICE "arcmsr%d: memory mapping region fail \n", acb->host->host_no); host 259 drivers/scsi/arcmsr/arcmsr_hba.c printk(KERN_NOTICE "arcmsr%d: memory mapping region fail \n", acb->host->host_no); host 265 drivers/scsi/arcmsr/arcmsr_hba.c printk(KERN_NOTICE "arcmsr%d: memory mapping region fail \n", acb->host->host_no); host 275 drivers/scsi/arcmsr/arcmsr_hba.c printk(KERN_NOTICE "arcmsr%d: memory mapping region fail \n", acb->host->host_no); host 294 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no); host 305 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no); host 483 drivers/scsi/arcmsr/arcmsr_hba.c timeout, retry count down = %d \n", acb->host->host_no, retry_count); host 499 drivers/scsi/arcmsr/arcmsr_hba.c timeout,retry count down = %d \n", acb->host->host_no, retry_count); host 516 drivers/scsi/arcmsr/arcmsr_hba.c timeout,retry count down = %d \n", pACB->host->host_no, retry_count); host 535 drivers/scsi/arcmsr/arcmsr_hba.c pACB->host->host_no, retry_count); host 553 drivers/scsi/arcmsr/arcmsr_hba.c pACB->host->host_no, retry_count); host 648 drivers/scsi/arcmsr/arcmsr_hba.c pr_notice("arcmsr%d: DMA allocation failed\n", acb->host->host_no); host 662 drivers/scsi/arcmsr/arcmsr_hba.c pr_notice("arcmsr%d: DMA allocation failed\n", acb->host->host_no); host 678 drivers/scsi/arcmsr/arcmsr_hba.c pr_notice("arcmsr%d: DMA allocation failed\n", acb->host->host_no); host 718 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->max_sectors = max_xfer_len/512; host 719 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->sg_tablesize = max_sg_entrys; host 725 drivers/scsi/arcmsr/arcmsr_hba.c printk(KERN_NOTICE "arcmsr%d: dma_alloc_coherent got error\n", acb->host->host_no); host 755 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->can_queue = i; host 845 drivers/scsi/arcmsr/arcmsr_hba.c scsi_add_device(acb->host, host 849 drivers/scsi/arcmsr/arcmsr_hba.c psdev = scsi_device_lookup(acb->host, host 876 drivers/scsi/arcmsr/arcmsr_hba.c pr_info("arcmsr%d: msi-x enabled\n", acb->host->host_no); host 899 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no, pci_irq_vector(pdev, i)); host 957 drivers/scsi/arcmsr/arcmsr_hba.c struct Scsi_Host *host; host 965 drivers/scsi/arcmsr/arcmsr_hba.c host = scsi_host_alloc(&arcmsr_scsi_host_template, sizeof(struct AdapterControlBlock)); host 966 drivers/scsi/arcmsr/arcmsr_hba.c if(!host){ host 972 drivers/scsi/arcmsr/arcmsr_hba.c acb = (struct AdapterControlBlock *) host->hostdata; host 978 drivers/scsi/arcmsr/arcmsr_hba.c acb->host = host; host 979 drivers/scsi/arcmsr/arcmsr_hba.c host->max_lun = ARCMSR_MAX_TARGETLUN; host 980 drivers/scsi/arcmsr/arcmsr_hba.c host->max_id = ARCMSR_MAX_TARGETID; /*16:8*/ host 981 drivers/scsi/arcmsr/arcmsr_hba.c host->max_cmd_len = 16; /*this is issue of 64bit LBA ,over 2T byte*/ host 984 drivers/scsi/arcmsr/arcmsr_hba.c host->can_queue = host_can_queue; /* max simultaneous cmds */ host 987 drivers/scsi/arcmsr/arcmsr_hba.c host->cmd_per_lun = cmd_per_lun; host 988 drivers/scsi/arcmsr/arcmsr_hba.c host->this_id = ARCMSR_SCSI_INITIATOR_ID; host 989 drivers/scsi/arcmsr/arcmsr_hba.c host->unique_id = (bus << 8) | dev_fun; host 990 drivers/scsi/arcmsr/arcmsr_hba.c pci_set_drvdata(pdev, host); host 1023 drivers/scsi/arcmsr/arcmsr_hba.c error = scsi_add_host(host, &pdev->dev); host 1035 drivers/scsi/arcmsr/arcmsr_hba.c scsi_scan_host(host); host 1046 drivers/scsi/arcmsr/arcmsr_hba.c scsi_remove_host(host); host 1057 drivers/scsi/arcmsr/arcmsr_hba.c scsi_host_put(host); host 1076 drivers/scsi/arcmsr/arcmsr_hba.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1078 drivers/scsi/arcmsr/arcmsr_hba.c (struct AdapterControlBlock *)host->hostdata; host 1088 drivers/scsi/arcmsr/arcmsr_hba.c pci_set_drvdata(pdev, host); host 1097 drivers/scsi/arcmsr/arcmsr_hba.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1099 drivers/scsi/arcmsr/arcmsr_hba.c (struct AdapterControlBlock *)host->hostdata; host 1142 drivers/scsi/arcmsr/arcmsr_hba.c scsi_remove_host(host); host 1146 drivers/scsi/arcmsr/arcmsr_hba.c scsi_host_put(host); host 1158 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no); host 1172 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no); host 1185 drivers/scsi/arcmsr/arcmsr_hba.c , pACB->host->host_no); host 1198 drivers/scsi/arcmsr/arcmsr_hba.c "command' timeout\n", pACB->host->host_no); host 1213 drivers/scsi/arcmsr/arcmsr_hba.c "command' timeout\n", pACB->host->host_no); host 1368 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 1389 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no, pCCB); host 1397 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 1550 drivers/scsi/arcmsr/arcmsr_hba.c psdev = scsi_device_lookup(acb->host, host 1568 drivers/scsi/arcmsr/arcmsr_hba.c struct Scsi_Host *host; host 1570 drivers/scsi/arcmsr/arcmsr_hba.c host = acb->host; host 1572 drivers/scsi/arcmsr/arcmsr_hba.c scsi_remove_host(host); host 1582 drivers/scsi/arcmsr/arcmsr_hba.c scsi_host_put(host); host 1588 drivers/scsi/arcmsr/arcmsr_hba.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1590 drivers/scsi/arcmsr/arcmsr_hba.c (struct AdapterControlBlock *) host->hostdata; host 1603 drivers/scsi/arcmsr/arcmsr_hba.c scsi_remove_host(host); host 1639 drivers/scsi/arcmsr/arcmsr_hba.c scsi_host_put(host); host 1645 drivers/scsi/arcmsr/arcmsr_hba.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1647 drivers/scsi/arcmsr/arcmsr_hba.c (struct AdapterControlBlock *)host->hostdata; host 1744 drivers/scsi/arcmsr/arcmsr_hba.c if (unlikely(nseg > acb->host->sg_tablesize || nseg < 0)) host 1869 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no); host 1882 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no); host 1895 drivers/scsi/arcmsr/arcmsr_hba.c , pACB->host->host_no); host 1908 drivers/scsi/arcmsr/arcmsr_hba.c "timeout\n", pACB->host->host_no); host 1921 drivers/scsi/arcmsr/arcmsr_hba.c "timeout\n", pACB->host->host_no); host 3091 drivers/scsi/arcmsr/arcmsr_hba.c struct Scsi_Host *host = cmd->device->host; host 3092 drivers/scsi/arcmsr/arcmsr_hba.c struct AdapterControlBlock *acb = (struct AdapterControlBlock *) host->hostdata; host 3161 drivers/scsi/arcmsr/arcmsr_hba.c pACB->host->host_no, host 3174 drivers/scsi/arcmsr/arcmsr_hba.c miscellaneous data' timeout \n", acb->host->host_no); host 3187 drivers/scsi/arcmsr/arcmsr_hba.c printk(KERN_ERR "arcmsr%d: can't set driver mode.\n", acb->host->host_no); host 3193 drivers/scsi/arcmsr/arcmsr_hba.c miscellaneous data' timeout \n", acb->host->host_no); host 3216 drivers/scsi/arcmsr/arcmsr_hba.c miscellaneous data' timeout \n", pACB->host->host_no); host 3238 drivers/scsi/arcmsr/arcmsr_hba.c "miscellaneous data timeout\n", acb->host->host_no); host 3264 drivers/scsi/arcmsr/arcmsr_hba.c "miscellaneous data timeout\n", pACB->host->host_no); host 3295 drivers/scsi/arcmsr/arcmsr_hba.c if (acb->host->can_queue >= acb->firm_numbers_queue) host 3296 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->can_queue = acb->maxOutstanding; host 3298 drivers/scsi/arcmsr/arcmsr_hba.c acb->maxOutstanding = acb->host->can_queue; host 3299 drivers/scsi/arcmsr/arcmsr_hba.c acb->maxFreeCCB = acb->host->can_queue; host 3344 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3355 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3413 drivers/scsi/arcmsr/arcmsr_hba.c ,acb->host->host_no host 3424 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3475 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3486 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3552 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3563 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3620 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3631 drivers/scsi/arcmsr/arcmsr_hba.c , acb->host->host_no host 3801 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no); host 3817 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no); host 3835 drivers/scsi/arcmsr/arcmsr_hba.c timeout \n",acb->host->host_no); host 3841 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no); host 3857 drivers/scsi/arcmsr/arcmsr_hba.c timeout \n", acb->host->host_no); host 3877 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no); host 3900 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no); host 4030 drivers/scsi/arcmsr/arcmsr_hba.c rebuild' timeout \n", acb->host->host_no); host 4041 drivers/scsi/arcmsr/arcmsr_hba.c rebuild' timeout \n",acb->host->host_no); host 4053 drivers/scsi/arcmsr/arcmsr_hba.c rebuild' timeout \n", pACB->host->host_no); host 4066 drivers/scsi/arcmsr/arcmsr_hba.c "background rebuild' timeout\n", pACB->host->host_no); host 4080 drivers/scsi/arcmsr/arcmsr_hba.c "background rebuild' timeout \n", pACB->host->host_no); host 4233 drivers/scsi/arcmsr/arcmsr_hba.c printk(KERN_NOTICE "arcmsr%d: executing hw bus reset .....\n", acb->host->host_no); host 4372 drivers/scsi/arcmsr/arcmsr_hba.c acb = (struct AdapterControlBlock *) cmd->device->host->hostdata; host 4398 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no); host 4436 drivers/scsi/arcmsr/arcmsr_hba.c (struct AdapterControlBlock *)cmd->device->host->hostdata; host 4445 drivers/scsi/arcmsr/arcmsr_hba.c acb->host->host_no, cmd->device->id, (u32)cmd->device->lun); host 4473 drivers/scsi/arcmsr/arcmsr_hba.c static const char *arcmsr_info(struct Scsi_Host *host) host 4476 drivers/scsi/arcmsr/arcmsr_hba.c (struct AdapterControlBlock *) host->hostdata; host 176 drivers/scsi/arm/acornscsi.c static void acornscsi_done(AS_Host *host, struct scsi_cmnd **SCpntp, host 178 drivers/scsi/arm/acornscsi.c static int acornscsi_reconnect_finish(AS_Host *host); host 179 drivers/scsi/arm/acornscsi.c static void acornscsi_dma_cleanup(AS_Host *host); host 180 drivers/scsi/arm/acornscsi.c static void acornscsi_abortcmd(AS_Host *host, unsigned char tag); host 195 drivers/scsi/arm/acornscsi.c static inline void sbic_arm_write(AS_Host *host, unsigned int reg, unsigned int value) host 197 drivers/scsi/arm/acornscsi.c writeb(reg, host->base + SBIC_REGIDX); host 198 drivers/scsi/arm/acornscsi.c writeb(value, host->base + SBIC_REGVAL); host 201 drivers/scsi/arm/acornscsi.c static inline int sbic_arm_read(AS_Host *host, unsigned int reg) host 204 drivers/scsi/arm/acornscsi.c return readl(host->base + SBIC_REGIDX) & 255; host 205 drivers/scsi/arm/acornscsi.c writeb(reg, host->base + SBIC_REGIDX); host 206 drivers/scsi/arm/acornscsi.c return readl(host->base + SBIC_REGVAL) & 255; host 209 drivers/scsi/arm/acornscsi.c #define sbic_arm_writenext(host, val) writeb((val), (host)->base + SBIC_REGVAL) host 210 drivers/scsi/arm/acornscsi.c #define sbic_arm_readnext(host) readb((host)->base + SBIC_REGVAL) host 213 drivers/scsi/arm/acornscsi.c #define dmac_read(host,reg) \ host 214 drivers/scsi/arm/acornscsi.c readb((host)->base + DMAC_OFFSET + ((reg) << 2)) host 216 drivers/scsi/arm/acornscsi.c #define dmac_write(host,reg,value) \ host 217 drivers/scsi/arm/acornscsi.c ({ writeb((value), (host)->base + DMAC_OFFSET + ((reg) << 2)); }) host 219 drivers/scsi/arm/acornscsi.c #define dmac_clearintr(host) writeb(0, (host)->fast + INT_REG) host 221 drivers/scsi/arm/acornscsi.c static inline unsigned int dmac_address(AS_Host *host) host 223 drivers/scsi/arm/acornscsi.c return dmac_read(host, DMAC_TXADRHI) << 16 | host 224 drivers/scsi/arm/acornscsi.c dmac_read(host, DMAC_TXADRMD) << 8 | host 225 drivers/scsi/arm/acornscsi.c dmac_read(host, DMAC_TXADRLO); host 229 drivers/scsi/arm/acornscsi.c void acornscsi_dumpdma(AS_Host *host, char *where) host 233 drivers/scsi/arm/acornscsi.c mode = dmac_read(host, DMAC_MODECON); host 234 drivers/scsi/arm/acornscsi.c addr = dmac_address(host); host 235 drivers/scsi/arm/acornscsi.c len = dmac_read(host, DMAC_TXCNTHI) << 8 | host 236 drivers/scsi/arm/acornscsi.c dmac_read(host, DMAC_TXCNTLO); host 239 drivers/scsi/arm/acornscsi.c host->host->host_no, where, host 241 drivers/scsi/arm/acornscsi.c dmac_read(host, DMAC_MASKREG)); host 243 drivers/scsi/arm/acornscsi.c printk("DMA @%06x, ", host->dma.start_addr); host 244 drivers/scsi/arm/acornscsi.c printk("BH @%p +%04x, ", host->scsi.SCp.ptr, host 245 drivers/scsi/arm/acornscsi.c host->scsi.SCp.this_residual); host 246 drivers/scsi/arm/acornscsi.c printk("DT @+%04x ST @+%04x", host->dma.transferred, host 247 drivers/scsi/arm/acornscsi.c host->scsi.SCp.scsi_xferred); host 253 drivers/scsi/arm/acornscsi.c unsigned long acornscsi_sbic_xfcount(AS_Host *host) host 257 drivers/scsi/arm/acornscsi.c length = sbic_arm_read(host, SBIC_TRANSCNTH) << 16; host 258 drivers/scsi/arm/acornscsi.c length |= sbic_arm_readnext(host) << 8; host 259 drivers/scsi/arm/acornscsi.c length |= sbic_arm_readnext(host); host 265 drivers/scsi/arm/acornscsi.c acornscsi_sbic_wait(AS_Host *host, int stat_mask, int stat, int timeout, char *msg) host 270 drivers/scsi/arm/acornscsi.c asr = sbic_arm_read(host, SBIC_ASR); host 278 drivers/scsi/arm/acornscsi.c printk("scsi%d: timeout while %s\n", host->host->host_no, msg); host 284 drivers/scsi/arm/acornscsi.c int acornscsi_sbic_issuecmd(AS_Host *host, int command) host 286 drivers/scsi/arm/acornscsi.c if (acornscsi_sbic_wait(host, ASR_CIP, 0, 1000, "issuing command")) host 289 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_CMND, command); host 310 drivers/scsi/arm/acornscsi.c void acornscsi_resetcard(AS_Host *host) host 315 drivers/scsi/arm/acornscsi.c host->card.page_reg = 0x80; host 316 drivers/scsi/arm/acornscsi.c writeb(host->card.page_reg, host->fast + PAGE_REG); host 321 drivers/scsi/arm/acornscsi.c host->card.page_reg = 0; host 322 drivers/scsi/arm/acornscsi.c writeb(host->card.page_reg, host->fast + PAGE_REG); host 329 drivers/scsi/arm/acornscsi.c if (readb(host->fast + INT_REG) & 8) host 336 drivers/scsi/arm/acornscsi.c host->host->host_no); host 338 drivers/scsi/arm/acornscsi.c sbic_arm_read(host, SBIC_ASR); host 339 drivers/scsi/arm/acornscsi.c sbic_arm_read(host, SBIC_SSR); host 342 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_OWNID, OWNID_EAF | host->host->this_id); host 343 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_CMND, CMND_RESET); host 350 drivers/scsi/arm/acornscsi.c if (readb(host->fast + INT_REG) & 8) host 357 drivers/scsi/arm/acornscsi.c host->host->host_no); host 359 drivers/scsi/arm/acornscsi.c sbic_arm_read(host, SBIC_ASR); host 360 drivers/scsi/arm/acornscsi.c if (sbic_arm_read(host, SBIC_SSR) != 0x01) host 362 drivers/scsi/arm/acornscsi.c host->host->host_no); host 364 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_CTRL, INIT_SBICDMA | CTRL_IDI); host 365 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_TIMEOUT, TIMEOUT_TIME); host 366 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_SYNCHTRANSFER, SYNCHTRANSFER_2DBA); host 367 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_SOURCEID, SOURCEID_ER | SOURCEID_DSP); host 369 drivers/scsi/arm/acornscsi.c host->card.page_reg = 0x40; host 370 drivers/scsi/arm/acornscsi.c writeb(host->card.page_reg, host->fast + PAGE_REG); host 373 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_INIT, 0); host 375 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_INIT, INIT_8BIT); host 376 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_CHANNEL, CHANNEL_0); host 377 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_DEVCON0, INIT_DEVCON0); host 378 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_DEVCON1, INIT_DEVCON1); host 381 drivers/scsi/arm/acornscsi.c host->SCpnt = NULL; host 382 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_IDLE; host 383 drivers/scsi/arm/acornscsi.c host->scsi.disconnectable = 0; host 385 drivers/scsi/arm/acornscsi.c memset(host->busyluns, 0, sizeof(host->busyluns)); host 388 drivers/scsi/arm/acornscsi.c host->device[i].sync_state = SYNC_NEGOCIATE; host 389 drivers/scsi/arm/acornscsi.c host->device[i].disconnect_ok = 1; host 495 drivers/scsi/arm/acornscsi.c acornscsi_dumplogline(AS_Host *host, int target, int line) host 500 drivers/scsi/arm/acornscsi.c ptr = host->status_ptr[target] - STATUS_BUFFER_TO_PRINT; host 507 drivers/scsi/arm/acornscsi.c prev = host->status[target][ptr].when; host 509 drivers/scsi/arm/acornscsi.c for (; ptr != host->status_ptr[target]; ptr = (ptr + 1) & (STATUS_BUFFER_SIZE - 1)) { host 512 drivers/scsi/arm/acornscsi.c if (!host->status[target][ptr].when) host 517 drivers/scsi/arm/acornscsi.c printk("%c%02X", host->status[target][ptr].irq ? '-' : ' ', host 518 drivers/scsi/arm/acornscsi.c host->status[target][ptr].ph); host 522 drivers/scsi/arm/acornscsi.c printk(" %02X", host->status[target][ptr].ssr); host 526 drivers/scsi/arm/acornscsi.c time_diff = host->status[target][ptr].when - prev; host 527 drivers/scsi/arm/acornscsi.c prev = host->status[target][ptr].when; host 542 drivers/scsi/arm/acornscsi.c void acornscsi_dumplog(AS_Host *host, int target) host 545 drivers/scsi/arm/acornscsi.c acornscsi_dumplogline(host, target, 0); host 546 drivers/scsi/arm/acornscsi.c acornscsi_dumplogline(host, target, 1); host 547 drivers/scsi/arm/acornscsi.c acornscsi_dumplogline(host, target, 2); host 557 drivers/scsi/arm/acornscsi.c char acornscsi_target(AS_Host *host) host 559 drivers/scsi/arm/acornscsi.c if (host->SCpnt) host 560 drivers/scsi/arm/acornscsi.c return '0' + host->SCpnt->device->id; host 695 drivers/scsi/arm/acornscsi.c intr_ret_t acornscsi_kick(AS_Host *host) host 701 drivers/scsi/arm/acornscsi.c SCpnt = host->origSCpnt; host 702 drivers/scsi/arm/acornscsi.c host->origSCpnt = NULL; host 706 drivers/scsi/arm/acornscsi.c SCpnt = queue_remove_exclude(&host->queues.issue, host->busyluns); host 713 drivers/scsi/arm/acornscsi.c if (host->scsi.disconnectable && host->SCpnt) { host 714 drivers/scsi/arm/acornscsi.c queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); host 715 drivers/scsi/arm/acornscsi.c host->scsi.disconnectable = 0; host 717 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, printk("scsi%d.%c: moved command to disconnected queue\n", host 718 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host))); host 720 drivers/scsi/arm/acornscsi.c host->SCpnt = NULL; host 727 drivers/scsi/arm/acornscsi.c if (!(sbic_arm_read(host, SBIC_ASR) & (ASR_INT|ASR_BSY|ASR_CIP))) { host 728 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_DESTID, SCpnt->device->id); host 729 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_CMND, CMND_SELWITHATN); host 736 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_CONNECTING; host 737 drivers/scsi/arm/acornscsi.c host->SCpnt = SCpnt; host 738 drivers/scsi/arm/acornscsi.c host->scsi.SCp = SCpnt->SCp; host 739 drivers/scsi/arm/acornscsi.c host->dma.xfer_setup = 0; host 740 drivers/scsi/arm/acornscsi.c host->dma.xfer_required = 0; host 741 drivers/scsi/arm/acornscsi.c host->dma.xfer_done = 0; host 745 drivers/scsi/arm/acornscsi.c host->host->host_no, '0' + SCpnt->device->id, host 762 drivers/scsi/arm/acornscsi.c (u8)(SCpnt->device->lun & 0x07), host->busyluns); host 764 drivers/scsi/arm/acornscsi.c host->stats.removes += 1; host 768 drivers/scsi/arm/acornscsi.c host->stats.writes += 1; host 771 drivers/scsi/arm/acornscsi.c host->stats.reads += 1; host 774 drivers/scsi/arm/acornscsi.c host->stats.miscs += 1; host 788 drivers/scsi/arm/acornscsi.c static void acornscsi_done(AS_Host *host, struct scsi_cmnd **SCpntp, host 794 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_SOURCEID, SOURCEID_ER | SOURCEID_DSP); host 796 drivers/scsi/arm/acornscsi.c host->stats.fins += 1; host 801 drivers/scsi/arm/acornscsi.c acornscsi_dma_cleanup(host); host 803 drivers/scsi/arm/acornscsi.c SCpnt->result = result << 16 | host->scsi.SCp.Message << 8 | host->scsi.SCp.Status; host 817 drivers/scsi/arm/acornscsi.c if (host->scsi.SCp.ptr && host 821 drivers/scsi/arm/acornscsi.c if (host->scsi.SCp.scsi_xferred < SCpnt->underflow || host 822 drivers/scsi/arm/acornscsi.c host->scsi.SCp.scsi_xferred != host->dma.transferred) host 838 drivers/scsi/arm/acornscsi.c if (host->dma.xfer_done) host 855 drivers/scsi/arm/acornscsi.c acornscsi_dumpdma(host, "done"); host 856 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, SCpnt->device->id); host 863 drivers/scsi/arm/acornscsi.c panic("scsi%d.H: null scsi_done function in acornscsi_done", host->host->host_no); host 866 drivers/scsi/arm/acornscsi.c (u8)(SCpnt->device->lun & 0x7), host->busyluns); host 870 drivers/scsi/arm/acornscsi.c printk("scsi%d: null command in acornscsi_done", host->host->host_no); host 872 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_IDLE; host 883 drivers/scsi/arm/acornscsi.c void acornscsi_data_updateptr(AS_Host *host, struct scsi_pointer *SCp, unsigned int length) host 889 drivers/scsi/arm/acornscsi.c host->dma.xfer_done = 1; host 903 drivers/scsi/arm/acornscsi.c void acornscsi_data_read(AS_Host *host, char *ptr, host 912 drivers/scsi/arm/acornscsi.c writeb((page & 0x3f) | host->card.page_reg, host->fast + PAGE_REG); host 922 drivers/scsi/arm/acornscsi.c __acornscsi_in(host->base + (offset << 1), ptr, this_len); host 931 drivers/scsi/arm/acornscsi.c writeb((page & 0x3f) | host->card.page_reg, host->fast + PAGE_REG); host 934 drivers/scsi/arm/acornscsi.c writeb(host->card.page_reg, host->fast + PAGE_REG); host 948 drivers/scsi/arm/acornscsi.c void acornscsi_data_write(AS_Host *host, char *ptr, host 957 drivers/scsi/arm/acornscsi.c writeb((page & 0x3f) | host->card.page_reg, host->fast + PAGE_REG); host 967 drivers/scsi/arm/acornscsi.c __acornscsi_out(host->base + (offset << 1), ptr, this_len); host 976 drivers/scsi/arm/acornscsi.c writeb((page & 0x3f) | host->card.page_reg, host->fast + PAGE_REG); host 979 drivers/scsi/arm/acornscsi.c writeb(host->card.page_reg, host->fast + PAGE_REG); host 994 drivers/scsi/arm/acornscsi.c void acornscsi_dma_stop(AS_Host *host) host 996 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_MASKREG, MASK_ON); host 997 drivers/scsi/arm/acornscsi.c dmac_clearintr(host); host 1000 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, acornscsi_dumpdma(host, "stop")); host 1013 drivers/scsi/arm/acornscsi.c void acornscsi_dma_setup(AS_Host *host, dmadir_t direction) host 1017 drivers/scsi/arm/acornscsi.c host->dma.direction = direction; host 1019 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_MASKREG, MASK_ON); host 1023 drivers/scsi/arm/acornscsi.c if (NO_WRITE & (1 << host->SCpnt->device->id)) { host 1025 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 1036 drivers/scsi/arm/acornscsi.c length = min_t(unsigned int, host->scsi.SCp.this_residual, DMAC_BUFFER_SIZE / 2); host 1038 drivers/scsi/arm/acornscsi.c host->dma.start_addr = address = host->dma.free_addr; host 1039 drivers/scsi/arm/acornscsi.c host->dma.free_addr = (host->dma.free_addr + length) & host 1046 drivers/scsi/arm/acornscsi.c acornscsi_data_write(host, host->scsi.SCp.ptr, host->dma.start_addr, host 1050 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXCNTLO, length); host 1051 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXCNTHI, length >> 8); host 1052 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRLO, address); host 1053 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRMD, address >> 8); host 1054 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRHI, 0); host 1055 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_MODECON, mode); host 1056 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_MASKREG, MASK_OFF); host 1059 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, acornscsi_dumpdma(host, "strt")); host 1061 drivers/scsi/arm/acornscsi.c host->dma.xfer_setup = 1; host 1074 drivers/scsi/arm/acornscsi.c void acornscsi_dma_cleanup(AS_Host *host) host 1076 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_MASKREG, MASK_ON); host 1077 drivers/scsi/arm/acornscsi.c dmac_clearintr(host); host 1082 drivers/scsi/arm/acornscsi.c if (host->dma.xfer_required) { host 1083 drivers/scsi/arm/acornscsi.c host->dma.xfer_required = 0; host 1084 drivers/scsi/arm/acornscsi.c if (host->dma.direction == DMA_IN) host 1085 drivers/scsi/arm/acornscsi.c acornscsi_data_read(host, host->dma.xfer_ptr, host 1086 drivers/scsi/arm/acornscsi.c host->dma.xfer_start, host->dma.xfer_length); host 1092 drivers/scsi/arm/acornscsi.c if (host->dma.xfer_setup) { host 1095 drivers/scsi/arm/acornscsi.c host->dma.xfer_setup = 0; host 1098 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, acornscsi_dumpdma(host, "cupi")); host 1104 drivers/scsi/arm/acornscsi.c transferred = dmac_address(host) - host->dma.start_addr; host 1105 drivers/scsi/arm/acornscsi.c host->dma.transferred += transferred; host 1107 drivers/scsi/arm/acornscsi.c if (host->dma.direction == DMA_IN) host 1108 drivers/scsi/arm/acornscsi.c acornscsi_data_read(host, host->scsi.SCp.ptr, host 1109 drivers/scsi/arm/acornscsi.c host->dma.start_addr, transferred); host 1114 drivers/scsi/arm/acornscsi.c acornscsi_data_updateptr(host, &host->scsi.SCp, transferred); host 1116 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, acornscsi_dumpdma(host, "cupo")); host 1132 drivers/scsi/arm/acornscsi.c void acornscsi_dma_intr(AS_Host *host) host 1137 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, acornscsi_dumpdma(host, "inti")); host 1140 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_MASKREG, MASK_ON); host 1141 drivers/scsi/arm/acornscsi.c dmac_clearintr(host); host 1146 drivers/scsi/arm/acornscsi.c transferred = dmac_address(host) - host->dma.start_addr; host 1147 drivers/scsi/arm/acornscsi.c host->dma.transferred += transferred; host 1152 drivers/scsi/arm/acornscsi.c if (host->dma.direction == DMA_IN) { host 1153 drivers/scsi/arm/acornscsi.c host->dma.xfer_start = host->dma.start_addr; host 1154 drivers/scsi/arm/acornscsi.c host->dma.xfer_length = transferred; host 1155 drivers/scsi/arm/acornscsi.c host->dma.xfer_ptr = host->scsi.SCp.ptr; host 1156 drivers/scsi/arm/acornscsi.c host->dma.xfer_required = 1; host 1159 drivers/scsi/arm/acornscsi.c acornscsi_data_updateptr(host, &host->scsi.SCp, transferred); host 1164 drivers/scsi/arm/acornscsi.c length = min_t(unsigned int, host->scsi.SCp.this_residual, DMAC_BUFFER_SIZE / 2); host 1166 drivers/scsi/arm/acornscsi.c host->dma.start_addr = address = host->dma.free_addr; host 1167 drivers/scsi/arm/acornscsi.c host->dma.free_addr = (host->dma.free_addr + length) & host 1173 drivers/scsi/arm/acornscsi.c if (host->dma.direction == DMA_OUT) host 1174 drivers/scsi/arm/acornscsi.c acornscsi_data_write(host, host->scsi.SCp.ptr, host->dma.start_addr, host 1178 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXCNTLO, length); host 1179 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXCNTHI, length >> 8); host 1180 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRLO, address); host 1181 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRMD, address >> 8); host 1182 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRHI, 0); host 1183 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_MASKREG, MASK_OFF); host 1186 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, acornscsi_dumpdma(host, "into")); host 1189 drivers/scsi/arm/acornscsi.c host->dma.xfer_setup = 0; host 1197 drivers/scsi/arm/acornscsi.c if (dmac_read(host, DMAC_STATUS) & STATUS_RQ0) { host 1198 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 1200 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXCNTLO, 0); host 1201 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXCNTHI, 0); host 1202 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRLO, 0); host 1203 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRMD, 0); host 1204 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRHI, 0); host 1205 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_MASKREG, MASK_OFF); host 1217 drivers/scsi/arm/acornscsi.c void acornscsi_dma_xfer(AS_Host *host) host 1219 drivers/scsi/arm/acornscsi.c host->dma.xfer_required = 0; host 1221 drivers/scsi/arm/acornscsi.c if (host->dma.direction == DMA_IN) host 1222 drivers/scsi/arm/acornscsi.c acornscsi_data_read(host, host->dma.xfer_ptr, host 1223 drivers/scsi/arm/acornscsi.c host->dma.xfer_start, host->dma.xfer_length); host 1233 drivers/scsi/arm/acornscsi.c void acornscsi_dma_adjust(AS_Host *host) host 1235 drivers/scsi/arm/acornscsi.c if (host->dma.xfer_setup) { host 1238 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, acornscsi_dumpdma(host, "adji")); host 1251 drivers/scsi/arm/acornscsi.c transferred = host->scsi.SCp.scsi_xferred - host->dma.transferred; host 1254 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), transferred); host 1256 drivers/scsi/arm/acornscsi.c host->dma.xfer_setup = 0; host 1258 drivers/scsi/arm/acornscsi.c transferred += host->dma.start_addr; host 1259 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRLO, transferred); host 1260 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRMD, transferred >> 8); host 1261 drivers/scsi/arm/acornscsi.c dmac_write(host, DMAC_TXADRHI, transferred >> 16); host 1263 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, acornscsi_dumpdma(host, "adjo")); host 1274 drivers/scsi/arm/acornscsi.c acornscsi_write_pio(AS_Host *host, char *bytes, int *ptr, int len, unsigned int max_timeout) host 1280 drivers/scsi/arm/acornscsi.c asr = sbic_arm_read(host, SBIC_ASR); host 1285 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_DATA, bytes[my_ptr++]); host 1304 drivers/scsi/arm/acornscsi.c acornscsi_sendcommand(AS_Host *host) host 1306 drivers/scsi/arm/acornscsi.c struct scsi_cmnd *SCpnt = host->SCpnt; host 1308 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_TRANSCNTH, 0); host 1309 drivers/scsi/arm/acornscsi.c sbic_arm_writenext(host, 0); host 1310 drivers/scsi/arm/acornscsi.c sbic_arm_writenext(host, SCpnt->cmd_len - host->scsi.SCp.sent_command); host 1312 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_XFERINFO); host 1314 drivers/scsi/arm/acornscsi.c if (acornscsi_write_pio(host, SCpnt->cmnd, host 1315 drivers/scsi/arm/acornscsi.c (int *)&host->scsi.SCp.sent_command, SCpnt->cmd_len, 1000000)) host 1316 drivers/scsi/arm/acornscsi.c printk("scsi%d: timeout while sending command\n", host->host->host_no); host 1318 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_COMMAND; host 1322 drivers/scsi/arm/acornscsi.c void acornscsi_sendmessage(AS_Host *host) host 1324 drivers/scsi/arm/acornscsi.c unsigned int message_length = msgqueue_msglength(&host->scsi.msgs); host 1330 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 1335 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_XFERINFO | CMND_SBT); host 1337 drivers/scsi/arm/acornscsi.c acornscsi_sbic_wait(host, ASR_DBR, ASR_DBR, 1000, "sending message 1"); host 1339 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_DATA, NOP); host 1341 drivers/scsi/arm/acornscsi.c host->scsi.last_message = NOP; host 1348 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_XFERINFO | CMND_SBT); host 1349 drivers/scsi/arm/acornscsi.c msg = msgqueue_getmsg(&host->scsi.msgs, 0); host 1351 drivers/scsi/arm/acornscsi.c acornscsi_sbic_wait(host, ASR_DBR, ASR_DBR, 1000, "sending message 2"); host 1353 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_DATA, msg->msg[0]); host 1355 drivers/scsi/arm/acornscsi.c host->scsi.last_message = msg->msg[0]; host 1370 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_TRANSCNTH, 0); host 1371 drivers/scsi/arm/acornscsi.c sbic_arm_writenext(host, 0); host 1372 drivers/scsi/arm/acornscsi.c sbic_arm_writenext(host, message_length); host 1373 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_XFERINFO); host 1376 drivers/scsi/arm/acornscsi.c while ((msg = msgqueue_getmsg(&host->scsi.msgs, msgnr++)) != NULL) { host 1382 drivers/scsi/arm/acornscsi.c if (acornscsi_write_pio(host, msg->msg, &i, msg->length, 1000000)) host 1383 drivers/scsi/arm/acornscsi.c printk("scsi%d: timeout while sending message\n", host->host->host_no); host 1385 drivers/scsi/arm/acornscsi.c host->scsi.last_message = msg->msg[0]; host 1387 drivers/scsi/arm/acornscsi.c host->scsi.last_message |= msg->msg[2] << 8; host 1405 drivers/scsi/arm/acornscsi.c void acornscsi_readstatusbyte(AS_Host *host) host 1407 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_XFERINFO|CMND_SBT); host 1408 drivers/scsi/arm/acornscsi.c acornscsi_sbic_wait(host, ASR_DBR, ASR_DBR, 1000, "reading status byte"); host 1409 drivers/scsi/arm/acornscsi.c host->scsi.SCp.Status = sbic_arm_read(host, SBIC_DATA); host 1418 drivers/scsi/arm/acornscsi.c unsigned char acornscsi_readmessagebyte(AS_Host *host) host 1422 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_XFERINFO | CMND_SBT); host 1424 drivers/scsi/arm/acornscsi.c acornscsi_sbic_wait(host, ASR_DBR, ASR_DBR, 1000, "for message byte"); host 1426 drivers/scsi/arm/acornscsi.c message = sbic_arm_read(host, SBIC_DATA); host 1429 drivers/scsi/arm/acornscsi.c acornscsi_sbic_wait(host, ASR_INT, ASR_INT, 1000, "for interrupt after message byte"); host 1431 drivers/scsi/arm/acornscsi.c sbic_arm_read(host, SBIC_SSR); host 1442 drivers/scsi/arm/acornscsi.c void acornscsi_message(AS_Host *host) host 1448 drivers/scsi/arm/acornscsi.c message[msgidx] = acornscsi_readmessagebyte(host); host 1464 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_NEGATEACK); host 1467 drivers/scsi/arm/acornscsi.c acornscsi_sbic_wait(host, ASR_INT, ASR_INT, 1000, "for interrupt after negate ack"); host 1468 drivers/scsi/arm/acornscsi.c sbic_arm_read(host, SBIC_SSR); host 1474 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 1479 drivers/scsi/arm/acornscsi.c if (host->scsi.phase == PHASE_RECONNECTED) { host 1487 drivers/scsi/arm/acornscsi.c host->scsi.reconnected.tag = message[1]; host 1488 drivers/scsi/arm/acornscsi.c if (acornscsi_reconnect_finish(host)) host 1489 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_MSGIN; host 1496 drivers/scsi/arm/acornscsi.c if (host->scsi.phase != PHASE_STATUSIN) { host 1498 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 1499 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt->device->id); host 1501 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_DONE; host 1502 drivers/scsi/arm/acornscsi.c host->scsi.SCp.Message = message[0]; host 1512 drivers/scsi/arm/acornscsi.c acornscsi_dma_cleanup(host); host 1513 drivers/scsi/arm/acornscsi.c host->SCpnt->SCp = host->scsi.SCp; host 1514 drivers/scsi/arm/acornscsi.c host->SCpnt->SCp.sent_command = 0; host 1515 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_MSGIN; host 1528 drivers/scsi/arm/acornscsi.c acornscsi_dma_cleanup(host); host 1529 drivers/scsi/arm/acornscsi.c host->scsi.SCp = host->SCpnt->SCp; host 1530 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_MSGIN; host 1543 drivers/scsi/arm/acornscsi.c acornscsi_dma_cleanup(host); host 1544 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_DISCONNECT; host 1555 drivers/scsi/arm/acornscsi.c if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) host 1556 drivers/scsi/arm/acornscsi.c host->device[host->SCpnt->device->id].sync_state = SYNC_NEGOCIATE; host 1562 drivers/scsi/arm/acornscsi.c if (msgqueue_msglength(&host->scsi.msgs)) host 1563 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_ASSERTATN); host 1565 drivers/scsi/arm/acornscsi.c switch (host->scsi.last_message) { host 1577 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 1578 drivers/scsi/arm/acornscsi.c host->SCpnt->device->simple_tags = 0; host 1579 drivers/scsi/arm/acornscsi.c set_bit(host->SCpnt->device->id * 8 + host 1580 drivers/scsi/arm/acornscsi.c (u8)(host->SCpnt->device->lun & 0x7), host->busyluns); host 1588 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 1589 drivers/scsi/arm/acornscsi.c host->device[host->SCpnt->device->id].sync_xfer = SYNCHTRANSFER_2DBA; host 1590 drivers/scsi/arm/acornscsi.c host->device[host->SCpnt->device->id].sync_state = SYNC_ASYNCHRONOUS; host 1591 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); host 1606 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), host 1614 drivers/scsi/arm/acornscsi.c if (host->device[host->SCpnt->device->id].sync_state == SYNC_SENT_REQUEST) { host 1621 drivers/scsi/arm/acornscsi.c host->device[host->SCpnt->device->id].sync_state = SYNC_COMPLETED; host 1623 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), host 1625 drivers/scsi/arm/acornscsi.c host->device[host->SCpnt->device->id].sync_xfer = host 1633 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_ASSERTATN); host 1636 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 5, EXTENDED_MESSAGE, 3, host 1638 drivers/scsi/arm/acornscsi.c host->device[host->SCpnt->device->id].sync_xfer = host 1641 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); host 1654 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_ASSERTATN); host 1655 drivers/scsi/arm/acornscsi.c msgqueue_flush(&host->scsi.msgs); host 1656 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 1, MESSAGE_REJECT); host 1663 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), host 1665 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_ASSERTATN); host 1666 drivers/scsi/arm/acornscsi.c msgqueue_flush(&host->scsi.msgs); host 1667 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 1, MESSAGE_REJECT); host 1668 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_MSGIN; host 1671 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_NEGATEACK); host 1680 drivers/scsi/arm/acornscsi.c void acornscsi_buildmessages(AS_Host *host) host 1685 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 1, BUS_DEVICE_RESET); host 1690 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 1, host 1691 drivers/scsi/arm/acornscsi.c IDENTIFY(host->device[host->SCpnt->device->id].disconnect_ok, host 1692 drivers/scsi/arm/acornscsi.c host->SCpnt->device->lun)); host 1697 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host->SCpnt->tag); host 1703 drivers/scsi/arm/acornscsi.c if (host->SCpnt->tag) { host 1706 drivers/scsi/arm/acornscsi.c if (host->SCpnt->cmnd[0] == REQUEST_SENSE || host 1707 drivers/scsi/arm/acornscsi.c host->SCpnt->cmnd[0] == TEST_UNIT_READY || host 1708 drivers/scsi/arm/acornscsi.c host->SCpnt->cmnd[0] == INQUIRY) host 1712 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 2, tag_type, host->SCpnt->tag); host 1717 drivers/scsi/arm/acornscsi.c if (host->device[host->SCpnt->device->id].sync_state == SYNC_NEGOCIATE) { host 1718 drivers/scsi/arm/acornscsi.c host->device[host->SCpnt->device->id].sync_state = SYNC_SENT_REQUEST; host 1719 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 5, host 1733 drivers/scsi/arm/acornscsi.c int acornscsi_starttransfer(AS_Host *host) host 1737 drivers/scsi/arm/acornscsi.c if (!host->scsi.SCp.ptr /*&& host->scsi.SCp.this_residual*/) { host 1739 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 1743 drivers/scsi/arm/acornscsi.c residual = scsi_bufflen(host->SCpnt) - host->scsi.SCp.scsi_xferred; host 1745 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_SYNCHTRANSFER, host->device[host->SCpnt->device->id].sync_xfer); host 1746 drivers/scsi/arm/acornscsi.c sbic_arm_writenext(host, residual >> 16); host 1747 drivers/scsi/arm/acornscsi.c sbic_arm_writenext(host, residual >> 8); host 1748 drivers/scsi/arm/acornscsi.c sbic_arm_writenext(host, residual); host 1749 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_XFERINFO); host 1765 drivers/scsi/arm/acornscsi.c int acornscsi_reconnect(AS_Host *host) host 1769 drivers/scsi/arm/acornscsi.c target = sbic_arm_read(host, SBIC_SOURCEID); host 1774 drivers/scsi/arm/acornscsi.c host->host->host_no); host 1778 drivers/scsi/arm/acornscsi.c if (host->SCpnt && !host->scsi.disconnectable) { host 1781 drivers/scsi/arm/acornscsi.c host->host->host_no, target, host->SCpnt->device->id); host 1782 drivers/scsi/arm/acornscsi.c host->SCpnt = NULL; host 1785 drivers/scsi/arm/acornscsi.c lun = sbic_arm_read(host, SBIC_DATA) & 7; host 1787 drivers/scsi/arm/acornscsi.c host->scsi.reconnected.target = target; host 1788 drivers/scsi/arm/acornscsi.c host->scsi.reconnected.lun = lun; host 1789 drivers/scsi/arm/acornscsi.c host->scsi.reconnected.tag = 0; host 1791 drivers/scsi/arm/acornscsi.c if (host->scsi.disconnectable && host->SCpnt && host 1792 drivers/scsi/arm/acornscsi.c host->SCpnt->device->id == target && host->SCpnt->device->lun == lun) host 1795 drivers/scsi/arm/acornscsi.c if (!ok && queue_probetgtlun(&host->queues.disconnected, target, lun)) host 1798 drivers/scsi/arm/acornscsi.c ADD_STATUS(target, 0x81, host->scsi.phase, 0); host 1801 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_RECONNECTED; host 1806 drivers/scsi/arm/acornscsi.c host->host->host_no, '0' + target); host 1807 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, target); host 1808 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, 0); host 1809 drivers/scsi/arm/acornscsi.c if (host->SCpnt) { host 1810 drivers/scsi/arm/acornscsi.c queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); host 1811 drivers/scsi/arm/acornscsi.c host->SCpnt = NULL; host 1814 drivers/scsi/arm/acornscsi.c acornscsi_sbic_issuecmd(host, CMND_NEGATEACK); host 1825 drivers/scsi/arm/acornscsi.c int acornscsi_reconnect_finish(AS_Host *host) host 1827 drivers/scsi/arm/acornscsi.c if (host->scsi.disconnectable && host->SCpnt) { host 1828 drivers/scsi/arm/acornscsi.c host->scsi.disconnectable = 0; host 1829 drivers/scsi/arm/acornscsi.c if (host->SCpnt->device->id == host->scsi.reconnected.target && host 1830 drivers/scsi/arm/acornscsi.c host->SCpnt->device->lun == host->scsi.reconnected.lun && host 1831 drivers/scsi/arm/acornscsi.c host->SCpnt->tag == host->scsi.reconnected.tag) { host 1833 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, printk("scsi%d.%c: reconnected", host 1834 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host))); host 1837 drivers/scsi/arm/acornscsi.c queue_add_cmd_tail(&host->queues.disconnected, host->SCpnt); host 1839 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, printk("scsi%d.%c: had to move command " host 1841 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host))); host 1843 drivers/scsi/arm/acornscsi.c host->SCpnt = NULL; host 1846 drivers/scsi/arm/acornscsi.c if (!host->SCpnt) { host 1847 drivers/scsi/arm/acornscsi.c host->SCpnt = queue_remove_tgtluntag(&host->queues.disconnected, host 1848 drivers/scsi/arm/acornscsi.c host->scsi.reconnected.target, host 1849 drivers/scsi/arm/acornscsi.c host->scsi.reconnected.lun, host 1850 drivers/scsi/arm/acornscsi.c host->scsi.reconnected.tag); host 1852 drivers/scsi/arm/acornscsi.c DBG(host->SCpnt, printk("scsi%d.%c: had to get command", host 1853 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host))); host 1857 drivers/scsi/arm/acornscsi.c if (!host->SCpnt) host 1858 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->scsi.reconnected.tag); host 1863 drivers/scsi/arm/acornscsi.c host->scsi.SCp = host->SCpnt->SCp; host 1866 drivers/scsi/arm/acornscsi.c host->scsi.SCp.ptr, host->scsi.SCp.this_residual); host 1873 drivers/scsi/arm/acornscsi.c host->dma.transferred = host->scsi.SCp.scsi_xferred; host 1875 drivers/scsi/arm/acornscsi.c return host->SCpnt != NULL; host 1884 drivers/scsi/arm/acornscsi.c void acornscsi_disconnect_unexpected(AS_Host *host) host 1887 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 1889 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, 8); host 1892 drivers/scsi/arm/acornscsi.c acornscsi_done(host, &host->SCpnt, DID_ERROR); host 1902 drivers/scsi/arm/acornscsi.c void acornscsi_abortcmd(AS_Host *host, unsigned char tag) host 1904 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_ABORTED; host 1905 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_CMND, CMND_ASSERTATN); host 1907 drivers/scsi/arm/acornscsi.c msgqueue_flush(&host->scsi.msgs); host 1910 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 2, ABORT_TAG, tag); host 1913 drivers/scsi/arm/acornscsi.c msgqueue_addmsg(&host->scsi.msgs, 1, ABORT); host 1928 drivers/scsi/arm/acornscsi.c intr_ret_t acornscsi_sbicintr(AS_Host *host, int in_irq) host 1932 drivers/scsi/arm/acornscsi.c asr = sbic_arm_read(host, SBIC_ASR); host 1936 drivers/scsi/arm/acornscsi.c ssr = sbic_arm_read(host, SBIC_SSR); host 1939 drivers/scsi/arm/acornscsi.c print_sbic_status(asr, ssr, host->scsi.phase); host 1942 drivers/scsi/arm/acornscsi.c ADD_STATUS(8, ssr, host->scsi.phase, in_irq); host 1944 drivers/scsi/arm/acornscsi.c if (host->SCpnt && !host->scsi.disconnectable) host 1945 drivers/scsi/arm/acornscsi.c ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); host 1950 drivers/scsi/arm/acornscsi.c host->host->host_no); host 1952 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_OWNID, OWNID_EAF | host->host->this_id); host 1953 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_CMND, CMND_RESET); host 1957 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_CTRL, INIT_SBICDMA | CTRL_IDI); host 1958 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_TIMEOUT, TIMEOUT_TIME); host 1959 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_SYNCHTRANSFER, SYNCHTRANSFER_2DBA); host 1960 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_SOURCEID, SOURCEID_ER | SOURCEID_DSP); host 1961 drivers/scsi/arm/acornscsi.c msgqueue_flush(&host->scsi.msgs); host 1965 drivers/scsi/arm/acornscsi.c acornscsi_disconnect_unexpected(host); host 1969 drivers/scsi/arm/acornscsi.c switch (host->scsi.phase) { host 1974 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_CONNECTED; host 1975 drivers/scsi/arm/acornscsi.c msgqueue_flush(&host->scsi.msgs); host 1976 drivers/scsi/arm/acornscsi.c host->dma.transferred = host->scsi.SCp.scsi_xferred; host 1978 drivers/scsi/arm/acornscsi.c asr = sbic_arm_read(host, SBIC_ASR); host 1981 drivers/scsi/arm/acornscsi.c ssr = sbic_arm_read(host, SBIC_SSR); host 1982 drivers/scsi/arm/acornscsi.c ADD_STATUS(8, ssr, host->scsi.phase, 1); host 1983 drivers/scsi/arm/acornscsi.c ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, 1); host 1988 drivers/scsi/arm/acornscsi.c acornscsi_done(host, &host->SCpnt, DID_NO_CONNECT); host 1993 drivers/scsi/arm/acornscsi.c host->origSCpnt = host->SCpnt; host 1994 drivers/scsi/arm/acornscsi.c host->SCpnt = NULL; host 1995 drivers/scsi/arm/acornscsi.c msgqueue_flush(&host->scsi.msgs); host 1996 drivers/scsi/arm/acornscsi.c acornscsi_reconnect(host); host 2001 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2002 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2003 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2013 drivers/scsi/arm/acornscsi.c acornscsi_sendcommand(host); host 2018 drivers/scsi/arm/acornscsi.c acornscsi_readstatusbyte(host); host 2019 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_STATUSIN; host 2025 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_MSGOUT; host 2026 drivers/scsi/arm/acornscsi.c acornscsi_buildmessages(host); host 2027 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2032 drivers/scsi/arm/acornscsi.c acornscsi_done(host, &host->SCpnt, DID_ERROR); host 2037 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2038 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2039 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2052 drivers/scsi/arm/acornscsi.c acornscsi_sendcommand(host); host 2058 drivers/scsi/arm/acornscsi.c acornscsi_readstatusbyte(host); host 2059 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_STATUSIN; host 2064 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2070 drivers/scsi/arm/acornscsi.c acornscsi_message(host); host 2075 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2076 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2084 drivers/scsi/arm/acornscsi.c if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) host 2085 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2086 drivers/scsi/arm/acornscsi.c acornscsi_dma_setup(host, DMA_OUT); host 2087 drivers/scsi/arm/acornscsi.c if (!acornscsi_starttransfer(host)) host 2088 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2089 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_DATAOUT; host 2094 drivers/scsi/arm/acornscsi.c if (host->scsi.SCp.sent_command != host->SCpnt->cmd_len) host 2095 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2096 drivers/scsi/arm/acornscsi.c acornscsi_dma_setup(host, DMA_IN); host 2097 drivers/scsi/arm/acornscsi.c if (!acornscsi_starttransfer(host)) host 2098 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2099 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_DATAIN; host 2104 drivers/scsi/arm/acornscsi.c acornscsi_readstatusbyte(host); host 2105 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_STATUSIN; host 2110 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2115 drivers/scsi/arm/acornscsi.c acornscsi_message(host); host 2120 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2121 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2127 drivers/scsi/arm/acornscsi.c host->scsi.disconnectable = 1; host 2128 drivers/scsi/arm/acornscsi.c host->scsi.reconnected.tag = 0; host 2129 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_IDLE; host 2130 drivers/scsi/arm/acornscsi.c host->stats.disconnects += 1; host 2133 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2134 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2140 drivers/scsi/arm/acornscsi.c acornscsi_reconnect(host); host 2143 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2144 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2157 drivers/scsi/arm/acornscsi.c if (ssr != 0x8f && !acornscsi_reconnect_finish(host)) host 2159 drivers/scsi/arm/acornscsi.c ADD_STATUS(host->SCpnt->device->id, ssr, host->scsi.phase, in_irq); host 2164 drivers/scsi/arm/acornscsi.c acornscsi_dma_setup(host, DMA_OUT); host 2165 drivers/scsi/arm/acornscsi.c if (!acornscsi_starttransfer(host)) host 2166 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2167 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_DATAOUT; host 2173 drivers/scsi/arm/acornscsi.c acornscsi_dma_setup(host, DMA_IN); host 2174 drivers/scsi/arm/acornscsi.c if (!acornscsi_starttransfer(host)) host 2175 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2176 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_DATAIN; host 2181 drivers/scsi/arm/acornscsi.c acornscsi_sendcommand(host);/* -> PHASE_COMMAND, PHASE_COMMANDPAUSED */ host 2187 drivers/scsi/arm/acornscsi.c acornscsi_readstatusbyte(host); host 2188 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_STATUSIN; host 2194 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2198 drivers/scsi/arm/acornscsi.c acornscsi_message(host); /* -> PHASE_MSGIN, PHASE_DISCONNECT */ host 2203 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2204 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2216 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2223 drivers/scsi/arm/acornscsi.c host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - host 2224 drivers/scsi/arm/acornscsi.c acornscsi_sbic_xfcount(host); host 2225 drivers/scsi/arm/acornscsi.c acornscsi_dma_stop(host); host 2226 drivers/scsi/arm/acornscsi.c acornscsi_readstatusbyte(host); host 2227 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_STATUSIN; host 2234 drivers/scsi/arm/acornscsi.c host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - host 2235 drivers/scsi/arm/acornscsi.c acornscsi_sbic_xfcount(host); host 2236 drivers/scsi/arm/acornscsi.c acornscsi_dma_stop(host); host 2237 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2244 drivers/scsi/arm/acornscsi.c host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - host 2245 drivers/scsi/arm/acornscsi.c acornscsi_sbic_xfcount(host); host 2246 drivers/scsi/arm/acornscsi.c acornscsi_dma_stop(host); host 2247 drivers/scsi/arm/acornscsi.c acornscsi_message(host); /* -> PHASE_MSGIN, PHASE_DISCONNECT */ host 2252 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2253 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2265 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2272 drivers/scsi/arm/acornscsi.c host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - host 2273 drivers/scsi/arm/acornscsi.c acornscsi_sbic_xfcount(host); host 2274 drivers/scsi/arm/acornscsi.c acornscsi_dma_stop(host); host 2275 drivers/scsi/arm/acornscsi.c acornscsi_dma_adjust(host); host 2276 drivers/scsi/arm/acornscsi.c acornscsi_readstatusbyte(host); host 2277 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_STATUSIN; host 2284 drivers/scsi/arm/acornscsi.c host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - host 2285 drivers/scsi/arm/acornscsi.c acornscsi_sbic_xfcount(host); host 2286 drivers/scsi/arm/acornscsi.c acornscsi_dma_stop(host); host 2287 drivers/scsi/arm/acornscsi.c acornscsi_dma_adjust(host); host 2288 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2295 drivers/scsi/arm/acornscsi.c host->scsi.SCp.scsi_xferred = scsi_bufflen(host->SCpnt) - host 2296 drivers/scsi/arm/acornscsi.c acornscsi_sbic_xfcount(host); host 2297 drivers/scsi/arm/acornscsi.c acornscsi_dma_stop(host); host 2298 drivers/scsi/arm/acornscsi.c acornscsi_dma_adjust(host); host 2299 drivers/scsi/arm/acornscsi.c acornscsi_message(host); /* -> PHASE_MSGIN, PHASE_DISCONNECT */ host 2304 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2305 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2314 drivers/scsi/arm/acornscsi.c acornscsi_message(host); host 2320 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2325 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2326 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2336 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2343 drivers/scsi/arm/acornscsi.c acornscsi_message(host); host 2348 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host)); host 2349 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2350 drivers/scsi/arm/acornscsi.c acornscsi_done(host, &host->SCpnt, DID_ERROR); host 2355 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2356 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2363 drivers/scsi/arm/acornscsi.c acornscsi_done(host, &host->SCpnt, DID_OK); host 2368 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2373 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2374 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2381 drivers/scsi/arm/acornscsi.c if (host->SCpnt) host 2382 drivers/scsi/arm/acornscsi.c acornscsi_done(host, &host->SCpnt, DID_ABORT); host 2384 drivers/scsi/arm/acornscsi.c clear_bit(host->scsi.reconnected.target * 8 + host->scsi.reconnected.lun, host 2385 drivers/scsi/arm/acornscsi.c host->busyluns); host 2386 drivers/scsi/arm/acornscsi.c host->scsi.phase = PHASE_IDLE; host 2394 drivers/scsi/arm/acornscsi.c acornscsi_sendmessage(host); host 2399 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2400 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2406 drivers/scsi/arm/acornscsi.c host->host->host_no, acornscsi_target(host), ssr); host 2407 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, host->SCpnt ? host->SCpnt->device->id : 8); host 2421 drivers/scsi/arm/acornscsi.c AS_Host *host = (AS_Host *)dev_id; host 2429 drivers/scsi/arm/acornscsi.c iostatus = readb(host->fast + INT_REG); host 2432 drivers/scsi/arm/acornscsi.c acornscsi_dma_intr(host); host 2433 drivers/scsi/arm/acornscsi.c iostatus = readb(host->fast + INT_REG); host 2437 drivers/scsi/arm/acornscsi.c ret = acornscsi_sbicintr(host, in_irq); host 2444 drivers/scsi/arm/acornscsi.c if (host->dma.xfer_required) host 2445 drivers/scsi/arm/acornscsi.c acornscsi_dma_xfer(host); host 2448 drivers/scsi/arm/acornscsi.c ret = acornscsi_kick(host); host 2470 drivers/scsi/arm/acornscsi.c AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; host 2475 drivers/scsi/arm/acornscsi.c host->host->host_no, SCpnt); host 2482 drivers/scsi/arm/acornscsi.c host->host->host_no, '0' + SCpnt->device->id); host 2499 drivers/scsi/arm/acornscsi.c host->stats.queues += 1; host 2504 drivers/scsi/arm/acornscsi.c if (!queue_add_cmd_ordered(&host->queues.issue, SCpnt)) { host 2510 drivers/scsi/arm/acornscsi.c if (host->scsi.phase == PHASE_IDLE) host 2511 drivers/scsi/arm/acornscsi.c acornscsi_kick(host); host 2552 drivers/scsi/arm/acornscsi.c static enum res_abort acornscsi_do_abort(AS_Host *host, struct scsi_cmnd *SCpnt) host 2556 drivers/scsi/arm/acornscsi.c if (queue_remove_cmd(&host->queues.issue, SCpnt)) { host 2567 drivers/scsi/arm/acornscsi.c } else if (queue_remove_cmd(&host->queues.disconnected, SCpnt)) { host 2579 drivers/scsi/arm/acornscsi.c } else if (host->SCpnt == SCpnt) { host 2587 drivers/scsi/arm/acornscsi.c switch (host->scsi.phase) { host 2597 drivers/scsi/arm/acornscsi.c if (host->scsi.disconnectable) { host 2598 drivers/scsi/arm/acornscsi.c host->scsi.disconnectable = 0; host 2599 drivers/scsi/arm/acornscsi.c host->SCpnt = NULL; host 2610 drivers/scsi/arm/acornscsi.c sbic_arm_write(host, SBIC_CMND, CMND_DISCONNECT); host 2611 drivers/scsi/arm/acornscsi.c host->SCpnt = NULL; host 2616 drivers/scsi/arm/acornscsi.c acornscsi_abortcmd(host, host->SCpnt->tag); host 2620 drivers/scsi/arm/acornscsi.c } else if (host->origSCpnt == SCpnt) { host 2627 drivers/scsi/arm/acornscsi.c host->origSCpnt = NULL; host 2646 drivers/scsi/arm/acornscsi.c AS_Host *host = (AS_Host *) SCpnt->device->host->hostdata; host 2649 drivers/scsi/arm/acornscsi.c host->stats.aborts += 1; host 2654 drivers/scsi/arm/acornscsi.c asr = sbic_arm_read(host, SBIC_ASR); host 2655 drivers/scsi/arm/acornscsi.c ssr = sbic_arm_read(host, SBIC_SSR); host 2658 drivers/scsi/arm/acornscsi.c print_sbic_status(asr, ssr, host->scsi.phase); host 2659 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, SCpnt->device->id); host 2663 drivers/scsi/arm/acornscsi.c printk("scsi%d: ", host->host->host_no); host 2665 drivers/scsi/arm/acornscsi.c switch (acornscsi_do_abort(host, SCpnt)) { host 2676 drivers/scsi/arm/acornscsi.c (u8)(SCpnt->device->lun & 0x7), host->busyluns); host 2708 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, SCpnt->device->id); host 2727 drivers/scsi/arm/acornscsi.c AS_Host *host = (AS_Host *)SCpnt->device->host->hostdata; host 2730 drivers/scsi/arm/acornscsi.c host->stats.resets += 1; host 2736 drivers/scsi/arm/acornscsi.c asr = sbic_arm_read(host, SBIC_ASR); host 2737 drivers/scsi/arm/acornscsi.c ssr = sbic_arm_read(host, SBIC_SSR); host 2740 drivers/scsi/arm/acornscsi.c print_sbic_status(asr, ssr, host->scsi.phase); host 2742 drivers/scsi/arm/acornscsi.c acornscsi_dumplog(host, devidx); host 2746 drivers/scsi/arm/acornscsi.c acornscsi_dma_stop(host); host 2752 drivers/scsi/arm/acornscsi.c acornscsi_resetcard(host); host 2754 drivers/scsi/arm/acornscsi.c while ((SCptr = queue_remove(&host->queues.disconnected)) != NULL) host 2771 drivers/scsi/arm/acornscsi.c char *acornscsi_info(struct Scsi_Host *host) host 2787 drivers/scsi/arm/acornscsi.c , host->hostt->name, host->io_port, host->irq, host 2796 drivers/scsi/arm/acornscsi.c AS_Host *host; host 2798 drivers/scsi/arm/acornscsi.c host = (AS_Host *)instance->hostdata; host 2813 drivers/scsi/arm/acornscsi.c host->base + SBIC_REGIDX, host->scsi.irq); host 2816 drivers/scsi/arm/acornscsi.c host->base + DMAC_OFFSET, host->scsi.irq); host 2825 drivers/scsi/arm/acornscsi.c host->stats.queues, host->stats.removes, host 2826 drivers/scsi/arm/acornscsi.c host->stats.fins, host->stats.reads, host 2827 drivers/scsi/arm/acornscsi.c host->stats.writes, host->stats.miscs, host 2828 drivers/scsi/arm/acornscsi.c host->stats.disconnects, host->stats.aborts, host 2829 drivers/scsi/arm/acornscsi.c host->stats.resets); host 2835 drivers/scsi/arm/acornscsi.c statptr = host->status_ptr[devidx] - 10; host 2840 drivers/scsi/arm/acornscsi.c prev = host->status[devidx][statptr].when; host 2842 drivers/scsi/arm/acornscsi.c for (; statptr != host->status_ptr[devidx]; statptr = (statptr + 1) & (STATUS_BUFFER_SIZE - 1)) { host 2843 drivers/scsi/arm/acornscsi.c if (host->status[devidx][statptr].when) { host 2845 drivers/scsi/arm/acornscsi.c host->status[devidx][statptr].irq ? '-' : ' ', host 2846 drivers/scsi/arm/acornscsi.c host->status[devidx][statptr].ph, host 2847 drivers/scsi/arm/acornscsi.c host->status[devidx][statptr].ssr, host 2848 drivers/scsi/arm/acornscsi.c (host->status[devidx][statptr].when - prev) < 100 ? host 2849 drivers/scsi/arm/acornscsi.c (host->status[devidx][statptr].when - prev) : 99); host 2850 drivers/scsi/arm/acornscsi.c prev = host->status[devidx][statptr].when; host 2867 drivers/scsi/arm/acornscsi.c if (host->device[scd->id].sync_xfer & 15) host 2869 drivers/scsi/arm/acornscsi.c host->device[scd->id].sync_xfer & 15, host 2870 drivers/scsi/arm/acornscsi.c acornscsi_getperiod(host->device[scd->id].sync_xfer)); host 2896 drivers/scsi/arm/acornscsi.c struct Scsi_Host *host; host 2904 drivers/scsi/arm/acornscsi.c host = scsi_host_alloc(&acornscsi_template, sizeof(AS_Host)); host 2905 drivers/scsi/arm/acornscsi.c if (!host) { host 2910 drivers/scsi/arm/acornscsi.c ashost = (AS_Host *)host->hostdata; host 2917 drivers/scsi/arm/acornscsi.c host->irq = ec->irq; host 2918 drivers/scsi/arm/acornscsi.c ashost->host = host; host 2919 drivers/scsi/arm/acornscsi.c ashost->scsi.irq = host->irq; host 2924 drivers/scsi/arm/acornscsi.c ret = request_irq(host->irq, acornscsi_intr, 0, "acornscsi", ashost); host 2927 drivers/scsi/arm/acornscsi.c host->host_no, ashost->scsi.irq, ret); host 2938 drivers/scsi/arm/acornscsi.c ret = scsi_add_host(host, &ec->dev); host 2942 drivers/scsi/arm/acornscsi.c scsi_scan_host(host); host 2946 drivers/scsi/arm/acornscsi.c free_irq(host->irq, ashost); host 2953 drivers/scsi/arm/acornscsi.c scsi_host_put(host); host 2962 drivers/scsi/arm/acornscsi.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 2963 drivers/scsi/arm/acornscsi.c AS_Host *ashost = (AS_Host *)host->hostdata; host 2966 drivers/scsi/arm/acornscsi.c scsi_remove_host(host); host 2973 drivers/scsi/arm/acornscsi.c free_irq(host->irq, ashost); host 2980 drivers/scsi/arm/acornscsi.c scsi_host_put(host); host 263 drivers/scsi/arm/acornscsi.h host->status[(_q)][host->status_ptr[(_q)]].when = jiffies; \ host 264 drivers/scsi/arm/acornscsi.h host->status[(_q)][host->status_ptr[(_q)]].ssr = (_ssr); \ host 265 drivers/scsi/arm/acornscsi.h host->status[(_q)][host->status_ptr[(_q)]].ph = (_ph); \ host 266 drivers/scsi/arm/acornscsi.h host->status[(_q)][host->status_ptr[(_q)]].irq = (_irq); \ host 267 drivers/scsi/arm/acornscsi.h host->status_ptr[(_q)] = (host->status_ptr[(_q)] + 1) & (STATUS_BUFFER_SIZE - 1); \ host 275 drivers/scsi/arm/acornscsi.h struct Scsi_Host *host; /* host */ host 67 drivers/scsi/arm/arxescsi.c arxescsi_dma_setup(struct Scsi_Host *host, struct scsi_pointer *SCp, host 113 drivers/scsi/arm/arxescsi.c arxescsi_dma_pseudo(struct Scsi_Host *host, struct scsi_pointer *SCp, host 116 drivers/scsi/arm/arxescsi.c struct arxescsi_info *info = (struct arxescsi_info *)host->hostdata; host 199 drivers/scsi/arm/arxescsi.c static void arxescsi_dma_stop(struct Scsi_Host *host, struct scsi_pointer *SCp) host 212 drivers/scsi/arm/arxescsi.c static const char *arxescsi_info(struct Scsi_Host *host) host 214 drivers/scsi/arm/arxescsi.c struct arxescsi_info *info = (struct arxescsi_info *)host->hostdata; host 218 drivers/scsi/arm/arxescsi.c host->hostt->name, info->info.scsi.type, info->ec->slot_no, host 225 drivers/scsi/arm/arxescsi.c arxescsi_show_info(struct seq_file *m, struct Scsi_Host *host) host 228 drivers/scsi/arm/arxescsi.c info = (struct arxescsi_info *)host->hostdata; host 255 drivers/scsi/arm/arxescsi.c struct Scsi_Host *host; host 270 drivers/scsi/arm/arxescsi.c host = scsi_host_alloc(&arxescsi_template, sizeof(struct arxescsi_info)); host 271 drivers/scsi/arm/arxescsi.c if (!host) { host 276 drivers/scsi/arm/arxescsi.c info = (struct arxescsi_info *)host->hostdata; host 299 drivers/scsi/arm/arxescsi.c ret = fas216_init(host); host 303 drivers/scsi/arm/arxescsi.c ret = fas216_add(host, &ec->dev); host 307 drivers/scsi/arm/arxescsi.c fas216_release(host); host 309 drivers/scsi/arm/arxescsi.c scsi_host_put(host); host 318 drivers/scsi/arm/arxescsi.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 321 drivers/scsi/arm/arxescsi.c fas216_remove(host); host 323 drivers/scsi/arm/arxescsi.c fas216_release(host); host 324 drivers/scsi/arm/arxescsi.c scsi_host_put(host); host 17 drivers/scsi/arm/cumana_1.c #define priv(host) ((struct NCR5380_hostdata *)(host)->hostdata) host 234 drivers/scsi/arm/cumana_1.c struct Scsi_Host *host; host 241 drivers/scsi/arm/cumana_1.c host = scsi_host_alloc(&cumanascsi_template, sizeof(struct NCR5380_hostdata)); host 242 drivers/scsi/arm/cumana_1.c if (!host) { host 247 drivers/scsi/arm/cumana_1.c priv(host)->io = ioremap(ecard_resource_start(ec, ECARD_RES_IOCSLOW), host 249 drivers/scsi/arm/cumana_1.c priv(host)->pdma_io = ioremap(ecard_resource_start(ec, ECARD_RES_MEMC), host 251 drivers/scsi/arm/cumana_1.c if (!priv(host)->io || !priv(host)->pdma_io) { host 256 drivers/scsi/arm/cumana_1.c host->irq = ec->irq; host 258 drivers/scsi/arm/cumana_1.c ret = NCR5380_init(host, FLAG_DMA_FIXUP | FLAG_LATE_DMA_SETUP); host 262 drivers/scsi/arm/cumana_1.c NCR5380_maybe_reset_bus(host); host 264 drivers/scsi/arm/cumana_1.c priv(host)->ctrl = 0; host 265 drivers/scsi/arm/cumana_1.c writeb(0, priv(host)->io + CTRL); host 267 drivers/scsi/arm/cumana_1.c ret = request_irq(host->irq, cumanascsi_intr, 0, host 268 drivers/scsi/arm/cumana_1.c "CumanaSCSI-1", host); host 271 drivers/scsi/arm/cumana_1.c host->host_no, host->irq, ret); host 275 drivers/scsi/arm/cumana_1.c ret = scsi_add_host(host, &ec->dev); host 279 drivers/scsi/arm/cumana_1.c scsi_scan_host(host); host 283 drivers/scsi/arm/cumana_1.c free_irq(host->irq, host); host 285 drivers/scsi/arm/cumana_1.c NCR5380_exit(host); host 287 drivers/scsi/arm/cumana_1.c iounmap(priv(host)->io); host 288 drivers/scsi/arm/cumana_1.c iounmap(priv(host)->pdma_io); host 289 drivers/scsi/arm/cumana_1.c scsi_host_put(host); host 298 drivers/scsi/arm/cumana_1.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 299 drivers/scsi/arm/cumana_1.c void __iomem *base = priv(host)->io; host 300 drivers/scsi/arm/cumana_1.c void __iomem *dma = priv(host)->pdma_io; host 304 drivers/scsi/arm/cumana_1.c scsi_remove_host(host); host 305 drivers/scsi/arm/cumana_1.c free_irq(host->irq, host); host 306 drivers/scsi/arm/cumana_1.c NCR5380_exit(host); host 307 drivers/scsi/arm/cumana_1.c scsi_host_put(host); host 119 drivers/scsi/arm/cumana_2.c cumanascsi_2_terminator_ctl(struct Scsi_Host *host, int on_off) host 121 drivers/scsi/arm/cumana_2.c struct cumanascsi2_info *info = (struct cumanascsi2_info *)host->hostdata; host 154 drivers/scsi/arm/cumana_2.c cumanascsi_2_dma_setup(struct Scsi_Host *host, struct scsi_pointer *SCp, host 157 drivers/scsi/arm/cumana_2.c struct cumanascsi2_info *info = (struct cumanascsi2_info *)host->hostdata; host 158 drivers/scsi/arm/cumana_2.c struct device *dev = scsi_get_device(host); host 206 drivers/scsi/arm/cumana_2.c cumanascsi_2_dma_pseudo(struct Scsi_Host *host, struct scsi_pointer *SCp, host 209 drivers/scsi/arm/cumana_2.c struct cumanascsi2_info *info = (struct cumanascsi2_info *)host->hostdata; host 280 drivers/scsi/arm/cumana_2.c cumanascsi_2_dma_stop(struct Scsi_Host *host, struct scsi_pointer *SCp) host 282 drivers/scsi/arm/cumana_2.c struct cumanascsi2_info *info = (struct cumanascsi2_info *)host->hostdata; host 294 drivers/scsi/arm/cumana_2.c const char *cumanascsi_2_info(struct Scsi_Host *host) host 296 drivers/scsi/arm/cumana_2.c struct cumanascsi2_info *info = (struct cumanascsi2_info *)host->hostdata; host 300 drivers/scsi/arm/cumana_2.c host->hostt->name, info->info.scsi.type, info->ec->slot_no, host 314 drivers/scsi/arm/cumana_2.c cumanascsi_2_set_proc_info(struct Scsi_Host *host, char *buffer, int length) host 324 drivers/scsi/arm/cumana_2.c cumanascsi_2_terminator_ctl(host, 1); host 326 drivers/scsi/arm/cumana_2.c cumanascsi_2_terminator_ctl(host, 0); host 337 drivers/scsi/arm/cumana_2.c static int cumanascsi_2_show_info(struct seq_file *m, struct Scsi_Host *host) host 340 drivers/scsi/arm/cumana_2.c info = (struct cumanascsi2_info *)host->hostdata; host 373 drivers/scsi/arm/cumana_2.c struct Scsi_Host *host; host 388 drivers/scsi/arm/cumana_2.c host = scsi_host_alloc(&cumanascsi2_template, host 390 drivers/scsi/arm/cumana_2.c if (!host) { host 395 drivers/scsi/arm/cumana_2.c ecard_set_drvdata(ec, host); host 397 drivers/scsi/arm/cumana_2.c info = (struct cumanascsi2_info *)host->hostdata; host 401 drivers/scsi/arm/cumana_2.c cumanascsi_2_terminator_ctl(host, term[ec->slot_no]); host 424 drivers/scsi/arm/cumana_2.c ret = fas216_init(host); host 432 drivers/scsi/arm/cumana_2.c host->host_no, ec->irq, ret); host 439 drivers/scsi/arm/cumana_2.c host->host_no, info->info.scsi.dma); host 447 drivers/scsi/arm/cumana_2.c ret = fas216_add(host, &ec->dev); host 453 drivers/scsi/arm/cumana_2.c free_irq(ec->irq, host); host 456 drivers/scsi/arm/cumana_2.c fas216_release(host); host 459 drivers/scsi/arm/cumana_2.c scsi_host_put(host); host 470 drivers/scsi/arm/cumana_2.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 471 drivers/scsi/arm/cumana_2.c struct cumanascsi2_info *info = (struct cumanascsi2_info *)host->hostdata; host 474 drivers/scsi/arm/cumana_2.c fas216_remove(host); host 480 drivers/scsi/arm/cumana_2.c fas216_release(host); host 481 drivers/scsi/arm/cumana_2.c scsi_host_put(host); host 118 drivers/scsi/arm/eesox.c eesoxscsi_terminator_ctl(struct Scsi_Host *host, int on_off) host 120 drivers/scsi/arm/eesox.c struct eesoxscsi_info *info = (struct eesoxscsi_info *)host->hostdata; host 123 drivers/scsi/arm/eesox.c spin_lock_irqsave(host->host_lock, flags); host 130 drivers/scsi/arm/eesox.c spin_unlock_irqrestore(host->host_lock, flags); host 155 drivers/scsi/arm/eesox.c eesoxscsi_dma_setup(struct Scsi_Host *host, struct scsi_pointer *SCp, host 158 drivers/scsi/arm/eesox.c struct eesoxscsi_info *info = (struct eesoxscsi_info *)host->hostdata; host 159 drivers/scsi/arm/eesox.c struct device *dev = scsi_get_device(host); host 350 drivers/scsi/arm/eesox.c eesoxscsi_dma_pseudo(struct Scsi_Host *host, struct scsi_pointer *SCp, host 353 drivers/scsi/arm/eesox.c struct eesoxscsi_info *info = (struct eesoxscsi_info *)host->hostdata; host 367 drivers/scsi/arm/eesox.c eesoxscsi_dma_stop(struct Scsi_Host *host, struct scsi_pointer *SCp) host 369 drivers/scsi/arm/eesox.c struct eesoxscsi_info *info = (struct eesoxscsi_info *)host->hostdata; host 379 drivers/scsi/arm/eesox.c const char *eesoxscsi_info(struct Scsi_Host *host) host 381 drivers/scsi/arm/eesox.c struct eesoxscsi_info *info = (struct eesoxscsi_info *)host->hostdata; host 385 drivers/scsi/arm/eesox.c host->hostt->name, info->info.scsi.type, info->ec->slot_no, host 399 drivers/scsi/arm/eesox.c eesoxscsi_set_proc_info(struct Scsi_Host *host, char *buffer, int length) host 409 drivers/scsi/arm/eesox.c eesoxscsi_terminator_ctl(host, 1); host 411 drivers/scsi/arm/eesox.c eesoxscsi_terminator_ctl(host, 0); host 422 drivers/scsi/arm/eesox.c static int eesoxscsi_show_info(struct seq_file *m, struct Scsi_Host *host) host 426 drivers/scsi/arm/eesox.c info = (struct eesoxscsi_info *)host->hostdata; host 441 drivers/scsi/arm/eesox.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 442 drivers/scsi/arm/eesox.c struct eesoxscsi_info *info = (struct eesoxscsi_info *)host->hostdata; host 450 drivers/scsi/arm/eesox.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 451 drivers/scsi/arm/eesox.c struct eesoxscsi_info *info = (struct eesoxscsi_info *)host->hostdata; host 455 drivers/scsi/arm/eesox.c spin_lock_irqsave(host->host_lock, flags); host 462 drivers/scsi/arm/eesox.c spin_unlock_irqrestore(host->host_lock, flags); host 491 drivers/scsi/arm/eesox.c struct Scsi_Host *host; host 506 drivers/scsi/arm/eesox.c host = scsi_host_alloc(&eesox_template, host 508 drivers/scsi/arm/eesox.c if (!host) { host 513 drivers/scsi/arm/eesox.c ecard_set_drvdata(ec, host); host 515 drivers/scsi/arm/eesox.c info = (struct eesoxscsi_info *)host->hostdata; host 545 drivers/scsi/arm/eesox.c ret = fas216_init(host); host 552 drivers/scsi/arm/eesox.c host->host_no, ec->irq, ret); host 559 drivers/scsi/arm/eesox.c host->host_no, info->info.scsi.dma); host 568 drivers/scsi/arm/eesox.c ret = fas216_add(host, &ec->dev); host 574 drivers/scsi/arm/eesox.c free_irq(ec->irq, host); host 577 drivers/scsi/arm/eesox.c fas216_remove(host); host 581 drivers/scsi/arm/eesox.c scsi_host_put(host); host 592 drivers/scsi/arm/eesox.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 593 drivers/scsi/arm/eesox.c struct eesoxscsi_info *info = (struct eesoxscsi_info *)host->hostdata; host 596 drivers/scsi/arm/eesox.c fas216_remove(host); host 604 drivers/scsi/arm/eesox.c fas216_release(host); host 605 drivers/scsi/arm/eesox.c scsi_host_put(host); host 192 drivers/scsi/arm/fas216.c info->magic_start, info->host, info->SCpnt, host 295 drivers/scsi/arm/fas216.c printk("scsi%d.%c: %s", info->host->host_no, target, buf); host 647 drivers/scsi/arm/fas216.c info->host->host_no, '0' + info->SCpnt->device->id); host 781 drivers/scsi/arm/fas216.c dmatype = info->dma.setup(info->host, &info->scsi.SCp, host 802 drivers/scsi/arm/fas216.c info->dma.pseudo(info->host, &info->scsi.SCp, host 835 drivers/scsi/arm/fas216.c info->dma.stop(info->host, &info->scsi.SCp); host 868 drivers/scsi/arm/fas216.c info->dma.stop(info->host, &info->scsi.SCp); host 923 drivers/scsi/arm/fas216.c info->host->host_no, fas216_target(info), fas216_drv_phase(info)); host 958 drivers/scsi/arm/fas216.c info->host->host_no); host 965 drivers/scsi/arm/fas216.c if (!(msg[0] & (1 << info->host->this_id)) || host 969 drivers/scsi/arm/fas216.c target = msg[0] & ~(1 << info->host->this_id); host 1040 drivers/scsi/arm/fas216.c info->host->host_no); host 1063 drivers/scsi/arm/fas216.c info->host->host_no, fas216_target(info)); host 1144 drivers/scsi/arm/fas216.c printk("scsi%d.%c: message was", info->host->host_no, fas216_target(info)); host 1261 drivers/scsi/arm/fas216.c info->host->host_no, fas216_target(info)); host 1504 drivers/scsi/arm/fas216.c info->host->host_no, fas216_target(info)); host 1516 drivers/scsi/arm/fas216.c info->host->host_no, fas216_target(info), host 1527 drivers/scsi/arm/fas216.c info->host->host_no, fas216_target(info), host 1647 drivers/scsi/arm/fas216.c scsi_report_bus_reset(info->host, 0); host 1695 drivers/scsi/arm/fas216.c info->host->host_no, '0' + SCpnt->device->id); host 2105 drivers/scsi/arm/fas216.c info->host->host_no); host 2128 drivers/scsi/arm/fas216.c info->host->host_no, '0' + SCpnt->device->id); host 2194 drivers/scsi/arm/fas216.c info->host->host_no); host 2209 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; host 2258 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; host 2276 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; host 2295 drivers/scsi/arm/fas216.c spin_unlock_irq(info->host->host_lock); host 2307 drivers/scsi/arm/fas216.c spin_lock_irq(info->host->host_lock); host 2309 drivers/scsi/arm/fas216.c spin_unlock_irq(info->host->host_lock); host 2313 drivers/scsi/arm/fas216.c spin_lock_irq(info->host->host_lock); host 2426 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; host 2479 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; host 2560 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; host 2590 drivers/scsi/arm/fas216.c shost_for_each_device(SDpnt, info->host) { host 2660 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)SCpnt->device->host->hostdata; host 2662 drivers/scsi/arm/fas216.c spin_lock_irq(info->host->host_lock); host 2679 drivers/scsi/arm/fas216.c spin_unlock_irq(info->host->host_lock); host 2681 drivers/scsi/arm/fas216.c spin_lock_irq(info->host->host_lock); host 2690 drivers/scsi/arm/fas216.c spin_unlock_irq(info->host->host_lock); host 2841 drivers/scsi/arm/fas216.c int fas216_init(struct Scsi_Host *host) host 2843 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)host->hostdata; host 2847 drivers/scsi/arm/fas216.c info->host = host; host 2848 drivers/scsi/arm/fas216.c info->scsi.cfg[0] = host->this_id | CNTL1_PERE; host 2884 drivers/scsi/arm/fas216.c int fas216_add(struct Scsi_Host *host, struct device *dev) host 2886 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)host->hostdata; host 2917 drivers/scsi/arm/fas216.c spin_unlock_irq(info->host->host_lock); host 2919 drivers/scsi/arm/fas216.c spin_lock_irq(info->host->host_lock); host 2926 drivers/scsi/arm/fas216.c ret = scsi_add_host(host, dev); host 2930 drivers/scsi/arm/fas216.c scsi_scan_host(host); host 2935 drivers/scsi/arm/fas216.c void fas216_remove(struct Scsi_Host *host) host 2937 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)host->hostdata; host 2940 drivers/scsi/arm/fas216.c scsi_remove_host(host); host 2943 drivers/scsi/arm/fas216.c scsi_host_put(host); host 2952 drivers/scsi/arm/fas216.c void fas216_release(struct Scsi_Host *host) host 2954 drivers/scsi/arm/fas216.c FAS216_Info *info = (FAS216_Info *)host->hostdata; host 3000 drivers/scsi/arm/fas216.c shost_for_each_device(scd, info->host) { host 215 drivers/scsi/arm/fas216.h struct Scsi_Host *host; /* host */ host 302 drivers/scsi/arm/fas216.h fasdmatype_t (*setup) (struct Scsi_Host *host, struct scsi_pointer *SCp, fasdmadir_t direction, fasdmatype_t min_dma); host 303 drivers/scsi/arm/fas216.h void (*pseudo)(struct Scsi_Host *host, struct scsi_pointer *SCp, fasdmadir_t direction, int transfer); host 304 drivers/scsi/arm/fas216.h void (*stop) (struct Scsi_Host *host, struct scsi_pointer *SCp); host 18 drivers/scsi/arm/oak.c #define priv(host) ((struct NCR5380_hostdata *)(host)->hostdata) host 122 drivers/scsi/arm/oak.c struct Scsi_Host *host; host 129 drivers/scsi/arm/oak.c host = scsi_host_alloc(&oakscsi_template, sizeof(struct NCR5380_hostdata)); host 130 drivers/scsi/arm/oak.c if (!host) { host 135 drivers/scsi/arm/oak.c priv(host)->io = ioremap(ecard_resource_start(ec, ECARD_RES_MEMC), host 137 drivers/scsi/arm/oak.c if (!priv(host)->io) { host 142 drivers/scsi/arm/oak.c host->irq = NO_IRQ; host 144 drivers/scsi/arm/oak.c ret = NCR5380_init(host, FLAG_DMA_FIXUP | FLAG_LATE_DMA_SETUP); host 148 drivers/scsi/arm/oak.c NCR5380_maybe_reset_bus(host); host 150 drivers/scsi/arm/oak.c ret = scsi_add_host(host, &ec->dev); host 154 drivers/scsi/arm/oak.c scsi_scan_host(host); host 158 drivers/scsi/arm/oak.c NCR5380_exit(host); host 160 drivers/scsi/arm/oak.c iounmap(priv(host)->io); host 162 drivers/scsi/arm/oak.c scsi_host_put(host); host 171 drivers/scsi/arm/oak.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 172 drivers/scsi/arm/oak.c void __iomem *base = priv(host)->io; host 175 drivers/scsi/arm/oak.c scsi_remove_host(host); host 177 drivers/scsi/arm/oak.c NCR5380_exit(host); host 178 drivers/scsi/arm/oak.c scsi_host_put(host); host 99 drivers/scsi/arm/powertec.c powertecscsi_terminator_ctl(struct Scsi_Host *host, int on_off) host 101 drivers/scsi/arm/powertec.c struct powertec_info *info = (struct powertec_info *)host->hostdata; host 128 drivers/scsi/arm/powertec.c powertecscsi_dma_setup(struct Scsi_Host *host, struct scsi_pointer *SCp, host 131 drivers/scsi/arm/powertec.c struct powertec_info *info = (struct powertec_info *)host->hostdata; host 132 drivers/scsi/arm/powertec.c struct device *dev = scsi_get_device(host); host 170 drivers/scsi/arm/powertec.c powertecscsi_dma_stop(struct Scsi_Host *host, struct scsi_pointer *SCp) host 172 drivers/scsi/arm/powertec.c struct powertec_info *info = (struct powertec_info *)host->hostdata; host 182 drivers/scsi/arm/powertec.c const char *powertecscsi_info(struct Scsi_Host *host) host 184 drivers/scsi/arm/powertec.c struct powertec_info *info = (struct powertec_info *)host->hostdata; host 188 drivers/scsi/arm/powertec.c host->hostt->name, info->info.scsi.type, info->ec->slot_no, host 202 drivers/scsi/arm/powertec.c powertecscsi_set_proc_info(struct Scsi_Host *host, char *buffer, int length) host 212 drivers/scsi/arm/powertec.c powertecscsi_terminator_ctl(host, 1); host 214 drivers/scsi/arm/powertec.c powertecscsi_terminator_ctl(host, 0); host 237 drivers/scsi/arm/powertec.c static int powertecscsi_show_info(struct seq_file *m, struct Scsi_Host *host) host 241 drivers/scsi/arm/powertec.c info = (struct powertec_info *)host->hostdata; host 256 drivers/scsi/arm/powertec.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 257 drivers/scsi/arm/powertec.c struct powertec_info *info = (struct powertec_info *)host->hostdata; host 266 drivers/scsi/arm/powertec.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 269 drivers/scsi/arm/powertec.c powertecscsi_terminator_ctl(host, buf[0] != '0'); host 300 drivers/scsi/arm/powertec.c struct Scsi_Host *host; host 315 drivers/scsi/arm/powertec.c host = scsi_host_alloc(&powertecscsi_template, host 317 drivers/scsi/arm/powertec.c if (!host) { host 322 drivers/scsi/arm/powertec.c ecard_set_drvdata(ec, host); host 324 drivers/scsi/arm/powertec.c info = (struct powertec_info *)host->hostdata; host 326 drivers/scsi/arm/powertec.c powertecscsi_terminator_ctl(host, term[ec->slot_no]); host 352 drivers/scsi/arm/powertec.c ret = fas216_init(host); host 360 drivers/scsi/arm/powertec.c host->host_no, ec->irq, ret); host 367 drivers/scsi/arm/powertec.c host->host_no, info->info.scsi.dma); host 375 drivers/scsi/arm/powertec.c ret = fas216_add(host, &ec->dev); host 381 drivers/scsi/arm/powertec.c free_irq(ec->irq, host); host 384 drivers/scsi/arm/powertec.c fas216_release(host); host 388 drivers/scsi/arm/powertec.c scsi_host_put(host); host 399 drivers/scsi/arm/powertec.c struct Scsi_Host *host = ecard_get_drvdata(ec); host 400 drivers/scsi/arm/powertec.c struct powertec_info *info = (struct powertec_info *)host->hostdata; host 403 drivers/scsi/arm/powertec.c fas216_remove(host); host 411 drivers/scsi/arm/powertec.c fas216_release(host); host 412 drivers/scsi/arm/powertec.c scsi_host_put(host); host 107 drivers/scsi/arm/scsi.h SCpnt->device->host->host_no, host 432 drivers/scsi/atari_scsi.c hostdata->host->host_no, data, addr, count, dir); host 129 drivers/scsi/atp870u.c struct Scsi_Host *host = dev_id; host 130 drivers/scsi/atp870u.c struct atp_unit *dev = (struct atp_unit *)&host->hostdata; host 220 drivers/scsi/atp870u.c spin_lock_irqsave(dev->host->host_lock, flags); host 228 drivers/scsi/atp870u.c spin_unlock_irqrestore(dev->host->host_lock, flags); host 483 drivers/scsi/atp870u.c spin_lock_irqsave(dev->host->host_lock, flags); host 493 drivers/scsi/atp870u.c spin_unlock_irqrestore(dev->host->host_lock, flags); host 505 drivers/scsi/atp870u.c spin_lock_irqsave(dev->host->host_lock, flags); host 513 drivers/scsi/atp870u.c spin_unlock_irqrestore(dev->host->host_lock, flags); host 588 drivers/scsi/atp870u.c struct Scsi_Host *host; host 602 drivers/scsi/atp870u.c host = req_p->device->host; host 603 drivers/scsi/atp870u.c dev = (struct atp_unit *)&host->hostdata; host 966 drivers/scsi/atp870u.c static void tscam(struct Scsi_Host *host, bool wide_chip, u8 scam_on) host 973 drivers/scsi/atp870u.c struct atp_unit *dev = (struct atp_unit *)&host->hostdata; host 1188 drivers/scsi/atp870u.c static void atp870u_free_tables(struct Scsi_Host *host) host 1190 drivers/scsi/atp870u.c struct atp_unit *atp_dev = (struct atp_unit *)&host->hostdata; host 1202 drivers/scsi/atp870u.c static int atp870u_init_tables(struct Scsi_Host *host) host 1204 drivers/scsi/atp870u.c struct atp_unit *atp_dev = (struct atp_unit *)&host->hostdata; host 1211 drivers/scsi/atp870u.c atp870u_free_tables(host); host 1530 drivers/scsi/atp870u.c atpdev->host = shpnt; host 1590 drivers/scsi/atp870u.c struct Scsi_Host *host; host 1591 drivers/scsi/atp870u.c host = SCpnt->device->host; host 1593 drivers/scsi/atp870u.c dev = (struct atp_unit *)&host->hostdata; host 1660 drivers/scsi/atp870u.c struct Scsi_Host *pshost = devext->host; host 58 drivers/scsi/atp870u.h struct Scsi_Host *host; host 92 drivers/scsi/bfa/bfad_bsg.c iocmd->host = im_port->shost->host_no; host 661 drivers/scsi/bfa/bfad_bsg.c iocmd->host = drv_itnim->im_port->shost->host_no; host 217 drivers/scsi/bfa/bfad_bsg.h u32 host; host 349 drivers/scsi/bfa/bfad_bsg.h u32 host; host 80 drivers/scsi/bfa/bfad_im.c if (cmnd->device->host != NULL) host 112 drivers/scsi/bfa/bfad_im.c if (cmnd->device->host != NULL) host 139 drivers/scsi/bfa/bfad_im.c if (cmnd->device->host != NULL) host 192 drivers/scsi/bfa/bfad_im.c struct Scsi_Host *shost = cmnd->device->host; host 293 drivers/scsi/bfa/bfad_im.c struct Scsi_Host *shost = cmnd->device->host; host 370 drivers/scsi/bfa/bfad_im.c struct Scsi_Host *shost = cmnd->device->host; host 877 drivers/scsi/bfa/bfad_im.c shost_for_each_device(tmp_sdev, sdev->host) { host 897 drivers/scsi/bfa/bfad_im.c shost_for_each_device(tmp_sdev, sdev->host) { host 1027 drivers/scsi/bfa/bfad_im.c struct Scsi_Host *host = im_port->shost; host 1033 drivers/scsi/bfa/bfad_im.c fc_host_node_name(host) = host 1035 drivers/scsi/bfa/bfad_im.c fc_host_port_name(host) = host 1037 drivers/scsi/bfa/bfad_im.c fc_host_max_npiv_vports(host) = bfa_lps_get_max_vport(&bfad->bfa); host 1039 drivers/scsi/bfa/bfad_im.c fc_host_supported_classes(host) = FC_COS_CLASS3; host 1041 drivers/scsi/bfa/bfad_im.c memset(fc_host_supported_fc4s(host), 0, host 1042 drivers/scsi/bfa/bfad_im.c sizeof(fc_host_supported_fc4s(host))); host 1045 drivers/scsi/bfa/bfad_im.c fc_host_supported_fc4s(host)[2] = 1; host 1047 drivers/scsi/bfa/bfad_im.c fc_host_supported_fc4s(host)[7] = 1; host 1051 drivers/scsi/bfa/bfad_im.c sprintf(fc_host_symbolic_name(host), "%s", symname); host 1053 drivers/scsi/bfa/bfad_im.c fc_host_supported_speeds(host) = bfad_im_supported_speeds(&bfad->bfa); host 1054 drivers/scsi/bfa/bfad_im.c fc_host_maxframe_size(host) = fcport->cfg.maxfrsize; host 1206 drivers/scsi/bfa/bfad_im.c (struct bfad_im_port_s *) cmnd->device->host->hostdata[0]; host 67 drivers/scsi/bfa/bfad_im.h static inline struct bfad_im_port_s *bfad_get_im_port(struct Scsi_Host *host) host 69 drivers/scsi/bfa/bfad_im.h struct bfad_im_port_pointer *im_portp = shost_priv(host); host 499 drivers/scsi/bnx2fc/bnx2fc.h int bnx2fc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc_cmd); host 31 drivers/scsi/bnx2fc/bnx2fc_debug.c io_req->port->lport->host) host 32 drivers/scsi/bnx2fc/bnx2fc_debug.c shost_printk(KERN_INFO, io_req->port->lport->host, host 54 drivers/scsi/bnx2fc/bnx2fc_debug.c if (tgt && tgt->port && tgt->port->lport && tgt->port->lport->host && host 56 drivers/scsi/bnx2fc/bnx2fc_debug.c shost_printk(KERN_INFO, tgt->port->lport->host, host 78 drivers/scsi/bnx2fc/bnx2fc_debug.c if (lport && lport->host) host 79 drivers/scsi/bnx2fc/bnx2fc_debug.c shost_printk(KERN_INFO, lport->host, PFX "%pV", &vaf); host 734 drivers/scsi/bnx2fc/bnx2fc_fcoe.c struct Scsi_Host *shost = lport->host; host 747 drivers/scsi/bnx2fc/bnx2fc_fcoe.c rc = scsi_add_host(lport->host, dev); host 753 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_max_npiv_vports(lport->host) = USHRT_MAX; host 754 drivers/scsi/bnx2fc/bnx2fc_fcoe.c snprintf(fc_host_symbolic_name(lport->host), 256, host 955 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_port_type(vport->host) = host 958 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_port_type(lport->host) = host 1162 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_dev_loss_tmo(vn_port->host) = bnx2fc_devloss_tmo; host 1519 drivers/scsi/bnx2fc/bnx2fc_fcoe.c shost = lport->host; host 1557 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_port_type(lport->host) = FC_PORTTYPE_UNKNOWN; host 1588 drivers/scsi/bnx2fc/bnx2fc_fcoe.c scsi_host_put(lport->host); host 1627 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_remove_host(lport->host); host 1628 drivers/scsi/bnx2fc/bnx2fc_fcoe.c scsi_remove_host(lport->host); host 1640 drivers/scsi/bnx2fc/bnx2fc_fcoe.c scsi_host_put(lport->host); host 1883 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_port_type(vport->host) = host 1886 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_port_type(lport->host) = FC_PORTTYPE_UNKNOWN; host 2015 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_port_type(lport->host) = FC_PORTTYPE_NPORT; host 2170 drivers/scsi/bnx2fc/bnx2fc_fcoe.c if (fc_vport_create(lport->host, 0, &vpid)) host 2209 drivers/scsi/bnx2fc/bnx2fc_fcoe.c if (!lport->host) host 2410 drivers/scsi/bnx2fc/bnx2fc_fcoe.c fc_host_port_type(lport->host) = FC_PORTTYPE_NPORT; host 243 drivers/scsi/bnx2fc/bnx2fc_hwi.c port_id = fc_host_port_id(lport->host); host 392 drivers/scsi/bnx2fc/bnx2fc_hwi.c port_id = fc_host_port_id(lport->host); host 195 drivers/scsi/bnx2fc/bnx2fc_io.c if (!sc_cmd->device->host) { host 673 drivers/scsi/bnx2fc/bnx2fc_io.c struct Scsi_Host *host = sc_cmd->device->host; host 682 drivers/scsi/bnx2fc/bnx2fc_io.c lport = shost_priv(host); host 1138 drivers/scsi/bnx2fc/bnx2fc_io.c lport = shost_priv(sc_cmd->device->host); host 1854 drivers/scsi/bnx2fc/bnx2fc_io.c int bnx2fc_queuecommand(struct Scsi_Host *host, host 1857 drivers/scsi/bnx2fc/bnx2fc_io.c struct fc_lport *lport = shost_priv(host); host 41 drivers/scsi/bvme6000_scsi.c struct Scsi_Host *host; host 63 drivers/scsi/bvme6000_scsi.c host = NCR_700_detect(&bvme6000_scsi_driver_template, hostdata, host 65 drivers/scsi/bvme6000_scsi.c if (!host) { host 70 drivers/scsi/bvme6000_scsi.c host->base = BVME_NCR53C710_BASE; host 71 drivers/scsi/bvme6000_scsi.c host->this_id = 7; host 72 drivers/scsi/bvme6000_scsi.c host->irq = BVME_IRQ_SCSI; host 74 drivers/scsi/bvme6000_scsi.c host)) { host 79 drivers/scsi/bvme6000_scsi.c platform_set_drvdata(dev, host); host 80 drivers/scsi/bvme6000_scsi.c scsi_scan_host(host); host 85 drivers/scsi/bvme6000_scsi.c scsi_host_put(host); host 95 drivers/scsi/bvme6000_scsi.c struct Scsi_Host *host = platform_get_drvdata(dev); host 96 drivers/scsi/bvme6000_scsi.c struct NCR_700_Host_Parameters *hostdata = shost_priv(host); host 98 drivers/scsi/bvme6000_scsi.c scsi_remove_host(host); host 99 drivers/scsi/bvme6000_scsi.c NCR_700_release(host); host 101 drivers/scsi/bvme6000_scsi.c free_irq(host->irq, host); host 399 drivers/scsi/ch.c scsi_device_lookup(ch->device->host, host 1775 drivers/scsi/csiostor/csio_scsi.c csio_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmnd) host 1777 drivers/scsi/csiostor/csio_scsi.c struct csio_lnode *ln = shost_priv(host); host 1912 drivers/scsi/csiostor/csio_scsi.c struct csio_lnode *ln = shost_priv(cmnd->device->host); host 2060 drivers/scsi/csiostor/csio_scsi.c struct csio_lnode *ln = shost_priv(cmnd->device->host); host 118 drivers/scsi/cxlflash/common.h struct Scsi_Host *host; host 33 drivers/scsi/cxlflash/lunmgt.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 44 drivers/scsi/cxlflash/lunmgt.c lli->host_no = sdev->host->host_no; host 61 drivers/scsi/cxlflash/lunmgt.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 134 drivers/scsi/cxlflash/lunmgt.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 230 drivers/scsi/cxlflash/lunmgt.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 427 drivers/scsi/cxlflash/main.c static u32 cmd_to_target_hwq(struct Scsi_Host *host, struct scsi_cmnd *scp, host 553 drivers/scsi/cxlflash/main.c static const char *cxlflash_driver_info(struct Scsi_Host *host) host 565 drivers/scsi/cxlflash/main.c static int cxlflash_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scp) host 567 drivers/scsi/cxlflash/main.c struct cxlflash_cfg *cfg = shost_priv(host); host 572 drivers/scsi/cxlflash/main.c int hwq_index = cmd_to_target_hwq(host, scp, afu); host 580 drivers/scsi/cxlflash/main.c __func__, scp, host->host_no, scp->device->channel, host 982 drivers/scsi/cxlflash/main.c scsi_remove_host(cfg->host); host 993 drivers/scsi/cxlflash/main.c scsi_host_put(cfg->host); host 1074 drivers/scsi/cxlflash/main.c rc = scsi_add_host(cfg->host, &pdev->dev); host 1080 drivers/scsi/cxlflash/main.c scsi_scan_host(cfg->host); host 1758 drivers/scsi/cxlflash/main.c hwq->host_map = &afu->afu_map->hosts[hwq->ctx_hndl].host; host 2107 drivers/scsi/cxlflash/main.c cfg->host->max_channel = PORTNUM2CHAN(num_fc_ports); host 2265 drivers/scsi/cxlflash/main.c scsi_unblock_requests(cfg->host); host 2283 drivers/scsi/cxlflash/main.c scsi_block_requests(cfg->host); host 2432 drivers/scsi/cxlflash/main.c struct Scsi_Host *host = scp->device->host; host 2433 drivers/scsi/cxlflash/main.c struct cxlflash_cfg *cfg = shost_priv(host); host 2440 drivers/scsi/cxlflash/main.c "cdb=(%08x-%08x-%08x-%08x)\n", __func__, scp, host->host_no, host 2479 drivers/scsi/cxlflash/main.c struct Scsi_Host *host = sdev->host; host 2480 drivers/scsi/cxlflash/main.c struct cxlflash_cfg *cfg = shost_priv(host); host 2485 drivers/scsi/cxlflash/main.c host->host_no, sdev->channel, sdev->id, sdev->lun); host 2522 drivers/scsi/cxlflash/main.c struct Scsi_Host *host = scp->device->host; host 2523 drivers/scsi/cxlflash/main.c struct cxlflash_cfg *cfg = shost_priv(host); host 2526 drivers/scsi/cxlflash/main.c dev_dbg(dev, "%s: %d\n", __func__, host->host_no); host 2746 drivers/scsi/cxlflash/main.c scsi_scan_host(cfg->host); host 3235 drivers/scsi/cxlflash/main.c spin_lock_irqsave(cfg->host->host_lock, lock_flags); host 3243 drivers/scsi/cxlflash/main.c spin_unlock_irqrestore(cfg->host->host_lock, host 3249 drivers/scsi/cxlflash/main.c spin_lock_irqsave(cfg->host->host_lock, lock_flags); host 3255 drivers/scsi/cxlflash/main.c spin_unlock_irqrestore(cfg->host->host_lock, lock_flags); host 3258 drivers/scsi/cxlflash/main.c scsi_scan_host(cfg->host); host 3668 drivers/scsi/cxlflash/main.c struct Scsi_Host *host; host 3681 drivers/scsi/cxlflash/main.c host = scsi_host_alloc(&driver_template, sizeof(struct cxlflash_cfg)); host 3682 drivers/scsi/cxlflash/main.c if (!host) { host 3688 drivers/scsi/cxlflash/main.c host->max_id = CXLFLASH_MAX_NUM_TARGETS_PER_BUS; host 3689 drivers/scsi/cxlflash/main.c host->max_lun = CXLFLASH_MAX_NUM_LUNS_PER_TARGET; host 3690 drivers/scsi/cxlflash/main.c host->unique_id = host->host_no; host 3691 drivers/scsi/cxlflash/main.c host->max_cmd_len = CXLFLASH_MAX_CDB_LEN; host 3693 drivers/scsi/cxlflash/main.c cfg = shost_priv(host); host 3695 drivers/scsi/cxlflash/main.c cfg->host = host; host 3700 drivers/scsi/cxlflash/main.c scsi_host_put(cfg->host); host 3815 drivers/scsi/cxlflash/main.c scsi_block_requests(cfg->host); host 3826 drivers/scsi/cxlflash/main.c scsi_unblock_requests(cfg->host); host 3873 drivers/scsi/cxlflash/main.c scsi_unblock_requests(cfg->host); host 474 drivers/scsi/cxlflash/sislite.h struct sisl_host_map host; host 332 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 634 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 894 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 1320 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 1477 drivers/scsi/cxlflash/superpipe.c attach->max_xfer = sdev->host->max_sectors * MAX_SECTOR_UNIT; host 1654 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 1775 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 1813 drivers/scsi/cxlflash/superpipe.c scsi_scan_host(cfg->host); host 1842 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 1964 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 2052 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 2099 drivers/scsi/cxlflash/superpipe.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 2108 drivers/scsi/cxlflash/superpipe.c struct Scsi_Host *shost = sdev->host; host 429 drivers/scsi/cxlflash/vlun.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 507 drivers/scsi/cxlflash/vlun.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 625 drivers/scsi/cxlflash/vlun.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 733 drivers/scsi/cxlflash/vlun.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 975 drivers/scsi/cxlflash/vlun.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 1193 drivers/scsi/cxlflash/vlun.c struct cxlflash_cfg *cfg = shost_priv(sdev->host); host 984 drivers/scsi/dc395x.c (struct AdapterCtlBlk *)cmd->device->host->hostdata; host 1068 drivers/scsi/dc395x.c acb = (struct AdapterCtlBlk *)sdev->host->hostdata; host 1199 drivers/scsi/dc395x.c (struct AdapterCtlBlk *)cmd->device->host->hostdata; host 1246 drivers/scsi/dc395x.c spin_lock_irq(cmd->device->host->host_lock); host 1248 drivers/scsi/dc395x.c spin_unlock_irq(cmd->device->host->host_lock); host 1265 drivers/scsi/dc395x.c (struct AdapterCtlBlk *)cmd->device->host->hostdata; host 3796 drivers/scsi/dc395x.c struct AdapterCtlBlk *acb = (struct AdapterCtlBlk *)scsi_device->host->hostdata; host 3816 drivers/scsi/dc395x.c struct AdapterCtlBlk *acb = (struct AdapterCtlBlk *)scsi_device->host->hostdata; host 4306 drivers/scsi/dc395x.c static void adapter_init_scsi_host(struct Scsi_Host *host) host 4308 drivers/scsi/dc395x.c struct AdapterCtlBlk *acb = (struct AdapterCtlBlk *)host->hostdata; host 4311 drivers/scsi/dc395x.c host->max_cmd_len = 24; host 4312 drivers/scsi/dc395x.c host->can_queue = DC395x_MAX_CMD_QUEUE; host 4313 drivers/scsi/dc395x.c host->cmd_per_lun = DC395x_MAX_CMD_PER_LUN; host 4314 drivers/scsi/dc395x.c host->this_id = (int)eeprom->scsi_id; host 4315 drivers/scsi/dc395x.c host->io_port = acb->io_port_base; host 4316 drivers/scsi/dc395x.c host->n_io_port = acb->io_port_len; host 4317 drivers/scsi/dc395x.c host->dma_channel = -1; host 4318 drivers/scsi/dc395x.c host->unique_id = acb->io_port_base; host 4319 drivers/scsi/dc395x.c host->irq = acb->irq_level; host 4322 drivers/scsi/dc395x.c host->max_id = 16; host 4323 drivers/scsi/dc395x.c if (host->max_id - 1 == eeprom->scsi_id) host 4324 drivers/scsi/dc395x.c host->max_id--; host 4327 drivers/scsi/dc395x.c host->max_lun = 8; host 4329 drivers/scsi/dc395x.c host->max_lun = 1; host 4509 drivers/scsi/dc395x.c static int dc395x_show_info(struct seq_file *m, struct Scsi_Host *host) host 4511 drivers/scsi/dc395x.c struct AdapterCtlBlk *acb = (struct AdapterCtlBlk *)host->hostdata; host 4522 drivers/scsi/dc395x.c seq_printf(m, "SCSI Host Nr %i, ", host->host_no); host 4529 drivers/scsi/dc395x.c seq_printf(m, "MaxID %i, MaxLUN %llu, ", host->max_id, host->max_lun); host 4530 drivers/scsi/dc395x.c seq_printf(m, "AdapterID %i\n", host->this_id); host 162 drivers/scsi/device_handler/scsi_dh_rdac.c struct Scsi_Host *host; host 334 drivers/scsi/device_handler/scsi_dh_rdac.c (tmp->host == sdev->host)) { host 346 drivers/scsi/device_handler/scsi_dh_rdac.c ctlr->host = sdev->host; host 165 drivers/scsi/dpt_i2o.c static u8 adpt_read_blink_led(adpt_hba* host) host 167 drivers/scsi/dpt_i2o.c if (host->FwDebugBLEDflag_P) { host 168 drivers/scsi/dpt_i2o.c if( readb(host->FwDebugBLEDflag_P) == 0xbc ){ host 169 drivers/scsi/dpt_i2o.c return readb(host->FwDebugBLEDvalue_P); host 304 drivers/scsi/dpt_i2o.c struct Scsi_Host *shost = pHba->host; host 410 drivers/scsi/dpt_i2o.c struct Scsi_Host *host = device->host; host 413 drivers/scsi/dpt_i2o.c pHba = (adpt_hba *) host->hostdata[0]; host 415 drivers/scsi/dpt_i2o.c if (host->can_queue && device->tagged_supported) { host 417 drivers/scsi/dpt_i2o.c host->can_queue - 1); host 441 drivers/scsi/dpt_i2o.c pHba = (adpt_hba*)cmd->device->host->hostdata[0]; host 533 drivers/scsi/dpt_i2o.c static const char *adpt_info(struct Scsi_Host *host) host 537 drivers/scsi/dpt_i2o.c pHba = (adpt_hba *) host->hostdata[0]; host 541 drivers/scsi/dpt_i2o.c static int adpt_show_info(struct seq_file *m, struct Scsi_Host *host) host 552 drivers/scsi/dpt_i2o.c if (pHba->host == host) { host 560 drivers/scsi/dpt_i2o.c host = pHba->host; host 565 drivers/scsi/dpt_i2o.c pHba->host->host_no, pHba->name, host->irq); host 567 drivers/scsi/dpt_i2o.c host->can_queue, (int) pHba->reply_fifo_size , host->sg_tablesize); host 599 drivers/scsi/dpt_i2o.c spin_lock_irqsave(pHba->host->host_lock, flags); host 607 drivers/scsi/dpt_i2o.c spin_unlock_irqrestore(pHba->host->host_lock, flags); host 645 drivers/scsi/dpt_i2o.c pHba = (adpt_hba*) cmd->device->host->hostdata[0]; host 659 drivers/scsi/dpt_i2o.c if (pHba->host) host 660 drivers/scsi/dpt_i2o.c spin_lock_irq(pHba->host->host_lock); host 662 drivers/scsi/dpt_i2o.c if (pHba->host) host 663 drivers/scsi/dpt_i2o.c spin_unlock_irq(pHba->host->host_lock); host 689 drivers/scsi/dpt_i2o.c pHba = (void*) cmd->device->host->hostdata[0]; host 701 drivers/scsi/dpt_i2o.c if (pHba->host) host 702 drivers/scsi/dpt_i2o.c spin_lock_irq(pHba->host->host_lock); host 707 drivers/scsi/dpt_i2o.c if (pHba->host) host 708 drivers/scsi/dpt_i2o.c spin_unlock_irq(pHba->host->host_lock); host 731 drivers/scsi/dpt_i2o.c pHba = (adpt_hba*)cmd->device->host->hostdata[0]; host 738 drivers/scsi/dpt_i2o.c if (pHba->host) host 739 drivers/scsi/dpt_i2o.c spin_lock_irq(pHba->host->host_lock); host 741 drivers/scsi/dpt_i2o.c if (pHba->host) host 742 drivers/scsi/dpt_i2o.c spin_unlock_irq(pHba->host->host_lock); host 759 drivers/scsi/dpt_i2o.c pHba = (adpt_hba*)cmd->device->host->hostdata[0]; host 776 drivers/scsi/dpt_i2o.c spin_lock_irq(cmd->device->host->host_lock); host 778 drivers/scsi/dpt_i2o.c spin_unlock_irq(cmd->device->host->host_lock); host 1046 drivers/scsi/dpt_i2o.c if(pHba->host){ host 1047 drivers/scsi/dpt_i2o.c free_irq(pHba->host->irq, pHba); host 1185 drivers/scsi/dpt_i2o.c if(pHba->host) host 1186 drivers/scsi/dpt_i2o.c spin_unlock_irq(pHba->host->host_lock); host 1198 drivers/scsi/dpt_i2o.c if(pHba->host) host 1199 drivers/scsi/dpt_i2o.c spin_lock_irq(pHba->host->host_lock); host 1762 drivers/scsi/dpt_i2o.c if (pHba->host) { host 1763 drivers/scsi/dpt_i2o.c scsi_block_requests(pHba->host); host 1764 drivers/scsi/dpt_i2o.c spin_lock_irqsave(pHba->host->host_lock, flags); host 1770 drivers/scsi/dpt_i2o.c if (pHba->host) { host 1771 drivers/scsi/dpt_i2o.c spin_unlock_irqrestore(pHba->host->host_lock, flags); host 1772 drivers/scsi/dpt_i2o.c scsi_unblock_requests(pHba->host); host 2017 drivers/scsi/dpt_i2o.c struct Scsi_Host *shost = pHba->host; host 2098 drivers/scsi/dpt_i2o.c if(pHba->host) host 2099 drivers/scsi/dpt_i2o.c spin_lock_irqsave(pHba->host->host_lock, flags); host 2160 drivers/scsi/dpt_i2o.c cmd = scsi_host_find_tag(pHba->host, host 2172 drivers/scsi/dpt_i2o.c cmd = scsi_host_find_tag(pHba->host, host 2184 drivers/scsi/dpt_i2o.c out: if(pHba->host) host 2185 drivers/scsi/dpt_i2o.c spin_unlock_irqrestore(pHba->host->host_lock, flags); host 2314 drivers/scsi/dpt_i2o.c struct Scsi_Host *host; host 2316 drivers/scsi/dpt_i2o.c host = scsi_host_alloc(sht, sizeof(adpt_hba*)); host 2317 drivers/scsi/dpt_i2o.c if (host == NULL) { host 2321 drivers/scsi/dpt_i2o.c host->hostdata[0] = (unsigned long)pHba; host 2322 drivers/scsi/dpt_i2o.c pHba->host = host; host 2324 drivers/scsi/dpt_i2o.c host->irq = pHba->pDev->irq; host 2328 drivers/scsi/dpt_i2o.c host->io_port = 0; host 2329 drivers/scsi/dpt_i2o.c host->n_io_port = 0; host 2331 drivers/scsi/dpt_i2o.c host->max_id = 16; host 2332 drivers/scsi/dpt_i2o.c host->max_lun = 256; host 2333 drivers/scsi/dpt_i2o.c host->max_channel = pHba->top_scsi_channel + 1; host 2334 drivers/scsi/dpt_i2o.c host->cmd_per_lun = 1; host 2335 drivers/scsi/dpt_i2o.c host->unique_id = (u32)sys_tbl_pa + pHba->unit; host 2336 drivers/scsi/dpt_i2o.c host->sg_tablesize = pHba->sg_tablesize; host 2337 drivers/scsi/dpt_i2o.c host->can_queue = pHba->post_fifo_size; host 2338 drivers/scsi/dpt_i2o.c host->use_cmd_list = 1; host 2360 drivers/scsi/dpt_i2o.c pHba = (adpt_hba*) cmd->device->host->hostdata[0]; host 2471 drivers/scsi/dpt_i2o.c if(pHba->host) host 2472 drivers/scsi/dpt_i2o.c spin_lock_irqsave(pHba->host->host_lock, flags); host 2478 drivers/scsi/dpt_i2o.c out: if(pHba->host) host 2479 drivers/scsi/dpt_i2o.c spin_unlock_irqrestore(pHba->host->host_lock, flags); host 2655 drivers/scsi/dpt_i2o.c shost_for_each_device(d, pHba->host) { host 3548 drivers/scsi/dpt_i2o.c error = scsi_add_host(pHba->host, &pHba->pDev->dev); host 3551 drivers/scsi/dpt_i2o.c scsi_scan_host(pHba->host); host 3557 drivers/scsi/dpt_i2o.c scsi_remove_host(pHba->host); host 205 drivers/scsi/dpti.h struct Scsi_Host *host; host 905 drivers/scsi/esas2r/esas2r.h struct Scsi_Host *host; host 972 drivers/scsi/esas2r/esas2r.h int esas2r_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd); host 984 drivers/scsi/esas2r/esas2r.h int esas2r_init_adapter(struct Scsi_Host *host, struct pci_dev *pcid, host 261 drivers/scsi/esas2r/esas2r_init.c int esas2r_init_adapter(struct Scsi_Host *host, struct pci_dev *pcid, host 285 drivers/scsi/esas2r/esas2r_init.c a = (struct esas2r_adapter *)host->hostdata; host 288 drivers/scsi/esas2r/esas2r_init.c a->host = host; host 458 drivers/scsi/esas2r/esas2r_init.c sysfs_remove_bin_file(&a->host->shost_dev.kobj, &bin_attr_fw); host 463 drivers/scsi/esas2r/esas2r_init.c sysfs_remove_bin_file(&a->host->shost_dev.kobj, &bin_attr_fs); host 468 drivers/scsi/esas2r/esas2r_init.c sysfs_remove_bin_file(&a->host->shost_dev.kobj, &bin_attr_vda); host 473 drivers/scsi/esas2r/esas2r_init.c sysfs_remove_bin_file(&a->host->shost_dev.kobj, &bin_attr_hw); host 478 drivers/scsi/esas2r/esas2r_init.c sysfs_remove_bin_file(&a->host->shost_dev.kobj, host 484 drivers/scsi/esas2r/esas2r_init.c sysfs_remove_bin_file(&a->host->shost_dev.kobj, host 629 drivers/scsi/esas2r/esas2r_init.c &(a->host->shost_gendev), host 632 drivers/scsi/esas2r/esas2r_init.c scsi_remove_host(a->host); host 635 drivers/scsi/esas2r/esas2r_init.c &(a->host->shost_gendev), host 638 drivers/scsi/esas2r/esas2r_init.c scsi_host_put(a->host); host 645 drivers/scsi/esas2r/esas2r_init.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 647 drivers/scsi/esas2r/esas2r_init.c struct esas2r_adapter *a = (struct esas2r_adapter *)host->hostdata; host 670 drivers/scsi/esas2r/esas2r_init.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 671 drivers/scsi/esas2r/esas2r_init.c struct esas2r_adapter *a = (struct esas2r_adapter *)host->hostdata; host 644 drivers/scsi/esas2r/esas2r_int.c &(a->host->shost_gendev), host 647 drivers/scsi/esas2r/esas2r_int.c scsi_report_bus_reset(a->host, 0); host 1433 drivers/scsi/esas2r/esas2r_ioctl.c ioctl->data.chaninfo.host_no = a->host->host_no; host 1478 drivers/scsi/esas2r/esas2r_ioctl.c ioctl->data.modinfo.scsi_host = a->host; host 1479 drivers/scsi/esas2r/esas2r_ioctl.c ioctl->data.modinfo.host_no = a->host->host_no; host 1530 drivers/scsi/esas2r/esas2r_ioctl.c return esas2r_ioctl_handler(sd->host->hostdata, cmd, arg); host 63 drivers/scsi/esas2r/esas2r_main.c struct Scsi_Host *host = class_to_shost(dev); host 65 drivers/scsi/esas2r/esas2r_main.c return (struct esas2r_adapter *)host->hostdata; host 356 drivers/scsi/esas2r/esas2r_main.c struct Scsi_Host *host = NULL; host 390 drivers/scsi/esas2r/esas2r_main.c host = scsi_host_alloc(&driver_template, host_alloc_size); host 391 drivers/scsi/esas2r/esas2r_main.c if (host == NULL) { host 396 drivers/scsi/esas2r/esas2r_main.c memset(host->hostdata, 0, host_alloc_size); host 398 drivers/scsi/esas2r/esas2r_main.c a = (struct esas2r_adapter *)host->hostdata; host 400 drivers/scsi/esas2r/esas2r_main.c esas2r_log(ESAS2R_LOG_INFO, "scsi_host_alloc() OK host: %p", host); host 404 drivers/scsi/esas2r/esas2r_main.c host->max_id = ESAS2R_MAX_ID + 1; host 405 drivers/scsi/esas2r/esas2r_main.c host->max_lun = 255; host 409 drivers/scsi/esas2r/esas2r_main.c host->max_cmd_len = 16; host 411 drivers/scsi/esas2r/esas2r_main.c host->can_queue = can_queue; host 412 drivers/scsi/esas2r/esas2r_main.c host->cmd_per_lun = cmd_per_lun; host 413 drivers/scsi/esas2r/esas2r_main.c host->this_id = host->max_id + 1; host 414 drivers/scsi/esas2r/esas2r_main.c host->max_channel = 0; host 415 drivers/scsi/esas2r/esas2r_main.c host->unique_id = found_adapters; host 416 drivers/scsi/esas2r/esas2r_main.c host->sg_tablesize = sg_tablesize; host 417 drivers/scsi/esas2r/esas2r_main.c host->max_sectors = esas2r_max_sectors; host 425 drivers/scsi/esas2r/esas2r_main.c if (!esas2r_init_adapter(host, pcid, found_adapters)) { host 431 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_INFO, &(host->shost_gendev), host 434 drivers/scsi/esas2r/esas2r_main.c scsi_host_put(host); host 441 drivers/scsi/esas2r/esas2r_main.c host->hostdata); host 443 drivers/scsi/esas2r/esas2r_main.c pci_set_drvdata(pcid, host); host 447 drivers/scsi/esas2r/esas2r_main.c err = scsi_add_host(host, &pcid->dev); host 451 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_CRIT, &(host->shost_gendev), host 454 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_INFO, &(host->shost_gendev), host 457 drivers/scsi/esas2r/esas2r_main.c scsi_host_put(host); host 459 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_INFO, &(host->shost_gendev), host 471 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_INFO, &(host->shost_gendev), host 474 drivers/scsi/esas2r/esas2r_main.c scsi_scan_host(host); host 477 drivers/scsi/esas2r/esas2r_main.c if (sysfs_create_bin_file(&host->shost_dev.kobj, &bin_attr_fw)) host 478 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_WARN, &(host->shost_gendev), host 483 drivers/scsi/esas2r/esas2r_main.c if (sysfs_create_bin_file(&host->shost_dev.kobj, &bin_attr_fs)) host 484 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_WARN, &(host->shost_gendev), host 489 drivers/scsi/esas2r/esas2r_main.c if (sysfs_create_bin_file(&host->shost_dev.kobj, &bin_attr_vda)) host 490 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_WARN, &(host->shost_gendev), host 495 drivers/scsi/esas2r/esas2r_main.c if (sysfs_create_bin_file(&host->shost_dev.kobj, &bin_attr_hw)) host 496 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_WARN, &(host->shost_gendev), host 501 drivers/scsi/esas2r/esas2r_main.c if (sysfs_create_bin_file(&host->shost_dev.kobj, &bin_attr_live_nvram)) host 502 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_WARN, &(host->shost_gendev), host 507 drivers/scsi/esas2r/esas2r_main.c if (sysfs_create_bin_file(&host->shost_dev.kobj, host 509 drivers/scsi/esas2r/esas2r_main.c esas2r_log_dev(ESAS2R_LOG_WARN, &(host->shost_gendev), host 521 drivers/scsi/esas2r/esas2r_main.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 522 drivers/scsi/esas2r/esas2r_main.c struct esas2r_adapter *a = (struct esas2r_adapter *)host->hostdata; host 527 drivers/scsi/esas2r/esas2r_main.c host); host 812 drivers/scsi/esas2r/esas2r_main.c int esas2r_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) host 815 drivers/scsi/esas2r/esas2r_main.c (struct esas2r_adapter *)cmd->device->host->hostdata; host 926 drivers/scsi/esas2r/esas2r_main.c &(a->host->shost_gendev), host 976 drivers/scsi/esas2r/esas2r_main.c (struct esas2r_adapter *)cmd->device->host->hostdata; host 1063 drivers/scsi/esas2r/esas2r_main.c (struct esas2r_adapter *)cmd->device->host->hostdata; host 1105 drivers/scsi/esas2r/esas2r_main.c (struct esas2r_adapter *)cmd->device->host->hostdata; host 1634 drivers/scsi/esas2r/esas2r_main.c scsi_dev = scsi_device_lookup(a->host, 0, target_id, 0); host 1647 drivers/scsi/esas2r/esas2r_main.c &(a->host-> host 1652 drivers/scsi/esas2r/esas2r_main.c ret = scsi_add_device(a->host, 0, target_id, 0); host 1656 drivers/scsi/esas2r/esas2r_main.c &(a->host-> host 1668 drivers/scsi/esas2r/esas2r_main.c scsi_dev = scsi_device_lookup(a->host, 0, target_id, 0); host 1692 drivers/scsi/esas2r/esas2r_main.c &(a->host->shost_gendev), host 58 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 63 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 68 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 73 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 78 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 83 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 88 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 93 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 98 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 103 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 108 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 113 drivers/scsi/esp_scsi.c shost_printk(KERN_DEBUG, esp->host, f, ## a); \ host 185 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, "Dumping command log\n"); host 189 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 209 drivers/scsi/esp_scsi.c shost_printk(KERN_ALERT, esp->host, host 441 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 443 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 929 drivers/scsi/esp_scsi.c esp->host->unique_id, tgt, lun); host 961 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(dev->host); host 994 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1022 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1028 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, "DMA error\n"); host 1058 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1070 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1082 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1088 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1112 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, "Reconnect IRQ2 timeout\n"); host 1125 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1133 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1201 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1315 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 1490 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, "Unexpected MESSAGE REJECT\n"); host 1611 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 1629 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 1731 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 1766 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1768 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 1790 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 1807 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 1844 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 1887 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 2001 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 2028 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 2158 drivers/scsi/esp_scsi.c shost_printk(KERN_INFO, esp->host, host 2185 drivers/scsi/esp_scsi.c spin_lock_irqsave(esp->host->host_lock, flags); host 2205 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2391 drivers/scsi/esp_scsi.c esp->host->transportt = esp_transport_template; host 2392 drivers/scsi/esp_scsi.c esp->host->max_lun = ESP_MAX_LUN; host 2393 drivers/scsi/esp_scsi.c esp->host->cmd_per_lun = 2; host 2394 drivers/scsi/esp_scsi.c esp->host->unique_id = instance; host 2405 drivers/scsi/esp_scsi.c esp->host->unique_id, esp->regs, esp->dma_regs, host 2406 drivers/scsi/esp_scsi.c esp->host->irq); host 2409 drivers/scsi/esp_scsi.c esp->host->unique_id, esp_chip_names[esp->rev], host 2415 drivers/scsi/esp_scsi.c err = scsi_add_host(esp->host, esp->dev); host 2421 drivers/scsi/esp_scsi.c scsi_scan_host(esp->host); host 2429 drivers/scsi/esp_scsi.c scsi_remove_host(esp->host); host 2453 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(dev->host); host 2475 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(dev->host); host 2499 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(cmd->device->host); host 2507 drivers/scsi/esp_scsi.c spin_lock_irqsave(esp->host->host_lock, flags); host 2508 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, "Aborting command [%p:%02x]\n", host 2512 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, host 2516 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, "Queued command [%p:%02x]\n", host 2520 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, " Active command [%p:%02x]\n", host 2524 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2526 drivers/scsi/esp_scsi.c spin_lock_irqsave(esp->host->host_lock, flags); host 2589 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2592 drivers/scsi/esp_scsi.c spin_lock_irqsave(esp->host->host_lock, flags); host 2594 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2602 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2610 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2616 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(cmd->device->host); host 2622 drivers/scsi/esp_scsi.c spin_lock_irqsave(esp->host->host_lock, flags); host 2634 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2639 drivers/scsi/esp_scsi.c spin_lock_irqsave(esp->host->host_lock, flags); host 2641 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2652 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(cmd->device->host); host 2655 drivers/scsi/esp_scsi.c spin_lock_irqsave(esp->host->host_lock, flags); host 2658 drivers/scsi/esp_scsi.c spin_unlock_irqrestore(esp->host->host_lock, flags); host 2665 drivers/scsi/esp_scsi.c static const char *esp_info(struct Scsi_Host *host) host 2691 drivers/scsi/esp_scsi.c static void esp_get_signalling(struct Scsi_Host *host) host 2693 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(host); host 2701 drivers/scsi/esp_scsi.c spi_signalling(host) = type; host 2706 drivers/scsi/esp_scsi.c struct Scsi_Host *host = dev_to_shost(target->dev.parent); host 2707 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(host); host 2719 drivers/scsi/esp_scsi.c struct Scsi_Host *host = dev_to_shost(target->dev.parent); host 2720 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(host); host 2729 drivers/scsi/esp_scsi.c struct Scsi_Host *host = dev_to_shost(target->dev.parent); host 2730 drivers/scsi/esp_scsi.c struct esp *esp = shost_priv(host); host 2806 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, "FIFO is empty. sreg [%02x]\n", host 2823 drivers/scsi/esp_scsi.c shost_printk(KERN_ERR, esp->host, "IRQ timeout. sreg [%02x]\n", host 422 drivers/scsi/esp_scsi.h struct Scsi_Host *host; host 494 drivers/scsi/fcoe/fcoe.c scsi_host_put(fip->lp->host); host 770 drivers/scsi/fcoe/fcoe.c lport->host->max_lun = FCOE_MAX_LUN; host 771 drivers/scsi/fcoe/fcoe.c lport->host->max_id = FCOE_MAX_FCP_TARGET; host 772 drivers/scsi/fcoe/fcoe.c lport->host->max_channel = 0; host 773 drivers/scsi/fcoe/fcoe.c lport->host->max_cmd_len = FCOE_MAX_CMD_LEN; host 776 drivers/scsi/fcoe/fcoe.c lport->host->transportt = fcoe_vport_scsi_transport; host 778 drivers/scsi/fcoe/fcoe.c lport->host->transportt = fcoe_nport_scsi_transport; host 781 drivers/scsi/fcoe/fcoe.c rc = scsi_add_host(lport->host, dev); host 789 drivers/scsi/fcoe/fcoe.c fc_host_max_npiv_vports(lport->host) = USHRT_MAX; host 791 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_symbolic_name(lport->host), FC_SYMBOLIC_NAME_SIZE, host 836 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_serial_number(lport->host), host 840 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_manufacturer(lport->host), host 844 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_model(lport->host), host 848 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_model_description(lport->host), host 852 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_hardware_version(lport->host), host 856 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_driver_version(lport->host), host 860 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_optionrom_version(lport->host), host 864 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_firmware_version(lport->host), host 1033 drivers/scsi/fcoe/fcoe.c fc_remove_host(lport->host); host 1034 drivers/scsi/fcoe/fcoe.c scsi_remove_host(lport->host); host 1050 drivers/scsi/fcoe/fcoe.c scsi_host_put(lport->host); host 1236 drivers/scsi/fcoe/fcoe.c scsi_host_put(lport->host); host 2736 drivers/scsi/fcoe/fcoe.c shost = lport->host; host 2790 drivers/scsi/fcoe/fcoe.c snprintf(fc_host_symbolic_name(lport->host), FC_SYMBOLIC_NAME_SIZE, host 2797 drivers/scsi/fcoe/fcoe.c len = strnlen(fc_host_symbolic_name(lport->host), 255); host 338 drivers/scsi/fcoe/fcoe_ctlr.c fip->lp->host->host_no, fip->dest_addr); host 344 drivers/scsi/fcoe/fcoe_ctlr.c fip->lp->host->host_no, sel->fcf_mac); host 839 drivers/scsi/fcoe/fcoe_ctlr.c fip->lp->host->host_no, fcf->fabric_name, host 26 drivers/scsi/fcoe/libfcoe.h (fip)->lp->host->host_no, ##args);) host 216 drivers/scsi/fdomain.c struct fdomain *fd = shost_priv(cmd->device->host); host 236 drivers/scsi/fdomain.c struct fdomain *fd = shost_priv(cmd->device->host); host 283 drivers/scsi/fdomain.c outb(BIT(cmd->device->host->this_id) | BIT(scmd_id(cmd)), host 292 drivers/scsi/fdomain.c if (fdomain_select(cmd->device->host, scmd_id(cmd))) { host 399 drivers/scsi/fdomain.c struct fdomain *fd = shost_priv(cmd->device->host); host 419 drivers/scsi/fdomain.c outb(BIT(cmd->device->host->this_id), fd->base + REG_SCSI_DATA_NOACK); host 431 drivers/scsi/fdomain.c struct Scsi_Host *sh = cmd->device->host; host 452 drivers/scsi/fdomain.c struct Scsi_Host *sh = cmd->device->host; host 146 drivers/scsi/fnic/fnic.h #define FNIC_MAIN_DBG(kern_level, host, fmt, args...) \ host 148 drivers/scsi/fnic/fnic.h shost_printk(kern_level, host, fmt, ##args);) host 150 drivers/scsi/fnic/fnic.h #define FNIC_FCS_DBG(kern_level, host, fmt, args...) \ host 152 drivers/scsi/fnic/fnic.h shost_printk(kern_level, host, fmt, ##args);) host 154 drivers/scsi/fnic/fnic.h #define FNIC_SCSI_DBG(kern_level, host, fmt, args...) \ host 156 drivers/scsi/fnic/fnic.h shost_printk(kern_level, host, fmt, ##args);) host 158 drivers/scsi/fnic/fnic.h #define FNIC_ISR_DBG(kern_level, host, fmt, args...) \ host 160 drivers/scsi/fnic/fnic.h shost_printk(kern_level, host, fmt, ##args);) host 162 drivers/scsi/fnic/fnic.h #define FNIC_MAIN_NOTE(kern_level, host, fmt, args...) \ host 163 drivers/scsi/fnic/fnic.h shost_printk(kern_level, host, fmt, ##args) host 699 drivers/scsi/fnic/fnic_debugfs.c snprintf(name, sizeof(name), "host%d", fnic->lport->host->host_no); host 76 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_INFO, fnic->lport->host, host 82 drivers/scsi/fnic/fnic_fcs.c fc_host_speed(fnic->lport->host) = FC_PORTSPEED_10GBIT; host 86 drivers/scsi/fnic/fnic_fcs.c fc_host_speed(fnic->lport->host) = FC_PORTSPEED_20GBIT; host 90 drivers/scsi/fnic/fnic_fcs.c fc_host_speed(fnic->lport->host) = FC_PORTSPEED_25GBIT; host 95 drivers/scsi/fnic/fnic_fcs.c fc_host_speed(fnic->lport->host) = FC_PORTSPEED_40GBIT; host 99 drivers/scsi/fnic/fnic_fcs.c fc_host_speed(fnic->lport->host) = FC_PORTSPEED_100GBIT; host 103 drivers/scsi/fnic/fnic_fcs.c fc_host_speed(fnic->lport->host) = FC_PORTSPEED_UNKNOWN; host 112 drivers/scsi/fnic/fnic_fcs.c fnic_fc_trace_set_data(fnic->lport->host->host_no, host 121 drivers/scsi/fnic/fnic_fcs.c fnic->lport->host->host_no, host 126 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 132 drivers/scsi/fnic/fnic_fcs.c fnic->lport->host->host_no, host 141 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 148 drivers/scsi/fnic/fnic_fcs.c fnic->lport->host->host_no, FNIC_FC_LE, host 159 drivers/scsi/fnic/fnic_fcs.c fnic->lport->host->host_no, host 165 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, "link up\n"); host 166 drivers/scsi/fnic/fnic_fcs.c fnic_fc_trace_set_data(fnic->lport->host->host_no, FNIC_FC_LE, host 173 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, "link down\n"); host 175 drivers/scsi/fnic/fnic_fcs.c fnic->lport->host->host_no, FNIC_FC_LE, host 179 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 282 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 287 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 363 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_INFO, lport->host, host 367 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_INFO, lport->host, host 387 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_INFO, fnic->lport->host, host 441 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_INFO, fnic->lport->host, host 446 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_INFO, fnic->lport->host, host 459 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_INFO, fnic->lport->host, host 481 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_INFO, fnic->lport->host, host 649 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_INFO, fnic->lport->host, host 691 drivers/scsi/fnic/fnic_fcs.c if ((fnic_fc_trace_set_data(fnic->lport->host->host_no, host 739 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, "update_mac %pM\n", new); host 781 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, lport->host, "set port_id %x fp %p\n", host 808 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 891 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 900 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_ERR, fnic->lport->host, host 907 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 923 drivers/scsi/fnic/fnic_fcs.c if ((fnic_fc_trace_set_data(fnic->lport->host->host_no, FNIC_FC_RECV, host 962 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_ERR, fnic->lport->host, host 988 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 1044 drivers/scsi/fnic/fnic_fcs.c if ((fnic_fc_trace_set_data(fnic->lport->host->host_no, host 1049 drivers/scsi/fnic/fnic_fcs.c if ((fnic_fc_trace_set_data(fnic->lport->host->host_no, host 1138 drivers/scsi/fnic/fnic_fcs.c if ((fnic_fc_trace_set_data(fnic->lport->host->host_no, FNIC_FC_SEND, host 1354 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 1361 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_DEBUG, fnic->lport->host, host 1366 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 1374 drivers/scsi/fnic/fnic_fcs.c FNIC_FCS_DBG(KERN_DEBUG, fnic->lport->host, host 1384 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_INFO, fnic->lport->host, host 1394 drivers/scsi/fnic/fnic_fcs.c shost_printk(KERN_INFO, fnic->lport->host, host 218 drivers/scsi/fnic/fnic_isr.c shost_printk(KERN_ERR, fnic->lport->host, host 266 drivers/scsi/fnic/fnic_isr.c FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host, host 292 drivers/scsi/fnic/fnic_isr.c FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host, host 318 drivers/scsi/fnic/fnic_isr.c FNIC_ISR_DBG(KERN_DEBUG, fnic->lport->host, host 205 drivers/scsi/fnic/fnic_main.c static struct fc_host_statistics *fnic_get_stats(struct Scsi_Host *host) host 208 drivers/scsi/fnic/fnic_main.c struct fc_lport *lp = shost_priv(host); host 223 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_DBG(KERN_DEBUG, fnic->lport->host, host 248 drivers/scsi/fnic/fnic_main.c void fnic_dump_fchost_stats(struct Scsi_Host *host, host 251 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 254 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 257 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 260 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 263 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 266 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 269 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 272 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 275 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 278 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 281 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 284 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 287 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 290 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 293 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 296 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 299 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 302 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 305 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 308 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_NOTE(KERN_NOTICE, host, host 318 drivers/scsi/fnic/fnic_main.c static void fnic_reset_host_stats(struct Scsi_Host *host) host 321 drivers/scsi/fnic/fnic_main.c struct fc_lport *lp = shost_priv(host); host 327 drivers/scsi/fnic/fnic_main.c stats = fnic_get_stats(host); host 328 drivers/scsi/fnic/fnic_main.c fnic_dump_fchost_stats(host, stats); host 335 drivers/scsi/fnic/fnic_main.c FNIC_MAIN_DBG(KERN_DEBUG, fnic->lport->host, host 354 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 362 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 370 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 406 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 561 drivers/scsi/fnic/fnic_main.c struct Scsi_Host *host; host 579 drivers/scsi/fnic/fnic_main.c host = lp->host; host 585 drivers/scsi/fnic/fnic_main.c host->host_no); host 587 drivers/scsi/fnic/fnic_main.c host->transportt = fnic_fc_transport; host 598 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 605 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 620 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 629 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 640 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 649 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 658 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 667 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 674 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 681 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 691 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 699 drivers/scsi/fnic/fnic_main.c host->can_queue = min_t(u32, FNIC_MAX_IO_REQ, host 703 drivers/scsi/fnic/fnic_main.c fnic->fnic_max_tag_id = host->can_queue; host 705 drivers/scsi/fnic/fnic_main.c host->max_lun = fnic->config.luns_per_tgt; host 706 drivers/scsi/fnic/fnic_main.c host->max_id = FNIC_MAX_FCP_TARGET; host 707 drivers/scsi/fnic/fnic_main.c host->max_cmd_len = FCOE_MAX_CMD_LEN; host 713 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 721 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 767 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_INFO, fnic->lport->host, host 783 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_INFO, fnic->lport->host, host 799 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 813 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 824 drivers/scsi/fnic/fnic_main.c err = scsi_add_host(lp->host, &pdev->dev); host 826 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 867 drivers/scsi/fnic/fnic_main.c fc_host_maxframe_size(lp->host) = lp->mfs; host 868 drivers/scsi/fnic/fnic_main.c fc_host_dev_loss_tmo(lp->host) = fnic->config.port_down_timeout / 1000; host 870 drivers/scsi/fnic/fnic_main.c sprintf(fc_host_symbolic_name(lp->host), host 892 drivers/scsi/fnic/fnic_main.c shost_printk(KERN_ERR, fnic->lport->host, host 909 drivers/scsi/fnic/fnic_main.c fc_remove_host(lp->host); host 910 drivers/scsi/fnic/fnic_main.c scsi_remove_host(lp->host); host 938 drivers/scsi/fnic/fnic_main.c scsi_host_put(lp->host); host 1006 drivers/scsi/fnic/fnic_main.c fc_remove_host(fnic->lport->host); host 1007 drivers/scsi/fnic/fnic_main.c scsi_remove_host(fnic->lport->host); host 1018 drivers/scsi/fnic/fnic_main.c scsi_host_put(lp->host); host 45 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_ERR, fnic->lport->host, \ host 146 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 152 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 155 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 158 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 161 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 164 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 167 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 170 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 173 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, host 243 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, "vNIC interrupt mode: %s\n", host 249 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_INFO, fnic->lport->host, "vNIC resources avail: " host 325 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_ERR, fnic->lport->host, host 429 drivers/scsi/fnic/fnic_res.c shost_printk(KERN_ERR, fnic->lport->host, host 187 drivers/scsi/fnic/fnic_scsi.c spin_lock_irqsave(fnic->lport->host->host_lock, host_lock_flags); host 194 drivers/scsi/fnic/fnic_scsi.c spin_unlock_irqrestore(fnic->lport->host->host_lock, host_lock_flags); host 242 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 246 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 290 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 296 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 375 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host, host 424 drivers/scsi/fnic/fnic_scsi.c struct fc_lport *lp = shost_priv(sc->device->host); host 447 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 456 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 466 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 477 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 496 drivers/scsi/fnic/fnic_scsi.c spin_unlock(lp->host->host_lock); host 512 drivers/scsi/fnic/fnic_scsi.c FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no, host 572 drivers/scsi/fnic/fnic_scsi.c FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no, host 585 drivers/scsi/fnic/fnic_scsi.c spin_lock(lp->host->host_lock); host 604 drivers/scsi/fnic/fnic_scsi.c FNIC_TRACE(fnic_queuecommand, sc->device->host->host_no, host 615 drivers/scsi/fnic/fnic_scsi.c spin_lock(lp->host->host_lock); host 652 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 658 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host, host 674 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host, host 727 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 732 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host, host 739 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 811 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host->host_no, 0, 0, ox_id_tag[2], ox_id_tag[3], host 843 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 849 drivers/scsi/fnic/fnic_scsi.c sc = scsi_host_find_tag(fnic->lport->host, id); host 853 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 858 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host->host_no, id, host 876 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 903 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host, host 992 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, "hdr status = %s\n", host 1007 drivers/scsi/fnic/fnic_scsi.c sc->device->host->host_no, id, sc, host 1080 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 1086 drivers/scsi/fnic/fnic_scsi.c sc = scsi_host_find_tag(fnic->lport->host, id & FNIC_TAG_MASK); host 1090 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 1103 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 1114 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1136 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host, host 1171 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1185 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1196 drivers/scsi/fnic/fnic_scsi.c sc->device->host->host_no, id, host 1223 drivers/scsi/fnic/fnic_scsi.c sc->device->host->host_no, id, sc, host 1227 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1238 drivers/scsi/fnic/fnic_scsi.c sc->device->host->host_no, id, sc, host 1242 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1251 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1260 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 1313 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1377 drivers/scsi/fnic/fnic_scsi.c sc = scsi_host_find_tag(fnic->lport->host, i); host 1420 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1433 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 1438 drivers/scsi/fnic/fnic_scsi.c sc->device->host->host_no, i, sc, host 1469 drivers/scsi/fnic/fnic_scsi.c sc = scsi_host_find_tag(fnic->lport->host, id); host 1496 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, "wq_copy_cleanup_handler:" host 1501 drivers/scsi/fnic/fnic_scsi.c sc->device->host->host_no, id, sc, host 1517 drivers/scsi/fnic/fnic_scsi.c struct Scsi_Host *host = fnic->lport->host; host 1521 drivers/scsi/fnic/fnic_scsi.c spin_lock_irqsave(host->host_lock, flags); host 1524 drivers/scsi/fnic/fnic_scsi.c spin_unlock_irqrestore(host->host_lock, flags); host 1528 drivers/scsi/fnic/fnic_scsi.c spin_unlock_irqrestore(host->host_lock, flags); host 1538 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1574 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host, host 1585 drivers/scsi/fnic/fnic_scsi.c sc = scsi_host_find_tag(fnic->lport->host, tag); host 1600 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1616 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 1623 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 1635 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1642 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1715 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host, "fnic_terminate_rport_io called" host 1730 drivers/scsi/fnic/fnic_scsi.c sc = scsi_host_find_tag(fnic->lport->host, tag); host 1751 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1766 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 1772 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host, host 1784 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 1791 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host, host 1857 drivers/scsi/fnic/fnic_scsi.c lp = shost_priv(sc->device->host); host 1867 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host, host 1921 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host, host 2011 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2051 drivers/scsi/fnic/fnic_scsi.c FNIC_TRACE(fnic_abort_cmd, sc->device->host->host_no, host 2059 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2071 drivers/scsi/fnic/fnic_scsi.c struct Scsi_Host *host = fnic->lport->host; host 2077 drivers/scsi/fnic/fnic_scsi.c spin_lock_irqsave(host->host_lock, intr_flags); host 2080 drivers/scsi/fnic/fnic_scsi.c spin_unlock_irqrestore(host->host_lock, intr_flags); host 2084 drivers/scsi/fnic/fnic_scsi.c spin_unlock_irqrestore(host->host_lock, intr_flags); host 2092 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2145 drivers/scsi/fnic/fnic_scsi.c sc = scsi_host_find_tag(fnic->lport->host, tag); host 2166 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2176 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host, host 2184 drivers/scsi/fnic/fnic_scsi.c shost_printk(KERN_ERR, fnic->lport->host, host 2202 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host, host 2349 drivers/scsi/fnic/fnic_scsi.c lp = shost_priv(sc->device->host); host 2358 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2409 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, "TAG %x\n", tag); host 2437 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2451 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2479 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2506 drivers/scsi/fnic/fnic_scsi.c fnic->lport->host, host 2522 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2548 drivers/scsi/fnic/fnic_scsi.c FNIC_TRACE(fnic_device_reset, sc->device->host->host_no, host 2560 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2583 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2594 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2620 drivers/scsi/fnic/fnic_scsi.c struct Scsi_Host *shost = sc->device->host; host 2630 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2704 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_DEBUG, fnic->lport->host, host 2798 drivers/scsi/fnic/fnic_scsi.c sc = scsi_host_find_tag(fnic->lport->host, tag); host 2820 drivers/scsi/fnic/fnic_scsi.c FNIC_SCSI_DBG(KERN_INFO, fnic->lport->host, host 335 drivers/scsi/gdth.c gdth_ha_str *ha = shost_priv(sdev->host); host 3276 drivers/scsi/gdth.c gdth_ha_str *ha = shost_priv(scp->device->host); host 3309 drivers/scsi/gdth.c gdth_ha_str *ha = shost_priv(scp->device->host); host 3362 drivers/scsi/gdth.c gdth_ha_str *ha = shost_priv(sdev->host); host 3391 drivers/scsi/gdth.c gdth_ha_str *ha = shost_priv(scp->device->host); host 9 drivers/scsi/gdth_proc.c int gdth_set_info(struct Scsi_Host *host, char *buffer, int length) host 11 drivers/scsi/gdth_proc.c gdth_ha_str *ha = shost_priv(host); host 20 drivers/scsi/gdth_proc.c ret_val = gdth_set_asc_info(host, buffer, length, ha); host 27 drivers/scsi/gdth_proc.c static int gdth_set_asc_info(struct Scsi_Host *host, char *buffer, host 74 drivers/scsi/gdth_proc.c gdth_execute(host, &gdtcmd, cmnd, 30, NULL); host 137 drivers/scsi/gdth_proc.c gdth_execute(host, &gdtcmd, cmnd, 30, NULL); host 151 drivers/scsi/gdth_proc.c int gdth_show_info(struct seq_file *m, struct Scsi_Host *host) host 153 drivers/scsi/gdth_proc.c gdth_ha_str *ha = shost_priv(host); host 260 drivers/scsi/gdth_proc.c if (gdth_execute(host, gdtcmd, cmnd, 30, NULL) != S_OK) host 277 drivers/scsi/gdth_proc.c if (gdth_execute(host, gdtcmd, cmnd, 30, NULL) == S_OK) { host 324 drivers/scsi/gdth_proc.c if (gdth_execute(host, gdtcmd, cmnd, 30, NULL) == S_OK) { host 356 drivers/scsi/gdth_proc.c if (gdth_execute(host, gdtcmd, cmnd, 30, NULL) != S_OK) host 433 drivers/scsi/gdth_proc.c if (gdth_execute(host, gdtcmd, cmnd, 30, NULL) == S_OK) { host 492 drivers/scsi/gdth_proc.c if (gdth_execute(host, gdtcmd, cmnd, 30, NULL) == S_OK) { host 12 drivers/scsi/gdth_proc.h static int gdth_set_asc_info(struct Scsi_Host *host, char *buffer, host 53 drivers/scsi/gvp11.c struct Scsi_Host *instance = cmd->device->host; host 333 drivers/scsi/hpsa.c unsigned long *priv = shost_priv(sdev->host); host 2145 drivers/scsi/hpsa.c sd->queue_depth : sdev->host->can_queue; host 2148 drivers/scsi/hpsa.c queue_depth = sdev->host->can_queue; host 388 drivers/scsi/hptiop.c spin_lock_irq(hba->host->host_lock); host 390 drivers/scsi/hptiop.c spin_unlock_irq(hba->host->host_lock); host 579 drivers/scsi/hptiop.c hba->host->host_no); host 595 drivers/scsi/hptiop.c hba->host->host_no); host 605 drivers/scsi/hptiop.c hba->host->host_no); host 840 drivers/scsi/hptiop.c spin_lock_irqsave(hba->host->host_lock, flags); host 842 drivers/scsi/hptiop.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 849 drivers/scsi/hptiop.c struct Scsi_Host *host = scp->device->host; host 850 drivers/scsi/hptiop.c struct hptiop_hba *hba = (struct hptiop_hba *)host->hostdata; host 1000 drivers/scsi/hptiop.c struct Scsi_Host *host = scp->device->host; host 1001 drivers/scsi/hptiop.c struct hptiop_hba *hba = (struct hptiop_hba *)host->hostdata; host 1020 drivers/scsi/hptiop.c host->host_no, scp->device->channel, host 1069 drivers/scsi/hptiop.c static const char *hptiop_info(struct Scsi_Host *host) host 1086 drivers/scsi/hptiop.c printk(KERN_ERR "scsi%d: reset failed\n", hba->host->host_no); host 1093 drivers/scsi/hptiop.c hba->host->host_no); host 1101 drivers/scsi/hptiop.c struct hptiop_hba * hba = (struct hptiop_hba *)scp->device->host->hostdata; host 1104 drivers/scsi/hptiop.c scp->device->host->host_no, -1, -1); host 1112 drivers/scsi/hptiop.c struct hptiop_hba *hba = (struct hptiop_hba *)sdev->host->hostdata; host 1128 drivers/scsi/hptiop.c struct Scsi_Host *host = class_to_shost(dev); host 1129 drivers/scsi/hptiop.c struct hptiop_hba *hba = (struct hptiop_hba *)host->hostdata; host 1279 drivers/scsi/hptiop.c struct Scsi_Host *host = NULL; host 1319 drivers/scsi/hptiop.c host = scsi_host_alloc(&driver_template, sizeof(struct hptiop_hba)); host 1320 drivers/scsi/hptiop.c if (!host) { host 1325 drivers/scsi/hptiop.c hba = (struct hptiop_hba *)host->hostdata; host 1330 drivers/scsi/hptiop.c hba->host = host; host 1340 drivers/scsi/hptiop.c host->max_lun = 128; host 1341 drivers/scsi/hptiop.c host->max_channel = 0; host 1342 drivers/scsi/hptiop.c host->io_port = 0; host 1343 drivers/scsi/hptiop.c host->n_io_port = 0; host 1344 drivers/scsi/hptiop.c host->irq = pcidev->irq; host 1351 drivers/scsi/hptiop.c hba->host->host_no); host 1358 drivers/scsi/hptiop.c hba->host->host_no); host 1365 drivers/scsi/hptiop.c hba->host->host_no); host 1381 drivers/scsi/hptiop.c hba->host->host_no); host 1386 drivers/scsi/hptiop.c hba->host->host_no); host 1395 drivers/scsi/hptiop.c host->max_sectors = le32_to_cpu(iop_config.data_transfer_length) >> 9; host 1396 drivers/scsi/hptiop.c host->max_id = le32_to_cpu(iop_config.max_devices); host 1397 drivers/scsi/hptiop.c host->sg_tablesize = le32_to_cpu(iop_config.max_sg_count); host 1398 drivers/scsi/hptiop.c host->can_queue = le32_to_cpu(iop_config.max_requests); host 1399 drivers/scsi/hptiop.c host->cmd_per_lun = le32_to_cpu(iop_config.max_requests); host 1400 drivers/scsi/hptiop.c host->max_cmd_len = 16; host 1408 drivers/scsi/hptiop.c set_config.iop_id = cpu_to_le32(host->host_no); host 1409 drivers/scsi/hptiop.c set_config.vbus_id = cpu_to_le16(host->host_no); host 1414 drivers/scsi/hptiop.c hba->host->host_no); host 1418 drivers/scsi/hptiop.c pci_set_drvdata(pcidev, host); host 1423 drivers/scsi/hptiop.c hba->host->host_no, pcidev->irq); host 1441 drivers/scsi/hptiop.c hba->host->host_no); host 1465 drivers/scsi/hptiop.c if (scsi_add_host(host, &pcidev->dev)) { host 1467 drivers/scsi/hptiop.c hba->host->host_no); host 1471 drivers/scsi/hptiop.c scsi_scan_host(host); host 1473 drivers/scsi/hptiop.c dprintk("scsi%d: hptiop_probe successfully\n", hba->host->host_no); host 1495 drivers/scsi/hptiop.c scsi_host_put(host); host 1503 drivers/scsi/hptiop.c dprintk("scsi%d: hptiop_probe fail\n", host ? host->host_no : 0); host 1509 drivers/scsi/hptiop.c struct Scsi_Host *host = pci_get_drvdata(pcidev); host 1510 drivers/scsi/hptiop.c struct hptiop_hba *hba = (struct hptiop_hba *)host->hostdata; host 1517 drivers/scsi/hptiop.c hba->host->host_no); host 1552 drivers/scsi/hptiop.c struct Scsi_Host *host = pci_get_drvdata(pcidev); host 1553 drivers/scsi/hptiop.c struct hptiop_hba *hba = (struct hptiop_hba *)host->hostdata; host 1556 drivers/scsi/hptiop.c dprintk("scsi%d: hptiop_remove\n", hba->host->host_no); host 1558 drivers/scsi/hptiop.c scsi_remove_host(host); host 1582 drivers/scsi/hptiop.c scsi_host_put(host); host 300 drivers/scsi/hptiop.h struct Scsi_Host *host; host 530 drivers/scsi/ibmvscsi/ibmvfc.c scsi_block_requests(vhost->host); host 551 drivers/scsi/ibmvscsi/ibmvfc.c scsi_block_requests(vhost->host); host 587 drivers/scsi/ibmvscsi/ibmvfc.c scsi_block_requests(vhost->host); host 709 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 726 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 845 drivers/scsi/ibmvscsi/ibmvfc.c scsi_block_requests(vhost->host); host 861 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 863 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 1182 drivers/scsi/ibmvscsi/ibmvfc.c dev_name(&vhost->host->shost_gendev), IBMVFC_MAX_NAME); host 1497 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(sdev->host); host 1607 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(cmnd->device->host); host 1706 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 1709 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 1735 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 1759 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 1784 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 1794 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 1797 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 1882 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 1886 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 1919 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 1933 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 1935 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 1961 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(sdev->host); host 1971 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 1993 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2020 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 2022 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2097 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 2104 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2111 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 2118 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2144 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(sdev->host); host 2155 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 2167 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2196 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2210 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 2212 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2276 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(sdev->host); host 2286 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 2298 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2324 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2353 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 2355 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2380 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 2382 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 2396 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(sdev->host); host 2429 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(sdev->host); host 2486 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(sdev->host); host 2520 drivers/scsi/ibmvscsi/ibmvfc.c struct ibmvfc_host *vhost = shost_priv(cmd->device->host); host 2523 drivers/scsi/ibmvscsi/ibmvfc.c rc = ibmvfc_issue_fc_host_lip(vhost->host); host 2832 drivers/scsi/ibmvscsi/ibmvfc.c struct Scsi_Host *shost = sdev->host; host 2880 drivers/scsi/ibmvscsi/ibmvfc.c struct Scsi_Host *shost = sdev->host; host 3157 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 3160 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 3180 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 3211 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 3693 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 3698 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 3725 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 3886 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 3894 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 3906 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 3910 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4060 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_fabric_name(vhost->host) = be64_to_cpu(rsp->node_name); host 4061 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_node_name(vhost->host) = be64_to_cpu(rsp->node_name); host 4062 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_port_name(vhost->host) = be64_to_cpu(rsp->port_name); host 4063 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_port_id(vhost->host) = be64_to_cpu(rsp->scsi_id); host 4064 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_port_type(vhost->host) = FC_PORTTYPE_NPIV; host 4065 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_supported_classes(vhost->host) = 0; host 4067 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_supported_classes(vhost->host) |= FC_COS_CLASS1; host 4069 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_supported_classes(vhost->host) |= FC_COS_CLASS2; host 4071 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_supported_classes(vhost->host) |= FC_COS_CLASS3; host 4072 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_maxframe_size(vhost->host) = host 4075 drivers/scsi/ibmvscsi/ibmvfc.c vhost->host->can_queue = be32_to_cpu(rsp->max_cmds) - IBMVFC_NUM_INTERNAL_REQ; host 4076 drivers/scsi/ibmvscsi/ibmvfc.c vhost->host->max_sectors = npiv_max_sectors; host 4247 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4249 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4262 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_post_event(vhost->host, fc_get_event_number(), FCH_EVT_RSCN, 0); host 4265 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_post_event(vhost->host, fc_get_event_number(), FCH_EVT_LINKDOWN, 0); host 4268 drivers/scsi/ibmvscsi/ibmvfc.c fc_host_post_event(vhost->host, fc_get_event_number(), FCH_EVT_LINKUP, 0); host 4283 drivers/scsi/ibmvscsi/ibmvfc.c rport = fc_remote_port_add(vhost->host, 0, &tgt->ids); host 4284 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4290 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4296 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4316 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4332 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4341 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4343 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4354 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4356 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4369 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4400 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4413 drivers/scsi/ibmvscsi/ibmvfc.c scsi_block_requests(vhost->host); host 4415 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4422 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4423 drivers/scsi/ibmvscsi/ibmvfc.c scsi_unblock_requests(vhost->host); host 4433 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4434 drivers/scsi/ibmvscsi/ibmvfc.c scsi_unblock_requests(vhost->host); host 4441 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4443 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4460 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4699 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4712 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4715 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4720 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4724 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4732 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4771 drivers/scsi/ibmvscsi/ibmvfc.c vhost->host = shost; host 4856 drivers/scsi/ibmvscsi/ibmvfc.c ibmvfc_remove_trace_file(&vhost->host->shost_dev.kobj, &ibmvfc_trace_attr); host 4858 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4860 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4865 drivers/scsi/ibmvscsi/ibmvfc.c fc_remove_host(vhost->host); host 4866 drivers/scsi/ibmvscsi/ibmvfc.c scsi_remove_host(vhost->host); host 4868 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4870 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 4877 drivers/scsi/ibmvscsi/ibmvfc.c scsi_host_put(vhost->host); host 4896 drivers/scsi/ibmvscsi/ibmvfc.c spin_lock_irqsave(vhost->host->host_lock, flags); host 4899 drivers/scsi/ibmvscsi/ibmvfc.c spin_unlock_irqrestore(vhost->host->host_lock, flags); host 680 drivers/scsi/ibmvscsi/ibmvfc.h struct Scsi_Host *host; host 785 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 791 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 802 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 804 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 813 drivers/scsi/ibmvscsi/ibmvscsi.c scsi_block_requests(hostdata->host); host 1029 drivers/scsi/ibmvscsi/ibmvscsi.c struct ibmvscsi_host_data *hostdata = shost_priv(cmnd->device->host); host 1196 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1204 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1265 drivers/scsi/ibmvscsi/ibmvscsi.c strlcpy(hostdata->caps.name, dev_name(&hostdata->host->shost_gendev), host 1298 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1301 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1354 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1356 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1384 drivers/scsi/ibmvscsi/ibmvscsi.c hostdata->host->max_sectors = host 1393 drivers/scsi/ibmvscsi/ibmvscsi.c hostdata->host->sg_tablesize = MAX_INDIRECT_BUFS; host 1435 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1438 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1471 drivers/scsi/ibmvscsi/ibmvscsi.c struct ibmvscsi_host_data *hostdata = shost_priv(cmd->device->host); host 1484 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1496 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1502 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1530 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1532 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1535 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1574 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1584 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1598 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1610 drivers/scsi/ibmvscsi/ibmvscsi.c struct ibmvscsi_host_data *hostdata = shost_priv(cmd->device->host); host 1620 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1625 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1652 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1654 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1657 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1694 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 1711 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 1722 drivers/scsi/ibmvscsi/ibmvscsi.c struct ibmvscsi_host_data *hostdata = shost_priv(cmd->device->host); host 1781 drivers/scsi/ibmvscsi/ibmvscsi.c scsi_block_requests(hostdata->host); host 1837 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(evt_struct->hostdata->host->host_lock, flags); host 1840 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(evt_struct->hostdata->host->host_lock, flags); host 1853 drivers/scsi/ibmvscsi/ibmvscsi.c struct Scsi_Host *shost = sdev->host; host 2110 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 2116 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 2118 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 2125 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 2127 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 2133 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 2143 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 2145 drivers/scsi/ibmvscsi/ibmvscsi.c scsi_unblock_requests(hostdata->host); host 2170 drivers/scsi/ibmvscsi/ibmvscsi.c spin_lock_irqsave(hostdata->host->host_lock, flags); host 2172 drivers/scsi/ibmvscsi/ibmvscsi.c spin_unlock_irqrestore(hostdata->host->host_lock, flags); host 2205 drivers/scsi/ibmvscsi/ibmvscsi.c struct Scsi_Host *host; host 2214 drivers/scsi/ibmvscsi/ibmvscsi.c host = scsi_host_alloc(&driver_template, sizeof(*hostdata)); host 2215 drivers/scsi/ibmvscsi/ibmvscsi.c if (!host) { host 2220 drivers/scsi/ibmvscsi/ibmvscsi.c host->transportt = ibmvscsi_transport_template; host 2221 drivers/scsi/ibmvscsi/ibmvscsi.c hostdata = shost_priv(host); host 2225 drivers/scsi/ibmvscsi/ibmvscsi.c hostdata->host = host; host 2228 drivers/scsi/ibmvscsi/ibmvscsi.c hostdata->host->max_sectors = IBMVSCSI_MAX_SECTORS_DEFAULT; host 2236 drivers/scsi/ibmvscsi/ibmvscsi.c "ibmvscsi", host->host_no); host 2254 drivers/scsi/ibmvscsi/ibmvscsi.c host->max_lun = IBMVSCSI_MAX_LUN; host 2255 drivers/scsi/ibmvscsi/ibmvscsi.c host->max_id = max_id; host 2256 drivers/scsi/ibmvscsi/ibmvscsi.c host->max_channel = max_channel; host 2257 drivers/scsi/ibmvscsi/ibmvscsi.c host->max_cmd_len = 16; host 2261 drivers/scsi/ibmvscsi/ibmvscsi.c host->max_id, host->max_lun, host->max_channel); host 2263 drivers/scsi/ibmvscsi/ibmvscsi.c if (scsi_add_host(hostdata->host, hostdata->dev)) host 2270 drivers/scsi/ibmvscsi/ibmvscsi.c rport = srp_rport_add(host, &ids); host 2295 drivers/scsi/ibmvscsi/ibmvscsi.c scsi_scan_host(host); host 2305 drivers/scsi/ibmvscsi/ibmvscsi.c scsi_remove_host(hostdata->host); host 2315 drivers/scsi/ibmvscsi/ibmvscsi.c scsi_host_put(host); host 2324 drivers/scsi/ibmvscsi/ibmvscsi.c srp_remove_host(hostdata->host); host 2325 drivers/scsi/ibmvscsi/ibmvscsi.c scsi_remove_host(hostdata->host); host 2340 drivers/scsi/ibmvscsi/ibmvscsi.c scsi_host_put(hostdata->host); host 95 drivers/scsi/ibmvscsi/ibmvscsi.h struct Scsi_Host *host; host 49 drivers/scsi/imm.c struct Scsi_Host *host; host 58 drivers/scsi/imm.c static inline imm_struct *imm_dev(struct Scsi_Host *host) host 60 drivers/scsi/imm.c return *(imm_struct **)&host->hostdata; host 127 drivers/scsi/imm.c static int imm_write_info(struct Scsi_Host *host, char *buffer, int length) host 129 drivers/scsi/imm.c imm_struct *dev = imm_dev(host); host 139 drivers/scsi/imm.c static int imm_show_info(struct seq_file *m, struct Scsi_Host *host) host 141 drivers/scsi/imm.c imm_struct *dev = imm_dev(host); host 603 drivers/scsi/imm.c imm_struct *dev = imm_dev(cmd->device->host); host 628 drivers/scsi/imm.c imm_struct *dev = imm_dev(cmd->device->host); host 723 drivers/scsi/imm.c struct Scsi_Host *host = cmd->device->host; host 770 drivers/scsi/imm.c spin_lock_irqsave(host->host_lock, flags); host 773 drivers/scsi/imm.c spin_unlock_irqrestore(host->host_lock, flags); host 917 drivers/scsi/imm.c imm_struct *dev = imm_dev(cmd->device->host); host 961 drivers/scsi/imm.c imm_struct *dev = imm_dev(cmd->device->host); host 993 drivers/scsi/imm.c imm_struct *dev = imm_dev(cmd->device->host); host 1151 drivers/scsi/imm.c struct Scsi_Host *host; host 1234 drivers/scsi/imm.c host = scsi_host_alloc(&imm_template, sizeof(imm_struct *)); host 1235 drivers/scsi/imm.c if (!host) host 1237 drivers/scsi/imm.c host->io_port = pb->base; host 1238 drivers/scsi/imm.c host->n_io_port = ports; host 1239 drivers/scsi/imm.c host->dma_channel = -1; host 1240 drivers/scsi/imm.c host->unique_id = pb->number; host 1241 drivers/scsi/imm.c *(imm_struct **)&host->hostdata = dev; host 1242 drivers/scsi/imm.c dev->host = host; host 1247 drivers/scsi/imm.c err = scsi_add_host(host, NULL); host 1250 drivers/scsi/imm.c scsi_scan_host(host); host 1255 drivers/scsi/imm.c scsi_host_put(host); host 1274 drivers/scsi/imm.c scsi_remove_host(dev->host); host 1275 drivers/scsi/imm.c scsi_host_put(dev->host); host 117 drivers/scsi/initio.c static struct scsi_ctrl_blk *initio_find_busy_scb(struct initio_host * host, u16 tarlun); host 118 drivers/scsi/initio.c static struct scsi_ctrl_blk *initio_find_done_scb(struct initio_host * host); host 120 drivers/scsi/initio.c static int tulip_main(struct initio_host * host); host 122 drivers/scsi/initio.c static int initio_next_state(struct initio_host * host); host 123 drivers/scsi/initio.c static int initio_state_1(struct initio_host * host); host 124 drivers/scsi/initio.c static int initio_state_2(struct initio_host * host); host 125 drivers/scsi/initio.c static int initio_state_3(struct initio_host * host); host 126 drivers/scsi/initio.c static int initio_state_4(struct initio_host * host); host 127 drivers/scsi/initio.c static int initio_state_5(struct initio_host * host); host 128 drivers/scsi/initio.c static int initio_state_6(struct initio_host * host); host 129 drivers/scsi/initio.c static int initio_state_7(struct initio_host * host); host 130 drivers/scsi/initio.c static int initio_xfer_data_in(struct initio_host * host); host 131 drivers/scsi/initio.c static int initio_xfer_data_out(struct initio_host * host); host 132 drivers/scsi/initio.c static int initio_xpad_in(struct initio_host * host); host 133 drivers/scsi/initio.c static int initio_xpad_out(struct initio_host * host); host 134 drivers/scsi/initio.c static int initio_status_msg(struct initio_host * host); host 136 drivers/scsi/initio.c static int initio_msgin(struct initio_host * host); host 137 drivers/scsi/initio.c static int initio_msgin_sync(struct initio_host * host); host 138 drivers/scsi/initio.c static int initio_msgin_accept(struct initio_host * host); host 139 drivers/scsi/initio.c static int initio_msgout_reject(struct initio_host * host); host 140 drivers/scsi/initio.c static int initio_msgin_extend(struct initio_host * host); host 142 drivers/scsi/initio.c static int initio_msgout_ide(struct initio_host * host); host 143 drivers/scsi/initio.c static int initio_msgout_abort_targ(struct initio_host * host); host 144 drivers/scsi/initio.c static int initio_msgout_abort_tag(struct initio_host * host); host 146 drivers/scsi/initio.c static int initio_bus_device_reset(struct initio_host * host); host 147 drivers/scsi/initio.c static void initio_select_atn(struct initio_host * host, struct scsi_ctrl_blk * scb); host 148 drivers/scsi/initio.c static void initio_select_atn3(struct initio_host * host, struct scsi_ctrl_blk * scb); host 149 drivers/scsi/initio.c static void initio_select_atn_stop(struct initio_host * host, struct scsi_ctrl_blk * scb); host 150 drivers/scsi/initio.c static int int_initio_busfree(struct initio_host * host); host 151 drivers/scsi/initio.c static int int_initio_scsi_rst(struct initio_host * host); host 152 drivers/scsi/initio.c static int int_initio_bad_seq(struct initio_host * host); host 153 drivers/scsi/initio.c static int int_initio_resel(struct initio_host * host); host 154 drivers/scsi/initio.c static int initio_sync_done(struct initio_host * host); host 155 drivers/scsi/initio.c static int wdtr_done(struct initio_host * host); host 156 drivers/scsi/initio.c static int wait_tulip(struct initio_host * host); host 157 drivers/scsi/initio.c static int initio_wait_done_disc(struct initio_host * host); host 158 drivers/scsi/initio.c static int initio_wait_disc(struct initio_host * host); host 159 drivers/scsi/initio.c static void tulip_scsi(struct initio_host * host); host 160 drivers/scsi/initio.c static int initio_post_scsi_rst(struct initio_host * host); host 507 drivers/scsi/initio.c static void initio_stop_bm(struct initio_host * host) host 510 drivers/scsi/initio.c if (inb(host->addr + TUL_XStatus) & XPEND) { /* if DMA xfer is pending, abort DMA xfer */ host 511 drivers/scsi/initio.c outb(TAX_X_ABT | TAX_X_CLR_FIFO, host->addr + TUL_XCmd); host 513 drivers/scsi/initio.c while ((inb(host->addr + TUL_Int) & XABT) == 0) host 516 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 527 drivers/scsi/initio.c static int initio_reset_scsi(struct initio_host * host, int seconds) host 529 drivers/scsi/initio.c outb(TSC_RST_BUS, host->addr + TUL_SCtrl0); host 531 drivers/scsi/initio.c while (!((host->jsint = inb(host->addr + TUL_SInt)) & TSS_SCSIRST_INT)) host 535 drivers/scsi/initio.c outb(0, host->addr + TUL_SSignal); host 542 drivers/scsi/initio.c inb(host->addr + TUL_SInt); host 559 drivers/scsi/initio.c static void initio_init(struct initio_host * host, u8 *bios_addr) host 566 drivers/scsi/initio.c initio_read_eeprom(host->addr); host 568 drivers/scsi/initio.c host->max_tar = 8; host 570 drivers/scsi/initio.c host->max_tar = 16; host 572 drivers/scsi/initio.c host->config = i91unvramp->NVM_SCSIInfo[0].NVM_ChConfig1; host 574 drivers/scsi/initio.c host->scsi_id = i91unvramp->NVM_SCSIInfo[0].NVM_ChSCSIID; host 575 drivers/scsi/initio.c host->idmask = ~(1 << host->scsi_id); host 579 drivers/scsi/initio.c outb(inb(host->addr + TUL_PCMD) | 0x40, host->addr + TUL_PCMD); host 583 drivers/scsi/initio.c outb(0x1F, host->addr + TUL_Mask); host 585 drivers/scsi/initio.c initio_stop_bm(host); host 587 drivers/scsi/initio.c outb(TSC_RST_CHIP, host->addr + TUL_SCtrl0); host 590 drivers/scsi/initio.c outb(host->scsi_id << 4, host->addr + TUL_SScsiId); host 594 drivers/scsi/initio.c if (host->config & HCC_EN_PAR) host 595 drivers/scsi/initio.c host->sconf1 = (TSC_INITDEFAULT | TSC_EN_SCSI_PAR); host 597 drivers/scsi/initio.c host->sconf1 = (TSC_INITDEFAULT); host 598 drivers/scsi/initio.c outb(host->sconf1, host->addr + TUL_SConfig); host 601 drivers/scsi/initio.c outb(TSC_HW_RESELECT, host->addr + TUL_SCtrl1); host 603 drivers/scsi/initio.c outb(0, host->addr + TUL_SPeriod); host 606 drivers/scsi/initio.c outb(153, host->addr + TUL_STimeOut); host 609 drivers/scsi/initio.c outb((host->config & (HCC_ACT_TERM1 | HCC_ACT_TERM2)), host 610 drivers/scsi/initio.c host->addr + TUL_XCtrl); host 611 drivers/scsi/initio.c outb(((host->config & HCC_AUTO_TERM) >> 4) | host 612 drivers/scsi/initio.c (inb(host->addr + TUL_GCTRL1) & 0xFE), host 613 drivers/scsi/initio.c host->addr + TUL_GCTRL1); host 618 drivers/scsi/initio.c i < host->max_tar; host 620 drivers/scsi/initio.c host->targets[i].flags = *flags & ~(TCF_SYNC_DONE | TCF_WDTR_DONE); host 621 drivers/scsi/initio.c if (host->targets[i].flags & TCF_EN_255) host 622 drivers/scsi/initio.c host->targets[i].drv_flags = TCF_DRV_255_63; host 624 drivers/scsi/initio.c host->targets[i].drv_flags = 0; host 625 drivers/scsi/initio.c host->targets[i].js_period = 0; host 626 drivers/scsi/initio.c host->targets[i].sconfig0 = host->sconf1; host 627 drivers/scsi/initio.c host->targets[i].heads = *heads++; host 628 drivers/scsi/initio.c if (host->targets[i].heads == 255) host 629 drivers/scsi/initio.c host->targets[i].drv_flags = TCF_DRV_255_63; host 631 drivers/scsi/initio.c host->targets[i].drv_flags = 0; host 632 drivers/scsi/initio.c host->targets[i].sectors = *heads++; host 633 drivers/scsi/initio.c host->targets[i].flags &= ~TCF_BUSY; host 634 drivers/scsi/initio.c host->act_tags[i] = 0; host 635 drivers/scsi/initio.c host->max_tags[i] = 0xFF; host 638 drivers/scsi/initio.c host->addr, host->pci_dev->irq, host 639 drivers/scsi/initio.c host->bios_addr, host->scsi_id); host 641 drivers/scsi/initio.c if (host->config & HCC_SCSI_RESET) { host 643 drivers/scsi/initio.c initio_reset_scsi(host, 10); host 645 drivers/scsi/initio.c outb(0x17, host->addr + TUL_SCFG1); host 646 drivers/scsi/initio.c outb(0xE9, host->addr + TUL_SIntEnable); host 656 drivers/scsi/initio.c static struct scsi_ctrl_blk *initio_alloc_scb(struct initio_host *host) host 661 drivers/scsi/initio.c spin_lock_irqsave(&host->avail_lock, flags); host 662 drivers/scsi/initio.c if ((scb = host->first_avail) != NULL) { host 666 drivers/scsi/initio.c if ((host->first_avail = scb->next) == NULL) host 667 drivers/scsi/initio.c host->last_avail = NULL; host 671 drivers/scsi/initio.c spin_unlock_irqrestore(&host->avail_lock, flags); host 683 drivers/scsi/initio.c static void initio_release_scb(struct initio_host * host, struct scsi_ctrl_blk * cmnd) host 690 drivers/scsi/initio.c spin_lock_irqsave(&(host->avail_lock), flags); host 694 drivers/scsi/initio.c if (host->last_avail != NULL) { host 695 drivers/scsi/initio.c host->last_avail->next = cmnd; host 696 drivers/scsi/initio.c host->last_avail = cmnd; host 698 drivers/scsi/initio.c host->first_avail = cmnd; host 699 drivers/scsi/initio.c host->last_avail = cmnd; host 701 drivers/scsi/initio.c spin_unlock_irqrestore(&(host->avail_lock), flags); host 705 drivers/scsi/initio.c static void initio_append_pend_scb(struct initio_host * host, struct scsi_ctrl_blk * scbp) host 713 drivers/scsi/initio.c if (host->last_pending != NULL) { host 714 drivers/scsi/initio.c host->last_pending->next = scbp; host 715 drivers/scsi/initio.c host->last_pending = scbp; host 717 drivers/scsi/initio.c host->first_pending = scbp; host 718 drivers/scsi/initio.c host->last_pending = scbp; host 723 drivers/scsi/initio.c static void initio_push_pend_scb(struct initio_host * host, struct scsi_ctrl_blk * scbp) host 730 drivers/scsi/initio.c if ((scbp->next = host->first_pending) != NULL) { host 731 drivers/scsi/initio.c host->first_pending = scbp; host 733 drivers/scsi/initio.c host->first_pending = scbp; host 734 drivers/scsi/initio.c host->last_pending = scbp; host 738 drivers/scsi/initio.c static struct scsi_ctrl_blk *initio_find_first_pend_scb(struct initio_host * host) host 743 drivers/scsi/initio.c first = host->first_pending; host 748 drivers/scsi/initio.c if ((host->act_tags[first->target] == 0) && host 749 drivers/scsi/initio.c !(host->targets[first->target].flags & TCF_BUSY)) host 752 drivers/scsi/initio.c if ((host->act_tags[first->target] >= host 753 drivers/scsi/initio.c host->max_tags[first->target]) | host 754 drivers/scsi/initio.c (host->targets[first->target].flags & TCF_BUSY)) { host 765 drivers/scsi/initio.c static void initio_unlink_pend_scb(struct initio_host * host, struct scsi_ctrl_blk * scb) host 773 drivers/scsi/initio.c prev = tmp = host->first_pending; host 776 drivers/scsi/initio.c if (tmp == host->first_pending) { host 777 drivers/scsi/initio.c if ((host->first_pending = tmp->next) == NULL) host 778 drivers/scsi/initio.c host->last_pending = NULL; host 781 drivers/scsi/initio.c if (tmp == host->last_pending) host 782 drivers/scsi/initio.c host->last_pending = prev; host 792 drivers/scsi/initio.c static void initio_append_busy_scb(struct initio_host * host, struct scsi_ctrl_blk * scbp) host 799 drivers/scsi/initio.c host->act_tags[scbp->target]++; host 801 drivers/scsi/initio.c host->targets[scbp->target].flags |= TCF_BUSY; host 804 drivers/scsi/initio.c if (host->last_busy != NULL) { host 805 drivers/scsi/initio.c host->last_busy->next = scbp; host 806 drivers/scsi/initio.c host->last_busy = scbp; host 808 drivers/scsi/initio.c host->first_busy = scbp; host 809 drivers/scsi/initio.c host->last_busy = scbp; host 814 drivers/scsi/initio.c static struct scsi_ctrl_blk *initio_pop_busy_scb(struct initio_host * host) host 819 drivers/scsi/initio.c if ((tmp = host->first_busy) != NULL) { host 820 drivers/scsi/initio.c if ((host->first_busy = tmp->next) == NULL) host 821 drivers/scsi/initio.c host->last_busy = NULL; host 824 drivers/scsi/initio.c host->act_tags[tmp->target]--; host 826 drivers/scsi/initio.c host->targets[tmp->target].flags &= ~TCF_BUSY; host 835 drivers/scsi/initio.c static void initio_unlink_busy_scb(struct initio_host * host, struct scsi_ctrl_blk * scb) host 843 drivers/scsi/initio.c prev = tmp = host->first_busy; host 846 drivers/scsi/initio.c if (tmp == host->first_busy) { host 847 drivers/scsi/initio.c if ((host->first_busy = tmp->next) == NULL) host 848 drivers/scsi/initio.c host->last_busy = NULL; host 851 drivers/scsi/initio.c if (tmp == host->last_busy) host 852 drivers/scsi/initio.c host->last_busy = prev; host 856 drivers/scsi/initio.c host->act_tags[tmp->target]--; host 858 drivers/scsi/initio.c host->targets[tmp->target].flags &= ~TCF_BUSY; host 867 drivers/scsi/initio.c struct scsi_ctrl_blk *initio_find_busy_scb(struct initio_host * host, u16 tarlun) host 873 drivers/scsi/initio.c prev = tmp = host->first_busy; host 888 drivers/scsi/initio.c static void initio_append_done_scb(struct initio_host * host, struct scsi_ctrl_blk * scbp) host 896 drivers/scsi/initio.c if (host->last_done != NULL) { host 897 drivers/scsi/initio.c host->last_done->next = scbp; host 898 drivers/scsi/initio.c host->last_done = scbp; host 900 drivers/scsi/initio.c host->first_done = scbp; host 901 drivers/scsi/initio.c host->last_done = scbp; host 905 drivers/scsi/initio.c struct scsi_ctrl_blk *initio_find_done_scb(struct initio_host * host) host 909 drivers/scsi/initio.c if ((tmp = host->first_done) != NULL) { host 910 drivers/scsi/initio.c if ((host->first_done = tmp->next) == NULL) host 911 drivers/scsi/initio.c host->last_done = NULL; host 920 drivers/scsi/initio.c static int initio_abort_srb(struct initio_host * host, struct scsi_cmnd *srbp) host 925 drivers/scsi/initio.c spin_lock_irqsave(&host->semaph_lock, flags); host 927 drivers/scsi/initio.c if ((host->semaph == 0) && (host->active == NULL)) { host 929 drivers/scsi/initio.c outb(0x1F, host->addr + TUL_Mask); host 930 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 932 drivers/scsi/initio.c tulip_main(host); host 933 drivers/scsi/initio.c spin_lock_irqsave(&host->semaph_lock, flags); host 934 drivers/scsi/initio.c host->semaph = 1; host 935 drivers/scsi/initio.c outb(0x0F, host->addr + TUL_Mask); host 936 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 939 drivers/scsi/initio.c prev = tmp = host->first_pending; /* Check Pend queue */ host 943 drivers/scsi/initio.c if (tmp == host->active) { host 944 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 946 drivers/scsi/initio.c } else if (tmp == host->first_pending) { host 947 drivers/scsi/initio.c if ((host->first_pending = tmp->next) == NULL) host 948 drivers/scsi/initio.c host->last_pending = NULL; host 951 drivers/scsi/initio.c if (tmp == host->last_pending) host 952 drivers/scsi/initio.c host->last_pending = prev; host 957 drivers/scsi/initio.c (*tmp->post) ((u8 *) host, (u8 *) tmp); host 958 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 965 drivers/scsi/initio.c prev = tmp = host->first_busy; /* Check Busy queue */ host 968 drivers/scsi/initio.c if (tmp == host->active) { host 969 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 972 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 975 drivers/scsi/initio.c host->act_tags[tmp->target]--; host 976 drivers/scsi/initio.c if (tmp == host->first_busy) { host 977 drivers/scsi/initio.c if ((host->first_busy = tmp->next) == NULL) host 978 drivers/scsi/initio.c host->last_busy = NULL; host 981 drivers/scsi/initio.c if (tmp == host->last_busy) host 982 drivers/scsi/initio.c host->last_busy = prev; host 990 drivers/scsi/initio.c (*tmp->post) ((u8 *) host, (u8 *) tmp); host 991 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 998 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 1003 drivers/scsi/initio.c static int initio_bad_seq(struct initio_host * host) host 1007 drivers/scsi/initio.c printk("initio_bad_seg c=%d\n", host->index); host 1009 drivers/scsi/initio.c if ((scb = host->active) != NULL) { host 1010 drivers/scsi/initio.c initio_unlink_busy_scb(host, scb); host 1013 drivers/scsi/initio.c initio_append_done_scb(host, scb); host 1015 drivers/scsi/initio.c initio_stop_bm(host); host 1016 drivers/scsi/initio.c initio_reset_scsi(host, 8); /* 7/29/98 */ host 1017 drivers/scsi/initio.c return initio_post_scsi_rst(host); host 1022 drivers/scsi/initio.c static void initio_exec_scb(struct initio_host * host, struct scsi_ctrl_blk * scb) host 1031 drivers/scsi/initio.c spin_lock_irqsave(&host->semaph_lock, flags); host 1033 drivers/scsi/initio.c initio_append_pend_scb(host, scb); /* Append this SCB to Pending queue */ host 1036 drivers/scsi/initio.c if (host->semaph == 1) { host 1038 drivers/scsi/initio.c outb(0x1F, host->addr + TUL_Mask); host 1039 drivers/scsi/initio.c host->semaph = 0; host 1040 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 1042 drivers/scsi/initio.c tulip_main(host); host 1044 drivers/scsi/initio.c spin_lock_irqsave(&host->semaph_lock, flags); host 1045 drivers/scsi/initio.c host->semaph = 1; host 1046 drivers/scsi/initio.c outb(0x0F, host->addr + TUL_Mask); host 1048 drivers/scsi/initio.c spin_unlock_irqrestore(&host->semaph_lock, flags); host 1053 drivers/scsi/initio.c static int initio_isr(struct initio_host * host) host 1055 drivers/scsi/initio.c if (inb(host->addr + TUL_Int) & TSS_INT_PENDING) { host 1056 drivers/scsi/initio.c if (host->semaph == 1) { host 1057 drivers/scsi/initio.c outb(0x1F, host->addr + TUL_Mask); host 1059 drivers/scsi/initio.c host->semaph = 0; host 1061 drivers/scsi/initio.c tulip_main(host); host 1063 drivers/scsi/initio.c host->semaph = 1; host 1064 drivers/scsi/initio.c outb(0x0F, host->addr + TUL_Mask); host 1071 drivers/scsi/initio.c static int tulip_main(struct initio_host * host) host 1076 drivers/scsi/initio.c tulip_scsi(host); /* Call tulip_scsi */ host 1079 drivers/scsi/initio.c while ((scb = initio_find_done_scb(host)) != NULL) { /* find done entry */ host 1081 drivers/scsi/initio.c host->max_tags[scb->target] = host 1082 drivers/scsi/initio.c host->act_tags[scb->target] - 1; host 1084 drivers/scsi/initio.c initio_append_pend_scb(host, scb); host 1113 drivers/scsi/initio.c initio_push_pend_scb(host, scb); host 1128 drivers/scsi/initio.c (*scb->post) ((u8 *) host, (u8 *) scb); host 1132 drivers/scsi/initio.c if (inb(host->addr + TUL_SStatus0) & TSS_INT_PENDING) host 1134 drivers/scsi/initio.c if (host->active) /* return to OS and wait for xfer_done_ISR/Selected_ISR */ host 1137 drivers/scsi/initio.c if (initio_find_first_pend_scb(host) == NULL) host 1143 drivers/scsi/initio.c static void tulip_scsi(struct initio_host * host) host 1149 drivers/scsi/initio.c if ((host->jsstatus0 = inb(host->addr + TUL_SStatus0)) & TSS_INT_PENDING) { host 1150 drivers/scsi/initio.c host->phase = host->jsstatus0 & TSS_PH_MASK; host 1151 drivers/scsi/initio.c host->jsstatus1 = inb(host->addr + TUL_SStatus1); host 1152 drivers/scsi/initio.c host->jsint = inb(host->addr + TUL_SInt); host 1153 drivers/scsi/initio.c if (host->jsint & TSS_SCSIRST_INT) { /* SCSI bus reset detected */ host 1154 drivers/scsi/initio.c int_initio_scsi_rst(host); host 1157 drivers/scsi/initio.c if (host->jsint & TSS_RESEL_INT) { /* if selected/reselected interrupt */ host 1158 drivers/scsi/initio.c if (int_initio_resel(host) == 0) host 1159 drivers/scsi/initio.c initio_next_state(host); host 1162 drivers/scsi/initio.c if (host->jsint & TSS_SEL_TIMEOUT) { host 1163 drivers/scsi/initio.c int_initio_busfree(host); host 1166 drivers/scsi/initio.c if (host->jsint & TSS_DISC_INT) { /* BUS disconnection */ host 1167 drivers/scsi/initio.c int_initio_busfree(host); /* unexpected bus free or sel timeout */ host 1170 drivers/scsi/initio.c if (host->jsint & (TSS_FUNC_COMP | TSS_BUS_SERV)) { /* func complete or Bus service */ host 1171 drivers/scsi/initio.c if ((scb = host->active) != NULL) host 1172 drivers/scsi/initio.c initio_next_state(host); host 1176 drivers/scsi/initio.c if (host->active != NULL) host 1179 drivers/scsi/initio.c if ((scb = initio_find_first_pend_scb(host)) == NULL) host 1183 drivers/scsi/initio.c outb((host->scsi_id << 4) | (scb->target & 0x0F), host 1184 drivers/scsi/initio.c host->addr + TUL_SScsiId); host 1186 drivers/scsi/initio.c active_tc = &host->targets[scb->target]; host 1193 drivers/scsi/initio.c outb(active_tc->js_period, host->addr + TUL_SPeriod); host 1195 drivers/scsi/initio.c initio_select_atn_stop(host, scb); host 1198 drivers/scsi/initio.c initio_select_atn_stop(host, scb); host 1201 drivers/scsi/initio.c initio_select_atn3(host, scb); host 1203 drivers/scsi/initio.c initio_select_atn(host, scb); host 1207 drivers/scsi/initio.c while (wait_tulip(host) != -1) { host 1208 drivers/scsi/initio.c if (initio_next_state(host) == -1) host 1213 drivers/scsi/initio.c initio_select_atn_stop(host, scb); host 1216 drivers/scsi/initio.c while (wait_tulip(host) != -1) { host 1217 drivers/scsi/initio.c if (initio_next_state(host) == -1) host 1222 drivers/scsi/initio.c if (initio_abort_srb(host, scb->srb) != 0) { host 1223 drivers/scsi/initio.c initio_unlink_pend_scb(host, scb); host 1224 drivers/scsi/initio.c initio_release_scb(host, scb); host 1227 drivers/scsi/initio.c initio_select_atn_stop(host, scb); host 1231 drivers/scsi/initio.c initio_unlink_pend_scb(host, scb); host 1233 drivers/scsi/initio.c initio_append_done_scb(host, scb); host 1248 drivers/scsi/initio.c static int initio_next_state(struct initio_host * host) host 1252 drivers/scsi/initio.c next = host->active->next_state; host 1256 drivers/scsi/initio.c next = initio_state_1(host); host 1259 drivers/scsi/initio.c next = initio_state_2(host); host 1262 drivers/scsi/initio.c next = initio_state_3(host); host 1265 drivers/scsi/initio.c next = initio_state_4(host); host 1268 drivers/scsi/initio.c next = initio_state_5(host); host 1271 drivers/scsi/initio.c next = initio_state_6(host); host 1274 drivers/scsi/initio.c next = initio_state_7(host); host 1277 drivers/scsi/initio.c return initio_bus_device_reset(host); host 1279 drivers/scsi/initio.c return initio_bad_seq(host); host 1294 drivers/scsi/initio.c static int initio_state_1(struct initio_host * host) host 1296 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1297 drivers/scsi/initio.c struct target_control *active_tc = host->active_tc; host 1303 drivers/scsi/initio.c initio_unlink_pend_scb(host, scb); host 1304 drivers/scsi/initio.c initio_append_busy_scb(host, scb); host 1306 drivers/scsi/initio.c outb(active_tc->sconfig0, host->addr + TUL_SConfig ); host 1308 drivers/scsi/initio.c if (host->phase == MSG_OUT) { host 1309 drivers/scsi/initio.c outb(TSC_EN_BUS_IN | TSC_HW_RESELECT, host->addr + TUL_SCtrl1); host 1310 drivers/scsi/initio.c outb(scb->ident, host->addr + TUL_SFifo); host 1313 drivers/scsi/initio.c outb(scb->tagmsg, host->addr + TUL_SFifo); host 1314 drivers/scsi/initio.c outb(scb->tagid, host->addr + TUL_SFifo); host 1318 drivers/scsi/initio.c outb(MSG_EXTEND, host->addr + TUL_SFifo); host 1319 drivers/scsi/initio.c outb(2, host->addr + TUL_SFifo); /* Extended msg length */ host 1320 drivers/scsi/initio.c outb(3, host->addr + TUL_SFifo); /* Sync request */ host 1321 drivers/scsi/initio.c outb(1, host->addr + TUL_SFifo); /* Start from 16 bits */ host 1324 drivers/scsi/initio.c outb(MSG_EXTEND, host->addr + TUL_SFifo); host 1325 drivers/scsi/initio.c outb(3, host->addr + TUL_SFifo); /* extended msg length */ host 1326 drivers/scsi/initio.c outb(1, host->addr + TUL_SFifo); /* sync request */ host 1327 drivers/scsi/initio.c outb(initio_rate_tbl[active_tc->flags & TCF_SCSI_RATE], host->addr + TUL_SFifo); host 1328 drivers/scsi/initio.c outb(MAX_OFFSET, host->addr + TUL_SFifo); /* REQ/ACK offset */ host 1330 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1331 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1334 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 1335 drivers/scsi/initio.c outb((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)), host->addr + TUL_SSignal); host 1349 drivers/scsi/initio.c static int initio_state_2(struct initio_host * host) host 1351 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1352 drivers/scsi/initio.c struct target_control *active_tc = host->active_tc; host 1357 drivers/scsi/initio.c initio_unlink_pend_scb(host, scb); host 1358 drivers/scsi/initio.c initio_append_busy_scb(host, scb); host 1360 drivers/scsi/initio.c outb(active_tc->sconfig0, host->addr + TUL_SConfig); host 1362 drivers/scsi/initio.c if (host->jsstatus1 & TSS_CMD_PH_CMP) host 1365 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 1366 drivers/scsi/initio.c outb((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)), host->addr + TUL_SSignal); host 1378 drivers/scsi/initio.c static int initio_state_3(struct initio_host * host) host 1380 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1381 drivers/scsi/initio.c struct target_control *active_tc = host->active_tc; host 1388 drivers/scsi/initio.c switch (host->phase) { host 1391 drivers/scsi/initio.c outb(scb->cdb[i], host->addr + TUL_SFifo); host 1392 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1393 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1395 drivers/scsi/initio.c if (host->phase == CMD_OUT) host 1396 drivers/scsi/initio.c return initio_bad_seq(host); host 1401 drivers/scsi/initio.c if (initio_msgin(host) == -1) host 1406 drivers/scsi/initio.c if (initio_status_msg(host) == -1) host 1412 drivers/scsi/initio.c outb(MSG_NOP, host->addr + TUL_SFifo); /* msg nop */ host 1413 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1414 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1419 drivers/scsi/initio.c outb(MSG_EXTEND, host->addr + TUL_SFifo); host 1420 drivers/scsi/initio.c outb(3, host->addr + TUL_SFifo); /* ext. msg len */ host 1421 drivers/scsi/initio.c outb(1, host->addr + TUL_SFifo); /* sync request */ host 1422 drivers/scsi/initio.c outb(initio_rate_tbl[active_tc->flags & TCF_SCSI_RATE], host->addr + TUL_SFifo); host 1423 drivers/scsi/initio.c outb(MAX_OFFSET, host->addr + TUL_SFifo); /* REQ/ACK offset */ host 1424 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1425 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1427 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 1428 drivers/scsi/initio.c outb(inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7), host->addr + TUL_SSignal); host 1433 drivers/scsi/initio.c return initio_bad_seq(host); host 1445 drivers/scsi/initio.c static int initio_state_4(struct initio_host * host) host 1447 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1459 drivers/scsi/initio.c switch (host->phase) { host 1464 drivers/scsi/initio.c if ((initio_status_msg(host)) == -1) host 1470 drivers/scsi/initio.c if (initio_msgin(host) == -1) host 1475 drivers/scsi/initio.c if (host->jsstatus0 & TSS_PAR_ERROR) { host 1478 drivers/scsi/initio.c if (initio_msgout_ide(host) == -1) host 1482 drivers/scsi/initio.c outb(MSG_NOP, host->addr + TUL_SFifo); /* msg nop */ host 1483 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1484 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1490 drivers/scsi/initio.c return initio_xfer_data_in(host); host 1493 drivers/scsi/initio.c return initio_xfer_data_out(host); host 1496 drivers/scsi/initio.c return initio_bad_seq(host); host 1509 drivers/scsi/initio.c static int initio_state_5(struct initio_host * host) host 1511 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1518 drivers/scsi/initio.c cnt = inl(host->addr + TUL_SCnt0) & 0x0FFFFFF; host 1520 drivers/scsi/initio.c if (inb(host->addr + TUL_XCmd) & 0x20) { host 1523 drivers/scsi/initio.c if (host->jsstatus0 & TSS_PAR_ERROR) host 1525 drivers/scsi/initio.c if (inb(host->addr + TUL_XStatus) & XPEND) { /* DMA xfer pending, Send STOP */ host 1527 drivers/scsi/initio.c outb(inb(host->addr + TUL_XCtrl) | 0x80, host->addr + TUL_XCtrl); host 1529 drivers/scsi/initio.c while (inb(host->addr + TUL_XStatus) & XPEND) host 1534 drivers/scsi/initio.c if ((inb(host->addr + TUL_SStatus1) & TSS_XFER_CMP) == 0) { host 1535 drivers/scsi/initio.c if (host->active_tc->js_period & TSC_WIDE_SCSI) host 1536 drivers/scsi/initio.c cnt += (inb(host->addr + TUL_SFifoCnt) & 0x1F) << 1; host 1538 drivers/scsi/initio.c cnt += (inb(host->addr + TUL_SFifoCnt) & 0x1F); host 1540 drivers/scsi/initio.c if (inb(host->addr + TUL_XStatus) & XPEND) { /* if DMA xfer is pending, abort DMA xfer */ host 1541 drivers/scsi/initio.c outb(TAX_X_ABT, host->addr + TUL_XCmd); host 1543 drivers/scsi/initio.c while ((inb(host->addr + TUL_Int) & XABT) == 0) host 1546 drivers/scsi/initio.c if ((cnt == 1) && (host->phase == DATA_OUT)) { host 1547 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1548 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1552 drivers/scsi/initio.c if ((inb(host->addr + TUL_SStatus1) & TSS_XFER_CMP) == 0) host 1553 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 1598 drivers/scsi/initio.c static int initio_state_6(struct initio_host * host) host 1600 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1606 drivers/scsi/initio.c switch (host->phase) { host 1608 drivers/scsi/initio.c if ((initio_status_msg(host)) == -1) host 1614 drivers/scsi/initio.c if ((initio_msgin(host)) == -1) host 1619 drivers/scsi/initio.c outb(MSG_NOP, host->addr + TUL_SFifo); /* msg nop */ host 1620 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1621 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1626 drivers/scsi/initio.c return initio_xpad_in(host); host 1629 drivers/scsi/initio.c return initio_xpad_out(host); host 1632 drivers/scsi/initio.c return initio_bad_seq(host); host 1643 drivers/scsi/initio.c int initio_state_7(struct initio_host * host) host 1651 drivers/scsi/initio.c cnt = inb(host->addr + TUL_SFifoCnt) & 0x1F; host 1654 drivers/scsi/initio.c inb(host->addr + TUL_SFifo); host 1656 drivers/scsi/initio.c switch (host->phase) { host 1659 drivers/scsi/initio.c return initio_bad_seq(host); host 1673 drivers/scsi/initio.c static int initio_xfer_data_in(struct initio_host * host) host 1675 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1680 drivers/scsi/initio.c outl(scb->buflen, host->addr + TUL_SCnt0); host 1681 drivers/scsi/initio.c outb(TSC_XF_DMA_IN, host->addr + TUL_SCmd); /* 7/25/95 */ host 1684 drivers/scsi/initio.c outl(((u32) scb->sglen) << 3, host->addr + TUL_XCntH); host 1685 drivers/scsi/initio.c outl(scb->bufptr, host->addr + TUL_XAddH); host 1686 drivers/scsi/initio.c outb(TAX_SG_IN, host->addr + TUL_XCmd); host 1688 drivers/scsi/initio.c outl(scb->buflen, host->addr + TUL_XCntH); host 1689 drivers/scsi/initio.c outl(scb->bufptr, host->addr + TUL_XAddH); host 1690 drivers/scsi/initio.c outb(TAX_X_IN, host->addr + TUL_XCmd); host 1705 drivers/scsi/initio.c static int initio_xfer_data_out(struct initio_host * host) host 1707 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1712 drivers/scsi/initio.c outl(scb->buflen, host->addr + TUL_SCnt0); host 1713 drivers/scsi/initio.c outb(TSC_XF_DMA_OUT, host->addr + TUL_SCmd); host 1716 drivers/scsi/initio.c outl(((u32) scb->sglen) << 3, host->addr + TUL_XCntH); host 1717 drivers/scsi/initio.c outl(scb->bufptr, host->addr + TUL_XAddH); host 1718 drivers/scsi/initio.c outb(TAX_SG_OUT, host->addr + TUL_XCmd); host 1720 drivers/scsi/initio.c outl(scb->buflen, host->addr + TUL_XCntH); host 1721 drivers/scsi/initio.c outl(scb->bufptr, host->addr + TUL_XAddH); host 1722 drivers/scsi/initio.c outb(TAX_X_OUT, host->addr + TUL_XCmd); host 1729 drivers/scsi/initio.c int initio_xpad_in(struct initio_host * host) host 1731 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1732 drivers/scsi/initio.c struct target_control *active_tc = host->active_tc; host 1738 drivers/scsi/initio.c outl(2, host->addr + TUL_SCnt0); host 1740 drivers/scsi/initio.c outl(1, host->addr + TUL_SCnt0); host 1742 drivers/scsi/initio.c outb(TSC_XF_FIFO_IN, host->addr + TUL_SCmd); host 1743 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1745 drivers/scsi/initio.c if (host->phase != DATA_IN) { host 1746 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 1749 drivers/scsi/initio.c inb(host->addr + TUL_SFifo); host 1753 drivers/scsi/initio.c int initio_xpad_out(struct initio_host * host) host 1755 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1756 drivers/scsi/initio.c struct target_control *active_tc = host->active_tc; host 1762 drivers/scsi/initio.c outl(2, host->addr + TUL_SCnt0); host 1764 drivers/scsi/initio.c outl(1, host->addr + TUL_SCnt0); host 1766 drivers/scsi/initio.c outb(0, host->addr + TUL_SFifo); host 1767 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1768 drivers/scsi/initio.c if ((wait_tulip(host)) == -1) host 1770 drivers/scsi/initio.c if (host->phase != DATA_OUT) { /* Disable wide CPU to allow read 16 bits */ host 1771 drivers/scsi/initio.c outb(TSC_HW_RESELECT, host->addr + TUL_SCtrl1); host 1772 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 1778 drivers/scsi/initio.c int initio_status_msg(struct initio_host * host) host 1780 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1783 drivers/scsi/initio.c outb(TSC_CMD_COMP, host->addr + TUL_SCmd); host 1784 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1788 drivers/scsi/initio.c scb->tastat = inb(host->addr + TUL_SFifo); host 1790 drivers/scsi/initio.c if (host->phase == MSG_OUT) { host 1791 drivers/scsi/initio.c if (host->jsstatus0 & TSS_PAR_ERROR) host 1792 drivers/scsi/initio.c outb(MSG_PARITY, host->addr + TUL_SFifo); host 1794 drivers/scsi/initio.c outb(MSG_NOP, host->addr + TUL_SFifo); host 1795 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1796 drivers/scsi/initio.c return wait_tulip(host); host 1798 drivers/scsi/initio.c if (host->phase == MSG_IN) { host 1799 drivers/scsi/initio.c msg = inb(host->addr + TUL_SFifo); host 1800 drivers/scsi/initio.c if (host->jsstatus0 & TSS_PAR_ERROR) { /* Parity error */ host 1801 drivers/scsi/initio.c if ((initio_msgin_accept(host)) == -1) host 1803 drivers/scsi/initio.c if (host->phase != MSG_OUT) host 1804 drivers/scsi/initio.c return initio_bad_seq(host); host 1805 drivers/scsi/initio.c outb(MSG_PARITY, host->addr + TUL_SFifo); host 1806 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 1807 drivers/scsi/initio.c return wait_tulip(host); host 1812 drivers/scsi/initio.c return initio_bad_seq(host); host 1813 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 1814 drivers/scsi/initio.c outb(TSC_MSG_ACCEPT, host->addr + TUL_SCmd); host 1815 drivers/scsi/initio.c return initio_wait_done_disc(host); host 1820 drivers/scsi/initio.c return initio_msgin_accept(host); host 1823 drivers/scsi/initio.c return initio_bad_seq(host); host 1828 drivers/scsi/initio.c int int_initio_busfree(struct initio_host * host) host 1830 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 1834 drivers/scsi/initio.c initio_unlink_pend_scb(host, scb); host 1836 drivers/scsi/initio.c initio_append_done_scb(host, scb); host 1838 drivers/scsi/initio.c initio_unlink_busy_scb(host, scb); host 1840 drivers/scsi/initio.c initio_append_done_scb(host, scb); host 1842 drivers/scsi/initio.c host->active = NULL; host 1843 drivers/scsi/initio.c host->active_tc = NULL; host 1845 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); /* Flush SCSI FIFO */ host 1846 drivers/scsi/initio.c outb(TSC_INITDEFAULT, host->addr + TUL_SConfig); host 1847 drivers/scsi/initio.c outb(TSC_HW_RESELECT, host->addr + TUL_SCtrl1); /* Enable HW reselect */ host 1862 drivers/scsi/initio.c static int int_initio_scsi_rst(struct initio_host * host) host 1868 drivers/scsi/initio.c if (inb(host->addr + TUL_XStatus) & 0x01) { host 1869 drivers/scsi/initio.c outb(TAX_X_ABT | TAX_X_CLR_FIFO, host->addr + TUL_XCmd); host 1871 drivers/scsi/initio.c while ((inb(host->addr + TUL_Int) & 0x04) == 0) host 1873 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 1876 drivers/scsi/initio.c while ((scb = initio_pop_busy_scb(host)) != NULL) { host 1878 drivers/scsi/initio.c initio_append_done_scb(host, scb); host 1880 drivers/scsi/initio.c host->active = NULL; host 1881 drivers/scsi/initio.c host->active_tc = NULL; host 1884 drivers/scsi/initio.c for (i = 0; i < host->max_tar; i++) host 1885 drivers/scsi/initio.c host->targets[i].flags &= ~(TCF_SYNC_DONE | TCF_WDTR_DONE); host 1898 drivers/scsi/initio.c int int_initio_resel(struct initio_host * host) host 1905 drivers/scsi/initio.c if ((scb = host->active) != NULL) { host 1909 drivers/scsi/initio.c host->active = NULL; host 1912 drivers/scsi/initio.c tar = inb(host->addr + TUL_SBusId); host 1914 drivers/scsi/initio.c lun = inb(host->addr + TUL_SIdent) & 0x0F; host 1916 drivers/scsi/initio.c active_tc = &host->targets[tar]; host 1917 drivers/scsi/initio.c host->active_tc = active_tc; host 1918 drivers/scsi/initio.c outb(active_tc->sconfig0, host->addr + TUL_SConfig); host 1919 drivers/scsi/initio.c outb(active_tc->js_period, host->addr + TUL_SPeriod); host 1923 drivers/scsi/initio.c if ((initio_msgin_accept(host)) == -1) host 1925 drivers/scsi/initio.c if (host->phase != MSG_IN) host 1927 drivers/scsi/initio.c outl(1, host->addr + TUL_SCnt0); host 1928 drivers/scsi/initio.c outb(TSC_XF_FIFO_IN, host->addr + TUL_SCmd); host 1929 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1931 drivers/scsi/initio.c msg = inb(host->addr + TUL_SFifo); /* Read Tag Message */ host 1936 drivers/scsi/initio.c if (initio_msgin_accept(host) == -1) host 1939 drivers/scsi/initio.c if (host->phase != MSG_IN) host 1942 drivers/scsi/initio.c outl(1, host->addr + TUL_SCnt0); host 1943 drivers/scsi/initio.c outb(TSC_XF_FIFO_IN, host->addr + TUL_SCmd); host 1944 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 1946 drivers/scsi/initio.c tag = inb(host->addr + TUL_SFifo); /* Read Tag ID */ host 1947 drivers/scsi/initio.c scb = host->scb + tag; host 1949 drivers/scsi/initio.c return initio_msgout_abort_tag(host); host 1952 drivers/scsi/initio.c return initio_msgout_abort_tag(host); host 1954 drivers/scsi/initio.c host->active = scb; host 1955 drivers/scsi/initio.c if ((initio_msgin_accept(host)) == -1) host 1959 drivers/scsi/initio.c if ((scb = initio_find_busy_scb(host, tar | (lun << 8))) == NULL) { host 1960 drivers/scsi/initio.c return initio_msgout_abort_targ(host); host 1962 drivers/scsi/initio.c host->active = scb; host 1964 drivers/scsi/initio.c if ((initio_msgin_accept(host)) == -1) host 1979 drivers/scsi/initio.c static int int_initio_bad_seq(struct initio_host * host) host 1984 drivers/scsi/initio.c initio_reset_scsi(host, 10); host 1986 drivers/scsi/initio.c while ((scb = initio_pop_busy_scb(host)) != NULL) { host 1988 drivers/scsi/initio.c initio_append_done_scb(host, scb); host 1990 drivers/scsi/initio.c for (i = 0; i < host->max_tar; i++) host 1991 drivers/scsi/initio.c host->targets[i].flags &= ~(TCF_SYNC_DONE | TCF_WDTR_DONE); host 2004 drivers/scsi/initio.c static int initio_msgout_abort_targ(struct initio_host * host) host 2007 drivers/scsi/initio.c outb(((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)) | TSC_SET_ATN), host->addr + TUL_SSignal); host 2008 drivers/scsi/initio.c if (initio_msgin_accept(host) == -1) host 2010 drivers/scsi/initio.c if (host->phase != MSG_OUT) host 2011 drivers/scsi/initio.c return initio_bad_seq(host); host 2013 drivers/scsi/initio.c outb(MSG_ABORT, host->addr + TUL_SFifo); host 2014 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 2016 drivers/scsi/initio.c return initio_wait_disc(host); host 2027 drivers/scsi/initio.c static int initio_msgout_abort_tag(struct initio_host * host) host 2030 drivers/scsi/initio.c outb(((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)) | TSC_SET_ATN), host->addr + TUL_SSignal); host 2031 drivers/scsi/initio.c if (initio_msgin_accept(host) == -1) host 2033 drivers/scsi/initio.c if (host->phase != MSG_OUT) host 2034 drivers/scsi/initio.c return initio_bad_seq(host); host 2036 drivers/scsi/initio.c outb(MSG_ABORT_TAG, host->addr + TUL_SFifo); host 2037 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 2039 drivers/scsi/initio.c return initio_wait_disc(host); host 2049 drivers/scsi/initio.c static int initio_msgin(struct initio_host * host) host 2054 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 2056 drivers/scsi/initio.c outl(1, host->addr + TUL_SCnt0); host 2057 drivers/scsi/initio.c outb(TSC_XF_FIFO_IN, host->addr + TUL_SCmd); host 2058 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 2061 drivers/scsi/initio.c switch (inb(host->addr + TUL_SFifo)) { host 2063 drivers/scsi/initio.c outb(TSC_MSG_ACCEPT, host->addr + TUL_SCmd); host 2064 drivers/scsi/initio.c return initio_wait_disc(host); host 2068 drivers/scsi/initio.c initio_msgin_accept(host); host 2071 drivers/scsi/initio.c outb((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)), host 2072 drivers/scsi/initio.c host->addr + TUL_SSignal); host 2073 drivers/scsi/initio.c active_tc = host->active_tc; host 2075 drivers/scsi/initio.c outb(((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)) | TSC_SET_ATN), host 2076 drivers/scsi/initio.c host->addr + TUL_SSignal); host 2077 drivers/scsi/initio.c initio_msgin_accept(host); host 2080 drivers/scsi/initio.c initio_msgin_extend(host); host 2083 drivers/scsi/initio.c initio_msgin_accept(host); host 2086 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 2087 drivers/scsi/initio.c outb(TSC_MSG_ACCEPT, host->addr + TUL_SCmd); host 2088 drivers/scsi/initio.c return initio_wait_done_disc(host); host 2090 drivers/scsi/initio.c initio_msgout_reject(host); host 2093 drivers/scsi/initio.c if (host->phase != MSG_IN) host 2094 drivers/scsi/initio.c return host->phase; host 2099 drivers/scsi/initio.c static int initio_msgout_reject(struct initio_host * host) host 2101 drivers/scsi/initio.c outb(((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)) | TSC_SET_ATN), host->addr + TUL_SSignal); host 2103 drivers/scsi/initio.c if (initio_msgin_accept(host) == -1) host 2106 drivers/scsi/initio.c if (host->phase == MSG_OUT) { host 2107 drivers/scsi/initio.c outb(MSG_REJ, host->addr + TUL_SFifo); /* Msg reject */ host 2108 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 2109 drivers/scsi/initio.c return wait_tulip(host); host 2111 drivers/scsi/initio.c return host->phase; host 2114 drivers/scsi/initio.c static int initio_msgout_ide(struct initio_host * host) host 2116 drivers/scsi/initio.c outb(MSG_IDE, host->addr + TUL_SFifo); /* Initiator Detected Error */ host 2117 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 2118 drivers/scsi/initio.c return wait_tulip(host); host 2121 drivers/scsi/initio.c static int initio_msgin_extend(struct initio_host * host) host 2125 drivers/scsi/initio.c if (initio_msgin_accept(host) != MSG_IN) host 2126 drivers/scsi/initio.c return host->phase; host 2129 drivers/scsi/initio.c outl(1, host->addr + TUL_SCnt0); host 2130 drivers/scsi/initio.c outb(TSC_XF_FIFO_IN, host->addr + TUL_SCmd); host 2131 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 2134 drivers/scsi/initio.c len = inb(host->addr + TUL_SFifo); host 2135 drivers/scsi/initio.c host->msg[0] = len; host 2138 drivers/scsi/initio.c if ((initio_msgin_accept(host)) != MSG_IN) host 2139 drivers/scsi/initio.c return host->phase; host 2140 drivers/scsi/initio.c outl(1, host->addr + TUL_SCnt0); host 2141 drivers/scsi/initio.c outb(TSC_XF_FIFO_IN, host->addr + TUL_SCmd); host 2142 drivers/scsi/initio.c if (wait_tulip(host) == -1) host 2144 drivers/scsi/initio.c host->msg[idx++] = inb(host->addr + TUL_SFifo); host 2146 drivers/scsi/initio.c if (host->msg[1] == 1) { /* if it's synchronous data transfer request */ host 2148 drivers/scsi/initio.c if (host->msg[0] != 3) /* if length is not right */ host 2149 drivers/scsi/initio.c return initio_msgout_reject(host); host 2150 drivers/scsi/initio.c if (host->active_tc->flags & TCF_NO_SYNC_NEGO) { /* Set OFFSET=0 to do async, nego back */ host 2151 drivers/scsi/initio.c host->msg[3] = 0; host 2153 drivers/scsi/initio.c if (initio_msgin_sync(host) == 0 && host 2154 drivers/scsi/initio.c (host->active_tc->flags & TCF_SYNC_DONE)) { host 2155 drivers/scsi/initio.c initio_sync_done(host); host 2156 drivers/scsi/initio.c return initio_msgin_accept(host); host 2160 drivers/scsi/initio.c r = inb(host->addr + TUL_SSignal); host 2162 drivers/scsi/initio.c host->addr + TUL_SSignal); host 2163 drivers/scsi/initio.c if (initio_msgin_accept(host) != MSG_OUT) host 2164 drivers/scsi/initio.c return host->phase; host 2166 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); host 2168 drivers/scsi/initio.c initio_sync_done(host); host 2170 drivers/scsi/initio.c outb(MSG_EXTEND, host->addr + TUL_SFifo); host 2171 drivers/scsi/initio.c outb(3, host->addr + TUL_SFifo); host 2172 drivers/scsi/initio.c outb(1, host->addr + TUL_SFifo); host 2173 drivers/scsi/initio.c outb(host->msg[2], host->addr + TUL_SFifo); host 2174 drivers/scsi/initio.c outb(host->msg[3], host->addr + TUL_SFifo); host 2175 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 2176 drivers/scsi/initio.c return wait_tulip(host); host 2178 drivers/scsi/initio.c if (host->msg[0] != 2 || host->msg[1] != 3) host 2179 drivers/scsi/initio.c return initio_msgout_reject(host); host 2181 drivers/scsi/initio.c if (host->active_tc->flags & TCF_NO_WDTR) { host 2182 drivers/scsi/initio.c host->msg[2] = 0; host 2184 drivers/scsi/initio.c if (host->msg[2] > 2) /* > 32 bits */ host 2185 drivers/scsi/initio.c return initio_msgout_reject(host); host 2186 drivers/scsi/initio.c if (host->msg[2] == 2) { /* == 32 */ host 2187 drivers/scsi/initio.c host->msg[2] = 1; host 2189 drivers/scsi/initio.c if ((host->active_tc->flags & TCF_NO_WDTR) == 0) { host 2190 drivers/scsi/initio.c wdtr_done(host); host 2191 drivers/scsi/initio.c if ((host->active_tc->flags & (TCF_SYNC_DONE | TCF_NO_SYNC_NEGO)) == 0) host 2192 drivers/scsi/initio.c outb(((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)) | TSC_SET_ATN), host->addr + TUL_SSignal); host 2193 drivers/scsi/initio.c return initio_msgin_accept(host); host 2197 drivers/scsi/initio.c outb(((inb(host->addr + TUL_SSignal) & (TSC_SET_ACK | 7)) | TSC_SET_ATN), host->addr + TUL_SSignal); host 2199 drivers/scsi/initio.c if (initio_msgin_accept(host) != MSG_OUT) host 2200 drivers/scsi/initio.c return host->phase; host 2202 drivers/scsi/initio.c outb(MSG_EXTEND, host->addr + TUL_SFifo); host 2203 drivers/scsi/initio.c outb(2, host->addr + TUL_SFifo); host 2204 drivers/scsi/initio.c outb(3, host->addr + TUL_SFifo); host 2205 drivers/scsi/initio.c outb(host->msg[2], host->addr + TUL_SFifo); host 2206 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 2207 drivers/scsi/initio.c return wait_tulip(host); host 2210 drivers/scsi/initio.c static int initio_msgin_sync(struct initio_host * host) host 2214 drivers/scsi/initio.c default_period = initio_rate_tbl[host->active_tc->flags & TCF_SCSI_RATE]; host 2215 drivers/scsi/initio.c if (host->msg[3] > MAX_OFFSET) { host 2216 drivers/scsi/initio.c host->msg[3] = MAX_OFFSET; host 2217 drivers/scsi/initio.c if (host->msg[2] < default_period) { host 2218 drivers/scsi/initio.c host->msg[2] = default_period; host 2221 drivers/scsi/initio.c if (host->msg[2] >= 59) /* Change to async */ host 2222 drivers/scsi/initio.c host->msg[3] = 0; host 2226 drivers/scsi/initio.c if (host->msg[3] == 0) { host 2229 drivers/scsi/initio.c if (host->msg[2] < default_period) { host 2230 drivers/scsi/initio.c host->msg[2] = default_period; host 2233 drivers/scsi/initio.c if (host->msg[2] >= 59) { host 2234 drivers/scsi/initio.c host->msg[3] = 0; host 2240 drivers/scsi/initio.c static int wdtr_done(struct initio_host * host) host 2242 drivers/scsi/initio.c host->active_tc->flags &= ~TCF_SYNC_DONE; host 2243 drivers/scsi/initio.c host->active_tc->flags |= TCF_WDTR_DONE; host 2245 drivers/scsi/initio.c host->active_tc->js_period = 0; host 2246 drivers/scsi/initio.c if (host->msg[2]) /* if 16 bit */ host 2247 drivers/scsi/initio.c host->active_tc->js_period |= TSC_WIDE_SCSI; host 2248 drivers/scsi/initio.c host->active_tc->sconfig0 &= ~TSC_ALT_PERIOD; host 2249 drivers/scsi/initio.c outb(host->active_tc->sconfig0, host->addr + TUL_SConfig); host 2250 drivers/scsi/initio.c outb(host->active_tc->js_period, host->addr + TUL_SPeriod); host 2255 drivers/scsi/initio.c static int initio_sync_done(struct initio_host * host) host 2259 drivers/scsi/initio.c host->active_tc->flags |= TCF_SYNC_DONE; host 2261 drivers/scsi/initio.c if (host->msg[3]) { host 2262 drivers/scsi/initio.c host->active_tc->js_period |= host->msg[3]; host 2264 drivers/scsi/initio.c if (initio_rate_tbl[i] >= host->msg[2]) /* pick the big one */ host 2267 drivers/scsi/initio.c host->active_tc->js_period |= (i << 4); host 2268 drivers/scsi/initio.c host->active_tc->sconfig0 |= TSC_ALT_PERIOD; host 2270 drivers/scsi/initio.c outb(host->active_tc->sconfig0, host->addr + TUL_SConfig); host 2271 drivers/scsi/initio.c outb(host->active_tc->js_period, host->addr + TUL_SPeriod); host 2277 drivers/scsi/initio.c static int initio_post_scsi_rst(struct initio_host * host) host 2283 drivers/scsi/initio.c host->active = NULL; host 2284 drivers/scsi/initio.c host->active_tc = NULL; host 2285 drivers/scsi/initio.c host->flags = 0; host 2287 drivers/scsi/initio.c while ((scb = initio_pop_busy_scb(host)) != NULL) { host 2289 drivers/scsi/initio.c initio_append_done_scb(host, scb); host 2292 drivers/scsi/initio.c active_tc = &host->targets[0]; host 2293 drivers/scsi/initio.c for (i = 0; i < host->max_tar; active_tc++, i++) { host 2297 drivers/scsi/initio.c active_tc->sconfig0 = host->sconf1; host 2298 drivers/scsi/initio.c host->act_tags[0] = 0; /* 07/22/98 */ host 2299 drivers/scsi/initio.c host->targets[i].flags &= ~TCF_BUSY; /* 07/22/98 */ host 2305 drivers/scsi/initio.c static void initio_select_atn_stop(struct initio_host * host, struct scsi_ctrl_blk * scb) host 2309 drivers/scsi/initio.c host->active = scb; host 2310 drivers/scsi/initio.c host->active_tc = &host->targets[scb->target]; host 2311 drivers/scsi/initio.c outb(TSC_SELATNSTOP, host->addr + TUL_SCmd); host 2315 drivers/scsi/initio.c static void initio_select_atn(struct initio_host * host, struct scsi_ctrl_blk * scb) host 2322 drivers/scsi/initio.c outb(scb->ident, host->addr + TUL_SFifo); host 2324 drivers/scsi/initio.c outb(scb->cdb[i], host->addr + TUL_SFifo); host 2325 drivers/scsi/initio.c host->active_tc = &host->targets[scb->target]; host 2326 drivers/scsi/initio.c host->active = scb; host 2327 drivers/scsi/initio.c outb(TSC_SEL_ATN, host->addr + TUL_SCmd); host 2330 drivers/scsi/initio.c static void initio_select_atn3(struct initio_host * host, struct scsi_ctrl_blk * scb) host 2337 drivers/scsi/initio.c outb(scb->ident, host->addr + TUL_SFifo); host 2338 drivers/scsi/initio.c outb(scb->tagmsg, host->addr + TUL_SFifo); host 2339 drivers/scsi/initio.c outb(scb->tagid, host->addr + TUL_SFifo); host 2341 drivers/scsi/initio.c outb(scb->cdb[i], host->addr + TUL_SFifo); host 2342 drivers/scsi/initio.c host->active_tc = &host->targets[scb->target]; host 2343 drivers/scsi/initio.c host->active = scb; host 2344 drivers/scsi/initio.c outb(TSC_SEL_ATN3, host->addr + TUL_SCmd); host 2354 drivers/scsi/initio.c int initio_bus_device_reset(struct initio_host * host) host 2356 drivers/scsi/initio.c struct scsi_ctrl_blk *scb = host->active; host 2357 drivers/scsi/initio.c struct target_control *active_tc = host->active_tc; host 2361 drivers/scsi/initio.c if (host->phase != MSG_OUT) host 2362 drivers/scsi/initio.c return int_initio_bad_seq(host); /* Unexpected phase */ host 2364 drivers/scsi/initio.c initio_unlink_pend_scb(host, scb); host 2365 drivers/scsi/initio.c initio_release_scb(host, scb); host 2373 drivers/scsi/initio.c prev = tmp = host->first_busy; /* Check Busy queue */ host 2377 drivers/scsi/initio.c if (tmp == host->first_busy) { host 2378 drivers/scsi/initio.c if ((host->first_busy = tmp->next) == NULL) host 2379 drivers/scsi/initio.c host->last_busy = NULL; host 2382 drivers/scsi/initio.c if (tmp == host->last_busy) host 2383 drivers/scsi/initio.c host->last_busy = prev; host 2386 drivers/scsi/initio.c initio_append_done_scb(host, tmp); host 2394 drivers/scsi/initio.c outb(MSG_DEVRST, host->addr + TUL_SFifo); host 2395 drivers/scsi/initio.c outb(TSC_XF_FIFO_OUT, host->addr + TUL_SCmd); host 2396 drivers/scsi/initio.c return initio_wait_disc(host); host 2400 drivers/scsi/initio.c static int initio_msgin_accept(struct initio_host * host) host 2402 drivers/scsi/initio.c outb(TSC_MSG_ACCEPT, host->addr + TUL_SCmd); host 2403 drivers/scsi/initio.c return wait_tulip(host); host 2406 drivers/scsi/initio.c static int wait_tulip(struct initio_host * host) host 2409 drivers/scsi/initio.c while (!((host->jsstatus0 = inb(host->addr + TUL_SStatus0)) host 2413 drivers/scsi/initio.c host->jsint = inb(host->addr + TUL_SInt); host 2414 drivers/scsi/initio.c host->phase = host->jsstatus0 & TSS_PH_MASK; host 2415 drivers/scsi/initio.c host->jsstatus1 = inb(host->addr + TUL_SStatus1); host 2417 drivers/scsi/initio.c if (host->jsint & TSS_RESEL_INT) /* if SCSI bus reset detected */ host 2418 drivers/scsi/initio.c return int_initio_resel(host); host 2419 drivers/scsi/initio.c if (host->jsint & TSS_SEL_TIMEOUT) /* if selected/reselected timeout interrupt */ host 2420 drivers/scsi/initio.c return int_initio_busfree(host); host 2421 drivers/scsi/initio.c if (host->jsint & TSS_SCSIRST_INT) /* if SCSI bus reset detected */ host 2422 drivers/scsi/initio.c return int_initio_scsi_rst(host); host 2424 drivers/scsi/initio.c if (host->jsint & TSS_DISC_INT) { /* BUS disconnection */ host 2425 drivers/scsi/initio.c if (host->flags & HCF_EXPECT_DONE_DISC) { host 2426 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); /* Flush SCSI FIFO */ host 2427 drivers/scsi/initio.c initio_unlink_busy_scb(host, host->active); host 2428 drivers/scsi/initio.c host->active->hastat = 0; host 2429 drivers/scsi/initio.c initio_append_done_scb(host, host->active); host 2430 drivers/scsi/initio.c host->active = NULL; host 2431 drivers/scsi/initio.c host->active_tc = NULL; host 2432 drivers/scsi/initio.c host->flags &= ~HCF_EXPECT_DONE_DISC; host 2433 drivers/scsi/initio.c outb(TSC_INITDEFAULT, host->addr + TUL_SConfig); host 2434 drivers/scsi/initio.c outb(TSC_HW_RESELECT, host->addr + TUL_SCtrl1); /* Enable HW reselect */ host 2437 drivers/scsi/initio.c if (host->flags & HCF_EXPECT_DISC) { host 2438 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); /* Flush SCSI FIFO */ host 2439 drivers/scsi/initio.c host->active = NULL; host 2440 drivers/scsi/initio.c host->active_tc = NULL; host 2441 drivers/scsi/initio.c host->flags &= ~HCF_EXPECT_DISC; host 2442 drivers/scsi/initio.c outb(TSC_INITDEFAULT, host->addr + TUL_SConfig); host 2443 drivers/scsi/initio.c outb(TSC_HW_RESELECT, host->addr + TUL_SCtrl1); /* Enable HW reselect */ host 2446 drivers/scsi/initio.c return int_initio_busfree(host); host 2449 drivers/scsi/initio.c if (host->jsint & (TSS_FUNC_COMP | TSS_BUS_SERV)) host 2450 drivers/scsi/initio.c return host->phase; host 2451 drivers/scsi/initio.c return host->phase; host 2454 drivers/scsi/initio.c static int initio_wait_disc(struct initio_host * host) host 2456 drivers/scsi/initio.c while (!((host->jsstatus0 = inb(host->addr + TUL_SStatus0)) & TSS_INT_PENDING)) host 2459 drivers/scsi/initio.c host->jsint = inb(host->addr + TUL_SInt); host 2461 drivers/scsi/initio.c if (host->jsint & TSS_SCSIRST_INT) /* if SCSI bus reset detected */ host 2462 drivers/scsi/initio.c return int_initio_scsi_rst(host); host 2463 drivers/scsi/initio.c if (host->jsint & TSS_DISC_INT) { /* BUS disconnection */ host 2464 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); /* Flush SCSI FIFO */ host 2465 drivers/scsi/initio.c outb(TSC_INITDEFAULT, host->addr + TUL_SConfig); host 2466 drivers/scsi/initio.c outb(TSC_HW_RESELECT, host->addr + TUL_SCtrl1); /* Enable HW reselect */ host 2467 drivers/scsi/initio.c host->active = NULL; host 2470 drivers/scsi/initio.c return initio_bad_seq(host); host 2473 drivers/scsi/initio.c static int initio_wait_done_disc(struct initio_host * host) host 2475 drivers/scsi/initio.c while (!((host->jsstatus0 = inb(host->addr + TUL_SStatus0)) host 2479 drivers/scsi/initio.c host->jsint = inb(host->addr + TUL_SInt); host 2481 drivers/scsi/initio.c if (host->jsint & TSS_SCSIRST_INT) /* if SCSI bus reset detected */ host 2482 drivers/scsi/initio.c return int_initio_scsi_rst(host); host 2483 drivers/scsi/initio.c if (host->jsint & TSS_DISC_INT) { /* BUS disconnection */ host 2484 drivers/scsi/initio.c outb(TSC_FLUSH_FIFO, host->addr + TUL_SCtrl0); /* Flush SCSI FIFO */ host 2485 drivers/scsi/initio.c outb(TSC_INITDEFAULT, host->addr + TUL_SConfig); host 2486 drivers/scsi/initio.c outb(TSC_HW_RESELECT, host->addr + TUL_SCtrl1); /* Enable HW reselect */ host 2487 drivers/scsi/initio.c initio_unlink_busy_scb(host, host->active); host 2489 drivers/scsi/initio.c initio_append_done_scb(host, host->active); host 2490 drivers/scsi/initio.c host->active = NULL; host 2493 drivers/scsi/initio.c return initio_bad_seq(host); host 2532 drivers/scsi/initio.c static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * cblk, struct scsi_cmnd * cmnd) host 2552 drivers/scsi/initio.c dma_addr = dma_map_single(&host->pci_dev->dev, cmnd->sense_buffer, host 2576 drivers/scsi/initio.c dma_addr = dma_map_single(&host->pci_dev->dev, &cblk->sglist[0], host 2615 drivers/scsi/initio.c struct initio_host *host = (struct initio_host *) cmd->device->host->hostdata; host 2620 drivers/scsi/initio.c cmnd = initio_alloc_scb(host); host 2624 drivers/scsi/initio.c initio_build_scb(host, cmnd, cmd); host 2625 drivers/scsi/initio.c initio_exec_scb(host, cmnd); host 2640 drivers/scsi/initio.c struct initio_host *host; host 2642 drivers/scsi/initio.c host = (struct initio_host *) cmnd->device->host->hostdata; host 2644 drivers/scsi/initio.c spin_lock_irq(cmnd->device->host->host_lock); host 2645 drivers/scsi/initio.c initio_reset_scsi(host, 0); host 2646 drivers/scsi/initio.c spin_unlock_irq(cmnd->device->host->host_lock); host 2667 drivers/scsi/initio.c struct initio_host *host; /* Point to Host adapter control block */ host 2670 drivers/scsi/initio.c host = (struct initio_host *) sdev->host->hostdata; host 2671 drivers/scsi/initio.c tc = &host->targets[sdev->id]; host 2741 drivers/scsi/initio.c struct initio_host *host; host 2744 drivers/scsi/initio.c host = (struct initio_host *) host_mem; host 2749 drivers/scsi/initio.c initio_release_scb(host, cblk); /* Release SCB for current channel */ host 2792 drivers/scsi/initio.c i91u_unmap_scb(host->pci_dev, cmnd); host 2794 drivers/scsi/initio.c initio_release_scb(host, cblk); /* Release SCB for current channel */ host 2812 drivers/scsi/initio.c struct initio_host *host; host 2839 drivers/scsi/initio.c host = (struct initio_host *)shost->hostdata; host 2840 drivers/scsi/initio.c memset(host, 0, sizeof(struct initio_host)); host 2841 drivers/scsi/initio.c host->addr = pci_resource_start(pdev, 0); host 2842 drivers/scsi/initio.c host->bios_addr = bios_seg; host 2844 drivers/scsi/initio.c if (!request_region(host->addr, 256, "i91u")) { host 2845 drivers/scsi/initio.c printk(KERN_WARNING "initio: I/O port range 0x%x is busy.\n", host->addr); host 2867 drivers/scsi/initio.c host->pci_dev = pdev; host 2869 drivers/scsi/initio.c host->semaph = 1; host 2870 drivers/scsi/initio.c spin_lock_init(&host->semaph_lock); host 2871 drivers/scsi/initio.c host->num_scbs = num_scb; host 2872 drivers/scsi/initio.c host->scb = scb; host 2873 drivers/scsi/initio.c host->next_pending = scb; host 2874 drivers/scsi/initio.c host->next_avail = scb; host 2882 drivers/scsi/initio.c host->scb_end = tmp; host 2883 drivers/scsi/initio.c host->first_avail = scb; host 2884 drivers/scsi/initio.c host->last_avail = prev; host 2885 drivers/scsi/initio.c spin_lock_init(&host->avail_lock); host 2887 drivers/scsi/initio.c initio_init(host, phys_to_virt(((u32)bios_seg << 4))); host 2889 drivers/scsi/initio.c host->jsstatus0 = 0; host 2891 drivers/scsi/initio.c shost->io_port = host->addr; host 2894 drivers/scsi/initio.c shost->unique_id = host->addr; host 2895 drivers/scsi/initio.c shost->max_id = host->max_tar; host 2898 drivers/scsi/initio.c shost->this_id = host->scsi_id; /* Assign HCS index */ host 2899 drivers/scsi/initio.c shost->base = host->addr; host 2918 drivers/scsi/initio.c kfree(host->scb); host 2920 drivers/scsi/initio.c release_region(host->addr, 256); host 2938 drivers/scsi/initio.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 2939 drivers/scsi/initio.c struct initio_host *s = (struct initio_host *)host->hostdata; host 2940 drivers/scsi/initio.c scsi_remove_host(host); host 2941 drivers/scsi/initio.c free_irq(pdev->irq, host); host 2943 drivers/scsi/initio.c scsi_host_put(host); host 623 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 625 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 1077 drivers/scsi/ipr.c spin_unlock_irq(ioa_cfg->host->host_lock); host 1079 drivers/scsi/ipr.c spin_lock_irq(ioa_cfg->host->host_lock); host 1325 drivers/scsi/ipr.c p += snprintf(p, buffer + len - p, "%d/", ioa_cfg->host->host_no); host 1840 drivers/scsi/ipr.c ioa_cfg->host->host_no, host 1891 drivers/scsi/ipr.c ioa_cfg->host->host_no, host 2526 drivers/scsi/ipr.c scsi_report_bus_reset(ioa_cfg->host, host 2685 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 2697 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 2718 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 2733 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3001 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3010 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3151 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3154 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3159 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3161 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3169 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3226 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3242 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3311 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3314 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3335 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3341 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3354 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3357 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3370 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3371 drivers/scsi/ipr.c scsi_add_device(ioa_cfg->host, bus, target, lun); host 3372 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3378 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3379 drivers/scsi/ipr.c kobject_uevent(&ioa_cfg->host->shost_dev.kobj, KOBJ_CHANGE); host 3402 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3407 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3411 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3415 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3418 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3425 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3426 drivers/scsi/ipr.c scsi_unblock_requests(ioa_cfg->host); host 3427 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3429 drivers/scsi/ipr.c scsi_block_requests(ioa_cfg->host); host 3433 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3439 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3466 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3469 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3501 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3506 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3534 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3536 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3556 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3558 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3595 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3597 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3599 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3606 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3612 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3616 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3619 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3648 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3653 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3680 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3693 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 3731 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 3734 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4024 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4026 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4028 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4032 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4043 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4051 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4054 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4056 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4155 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4157 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4180 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4184 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4189 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4203 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4207 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4213 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4268 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4272 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4276 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4379 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4382 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4394 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4413 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4416 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4421 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4490 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)sdev->host->hostdata; host 4494 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4499 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4517 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)sdev->host->hostdata; host 4522 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4526 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4551 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)sdev->host->hostdata; host 4557 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4564 drivers/scsi/ipr.c len = snprintf(buf, PAGE_SIZE, "%d:%d:%d:%d\n", ioa_cfg->host->host_no, host 4567 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4591 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)sdev->host->hostdata; host 4596 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4603 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4627 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)sdev->host->hostdata; host 4632 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4638 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4662 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)sdev->host->hostdata; host 4667 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4673 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4690 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *)sdev->host->hostdata; host 4695 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4708 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4809 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4814 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4821 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4834 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4880 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *) sdev->host->hostdata; host 4906 drivers/scsi/ipr.c ioa_cfg = (struct ipr_ioa_cfg *) sdev->host->hostdata; host 4908 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4917 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4931 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *) sdev->host->hostdata; host 4937 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 4955 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 4968 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5017 drivers/scsi/ipr.c struct ipr_ioa_cfg *ioa_cfg = (struct ipr_ioa_cfg *) sdev->host->hostdata; host 5024 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 5036 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5041 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5173 drivers/scsi/ipr.c ioa_cfg = (struct ipr_ioa_cfg *) cmd->device->host->hostdata; host 5174 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 5185 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5187 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 5196 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5280 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 5282 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5284 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 5291 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5295 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 5297 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5302 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5329 drivers/scsi/ipr.c ioa_cfg = (struct ipr_ioa_cfg *) scsi_cmd->device->host->hostdata; host 5367 drivers/scsi/ipr.c spin_unlock_irq(scsi_cmd->device->host->host_lock); host 5369 drivers/scsi/ipr.c spin_lock_irq(scsi_cmd->device->host->host_lock); host 5385 drivers/scsi/ipr.c ioa_cfg = (struct ipr_ioa_cfg *) cmd->device->host->hostdata; host 5391 drivers/scsi/ipr.c spin_lock_irq(cmd->device->host->host_lock); host 5393 drivers/scsi/ipr.c spin_unlock_irq(cmd->device->host->host_lock); host 5423 drivers/scsi/ipr.c scsi_report_bus_reset(ioa_cfg->host, res->bus); host 5461 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 5463 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5478 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 5502 drivers/scsi/ipr.c ioa_cfg = (struct ipr_ioa_cfg *)scsi_cmd->device->host->hostdata; host 5607 drivers/scsi/ipr.c ioa_cfg = (struct ipr_ioa_cfg *) scsi_cmd->device->host->hostdata; host 5609 drivers/scsi/ipr.c spin_lock_irqsave(scsi_cmd->device->host->host_lock, flags); host 5611 drivers/scsi/ipr.c spin_unlock_irqrestore(scsi_cmd->device->host->host_lock, flags); host 6455 drivers/scsi/ipr.c scsi_report_bus_reset(ioa_cfg->host, scsi_cmd->device->channel); host 6526 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 6530 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 6564 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 6566 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 6710 drivers/scsi/ipr.c static const char *ipr_ioa_info(struct Scsi_Host *host) host 6716 drivers/scsi/ipr.c ioa_cfg = (struct ipr_ioa_cfg *) host->hostdata; host 6718 drivers/scsi/ipr.c spin_lock_irqsave(host->host_lock, lock_flags); host 6720 drivers/scsi/ipr.c spin_unlock_irqrestore(host->host_lock, lock_flags); host 6766 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 6768 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 6770 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 6788 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 6807 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 6809 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 6811 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 6824 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 6881 drivers/scsi/ipr.c scsi_report_device_reset(ioa_cfg->host, res->bus, res->target); host 7294 drivers/scsi/ipr.c scsi_report_bus_reset(ioa_cfg->host, IPR_VSET_BUS); host 8281 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 8288 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 8800 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 8803 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 9257 drivers/scsi/ipr.c scsi_block_requests(ioa_cfg->host); host 9365 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 9368 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 9385 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 9388 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 9404 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 9413 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 9430 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 9445 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 9492 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); host 9501 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); host 9616 drivers/scsi/ipr.c scsi_host_put(ioa_cfg->host); host 9919 drivers/scsi/ipr.c struct Scsi_Host *host, struct pci_dev *pdev) host 9923 drivers/scsi/ipr.c ioa_cfg->host = host; host 9950 drivers/scsi/ipr.c host->max_channel = IPR_MAX_SIS64_BUSES; host 9951 drivers/scsi/ipr.c host->max_id = IPR_MAX_SIS64_TARGETS_PER_BUS; host 9952 drivers/scsi/ipr.c host->max_lun = IPR_MAX_SIS64_LUNS_PER_TARGET; host 9959 drivers/scsi/ipr.c host->max_channel = IPR_VSET_BUS; host 9960 drivers/scsi/ipr.c host->max_id = IPR_MAX_NUM_TARGETS_PER_BUS; host 9961 drivers/scsi/ipr.c host->max_lun = IPR_MAX_NUM_LUNS_PER_TARGET; host 9969 drivers/scsi/ipr.c host->unique_id = host->host_no; host 9970 drivers/scsi/ipr.c host->max_cmd_len = IPR_MAX_CDB_LEN; host 9971 drivers/scsi/ipr.c host->can_queue = ioa_cfg->max_cmds; host 9979 drivers/scsi/ipr.c ioa_cfg->hrrq[i].lock = ioa_cfg->host->host_lock; host 10030 drivers/scsi/ipr.c "host%d-%d", ioa_cfg->host->host_no, vec_idx); host 10074 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 10079 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 10103 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 10109 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 10121 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 10131 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 10151 drivers/scsi/ipr.c struct Scsi_Host *host; host 10162 drivers/scsi/ipr.c host = scsi_host_alloc(&driver_template, sizeof(*ioa_cfg)); host 10164 drivers/scsi/ipr.c if (!host) { host 10170 drivers/scsi/ipr.c ioa_cfg = (struct ipr_ioa_cfg *)host->hostdata; host 10197 drivers/scsi/ipr.c ipr_init_ioa_cfg(ioa_cfg, host, pdev); host 10357 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 10359 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 10385 drivers/scsi/ipr.c WQ_MEM_RECLAIM, host->host_no); host 10417 drivers/scsi/ipr.c scsi_host_put(host); host 10464 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); host 10466 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); host 10468 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); host 10479 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); host 10485 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); host 10493 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); host 10515 drivers/scsi/ipr.c ipr_remove_trace_file(&ioa_cfg->host->shost_dev.kobj, host 10517 drivers/scsi/ipr.c ipr_remove_dump_file(&ioa_cfg->host->shost_dev.kobj, host 10519 drivers/scsi/ipr.c sysfs_remove_bin_file(&ioa_cfg->host->shost_dev.kobj, host 10521 drivers/scsi/ipr.c scsi_remove_host(ioa_cfg->host); host 10553 drivers/scsi/ipr.c rc = scsi_add_host(ioa_cfg->host, &pdev->dev); host 10560 drivers/scsi/ipr.c rc = ipr_create_trace_file(&ioa_cfg->host->shost_dev.kobj, host 10564 drivers/scsi/ipr.c scsi_remove_host(ioa_cfg->host); host 10569 drivers/scsi/ipr.c rc = sysfs_create_bin_file(&ioa_cfg->host->shost_dev.kobj, host 10573 drivers/scsi/ipr.c ipr_remove_dump_file(&ioa_cfg->host->shost_dev.kobj, host 10575 drivers/scsi/ipr.c ipr_remove_trace_file(&ioa_cfg->host->shost_dev.kobj, host 10577 drivers/scsi/ipr.c scsi_remove_host(ioa_cfg->host); host 10582 drivers/scsi/ipr.c rc = ipr_create_dump_file(&ioa_cfg->host->shost_dev.kobj, host 10586 drivers/scsi/ipr.c sysfs_remove_bin_file(&ioa_cfg->host->shost_dev.kobj, host 10588 drivers/scsi/ipr.c ipr_remove_trace_file(&ioa_cfg->host->shost_dev.kobj, host 10590 drivers/scsi/ipr.c scsi_remove_host(ioa_cfg->host); host 10594 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 10597 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 10608 drivers/scsi/ipr.c scsi_scan_host(ioa_cfg->host); host 10630 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 10638 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 10640 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); host 10647 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); host 10813 drivers/scsi/ipr.c spin_lock_irqsave(ioa_cfg->host->host_lock, flags); host 10816 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 10827 drivers/scsi/ipr.c spin_unlock_irqrestore(ioa_cfg->host->host_lock, flags); host 1560 drivers/scsi/ipr.h struct Scsi_Host *host; host 1783 drivers/scsi/ipr.h printk(level IPR_NAME ": %d:%d:%d:%d: " fmt, (ioa_cfg)->host->host_no, \ host 1790 drivers/scsi/ipr.h printk(level IPR_NAME ": %d:%d:%d:%d: " fmt, (ioa_cfg)->host->host_no, \ host 1802 drivers/scsi/ipr.h ##__VA_ARGS__, (ioa_cfg)->host->host_no, \ host 780 drivers/scsi/ips.c struct Scsi_Host *host; host 787 drivers/scsi/ips.c host = SC->device->host; host 788 drivers/scsi/ips.c ha = (ips_ha_t *) SC->device->host->hostdata; host 796 drivers/scsi/ips.c spin_lock(host->host_lock); host 817 drivers/scsi/ips.c spin_unlock(host->host_lock); host 852 drivers/scsi/ips.c ha = (ips_ha_t *) SC->device->host->hostdata; host 1019 drivers/scsi/ips.c spin_lock_irq(SC->device->host->host_lock); host 1021 drivers/scsi/ips.c spin_unlock_irq(SC->device->host->host_lock); host 1045 drivers/scsi/ips.c ha = (ips_ha_t *) SC->device->host->hostdata; host 1143 drivers/scsi/ips.c ips_ha_t *ha = (ips_ha_t *) sdev->host->hostdata; host 1196 drivers/scsi/ips.c ha = IPS_HA(SDptr->host); host 1222 drivers/scsi/ips.c struct Scsi_Host *host; host 1230 drivers/scsi/ips.c host = ips_sh[ha->host_num]; host 1232 drivers/scsi/ips.c if (!host) { host 1237 drivers/scsi/ips.c spin_lock(host->host_lock); host 1240 drivers/scsi/ips.c spin_unlock(host->host_lock); host 1246 drivers/scsi/ips.c spin_unlock(host->host_lock); host 1426 drivers/scsi/ips.c ips_write_info(struct Scsi_Host *host, char *buffer, int length) host 1434 drivers/scsi/ips.c if (ips_sh[i] == host) { host 1448 drivers/scsi/ips.c ips_show_info(struct seq_file *m, struct Scsi_Host *host) host 1456 drivers/scsi/ips.c if (ips_sh[i] == host) { host 2530 drivers/scsi/ips.c struct Scsi_Host *host; host 2535 drivers/scsi/ips.c host = ips_sh[ha->host_num]; host 2541 drivers/scsi/ips.c spin_lock(host->host_lock); host 2565 drivers/scsi/ips.c spin_unlock(host->host_lock); host 2572 drivers/scsi/ips.c spin_lock(host->host_lock); host 2642 drivers/scsi/ips.c spin_unlock(host->host_lock); /* Unlock HA after command is taken off queue */ host 2699 drivers/scsi/ips.c spin_lock(host->host_lock); host 2738 drivers/scsi/ips.c spin_unlock(host->host_lock); host 960 drivers/scsi/iscsi_tcp.c struct iscsi_sw_tcp_host *tcp_sw_host = iscsi_host_priv(sdev->host); host 108 drivers/scsi/jazz_esp.c struct Scsi_Host *host; host 113 drivers/scsi/jazz_esp.c host = scsi_host_alloc(tpnt, sizeof(struct esp)); host 116 drivers/scsi/jazz_esp.c if (!host) host 119 drivers/scsi/jazz_esp.c host->max_id = 8; host 120 drivers/scsi/jazz_esp.c esp = shost_priv(host); host 122 drivers/scsi/jazz_esp.c esp->host = host; host 146 drivers/scsi/jazz_esp.c host->irq = platform_get_irq(dev, 0); host 147 drivers/scsi/jazz_esp.c err = request_irq(host->irq, scsi_esp_intr, IRQF_SHARED, "ESP", esp); host 152 drivers/scsi/jazz_esp.c esp->host->this_id = esp->scsi_id; host 165 drivers/scsi/jazz_esp.c free_irq(host->irq, esp); host 172 drivers/scsi/jazz_esp.c scsi_host_put(host); host 180 drivers/scsi/jazz_esp.c unsigned int irq = esp->host->irq; host 189 drivers/scsi/jazz_esp.c scsi_host_put(esp->host); host 91 drivers/scsi/lasi700.c struct Scsi_Host *host; host 115 drivers/scsi/lasi700.c host = NCR_700_detect(&lasi700_template, hostdata, &dev->dev); host 116 drivers/scsi/lasi700.c if (!host) host 118 drivers/scsi/lasi700.c host->this_id = 7; host 119 drivers/scsi/lasi700.c host->base = base; host 120 drivers/scsi/lasi700.c host->irq = dev->irq; host 121 drivers/scsi/lasi700.c if(request_irq(dev->irq, NCR_700_intr, IRQF_SHARED, "lasi700", host)) { host 126 drivers/scsi/lasi700.c dev_set_drvdata(&dev->dev, host); host 127 drivers/scsi/lasi700.c scsi_scan_host(host); host 132 drivers/scsi/lasi700.c scsi_host_put(host); host 142 drivers/scsi/lasi700.c struct Scsi_Host *host = dev_get_drvdata(&dev->dev); host 144 drivers/scsi/lasi700.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 146 drivers/scsi/lasi700.c scsi_remove_host(host); host 147 drivers/scsi/lasi700.c NCR_700_release(host); host 148 drivers/scsi/lasi700.c free_irq(host->irq, host); host 935 drivers/scsi/libfc/fc_exch.c lport->host->host_no, lport->port_id, xid, cpu); host 2022 drivers/scsi/libfc/fc_exch.c if (sid == fc_host_port_id(lport->host)) host 2296 drivers/scsi/libfc/fc_exch.c xid = fc_host_port_id(lport->host) == sid ? host 361 drivers/scsi/libfc/fc_fcp.c spin_lock_irqsave(lport->host->host_lock, flags); host 374 drivers/scsi/libfc/fc_fcp.c can_queue = lport->host->can_queue << 1; host 379 drivers/scsi/libfc/fc_fcp.c lport->host->can_queue = can_queue; host 380 drivers/scsi/libfc/fc_fcp.c shost_printk(KERN_ERR, lport->host, "libfc: increased " host 384 drivers/scsi/libfc/fc_fcp.c spin_unlock_irqrestore(lport->host->host_lock, flags); host 404 drivers/scsi/libfc/fc_fcp.c spin_lock_irqsave(lport->host->host_lock, flags); host 413 drivers/scsi/libfc/fc_fcp.c can_queue = lport->host->can_queue; host 417 drivers/scsi/libfc/fc_fcp.c lport->host->can_queue = can_queue; host 421 drivers/scsi/libfc/fc_fcp.c spin_unlock_irqrestore(lport->host->host_lock, flags); host 446 drivers/scsi/libfc/fc_fcp.c shost_printk(KERN_ERR, lport->host, host 448 drivers/scsi/libfc/fc_fcp.c "reducing can_queue to %d.\n", lport->host->can_queue); host 1887 drivers/scsi/libfc/fc_fcp.c shost_printk(KERN_ERR, lport->host, host 1890 drivers/scsi/libfc/fc_fcp.c lport->host->can_queue); host 2113 drivers/scsi/libfc/fc_fcp.c lport = shost_priv(sc_cmd->device->host); host 2165 drivers/scsi/libfc/fc_fcp.c lport = shost_priv(sc_cmd->device->host); host 2203 drivers/scsi/libfc/fc_fcp.c struct Scsi_Host *shost = sc_cmd->device->host; host 2308 drivers/scsi/libfc/fc_fcp.c si->max_can_queue = lport->host->can_queue; host 37 drivers/scsi/libfc/fc_libfc.h (lport)->host->host_no, \ host 43 drivers/scsi/libfc/fc_libfc.h fc_disc_lport(disc)->host->host_no, \ host 49 drivers/scsi/libfc/fc_libfc.h (lport)->host->host_no, \ host 63 drivers/scsi/libfc/fc_libfc.h (pkt)->lp->host->host_no, \ host 68 drivers/scsi/libfc/fc_libfc.h (pkt)->lp->host->host_no, \ host 76 drivers/scsi/libfc/fc_libfc.h (exch)->lp->host->host_no, \ host 82 drivers/scsi/libfc/fc_libfc.h (lport)->host->host_no, ##args)) host 559 drivers/scsi/libfc/fc_lport.c lport->host->host_no, lport->port_id); host 589 drivers/scsi/libfc/fc_lport.c lport->host->host_no, lport->port_id); host 694 drivers/scsi/libfc/fc_lport.c lport->host->host_no, lport->port_id); host 738 drivers/scsi/libfc/fc_lport.c lport->host->host_no, port_id); host 743 drivers/scsi/libfc/fc_lport.c fc_host_port_id(lport->host) = port_id; host 810 drivers/scsi/libfc/fc_lport.c lport->host->host_no, remote_wwpn); host 1008 drivers/scsi/libfc/fc_lport.c fc_host_fabric_name(lport->host) = 0; host 1035 drivers/scsi/libfc/fc_lport.c fc_host_post_event(lport->host, fc_get_event_number(), host 1350 drivers/scsi/libfc/fc_lport.c len = strnlen(fc_host_symbolic_name(lport->host), 255); host 1358 drivers/scsi/libfc/fc_lport.c len = strnlen(fc_host_symbolic_name(lport->host), 255); host 1739 drivers/scsi/libfc/fc_lport.c fc_host_maxframe_size(lport->host) = mfs; host 1758 drivers/scsi/libfc/fc_lport.c lport->host->host_no, did); host 1769 drivers/scsi/libfc/fc_lport.c fc_host_fabric_name(lport->host) = host 1840 drivers/scsi/libfc/fc_lport.c fc_host_port_type(lport->host) = FC_PORTTYPE_NPORT; host 1841 drivers/scsi/libfc/fc_lport.c fc_host_node_name(lport->host) = lport->wwnn; host 1842 drivers/scsi/libfc/fc_lport.c fc_host_port_name(lport->host) = lport->wwpn; host 1843 drivers/scsi/libfc/fc_lport.c fc_host_supported_classes(lport->host) = FC_COS_CLASS3; host 1844 drivers/scsi/libfc/fc_lport.c memset(fc_host_supported_fc4s(lport->host), 0, host 1845 drivers/scsi/libfc/fc_lport.c sizeof(fc_host_supported_fc4s(lport->host))); host 1846 drivers/scsi/libfc/fc_lport.c fc_host_supported_fc4s(lport->host)[2] = 1; host 1847 drivers/scsi/libfc/fc_lport.c fc_host_supported_fc4s(lport->host)[7] = 1; host 1850 drivers/scsi/libfc/fc_lport.c memset(fc_host_active_fc4s(lport->host), 0, host 1851 drivers/scsi/libfc/fc_lport.c sizeof(fc_host_active_fc4s(lport->host))); host 1852 drivers/scsi/libfc/fc_lport.c fc_host_active_fc4s(lport->host)[2] = 1; host 1853 drivers/scsi/libfc/fc_lport.c fc_host_active_fc4s(lport->host)[7] = 1; host 1854 drivers/scsi/libfc/fc_lport.c fc_host_maxframe_size(lport->host) = lport->mfs; host 1855 drivers/scsi/libfc/fc_lport.c fc_host_supported_speeds(lport->host) = 0; host 1857 drivers/scsi/libfc/fc_lport.c fc_host_supported_speeds(lport->host) |= FC_PORTSPEED_1GBIT; host 1859 drivers/scsi/libfc/fc_lport.c fc_host_supported_speeds(lport->host) |= FC_PORTSPEED_10GBIT; host 287 drivers/scsi/libfc/fc_rport.c rport = fc_remote_port_add(lport->host, 0, &ids); host 1287 drivers/scsi/libfc/fc_rport.c fc_host_port_id(lport->host), FC_TYPE_ELS, host 1659 drivers/scsi/libfc/fc_rport.c fc_get_host_stats(lport->host); host 88 drivers/scsi/libiscsi.c struct Scsi_Host *shost = conn->session->host; host 661 drivers/scsi/libiscsi.c struct iscsi_host *ihost = shost_priv(session->host); host 1635 drivers/scsi/libiscsi.c int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc) host 1647 drivers/scsi/libiscsi.c ihost = shost_priv(host); host 1903 drivers/scsi/libiscsi.c struct Scsi_Host *shost = conn->session->host; host 2787 drivers/scsi/libiscsi.c session->host = shost; host 2851 drivers/scsi/libiscsi.c struct Scsi_Host *shost = session->host; host 171 drivers/scsi/libsas/sas_ata.c struct Scsi_Host *host = sas_ha->core.shost; host 172 drivers/scsi/libsas/sas_ata.c struct sas_internal *i = to_sas_internal(host->transportt); host 163 drivers/scsi/libsas/sas_scsi_host.c int sas_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) host 165 drivers/scsi/libsas/sas_scsi_host.c struct sas_internal *i = to_sas_internal(host->transportt); host 207 drivers/scsi/libsas/sas_scsi_host.c struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(cmd->device->host); host 464 drivers/scsi/libsas/sas_scsi_host.c struct Scsi_Host *host = cmd->device->host; host 466 drivers/scsi/libsas/sas_scsi_host.c struct sas_internal *i = to_sas_internal(host->transportt); host 472 drivers/scsi/libsas/sas_scsi_host.c spin_lock_irqsave(host->host_lock, flags); host 474 drivers/scsi/libsas/sas_scsi_host.c if (dev_is_sata(dev) && !host->host_eh_scheduled) { host 475 drivers/scsi/libsas/sas_scsi_host.c spin_unlock_irqrestore(host->host_lock, flags); host 478 drivers/scsi/libsas/sas_scsi_host.c spin_unlock_irqrestore(host->host_lock, flags); host 496 drivers/scsi/libsas/sas_scsi_host.c struct Scsi_Host *host = cmd->device->host; host 498 drivers/scsi/libsas/sas_scsi_host.c struct sas_internal *i = to_sas_internal(host->transportt); host 500 drivers/scsi/libsas/sas_scsi_host.c if (current != host->ehandler) host 518 drivers/scsi/libsas/sas_scsi_host.c struct Scsi_Host *host = cmd->device->host; host 520 drivers/scsi/libsas/sas_scsi_host.c struct sas_internal *i = to_sas_internal(host->transportt); host 522 drivers/scsi/libsas/sas_scsi_host.c if (current != host->ehandler) host 540 drivers/scsi/libsas/sas_scsi_host.c struct Scsi_Host *shost = cmd->device->host; host 651 drivers/scsi/lpfc/lpfc_attr.c struct Scsi_Host *host = class_to_shost(dev); host 653 drivers/scsi/lpfc/lpfc_attr.c return scnprintf(buf, PAGE_SIZE, "%s\n", lpfc_info(host)); host 3562 drivers/scsi/lpfc/lpfc_hw.h struct lpfc_hgp host[MAX_SLI3_RINGS]; host 3567 drivers/scsi/lpfc/lpfc_hw.h struct lpfc_hgp host[MAX_SLI3_RINGS]; host 1382 drivers/scsi/lpfc/lpfc_mbox.c phba->host_gp = &phba->mbox->us.s2.host[0]; host 1384 drivers/scsi/lpfc/lpfc_mbox.c offset = (uint8_t *)&phba->mbox->us.s2.host - host 1394 drivers/scsi/lpfc/lpfc_mbox.c phba->host_gp = &mb_slim->us.s3.host[0]; host 1397 drivers/scsi/lpfc/lpfc_mbox.c phba->host_gp = &mb_slim->us.s2.host[0]; host 75 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_vport *vport = (struct lpfc_vport *)sdev->host->hostdata; host 109 drivers/scsi/lpfc/lpfc_scsi.c if (scsi_host_get_guard(sc->device->host) == SHOST_DIX_GUARD_IP) host 150 drivers/scsi/lpfc/lpfc_scsi.c struct Scsi_Host *shost = cmd->device->host; host 3835 drivers/scsi/lpfc/lpfc_scsi.c shost = cmd->device->host; host 4380 drivers/scsi/lpfc/lpfc_scsi.c lpfc_info(struct Scsi_Host *host) host 4382 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_vport *vport = (struct lpfc_vport *) host->hostdata; host 4716 drivers/scsi/lpfc/lpfc_scsi.c struct Scsi_Host *shost = cmnd->device->host; host 5214 drivers/scsi/lpfc/lpfc_scsi.c struct Scsi_Host *shost = cmnd->device->host; host 5285 drivers/scsi/lpfc/lpfc_scsi.c struct Scsi_Host *shost = cmnd->device->host; host 5363 drivers/scsi/lpfc/lpfc_scsi.c struct Scsi_Host *shost = cmnd->device->host; host 5455 drivers/scsi/lpfc/lpfc_scsi.c struct Scsi_Host *shost = cmnd->device->host; host 5499 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_vport *vport = (struct lpfc_vport *) sdev->host->hostdata; host 5613 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_vport *vport = (struct lpfc_vport *) sdev->host->hostdata; host 5637 drivers/scsi/lpfc/lpfc_scsi.c struct lpfc_vport *vport = (struct lpfc_vport *) sdev->host->hostdata; host 50 drivers/scsi/mac53c94.c struct Scsi_Host *host; host 89 drivers/scsi/mac53c94.c state = (struct fsc_state *) cmd->device->host->hostdata; host 107 drivers/scsi/mac53c94.c struct fsc_state *state = (struct fsc_state *) cmd->device->host->hostdata; host 112 drivers/scsi/mac53c94.c spin_lock_irqsave(cmd->device->host->host_lock, flags); host 122 drivers/scsi/mac53c94.c spin_unlock_irqrestore(cmd->device->host->host_lock, flags); host 132 drivers/scsi/mac53c94.c writeb(state->host->this_id | CF1_PAR_ENABLE, ®s->config1); host 186 drivers/scsi/mac53c94.c struct Scsi_Host *dev = ((struct fsc_state *) dev_id)->current_req->device->host; host 415 drivers/scsi/mac53c94.c struct Scsi_Host *host; host 432 drivers/scsi/mac53c94.c host = scsi_host_alloc(&mac53c94_template, sizeof(struct fsc_state)); host 433 drivers/scsi/mac53c94.c if (host == NULL) { host 439 drivers/scsi/mac53c94.c state = (struct fsc_state *) host->hostdata; host 441 drivers/scsi/mac53c94.c state->host = host; host 468 drivers/scsi/mac53c94.c dma_cmd_space = kmalloc_array(host->sg_tablesize + 2, host 478 drivers/scsi/mac53c94.c memset(state->dma_cmds, 0, (host->sg_tablesize + 1) host 490 drivers/scsi/mac53c94.c rc = scsi_add_host(host, &mdev->ofdev.dev); host 494 drivers/scsi/mac53c94.c scsi_scan_host(host); host 506 drivers/scsi/mac53c94.c scsi_host_put(host); host 516 drivers/scsi/mac53c94.c struct Scsi_Host *host = fp->host; host 518 drivers/scsi/mac53c94.c scsi_remove_host(host); host 528 drivers/scsi/mac53c94.c scsi_host_put(host); host 293 drivers/scsi/mac_esp.c struct Scsi_Host *host; host 304 drivers/scsi/mac_esp.c host = scsi_host_alloc(tpnt, sizeof(struct esp)); host 307 drivers/scsi/mac_esp.c if (!host) host 310 drivers/scsi/mac_esp.c host->max_id = 8; host 311 drivers/scsi/mac_esp.c host->dma_boundary = PAGE_SIZE - 1; host 312 drivers/scsi/mac_esp.c esp = shost_priv(host); host 314 drivers/scsi/mac_esp.c esp->host = host; host 323 drivers/scsi/mac_esp.c host->this_id = esp->scsi_id; host 372 drivers/scsi/mac_esp.c host->irq = IRQ_MAC_SCSI; host 377 drivers/scsi/mac_esp.c err = request_irq(host->irq, mac_scsi_esp_intr, 0, "ESP", NULL); host 397 drivers/scsi/mac_esp.c free_irq(host->irq, NULL); host 405 drivers/scsi/mac_esp.c scsi_host_put(host); host 414 drivers/scsi/mac_esp.c unsigned int irq = esp->host->irq; host 430 drivers/scsi/mac_esp.c scsi_host_put(esp->host); host 319 drivers/scsi/mac_scsi.c dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host, host 321 drivers/scsi/mac_scsi.c NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host); host 328 drivers/scsi/mac_scsi.c NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host); host 387 drivers/scsi/mac_scsi.c dsprintk(NDEBUG_PSEUDO_DMA, hostdata->host, host 389 drivers/scsi/mac_scsi.c NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host); host 396 drivers/scsi/mac_scsi.c NCR5380_dprint(NDEBUG_PSEUDO_DMA, hostdata->host); host 158 drivers/scsi/megaraid.c adapter->host->io_port + MBOX_PORT0); host 161 drivers/scsi/megaraid.c adapter->host->io_port + MBOX_PORT1); host 164 drivers/scsi/megaraid.c adapter->host->io_port + MBOX_PORT2); host 167 drivers/scsi/megaraid.c adapter->host->io_port + MBOX_PORT3); host 170 drivers/scsi/megaraid.c adapter->host->io_port + ENABLE_MBOX_REGION); host 278 drivers/scsi/megaraid.c adapter->host->max_channel = host 281 drivers/scsi/megaraid.c adapter->host->max_id = 16; /* max targets per channel */ host 283 drivers/scsi/megaraid.c adapter->host->max_lun = 7; /* Up to 7 luns for non disk devices */ host 285 drivers/scsi/megaraid.c adapter->host->cmd_per_lun = max_cmd_per_lun; host 294 drivers/scsi/megaraid.c adapter->host->can_queue = adapter->max_cmds - 1; host 302 drivers/scsi/megaraid.c adapter->host->sg_tablesize = adapter->sglen; host 376 drivers/scsi/megaraid.c adapter = (adapter_t *)scmd->device->host->hostdata; host 681 drivers/scsi/megaraid.c adapter->host->host_no, host 986 drivers/scsi/megaraid.c adapter->host->host_no, host 1049 drivers/scsi/megaraid.c adapter->host->host_no, host 1848 drivers/scsi/megaraid.c megaraid_info(struct Scsi_Host *host) host 1853 drivers/scsi/megaraid.c adapter = (adapter_t *)host->hostdata; host 1858 drivers/scsi/megaraid.c adapter->host->max_id, adapter->host->max_channel, host 1859 drivers/scsi/megaraid.c (u32)adapter->host->max_lun); host 1873 drivers/scsi/megaraid.c adapter = (adapter_t *)cmd->device->host->hostdata; host 1894 drivers/scsi/megaraid.c adapter = (adapter_t *)cmd->device->host->hostdata; host 2081 drivers/scsi/megaraid.c adapter->base, adapter->host->irq); host 2744 drivers/scsi/megaraid.c sprintf(string, "hba%d", adapter->host->host_no); host 2805 drivers/scsi/megaraid.c adapter = (adapter_t *)sdev->host->hostdata; host 3951 drivers/scsi/megaraid.c adapter->host->this_id = adapter->this_id; host 4156 drivers/scsi/megaraid.c struct Scsi_Host *host; host 4241 drivers/scsi/megaraid.c host = scsi_host_alloc(&megaraid_template, sizeof(adapter_t)); host 4242 drivers/scsi/megaraid.c if (!host) host 4245 drivers/scsi/megaraid.c adapter = (adapter_t *)host->hostdata; host 4250 drivers/scsi/megaraid.c host->host_no, mega_baseport, irq); host 4263 drivers/scsi/megaraid.c host->cmd_per_lun = max_cmd_per_lun; host 4264 drivers/scsi/megaraid.c host->max_sectors = max_sectors_per_io; host 4267 drivers/scsi/megaraid.c adapter->host = host; host 4269 drivers/scsi/megaraid.c adapter->host->irq = irq; host 4272 drivers/scsi/megaraid.c adapter->host->base = tbase; host 4274 drivers/scsi/megaraid.c adapter->host->io_port = tbase; host 4275 drivers/scsi/megaraid.c adapter->host->n_io_port = 16; host 4278 drivers/scsi/megaraid.c adapter->host->unique_id = (pci_bus << 8) | pci_dev_func; host 4454 drivers/scsi/megaraid.c adapter->host->this_id = DEFAULT_INITIATOR_ID; host 4472 drivers/scsi/megaraid.c pci_set_drvdata(pdev, host); host 4476 drivers/scsi/megaraid.c error = scsi_add_host(host, &pdev->dev); host 4480 drivers/scsi/megaraid.c scsi_scan_host(host); host 4488 drivers/scsi/megaraid.c free_irq(adapter->host->irq, adapter); host 4495 drivers/scsi/megaraid.c scsi_host_put(host); host 4521 drivers/scsi/megaraid.c free_irq(adapter->host->irq, adapter); host 4547 drivers/scsi/megaraid.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 4548 drivers/scsi/megaraid.c adapter_t *adapter = (adapter_t *)host->hostdata; host 4551 drivers/scsi/megaraid.c scsi_remove_host(host); host 4558 drivers/scsi/megaraid.c release_mem_region(adapter->host->base, 128); host 4564 drivers/scsi/megaraid.c sprintf(buf, "hba%d", adapter->host->host_no); host 4573 drivers/scsi/megaraid.c scsi_host_put(host); host 4582 drivers/scsi/megaraid.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 4583 drivers/scsi/megaraid.c adapter_t *adapter = (adapter_t *)host->hostdata; host 787 drivers/scsi/megaraid.h struct Scsi_Host *host; host 154 drivers/scsi/megaraid/mega_common.h struct Scsi_Host *host; host 199 drivers/scsi/megaraid/mega_common.h #define SCP2HOST(scp) (scp)->device->host // to host host 206 drivers/scsi/megaraid/mega_common.h #define SCSIHOST2ADAP(host) (((caddr_t *)(host->hostdata))[0]) host 527 drivers/scsi/megaraid/megaraid_mbox.c struct Scsi_Host *host; host 549 drivers/scsi/megaraid/megaraid_mbox.c host = adapter->host; host 571 drivers/scsi/megaraid/megaraid_mbox.c scsi_host_put(host); host 616 drivers/scsi/megaraid/megaraid_mbox.c struct Scsi_Host *host; host 619 drivers/scsi/megaraid/megaraid_mbox.c host = scsi_host_alloc(&megaraid_template_g, 8); host 620 drivers/scsi/megaraid/megaraid_mbox.c if (!host) { host 627 drivers/scsi/megaraid/megaraid_mbox.c SCSIHOST2ADAP(host) = (caddr_t)adapter; host 628 drivers/scsi/megaraid/megaraid_mbox.c adapter->host = host; host 630 drivers/scsi/megaraid/megaraid_mbox.c host->irq = adapter->irq; host 631 drivers/scsi/megaraid/megaraid_mbox.c host->unique_id = adapter->unique_id; host 632 drivers/scsi/megaraid/megaraid_mbox.c host->can_queue = adapter->max_cmds; host 633 drivers/scsi/megaraid/megaraid_mbox.c host->this_id = adapter->init_id; host 634 drivers/scsi/megaraid/megaraid_mbox.c host->sg_tablesize = adapter->sglen; host 635 drivers/scsi/megaraid/megaraid_mbox.c host->max_sectors = adapter->max_sectors; host 636 drivers/scsi/megaraid/megaraid_mbox.c host->cmd_per_lun = adapter->cmd_per_lun; host 637 drivers/scsi/megaraid/megaraid_mbox.c host->max_channel = adapter->max_channel; host 638 drivers/scsi/megaraid/megaraid_mbox.c host->max_id = adapter->max_target; host 639 drivers/scsi/megaraid/megaraid_mbox.c host->max_lun = adapter->max_lun; host 643 drivers/scsi/megaraid/megaraid_mbox.c if (scsi_add_host(host, &adapter->pdev->dev)) { host 648 drivers/scsi/megaraid/megaraid_mbox.c scsi_host_put(host); host 653 drivers/scsi/megaraid/megaraid_mbox.c scsi_scan_host(host); host 668 drivers/scsi/megaraid/megaraid_mbox.c struct Scsi_Host *host; host 672 drivers/scsi/megaraid/megaraid_mbox.c host = adapter->host; host 674 drivers/scsi/megaraid/megaraid_mbox.c scsi_remove_host(host); host 1567 drivers/scsi/megaraid/megaraid_mbox.c adapter->host->host_no, host 1782 drivers/scsi/megaraid/megaraid_mbox.c adapter->host->host_no)); host 1795 drivers/scsi/megaraid/megaraid_mbox.c adapter->host->host_no, ss, SCP2CHANNEL(scp), host 3740 drivers/scsi/megaraid/megaraid_mbox.c hinfo->irq = adapter->host->irq; host 3744 drivers/scsi/megaraid/megaraid_mbox.c hinfo->host_no = adapter->host->host_no; host 4015 drivers/scsi/megaraid/megaraid_mbox.c adapter_t *adapter = (adapter_t *)SCSIHOST2ADAP(sdev->host); host 2353 drivers/scsi/megaraid/megaraid_sas.h struct Scsi_Host *host; host 1656 drivers/scsi/megaraid/megaraid_sas_base.c dev_err(&instance->pdev->dev, "[%d]: Dumping Frame Phys Address of all pending cmds in FW\n",instance->host->host_no); host 1657 drivers/scsi/megaraid/megaraid_sas_base.c dev_err(&instance->pdev->dev, "[%d]: Total OS Pending cmds : %d\n",instance->host->host_no,atomic_read(&instance->fw_outstanding)); host 1659 drivers/scsi/megaraid/megaraid_sas_base.c dev_err(&instance->pdev->dev, "[%d]: 64 bit SGLs were sent to FW\n",instance->host->host_no); host 1661 drivers/scsi/megaraid/megaraid_sas_base.c dev_err(&instance->pdev->dev, "[%d]: 32 bit SGLs were sent to FW\n",instance->host->host_no); host 1663 drivers/scsi/megaraid/megaraid_sas_base.c dev_err(&instance->pdev->dev, "[%d]: Pending OS cmds in FW : \n",instance->host->host_no); host 1668 drivers/scsi/megaraid/megaraid_sas_base.c dev_err(&instance->pdev->dev, "[%d]: Frame addr :0x%08lx : ",instance->host->host_no,(unsigned long)cmd->frame_phys_addr); host 1675 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no, cmd->frame_count, ldio->cmd, ldio->target_id, host 1684 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no, cmd->frame_count, pthru->cmd, pthru->target_id, host 1701 drivers/scsi/megaraid/megaraid_sas_base.c dev_err(&instance->pdev->dev, "[%d]: Pending Internal cmds in FW : \n",instance->host->host_no); host 1709 drivers/scsi/megaraid/megaraid_sas_base.c dev_err(&instance->pdev->dev, "[%d]: Dumping Done\n\n",instance->host->host_no); host 1764 drivers/scsi/megaraid/megaraid_sas_base.c scmd->device->host->hostdata; host 1838 drivers/scsi/megaraid/megaraid_sas_base.c (megasas_mgmt_info.instance[i]->host->host_no == host_no)) host 1869 drivers/scsi/megaraid/megaraid_sas_base.c instance = megasas_lookup_instance(sdev->host->host_no); host 1938 drivers/scsi/megaraid/megaraid_sas_base.c instance = (struct megasas_instance *)sdev->host->hostdata; host 1965 drivers/scsi/megaraid/megaraid_sas_base.c instance = megasas_lookup_instance(sdev->host->host_no); host 1984 drivers/scsi/megaraid/megaraid_sas_base.c (tgt_device_qd <= instance->host->can_queue)) host 1989 drivers/scsi/megaraid/megaraid_sas_base.c device_qd = instance->host->can_queue; host 2012 drivers/scsi/megaraid/megaraid_sas_base.c instance = megasas_lookup_instance(sdev->host->host_no); host 2039 drivers/scsi/megaraid/megaraid_sas_base.c instance = megasas_lookup_instance(sdev->host->host_no); host 2078 drivers/scsi/megaraid/megaraid_sas_base.c instance = megasas_lookup_instance(sdev->host->host_no); host 2191 drivers/scsi/megaraid/megaraid_sas_base.c spin_lock_irqsave(instance->host->host_lock, flags); host 2194 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->can_queue = instance->cur_can_queue; host 2195 drivers/scsi/megaraid/megaraid_sas_base.c spin_unlock_irqrestore(instance->host->host_lock, flags); host 2305 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2313 drivers/scsi/megaraid/megaraid_sas_base.c "affiliation for scsi%d\n", instance->host->host_no); host 2329 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2358 drivers/scsi/megaraid/megaraid_sas_base.c "scsi%d\n", instance->host->host_no); host 2363 drivers/scsi/megaraid/megaraid_sas_base.c dcmd->cmd_status, instance->host->host_no); host 2375 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2412 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2420 drivers/scsi/megaraid/megaraid_sas_base.c "affiliation for scsi%d\n", instance->host->host_no); host 2436 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2465 drivers/scsi/megaraid/megaraid_sas_base.c "scsi%d\n", instance->host->host_no); host 2471 drivers/scsi/megaraid/megaraid_sas_base.c dcmd->cmd_status, instance->host->host_no); host 2480 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2545 drivers/scsi/megaraid/megaraid_sas_base.c "affiliation for scsi%d\n", instance->host->host_no); host 2587 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2602 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2624 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 2637 drivers/scsi/megaraid/megaraid_sas_base.c "timed out" : "failed", instance->host->host_no); host 2661 drivers/scsi/megaraid/megaraid_sas_base.c "completed for scsi%d\n", instance->host->host_no); host 2812 drivers/scsi/megaraid/megaraid_sas_base.c __func__, __LINE__, instance->host->host_no, instance->disableOnlineCtrlReset, host 2833 drivers/scsi/megaraid/megaraid_sas_base.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 2870 drivers/scsi/megaraid/megaraid_sas_base.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 2873 drivers/scsi/megaraid/megaraid_sas_base.c spin_lock_irqsave(instance->host->host_lock, flags); host 2875 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->can_queue = instance->throttlequeuedepth; host 2879 drivers/scsi/megaraid/megaraid_sas_base.c spin_unlock_irqrestore(instance->host->host_lock, flags); host 2940 drivers/scsi/megaraid/megaraid_sas_base.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 2997 drivers/scsi/megaraid/megaraid_sas_base.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 3004 drivers/scsi/megaraid/megaraid_sas_base.c scmd->device->host->shost_state, host 3005 drivers/scsi/megaraid/megaraid_sas_base.c scsi_host_busy(scmd->device->host), host 3014 drivers/scsi/megaraid/megaraid_sas_base.c ret = megasas_reset_fusion(scmd->device->host, host 3031 drivers/scsi/megaraid/megaraid_sas_base.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 3053 drivers/scsi/megaraid/megaraid_sas_base.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 3590 drivers/scsi/megaraid/megaraid_sas_base.c spin_lock_irqsave(instance->host->host_lock, flags); host 3600 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_lock, host 3622 drivers/scsi/megaraid/megaraid_sas_base.c spin_unlock_irqrestore(instance->host->host_lock, host 3637 drivers/scsi/megaraid/megaraid_sas_base.c spin_lock_irqsave(instance->host->host_lock, flags); host 3650 drivers/scsi/megaraid/megaraid_sas_base.c spin_unlock_irqrestore(instance->host->host_lock, flags); host 4458 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 4559 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 4686 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 4805 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 4955 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 5106 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 5246 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 5327 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 6679 drivers/scsi/megaraid/megaraid_sas_base.c megasas_reset_fusion(instance->host, host 6740 drivers/scsi/megaraid/megaraid_sas_base.c struct Scsi_Host *host = instance->host; host 6745 drivers/scsi/megaraid/megaraid_sas_base.c host->unique_id = instance->unique_id; host 6746 drivers/scsi/megaraid/megaraid_sas_base.c host->can_queue = instance->max_scsi_cmds; host 6747 drivers/scsi/megaraid/megaraid_sas_base.c host->this_id = instance->init_id; host 6748 drivers/scsi/megaraid/megaraid_sas_base.c host->sg_tablesize = instance->max_num_sge; host 6774 drivers/scsi/megaraid/megaraid_sas_base.c host->max_sectors = instance->max_sectors_per_req; host 6775 drivers/scsi/megaraid/megaraid_sas_base.c host->cmd_per_lun = MEGASAS_DEFAULT_CMD_PER_LUN; host 6776 drivers/scsi/megaraid/megaraid_sas_base.c host->max_channel = MEGASAS_MAX_CHANNELS - 1; host 6777 drivers/scsi/megaraid/megaraid_sas_base.c host->max_id = MEGASAS_MAX_DEV_PER_CHANNEL; host 6778 drivers/scsi/megaraid/megaraid_sas_base.c host->max_lun = MEGASAS_MAX_LUN; host 6779 drivers/scsi/megaraid/megaraid_sas_base.c host->max_cmd_len = 16; host 6784 drivers/scsi/megaraid/megaraid_sas_base.c if (scsi_add_host(host, &instance->pdev->dev)) { host 7272 drivers/scsi/megaraid/megaraid_sas_base.c struct Scsi_Host *host; host 7316 drivers/scsi/megaraid/megaraid_sas_base.c host = scsi_host_alloc(&megasas_template, host 7319 drivers/scsi/megaraid/megaraid_sas_base.c if (!host) { host 7324 drivers/scsi/megaraid/megaraid_sas_base.c instance = (struct megasas_instance *)host->hostdata; host 7332 drivers/scsi/megaraid/megaraid_sas_base.c instance->host = host; host 7392 drivers/scsi/megaraid/megaraid_sas_base.c scsi_scan_host(host); host 7426 drivers/scsi/megaraid/megaraid_sas_base.c scsi_host_put(host); host 7590 drivers/scsi/megaraid/megaraid_sas_base.c struct Scsi_Host *host; host 7599 drivers/scsi/megaraid/megaraid_sas_base.c host = instance->host; host 7710 drivers/scsi/megaraid/megaraid_sas_base.c scsi_host_put(host); host 7761 drivers/scsi/megaraid/megaraid_sas_base.c struct Scsi_Host *host; host 7771 drivers/scsi/megaraid/megaraid_sas_base.c host = instance->host; host 7784 drivers/scsi/megaraid/megaraid_sas_base.c scsi_remove_host(instance->host); host 7886 drivers/scsi/megaraid/megaraid_sas_base.c scsi_host_put(host); host 8609 drivers/scsi/megaraid/megaraid_sas_base.c struct Scsi_Host *host; host 8614 drivers/scsi/megaraid/megaraid_sas_base.c host = instance->host; host 8632 drivers/scsi/megaraid/megaraid_sas_base.c sdev1 = scsi_device_lookup(host, channel, id, 0); host 8634 drivers/scsi/megaraid/megaraid_sas_base.c scsi_add_device(host, channel, id, 0); host 8645 drivers/scsi/megaraid/megaraid_sas_base.c sdev1 = scsi_device_lookup(host, i, j, 0); host 8649 drivers/scsi/megaraid/megaraid_sas_base.c scsi_add_device(host, i, j, 0); host 8664 drivers/scsi/megaraid/megaraid_sas_base.c sdev1 = scsi_device_lookup(host, host 8668 drivers/scsi/megaraid/megaraid_sas_base.c scsi_add_device(host, MEGASAS_MAX_PD_CHANNELS + i, j, 0); host 8725 drivers/scsi/megaraid/megaraid_sas_base.c instance->host->host_no); host 131 drivers/scsi/megaraid/megaraid_sas_debugfs.c "scsi_host%d", instance->host->host_no); host 130 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 349 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->can_queue = instance->cur_can_queue; host 1237 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 1518 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no, host 1523 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no, host 1528 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no, host 1533 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no, host 1544 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no, host 1549 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no, host 1561 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no, host 1670 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->can_queue = instance->cur_can_queue; host 1898 drivers/scsi/megaraid/megaraid_sas_fusion.c status = megasas_reset_fusion(instance->host, 0); host 1926 drivers/scsi/megaraid/megaraid_sas_fusion.c "poll_megasas%d_status", instance->host->host_no); host 2856 drivers/scsi/megaraid/megaraid_sas_fusion.c (instance->host->can_queue)) { host 3388 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->can_queue) { host 4133 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 4164 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 4180 drivers/scsi/megaraid/megaraid_sas_fusion.c outstanding, instance->host->host_no); host 4194 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 4491 drivers/scsi/megaraid/megaraid_sas_fusion.c rc = megasas_reset_fusion(instance->host, MFI_IO_TIMEOUT_OCR); host 4553 drivers/scsi/megaraid/megaraid_sas_fusion.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 4585 drivers/scsi/megaraid/megaraid_sas_fusion.c instance = (struct megasas_instance *)sdev->host->hostdata; host 4622 drivers/scsi/megaraid/megaraid_sas_fusion.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 4626 drivers/scsi/megaraid/megaraid_sas_fusion.c "SCSI host:%d\n", instance->host->host_no); host 4703 drivers/scsi/megaraid/megaraid_sas_fusion.c instance = (struct megasas_instance *)scmd->device->host->hostdata; host 4707 drivers/scsi/megaraid/megaraid_sas_fusion.c "SCSI host:%d\n", instance->host->host_no); host 4812 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 4866 drivers/scsi/megaraid/megaraid_sas_fusion.c "adapter scsi%d.\n", instance->host->host_no); host 4919 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 4944 drivers/scsi/megaraid/megaraid_sas_fusion.c "scsi%d.\n", instance->host->host_no); host 5001 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 5031 drivers/scsi/megaraid/megaraid_sas_fusion.c instance->host->host_no); host 5037 drivers/scsi/megaraid/megaraid_sas_fusion.c "adapter scsi%d.\n", instance->host->host_no); host 5140 drivers/scsi/megaraid/megaraid_sas_fusion.c megasas_reset_fusion(instance->host, 0); host 5151 drivers/scsi/megaraid/megaraid_sas_fusion.c megasas_reset_fusion(instance->host, 0); host 149 drivers/scsi/mesh.c struct Scsi_Host *host; host 374 drivers/scsi/mesh.c out_8(&mr->source_id, ms->host->this_id); host 929 drivers/scsi/mesh.c ms->conn_tgt = ms->host->this_id; host 938 drivers/scsi/mesh.c if ((b & (1 << t)) != 0 && t != ms->host->this_id) host 940 drivers/scsi/mesh.c if (b != (1 << t) + (1 << ms->host->this_id)) { host 942 drivers/scsi/mesh.c ms->conn_tgt = ms->host->this_id; host 1023 drivers/scsi/mesh.c struct Scsi_Host *dev = ms->host; host 1636 drivers/scsi/mesh.c ms = (struct mesh_state *) cmd->device->host->hostdata; host 1689 drivers/scsi/mesh.c struct mesh_state *ms = (struct mesh_state *) cmd->device->host->hostdata; host 1706 drivers/scsi/mesh.c struct mesh_state *ms = (struct mesh_state *) cmd->device->host->hostdata; host 1713 drivers/scsi/mesh.c spin_lock_irqsave(ms->host->host_lock, flags); host 1723 drivers/scsi/mesh.c out_8(&mr->source_id, ms->host->this_id); host 1736 drivers/scsi/mesh.c spin_unlock_irqrestore(ms->host->host_lock, flags); host 1771 drivers/scsi/mesh.c scsi_block_requests(ms->host); host 1772 drivers/scsi/mesh.c spin_lock_irqsave(ms->host->host_lock, flags); host 1774 drivers/scsi/mesh.c spin_unlock_irqrestore(ms->host->host_lock, flags); host 1776 drivers/scsi/mesh.c spin_lock_irqsave(ms->host->host_lock, flags); host 1779 drivers/scsi/mesh.c spin_unlock_irqrestore(ms->host->host_lock, flags); host 1796 drivers/scsi/mesh.c spin_lock_irqsave(ms->host->host_lock, flags); host 1798 drivers/scsi/mesh.c spin_unlock_irqrestore(ms->host->host_lock, flags); host 1800 drivers/scsi/mesh.c scsi_unblock_requests(ms->host); host 1819 drivers/scsi/mesh.c spin_lock_irqsave(ms->host->host_lock, flags); host 1827 drivers/scsi/mesh.c spin_unlock_irqrestore(ms->host->host_lock, flags); host 1892 drivers/scsi/mesh.c ms->host = mesh_host; host 1995 drivers/scsi/mesh.c struct Scsi_Host *mesh_host = ms->host; host 1515 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct Scsi_Host *shost = sdev->host; host 1570 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct Scsi_Host *shost = sdev->host; host 1941 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct MPT3SAS_ADAPTER *ioc = shost_priv(sdev->host); host 1964 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct MPT3SAS_ADAPTER *ioc = shost_priv(sdev->host); host 2025 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct MPT3SAS_ADAPTER *ioc = shost_priv(sdev->host); host 2227 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct Scsi_Host *shost = sdev->host; host 2870 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); host 2939 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); host 3019 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); host 3097 drivers/scsi/mpt3sas/mpt3sas_scsih.c struct MPT3SAS_ADAPTER *ioc = shost_priv(scmd->device->host); host 33 drivers/scsi/mvme147.c struct Scsi_Host *instance = cmd->device->host; host 40 drivers/scsi/mvme16x_scsi.c struct Scsi_Host * host = NULL; host 68 drivers/scsi/mvme16x_scsi.c host = NCR_700_detect(&mvme16x_scsi_driver_template, hostdata, host 70 drivers/scsi/mvme16x_scsi.c if (!host) { host 75 drivers/scsi/mvme16x_scsi.c host->this_id = 7; host 76 drivers/scsi/mvme16x_scsi.c host->base = 0xfff47000UL; host 77 drivers/scsi/mvme16x_scsi.c host->irq = MVME16x_IRQ_SCSI; host 78 drivers/scsi/mvme16x_scsi.c if (request_irq(host->irq, NCR_700_intr, 0, "mvme16x-scsi", host)) { host 93 drivers/scsi/mvme16x_scsi.c platform_set_drvdata(dev, host); host 94 drivers/scsi/mvme16x_scsi.c scsi_scan_host(host); host 99 drivers/scsi/mvme16x_scsi.c scsi_host_put(host); host 108 drivers/scsi/mvme16x_scsi.c struct Scsi_Host *host = platform_get_drvdata(dev); host 109 drivers/scsi/mvme16x_scsi.c struct NCR_700_Host_Parameters *hostdata = shost_priv(host); host 119 drivers/scsi/mvme16x_scsi.c scsi_remove_host(host); host 120 drivers/scsi/mvme16x_scsi.c NCR_700_release(host); host 122 drivers/scsi/mvme16x_scsi.c free_irq(host->irq, host); host 702 drivers/scsi/mvumi.c mhba = (struct mvumi_hba *) scmd->device->host->hostdata; host 2008 drivers/scsi/mvumi.c mhba = (struct mvumi_hba *) sdev->host->hostdata; host 2118 drivers/scsi/mvumi.c struct Scsi_Host *host = scmd->device->host; host 2119 drivers/scsi/mvumi.c struct mvumi_hba *mhba = shost_priv(host); host 2390 drivers/scsi/mvumi.c struct Scsi_Host *host = mhba->shost; host 2396 drivers/scsi/mvumi.c host->irq = mhba->pdev->irq; host 2397 drivers/scsi/mvumi.c host->unique_id = mhba->unique_id; host 2398 drivers/scsi/mvumi.c host->can_queue = (mhba->max_io - 1) ? (mhba->max_io - 1) : 1; host 2399 drivers/scsi/mvumi.c host->sg_tablesize = mhba->max_sge > max_sg ? max_sg : mhba->max_sge; host 2400 drivers/scsi/mvumi.c host->max_sectors = mhba->max_transfer_size / 512; host 2401 drivers/scsi/mvumi.c host->cmd_per_lun = (mhba->max_io - 1) ? (mhba->max_io - 1) : 1; host 2402 drivers/scsi/mvumi.c host->max_id = mhba->max_target_id; host 2403 drivers/scsi/mvumi.c host->max_cmd_len = MAX_COMMAND_SIZE; host 2405 drivers/scsi/mvumi.c ret = scsi_add_host(host, &mhba->pdev->dev); host 2414 drivers/scsi/mvumi.c ret = scsi_add_device(host, 0, mhba->max_target_id - 1, 0); host 2457 drivers/scsi/mvumi.c struct Scsi_Host *host; host 2473 drivers/scsi/mvumi.c host = scsi_host_alloc(&mvumi_template, sizeof(*mhba)); host 2474 drivers/scsi/mvumi.c if (!host) { host 2479 drivers/scsi/mvumi.c mhba = shost_priv(host); host 2494 drivers/scsi/mvumi.c mhba->shost = host; host 2526 drivers/scsi/mvumi.c scsi_host_put(host); host 2537 drivers/scsi/mvumi.c struct Scsi_Host *host; host 2547 drivers/scsi/mvumi.c host = mhba->shost; host 2554 drivers/scsi/mvumi.c scsi_host_put(host); host 95 drivers/scsi/myrb.c elem_size = cb->host->sg_tablesize * elem_align; host 99 drivers/scsi/myrb.c shost_printk(KERN_ERR, cb->host, host 110 drivers/scsi/myrb.c shost_printk(KERN_ERR, cb->host, host 116 drivers/scsi/myrb.c "myrb_wq_%d", cb->host->host_no); host 123 drivers/scsi/myrb.c shost_printk(KERN_ERR, cb->host, host 308 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 321 drivers/scsi/myrb.c shost_printk(KERN_CRIT, cb->host, host 326 drivers/scsi/myrb.c shost_printk(KERN_CRIT, cb->host, host 361 drivers/scsi/myrb.c shost_for_each_device(sdev, cb->host) { host 362 drivers/scsi/myrb.c if (sdev->channel >= myrb_logical_channel(cb->host)) host 392 drivers/scsi/myrb.c struct Scsi_Host *shost = cb->host; host 486 drivers/scsi/myrb.c sdev = scsi_device_lookup(cb->host, host 487 drivers/scsi/myrb.c myrb_logical_channel(cb->host), host 560 drivers/scsi/myrb.c sdev = scsi_device_lookup(cb->host, host 561 drivers/scsi/myrb.c myrb_logical_channel(cb->host), host 592 drivers/scsi/myrb.c shost_printk(KERN_ERR, cb->host, host 603 drivers/scsi/myrb.c sdev = scsi_device_lookup(cb->host, host 604 drivers/scsi/myrb.c myrb_logical_channel(cb->host), host 687 drivers/scsi/myrb.c shost_printk(KERN_CRIT, cb->host, host 695 drivers/scsi/myrb.c shost_printk(KERN_CRIT, cb->host, host 700 drivers/scsi/myrb.c shost_printk(KERN_CRIT, cb->host, host 706 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 716 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 740 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 750 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 754 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 758 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 762 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 766 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 919 drivers/scsi/myrb.c struct Scsi_Host *shost = cb->host; host 928 drivers/scsi/myrb.c shost_printk(KERN_ERR, cb->host, host 935 drivers/scsi/myrb.c shost_printk(KERN_ERR, cb->host, host 945 drivers/scsi/myrb.c shost_printk(KERN_WARNING, cb->host, host 952 drivers/scsi/myrb.c shost_printk(KERN_WARNING, cb->host, host 959 drivers/scsi/myrb.c shost_printk(KERN_WARNING, cb->host, host 966 drivers/scsi/myrb.c shost_printk(KERN_WARNING, cb->host, host 1009 drivers/scsi/myrb.c shost_printk(KERN_WARNING, cb->host, host 1066 drivers/scsi/myrb.c shost_printk(KERN_WARNING, cb->host, host 1152 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1154 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1158 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1162 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1166 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1168 drivers/scsi/myrb.c cb->host->can_queue, cb->host->max_sectors); host 1169 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1171 drivers/scsi/myrb.c cb->host->can_queue, cb->host->sg_tablesize, host 1173 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1179 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1182 drivers/scsi/myrb.c cb->host->max_id); host 1184 drivers/scsi/myrb.c shost_printk(KERN_INFO, cb->host, host 1253 drivers/scsi/myrb.c scsi_host_put(cb->host); host 1258 drivers/scsi/myrb.c struct Scsi_Host *shost = scmd->device->host; host 1652 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 1698 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 1734 drivers/scsi/myrb.c if (sdev->channel > myrb_logical_channel(sdev->host)) host 1740 drivers/scsi/myrb.c if (sdev->channel == myrb_logical_channel(sdev->host)) host 1750 drivers/scsi/myrb.c if (sdev->channel > myrb_logical_channel(sdev->host)) host 1753 drivers/scsi/myrb.c if (sdev->channel < myrb_logical_channel(sdev->host)) { host 1780 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 1793 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 1799 drivers/scsi/myrb.c if (sdev->channel == myrb_logical_channel(sdev->host)) { host 1838 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 1907 drivers/scsi/myrb.c if (sdev->channel == myrb_logical_channel(sdev->host)) { host 1928 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 1932 drivers/scsi/myrb.c if (sdev->channel < myrb_logical_channel(sdev->host)) host 1950 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 1961 drivers/scsi/myrb.c if (sdev->channel >= myrb_logical_channel(sdev->host)) host 2055 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 2068 drivers/scsi/myrb.c if (sdev->channel < myrb_logical_channel(sdev->host)) host 2253 drivers/scsi/myrb.c return sdev->channel == myrb_logical_channel(sdev->host); host 2263 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 2269 drivers/scsi/myrb.c if (sdev->channel < myrb_logical_channel(sdev->host)) host 2290 drivers/scsi/myrb.c struct myrb_hba *cb = shost_priv(sdev->host); host 2295 drivers/scsi/myrb.c if (sdev->channel < myrb_logical_channel(sdev->host) || !ldev_info) host 2417 drivers/scsi/myrb.c struct Scsi_Host *shost = cb->host; host 2789 drivers/scsi/myrb.c scmd = scsi_host_find_tag(cb->host, id - 3); host 3067 drivers/scsi/myrb.c scmd = scsi_host_find_tag(cb->host, id - 3); host 3272 drivers/scsi/myrb.c scmd = scsi_host_find_tag(cb->host, id - 3); host 3441 drivers/scsi/myrb.c scmd = scsi_host_find_tag(cb->host, id - 3); host 3580 drivers/scsi/myrb.c ret = scsi_add_host(cb->host, &dev->dev); host 3586 drivers/scsi/myrb.c scsi_scan_host(cb->host); host 3598 drivers/scsi/myrb.c shost_printk(KERN_NOTICE, cb->host, "Flushing Cache..."); host 712 drivers/scsi/myrb.h struct Scsi_Host *host; host 150 drivers/scsi/myrs.c shost_printk(KERN_INFO, cs->host, host 190 drivers/scsi/myrs.c dev_dbg(&cs->host->shost_gendev, "Sending GetControllerInfo\n"); host 207 drivers/scsi/myrs.c shost_printk(KERN_INFO, cs->host, host 249 drivers/scsi/myrs.c dev_dbg(&cs->host->shost_gendev, host 266 drivers/scsi/myrs.c shost_printk(KERN_INFO, cs->host, host 273 drivers/scsi/myrs.c shost_printk(KERN_INFO, cs->host, host 295 drivers/scsi/myrs.c shost_printk(KERN_INFO, cs->host, host 337 drivers/scsi/myrs.c dev_dbg(&cs->host->shost_gendev, host 472 drivers/scsi/myrs.c dev_dbg(&cs->host->shost_gendev, "Sending GetHealthStatus\n"); host 586 drivers/scsi/myrs.c struct Scsi_Host *shost = cs->host; host 819 drivers/scsi/myrs.c struct Scsi_Host *shost = cs->host; host 941 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 976 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1060 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1086 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1115 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1191 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1216 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1318 drivers/scsi/myrs.c return snprintf(buf, 20, "%d\n", cs->host->host_no); host 1500 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1534 drivers/scsi/myrs.c struct Scsi_Host *shost = scmd->device->host; host 1788 drivers/scsi/myrs.c ldev_num = sdev->id + chan_offset * sdev->host->max_id; host 1795 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1798 drivers/scsi/myrs.c if (sdev->channel > sdev->host->max_channel) host 1891 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1894 drivers/scsi/myrs.c if (sdev->channel > sdev->host->max_channel) host 1952 drivers/scsi/myrs.c cs->host = shost; host 1969 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 1982 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 2007 drivers/scsi/myrs.c struct myrs_hba *cs = shost_priv(sdev->host); host 2111 drivers/scsi/myrs.c struct Scsi_Host *shost = cs->host; host 2178 drivers/scsi/myrs.c struct Scsi_Host *shost = cs->host; host 2285 drivers/scsi/myrs.c scsi_host_put(cs->host); host 2634 drivers/scsi/myrs.c scmd = scsi_host_find_tag(cs->host, id - 3); host 2884 drivers/scsi/myrs.c scmd = scsi_host_find_tag(cs->host, id - 3); host 3134 drivers/scsi/myrs.c scmd = scsi_host_find_tag(cs->host, id - 3); host 3192 drivers/scsi/myrs.c ret = scsi_add_host(cs->host, &dev->dev); host 3198 drivers/scsi/myrs.c scsi_scan_host(cs->host); host 3213 drivers/scsi/myrs.c shost_printk(KERN_NOTICE, cs->host, "Flushing Cache..."); host 897 drivers/scsi/myrs.h struct Scsi_Host *host; host 7957 drivers/scsi/ncr53c8xx.c struct Scsi_Host *host = device->host; host 7958 drivers/scsi/ncr53c8xx.c struct ncb *np = ((struct host_data *) host->hostdata)->ncb; host 7967 drivers/scsi/ncr53c8xx.c struct Scsi_Host *host = device->host; host 7968 drivers/scsi/ncr53c8xx.c struct ncb *np = ((struct host_data *) host->hostdata)->ncb; host 8022 drivers/scsi/ncr53c8xx.c struct ncb *np = ((struct host_data *) cmd->device->host->hostdata)->ncb; host 8106 drivers/scsi/ncr53c8xx.c struct ncb *np = ((struct host_data *) cmd->device->host->hostdata)->ncb; host 8133 drivers/scsi/ncr53c8xx.c struct ncb *np = ((struct host_data *) cmd->device->host->hostdata)->ncb; host 8240 drivers/scsi/ncr53c8xx.c struct Scsi_Host *host = class_to_shost(dev); host 8241 drivers/scsi/ncr53c8xx.c struct host_data *host_data = (struct host_data *)host->hostdata; host 8516 drivers/scsi/ncr53c8xx.c void ncr53c8xx_release(struct Scsi_Host *host) host 8518 drivers/scsi/ncr53c8xx.c struct host_data *host_data = shost_priv(host); host 8524 drivers/scsi/ncr53c8xx.c scsi_host_put(host); host 1308 drivers/scsi/ncr53c8xx.h extern void ncr53c8xx_release(struct Scsi_Host *host); host 357 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 378 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 395 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 413 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 426 drivers/scsi/nsp32.c unsigned int base = SCpnt->host->io_port; host 444 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 445 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 446 drivers/scsi/nsp32.c unsigned int host_id = SCpnt->device->host->this_id; host 575 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 576 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 577 drivers/scsi/nsp32.c unsigned int host_id = SCpnt->device->host->this_id; host 799 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 800 drivers/scsi/nsp32.c unsigned int host_id = SCpnt->device->host->this_id; host 801 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 853 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 899 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 919 drivers/scsi/nsp32.c if (scmd_id(SCpnt) == SCpnt->device->host->this_id) { host 1158 drivers/scsi/nsp32.c struct Scsi_Host *host = data->Host; host 1160 drivers/scsi/nsp32.c spin_lock_irqsave(host->host_lock, flags); host 1424 drivers/scsi/nsp32.c spin_unlock_irqrestore(host->host_lock, flags); host 1432 drivers/scsi/nsp32.c static int nsp32_show_info(struct seq_file *m, struct Scsi_Host *host) host 1442 drivers/scsi/nsp32.c hostno = host->host_no; host 1443 drivers/scsi/nsp32.c data = (nsp32_hw_data *)host->hostdata; host 1444 drivers/scsi/nsp32.c base = host->io_port; host 1449 drivers/scsi/nsp32.c seq_printf(m, "IRQ: %d\n", host->irq); host 1450 drivers/scsi/nsp32.c seq_printf(m, "IO: 0x%lx-0x%lx\n", host->io_port, host->io_port + host->n_io_port - 1); host 1451 drivers/scsi/nsp32.c seq_printf(m, "MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - 1); host 1452 drivers/scsi/nsp32.c seq_printf(m, "sg_tablesize: %d\n", host->sg_tablesize); host 1473 drivers/scsi/nsp32.c if (id == host->this_id) { host 1512 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 1513 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 1550 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 1551 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 1708 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 1781 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 1782 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 1857 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 1925 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 1926 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 2220 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 2547 drivers/scsi/nsp32.c struct Scsi_Host *host; /* registered host structure */ host 2558 drivers/scsi/nsp32.c host = scsi_host_alloc(&nsp32_template, sizeof(nsp32_hw_data)); host 2559 drivers/scsi/nsp32.c if (host == NULL) { host 2567 drivers/scsi/nsp32.c data = (nsp32_hw_data *)host->hostdata; host 2571 drivers/scsi/nsp32.c host->irq = data->IrqNumber; host 2572 drivers/scsi/nsp32.c host->io_port = data->BaseAddress; host 2573 drivers/scsi/nsp32.c host->unique_id = data->BaseAddress; host 2574 drivers/scsi/nsp32.c host->n_io_port = data->NumAddress; host 2575 drivers/scsi/nsp32.c host->base = (unsigned long)data->MmioAddress; host 2577 drivers/scsi/nsp32.c data->Host = host; host 2699 drivers/scsi/nsp32.c host->irq, host->io_port, host->n_io_port); host 2721 drivers/scsi/nsp32.c ret = request_irq(host->irq, do_nsp32_isr, IRQF_SHARED, "nsp32", data); host 2724 drivers/scsi/nsp32.c "SCSI PCI controller. Interrupt: %d", host->irq); host 2731 drivers/scsi/nsp32.c res = request_region(host->io_port, host->n_io_port, "nsp32"); host 2739 drivers/scsi/nsp32.c ret = scsi_add_host(host, &pdev->dev); host 2744 drivers/scsi/nsp32.c scsi_scan_host(host); host 2745 drivers/scsi/nsp32.c pci_set_drvdata(pdev, host); host 2749 drivers/scsi/nsp32.c release_region(host->io_port, host->n_io_port); host 2752 drivers/scsi/nsp32.c free_irq(host->irq, data); host 2763 drivers/scsi/nsp32.c scsi_host_put(host); host 2769 drivers/scsi/nsp32.c static int nsp32_release(struct Scsi_Host *host) host 2771 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)host->hostdata; host 2783 drivers/scsi/nsp32.c if (host->irq) { host 2784 drivers/scsi/nsp32.c free_irq(host->irq, data); host 2787 drivers/scsi/nsp32.c if (host->io_port && host->n_io_port) { host 2788 drivers/scsi/nsp32.c release_region(host->io_port, host->n_io_port); host 2811 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)SCpnt->device->host->hostdata; host 2812 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 2881 drivers/scsi/nsp32.c struct Scsi_Host *host = SCpnt->device->host; host 2882 drivers/scsi/nsp32.c unsigned int base = SCpnt->device->host->io_port; host 2883 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)host->hostdata; host 2888 drivers/scsi/nsp32.c spin_lock_irq(SCpnt->device->host->host_lock); host 2895 drivers/scsi/nsp32.c spin_unlock_irq(SCpnt->device->host->host_lock); host 3279 drivers/scsi/nsp32.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 3281 drivers/scsi/nsp32.c nsp32_msg(KERN_INFO, "pci-suspend: pdev=0x%p, state=%ld, slot=%s, host=0x%p", pdev, state, pci_name(pdev), host); host 3293 drivers/scsi/nsp32.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 3294 drivers/scsi/nsp32.c nsp32_hw_data *data = (nsp32_hw_data *)host->hostdata; host 3297 drivers/scsi/nsp32.c nsp32_msg(KERN_INFO, "pci-resume: pdev=0x%p, slot=%s, host=0x%p", pdev, pci_name(pdev), host); host 3363 drivers/scsi/nsp32.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 3367 drivers/scsi/nsp32.c scsi_remove_host(host); host 3369 drivers/scsi/nsp32.c nsp32_release(host); host 3371 drivers/scsi/nsp32.c scsi_host_put(host); host 81 drivers/scsi/pcmcia/aha152x_stub.c struct Scsi_Host *host; host 145 drivers/scsi/pcmcia/aha152x_stub.c struct Scsi_Host *host; host 173 drivers/scsi/pcmcia/aha152x_stub.c host = aha152x_probe_one(&s); host 174 drivers/scsi/pcmcia/aha152x_stub.c if (host == NULL) { host 179 drivers/scsi/pcmcia/aha152x_stub.c info->host = host; host 192 drivers/scsi/pcmcia/aha152x_stub.c aha152x_release(info->host); host 200 drivers/scsi/pcmcia/aha152x_stub.c aha152x_host_reset_host(info->host); host 179 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 194 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 366 drivers/scsi/pcmcia/nsp_cs.c unsigned int host_id = SCpnt->device->host->this_id; host 367 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 369 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 449 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 505 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 506 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 519 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 548 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 581 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 582 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 621 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 653 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 654 drivers/scsi/pcmcia/nsp_cs.c unsigned int host_id = SCpnt->device->host->this_id; host 692 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 719 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 720 drivers/scsi/pcmcia/nsp_cs.c unsigned long mmio_base = SCpnt->device->host->base; host 721 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 818 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 819 drivers/scsi/pcmcia/nsp_cs.c unsigned long mmio_base = SCpnt->device->host->base; host 820 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 915 drivers/scsi/pcmcia/nsp_cs.c unsigned int base = SCpnt->device->host->io_port; host 918 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 970 drivers/scsi/pcmcia/nsp_cs.c ((scsi_info_t *)dev_id)->host != NULL ) { host 973 drivers/scsi/pcmcia/nsp_cs.c data = (nsp_hw_data *)info->host->hostdata; host 1316 drivers/scsi/pcmcia/nsp_cs.c struct Scsi_Host *host; /* registered host structure */ host 1320 drivers/scsi/pcmcia/nsp_cs.c host = scsi_host_alloc(&nsp_driver_template, sizeof(nsp_hw_data)); host 1321 drivers/scsi/pcmcia/nsp_cs.c if (host == NULL) { host 1326 drivers/scsi/pcmcia/nsp_cs.c memcpy(host->hostdata, data_b, sizeof(nsp_hw_data)); host 1327 drivers/scsi/pcmcia/nsp_cs.c data = (nsp_hw_data *)host->hostdata; host 1328 drivers/scsi/pcmcia/nsp_cs.c data->ScsiInfo->host = host; host 1333 drivers/scsi/pcmcia/nsp_cs.c nsp_dbg(NSP_DEBUG_INIT, "irq=%d,%d", data_b->IrqNumber, ((nsp_hw_data *)host->hostdata)->IrqNumber); host 1335 drivers/scsi/pcmcia/nsp_cs.c host->unique_id = data->BaseAddress; host 1336 drivers/scsi/pcmcia/nsp_cs.c host->io_port = data->BaseAddress; host 1337 drivers/scsi/pcmcia/nsp_cs.c host->n_io_port = data->NumAddress; host 1338 drivers/scsi/pcmcia/nsp_cs.c host->irq = data->IrqNumber; host 1339 drivers/scsi/pcmcia/nsp_cs.c host->base = data->MmioAddress; host 1346 drivers/scsi/pcmcia/nsp_cs.c host->io_port, host->io_port + host->n_io_port - 1, host 1347 drivers/scsi/pcmcia/nsp_cs.c host->base, host 1348 drivers/scsi/pcmcia/nsp_cs.c host->irq); host 1354 drivers/scsi/pcmcia/nsp_cs.c return host; /* detect done. */ host 1367 drivers/scsi/pcmcia/nsp_cs.c static int nsp_show_info(struct seq_file *m, struct Scsi_Host *host) host 1375 drivers/scsi/pcmcia/nsp_cs.c hostno = host->host_no; host 1376 drivers/scsi/pcmcia/nsp_cs.c data = (nsp_hw_data *)host->hostdata; host 1381 drivers/scsi/pcmcia/nsp_cs.c seq_printf(m, "IRQ: %d\n", host->irq); host 1382 drivers/scsi/pcmcia/nsp_cs.c seq_printf(m, "IO: 0x%lx-0x%lx\n", host->io_port, host->io_port + host->n_io_port - 1); host 1383 drivers/scsi/pcmcia/nsp_cs.c seq_printf(m, "MMIO(virtual address): 0x%lx-0x%lx\n", host->base, host->base + data->MmioLength - 1); host 1384 drivers/scsi/pcmcia/nsp_cs.c seq_printf(m, "sg_tablesize: %d\n", host->sg_tablesize); host 1413 drivers/scsi/pcmcia/nsp_cs.c if (id == host->this_id) { host 1482 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 1491 drivers/scsi/pcmcia/nsp_cs.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 1582 drivers/scsi/pcmcia/nsp_cs.c struct Scsi_Host *host; host 1625 drivers/scsi/pcmcia/nsp_cs.c host = nsp_detect(&nsp_driver_template); host 1627 drivers/scsi/pcmcia/nsp_cs.c if (host == NULL) { host 1633 drivers/scsi/pcmcia/nsp_cs.c ret = scsi_add_host (host, NULL); host 1637 drivers/scsi/pcmcia/nsp_cs.c scsi_scan_host(host); host 1639 drivers/scsi/pcmcia/nsp_cs.c info->host = host; host 1656 drivers/scsi/pcmcia/nsp_cs.c if (info->host == NULL) { host 1659 drivers/scsi/pcmcia/nsp_cs.c data = (nsp_hw_data *)info->host->hostdata; host 1665 drivers/scsi/pcmcia/nsp_cs.c if (info->host != NULL) { host 1666 drivers/scsi/pcmcia/nsp_cs.c scsi_remove_host(info->host); host 1676 drivers/scsi/pcmcia/nsp_cs.c if (info->host != NULL) { host 1677 drivers/scsi/pcmcia/nsp_cs.c scsi_host_put(info->host); host 1688 drivers/scsi/pcmcia/nsp_cs.c if (info->host != NULL) { host 1691 drivers/scsi/pcmcia/nsp_cs.c data = (nsp_hw_data *)info->host->hostdata; host 1710 drivers/scsi/pcmcia/nsp_cs.c if (info->host != NULL) { host 1713 drivers/scsi/pcmcia/nsp_cs.c data = (nsp_hw_data *)info->host->hostdata; host 226 drivers/scsi/pcmcia/nsp_cs.h struct Scsi_Host *host; host 296 drivers/scsi/pcmcia/nsp_cs.h struct Scsi_Host *host); host 13 drivers/scsi/pcmcia/nsp_message.c unsigned int base = SCpnt->device->host->io_port; host 14 drivers/scsi/pcmcia/nsp_message.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 55 drivers/scsi/pcmcia/nsp_message.c nsp_hw_data *data = (nsp_hw_data *)SCpnt->device->host->hostdata; host 82 drivers/scsi/pcmcia/qlogic_stub.c struct Scsi_Host *host; host 90 drivers/scsi/pcmcia/qlogic_stub.c static struct Scsi_Host *qlogic_detect(struct scsi_host_template *host, host 99 drivers/scsi/pcmcia/qlogic_stub.c qinitid = host->this_id; host 105 drivers/scsi/pcmcia/qlogic_stub.c host->name = qlogic_name; host 106 drivers/scsi/pcmcia/qlogic_stub.c shost = scsi_host_alloc(host, sizeof(struct qlogicfas408_priv)); host 192 drivers/scsi/pcmcia/qlogic_stub.c struct Scsi_Host *host; host 216 drivers/scsi/pcmcia/qlogic_stub.c host = qlogic_detect(&qlogicfas_driver_template, link, host 219 drivers/scsi/pcmcia/qlogic_stub.c host = qlogic_detect(&qlogicfas_driver_template, link, host 222 drivers/scsi/pcmcia/qlogic_stub.c if (!host) { host 227 drivers/scsi/pcmcia/qlogic_stub.c info->host = host; host 244 drivers/scsi/pcmcia/qlogic_stub.c scsi_remove_host(info->host); host 246 drivers/scsi/pcmcia/qlogic_stub.c free_irq(link->irq, info->host); host 249 drivers/scsi/pcmcia/qlogic_stub.c scsi_host_put(info->host); host 183 drivers/scsi/pcmcia/sym53c500_cs.c struct Scsi_Host *host; host 503 drivers/scsi/pcmcia/sym53c500_cs.c struct Scsi_Host *shost = info->host; host 544 drivers/scsi/pcmcia/sym53c500_cs.c int port_base = SCpnt->device->host->io_port; host 546 drivers/scsi/pcmcia/sym53c500_cs.c (struct sym53c500_data *)SCpnt->device->host->hostdata; host 582 drivers/scsi/pcmcia/sym53c500_cs.c int port_base = SCpnt->device->host->io_port; host 585 drivers/scsi/pcmcia/sym53c500_cs.c spin_lock_irq(SCpnt->device->host->host_lock); host 587 drivers/scsi/pcmcia/sym53c500_cs.c spin_unlock_irq(SCpnt->device->host->host_lock); host 695 drivers/scsi/pcmcia/sym53c500_cs.c struct Scsi_Host *host; host 746 drivers/scsi/pcmcia/sym53c500_cs.c host = scsi_host_alloc(tpnt, sizeof(struct sym53c500_data)); host 747 drivers/scsi/pcmcia/sym53c500_cs.c if (!host) { host 752 drivers/scsi/pcmcia/sym53c500_cs.c data = (struct sym53c500_data *)host->hostdata; host 755 drivers/scsi/pcmcia/sym53c500_cs.c if (request_irq(irq_level, SYM53C500_intr, IRQF_SHARED, "SYM53C500", host)) { host 768 drivers/scsi/pcmcia/sym53c500_cs.c host->unique_id = port_base; host 769 drivers/scsi/pcmcia/sym53c500_cs.c host->irq = irq_level; host 770 drivers/scsi/pcmcia/sym53c500_cs.c host->io_port = port_base; host 771 drivers/scsi/pcmcia/sym53c500_cs.c host->n_io_port = 0x10; host 772 drivers/scsi/pcmcia/sym53c500_cs.c host->dma_channel = -1; host 780 drivers/scsi/pcmcia/sym53c500_cs.c info->host = host; host 782 drivers/scsi/pcmcia/sym53c500_cs.c if (scsi_add_host(host, NULL)) host 785 drivers/scsi/pcmcia/sym53c500_cs.c scsi_scan_host(host); host 790 drivers/scsi/pcmcia/sym53c500_cs.c free_irq(irq_level, host); host 792 drivers/scsi/pcmcia/sym53c500_cs.c scsi_host_put(host); host 146 drivers/scsi/pmcraid.c pinstance = shost_priv(scsi_dev->host); host 223 drivers/scsi/pmcraid.c scsi_dev->host->unique_id, host 498 drivers/scsi/pmcraid.c pinstance->host->host_lock, lock_flags); host 501 drivers/scsi/pmcraid.c pinstance->host->host_lock, lock_flags); host 565 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 567 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 616 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 618 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 702 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 711 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, host 746 drivers/scsi/pmcraid.c scsi_block_requests(pinstance->host); host 748 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 924 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 926 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 986 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 989 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 1404 drivers/scsi/pmcraid.c aen_msg->hostno = (pinstance->host->unique_id << 16 | host 1538 drivers/scsi/pmcraid.c pinstance->host->unique_id, host 1602 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, host 1606 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, host 1730 drivers/scsi/pmcraid.c pinstance->host, host 1766 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 1768 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 1807 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, host 1810 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, host 2098 drivers/scsi/pmcraid.c scsi_block_requests(pinstance->host); host 2288 drivers/scsi/pmcraid.c scsi_block_requests(pinstance->host); host 2329 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 2334 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 2339 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 2353 drivers/scsi/pmcraid.c scsi_block_requests(pinstance->host); host 2368 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 2374 drivers/scsi/pmcraid.c scsi_unblock_requests(pinstance->host); host 2378 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 2635 drivers/scsi/pmcraid.c scsi_report_bus_reset(pinstance->host, host 2713 drivers/scsi/pmcraid.c (struct pmcraid_instance *)scsi_cmd->device->host->hostdata; host 2726 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 2729 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 2743 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 2772 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 2954 drivers/scsi/pmcraid.c (struct pmcraid_instance *)scsi_cmd->device->host->hostdata; host 2969 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, host_lock_flags); host 2973 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, host 3001 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, host 3068 drivers/scsi/pmcraid.c (struct pmcraid_instance *)(scmd->device->host->hostdata); host 3338 drivers/scsi/pmcraid.c (struct pmcraid_instance *)scsi_cmd->device->host->hostdata; host 3412 drivers/scsi/pmcraid.c scsi_cmd->cmnd[0], pinstance->host->unique_id, host 3728 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 3730 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 3754 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 3756 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 3943 drivers/scsi/pmcraid.c scsi_block_requests(pinstance->host); host 3949 drivers/scsi/pmcraid.c scsi_unblock_requests(pinstance->host); host 4177 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, host 4181 drivers/scsi/pmcraid.c pinstance->host->host_lock, host 4255 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, lock_flags); host 4257 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, lock_flags); host 4316 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, host 4320 drivers/scsi/pmcraid.c pinstance->host->host_lock, host 4336 drivers/scsi/pmcraid.c pinstance->host->host_lock, host 4368 drivers/scsi/pmcraid.c scsi_add_device(pinstance->host, bus, target, lun); host 4443 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, host 4446 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, host 4608 drivers/scsi/pmcraid.c pinstance->host->unique_id); host 4644 drivers/scsi/pmcraid.c pinstance->host->unique_id); host 5056 drivers/scsi/pmcraid.c static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host, host 5060 drivers/scsi/pmcraid.c (struct pmcraid_instance *)host->hostdata; host 5062 drivers/scsi/pmcraid.c pinstance->host = host; host 5222 drivers/scsi/pmcraid.c scsi_remove_host(pinstance->host); host 5225 drivers/scsi/pmcraid.c scsi_block_requests(pinstance->host); host 5238 drivers/scsi/pmcraid.c scsi_host_put(pinstance->host); host 5277 drivers/scsi/pmcraid.c struct Scsi_Host *host = pinstance->host; host 5341 drivers/scsi/pmcraid.c scsi_host_put(host); host 5366 drivers/scsi/pmcraid.c spin_lock_irqsave(pinstance->host->host_lock, flags); host 5368 drivers/scsi/pmcraid.c spin_unlock_irqrestore(pinstance->host->host_lock, flags); host 5369 drivers/scsi/pmcraid.c scsi_unblock_requests(pinstance->host); host 5656 drivers/scsi/pmcraid.c struct Scsi_Host *host; host 5721 drivers/scsi/pmcraid.c host = scsi_host_alloc(&pmcraid_host_template, host 5724 drivers/scsi/pmcraid.c if (!host) { host 5730 drivers/scsi/pmcraid.c host->max_id = PMCRAID_MAX_NUM_TARGETS_PER_BUS; host 5731 drivers/scsi/pmcraid.c host->max_lun = PMCRAID_MAX_NUM_LUNS_PER_TARGET; host 5732 drivers/scsi/pmcraid.c host->unique_id = host->host_no; host 5733 drivers/scsi/pmcraid.c host->max_channel = PMCRAID_MAX_BUS_TO_SCAN; host 5734 drivers/scsi/pmcraid.c host->max_cmd_len = PMCRAID_MAX_CDB_LEN; host 5737 drivers/scsi/pmcraid.c pinstance = (struct pmcraid_instance *)host->hostdata; host 5743 drivers/scsi/pmcraid.c rc = pmcraid_init_instance(pdev, host, mapped_pci_addr); host 5795 drivers/scsi/pmcraid.c rc = scsi_add_host(pinstance->host, &pdev->dev); host 5801 drivers/scsi/pmcraid.c scsi_scan_host(pinstance->host); host 5819 drivers/scsi/pmcraid.c scsi_remove_host(host); host 5829 drivers/scsi/pmcraid.c scsi_host_put(host); host 719 drivers/scsi/pmcraid.h struct Scsi_Host *host; /* mid layer interface structure handle */ host 42 drivers/scsi/ppa.c struct Scsi_Host *host; host 48 drivers/scsi/ppa.c static inline ppa_struct *ppa_dev(struct Scsi_Host *host) host 50 drivers/scsi/ppa.c return *(ppa_struct **)&host->hostdata; host 122 drivers/scsi/ppa.c static inline int ppa_write_info(struct Scsi_Host *host, char *buffer, int length) host 124 drivers/scsi/ppa.c ppa_struct *dev = ppa_dev(host); host 142 drivers/scsi/ppa.c static int ppa_show_info(struct seq_file *m, struct Scsi_Host *host) host 144 drivers/scsi/ppa.c ppa_struct *dev = ppa_dev(host); host 495 drivers/scsi/ppa.c ppa_struct *dev = ppa_dev(cmd->device->host); host 521 drivers/scsi/ppa.c ppa_struct *dev = ppa_dev(cmd->device->host); host 793 drivers/scsi/ppa.c ppa_struct *dev = ppa_dev(cmd->device->host); host 839 drivers/scsi/ppa.c ppa_struct *dev = ppa_dev(cmd->device->host); host 867 drivers/scsi/ppa.c ppa_struct *dev = ppa_dev(cmd->device->host); host 1018 drivers/scsi/ppa.c struct Scsi_Host *host; host 1103 drivers/scsi/ppa.c host = scsi_host_alloc(&ppa_template, sizeof(ppa_struct *)); host 1104 drivers/scsi/ppa.c if (!host) host 1106 drivers/scsi/ppa.c host->io_port = pb->base; host 1107 drivers/scsi/ppa.c host->n_io_port = ports; host 1108 drivers/scsi/ppa.c host->dma_channel = -1; host 1109 drivers/scsi/ppa.c host->unique_id = pb->number; host 1110 drivers/scsi/ppa.c *(ppa_struct **)&host->hostdata = dev; host 1111 drivers/scsi/ppa.c dev->host = host; host 1113 drivers/scsi/ppa.c err = scsi_add_host(host, NULL); host 1116 drivers/scsi/ppa.c scsi_scan_host(host); host 1120 drivers/scsi/ppa.c scsi_host_put(host); host 1139 drivers/scsi/ppa.c scsi_remove_host(dev->host); host 1140 drivers/scsi/ppa.c scsi_host_put(dev->host); host 66 drivers/scsi/ps3rom.c struct ps3rom_private *priv = shost_priv(scsi_dev->host); host 206 drivers/scsi/ps3rom.c struct ps3rom_private *priv = shost_priv(cmd->device->host); host 265 drivers/scsi/ps3rom.c struct Scsi_Host *host; host 290 drivers/scsi/ps3rom.c host = ps3_system_bus_get_drvdata(&dev->sbd); host 291 drivers/scsi/ps3rom.c priv = shost_priv(host); host 348 drivers/scsi/ps3rom.c struct Scsi_Host *host; host 367 drivers/scsi/ps3rom.c host = scsi_host_alloc(&ps3rom_host_template, host 369 drivers/scsi/ps3rom.c if (!host) { host 376 drivers/scsi/ps3rom.c priv = shost_priv(host); host 377 drivers/scsi/ps3rom.c ps3_system_bus_set_drvdata(&dev->sbd, host); host 381 drivers/scsi/ps3rom.c host->max_id = 1; host 382 drivers/scsi/ps3rom.c host->max_lun = 1; host 384 drivers/scsi/ps3rom.c error = scsi_add_host(host, &dev->sbd.core); host 392 drivers/scsi/ps3rom.c scsi_scan_host(host); host 396 drivers/scsi/ps3rom.c scsi_host_put(host); host 408 drivers/scsi/ps3rom.c struct Scsi_Host *host = ps3_system_bus_get_drvdata(&dev->sbd); host 410 drivers/scsi/ps3rom.c scsi_remove_host(host); host 412 drivers/scsi/ps3rom.c scsi_host_put(host); host 477 drivers/scsi/qedf/qedf.h extern int qedf_queuecommand(struct Scsi_Host *host, host 36 drivers/scsi/qedf/qedf_attr.c port_id = fc_host_port_id(lport->host); host 94 drivers/scsi/qedf/qedf_attr.c qedf_uevent_emit(base_qedf->lport->host, QEDF_UEVENT_CODE_GRCDUMP, host 175 drivers/scsi/qedf/qedf_attr.c qedf_create_sysfs_attr(qedf->lport->host, bin_file_entries); host 180 drivers/scsi/qedf/qedf_attr.c qedf_remove_sysfs_attr(qedf->lport->host, bin_file_entries); host 481 drivers/scsi/qedf/qedf_io.c struct Scsi_Host *host = sc->device->host; host 482 drivers/scsi/qedf/qedf_io.c struct fc_lport *lport = shost_priv(host); host 858 drivers/scsi/qedf/qedf_io.c struct Scsi_Host *host = sc_cmd->device->host; host 859 drivers/scsi/qedf/qedf_io.c struct fc_lport *lport = shost_priv(host); host 942 drivers/scsi/qedf/qedf_io.c qedf_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc_cmd) host 944 drivers/scsi/qedf/qedf_io.c struct fc_lport *lport = shost_priv(host); host 1249 drivers/scsi/qedf/qedf_io.c qedf->lport->host->host_no, sc_cmd->device->id, host 1398 drivers/scsi/qedf/qedf_io.c qedf->lport->host->host_no, sc_cmd->device->id, host 2397 drivers/scsi/qedf/qedf_io.c struct fc_lport *lport = shost_priv(sc_cmd->device->host); host 503 drivers/scsi/qedf/qedf_main.c fc_host_supported_speeds(lport->host) = lport->link_supported_speeds; host 663 drivers/scsi/qedf/qedf_main.c lport = shost_priv(sc_cmd->device->host); host 794 drivers/scsi/qedf/qedf_main.c sc_cmd->device->host->host_no, sc_cmd->device->id, host 802 drivers/scsi/qedf/qedf_main.c sc_cmd->device->host->host_no, sc_cmd->device->id, host 891 drivers/scsi/qedf/qedf_main.c lport = shost_priv(sc_cmd->device->host); host 1291 drivers/scsi/qedf/qedf_main.c port_id = fc_host_port_id(qedf->lport->host); host 1579 drivers/scsi/qedf/qedf_main.c struct fc_host_attrs *fc_host = shost_to_fc_host(lport->host); host 1644 drivers/scsi/qedf/qedf_main.c fc_host_max_npiv_vports(lport->host) = QEDF_MAX_NPIV; host 1667 drivers/scsi/qedf/qedf_main.c fc_host_maxframe_size(lport->host) = lport->mfs; host 1670 drivers/scsi/qedf/qedf_main.c fc_host_dev_loss_tmo(lport->host) = qedf_dev_loss_tmo; host 1673 drivers/scsi/qedf/qedf_main.c snprintf(fc_host_symbolic_name(lport->host), 256, host 1779 drivers/scsi/qedf/qedf_main.c vn_port->host->transportt = qedf_fc_vport_transport_template; host 1780 drivers/scsi/qedf/qedf_main.c vn_port->host->can_queue = FCOE_PARAMS_NUM_TASKS; host 1781 drivers/scsi/qedf/qedf_main.c vn_port->host->max_lun = qedf_max_lun; host 1782 drivers/scsi/qedf/qedf_main.c vn_port->host->sg_tablesize = QEDF_MAX_BDS_PER_CMD; host 1783 drivers/scsi/qedf/qedf_main.c vn_port->host->max_cmd_len = QEDF_MAX_CDB_LEN; host 1785 drivers/scsi/qedf/qedf_main.c rc = scsi_add_host(vn_port->host, &vport->dev); host 1793 drivers/scsi/qedf/qedf_main.c fc_host_dev_loss_tmo(vn_port->host) = qedf_dev_loss_tmo; host 1813 drivers/scsi/qedf/qedf_main.c fc_host_port_type(vn_port->host) = FC_PORTTYPE_UNKNOWN; host 1827 drivers/scsi/qedf/qedf_main.c vport_qedf->dbg_ctx.host_no = vn_port->host->host_no; host 1831 drivers/scsi/qedf/qedf_main.c scsi_host_put(vn_port->host); host 1859 drivers/scsi/qedf/qedf_main.c fc_remove_host(vn_port->host); host 1860 drivers/scsi/qedf/qedf_main.c scsi_remove_host(vn_port->host); host 1873 drivers/scsi/qedf/qedf_main.c if (vn_port->host) host 1874 drivers/scsi/qedf/qedf_main.c scsi_host_put(vn_port->host); host 1903 drivers/scsi/qedf/qedf_main.c struct fc_host_attrs *fc_host = shost_to_fc_host(qedf->lport->host); host 3157 drivers/scsi/qedf/qedf_main.c struct Scsi_Host *host; host 3190 drivers/scsi/qedf/qedf_main.c qedf->dbg_ctx.host_no = lport->host->host_no; host 3212 drivers/scsi/qedf/qedf_main.c host = lport->host; host 3225 drivers/scsi/qedf/qedf_main.c qedf->lport->host->host_no); host 3381 drivers/scsi/qedf/qedf_main.c sprintf(host_buf, "host_%d", host->host_no); host 3393 drivers/scsi/qedf/qedf_main.c host->transportt = qedf_fc_transport_template; host 3394 drivers/scsi/qedf/qedf_main.c host->max_lun = qedf_max_lun; host 3395 drivers/scsi/qedf/qedf_main.c host->max_cmd_len = QEDF_MAX_CDB_LEN; host 3396 drivers/scsi/qedf/qedf_main.c host->can_queue = FCOE_PARAMS_NUM_TASKS; host 3397 drivers/scsi/qedf/qedf_main.c rc = scsi_add_host(host, &pdev->dev); host 3410 drivers/scsi/qedf/qedf_main.c snprintf(host_buf, 20, "qedf_%d_ll2", host->host_no); host 3453 drivers/scsi/qedf/qedf_main.c sprintf(host_buf, "qedf_%u_timer", qedf->lport->host->host_no); host 3466 drivers/scsi/qedf/qedf_main.c qedf->lport->host->host_no); host 3522 drivers/scsi/qedf/qedf_main.c fc_remove_host(qedf->lport->host); host 3523 drivers/scsi/qedf/qedf_main.c scsi_remove_host(qedf->lport->host); host 3539 drivers/scsi/qedf/qedf_main.c scsi_host_put(lport->host); host 3615 drivers/scsi/qedf/qedf_main.c fc_remove_host(qedf->lport->host); host 3616 drivers/scsi/qedf/qedf_main.c scsi_remove_host(qedf->lport->host); host 3662 drivers/scsi/qedf/qedf_main.c scsi_host_put(qedf->lport->host); host 3691 drivers/scsi/qedf/qedf_main.c struct Scsi_Host *host = lport->host; host 3692 drivers/scsi/qedf/qedf_main.c struct fc_host_attrs *fc_host = shost_to_fc_host(host); host 3696 drivers/scsi/qedf/qedf_main.c hst = qedf_fc_get_host_stats(host); host 35 drivers/scsi/qedi/qedi_iscsi.c struct Scsi_Host *shost = cmd->device->host; host 495 drivers/scsi/qla1280.c #define CMD_HOST(Cmnd) Cmnd->device->host host 662 drivers/scsi/qla1280.c qla1280_info(struct Scsi_Host *host) host 670 drivers/scsi/qla1280.c ha = (struct scsi_qla_host *)host->hostdata; host 696 drivers/scsi/qla1280.c struct Scsi_Host *host = cmd->device->host; host 697 drivers/scsi/qla1280.c struct scsi_qla_host *ha = (struct scsi_qla_host *)host->hostdata; host 753 drivers/scsi/qla1280.c spin_unlock_irq(ha->host->host_lock); host 755 drivers/scsi/qla1280.c spin_lock_irq(ha->host->host_lock); host 978 drivers/scsi/qla1280.c spin_lock_irq(cmd->device->host->host_lock); host 980 drivers/scsi/qla1280.c spin_unlock_irq(cmd->device->host->host_lock); host 994 drivers/scsi/qla1280.c spin_lock_irq(cmd->device->host->host_lock); host 996 drivers/scsi/qla1280.c spin_unlock_irq(cmd->device->host->host_lock); host 1010 drivers/scsi/qla1280.c spin_lock_irq(cmd->device->host->host_lock); host 1012 drivers/scsi/qla1280.c spin_unlock_irq(cmd->device->host->host_lock); host 1026 drivers/scsi/qla1280.c spin_lock_irq(cmd->device->host->host_lock); host 1028 drivers/scsi/qla1280.c spin_unlock_irq(cmd->device->host->host_lock); host 1089 drivers/scsi/qla1280.c spin_lock(ha->host->host_lock); host 1105 drivers/scsi/qla1280.c spin_unlock(ha->host->host_lock); host 1191 drivers/scsi/qla1280.c ha = (struct scsi_qla_host *)device->host->hostdata; host 1223 drivers/scsi/qla1280.c spin_lock_irqsave(ha->host->host_lock, flags); host 1227 drivers/scsi/qla1280.c spin_unlock_irqrestore(ha->host->host_lock, flags); host 1445 drivers/scsi/qla1280.c spin_lock_irqsave(ha->host->host_lock, flags); host 1477 drivers/scsi/qla1280.c spin_unlock_irqrestore(ha->host->host_lock, flags); host 1506 drivers/scsi/qla1280.c spin_unlock_irq(ha->host->host_lock); host 1539 drivers/scsi/qla1280.c spin_lock_irq(ha->host->host_lock); host 2455 drivers/scsi/qla1280.c spin_unlock_irq(ha->host->host_lock); host 2462 drivers/scsi/qla1280.c spin_lock_irq(ha->host->host_lock); host 2565 drivers/scsi/qla1280.c spin_unlock_irq(ha->host->host_lock); host 2567 drivers/scsi/qla1280.c spin_lock_irq(ha->host->host_lock); host 3958 drivers/scsi/qla1280.c struct Scsi_Host *host = CMD_HOST(cmd); host 3963 drivers/scsi/qla1280.c ha = (struct scsi_qla_host *)host->hostdata; host 4153 drivers/scsi/qla1280.c struct Scsi_Host *host; host 4176 drivers/scsi/qla1280.c host = scsi_host_alloc(&qla1280_driver_template, sizeof(*ha)); host 4177 drivers/scsi/qla1280.c if (!host) { host 4183 drivers/scsi/qla1280.c ha = (struct scsi_qla_host *)host->hostdata; host 4227 drivers/scsi/qla1280.c ha->host = host; host 4228 drivers/scsi/qla1280.c ha->host_no = host->host_no; host 4230 drivers/scsi/qla1280.c host->irq = pdev->irq; host 4231 drivers/scsi/qla1280.c host->max_channel = bdp->numPorts - 1; host 4232 drivers/scsi/qla1280.c host->max_lun = MAX_LUNS - 1; host 4233 drivers/scsi/qla1280.c host->max_id = MAX_TARGETS; host 4234 drivers/scsi/qla1280.c host->max_sectors = 1024; host 4235 drivers/scsi/qla1280.c host->unique_id = host->host_no; host 4246 drivers/scsi/qla1280.c host->base = (unsigned long)ha->mmpbase; host 4249 drivers/scsi/qla1280.c host->io_port = pci_resource_start(ha->pdev, 0); host 4250 drivers/scsi/qla1280.c if (!request_region(host->io_port, 0xff, "qla1280")) { host 4253 drivers/scsi/qla1280.c host->io_port, host->io_port + 0xff); host 4257 drivers/scsi/qla1280.c ha->iobase = (struct device_reg *)host->io_port; host 4279 drivers/scsi/qla1280.c host->this_id = ha->bus_settings[0].id; host 4281 drivers/scsi/qla1280.c pci_set_drvdata(pdev, host); host 4283 drivers/scsi/qla1280.c error = scsi_add_host(host, &pdev->dev); host 4286 drivers/scsi/qla1280.c scsi_scan_host(host); host 4298 drivers/scsi/qla1280.c release_region(host->io_port, 0xff); host 4309 drivers/scsi/qla1280.c scsi_host_put(host); host 4320 drivers/scsi/qla1280.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 4321 drivers/scsi/qla1280.c struct scsi_qla_host *ha = (struct scsi_qla_host *)host->hostdata; host 4323 drivers/scsi/qla1280.c scsi_remove_host(host); host 4332 drivers/scsi/qla1280.c release_region(host->io_port, 0xff); host 4344 drivers/scsi/qla1280.c scsi_host_put(host); host 1011 drivers/scsi/qla1280.h struct Scsi_Host *host; /* pointer to host data */ host 685 drivers/scsi/qla2xxx/qla_attr.c scsi_block_requests(vha->host); host 704 drivers/scsi/qla2xxx/qla_attr.c scsi_unblock_requests(vha->host); host 731 drivers/scsi/qla2xxx/qla_attr.c scsi_block_requests(vha->host); host 735 drivers/scsi/qla2xxx/qla_attr.c scsi_unblock_requests(vha->host); host 984 drivers/scsi/qla2xxx/qla_attr.c struct Scsi_Host *host = vha->host; host 996 drivers/scsi/qla2xxx/qla_attr.c ret = sysfs_create_bin_file(&host->shost_gendev.kobj, host 1012 drivers/scsi/qla2xxx/qla_attr.c struct Scsi_Host *host = vha->host; host 1027 drivers/scsi/qla2xxx/qla_attr.c sysfs_remove_bin_file(&host->shost_gendev.kobj, host 2463 drivers/scsi/qla2xxx/qla_attr.c struct Scsi_Host *host = dev_to_shost(starget->dev.parent); host 2464 drivers/scsi/qla2xxx/qla_attr.c scsi_qla_host_t *vha = shost_priv(host); host 2482 drivers/scsi/qla2xxx/qla_attr.c struct Scsi_Host *host = dev_to_shost(starget->dev.parent); host 2483 drivers/scsi/qla2xxx/qla_attr.c scsi_qla_host_t *vha = shost_priv(host); host 2501 drivers/scsi/qla2xxx/qla_attr.c struct Scsi_Host *host = dev_to_shost(starget->dev.parent); host 2502 drivers/scsi/qla2xxx/qla_attr.c scsi_qla_host_t *vha = shost_priv(host); host 2527 drivers/scsi/qla2xxx/qla_attr.c struct Scsi_Host *host = rport_to_shost(rport); host 2542 drivers/scsi/qla2xxx/qla_attr.c spin_lock_irqsave(host->host_lock, flags); host 2545 drivers/scsi/qla2xxx/qla_attr.c spin_unlock_irqrestore(host->host_lock, flags); host 2833 drivers/scsi/qla2xxx/qla_attr.c scsi_host_set_prot(vha->host, host 2847 drivers/scsi/qla2xxx/qla_attr.c scsi_host_set_guard(vha->host, guard); host 2852 drivers/scsi/qla2xxx/qla_attr.c if (scsi_add_host_with_dma(vha->host, &fc_vport->dev, host 2860 drivers/scsi/qla2xxx/qla_attr.c fc_host_dev_loss_tmo(vha->host) = ha->port_down_retry_count; host 2861 drivers/scsi/qla2xxx/qla_attr.c fc_host_node_name(vha->host) = wwn_to_u64(vha->node_name); host 2862 drivers/scsi/qla2xxx/qla_attr.c fc_host_port_name(vha->host) = wwn_to_u64(vha->port_name); host 2863 drivers/scsi/qla2xxx/qla_attr.c fc_host_supported_classes(vha->host) = host 2864 drivers/scsi/qla2xxx/qla_attr.c fc_host_supported_classes(base_vha->host); host 2865 drivers/scsi/qla2xxx/qla_attr.c fc_host_supported_speeds(vha->host) = host 2866 drivers/scsi/qla2xxx/qla_attr.c fc_host_supported_speeds(base_vha->host); host 2909 drivers/scsi/qla2xxx/qla_attr.c scsi_host_put(vha->host); host 2935 drivers/scsi/qla2xxx/qla_attr.c fc_remove_host(vha->host); host 2937 drivers/scsi/qla2xxx/qla_attr.c scsi_remove_host(vha->host); host 2969 drivers/scsi/qla2xxx/qla_attr.c scsi_host_put(vha->host); host 3084 drivers/scsi/qla2xxx/qla_attr.c fc_host_dev_loss_tmo(vha->host) = ha->port_down_retry_count; host 3085 drivers/scsi/qla2xxx/qla_attr.c fc_host_node_name(vha->host) = wwn_to_u64(vha->node_name); host 3086 drivers/scsi/qla2xxx/qla_attr.c fc_host_port_name(vha->host) = wwn_to_u64(vha->port_name); host 3087 drivers/scsi/qla2xxx/qla_attr.c fc_host_supported_classes(vha->host) = ha->base_qpair->enable_class_2 ? host 3089 drivers/scsi/qla2xxx/qla_attr.c fc_host_max_npiv_vports(vha->host) = ha->max_npiv_vports; host 3090 drivers/scsi/qla2xxx/qla_attr.c fc_host_npiv_vports_inuse(vha->host) = ha->cur_vport_count; host 3133 drivers/scsi/qla2xxx/qla_attr.c fc_host_supported_speeds(vha->host) = speeds; host 118 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 121 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 250 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host; host 262 drivers/scsi/qla2xxx/qla_bsg.c host = rport_to_shost(rport); host 263 drivers/scsi/qla2xxx/qla_bsg.c vha = shost_priv(host); host 267 drivers/scsi/qla2xxx/qla_bsg.c host = fc_bsg_to_shost(bsg_job); host 268 drivers/scsi/qla2xxx/qla_bsg.c vha = shost_priv(host); host 432 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 433 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 710 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 711 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 951 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 953 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 988 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 989 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1098 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1099 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1294 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1295 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1452 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1453 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1489 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1490 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1525 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1526 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1578 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1579 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1629 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1630 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1676 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1677 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1722 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1723 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1772 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1773 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 1950 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 1951 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 2073 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 2074 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 2115 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 2116 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 2157 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 2158 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 2189 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 2190 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 2235 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 2236 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 2295 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 2296 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 2353 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host = fc_bsg_to_shost(bsg_job); host 2354 drivers/scsi/qla2xxx/qla_bsg.c scsi_qla_host_t *vha = shost_priv(host); host 2520 drivers/scsi/qla2xxx/qla_bsg.c struct Scsi_Host *host; host 2528 drivers/scsi/qla2xxx/qla_bsg.c host = rport_to_shost(rport); host 2529 drivers/scsi/qla2xxx/qla_bsg.c vha = shost_priv(host); host 2531 drivers/scsi/qla2xxx/qla_bsg.c host = fc_bsg_to_shost(bsg_job); host 2532 drivers/scsi/qla2xxx/qla_bsg.c vha = shost_priv(host); host 4338 drivers/scsi/qla2xxx/qla_def.h struct Scsi_Host *host; host 1882 drivers/scsi/qla2xxx/qla_gs.c "%s", fc_host_system_hostname(vha->host)); host 2109 drivers/scsi/qla2xxx/qla_gs.c "%s %s", "Linux", fc_host_system_hostname(vha->host)); host 2453 drivers/scsi/qla2xxx/qla_gs.c "%s", fc_host_system_hostname(vha->host)); host 1548 drivers/scsi/qla2xxx/qla_init.c if (vha->host->active_mode == MODE_TARGET) host 3909 drivers/scsi/qla2xxx/qla_init.c ha->fw_options[3], vha->host->active_mode); host 4789 drivers/scsi/qla2xxx/qla_init.c spin_lock_irqsave(fcport->vha->host->host_lock, flags); host 4792 drivers/scsi/qla2xxx/qla_init.c spin_unlock_irqrestore(fcport->vha->host->host_lock, flags); host 5339 drivers/scsi/qla2xxx/qla_init.c fcport->rport = rport = fc_remote_port_add(vha->host, 0, &rport_ids); host 5346 drivers/scsi/qla2xxx/qla_init.c spin_lock_irqsave(fcport->vha->host->host_lock, flags); host 5348 drivers/scsi/qla2xxx/qla_init.c spin_unlock_irqrestore(fcport->vha->host->host_lock, flags); host 5424 drivers/scsi/qla2xxx/qla_init.c switch (vha->host->active_mode) { host 5831 drivers/scsi/qla2xxx/qla_init.c (vha->host->active_mode == MODE_TARGET))) { host 8702 drivers/scsi/qla2xxx/qla_init.c ha->fw_options[3], vha->host->active_mode); host 149 drivers/scsi/qla2xxx/qla_iocb.c uint8_t guard = scsi_host_get_guard(cmd->device->host); host 852 drivers/scsi/qla2xxx/qla_isr.c fc_host_port_name(vha->host) = host 1697 drivers/scsi/qla2xxx/qla_mbx.c fc_host_port_name(vha->host) = host 486 drivers/scsi/qla2xxx/qla_mid.c struct Scsi_Host *host; host 495 drivers/scsi/qla2xxx/qla_mid.c host = vha->host; host 525 drivers/scsi/qla2xxx/qla_mid.c host->can_queue = base_vha->req->length + 128; host 526 drivers/scsi/qla2xxx/qla_mid.c host->cmd_per_lun = 3; host 528 drivers/scsi/qla2xxx/qla_mid.c host->max_cmd_len = 32; host 530 drivers/scsi/qla2xxx/qla_mid.c host->max_cmd_len = MAX_CMDSZ; host 531 drivers/scsi/qla2xxx/qla_mid.c host->max_channel = MAX_BUSES - 1; host 532 drivers/scsi/qla2xxx/qla_mid.c host->max_lun = ql2xmaxlun; host 533 drivers/scsi/qla2xxx/qla_mid.c host->unique_id = host->host_no; host 534 drivers/scsi/qla2xxx/qla_mid.c host->max_id = ha->max_fibre_devices; host 535 drivers/scsi/qla2xxx/qla_mid.c host->transportt = qla2xxx_transport_vport_template; host 1478 drivers/scsi/qla2xxx/qla_mr.c scsi_unblock_requests(vha->host); host 1629 drivers/scsi/qla2xxx/qla_mr.c scsi_block_requests(vha->host); host 1661 drivers/scsi/qla2xxx/qla_mr.c scsi_block_requests(vha->host); host 1664 drivers/scsi/qla2xxx/qla_mr.c scsi_block_requests(vha->host); host 1760 drivers/scsi/qla2xxx/qla_mr.c scsi_block_requests(vha->host); host 1762 drivers/scsi/qla2xxx/qla_mr.c scsi_unblock_requests(vha->host); host 1766 drivers/scsi/qla2xxx/qla_mr.c fc_host_post_event(vha->host, fc_get_event_number(), host 1780 drivers/scsi/qla2xxx/qla_mr.c fc_host_node_name(vha->host) = node_name; host 1781 drivers/scsi/qla2xxx/qla_mr.c fc_host_port_name(vha->host) = port_name; host 703 drivers/scsi/qla2xxx/qla_nvme.c qla_nvme_fc_transport.dma_boundary = vha->host->dma_boundary; host 2677 drivers/scsi/qla2xxx/qla_nx.c scsi_block_requests(vha->host); host 2679 drivers/scsi/qla2xxx/qla_nx.c scsi_unblock_requests(vha->host); host 2788 drivers/scsi/qla2xxx/qla_nx.c scsi_block_requests(vha->host); host 2790 drivers/scsi/qla2xxx/qla_nx.c scsi_unblock_requests(vha->host); host 4524 drivers/scsi/qla2xxx/qla_nx.c scsi_block_requests(vha->host); host 4530 drivers/scsi/qla2xxx/qla_nx.c scsi_unblock_requests(vha->host); host 566 drivers/scsi/qla2xxx/qla_nx2.c scsi_block_requests(vha->host); host 573 drivers/scsi/qla2xxx/qla_nx2.c scsi_unblock_requests(vha->host); host 3823 drivers/scsi/qla2xxx/qla_nx2.c scsi_block_requests(vha->host); host 3869 drivers/scsi/qla2xxx/qla_nx2.c scsi_unblock_requests(vha->host); host 4080 drivers/scsi/qla2xxx/qla_nx2.c scsi_block_requests(vha->host); host 4086 drivers/scsi/qla2xxx/qla_nx2.c scsi_unblock_requests(vha->host); host 360 drivers/scsi/qla2xxx/qla_os.c int qla2xxx_mqueuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd, host 801 drivers/scsi/qla2xxx/qla_os.c qla2xxx_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) host 803 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(host); host 827 drivers/scsi/qla2xxx/qla_os.c return qla2xxx_mqueuecommand(host, cmd, qpair); host 924 drivers/scsi/qla2xxx/qla_os.c qla2xxx_mqueuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd, host 927 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(host); host 1028 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(cmd->device->host); host 1227 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(cmd->device->host); host 1380 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(cmd->device->host); host 1437 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(cmd->device->host); host 1453 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(cmd->device->host); host 1484 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(cmd->device->host); host 1561 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(cmd->device->host); host 1832 drivers/scsi/qla2xxx/qla_os.c scsi_qla_host_t *vha = shost_priv(sdev->host); host 2718 drivers/scsi/qla2xxx/qla_os.c if (!vha->host) host 2755 drivers/scsi/qla2xxx/qla_os.c struct Scsi_Host *host; host 3097 drivers/scsi/qla2xxx/qla_os.c host = base_vha->host; host 3117 drivers/scsi/qla2xxx/qla_os.c host->sg_tablesize = 32; host 3120 drivers/scsi/qla2xxx/qla_os.c host->sg_tablesize = QLA_SG_ALL; host 3122 drivers/scsi/qla2xxx/qla_os.c host->max_id = ha->max_fibre_devices; host 3123 drivers/scsi/qla2xxx/qla_os.c host->cmd_per_lun = 3; host 3124 drivers/scsi/qla2xxx/qla_os.c host->unique_id = host->host_no; host 3126 drivers/scsi/qla2xxx/qla_os.c host->max_cmd_len = 32; host 3128 drivers/scsi/qla2xxx/qla_os.c host->max_cmd_len = MAX_CMDSZ; host 3129 drivers/scsi/qla2xxx/qla_os.c host->max_channel = MAX_BUSES - 1; host 3133 drivers/scsi/qla2xxx/qla_os.c host->max_lun = 0xffff; host 3135 drivers/scsi/qla2xxx/qla_os.c host->max_lun = ql2xmaxlun; host 3136 drivers/scsi/qla2xxx/qla_os.c host->transportt = qla2xxx_transport_template; host 3142 drivers/scsi/qla2xxx/qla_os.c "max_lun=%llu transportt=%p, vendor_id=%llu.\n", host->max_id, host 3143 drivers/scsi/qla2xxx/qla_os.c host->this_id, host->cmd_per_lun, host->unique_id, host 3144 drivers/scsi/qla2xxx/qla_os.c host->max_cmd_len, host->max_channel, host->max_lun, host 3145 drivers/scsi/qla2xxx/qla_os.c host->transportt, sht->vendor_id); host 3166 drivers/scsi/qla2xxx/qla_os.c host->nr_hw_queues = ha->max_qpairs; host 3169 drivers/scsi/qla2xxx/qla_os.c "blk/scsi-mq enabled, HW queues = %d.\n", host->nr_hw_queues); host 3172 drivers/scsi/qla2xxx/qla_os.c host->nr_hw_queues = ha->max_qpairs; host 3175 drivers/scsi/qla2xxx/qla_os.c host->nr_hw_queues); host 3271 drivers/scsi/qla2xxx/qla_os.c host->can_queue = QLAFX00_MAX_CANQUEUE; host 3273 drivers/scsi/qla2xxx/qla_os.c host->can_queue = req->num_outstanding_cmds - 10; host 3277 drivers/scsi/qla2xxx/qla_os.c host->can_queue, base_vha->req, host 3278 drivers/scsi/qla2xxx/qla_os.c base_vha->mgmt_svr_loop_id, host->sg_tablesize); host 3338 drivers/scsi/qla2xxx/qla_os.c base_vha->host->irq = ha->pdev->irq; host 3359 drivers/scsi/qla2xxx/qla_os.c scsi_host_set_prot(host, ql2xprotmask); host 3361 drivers/scsi/qla2xxx/qla_os.c scsi_host_set_prot(host, host 3376 drivers/scsi/qla2xxx/qla_os.c scsi_host_set_guard(host, ql2xprotguard); host 3378 drivers/scsi/qla2xxx/qla_os.c scsi_host_set_guard(host, guard); host 3388 drivers/scsi/qla2xxx/qla_os.c host->sg_tablesize = (ha->mr.extended_io_enabled) ? host 3392 drivers/scsi/qla2xxx/qla_os.c ret = scsi_add_host(host, &pdev->dev); host 3405 drivers/scsi/qla2xxx/qla_os.c scsi_scan_host(host); host 3469 drivers/scsi/qla2xxx/qla_os.c scsi_host_put(base_vha->host); host 3586 drivers/scsi/qla2xxx/qla_os.c scsi_host_get(vha->host); host 3594 drivers/scsi/qla2xxx/qla_os.c scsi_host_put(vha->host); host 3696 drivers/scsi/qla2xxx/qla_os.c scsi_host_put(base_vha->host); host 3766 drivers/scsi/qla2xxx/qla_os.c fc_remove_host(base_vha->host); host 3769 drivers/scsi/qla2xxx/qla_os.c scsi_remove_host(base_vha->host); host 3775 drivers/scsi/qla2xxx/qla_os.c scsi_host_put(base_vha->host); host 3848 drivers/scsi/qla2xxx/qla_os.c spin_lock_irqsave(vha->host->host_lock, flags); host 3850 drivers/scsi/qla2xxx/qla_os.c spin_unlock_irqrestore(vha->host->host_lock, flags); host 4781 drivers/scsi/qla2xxx/qla_os.c struct Scsi_Host *host; host 4784 drivers/scsi/qla2xxx/qla_os.c host = scsi_host_alloc(sht, sizeof(scsi_qla_host_t)); host 4785 drivers/scsi/qla2xxx/qla_os.c if (!host) { host 4792 drivers/scsi/qla2xxx/qla_os.c vha = shost_priv(host); host 4795 drivers/scsi/qla2xxx/qla_os.c vha->host = host; host 4796 drivers/scsi/qla2xxx/qla_os.c vha->host_no = host->host_no; host 4827 drivers/scsi/qla2xxx/qla_os.c scsi_host_put(vha->host); host 4840 drivers/scsi/qla2xxx/qla_os.c scsi_host_put(vha->host); host 4848 drivers/scsi/qla2xxx/qla_os.c vha->host, vha->hw, vha, host 5225 drivers/scsi/qla2xxx/qla_os.c fc_host_post_event(vha->host, fc_get_event_number(), host 6097 drivers/scsi/qla2xxx/qla_os.c fc_remove_host(base_vha->host); host 6099 drivers/scsi/qla2xxx/qla_os.c scsi_remove_host(base_vha->host); host 1179 drivers/scsi/qla2xxx/qla_sup.c vport = fc_vport_create(vha->host, 0, &vid); host 2316 drivers/scsi/qla2xxx/qla_sup.c scsi_block_requests(vha->host); host 2346 drivers/scsi/qla2xxx/qla_sup.c scsi_unblock_requests(vha->host); host 2609 drivers/scsi/qla2xxx/qla_sup.c scsi_block_requests(vha->host); host 2617 drivers/scsi/qla2xxx/qla_sup.c scsi_unblock_requests(vha->host); host 2979 drivers/scsi/qla2xxx/qla_sup.c scsi_block_requests(vha->host); host 2991 drivers/scsi/qla2xxx/qla_sup.c scsi_unblock_requests(vha->host); host 193 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host; host 203 drivers/scsi/qla2xxx/qla_target.c host = btree_lookup32(&vha->hw->tgt.host_map, key); host 204 drivers/scsi/qla2xxx/qla_target.c if (!host) host 208 drivers/scsi/qla2xxx/qla_target.c return host; host 289 drivers/scsi/qla2xxx/qla_target.c scsi_qla_host_t *host; host 304 drivers/scsi/qla2xxx/qla_target.c host = qlt_find_host_by_d_id(vha, u->atio.u.isp24.fcp_hdr.d_id); host 305 drivers/scsi/qla2xxx/qla_target.c if (host != NULL) { host 308 drivers/scsi/qla2xxx/qla_target.c qlt_24xx_atio_pkt(host, &u->atio, ha_locked); host 317 drivers/scsi/qla2xxx/qla_target.c "Reschedule u %p, vha %p, host %p\n", u, vha, host); host 353 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host = qlt_find_host_by_d_id(vha, host 355 drivers/scsi/qla2xxx/qla_target.c if (unlikely(NULL == host)) { host 370 drivers/scsi/qla2xxx/qla_target.c qlt_24xx_atio_pkt(host, atio, ha_locked); host 376 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host = vha; host 384 drivers/scsi/qla2xxx/qla_target.c host = qlt_find_host_by_vp_idx(vha, host 386 drivers/scsi/qla2xxx/qla_target.c if (unlikely(!host)) { host 395 drivers/scsi/qla2xxx/qla_target.c qlt_24xx_atio_pkt(host, atio, ha_locked); host 408 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host = qlt_find_host_by_vp_idx(vha, host 412 drivers/scsi/qla2xxx/qla_target.c if (unlikely(!host)) { host 420 drivers/scsi/qla2xxx/qla_target.c spin_lock_irqsave(&host->hw->hardware_lock, flags); host 421 drivers/scsi/qla2xxx/qla_target.c qlt_24xx_handle_abts(host, (struct abts_recv_from_24xx *)atio); host 423 drivers/scsi/qla2xxx/qla_target.c spin_unlock_irqrestore(&host->hw->hardware_lock, flags); host 451 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host = qlt_find_host_by_vp_idx(vha, host 453 drivers/scsi/qla2xxx/qla_target.c if (unlikely(!host)) { host 460 drivers/scsi/qla2xxx/qla_target.c qlt_response_pkt(host, rsp, pkt); host 466 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host = vha; host 470 drivers/scsi/qla2xxx/qla_target.c host = qlt_find_host_by_vp_idx(vha, entry->u.isp24.vp_index); host 471 drivers/scsi/qla2xxx/qla_target.c if (unlikely(!host)) { host 478 drivers/scsi/qla2xxx/qla_target.c qlt_response_pkt(host, rsp, pkt); host 484 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host = vha; host 488 drivers/scsi/qla2xxx/qla_target.c host = qlt_find_host_by_vp_idx(vha, host 490 drivers/scsi/qla2xxx/qla_target.c if (unlikely(!host)) { host 500 drivers/scsi/qla2xxx/qla_target.c qlt_response_pkt(host, rsp, pkt); host 508 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host = qlt_find_host_by_vp_idx(vha, host 510 drivers/scsi/qla2xxx/qla_target.c if (unlikely(!host)) { host 517 drivers/scsi/qla2xxx/qla_target.c qlt_response_pkt(host, rsp, pkt); host 525 drivers/scsi/qla2xxx/qla_target.c struct scsi_qla_host *host = qlt_find_host_by_vp_idx(vha, host 527 drivers/scsi/qla2xxx/qla_target.c if (unlikely(!host)) { host 534 drivers/scsi/qla2xxx/qla_target.c qlt_response_pkt(host, rsp, pkt); host 1121 drivers/scsi/qla2xxx/qla_target.c switch (vha->host->active_mode) { host 6065 drivers/scsi/qla2xxx/qla_target.c switch (vha->host->active_mode) { host 6363 drivers/scsi/qla2xxx/qla_target.c if (!(base_vha->host->hostt->supported_mode & MODE_TARGET)) host 6364 drivers/scsi/qla2xxx/qla_target.c base_vha->host->hostt->supported_mode |= MODE_TARGET; host 6480 drivers/scsi/qla2xxx/qla_target.c struct Scsi_Host *host; host 6490 drivers/scsi/qla2xxx/qla_target.c host = vha->host; host 6491 drivers/scsi/qla2xxx/qla_target.c if (!host) host 6494 drivers/scsi/qla2xxx/qla_target.c if (!(host->hostt->supported_mode & MODE_TARGET)) host 6501 drivers/scsi/qla2xxx/qla_target.c if ((!npiv_wwpn || !npiv_wwnn) && host->active_mode & MODE_TARGET) { host 6503 drivers/scsi/qla2xxx/qla_target.c host->host_no); host 6509 drivers/scsi/qla2xxx/qla_target.c host->host_no); host 6515 drivers/scsi/qla2xxx/qla_target.c if (!scsi_host_get(host)) { host 6524 drivers/scsi/qla2xxx/qla_target.c scsi_host_put(host); host 6529 drivers/scsi/qla2xxx/qla_target.c scsi_host_put(host); host 6548 drivers/scsi/qla2xxx/qla_target.c struct Scsi_Host *sh = vha->host; host 6567 drivers/scsi/qla2xxx/qla_target.c vha->host->active_mode = MODE_TARGET; host 6570 drivers/scsi/qla2xxx/qla_target.c vha->host->active_mode = MODE_INITIATOR; host 6573 drivers/scsi/qla2xxx/qla_target.c vha->host->active_mode = MODE_DUAL; host 6585 drivers/scsi/qla2xxx/qla_target.c vha->host->active_mode = MODE_UNKNOWN; host 6588 drivers/scsi/qla2xxx/qla_target.c vha->host->active_mode = MODE_INITIATOR; host 6592 drivers/scsi/qla2xxx/qla_target.c vha->host->active_mode = MODE_INITIATOR; host 6919 drivers/scsi/qla2xxx/qla_target.c fc_host_supported_classes(vha->host) = host 6925 drivers/scsi/qla2xxx/qla_target.c fc_host_supported_classes(vha->host) = FC_COS_CLASS3; host 7022 drivers/scsi/qla2xxx/qla_target.c fc_host_supported_classes(vha->host) = host 7028 drivers/scsi/qla2xxx/qla_target.c fc_host_supported_classes(vha->host) = FC_COS_CLASS3; host 1020 drivers/scsi/qla2xxx/qla_target.h return ha->host->active_mode == MODE_TARGET; host 1025 drivers/scsi/qla2xxx/qla_target.h return ha->host->active_mode == MODE_INITIATOR; host 1030 drivers/scsi/qla2xxx/qla_target.h return (ha->host->active_mode == MODE_DUAL); host 1677 drivers/scsi/qla2xxx/tcm_qla2xxx.c struct Scsi_Host *sh = base_vha->host; host 1714 drivers/scsi/qla2xxx/tcm_qla2xxx.c scsi_host_get(npiv_vha->host); host 1780 drivers/scsi/qla2xxx/tcm_qla2xxx.c scsi_host_put(npiv_vha->host); host 1785 drivers/scsi/qla2xxx/tcm_qla2xxx.c scsi_host_put(base_vha->host); host 128 drivers/scsi/qla4xxx/ql4_attr.c struct Scsi_Host *host = ha->host; host 133 drivers/scsi/qla4xxx/ql4_attr.c ret = sysfs_create_bin_file(&host->shost_gendev.kobj, host 144 drivers/scsi/qla4xxx/ql4_attr.c struct Scsi_Host *host = ha->host; host 148 drivers/scsi/qla4xxx/ql4_attr.c sysfs_remove_bin_file(&host->shost_gendev.kobj, host 15 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 16 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 80 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 81 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 145 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 146 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 202 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 203 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 274 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 275 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 343 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 344 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 387 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 388 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 451 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 452 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 655 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 656 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 755 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 756 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 814 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 815 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 860 drivers/scsi/qla4xxx/ql4_bsg.c struct Scsi_Host *host = iscsi_job_to_shost(bsg_job); host 861 drivers/scsi/qla4xxx/ql4_bsg.c struct scsi_qla_host *ha = to_qla_host(host); host 594 drivers/scsi/qla4xxx/ql4_def.h struct Scsi_Host *host; /* pointer to host data */ host 840 drivers/scsi/qla4xxx/ql4_def.h struct Scsi_Host *host; host 1605 drivers/scsi/qla4xxx/ql4_isr.c ha->host->irq = ha->pdev->irq; host 1715 drivers/scsi/qla4xxx/ql4_os.c qla_ep->host = shost; host 1727 drivers/scsi/qla4xxx/ql4_os.c ha = to_qla_host(qla_ep->host); host 1742 drivers/scsi/qla4xxx/ql4_os.c ha = to_qla_host(qla_ep->host); host 1759 drivers/scsi/qla4xxx/ql4_os.c ha = to_qla_host(qla_ep->host); host 1937 drivers/scsi/qla4xxx/ql4_os.c ha->iface_ipv4 = iscsi_create_iface(ha->host, host 1949 drivers/scsi/qla4xxx/ql4_os.c ha->iface_ipv6_0 = iscsi_create_iface(ha->host, host 1959 drivers/scsi/qla4xxx/ql4_os.c ha->iface_ipv6_1 = iscsi_create_iface(ha->host, host 3072 drivers/scsi/qla4xxx/ql4_os.c ha = to_qla_host(qla_ep->host); host 3080 drivers/scsi/qla4xxx/ql4_os.c cls_sess = iscsi_session_setup(&qla4xxx_iscsi_transport, qla_ep->host, host 3980 drivers/scsi/qla4xxx/ql4_os.c __func__, ha->host->host_no)); host 4013 drivers/scsi/qla4xxx/ql4_os.c iscsi_host_for_each_session(ha->host, qla4xxx_mark_device_missing); host 4073 drivers/scsi/qla4xxx/ql4_os.c static int qla4xxx_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) host 4075 drivers/scsi/qla4xxx/ql4_os.c struct scsi_qla_host *ha = to_qla_host(host); host 4526 drivers/scsi/qla4xxx/ql4_os.c iscsi_host_for_each_session(ha->host, qla4xxx_check_relogin_flash_ddb); host 4612 drivers/scsi/qla4xxx/ql4_os.c for (index = 0; index < ha->host->can_queue; index++) { host 4613 drivers/scsi/qla4xxx/ql4_os.c cmd = scsi_host_find_tag(ha->host, index); host 4626 drivers/scsi/qla4xxx/ql4_os.c if (index == ha->host->can_queue) host 4779 drivers/scsi/qla4xxx/ql4_os.c for (i = 0; i < ha->host->can_queue; i++) { host 4829 drivers/scsi/qla4xxx/ql4_os.c scsi_block_requests(ha->host); host 4845 drivers/scsi/qla4xxx/ql4_os.c iscsi_host_for_each_session(ha->host, qla4xxx_fail_session); host 5018 drivers/scsi/qla4xxx/ql4_os.c scsi_unblock_requests(ha->host); host 5076 drivers/scsi/qla4xxx/ql4_os.c scsi_queue_work(ha->host, &ddb_entry->sess->scan_work); host 5112 drivers/scsi/qla4xxx/ql4_os.c iscsi_host_for_each_session(ha->host, qla4xxx_relogin_devices); host 5410 drivers/scsi/qla4xxx/ql4_os.c iscsi_host_for_each_session(ha->host, qla4xxx_dpc_relogin); host 5428 drivers/scsi/qla4xxx/ql4_os.c iscsi_host_for_each_session(ha->host, host 5881 drivers/scsi/qla4xxx/ql4_os.c scsi_host_put(ha->host); host 6199 drivers/scsi/qla4xxx/ql4_os.c ha->boot_kset = iscsi_boot_create_host_kset(ha->host->host_no); host 6203 drivers/scsi/qla4xxx/ql4_os.c if (!scsi_host_get(ha->host)) host 6212 drivers/scsi/qla4xxx/ql4_os.c if (!scsi_host_get(ha->host)) host 6221 drivers/scsi/qla4xxx/ql4_os.c if (!scsi_host_get(ha->host)) host 6230 drivers/scsi/qla4xxx/ql4_os.c if (!scsi_host_get(ha->host)) host 6242 drivers/scsi/qla4xxx/ql4_os.c scsi_host_put(ha->host); host 6582 drivers/scsi/qla4xxx/ql4_os.c ep = qla4xxx_ep_connect(ha->host, (struct sockaddr *)dst_addr, 0); host 6892 drivers/scsi/qla4xxx/ql4_os.c cls_sess = iscsi_session_setup(&qla4xxx_iscsi_transport, ha->host, host 7205 drivers/scsi/qla4xxx/ql4_os.c fnode_sess = iscsi_create_flashnode_sess(ha->host, *idx, host 7214 drivers/scsi/qla4xxx/ql4_os.c fnode_conn = iscsi_create_flashnode_conn(ha->host, fnode_sess, host 7294 drivers/scsi/qla4xxx/ql4_os.c dev = iscsi_find_flashnode_sess(ha->host, NULL, host 8452 drivers/scsi/qla4xxx/ql4_os.c iscsi_destroy_all_flashnode(ha->host); host 8604 drivers/scsi/qla4xxx/ql4_os.c struct Scsi_Host *host; host 8614 drivers/scsi/qla4xxx/ql4_os.c host = iscsi_host_alloc(&qla4xxx_driver_template, sizeof(*ha), 0); host 8615 drivers/scsi/qla4xxx/ql4_os.c if (host == NULL) { host 8622 drivers/scsi/qla4xxx/ql4_os.c ha = to_qla_host(host); host 8627 drivers/scsi/qla4xxx/ql4_os.c ha->host = host; host 8628 drivers/scsi/qla4xxx/ql4_os.c ha->host_no = host->host_no; host 8695 drivers/scsi/qla4xxx/ql4_os.c host->cmd_per_lun = 3; host 8696 drivers/scsi/qla4xxx/ql4_os.c host->max_channel = 0; host 8697 drivers/scsi/qla4xxx/ql4_os.c host->max_lun = MAX_LUNS - 1; host 8698 drivers/scsi/qla4xxx/ql4_os.c host->max_id = MAX_TARGETS; host 8699 drivers/scsi/qla4xxx/ql4_os.c host->max_cmd_len = IOCB_MAX_CDB_LEN; host 8700 drivers/scsi/qla4xxx/ql4_os.c host->can_queue = MAX_SRBS ; host 8701 drivers/scsi/qla4xxx/ql4_os.c host->transportt = qla4xxx_scsi_transport; host 8705 drivers/scsi/qla4xxx/ql4_os.c ret = scsi_add_host(host, &pdev->dev); host 8844 drivers/scsi/qla4xxx/ql4_os.c iscsi_host_for_each_session(ha->host, qla4xxx_login_flash_ddb); host 8853 drivers/scsi/qla4xxx/ql4_os.c scsi_remove_host(ha->host); host 8860 drivers/scsi/qla4xxx/ql4_os.c scsi_host_put(ha->host); host 9008 drivers/scsi/qla4xxx/ql4_os.c scsi_remove_host(ha->host); host 9012 drivers/scsi/qla4xxx/ql4_os.c scsi_host_put(ha->host); host 9066 drivers/scsi/qla4xxx/ql4_os.c cmd = scsi_host_find_tag(ha->host, index); host 9165 drivers/scsi/qla4xxx/ql4_os.c for (cnt = 0; cnt < ha->host->can_queue; cnt++) { host 9166 drivers/scsi/qla4xxx/ql4_os.c cmd = scsi_host_find_tag(ha->host, cnt); host 9187 drivers/scsi/qla4xxx/ql4_os.c struct scsi_qla_host *ha = to_qla_host(cmd->device->host); host 9253 drivers/scsi/qla4xxx/ql4_os.c struct scsi_qla_host *ha = to_qla_host(cmd->device->host); host 9322 drivers/scsi/qla4xxx/ql4_os.c struct scsi_qla_host *ha = to_qla_host(cmd->device->host); host 9405 drivers/scsi/qla4xxx/ql4_os.c ha = to_qla_host(cmd->device->host); host 9427 drivers/scsi/qla4xxx/ql4_os.c if (qla4xxx_is_eh_active(cmd->device->host)) host 9643 drivers/scsi/qla4xxx/ql4_os.c iscsi_host_for_each_session(ha->host, qla4xxx_fail_session); host 50 drivers/scsi/qlogicfas.c static struct Scsi_Host *__qlogicfas_detect(struct scsi_host_template *host, host 88 drivers/scsi/qlogicfas.c qinitid = host->this_id; host 94 drivers/scsi/qlogicfas.c hreg = scsi_host_alloc(host, sizeof(struct qlogicfas408_priv)); host 112 drivers/scsi/qlogicfas.c host->name = qlogicfas_name; host 403 drivers/scsi/qlogicfas408.c struct Scsi_Host *host = dev_id; host 404 drivers/scsi/qlogicfas408.c struct qlogicfas408_priv *priv = get_priv_by_host(host); host 430 drivers/scsi/qlogicfas408.c struct Scsi_Host *host = dev_id; host 432 drivers/scsi/qlogicfas408.c spin_lock_irqsave(host->host_lock, flags); host 434 drivers/scsi/qlogicfas408.c spin_unlock_irqrestore(host->host_lock, flags); host 512 drivers/scsi/qlogicfas408.c spin_lock_irqsave(cmd->device->host->host_lock, flags); host 514 drivers/scsi/qlogicfas408.c spin_unlock_irqrestore(cmd->device->host->host_lock, flags); host 523 drivers/scsi/qlogicfas408.c const char *qlogicfas408_info(struct Scsi_Host *host) host 525 drivers/scsi/qlogicfas408.c struct qlogicfas408_priv *priv = get_priv_by_host(host); host 103 drivers/scsi/qlogicfas408.h #define get_priv_by_cmd(x) (struct qlogicfas408_priv *)&((x)->device->host->hostdata[0]) host 113 drivers/scsi/qlogicfas408.h const char *qlogicfas408_info(struct Scsi_Host *host); host 326 drivers/scsi/qlogicpti.c static int qlogicpti_reset_hardware(struct Scsi_Host *host) host 328 drivers/scsi/qlogicpti.c struct qlogicpti *qpti = (struct qlogicpti *) host->hostdata; host 336 drivers/scsi/qlogicpti.c spin_lock_irqsave(host->host_lock, flags); host 385 drivers/scsi/qlogicpti.c spin_unlock_irqrestore(host->host_lock, flags); host 396 drivers/scsi/qlogicpti.c spin_unlock_irqrestore(host->host_lock, flags); host 411 drivers/scsi/qlogicpti.c spin_unlock_irqrestore(host->host_lock, flags); host 423 drivers/scsi/qlogicpti.c spin_unlock_irqrestore(host->host_lock, flags); host 469 drivers/scsi/qlogicpti.c spin_unlock_irqrestore(host->host_lock, flags); host 480 drivers/scsi/qlogicpti.c struct Scsi_Host *host = qpti->qhost; host 504 drivers/scsi/qlogicpti.c spin_lock_irqsave(host->host_lock, flags); host 645 drivers/scsi/qlogicpti.c spin_unlock_irqrestore(host->host_lock, flags); host 846 drivers/scsi/qlogicpti.c const char *qlogicpti_info(struct Scsi_Host *host) host 849 drivers/scsi/qlogicpti.c struct qlogicpti *qpti = (struct qlogicpti *) host->hostdata; host 968 drivers/scsi/qlogicpti.c static inline void update_can_queue(struct Scsi_Host *host, u_int in_ptr, u_int out_ptr) host 973 drivers/scsi/qlogicpti.c host->can_queue = scsi_host_busy(host) + num_free; host 974 drivers/scsi/qlogicpti.c host->sg_tablesize = QLOGICPTI_MAX_SG(num_free); host 979 drivers/scsi/qlogicpti.c struct qlogicpti *qpti = shost_priv(sdev->host); host 1018 drivers/scsi/qlogicpti.c struct Scsi_Host *host = Cmnd->device->host; host 1019 drivers/scsi/qlogicpti.c struct qlogicpti *qpti = (struct qlogicpti *) host->hostdata; host 1048 drivers/scsi/qlogicpti.c update_can_queue(host, in_ptr, out_ptr); host 1229 drivers/scsi/qlogicpti.c struct Scsi_Host *host = Cmnd->device->host; host 1230 drivers/scsi/qlogicpti.c struct qlogicpti *qpti = (struct qlogicpti *) host->hostdata; host 1267 drivers/scsi/qlogicpti.c struct Scsi_Host *host = Cmnd->device->host; host 1268 drivers/scsi/qlogicpti.c struct qlogicpti *qpti = (struct qlogicpti *) host->hostdata; host 1307 drivers/scsi/qlogicpti.c struct Scsi_Host *host; host 1318 drivers/scsi/qlogicpti.c host = scsi_host_alloc(&qpti_template, sizeof(struct qlogicpti)); host 1319 drivers/scsi/qlogicpti.c if (!host) host 1322 drivers/scsi/qlogicpti.c qpti = shost_priv(host); host 1324 drivers/scsi/qlogicpti.c host->max_id = MAX_TARGETS; host 1325 drivers/scsi/qlogicpti.c qpti->qhost = host; host 1356 drivers/scsi/qlogicpti.c if (qlogicpti_reset_hardware(host)) host 1373 drivers/scsi/qlogicpti.c if (scsi_add_host(host, &op->dev)) { host 1382 drivers/scsi/qlogicpti.c scsi_scan_host(host); host 1408 drivers/scsi/qlogicpti.c scsi_host_put(host); host 68 drivers/scsi/raid_class.c if (i->f->cookie != sdev->host->hostt) host 166 drivers/scsi/scsi.c scsi_host_busy(cmd->device->host), host 167 drivers/scsi/scsi.c cmd->device->host->host_failed); host 185 drivers/scsi/scsi.c struct Scsi_Host *shost = sdev->host; host 537 drivers/scsi/scsi.c if (!try_module_get(sdev->host->hostt->module)) host 558 drivers/scsi/scsi.c module_put(sdev->host->hostt->module); host 3831 drivers/scsi/scsi_debug.c sdbg_host = *(struct sdebug_host_info **)shost_priv(sdev->host); host 3868 drivers/scsi/scsi_debug.c sdp->host->host_no, sdp->channel, sdp->id, sdp->lun); host 3879 drivers/scsi/scsi_debug.c sdp->host->host_no, sdp->channel, sdp->id, sdp->lun); host 3880 drivers/scsi/scsi_debug.c if (sdp->host->max_cmd_len != SDEBUG_MAX_CMD_LEN) host 3881 drivers/scsi/scsi_debug.c sdp->host->max_cmd_len = SDEBUG_MAX_CMD_LEN; host 3901 drivers/scsi/scsi_debug.c sdp->host->host_no, sdp->channel, sdp->id, sdp->lun); host 4068 drivers/scsi/scsi_debug.c hp = sdp->host; host 4102 drivers/scsi/scsi_debug.c hp = sdp->host; host 4550 drivers/scsi/scsi_debug.c static int scsi_debug_write_info(struct Scsi_Host *host, char *buffer, host 4574 drivers/scsi/scsi_debug.c static int scsi_debug_show_info(struct seq_file *m, struct Scsi_Host *host) host 137 drivers/scsi/scsi_error.c if (scsi_host_eh_past_deadline(sdev->host)) { host 145 drivers/scsi/scsi_error.c rtn = scsi_try_to_abort_cmd(sdev->host->hostt, scmd); host 148 drivers/scsi/scsi_error.c if (scsi_host_eh_past_deadline(sdev->host)) { host 189 drivers/scsi/scsi_error.c struct Scsi_Host *shost = sdev->host; host 235 drivers/scsi/scsi_error.c struct Scsi_Host *shost = scmd->device->host; host 250 drivers/scsi/scsi_error.c struct Scsi_Host *shost = scmd->device->host; host 288 drivers/scsi/scsi_error.c struct Scsi_Host *host = scmd->device->host; host 293 drivers/scsi/scsi_error.c if (host->eh_deadline != -1 && !host->last_reset) host 294 drivers/scsi/scsi_error.c host->last_reset = jiffies; host 296 drivers/scsi/scsi_error.c if (host->hostt->eh_timed_out) host 297 drivers/scsi/scsi_error.c rtn = host->hostt->eh_timed_out(scmd); host 338 drivers/scsi/scsi_error.c wait_event(sdev->host->host_wait, !scsi_host_in_recovery(sdev->host)); host 645 drivers/scsi/scsi_error.c struct scsi_host_template *sht = sdev->host->hostt; host 664 drivers/scsi/scsi_error.c shost_for_each_device(tmp_sdev, sdev->host) { host 677 drivers/scsi/scsi_error.c struct scsi_host_template *sht = sdev->host->hostt; host 683 drivers/scsi/scsi_error.c shost_for_each_device(tmp_sdev, sdev->host) { host 778 drivers/scsi/scsi_error.c eh_action = scmd->device->host->eh_action; host 791 drivers/scsi/scsi_error.c struct Scsi_Host *host = scmd->device->host; host 792 drivers/scsi/scsi_error.c struct scsi_host_template *hostt = host->hostt; host 795 drivers/scsi/scsi_error.c shost_printk(KERN_INFO, host, "Snd Host RST\n")); host 805 drivers/scsi/scsi_error.c spin_lock_irqsave(host->host_lock, flags); host 806 drivers/scsi/scsi_error.c scsi_report_bus_reset(host, scmd_channel(scmd)); host 807 drivers/scsi/scsi_error.c spin_unlock_irqrestore(host->host_lock, flags); host 821 drivers/scsi/scsi_error.c struct Scsi_Host *host = scmd->device->host; host 822 drivers/scsi/scsi_error.c struct scsi_host_template *hostt = host->hostt; host 835 drivers/scsi/scsi_error.c spin_lock_irqsave(host->host_lock, flags); host 836 drivers/scsi/scsi_error.c scsi_report_bus_reset(host, scmd_channel(scmd)); host 837 drivers/scsi/scsi_error.c spin_unlock_irqrestore(host->host_lock, flags); host 863 drivers/scsi/scsi_error.c struct Scsi_Host *host = scmd->device->host; host 864 drivers/scsi/scsi_error.c struct scsi_host_template *hostt = host->hostt; host 871 drivers/scsi/scsi_error.c spin_lock_irqsave(host->host_lock, flags); host 874 drivers/scsi/scsi_error.c spin_unlock_irqrestore(host->host_lock, flags); host 893 drivers/scsi/scsi_error.c struct scsi_host_template *hostt = scmd->device->host->hostt; host 932 drivers/scsi/scsi_error.c if (scsi_try_to_abort_cmd(scmd->device->host->hostt, scmd) != SUCCESS) host 1059 drivers/scsi/scsi_error.c struct Scsi_Host *shost = sdev->host; host 1232 drivers/scsi/scsi_error.c shost = scmd->device->host; host 1339 drivers/scsi/scsi_error.c if (scsi_host_eh_past_deadline(sdev->host)) { host 2331 drivers/scsi/scsi_error.c struct Scsi_Host *shost = dev->host; host 42 drivers/scsi/scsi_ioctl.c static int ioctl_probe(struct Scsi_Host *host, void __user *buffer) host 51 drivers/scsi/scsi_ioctl.c if (host->hostt->info) host 52 drivers/scsi/scsi_ioctl.c string = host->hostt->info(host); host 54 drivers/scsi/scsi_ioctl.c string = host->hostt->name; host 177 drivers/scsi/scsi_ioctl.c struct device *dev = scsi_get_device(sdev->host); host 231 drivers/scsi/scsi_ioctl.c + ((sdev->host->host_no & 0xff) << 24), host 233 drivers/scsi/scsi_ioctl.c __put_user(sdev->host->unique_id, host 237 drivers/scsi/scsi_ioctl.c return put_user(sdev->host->host_no, (int __user *)arg); host 239 drivers/scsi/scsi_ioctl.c return ioctl_probe(sdev->host, arg); host 270 drivers/scsi/scsi_ioctl.c if (sdev->host->hostt->ioctl) host 271 drivers/scsi/scsi_ioctl.c return sdev->host->hostt->ioctl(sdev, cmd, arg); host 284 drivers/scsi/scsi_ioctl.c if (scsi_host_in_recovery(sdev->host)) host 122 drivers/scsi/scsi_lib.c struct Scsi_Host *host = cmd->device->host; host 141 drivers/scsi/scsi_lib.c atomic_set(&host->host_blocked, host->max_host_blocked); host 349 drivers/scsi/scsi_lib.c struct Scsi_Host *shost = sdev->host; host 374 drivers/scsi/scsi_lib.c struct Scsi_Host *shost = current_sdev->host; host 520 drivers/scsi/scsi_lib.c if (!list_empty(&sdev->host->starved_list)) host 521 drivers/scsi/scsi_lib.c scsi_starved_list_run(sdev->host); host 616 drivers/scsi/scsi_lib.c !list_empty(&sdev->host->starved_list)) host 1108 drivers/scsi/scsi_lib.c struct Scsi_Host *shost = sdev->host; host 1122 drivers/scsi/scsi_lib.c struct Scsi_Host *shost = sdev->host; host 1152 drivers/scsi/scsi_lib.c sizeof(*cmd) - sizeof(cmd->req) + dev->host->hostt->cmd_size); host 1438 drivers/scsi/scsi_lib.c shost = sdev->host; host 1500 drivers/scsi/scsi_lib.c struct Scsi_Host *host = cmd->device->host; host 1539 drivers/scsi/scsi_lib.c if (cmd->cmd_len > cmd->device->host->max_cmd_len) { host 1543 drivers/scsi/scsi_lib.c cmd->cmd_len, cmd->device->host->max_cmd_len)); host 1548 drivers/scsi/scsi_lib.c if (unlikely(host->shost_state == SHOST_DEL)) { host 1555 drivers/scsi/scsi_lib.c rtn = host->hostt->queuecommand(host, cmd); host 1583 drivers/scsi/scsi_lib.c struct Scsi_Host *shost = sdev->host; host 1650 drivers/scsi/scsi_lib.c struct Scsi_Host *shost = sdev->host; host 1847 drivers/scsi/scsi_lib.c struct Scsi_Host *shost = sdev->host; host 1872 drivers/scsi/scsi_lib.c sdev->request_queue = blk_mq_init_queue(&sdev->host->tag_set); host 1877 drivers/scsi/scsi_lib.c __scsi_init_queue(sdev->host, sdev->request_queue); host 28 drivers/scsi/scsi_lib_dma.c struct device *dev = cmd->device->host->dma_dev; host 46 drivers/scsi/scsi_lib_dma.c struct device *dev = cmd->device->host->dma_dev; host 75 drivers/scsi/scsi_priv.h extern int scsi_error_handler(void *host); host 190 drivers/scsi/scsi_proc.c sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); host 243 drivers/scsi/scsi_proc.c static int scsi_add_single_device(uint host, uint channel, uint id, uint lun) host 248 drivers/scsi/scsi_proc.c shost = scsi_host_lookup(host); host 271 drivers/scsi/scsi_proc.c static int scsi_remove_single_device(uint host, uint channel, uint id, uint lun) host 277 drivers/scsi/scsi_proc.c shost = scsi_host_lookup(host); host 313 drivers/scsi/scsi_proc.c int host, channel, id, lun; host 341 drivers/scsi/scsi_proc.c host = simple_strtoul(p, &p, 0); host 346 drivers/scsi/scsi_proc.c err = scsi_add_single_device(host, channel, id, lun); host 355 drivers/scsi/scsi_proc.c host = simple_strtoul(p, &p, 0); host 360 drivers/scsi/scsi_proc.c err = scsi_remove_single_device(host, channel, id, lun); host 230 drivers/scsi/scsi_scan.c sdev->host = shost; host 280 drivers/scsi/scsi_scan.c scsi_change_queue_depth(sdev, sdev->host->cmd_per_lun ? host 281 drivers/scsi/scsi_scan.c sdev->host->cmd_per_lun : 1); host 703 drivers/scsi/scsi_scan.c if (!sdev->host->short_inquiry) { host 704 drivers/scsi/scsi_scan.c shost_printk(KERN_INFO, sdev->host, host 707 drivers/scsi/scsi_scan.c sdev->host->short_inquiry = 1; host 743 drivers/scsi/scsi_scan.c !sdev->host->no_scsi2_lun_in_cdb) host 964 drivers/scsi/scsi_scan.c if (sdev->host->hostt->slave_configure) { host 965 drivers/scsi/scsi_scan.c ret = sdev->host->hostt->slave_configure(sdev); host 1341 drivers/scsi/scsi_scan.c (sdev->host->unchecked_isa_dma ? __GFP_DMA : 0)); host 1426 drivers/scsi/scsi_scan.c if (lun > sdev->host->max_lun) { host 1496 drivers/scsi/scsi_scan.c int scsi_add_device(struct Scsi_Host *host, uint channel, host 1500 drivers/scsi/scsi_scan.c __scsi_add_device(host, channel, target, lun, NULL); host 1929 drivers/scsi/scsi_scan.c BUG_ON(sdev->id != sdev->host->this_id); host 448 drivers/scsi/scsi_sysfs.c spin_lock_irqsave(sdev->host->host_lock, flags); host 452 drivers/scsi/scsi_sysfs.c spin_unlock_irqrestore(sdev->host->host_lock, flags); host 974 drivers/scsi/scsi_sysfs.c struct scsi_host_template *sht = sdev->host->hostt; host 981 drivers/scsi/scsi_sysfs.c if (depth < 1 || depth > sdev->host->can_queue) host 1178 drivers/scsi/scsi_sysfs.c !sdev->host->hostt->change_queue_depth) host 1182 drivers/scsi/scsi_sysfs.c !sdev->host->hostt->change_queue_depth) host 1346 drivers/scsi/scsi_sysfs.c if (sdev->host->hostt->sdev_attrs) { host 1347 drivers/scsi/scsi_sysfs.c for (i = 0; sdev->host->hostt->sdev_attrs[i]; i++) { host 1349 drivers/scsi/scsi_sysfs.c sdev->host->hostt->sdev_attrs[i]); host 1355 drivers/scsi/scsi_sysfs.c if (sdev->host->hostt->sdev_groups) { host 1357 drivers/scsi/scsi_sysfs.c sdev->host->hostt->sdev_groups); host 1401 drivers/scsi/scsi_sysfs.c if (sdev->host->hostt->sdev_groups) host 1403 drivers/scsi/scsi_sysfs.c sdev->host->hostt->sdev_groups); host 1424 drivers/scsi/scsi_sysfs.c if (sdev->host->hostt->slave_destroy) host 1425 drivers/scsi/scsi_sysfs.c sdev->host->hostt->slave_destroy(sdev); host 1444 drivers/scsi/scsi_sysfs.c struct Scsi_Host *shost = sdev->host; host 1568 drivers/scsi/scsi_sysfs.c struct Scsi_Host *shost = sdev->host; host 1575 drivers/scsi/scsi_sysfs.c sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); host 1581 drivers/scsi/scsi_sysfs.c sdev->host->host_no, sdev->channel, sdev->id, sdev->lun); host 1380 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, field, S_IRUGO, \ host 1385 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, field, S_IRUGO, \ host 1391 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, field, S_IRUGO | S_IWUSR, \ host 1410 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, title, S_IRUGO, show_fc_host_##title, NULL) host 1449 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, field, S_IRUGO, \ host 1454 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, field, S_IRUGO, \ host 1485 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, supported_classes, S_IRUGO, host 1495 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, supported_fc4s, S_IRUGO, host 1509 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, supported_speeds, S_IRUGO, host 1543 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, active_fc4s, S_IRUGO, host 1561 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, speed, S_IRUGO, host 1574 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, system_hostname, S_IRUGO | S_IWUSR, host 1625 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, tgtid_bind_type, S_IRUGO | S_IWUSR, host 1646 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, issue_lip, S_IWUSR, NULL, host 1673 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, dev_loss_tmo, S_IRUGO | S_IWUSR, host 1715 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, name, S_IRUGO, show_fcstat_##name, NULL) host 1762 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, reset_statistics, S_IWUSR, NULL, host 1879 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, vport_create, S_IWUSR, NULL, host 1938 drivers/scsi/scsi_transport_fc.c static FC_DEVICE_ATTR(host, vport_delete, S_IWUSR, NULL, host 4264 drivers/scsi/scsi_transport_iscsi.c static ISCSI_CLASS_ATTR(host, field, S_IRUGO, show_host_param_##param, \ host 52 drivers/scsi/scsi_transport_sas.c #define to_sas_host_attrs(host) ((struct sas_host_attrs *)(host)->shost_data) host 749 drivers/scsi/scsi_transport_spi.c struct spi_internal *i = to_spi_internal(sdev->host->transportt); host 852 drivers/scsi/scsi_transport_spi.c struct spi_internal *i = to_spi_internal(sdev->host->transportt); host 854 drivers/scsi/scsi_transport_spi.c struct Scsi_Host *shost = sdev->host; host 1376 drivers/scsi/scsi_transport_spi.c shost = sdev->host; host 25 drivers/scsi/scsi_transport_srp.c #define to_srp_host_attrs(host) ((struct srp_host_attrs *)(host)->shost_data) host 601 drivers/scsi/scsi_transport_srp.c struct Scsi_Host *shost = sdev->host; host 346 drivers/scsi/sd.c dif = scsi_host_dif_capable(sdp->host, sdkp->protection_type); host 347 drivers/scsi/sd.c dix = scsi_host_dix_capable(sdp->host, sdkp->protection_type); host 349 drivers/scsi/sd.c if (!dix && scsi_host_dix_capable(sdp->host, T10_PI_TYPE0_PROTECTION)) { host 1213 drivers/scsi/sd.c dif = scsi_host_dif_capable(cmd->device->host, sdkp->protection_type); host 1427 drivers/scsi/sd.c struct Scsi_Host *host = sdp->host; host 1437 drivers/scsi/sd.c if (host->hostt->bios_param) host 1438 drivers/scsi/sd.c host->hostt->bios_param(sdp, bdev, capacity, diskinfo); host 1718 drivers/scsi/sd.c if (!sdev->host->hostt->compat_ioctl) host 1720 drivers/scsi/sd.c return sdev->host->hostt->compat_ioctl(sdev, cmd, p); host 2214 drivers/scsi/sd.c else if (scsi_host_dif_capable(sdp->host, type)) host 2424 drivers/scsi/sd.c if (sdp->host->max_cmd_len < 16) host 3000 drivers/scsi/sd.c if (sdev->host->no_write_same) { host 3218 drivers/scsi/sd.c if (sdev->host->hostt->unlock_native_capacity) host 3219 drivers/scsi/sd.c sdev->host->hostt->unlock_native_capacity(sdev); host 35 drivers/scsi/sd_dif.c dif = scsi_host_dif_capable(sdp->host, type); host 36 drivers/scsi/sd_dif.c dix = scsi_host_dix_capable(sdp->host, type); host 38 drivers/scsi/sd_dif.c if (!dix && scsi_host_dix_capable(sdp->host, 0)) { host 48 drivers/scsi/sd_dif.c if (scsi_host_get_guard(sdkp->device->host) & SHOST_DIX_GUARD_IP) { host 414 drivers/scsi/ses.c if (sdev->host != sed->shost) host 641 drivers/scsi/ses.c while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { host 755 drivers/scsi/ses.c shost_for_each_device(tmp_sdev, sdev->host) { host 789 drivers/scsi/ses.c while ((edev = enclosure_find(&sdev->host->shost_gendev, prev)) != NULL) { host 968 drivers/scsi/sg.c return put_user((int) sdp->device->host->unchecked_isa_dma, ip); host 977 drivers/scsi/sg.c __put_user((int) sdp->device->host->host_no, host 984 drivers/scsi/sg.c __put_user((short) sdp->device->host->cmd_per_lun, host 1101 drivers/scsi/sg.c return put_user(sdp->device->host->hostt->emulated, ip); host 1158 drivers/scsi/sg.c if (sdev->host->hostt->compat_ioctl) { host 1161 drivers/scsi/sg.c ret = sdev->host->hostt->compat_ioctl(sdev, cmd_in, (void __user *)arg); host 1762 drivers/scsi/sg.c !sfp->parentdp->device->host->unchecked_isa_dma && host 1904 drivers/scsi/sg.c if (sdp->device->host->unchecked_isa_dma) host 2486 drivers/scsi/sg.c scsidp->host->host_no, scsidp->channel, host 2535 drivers/scsi/sg.c (int) sdp->device->host->unchecked_isa_dma); host 2603 drivers/scsi/sg.c scsidp->host->host_no, host 2606 drivers/scsi/sg.c scsidp->host->hostt->emulated); host 41 drivers/scsi/sgiwd93.c #define host_to_hostdata(host) ((struct ip22_hostdata *)((host)->hostdata)) host 55 drivers/scsi/sgiwd93.c struct Scsi_Host * host = dev_id; host 58 drivers/scsi/sgiwd93.c spin_lock_irqsave(host->host_lock, flags); host 59 drivers/scsi/sgiwd93.c wd33c93_intr(host); host 60 drivers/scsi/sgiwd93.c spin_unlock_irqrestore(host->host_lock, flags); host 105 drivers/scsi/sgiwd93.c struct ip22_hostdata *hdata = host_to_hostdata(cmd->device->host); host 107 drivers/scsi/sgiwd93.c (struct hpc3_scsiregs *) cmd->device->host->base; host 148 drivers/scsi/sgiwd93.c hregs = (struct hpc3_scsiregs *) SCpnt->device->host->base; host 220 drivers/scsi/sgiwd93.c struct Scsi_Host *host; host 226 drivers/scsi/sgiwd93.c host = scsi_host_alloc(&sgiwd93_template, sizeof(struct ip22_hostdata)); host 227 drivers/scsi/sgiwd93.c if (!host) { host 232 drivers/scsi/sgiwd93.c host->base = (unsigned long) hregs; host 233 drivers/scsi/sgiwd93.c host->irq = irq; host 235 drivers/scsi/sgiwd93.c hdata = host_to_hostdata(host); host 255 drivers/scsi/sgiwd93.c wd33c93_init(host, regs, dma_setup, dma_stop, WD33C93_FS_MHZ(20)); host 257 drivers/scsi/sgiwd93.c err = request_irq(irq, sgiwd93_intr, 0, "SGI WD93", host); host 264 drivers/scsi/sgiwd93.c platform_set_drvdata(pdev, host); host 266 drivers/scsi/sgiwd93.c err = scsi_add_host(host, NULL); host 270 drivers/scsi/sgiwd93.c scsi_scan_host(host); host 275 drivers/scsi/sgiwd93.c free_irq(irq, host); host 280 drivers/scsi/sgiwd93.c scsi_host_put(host); host 288 drivers/scsi/sgiwd93.c struct Scsi_Host *host = platform_get_drvdata(pdev); host 289 drivers/scsi/sgiwd93.c struct ip22_hostdata *hdata = (struct ip22_hostdata *) host->hostdata; host 292 drivers/scsi/sgiwd93.c scsi_remove_host(host); host 293 drivers/scsi/sgiwd93.c free_irq(pd->irq, host); host 296 drivers/scsi/sgiwd93.c scsi_host_put(host); host 88 drivers/scsi/sim710.c struct Scsi_Host * host = NULL; host 115 drivers/scsi/sim710.c if((host = NCR_700_detect(&sim710_driver_template, hostdata, dev)) host 120 drivers/scsi/sim710.c host->this_id = scsi_id; host 121 drivers/scsi/sim710.c host->base = base_addr; host 122 drivers/scsi/sim710.c host->irq = irq; host 123 drivers/scsi/sim710.c if (request_irq(irq, NCR_700_intr, IRQF_SHARED, "sim710", host)) { host 128 drivers/scsi/sim710.c dev_set_drvdata(dev, host); host 129 drivers/scsi/sim710.c scsi_scan_host(host); host 134 drivers/scsi/sim710.c scsi_host_put(host); host 145 drivers/scsi/sim710.c struct Scsi_Host *host = dev_get_drvdata(dev); host 147 drivers/scsi/sim710.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 149 drivers/scsi/sim710.c scsi_remove_host(host); host 150 drivers/scsi/sim710.c NCR_700_release(host); host 152 drivers/scsi/sim710.c free_irq(host->irq, host); host 153 drivers/scsi/sim710.c release_region(host->base, 64); host 2674 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 2752 drivers/scsi/smartpqi/smartpqi_init.c struct pqi_ctrl_info *ctrl_info = shost_to_hba(scmd->device->host); host 5054 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(scmd->device->host); host 5095 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(scmd->device->host); host 5117 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(scmd->device->host); host 5735 drivers/scsi/smartpqi/smartpqi_init.c shost = scmd->device->host; host 5773 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 6074 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 6244 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 6282 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 6316 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 6394 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 6420 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 6444 drivers/scsi/smartpqi/smartpqi_init.c ctrl_info = shost_to_hba(sdev->host); host 60 drivers/scsi/sni_53c710.c struct Scsi_Host *host; host 82 drivers/scsi/sni_53c710.c host = NCR_700_detect(&snirm710_template, hostdata, &dev->dev); host 83 drivers/scsi/sni_53c710.c if (!host) host 85 drivers/scsi/sni_53c710.c host->this_id = 7; host 86 drivers/scsi/sni_53c710.c host->base = base; host 87 drivers/scsi/sni_53c710.c host->irq = platform_get_irq(dev, 0); host 88 drivers/scsi/sni_53c710.c if(request_irq(host->irq, NCR_700_intr, IRQF_SHARED, "snirm710", host)) { host 93 drivers/scsi/sni_53c710.c dev_set_drvdata(&dev->dev, host); host 94 drivers/scsi/sni_53c710.c scsi_scan_host(host); host 99 drivers/scsi/sni_53c710.c scsi_host_put(host); host 108 drivers/scsi/sni_53c710.c struct Scsi_Host *host = dev_get_drvdata(&dev->dev); host 110 drivers/scsi/sni_53c710.c (struct NCR_700_Host_Parameters *)host->hostdata[0]; host 112 drivers/scsi/sni_53c710.c scsi_remove_host(host); host 113 drivers/scsi/sni_53c710.c NCR_700_release(host); host 114 drivers/scsi/sni_53c710.c free_irq(host->irq, host); host 144 drivers/scsi/snic/snic.h #define SNIC_MAIN_DBG(host, fmt, args...) \ host 146 drivers/scsi/snic/snic.h shost_printk(KERN_INFO, host, fmt, ## args);) host 148 drivers/scsi/snic/snic.h #define SNIC_SCSI_DBG(host, fmt, args...) \ host 150 drivers/scsi/snic/snic.h shost_printk(KERN_INFO, host, fmt, ##args);) host 152 drivers/scsi/snic/snic.h #define SNIC_DISC_DBG(host, fmt, args...) \ host 154 drivers/scsi/snic/snic.h shost_printk(KERN_INFO, host, fmt, ##args);) host 156 drivers/scsi/snic/snic.h #define SNIC_ISR_DBG(host, fmt, args...) \ host 158 drivers/scsi/snic/snic.h shost_printk(KERN_INFO, host, fmt, ##args);) host 160 drivers/scsi/snic/snic.h #define SNIC_HOST_ERR(host, fmt, args...) \ host 161 drivers/scsi/snic/snic.h shost_printk(KERN_ERR, host, fmt, ##args) host 163 drivers/scsi/snic/snic.h #define SNIC_HOST_INFO(host, fmt, args...) \ host 164 drivers/scsi/snic/snic.h shost_printk(KERN_INFO, host, fmt, ##args) host 80 drivers/scsi/snic/snic_main.c struct snic *snic = shost_priv(sdev->host); host 101 drivers/scsi/snic/snic_main.c struct snic *snic = shost_priv(sdev->host); host 1638 drivers/scsi/snic/snic_scsi.c struct snic *snic = shost_priv(sc->device->host); host 2150 drivers/scsi/snic/snic_scsi.c struct Scsi_Host *shost = sc->device->host; host 2388 drivers/scsi/snic/snic_scsi.c struct Scsi_Host *shost = sc->device->host; host 38 drivers/scsi/sr_ioctl.c #define SR_GFP_DMA(cd) (((cd)->device->host->unchecked_isa_dma) ? GFP_DMA : 0) host 3865 drivers/scsi/st.c if (sdev->host->hostt->compat_ioctl) { host 3867 drivers/scsi/st.c ret = sdev->host->hostt->compat_ioctl(sdev, cmd, (void __user *)arg); host 4280 drivers/scsi/st.c buffer = new_tape_buffer((SDp->host)->unchecked_isa_dma, i); host 4324 drivers/scsi/st.c tpnt->restr_dma = (SDp->host)->unchecked_isa_dma; host 4342 drivers/scsi/st.c tpnt->try_dio = try_direct_io && !SDp->host->unchecked_isa_dma; host 315 drivers/scsi/stex.c struct Scsi_Host *host; host 442 drivers/scsi/stex.c dst->max_sg_count = cpu_to_le16(hba->host->sg_tablesize); host 474 drivers/scsi/stex.c dst->max_sg_count = cpu_to_le16(hba->host->sg_tablesize); host 571 drivers/scsi/stex.c spin_lock_irqsave(hba->host->host_lock, flags); host 572 drivers/scsi/stex.c for (tag = 0; tag < hba->host->can_queue; tag++) { host 584 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 600 drivers/scsi/stex.c struct Scsi_Host *host; host 605 drivers/scsi/stex.c host = cmd->device->host; host 608 drivers/scsi/stex.c hba = (struct st_hba *) &host->hostdata[0]; host 640 drivers/scsi/stex.c if (hba->cardtype == st_shasta || id == host->max_id - 1) { host 646 drivers/scsi/stex.c if (id == host->max_id - 1) { host 653 drivers/scsi/stex.c if (lun >= host->max_lun) { host 658 drivers/scsi/stex.c if (id != host->max_id - 1) host 679 drivers/scsi/stex.c ver.console_id = host->max_id - 1; host 680 drivers/scsi/stex.c ver.host_no = hba->host->host_no; host 696 drivers/scsi/stex.c if (unlikely(tag >= host->can_queue)) host 832 drivers/scsi/stex.c if (unlikely(tag >= hba->host->can_queue)) { host 889 drivers/scsi/stex.c spin_lock_irqsave(hba->host->host_lock, flags); host 898 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 905 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 937 drivers/scsi/stex.c if (unlikely(tag >= hba->host->can_queue)) { host 990 drivers/scsi/stex.c spin_lock_irqsave(hba->host->host_lock, flags); host 998 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1012 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1019 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1053 drivers/scsi/stex.c if (hba->host->can_queue > data) { host 1054 drivers/scsi/stex.c hba->host->can_queue = data; host 1055 drivers/scsi/stex.c hba->host->cmd_per_lun = data; host 1229 drivers/scsi/stex.c spin_lock_irqsave(hba->host->host_lock, flags); host 1242 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1248 drivers/scsi/stex.c struct Scsi_Host *host = cmd->device->host; host 1249 drivers/scsi/stex.c struct st_hba *hba = (struct st_hba *)host->hostdata; host 1259 drivers/scsi/stex.c spin_lock_irqsave(host->host_lock, flags); host 1260 drivers/scsi/stex.c if (tag < host->can_queue && host 1303 drivers/scsi/stex.c spin_unlock_irqrestore(host->host_lock, flags); host 1366 drivers/scsi/stex.c spin_lock_irqsave(hba->host->host_lock, flags); host 1372 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1395 drivers/scsi/stex.c spin_lock_irqsave(hba->host->host_lock, flags); host 1397 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1403 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1407 drivers/scsi/stex.c spin_lock_irqsave(hba->host->host_lock, flags); host 1412 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1417 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1443 drivers/scsi/stex.c hba = (struct st_hba *) &cmd->device->host->hostdata[0]; host 1445 drivers/scsi/stex.c shost_printk(KERN_INFO, cmd->device->host, host 1655 drivers/scsi/stex.c struct Scsi_Host *host; host 1669 drivers/scsi/stex.c host = scsi_host_alloc(&driver_template, sizeof(struct st_hba)); host 1671 drivers/scsi/stex.c if (!host) { host 1678 drivers/scsi/stex.c hba = (struct st_hba *)host->hostdata; host 1781 drivers/scsi/stex.c host->sg_tablesize = 38; host 1783 drivers/scsi/stex.c host->sg_tablesize = 32; host 1784 drivers/scsi/stex.c host->can_queue = ci->rq_count; host 1785 drivers/scsi/stex.c host->cmd_per_lun = ci->rq_count; host 1786 drivers/scsi/stex.c host->max_id = ci->max_id; host 1787 drivers/scsi/stex.c host->max_lun = ci->max_lun; host 1788 drivers/scsi/stex.c host->max_channel = ci->max_channel; host 1789 drivers/scsi/stex.c host->unique_id = host->host_no; host 1790 drivers/scsi/stex.c host->max_cmd_len = STEX_CDB_LENGTH; host 1792 drivers/scsi/stex.c hba->host = host; host 1797 drivers/scsi/stex.c "stex_wq_%d", host->host_no); host 1820 drivers/scsi/stex.c err = scsi_add_host(host, &pdev->dev); host 1827 drivers/scsi/stex.c scsi_scan_host(host); host 1845 drivers/scsi/stex.c scsi_host_put(host); host 1860 drivers/scsi/stex.c spin_lock_irqsave(hba->host->host_lock, flags); host 1865 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1901 drivers/scsi/stex.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1936 drivers/scsi/stex.c scsi_remove_host(hba->host); host 1938 drivers/scsi/stex.c scsi_block_requests(hba->host); host 1942 drivers/scsi/stex.c scsi_host_put(hba->host); host 439 drivers/scsi/storvsc_drv.c struct Scsi_Host *host; host 485 drivers/scsi/storvsc_drv.c struct Scsi_Host *host; host 490 drivers/scsi/storvsc_drv.c struct Scsi_Host *host; host 502 drivers/scsi/storvsc_drv.c sdev = scsi_device_lookup(wrk->host, 0, wrk->tgt_id, wrk->lun); host 514 drivers/scsi/storvsc_drv.c struct Scsi_Host *host; host 519 drivers/scsi/storvsc_drv.c host = host_device->host; host 531 drivers/scsi/storvsc_drv.c mutex_lock(&host->scan_mutex); host 532 drivers/scsi/storvsc_drv.c shost_for_each_device(sdev, host) host 534 drivers/scsi/storvsc_drv.c mutex_unlock(&host->scan_mutex); host 538 drivers/scsi/storvsc_drv.c scsi_scan_host(host); host 547 drivers/scsi/storvsc_drv.c if (!scsi_host_get(wrk->host)) host 550 drivers/scsi/storvsc_drv.c sdev = scsi_device_lookup(wrk->host, 0, wrk->tgt_id, wrk->lun); host 556 drivers/scsi/storvsc_drv.c scsi_host_put(wrk->host); host 924 drivers/scsi/storvsc_drv.c struct Scsi_Host *host, host 929 drivers/scsi/storvsc_drv.c struct hv_host_device *host_dev = shost_priv(host); host 993 drivers/scsi/storvsc_drv.c wrk->host = host; host 1008 drivers/scsi/storvsc_drv.c struct Scsi_Host *host; host 1012 drivers/scsi/storvsc_drv.c host = stor_dev->host; host 1030 drivers/scsi/storvsc_drv.c storvsc_handle_error(vm_srb, scmnd, host, sense_hdr.asc, host 1133 drivers/scsi/storvsc_drv.c host_dev = shost_priv(stor_device->host); host 1141 drivers/scsi/storvsc_drv.c fc_host_node_name(stor_device->host) = stor_device->node_name; host 1142 drivers/scsi/storvsc_drv.c fc_host_port_name(stor_device->host) = stor_device->port_name; host 1473 drivers/scsi/storvsc_drv.c struct hv_host_device *host_dev = shost_priv(scmnd->device->host); host 1530 drivers/scsi/storvsc_drv.c if (scmnd->device->host->transportt == fc_transport_template) host 1558 drivers/scsi/storvsc_drv.c static int storvsc_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *scmnd) host 1561 drivers/scsi/storvsc_drv.c struct hv_host_device *host_dev = shost_priv(host); host 1735 drivers/scsi/storvsc_drv.c struct Scsi_Host *host; host 1774 drivers/scsi/storvsc_drv.c host = scsi_host_alloc(&scsi_driver, host 1776 drivers/scsi/storvsc_drv.c if (!host) host 1779 drivers/scsi/storvsc_drv.c host_dev = shost_priv(host); host 1782 drivers/scsi/storvsc_drv.c host_dev->port = host->host_no; host 1784 drivers/scsi/storvsc_drv.c host_dev->host = host; host 1796 drivers/scsi/storvsc_drv.c stor_device->host = host; host 1799 drivers/scsi/storvsc_drv.c stor_device->port_number = host->host_no; host 1809 drivers/scsi/storvsc_drv.c host->max_lun = STORVSC_FC_MAX_LUNS_PER_TARGET; host 1810 drivers/scsi/storvsc_drv.c host->max_id = STORVSC_FC_MAX_TARGETS; host 1811 drivers/scsi/storvsc_drv.c host->max_channel = STORVSC_FC_MAX_CHANNELS - 1; host 1813 drivers/scsi/storvsc_drv.c host->transportt = fc_transport_template; host 1818 drivers/scsi/storvsc_drv.c host->max_lun = max_luns_per_target; host 1819 drivers/scsi/storvsc_drv.c host->max_id = max_targets; host 1820 drivers/scsi/storvsc_drv.c host->max_channel = max_channels - 1; host 1824 drivers/scsi/storvsc_drv.c host->max_lun = STORVSC_IDE_MAX_LUNS_PER_TARGET; host 1825 drivers/scsi/storvsc_drv.c host->max_id = STORVSC_IDE_MAX_TARGETS; host 1826 drivers/scsi/storvsc_drv.c host->max_channel = STORVSC_IDE_MAX_CHANNELS - 1; host 1830 drivers/scsi/storvsc_drv.c host->max_cmd_len = STORVSC_MAX_CMD_LEN; host 1836 drivers/scsi/storvsc_drv.c host->sg_tablesize = (stor_device->max_transfer_bytes >> PAGE_SHIFT); host 1842 drivers/scsi/storvsc_drv.c host->nr_hw_queues = num_present_cpus(); host 1850 drivers/scsi/storvsc_drv.c host->host_no); host 1855 drivers/scsi/storvsc_drv.c ret = scsi_add_host(host, &device->device); host 1860 drivers/scsi/storvsc_drv.c scsi_scan_host(host); host 1864 drivers/scsi/storvsc_drv.c ret = scsi_add_device(host, 0, target, 0); host 1869 drivers/scsi/storvsc_drv.c if (host->transportt == fc_transport_template) { host 1874 drivers/scsi/storvsc_drv.c fc_host_node_name(host) = stor_device->node_name; host 1875 drivers/scsi/storvsc_drv.c fc_host_port_name(host) = stor_device->port_name; host 1876 drivers/scsi/storvsc_drv.c stor_device->rport = fc_remote_port_add(host, 0, &ids); host 1886 drivers/scsi/storvsc_drv.c scsi_remove_host(host); host 1906 drivers/scsi/storvsc_drv.c scsi_host_put(host); host 1922 drivers/scsi/storvsc_drv.c struct Scsi_Host *host = stor_device->host; host 1923 drivers/scsi/storvsc_drv.c struct hv_host_device *host_dev = shost_priv(host); host 1926 drivers/scsi/storvsc_drv.c if (host->transportt == fc_transport_template) { host 1928 drivers/scsi/storvsc_drv.c fc_remove_host(host); host 1932 drivers/scsi/storvsc_drv.c scsi_remove_host(host); host 1934 drivers/scsi/storvsc_drv.c scsi_host_put(host); host 273 drivers/scsi/sun3_scsi.c shost_printk(KERN_ERR, hostdata->host, host 276 drivers/scsi/sun3_scsi.c NCR5380_dprint(NDEBUG_DMA, hostdata->host); host 99 drivers/scsi/sun3x_esp.c esp->host->unique_id); host 115 drivers/scsi/sun3x_esp.c "invalidate!\n", esp->host->unique_id); host 173 drivers/scsi/sun3x_esp.c struct Scsi_Host *host; host 178 drivers/scsi/sun3x_esp.c host = scsi_host_alloc(tpnt, sizeof(struct esp)); host 179 drivers/scsi/sun3x_esp.c if (!host) host 182 drivers/scsi/sun3x_esp.c host->max_id = 8; host 183 drivers/scsi/sun3x_esp.c esp = shost_priv(host); host 185 drivers/scsi/sun3x_esp.c esp->host = host; host 209 drivers/scsi/sun3x_esp.c host->irq = platform_get_irq(dev, 0); host 210 drivers/scsi/sun3x_esp.c err = request_irq(host->irq, scsi_esp_intr, IRQF_SHARED, host 216 drivers/scsi/sun3x_esp.c esp->host->this_id = esp->scsi_id; host 229 drivers/scsi/sun3x_esp.c free_irq(host->irq, esp); host 239 drivers/scsi/sun3x_esp.c scsi_host_put(host); host 247 drivers/scsi/sun3x_esp.c unsigned int irq = esp->host->irq; host 261 drivers/scsi/sun3x_esp.c scsi_host_put(esp->host); host 114 drivers/scsi/sun_esp.c struct Scsi_Host *host = esp->host; host 117 drivers/scsi/sun_esp.c host->irq = op->archdata.irqs[0]; host 118 drivers/scsi/sun_esp.c return request_irq(host->irq, scsi_esp_intr, IRQF_SHARED, "ESP", esp); host 139 drivers/scsi/sun_esp.c esp->host->this_id = esp->scsi_id; host 269 drivers/scsi/sun_esp.c esp->host->unique_id); host 339 drivers/scsi/sun_esp.c esp->host->unique_id); host 371 drivers/scsi/sun_esp.c "invalidate!\n", esp->host->unique_id); host 455 drivers/scsi/sun_esp.c struct Scsi_Host *host; host 459 drivers/scsi/sun_esp.c host = scsi_host_alloc(tpnt, sizeof(struct esp)); host 462 drivers/scsi/sun_esp.c if (!host) host 465 drivers/scsi/sun_esp.c host->max_id = (hme ? 16 : 8); host 466 drivers/scsi/sun_esp.c esp = shost_priv(host); host 468 drivers/scsi/sun_esp.c esp->host = host; host 512 drivers/scsi/sun_esp.c free_irq(host->irq, esp); host 520 drivers/scsi/sun_esp.c scsi_host_put(host); host 556 drivers/scsi/sun_esp.c unsigned int irq = esp->host->irq; host 578 drivers/scsi/sun_esp.c scsi_host_put(esp->host); host 122 drivers/scsi/sym53c8xx_2/sym_glue.c #define SYM_SOFTC_PTR(cmd) sym_get_hcb(cmd->device->host) host 560 drivers/scsi/sym53c8xx_2/sym_glue.c spin_lock_irqsave(np->s.host->host_lock, flags); host 562 drivers/scsi/sym53c8xx_2/sym_glue.c spin_unlock_irqrestore(np->s.host->host_lock, flags); host 581 drivers/scsi/sym53c8xx_2/sym_glue.c struct Scsi_Host *shost = cmd->device->host; host 726 drivers/scsi/sym53c8xx_2/sym_glue.c struct sym_hcb *np = sym_get_hcb(sdev->host); host 735 drivers/scsi/sym53c8xx_2/sym_glue.c spin_lock_irqsave(np->s.host->host_lock, flags); host 776 drivers/scsi/sym53c8xx_2/sym_glue.c spin_unlock_irqrestore(np->s.host->host_lock, flags); host 786 drivers/scsi/sym53c8xx_2/sym_glue.c struct sym_hcb *np = sym_get_hcb(sdev->host); host 822 drivers/scsi/sym53c8xx_2/sym_glue.c struct sym_hcb *np = sym_get_hcb(sdev->host); host 831 drivers/scsi/sym53c8xx_2/sym_glue.c spin_lock_irqsave(np->s.host->host_lock, flags); host 854 drivers/scsi/sym53c8xx_2/sym_glue.c spin_unlock_irqrestore(np->s.host->host_lock, flags); host 860 drivers/scsi/sym53c8xx_2/sym_glue.c static const char *sym53c8xx_info (struct Scsi_Host *host) host 1214 drivers/scsi/sym53c8xx_2/sym_glue.c free_irq(pdev->irq, np->s.host); host 1275 drivers/scsi/sym53c8xx_2/sym_glue.c np->s.host = shost; host 170 drivers/scsi/sym53c8xx_2/sym_glue.h struct Scsi_Host *host; host 213 drivers/scsi/sym53c8xx_2/sym_glue.h static inline struct sym_hcb * sym_get_hcb(struct Scsi_Host *host) host 215 drivers/scsi/sym53c8xx_2/sym_glue.h return ((struct sym_data *)host->hostdata)->ncb; host 83 drivers/scsi/sym53c8xx_2/sym_nvram.h } host[4]; host 69 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host = ufshcd_get_variant(hba); host 71 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, BIT_SYSCTRL_REF_CLOCK_EN, PHY_CLK_CTRL); host 72 drivers/scsi/ufs/ufs-hisi.c if (ufs_sys_ctrl_readl(host, PHY_CLK_CTRL) & BIT_SYSCTRL_REF_CLOCK_EN) host 75 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, BIT_UFS_REFCLK_SRC_SEl, UFS_SYSCTRL); host 76 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, BIT_UFS_REFCLK_ISO_EN, PHY_ISO_EN); host 78 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_set_bits(host, BIT_SYSCTRL_REF_CLOCK_EN, PHY_CLK_CTRL); host 83 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host = ufshcd_get_variant(hba); host 86 drivers/scsi/ufs/ufs-hisi.c if (!IS_ERR(host->rst)) host 87 drivers/scsi/ufs/ufs-hisi.c reset_control_assert(host->rst); host 90 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_set_bits(host, BIT_UFS_PSW_MTCMOS_EN, PSW_POWER_CTRL); host 93 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_set_bits(host, BIT_SYSCTRL_PWR_READY, HC_LP_CTRL); host 94 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_writel(host, MASK_UFS_DEVICE_RESET | 0, host 97 drivers/scsi/ufs/ufs-hisi.c reg = ufs_sys_ctrl_readl(host, PHY_CLK_CTRL); host 100 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_writel(host, reg, PHY_CLK_CTRL); host 102 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, MASK_SYSCTRL_REF_CLOCK_SEL, PHY_CLK_CTRL); host 104 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_set_bits(host, MASK_UFS_CLK_GATE_BYPASS, host 106 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_set_bits(host, MASK_UFS_SYSCRTL_BYPASS, UFS_SYSCTRL); host 109 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_set_bits(host, BIT_SYSCTRL_PSW_CLK_EN, PSW_CLK_CTRL); host 111 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, BIT_UFS_PSW_ISO_CTRL, PSW_POWER_CTRL); host 113 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, BIT_UFS_PHY_ISO_CTRL, PHY_ISO_EN); host 115 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, BIT_SYSCTRL_LP_ISOL_EN, HC_LP_CTRL); host 118 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_set_bits(host, BIT_SYSCTRL_LP_RESET_N, RESET_CTRL_EN); host 121 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_writel(host, MASK_UFS_DEVICE_RESET | BIT_UFS_DEVICE_RESET, host 132 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_writel(host, 0x03300330, UFS_DEVICE_RESET_CTRL); host 134 drivers/scsi/ufs/ufs-hisi.c if (!IS_ERR(host->rst)) host 135 drivers/scsi/ufs/ufs-hisi.c reset_control_deassert(host->rst); host 140 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host = ufshcd_get_variant(hba); host 156 drivers/scsi/ufs/ufs-hisi.c if (host->caps & UFS_HISI_CAP_PHY10nm) { host 183 drivers/scsi/ufs/ufs-hisi.c if (host->caps & UFS_HISI_CAP_PHY10nm) { host 229 drivers/scsi/ufs/ufs-hisi.c if (!(host->caps & UFS_HISI_CAP_PHY10nm)) host 252 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host = ufshcd_get_variant(hba); host 262 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, MASK_UFS_CLK_GATE_BYPASS, host 264 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, MASK_UFS_SYSCRTL_BYPASS, host 312 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host = ufshcd_get_variant(hba); host 314 drivers/scsi/ufs/ufs-hisi.c if (host->caps & UFS_HISI_CAP_PHY10nm) { host 412 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host = ufshcd_get_variant(hba); host 417 drivers/scsi/ufs/ufs-hisi.c if (host->in_suspend) { host 422 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_clr_bits(host, BIT_SYSCTRL_REF_CLOCK_EN, PHY_CLK_CTRL); host 425 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_writel(host, 0x00100000, UFS_DEVICE_RESET_CTRL); host 427 drivers/scsi/ufs/ufs-hisi.c host->in_suspend = true; host 434 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host = ufshcd_get_variant(hba); host 436 drivers/scsi/ufs/ufs-hisi.c if (!host->in_suspend) host 440 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_writel(host, 0x00100010, UFS_DEVICE_RESET_CTRL); host 442 drivers/scsi/ufs/ufs-hisi.c ufs_sys_ctrl_set_bits(host, BIT_SYSCTRL_REF_CLOCK_EN, PHY_CLK_CTRL); host 444 drivers/scsi/ufs/ufs-hisi.c host->in_suspend = false; host 448 drivers/scsi/ufs/ufs-hisi.c static int ufs_hisi_get_resource(struct ufs_hisi_host *host) host 450 drivers/scsi/ufs/ufs-hisi.c struct device *dev = host->hba->dev; host 454 drivers/scsi/ufs/ufs-hisi.c host->ufs_sys_ctrl = devm_platform_ioremap_resource(pdev, 1); host 455 drivers/scsi/ufs/ufs-hisi.c if (IS_ERR(host->ufs_sys_ctrl)) host 456 drivers/scsi/ufs/ufs-hisi.c return PTR_ERR(host->ufs_sys_ctrl); host 475 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host; host 477 drivers/scsi/ufs/ufs-hisi.c host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); host 478 drivers/scsi/ufs/ufs-hisi.c if (!host) host 481 drivers/scsi/ufs/ufs-hisi.c host->hba = hba; host 482 drivers/scsi/ufs/ufs-hisi.c ufshcd_set_variant(hba, host); host 484 drivers/scsi/ufs/ufs-hisi.c host->rst = devm_reset_control_get(dev, "rst"); host 485 drivers/scsi/ufs/ufs-hisi.c if (IS_ERR(host->rst)) { host 487 drivers/scsi/ufs/ufs-hisi.c return PTR_ERR(host->rst); host 492 drivers/scsi/ufs/ufs-hisi.c err = ufs_hisi_get_resource(host); host 523 drivers/scsi/ufs/ufs-hisi.c struct ufs_hisi_host *host; host 536 drivers/scsi/ufs/ufs-hisi.c host = ufshcd_get_variant(hba); host 537 drivers/scsi/ufs/ufs-hisi.c host->caps |= UFS_HISI_CAP_PHY10nm; host 106 drivers/scsi/ufs/ufs-hisi.h #define ufs_sys_ctrl_writel(host, val, reg) \ host 107 drivers/scsi/ufs/ufs-hisi.h writel((val), (host)->ufs_sys_ctrl + (reg)) host 108 drivers/scsi/ufs/ufs-hisi.h #define ufs_sys_ctrl_readl(host, reg) readl((host)->ufs_sys_ctrl + (reg)) host 109 drivers/scsi/ufs/ufs-hisi.h #define ufs_sys_ctrl_set_bits(host, mask, reg) \ host 111 drivers/scsi/ufs/ufs-hisi.h (host), ((mask) | (ufs_sys_ctrl_readl((host), (reg)))), (reg)) host 112 drivers/scsi/ufs/ufs-hisi.h #define ufs_sys_ctrl_clr_bits(host, mask, reg) \ host 113 drivers/scsi/ufs/ufs-hisi.h ufs_sys_ctrl_writel((host), \ host 114 drivers/scsi/ufs/ufs-hisi.h ((~(mask)) & (ufs_sys_ctrl_readl((host), (reg)))), \ host 58 drivers/scsi/ufs/ufs-mediatek.c struct ufs_mtk_host *host = ufshcd_get_variant(hba); host 63 drivers/scsi/ufs/ufs-mediatek.c host->mphy = devm_of_phy_get_by_index(dev, np, 0); host 65 drivers/scsi/ufs/ufs-mediatek.c if (host->mphy == ERR_PTR(-EPROBE_DEFER)) { host 74 drivers/scsi/ufs/ufs-mediatek.c } else if (IS_ERR(host->mphy)) { host 75 drivers/scsi/ufs/ufs-mediatek.c err = PTR_ERR(host->mphy); host 80 drivers/scsi/ufs/ufs-mediatek.c host->mphy = NULL; host 96 drivers/scsi/ufs/ufs-mediatek.c struct ufs_mtk_host *host = ufshcd_get_variant(hba); host 104 drivers/scsi/ufs/ufs-mediatek.c if (!host) host 110 drivers/scsi/ufs/ufs-mediatek.c ret = phy_power_off(host->mphy); host 114 drivers/scsi/ufs/ufs-mediatek.c ret = phy_power_on(host->mphy); host 133 drivers/scsi/ufs/ufs-mediatek.c struct ufs_mtk_host *host; host 137 drivers/scsi/ufs/ufs-mediatek.c host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); host 138 drivers/scsi/ufs/ufs-mediatek.c if (!host) { host 144 drivers/scsi/ufs/ufs-mediatek.c host->hba = hba; host 145 drivers/scsi/ufs/ufs-mediatek.c ufshcd_set_variant(hba, host); host 272 drivers/scsi/ufs/ufs-mediatek.c struct ufs_mtk_host *host = ufshcd_get_variant(hba); host 275 drivers/scsi/ufs/ufs-mediatek.c phy_power_off(host->mphy); host 282 drivers/scsi/ufs/ufs-mediatek.c struct ufs_mtk_host *host = ufshcd_get_variant(hba); host 285 drivers/scsi/ufs/ufs-mediatek.c phy_power_on(host->mphy); host 41 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_set_bus_vote(struct ufs_qcom_host *host, int vote); host 42 drivers/scsi/ufs/ufs-qcom.c static void ufs_qcom_get_default_testbus_cfg(struct ufs_qcom_host *host); host 107 drivers/scsi/ufs/ufs-qcom.c static void ufs_qcom_disable_lane_clks(struct ufs_qcom_host *host) host 109 drivers/scsi/ufs/ufs-qcom.c if (!host->is_lane_clks_enabled) host 112 drivers/scsi/ufs/ufs-qcom.c clk_disable_unprepare(host->tx_l1_sync_clk); host 113 drivers/scsi/ufs/ufs-qcom.c clk_disable_unprepare(host->tx_l0_sync_clk); host 114 drivers/scsi/ufs/ufs-qcom.c clk_disable_unprepare(host->rx_l1_sync_clk); host 115 drivers/scsi/ufs/ufs-qcom.c clk_disable_unprepare(host->rx_l0_sync_clk); host 117 drivers/scsi/ufs/ufs-qcom.c host->is_lane_clks_enabled = false; host 120 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_enable_lane_clks(struct ufs_qcom_host *host) host 123 drivers/scsi/ufs/ufs-qcom.c struct device *dev = host->hba->dev; host 125 drivers/scsi/ufs/ufs-qcom.c if (host->is_lane_clks_enabled) host 129 drivers/scsi/ufs/ufs-qcom.c host->rx_l0_sync_clk); host 134 drivers/scsi/ufs/ufs-qcom.c host->tx_l0_sync_clk); host 139 drivers/scsi/ufs/ufs-qcom.c host->rx_l1_sync_clk); host 144 drivers/scsi/ufs/ufs-qcom.c host->tx_l1_sync_clk); host 148 drivers/scsi/ufs/ufs-qcom.c host->is_lane_clks_enabled = true; host 152 drivers/scsi/ufs/ufs-qcom.c clk_disable_unprepare(host->rx_l1_sync_clk); host 154 drivers/scsi/ufs/ufs-qcom.c clk_disable_unprepare(host->tx_l0_sync_clk); host 156 drivers/scsi/ufs/ufs-qcom.c clk_disable_unprepare(host->rx_l0_sync_clk); host 161 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_init_lane_clks(struct ufs_qcom_host *host) host 164 drivers/scsi/ufs/ufs-qcom.c struct device *dev = host->hba->dev; host 170 drivers/scsi/ufs/ufs-qcom.c &host->rx_l0_sync_clk, false); host 175 drivers/scsi/ufs/ufs-qcom.c &host->tx_l0_sync_clk, false); host 180 drivers/scsi/ufs/ufs-qcom.c if (host->hba->lanes_per_direction > 1) { host 182 drivers/scsi/ufs/ufs-qcom.c &host->rx_l1_sync_clk, false); host 187 drivers/scsi/ufs/ufs-qcom.c &host->tx_l1_sync_clk, true); host 240 drivers/scsi/ufs/ufs-qcom.c static void ufs_qcom_select_unipro_mode(struct ufs_qcom_host *host) host 242 drivers/scsi/ufs/ufs-qcom.c ufshcd_rmwl(host->hba, QUNIPRO_SEL, host 243 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_cap_qunipro(host) ? QUNIPRO_SEL : 0, host 251 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 252 drivers/scsi/ufs/ufs-qcom.c struct phy *phy = host->generic_phy; host 276 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_select_unipro_mode(host); host 307 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 318 drivers/scsi/ufs/ufs-qcom.c err = ufs_qcom_enable_lane_clks(host); host 341 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 374 drivers/scsi/ufs/ufs-qcom.c if (ufs_qcom_cap_qunipro(host) && !ufshcd_is_intr_aggr_allowed(hba)) host 401 drivers/scsi/ufs/ufs-qcom.c if (ufs_qcom_cap_qunipro(host)) host 485 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 497 drivers/scsi/ufs/ufs-qcom.c if (ufs_qcom_cap_qunipro(host)) host 531 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 532 drivers/scsi/ufs/ufs-qcom.c struct phy *phy = host->generic_phy; host 541 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_disable_lane_clks(host); host 545 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_disable_lane_clks(host); host 553 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 554 drivers/scsi/ufs/ufs-qcom.c struct phy *phy = host->generic_phy; host 565 drivers/scsi/ufs/ufs-qcom.c err = ufs_qcom_enable_lane_clks(host); host 570 drivers/scsi/ufs/ufs-qcom.c err = ufs_qcom_enable_lane_clks(host); host 580 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_get_bus_vote(struct ufs_qcom_host *host, host 583 drivers/scsi/ufs/ufs-qcom.c struct device *dev = host->hba->dev; host 593 drivers/scsi/ufs/ufs-qcom.c if (host->bus_vote.is_max_bw_needed && !!strcmp(speed_mode, "MIN")) host 633 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_set_bus_vote(struct ufs_qcom_host *host, int vote) host 637 drivers/scsi/ufs/ufs-qcom.c if (vote != host->bus_vote.curr_vote) { host 639 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.client_handle, vote); host 641 drivers/scsi/ufs/ufs-qcom.c dev_err(host->hba->dev, host 643 drivers/scsi/ufs/ufs-qcom.c __func__, host->bus_vote.client_handle, host 648 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.curr_vote = vote; host 654 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_update_bus_bw_vote(struct ufs_qcom_host *host) host 660 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_get_speed_mode(&host->dev_req_params, mode); host 662 drivers/scsi/ufs/ufs-qcom.c vote = ufs_qcom_get_bus_vote(host, mode); host 664 drivers/scsi/ufs/ufs-qcom.c err = ufs_qcom_set_bus_vote(host, vote); host 669 drivers/scsi/ufs/ufs-qcom.c dev_err(host->hba->dev, "%s: failed %d\n", __func__, err); host 671 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.saved_vote = vote; host 680 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 683 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.is_max_bw_needed); host 691 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 695 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.is_max_bw_needed = !!value; host 696 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_update_bus_bw_vote(host); host 702 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_bus_register(struct ufs_qcom_host *host) host 706 drivers/scsi/ufs/ufs-qcom.c struct device *dev = host->hba->dev; host 724 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.client_handle = msm_bus_scale_register_client(bus_pdata); host 725 drivers/scsi/ufs/ufs-qcom.c if (!host->bus_vote.client_handle) { host 733 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.min_bw_vote = ufs_qcom_get_bus_vote(host, "MIN"); host 734 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.max_bw_vote = ufs_qcom_get_bus_vote(host, "MAX"); host 736 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.max_bus_bw.show = show_ufs_to_mem_max_bus_bw; host 737 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.max_bus_bw.store = store_ufs_to_mem_max_bus_bw; host 738 drivers/scsi/ufs/ufs-qcom.c sysfs_attr_init(&host->bus_vote.max_bus_bw.attr); host 739 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.max_bus_bw.attr.name = "max_bus_bw"; host 740 drivers/scsi/ufs/ufs-qcom.c host->bus_vote.max_bus_bw.attr.mode = S_IRUGO | S_IWUSR; host 741 drivers/scsi/ufs/ufs-qcom.c err = device_create_file(dev, &host->bus_vote.max_bus_bw); host 746 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_update_bus_bw_vote(struct ufs_qcom_host *host) host 751 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_set_bus_vote(struct ufs_qcom_host *host, int vote) host 756 drivers/scsi/ufs/ufs-qcom.c static int ufs_qcom_bus_register(struct ufs_qcom_host *host) host 762 drivers/scsi/ufs/ufs-qcom.c static void ufs_qcom_dev_ref_clk_ctrl(struct ufs_qcom_host *host, bool enable) host 764 drivers/scsi/ufs/ufs-qcom.c if (host->dev_ref_clk_ctrl_mmio && host 765 drivers/scsi/ufs/ufs-qcom.c (enable ^ host->is_dev_ref_clk_enabled)) { host 766 drivers/scsi/ufs/ufs-qcom.c u32 temp = readl_relaxed(host->dev_ref_clk_ctrl_mmio); host 769 drivers/scsi/ufs/ufs-qcom.c temp |= host->dev_ref_clk_en_mask; host 771 drivers/scsi/ufs/ufs-qcom.c temp &= ~host->dev_ref_clk_en_mask; host 782 drivers/scsi/ufs/ufs-qcom.c writel_relaxed(temp, host->dev_ref_clk_ctrl_mmio); host 795 drivers/scsi/ufs/ufs-qcom.c host->is_dev_ref_clk_enabled = enable; host 804 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 830 drivers/scsi/ufs/ufs-qcom.c if (host->hw_ver.major == 0x1) { host 856 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_dev_ref_clk_ctrl(host, true); host 873 drivers/scsi/ufs/ufs-qcom.c memcpy(&host->dev_req_params, host 875 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_update_bus_bw_vote(host); host 880 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_dev_ref_clk_ctrl(host, false); host 921 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 923 drivers/scsi/ufs/ufs-qcom.c if (host->hw_ver.major == 0x1) host 940 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 942 drivers/scsi/ufs/ufs-qcom.c if (host->hw_ver.major == 0x01) { host 947 drivers/scsi/ufs/ufs-qcom.c if (host->hw_ver.minor == 0x0001 && host->hw_ver.step == 0x0001) host 953 drivers/scsi/ufs/ufs-qcom.c if (host->hw_ver.major == 0x2) { host 956 drivers/scsi/ufs/ufs-qcom.c if (!ufs_qcom_cap_qunipro(host)) host 966 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 972 drivers/scsi/ufs/ufs-qcom.c if (host->hw_ver.major >= 0x2) { host 973 drivers/scsi/ufs/ufs-qcom.c host->caps = UFS_QCOM_CAP_QUNIPRO | host 989 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 998 drivers/scsi/ufs/ufs-qcom.c if (!host) host 1004 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_dev_ref_clk_ctrl(host, true); host 1005 drivers/scsi/ufs/ufs-qcom.c vote = host->bus_vote.saved_vote; host 1006 drivers/scsi/ufs/ufs-qcom.c if (vote == host->bus_vote.min_bw_vote) host 1007 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_update_bus_bw_vote(host); host 1012 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_dev_ref_clk_ctrl(host, false); host 1015 drivers/scsi/ufs/ufs-qcom.c vote = host->bus_vote.min_bw_vote; host 1018 drivers/scsi/ufs/ufs-qcom.c err = ufs_qcom_set_bus_vote(host, vote); host 1029 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = rcdev_to_ufs_host(rcdev); host 1033 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_assert_reset(host->hba); host 1042 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = rcdev_to_ufs_host(rcdev); host 1046 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_deassert_reset(host->hba); host 1088 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host; host 1094 drivers/scsi/ufs/ufs-qcom.c host = devm_kzalloc(dev, sizeof(*host), GFP_KERNEL); host 1095 drivers/scsi/ufs/ufs-qcom.c if (!host) { host 1102 drivers/scsi/ufs/ufs-qcom.c host->hba = hba; host 1103 drivers/scsi/ufs/ufs-qcom.c ufshcd_set_variant(hba, host); host 1106 drivers/scsi/ufs/ufs-qcom.c host->rcdev.of_node = dev->of_node; host 1107 drivers/scsi/ufs/ufs-qcom.c host->rcdev.ops = &ufs_qcom_reset_ops; host 1108 drivers/scsi/ufs/ufs-qcom.c host->rcdev.owner = dev->driver->owner; host 1109 drivers/scsi/ufs/ufs-qcom.c host->rcdev.nr_resets = 1; host 1110 drivers/scsi/ufs/ufs-qcom.c err = devm_reset_controller_register(dev, &host->rcdev); host 1121 drivers/scsi/ufs/ufs-qcom.c host->generic_phy = devm_phy_get(dev, "ufsphy"); host 1123 drivers/scsi/ufs/ufs-qcom.c if (host->generic_phy == ERR_PTR(-EPROBE_DEFER)) { host 1132 drivers/scsi/ufs/ufs-qcom.c } else if (IS_ERR(host->generic_phy)) { host 1134 drivers/scsi/ufs/ufs-qcom.c host->generic_phy = NULL; host 1136 drivers/scsi/ufs/ufs-qcom.c err = PTR_ERR(host->generic_phy); host 1142 drivers/scsi/ufs/ufs-qcom.c host->device_reset = devm_gpiod_get_optional(dev, "reset", host 1144 drivers/scsi/ufs/ufs-qcom.c if (IS_ERR(host->device_reset)) { host 1145 drivers/scsi/ufs/ufs-qcom.c err = PTR_ERR(host->device_reset); host 1151 drivers/scsi/ufs/ufs-qcom.c err = ufs_qcom_bus_register(host); host 1155 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_get_controller_revision(hba, &host->hw_ver.major, host 1156 drivers/scsi/ufs/ufs-qcom.c &host->hw_ver.minor, &host->hw_ver.step); host 1162 drivers/scsi/ufs/ufs-qcom.c if (host->hw_ver.major >= 0x02) { host 1163 drivers/scsi/ufs/ufs-qcom.c host->dev_ref_clk_ctrl_mmio = hba->mmio_base + REG_UFS_CFG1; host 1164 drivers/scsi/ufs/ufs-qcom.c host->dev_ref_clk_en_mask = BIT(26); host 1169 drivers/scsi/ufs/ufs-qcom.c host->dev_ref_clk_ctrl_mmio = host 1171 drivers/scsi/ufs/ufs-qcom.c if (IS_ERR(host->dev_ref_clk_ctrl_mmio)) { host 1175 drivers/scsi/ufs/ufs-qcom.c PTR_ERR(host->dev_ref_clk_ctrl_mmio)); host 1176 drivers/scsi/ufs/ufs-qcom.c host->dev_ref_clk_ctrl_mmio = NULL; host 1178 drivers/scsi/ufs/ufs-qcom.c host->dev_ref_clk_en_mask = BIT(5); host 1182 drivers/scsi/ufs/ufs-qcom.c err = ufs_qcom_init_lane_clks(host); host 1192 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_hosts[hba->dev->id] = host; host 1194 drivers/scsi/ufs/ufs-qcom.c host->dbg_print_en |= UFS_QCOM_DEFAULT_DBG_PRINT_EN; host 1195 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_get_default_testbus_cfg(host); host 1196 drivers/scsi/ufs/ufs-qcom.c err = ufs_qcom_testbus_config(host); host 1213 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 1215 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_disable_lane_clks(host); host 1216 drivers/scsi/ufs/ufs-qcom.c phy_power_off(host->generic_phy); host 1217 drivers/scsi/ufs/ufs-qcom.c phy_exit(host->generic_phy); host 1256 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 1258 drivers/scsi/ufs/ufs-qcom.c if (!ufs_qcom_cap_qunipro(host)) host 1267 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 1271 drivers/scsi/ufs/ufs-qcom.c if (!ufs_qcom_cap_qunipro(host)) host 1292 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 1294 drivers/scsi/ufs/ufs-qcom.c if (!ufs_qcom_cap_qunipro(host)) host 1304 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 1305 drivers/scsi/ufs/ufs-qcom.c struct ufs_pa_layer_attr *dev_req_params = &host->dev_req_params; host 1327 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_update_bus_bw_vote(host); host 1339 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host; host 1350 drivers/scsi/ufs/ufs-qcom.c host = ufshcd_get_variant(hba); host 1351 drivers/scsi/ufs/ufs-qcom.c if (!(host->dbg_print_en & UFS_QCOM_DBG_PRINT_REGS_EN)) host 1354 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_UFS_DBG_RD_REG_OCSC); host 1361 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_UFS_DBG_RD_EDTL_RAM); host 1364 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_UFS_DBG_RD_DESC_RAM); host 1367 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_UFS_DBG_RD_PRDT_RAM); host 1373 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_DBG_RD_REG_UAWM); host 1376 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_DBG_RD_REG_UARM); host 1379 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_DBG_RD_REG_TXUC); host 1382 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_DBG_RD_REG_RXUC); host 1385 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_DBG_RD_REG_DFC); host 1388 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_DBG_RD_REG_TRLUT); host 1391 drivers/scsi/ufs/ufs-qcom.c reg = ufs_qcom_get_debug_reg_offset(host, UFS_DBG_RD_REG_TMRLUT); host 1395 drivers/scsi/ufs/ufs-qcom.c static void ufs_qcom_enable_test_bus(struct ufs_qcom_host *host) host 1397 drivers/scsi/ufs/ufs-qcom.c if (host->dbg_print_en & UFS_QCOM_DBG_PRINT_TEST_BUS_EN) { host 1398 drivers/scsi/ufs/ufs-qcom.c ufshcd_rmwl(host->hba, UFS_REG_TEST_BUS_EN, host 1400 drivers/scsi/ufs/ufs-qcom.c ufshcd_rmwl(host->hba, TEST_BUS_EN, TEST_BUS_EN, REG_UFS_CFG1); host 1402 drivers/scsi/ufs/ufs-qcom.c ufshcd_rmwl(host->hba, UFS_REG_TEST_BUS_EN, 0, REG_UFS_CFG1); host 1403 drivers/scsi/ufs/ufs-qcom.c ufshcd_rmwl(host->hba, TEST_BUS_EN, 0, REG_UFS_CFG1); host 1407 drivers/scsi/ufs/ufs-qcom.c static void ufs_qcom_get_default_testbus_cfg(struct ufs_qcom_host *host) host 1410 drivers/scsi/ufs/ufs-qcom.c host->testbus.select_major = TSTBUS_UNIPRO; host 1411 drivers/scsi/ufs/ufs-qcom.c host->testbus.select_minor = 37; host 1414 drivers/scsi/ufs/ufs-qcom.c static bool ufs_qcom_testbus_cfg_is_ok(struct ufs_qcom_host *host) host 1416 drivers/scsi/ufs/ufs-qcom.c if (host->testbus.select_major >= TSTBUS_MAX) { host 1417 drivers/scsi/ufs/ufs-qcom.c dev_err(host->hba->dev, host 1419 drivers/scsi/ufs/ufs-qcom.c __func__, host->testbus.select_major); host 1426 drivers/scsi/ufs/ufs-qcom.c int ufs_qcom_testbus_config(struct ufs_qcom_host *host) host 1432 drivers/scsi/ufs/ufs-qcom.c if (!host) host 1435 drivers/scsi/ufs/ufs-qcom.c if (!ufs_qcom_testbus_cfg_is_ok(host)) host 1438 drivers/scsi/ufs/ufs-qcom.c switch (host->testbus.select_major) { host 1496 drivers/scsi/ufs/ufs-qcom.c pm_runtime_get_sync(host->hba->dev); host 1497 drivers/scsi/ufs/ufs-qcom.c ufshcd_hold(host->hba, false); host 1498 drivers/scsi/ufs/ufs-qcom.c ufshcd_rmwl(host->hba, TEST_BUS_SEL, host 1499 drivers/scsi/ufs/ufs-qcom.c (u32)host->testbus.select_major << 19, host 1501 drivers/scsi/ufs/ufs-qcom.c ufshcd_rmwl(host->hba, mask, host 1502 drivers/scsi/ufs/ufs-qcom.c (u32)host->testbus.select_minor << offset, host 1504 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_enable_test_bus(host); host 1510 drivers/scsi/ufs/ufs-qcom.c ufshcd_release(host->hba); host 1511 drivers/scsi/ufs/ufs-qcom.c pm_runtime_put_sync(host->hba->dev); host 1523 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 1531 drivers/scsi/ufs/ufs-qcom.c host->testbus.select_major = TSTBUS_UNIPRO; host 1533 drivers/scsi/ufs/ufs-qcom.c host->testbus.select_minor = i; host 1534 drivers/scsi/ufs/ufs-qcom.c ufs_qcom_testbus_config(host); host 1564 drivers/scsi/ufs/ufs-qcom.c struct ufs_qcom_host *host = ufshcd_get_variant(hba); host 1567 drivers/scsi/ufs/ufs-qcom.c if (!host->device_reset) host 1574 drivers/scsi/ufs/ufs-qcom.c gpiod_set_value_cansleep(host->device_reset, 1); host 1577 drivers/scsi/ufs/ufs-qcom.c gpiod_set_value_cansleep(host->device_reset, 0); host 242 drivers/scsi/ufs/ufs-qcom.h ufs_qcom_get_debug_reg_offset(struct ufs_qcom_host *host, u32 reg) host 244 drivers/scsi/ufs/ufs-qcom.h if (host->hw_ver.major <= 0x02) host 254 drivers/scsi/ufs/ufs-qcom.h int ufs_qcom_testbus_config(struct ufs_qcom_host *host); host 256 drivers/scsi/ufs/ufs-qcom.h static inline bool ufs_qcom_cap_qunipro(struct ufs_qcom_host *host) host 258 drivers/scsi/ufs/ufs-qcom.h if (host->caps & UFS_QCOM_CAP_QUNIPRO) host 48 drivers/scsi/ufs/ufs-sysfs.c spin_lock_irqsave(hba->host->host_lock, flags); host 53 drivers/scsi/ufs/ufs-sysfs.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 128 drivers/scsi/ufs/ufs-sysfs.c spin_lock_irqsave(hba->host->host_lock, flags); host 131 drivers/scsi/ufs/ufs-sysfs.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 734 drivers/scsi/ufs/ufs-sysfs.c struct ufs_hba *hba = shost_priv(sdev->host); \ host 787 drivers/scsi/ufs/ufs-sysfs.c struct ufs_hba *hba = shost_priv(sdev->host); host 195 drivers/scsi/ufs/ufs_bsg.c struct Scsi_Host *shost = hba->host; host 293 drivers/scsi/ufs/ufshcd.c scsi_unblock_requests(hba->host); host 299 drivers/scsi/ufs/ufshcd.c scsi_block_requests(hba->host); host 506 drivers/scsi/ufs/ufshcd.c hba->auto_bkops_enabled, hba->host->host_self_blocked); host 1016 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1037 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1049 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1059 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1193 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, irq_flags); host 1195 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, irq_flags); host 1199 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, irq_flags); host 1210 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, irq_flags); host 1212 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, irq_flags); host 1216 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, irq_flags); host 1235 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, irq_flags); host 1237 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, irq_flags); host 1245 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, irq_flags); host 1252 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, irq_flags); host 1256 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, irq_flags); host 1286 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1308 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1372 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1374 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1385 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1390 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1404 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1409 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1481 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1483 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1487 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1521 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1525 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1547 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1549 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1585 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1588 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1595 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1607 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1628 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1656 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1663 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1694 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1696 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1717 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1719 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1748 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 1750 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 1771 drivers/scsi/ufs/ufshcd.c hba->host->host_no); host 1798 drivers/scsi/ufs/ufshcd.c hba->host->host_no); host 2036 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 2038 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 2087 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 2089 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 2397 drivers/scsi/ufs/ufshcd.c static int ufshcd_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) host 2405 drivers/scsi/ufs/ufshcd.c hba = shost_priv(host); host 2418 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 2444 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 2492 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 2496 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 2524 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 2526 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 2605 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 2612 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 2709 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 2712 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 3767 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 3779 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 3810 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 3815 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 3860 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 3863 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 3867 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 3871 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 3966 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 3968 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 4517 drivers/scsi/ufs/ufshcd.c hba = shost_priv(sdev->host); host 4606 drivers/scsi/ufs/ufshcd.c hba = shost_priv(sdev->host); host 4636 drivers/scsi/ufs/ufshcd.c struct ufs_hba *hba = shost_priv(sdev->host); host 4663 drivers/scsi/ufs/ufshcd.c hba = shost_priv(sdev->host); host 4668 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 4670 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5182 drivers/scsi/ufs/ufshcd.c scsi_block_requests(hba->host); host 5196 drivers/scsi/ufs/ufshcd.c scsi_unblock_requests(hba->host); host 5220 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5239 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5241 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5259 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5261 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5277 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5300 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5313 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5316 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5337 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5355 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5379 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5381 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5391 drivers/scsi/ufs/ufshcd.c scsi_report_bus_reset(hba->host, 0); host 5407 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5616 drivers/scsi/ufs/ufshcd.c spin_lock(hba->host->host_lock); host 5638 drivers/scsi/ufs/ufshcd.c spin_unlock(hba->host->host_lock); host 5651 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5653 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5666 drivers/scsi/ufs/ufshcd.c struct Scsi_Host *host = hba->host; host 5678 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(host->host_lock, flags); host 5696 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(host->host_lock, flags); host 5719 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5721 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5856 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 5858 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 5970 drivers/scsi/ufs/ufshcd.c struct Scsi_Host *host; host 5979 drivers/scsi/ufs/ufshcd.c host = cmd->device->host; host 5980 drivers/scsi/ufs/ufshcd.c hba = shost_priv(host); host 5999 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(host->host_lock, flags); host 6001 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(host->host_lock, flags); host 6040 drivers/scsi/ufs/ufshcd.c struct Scsi_Host *host; host 6050 drivers/scsi/ufs/ufshcd.c host = cmd->device->host; host 6051 drivers/scsi/ufs/ufshcd.c hba = shost_priv(host); host 6175 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(host->host_lock, flags); host 6178 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(host->host_lock, flags); host 6219 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 6224 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 6281 drivers/scsi/ufs/ufshcd.c hba = shost_priv(cmd->device->host); host 6291 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 6296 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 6303 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 6307 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 6316 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 6479 drivers/scsi/ufs/ufshcd.c hba->sdev_ufs_device = __scsi_add_device(hba->host, 0, 0, host 6488 drivers/scsi/ufs/ufshcd.c sdev_rpmb = __scsi_add_device(hba->host, 0, 0, host 6496 drivers/scsi/ufs/ufshcd.c sdev_boot = __scsi_add_device(hba->host, 0, 0, host 6979 drivers/scsi/ufs/ufshcd.c scsi_scan_host(hba->host); host 7018 drivers/scsi/ufs/ufshcd.c struct Scsi_Host *host; host 7023 drivers/scsi/ufs/ufshcd.c if (!scmd || !scmd->device || !scmd->device->host) host 7026 drivers/scsi/ufs/ufshcd.c host = scmd->device->host; host 7027 drivers/scsi/ufs/ufshcd.c hba = shost_priv(host); host 7031 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(host->host_lock, flags); host 7040 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(host->host_lock, flags); host 7340 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 7344 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 7556 drivers/scsi/ufs/ufshcd.c spin_lock_irqsave(hba->host->host_lock, flags); host 7567 drivers/scsi/ufs/ufshcd.c spin_unlock_irqrestore(hba->host->host_lock, flags); host 7578 drivers/scsi/ufs/ufshcd.c hba->host->eh_noresume = 1; host 7608 drivers/scsi/ufs/ufshcd.c hba->host->eh_noresume = 0; host 8182 drivers/scsi/ufs/ufshcd.c scsi_remove_host(hba->host); host 8201 drivers/scsi/ufs/ufshcd.c scsi_host_put(hba->host); host 8229 drivers/scsi/ufs/ufshcd.c struct Scsi_Host *host; host 8240 drivers/scsi/ufs/ufshcd.c host = scsi_host_alloc(&ufshcd_driver_template, host 8242 drivers/scsi/ufs/ufshcd.c if (!host) { host 8247 drivers/scsi/ufs/ufshcd.c hba = shost_priv(host); host 8248 drivers/scsi/ufs/ufshcd.c hba->host = host; host 8270 drivers/scsi/ufs/ufshcd.c struct Scsi_Host *host = hba->host; host 8319 drivers/scsi/ufs/ufshcd.c host->can_queue = hba->nutrs; host 8320 drivers/scsi/ufs/ufshcd.c host->cmd_per_lun = hba->nutrs; host 8321 drivers/scsi/ufs/ufshcd.c host->max_id = UFSHCD_MAX_ID; host 8322 drivers/scsi/ufs/ufshcd.c host->max_lun = UFS_MAX_LUNS; host 8323 drivers/scsi/ufs/ufshcd.c host->max_channel = UFSHCD_MAX_CHANNEL; host 8324 drivers/scsi/ufs/ufshcd.c host->unique_id = host->host_no; host 8325 drivers/scsi/ufs/ufshcd.c host->max_cmd_len = UFS_CDB_SIZE; host 8375 drivers/scsi/ufs/ufshcd.c err = scsi_add_host(host, hba->dev); host 8428 drivers/scsi/ufs/ufshcd.c scsi_remove_host(hba->host); host 544 drivers/scsi/ufs/ufshcd.h struct Scsi_Host *host; host 624 drivers/scsi/virtio_scsi.c struct virtio_scsi *vscsi = shost_priv(sc->device->host); host 674 drivers/scsi/virtio_scsi.c struct Scsi_Host *shost = sdev->host; host 682 drivers/scsi/virtio_scsi.c struct virtio_scsi *vscsi = shost_priv(sc->device->host); host 97 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host; host 762 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host = cmd->device->host; host 763 drivers/scsi/vmw_pvscsi.c struct pvscsi_adapter *adapter = shost_priv(host); host 795 drivers/scsi/vmw_pvscsi.c struct pvscsi_adapter *adapter = shost_priv(cmd->device->host); host 803 drivers/scsi/vmw_pvscsi.c adapter->host->host_no, cmd); host 885 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host = cmd->device->host; host 886 drivers/scsi/vmw_pvscsi.c struct pvscsi_adapter *adapter = shost_priv(host); host 939 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host = cmd->device->host; host 940 drivers/scsi/vmw_pvscsi.c struct pvscsi_adapter *adapter = shost_priv(host); host 964 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host = cmd->device->host; host 965 drivers/scsi/vmw_pvscsi.c struct pvscsi_adapter *adapter = shost_priv(host); host 969 drivers/scsi/vmw_pvscsi.c host->host_no, cmd->device->id); host 989 drivers/scsi/vmw_pvscsi.c static const char *pvscsi_info(struct Scsi_Host *host) host 991 drivers/scsi/vmw_pvscsi.c struct pvscsi_adapter *adapter = shost_priv(host); host 1023 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host = adapter->host; host 1039 drivers/scsi/vmw_pvscsi.c if (!scsi_host_get(host)) host 1042 drivers/scsi/vmw_pvscsi.c sdev = scsi_device_lookup(host, desc->bus, desc->target, host 1048 drivers/scsi/vmw_pvscsi.c scsi_add_device(adapter->host, desc->bus, host 1051 drivers/scsi/vmw_pvscsi.c scsi_host_put(host); host 1060 drivers/scsi/vmw_pvscsi.c if (!scsi_host_get(host)) host 1063 drivers/scsi/vmw_pvscsi.c sdev = scsi_device_lookup(host, desc->bus, desc->target, host 1073 drivers/scsi/vmw_pvscsi.c scsi_host_put(host); host 1124 drivers/scsi/vmw_pvscsi.c "vmw_pvscsi_wq_%u", adapter->host->host_no); host 1339 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host = NULL; host 1424 drivers/scsi/vmw_pvscsi.c host = scsi_host_alloc(&pvscsi_template, sizeof(struct pvscsi_adapter)); host 1425 drivers/scsi/vmw_pvscsi.c if (!host) { host 1433 drivers/scsi/vmw_pvscsi.c adapter = shost_priv(host); host 1436 drivers/scsi/vmw_pvscsi.c adapter->host = host; host 1444 drivers/scsi/vmw_pvscsi.c host->max_channel = 0; host 1445 drivers/scsi/vmw_pvscsi.c host->max_lun = 1; host 1446 drivers/scsi/vmw_pvscsi.c host->max_cmd_len = 16; host 1447 drivers/scsi/vmw_pvscsi.c host->max_id = max_id; host 1449 drivers/scsi/vmw_pvscsi.c pci_set_drvdata(pdev, host); host 1517 drivers/scsi/vmw_pvscsi.c error = scsi_add_host(host, &pdev->dev); host 1525 drivers/scsi/vmw_pvscsi.c adapter->rev, host->host_no); host 1529 drivers/scsi/vmw_pvscsi.c scsi_scan_host(host); host 1538 drivers/scsi/vmw_pvscsi.c scsi_host_put(host); host 1566 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host = pci_get_drvdata(dev); host 1567 drivers/scsi/vmw_pvscsi.c struct pvscsi_adapter *adapter = shost_priv(host); host 1574 drivers/scsi/vmw_pvscsi.c struct Scsi_Host *host = pci_get_drvdata(pdev); host 1575 drivers/scsi/vmw_pvscsi.c struct pvscsi_adapter *adapter = shost_priv(host); host 1577 drivers/scsi/vmw_pvscsi.c scsi_remove_host(host); host 1582 drivers/scsi/vmw_pvscsi.c scsi_host_put(host); host 372 drivers/scsi/wd33c93.c hostdata = (struct WD33C93_hostdata *) cmd->device->host->hostdata; host 454 drivers/scsi/wd33c93.c wd33c93_execute(cmd->device->host); host 727 drivers/scsi/wd33c93.c hostdata = (struct WD33C93_hostdata *) cmd->device->host->hostdata; host 835 drivers/scsi/wd33c93.c hostdata->dma_stop(cmd->device->host, cmd, 1); host 1571 drivers/scsi/wd33c93.c instance = SCpnt->device->host; host 1610 drivers/scsi/wd33c93.c disable_irq(cmd->device->host->irq); host 1612 drivers/scsi/wd33c93.c instance = cmd->device->host; host 1635 drivers/scsi/wd33c93.c enable_irq(cmd->device->host->irq); host 1710 drivers/scsi/wd33c93.c enable_irq(cmd->device->host->irq); host 1728 drivers/scsi/wd33c93.c enable_irq(cmd->device->host->irq); host 1747 drivers/scsi/wd33c93.c enable_irq(cmd->device->host->irq); host 192 drivers/scsi/wd719x.c struct wd719x *wd = shost_priv(cmd->device->host); host 468 drivers/scsi/wd719x.c struct wd719x *wd = shost_priv(cmd->device->host); host 489 drivers/scsi/wd719x.c struct wd719x *wd = shost_priv(cmd->device->host); host 523 drivers/scsi/wd719x.c struct wd719x *wd = shost_priv(cmd->device->host); host 106 drivers/scsi/xen-scsifront.c struct Scsi_Host *host; host 237 drivers/scsi/xen-scsifront.c shost_printk(KERN_ALERT, info->host, KBUILD_MODNAME host 298 drivers/scsi/xen-scsifront.c shost_printk(KERN_ERR, info->host, KBUILD_MODNAME host 350 drivers/scsi/xen-scsifront.c spin_lock_irqsave(info->host->host_lock, flags); host 356 drivers/scsi/xen-scsifront.c spin_unlock_irqrestore(info->host->host_lock, flags); host 413 drivers/scsi/xen-scsifront.c if (data_grants > info->host->sg_tablesize) { host 414 drivers/scsi/xen-scsifront.c shost_printk(KERN_ERR, info->host, KBUILD_MODNAME host 430 drivers/scsi/xen-scsifront.c shost_printk(KERN_ERR, info->host, KBUILD_MODNAME host 583 drivers/scsi/xen-scsifront.c struct Scsi_Host *host = sc->device->host; host 584 drivers/scsi/xen-scsifront.c struct vscsifrnt_info *info = shost_priv(host); host 598 drivers/scsi/xen-scsifront.c spin_lock_irq(host->host_lock); host 611 drivers/scsi/xen-scsifront.c spin_unlock_irq(host->host_lock); host 614 drivers/scsi/xen-scsifront.c spin_lock_irq(host->host_lock); host 617 drivers/scsi/xen-scsifront.c spin_unlock_irq(host->host_lock); host 619 drivers/scsi/xen-scsifront.c spin_lock_irq(host->host_lock); host 633 drivers/scsi/xen-scsifront.c spin_unlock_irq(host->host_lock); host 637 drivers/scsi/xen-scsifront.c spin_unlock_irq(host->host_lock); host 656 drivers/scsi/xen-scsifront.c struct vscsifrnt_info *info = shost_priv(sdev->host); host 674 drivers/scsi/xen-scsifront.c struct vscsifrnt_info *info = shost_priv(sdev->host); host 824 drivers/scsi/xen-scsifront.c struct Scsi_Host *host; host 828 drivers/scsi/xen-scsifront.c host = scsi_host_alloc(&scsifront_sht, sizeof(*info)); host 829 drivers/scsi/xen-scsifront.c if (!host) { host 833 drivers/scsi/xen-scsifront.c info = (struct vscsifrnt_info *)host->hostdata; host 842 drivers/scsi/xen-scsifront.c scsi_host_put(host); host 850 drivers/scsi/xen-scsifront.c snprintf(name, TASK_COMM_LEN, "vscsiif.%d", host->host_no); host 852 drivers/scsi/xen-scsifront.c host->max_id = VSCSIIF_MAX_TARGET; host 853 drivers/scsi/xen-scsifront.c host->max_channel = 0; host 854 drivers/scsi/xen-scsifront.c host->max_lun = VSCSIIF_MAX_LUN; host 855 drivers/scsi/xen-scsifront.c host->max_sectors = (host->sg_tablesize - 1) * PAGE_SIZE / 512; host 856 drivers/scsi/xen-scsifront.c host->max_cmd_len = VSCSIIF_MAX_COMMAND_SIZE; host 858 drivers/scsi/xen-scsifront.c err = scsi_add_host(host, &dev->dev); host 863 drivers/scsi/xen-scsifront.c info->host = host; host 872 drivers/scsi/xen-scsifront.c scsi_host_put(host); host 879 drivers/scsi/xen-scsifront.c struct Scsi_Host *host = info->host; host 882 drivers/scsi/xen-scsifront.c spin_lock_irq(host->host_lock); host 887 drivers/scsi/xen-scsifront.c spin_unlock_irq(host->host_lock); host 894 drivers/scsi/xen-scsifront.c scsi_host_put(host); host 906 drivers/scsi/xen-scsifront.c struct Scsi_Host *host = info->host; host 910 drivers/scsi/xen-scsifront.c spin_lock_irq(host->host_lock); host 915 drivers/scsi/xen-scsifront.c spin_unlock_irq(host->host_lock); host 919 drivers/scsi/xen-scsifront.c spin_lock_irq(host->host_lock); host 921 drivers/scsi/xen-scsifront.c spin_unlock_irq(host->host_lock); host 934 drivers/scsi/xen-scsifront.c scsi_remove_host(info->host); host 940 drivers/scsi/xen-scsifront.c scsi_host_put(info->host); host 948 drivers/scsi/xen-scsifront.c struct Scsi_Host *host = info->host; host 960 drivers/scsi/xen-scsifront.c scsi_remove_host(host); host 1015 drivers/scsi/xen-scsifront.c if (scsi_add_device(info->host, chn, tgt, lun)) { host 1029 drivers/scsi/xen-scsifront.c sdev = scsi_device_lookup(info->host, chn, tgt, lun); host 1059 drivers/scsi/xen-scsifront.c struct Scsi_Host *host = info->host; host 1070 drivers/scsi/xen-scsifront.c else if (info->pause && nr_segs < host->sg_tablesize) host 1073 drivers/scsi/xen-scsifront.c host->sg_tablesize, nr_segs); host 1075 drivers/scsi/xen-scsifront.c host->sg_tablesize = nr_segs; host 1076 drivers/scsi/xen-scsifront.c host->max_sectors = (nr_segs - 1) * PAGE_SIZE / 512; host 95 drivers/scsi/zalon.c struct Scsi_Host *host; host 136 drivers/scsi/zalon.c host = ncr_attach(&zalon7xx_template, unit, &device); host 137 drivers/scsi/zalon.c if (!host) host 140 drivers/scsi/zalon.c if (request_irq(dev->irq, ncr53c8xx_intr, IRQF_SHARED, "zalon", host)) { host 148 drivers/scsi/zalon.c dev_set_drvdata(&dev->dev, host); host 150 drivers/scsi/zalon.c error = scsi_add_host(host, &dev->dev); host 154 drivers/scsi/zalon.c scsi_scan_host(host); host 158 drivers/scsi/zalon.c free_irq(dev->irq, host); host 160 drivers/scsi/zalon.c ncr53c8xx_release(host); host 173 drivers/scsi/zalon.c struct Scsi_Host *host = dev_get_drvdata(&dev->dev); host 175 drivers/scsi/zalon.c scsi_remove_host(host); host 176 drivers/scsi/zalon.c ncr53c8xx_release(host); host 177 drivers/scsi/zalon.c free_irq(dev->irq, host); host 78 drivers/scsi/zorro7xx.c struct Scsi_Host *host; host 119 drivers/scsi/zorro7xx.c host = NCR_700_detect(&zorro7xx_scsi_driver_template, hostdata, host 121 drivers/scsi/zorro7xx.c if (!host) { host 127 drivers/scsi/zorro7xx.c host->this_id = 7; host 128 drivers/scsi/zorro7xx.c host->base = ioaddr; host 129 drivers/scsi/zorro7xx.c host->irq = IRQ_AMIGA_PORTS; host 131 drivers/scsi/zorro7xx.c if (request_irq(host->irq, NCR_700_intr, IRQF_SHARED, "zorro7xx-scsi", host 132 drivers/scsi/zorro7xx.c host)) { host 137 drivers/scsi/zorro7xx.c zorro_set_drvdata(z, host); host 138 drivers/scsi/zorro7xx.c scsi_scan_host(host); host 143 drivers/scsi/zorro7xx.c scsi_host_put(host); host 156 drivers/scsi/zorro7xx.c struct Scsi_Host *host = zorro_get_drvdata(z); host 157 drivers/scsi/zorro7xx.c struct NCR_700_Host_Parameters *hostdata = shost_priv(host); host 159 drivers/scsi/zorro7xx.c scsi_remove_host(host); host 161 drivers/scsi/zorro7xx.c NCR_700_release(host); host 163 drivers/scsi/zorro7xx.c free_irq(host->irq, host); host 717 drivers/scsi/zorro_esp.c struct Scsi_Host *host; host 777 drivers/scsi/zorro_esp.c host = scsi_host_alloc(tpnt, sizeof(struct esp)); host 779 drivers/scsi/zorro_esp.c if (!host) { host 785 drivers/scsi/zorro_esp.c host->base = ioaddr; host 786 drivers/scsi/zorro_esp.c host->this_id = 7; host 788 drivers/scsi/zorro_esp.c esp = shost_priv(host); host 789 drivers/scsi/zorro_esp.c esp->host = host; host 792 drivers/scsi/zorro_esp.c esp->scsi_id = host->this_id; host 865 drivers/scsi/zorro_esp.c host->irq = IRQ_AMIGA_PORTS; host 866 drivers/scsi/zorro_esp.c err = request_irq(host->irq, scsi_esp_intr, IRQF_SHARED, host 884 drivers/scsi/zorro_esp.c free_irq(host->irq, esp); host 904 drivers/scsi/zorro_esp.c scsi_host_put(host); host 919 drivers/scsi/zorro_esp.c struct Scsi_Host *host = esp->host; host 923 drivers/scsi/zorro_esp.c free_irq(host->irq, esp); host 933 drivers/scsi/zorro_esp.c if (host->base > 0xffffff) host 936 drivers/scsi/zorro_esp.c scsi_host_put(host); host 441 drivers/soc/qcom/smem.c int qcom_smem_alloc(unsigned host, unsigned item, size_t size) host 465 drivers/soc/qcom/smem.c if (host < SMEM_HOST_COUNT && __smem->partitions[host]) { host 466 drivers/soc/qcom/smem.c phdr = __smem->partitions[host]; host 575 drivers/soc/qcom/smem.c void *qcom_smem_get(unsigned host, unsigned item, size_t *size) host 595 drivers/soc/qcom/smem.c if (host < SMEM_HOST_COUNT && __smem->partitions[host]) { host 596 drivers/soc/qcom/smem.c phdr = __smem->partitions[host]; host 597 drivers/soc/qcom/smem.c cacheln = __smem->cacheline[host]; host 621 drivers/soc/qcom/smem.c int qcom_smem_get_free_space(unsigned host) host 630 drivers/soc/qcom/smem.c if (host < SMEM_HOST_COUNT && __smem->partitions[host]) { host 631 drivers/soc/qcom/smem.c phdr = __smem->partitions[host]; host 145 drivers/soc/qcom/smsm.c u32 host; host 171 drivers/soc/qcom/smsm.c for (host = 0; host < smsm->num_hosts; host++) { host 172 drivers/soc/qcom/smsm.c hostp = &smsm->hosts[host]; host 174 drivers/soc/qcom/smsm.c val = readl(smsm->subscription + host); host 347 drivers/soc/qcom/smsm.c struct smsm_host *host = &smsm->hosts[host_id]; host 356 drivers/soc/qcom/smsm.c host->ipc_regmap = syscon_node_to_regmap(syscon); host 357 drivers/soc/qcom/smsm.c if (IS_ERR(host->ipc_regmap)) host 358 drivers/soc/qcom/smsm.c return PTR_ERR(host->ipc_regmap); host 360 drivers/soc/qcom/smsm.c ret = of_property_read_u32_index(node, key, 1, &host->ipc_offset); host 366 drivers/soc/qcom/smsm.c ret = of_property_read_u32_index(node, key, 2, &host->ipc_bit); host 632 drivers/staging/comedi/drivers/dt9812.c struct usb_host_interface *host = intf->cur_altsetting; host 637 drivers/staging/comedi/drivers/dt9812.c if (host->desc.bNumEndpoints != 5) { host 642 drivers/staging/comedi/drivers/dt9812.c for (i = 0; i < host->desc.bNumEndpoints; ++i) { host 645 drivers/staging/comedi/drivers/dt9812.c ep = &host->endpoint[i].desc; host 3187 drivers/staging/exfat/exfat_super.c struct inode *inode = mapping->host; host 3205 drivers/staging/exfat/exfat_super.c &EXFAT_I(mapping->host)->mmu_private); host 3216 drivers/staging/exfat/exfat_super.c struct inode *inode = mapping->host; host 3235 drivers/staging/exfat/exfat_super.c struct inode *inode = iocb->ki_filp->f_mapping->host; host 3258 drivers/staging/exfat/exfat_super.c down_read(&EXFAT_I(mapping->host)->truncate_lock); host 3260 drivers/staging/exfat/exfat_super.c up_read(&EXFAT_I(mapping->host)->truncate_lock); host 19 drivers/staging/fieldbus/anybuss/anybuss-client.h struct anybuss_host *host; host 41 drivers/staging/fieldbus/anybuss/anybuss-controller.h void anybuss_host_common_remove(struct anybuss_host *host); host 234 drivers/staging/fieldbus/anybuss/arcx-anybus.c struct anybuss_host *host; host 279 drivers/staging/fieldbus/anybuss/arcx-anybus.c host = create_anybus_host(pdev, id); host 280 drivers/staging/fieldbus/anybuss/arcx-anybus.c if (!IS_ERR(host)) host 282 drivers/staging/fieldbus/anybuss/arcx-anybus.c err = PTR_ERR(host); host 534 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1012 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1049 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1059 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1086 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1111 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1139 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1149 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1159 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = client->host; host 1375 drivers/staging/fieldbus/anybuss/host.c cd->client->host = cd; host 1398 drivers/staging/fieldbus/anybuss/host.c void anybuss_host_common_remove(struct anybuss_host *host) host 1400 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *cd = host; host 1421 drivers/staging/fieldbus/anybuss/host.c struct anybuss_host *host; host 1428 drivers/staging/fieldbus/anybuss/host.c host = anybuss_host_common_probe(dev, ops); host 1429 drivers/staging/fieldbus/anybuss/host.c if (IS_ERR(host)) { host 1431 drivers/staging/fieldbus/anybuss/host.c return host; host 1433 drivers/staging/fieldbus/anybuss/host.c *dr = host; host 1435 drivers/staging/fieldbus/anybuss/host.c return host; host 60 drivers/staging/greybus/sdio.c static void _gb_sdio_set_host_caps(struct gb_sdio_host *host, u32 r) host 88 drivers/staging/greybus/sdio.c host->mmc->caps = caps; host 89 drivers/staging/greybus/sdio.c host->mmc->caps2 = caps2 | MMC_CAP2_CORE_RUNTIME_PM; host 92 drivers/staging/greybus/sdio.c host->card_present = true; host 117 drivers/staging/greybus/sdio.c static int gb_sdio_get_caps(struct gb_sdio_host *host) host 120 drivers/staging/greybus/sdio.c struct mmc_host *mmc = host->mmc; host 127 drivers/staging/greybus/sdio.c ret = gb_operation_sync(host->connection, GB_SDIO_TYPE_GET_CAPABILITIES, host 133 drivers/staging/greybus/sdio.c _gb_sdio_set_host_caps(host, r); host 136 drivers/staging/greybus/sdio.c data_max = gb_operation_get_payload_size_max(host->connection); host 145 drivers/staging/greybus/sdio.c host->data_max = data_max; host 161 drivers/staging/greybus/sdio.c static void _gb_queue_event(struct gb_sdio_host *host, u8 event) host 164 drivers/staging/greybus/sdio.c host->queued_events &= ~GB_SDIO_CARD_REMOVED; host 166 drivers/staging/greybus/sdio.c host->queued_events &= ~GB_SDIO_CARD_INSERTED; host 168 drivers/staging/greybus/sdio.c host->queued_events |= event; host 171 drivers/staging/greybus/sdio.c static int _gb_sdio_process_events(struct gb_sdio_host *host, u8 event) host 176 drivers/staging/greybus/sdio.c if (host->mmc->caps & MMC_CAP_NONREMOVABLE) host 178 drivers/staging/greybus/sdio.c if (host->card_present) host 180 drivers/staging/greybus/sdio.c host->card_present = true; host 185 drivers/staging/greybus/sdio.c if (host->mmc->caps & MMC_CAP_NONREMOVABLE) host 187 drivers/staging/greybus/sdio.c if (!(host->card_present)) host 189 drivers/staging/greybus/sdio.c host->card_present = false; host 194 drivers/staging/greybus/sdio.c host->read_only = true; host 197 drivers/staging/greybus/sdio.c dev_info(mmc_dev(host->mmc), "card %s now event\n", host 198 drivers/staging/greybus/sdio.c (host->card_present ? "inserted" : "removed")); host 199 drivers/staging/greybus/sdio.c mmc_detect_change(host->mmc, 0); host 207 drivers/staging/greybus/sdio.c struct gb_sdio_host *host = gb_connection_get_data(op->connection); host 215 drivers/staging/greybus/sdio.c dev_err(mmc_dev(host->mmc), host 223 drivers/staging/greybus/sdio.c dev_err(mmc_dev(host->mmc), "wrong event size received (%zu < %zu)\n", host 231 drivers/staging/greybus/sdio.c if (host->removed) host 232 drivers/staging/greybus/sdio.c _gb_queue_event(host, event); host 234 drivers/staging/greybus/sdio.c ret = _gb_sdio_process_events(host, event); host 239 drivers/staging/greybus/sdio.c static int gb_sdio_set_ios(struct gb_sdio_host *host, host 244 drivers/staging/greybus/sdio.c ret = gbphy_runtime_get_sync(host->gbphy_dev); host 248 drivers/staging/greybus/sdio.c ret = gb_operation_sync(host->connection, GB_SDIO_TYPE_SET_IOS, request, host 251 drivers/staging/greybus/sdio.c gbphy_runtime_put_autosuspend(host->gbphy_dev); host 256 drivers/staging/greybus/sdio.c static int _gb_sdio_send(struct gb_sdio_host *host, struct mmc_data *data, host 269 drivers/staging/greybus/sdio.c WARN_ON(len > host->data_max); host 271 drivers/staging/greybus/sdio.c operation = gb_operation_create(host->connection, GB_SDIO_TYPE_TRANSFER, host 299 drivers/staging/greybus/sdio.c dev_err(mmc_dev(host->mmc), "send: size received: %zu != %d\n", host 310 drivers/staging/greybus/sdio.c static int _gb_sdio_recv(struct gb_sdio_host *host, struct mmc_data *data, host 323 drivers/staging/greybus/sdio.c WARN_ON(len > host->data_max); host 325 drivers/staging/greybus/sdio.c operation = gb_operation_create(host->connection, GB_SDIO_TYPE_TRANSFER, host 345 drivers/staging/greybus/sdio.c dev_err(mmc_dev(host->mmc), "recv: size received: %d != %zu\n", host 362 drivers/staging/greybus/sdio.c static int gb_sdio_transfer(struct gb_sdio_host *host, struct mmc_data *data) host 378 drivers/staging/greybus/sdio.c spin_lock(&host->xfer); host 379 drivers/staging/greybus/sdio.c if (host->xfer_stop) { host 380 drivers/staging/greybus/sdio.c host->xfer_stop = false; host 381 drivers/staging/greybus/sdio.c spin_unlock(&host->xfer); host 385 drivers/staging/greybus/sdio.c spin_unlock(&host->xfer); host 386 drivers/staging/greybus/sdio.c len = min(left, host->data_max); host 391 drivers/staging/greybus/sdio.c ret = _gb_sdio_recv(host, data, len, nblocks, skip); host 395 drivers/staging/greybus/sdio.c ret = _gb_sdio_send(host, data, len, nblocks, skip); host 409 drivers/staging/greybus/sdio.c static int gb_sdio_command(struct gb_sdio_host *host, struct mmc_command *cmd) host 413 drivers/staging/greybus/sdio.c struct mmc_data *data = host->mrq->data; host 436 drivers/staging/greybus/sdio.c dev_err(mmc_dev(host->mmc), "cmd flag invalid 0x%04x\n", host 456 drivers/staging/greybus/sdio.c dev_err(mmc_dev(host->mmc), "cmd type invalid 0x%04x\n", host 472 drivers/staging/greybus/sdio.c ret = gb_operation_sync(host->connection, GB_SDIO_TYPE_COMMAND, host 496 drivers/staging/greybus/sdio.c struct gb_sdio_host *host; host 500 drivers/staging/greybus/sdio.c host = container_of(work, struct gb_sdio_host, mrqwork); host 502 drivers/staging/greybus/sdio.c ret = gbphy_runtime_get_sync(host->gbphy_dev); host 506 drivers/staging/greybus/sdio.c mutex_lock(&host->lock); host 507 drivers/staging/greybus/sdio.c mrq = host->mrq; host 509 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 510 drivers/staging/greybus/sdio.c gbphy_runtime_put_autosuspend(host->gbphy_dev); host 511 drivers/staging/greybus/sdio.c dev_err(mmc_dev(host->mmc), "mmc request is NULL"); host 515 drivers/staging/greybus/sdio.c if (host->removed) { host 521 drivers/staging/greybus/sdio.c ret = gb_sdio_command(host, mrq->sbc); host 526 drivers/staging/greybus/sdio.c ret = gb_sdio_command(host, mrq->cmd); host 531 drivers/staging/greybus/sdio.c ret = gb_sdio_transfer(host, mrq->data); host 537 drivers/staging/greybus/sdio.c ret = gb_sdio_command(host, mrq->stop); host 543 drivers/staging/greybus/sdio.c host->mrq = NULL; host 544 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 545 drivers/staging/greybus/sdio.c mmc_request_done(host->mmc, mrq); host 546 drivers/staging/greybus/sdio.c gbphy_runtime_put_autosuspend(host->gbphy_dev); host 551 drivers/staging/greybus/sdio.c struct gb_sdio_host *host = mmc_priv(mmc); host 556 drivers/staging/greybus/sdio.c spin_lock(&host->xfer); host 557 drivers/staging/greybus/sdio.c host->xfer_stop = true; host 558 drivers/staging/greybus/sdio.c spin_unlock(&host->xfer); host 561 drivers/staging/greybus/sdio.c mutex_lock(&host->lock); host 563 drivers/staging/greybus/sdio.c WARN_ON(host->mrq); host 564 drivers/staging/greybus/sdio.c host->mrq = mrq; host 566 drivers/staging/greybus/sdio.c if (host->removed) { host 570 drivers/staging/greybus/sdio.c if (!host->card_present) { host 575 drivers/staging/greybus/sdio.c queue_work(host->mrq_workqueue, &host->mrqwork); host 577 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 581 drivers/staging/greybus/sdio.c host->mrq = NULL; host 582 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 588 drivers/staging/greybus/sdio.c struct gb_sdio_host *host = mmc_priv(mmc); host 598 drivers/staging/greybus/sdio.c mutex_lock(&host->lock); host 709 drivers/staging/greybus/sdio.c ret = gb_sdio_set_ios(host, &request); host 716 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 721 drivers/staging/greybus/sdio.c struct gb_sdio_host *host = mmc_priv(mmc); host 723 drivers/staging/greybus/sdio.c mutex_lock(&host->lock); host 724 drivers/staging/greybus/sdio.c if (host->removed) { host 725 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 728 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 730 drivers/staging/greybus/sdio.c return host->read_only; host 735 drivers/staging/greybus/sdio.c struct gb_sdio_host *host = mmc_priv(mmc); host 737 drivers/staging/greybus/sdio.c mutex_lock(&host->lock); host 738 drivers/staging/greybus/sdio.c if (host->removed) { host 739 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 742 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 744 drivers/staging/greybus/sdio.c return host->card_present; host 765 drivers/staging/greybus/sdio.c struct gb_sdio_host *host; host 768 drivers/staging/greybus/sdio.c mmc = mmc_alloc_host(sizeof(*host), &gbphy_dev->dev); host 780 drivers/staging/greybus/sdio.c host = mmc_priv(mmc); host 781 drivers/staging/greybus/sdio.c host->mmc = mmc; host 782 drivers/staging/greybus/sdio.c host->removed = true; host 784 drivers/staging/greybus/sdio.c host->connection = connection; host 785 drivers/staging/greybus/sdio.c gb_connection_set_data(connection, host); host 786 drivers/staging/greybus/sdio.c host->gbphy_dev = gbphy_dev; host 787 drivers/staging/greybus/sdio.c gb_gbphy_set_data(gbphy_dev, host); host 793 drivers/staging/greybus/sdio.c ret = gb_sdio_get_caps(host); host 799 drivers/staging/greybus/sdio.c mmc->max_segs = host->mmc->max_blk_count; host 805 drivers/staging/greybus/sdio.c mutex_init(&host->lock); host 806 drivers/staging/greybus/sdio.c spin_lock_init(&host->xfer); host 807 drivers/staging/greybus/sdio.c host->mrq_workqueue = alloc_workqueue("mmc-%s", 0, 1, host 809 drivers/staging/greybus/sdio.c if (!host->mrq_workqueue) { host 813 drivers/staging/greybus/sdio.c INIT_WORK(&host->mrqwork, gb_sdio_mrq_work); host 822 drivers/staging/greybus/sdio.c host->removed = false; host 823 drivers/staging/greybus/sdio.c ret = _gb_sdio_process_events(host, host->queued_events); host 824 drivers/staging/greybus/sdio.c host->queued_events = 0; host 831 drivers/staging/greybus/sdio.c destroy_workqueue(host->mrq_workqueue); host 844 drivers/staging/greybus/sdio.c struct gb_sdio_host *host = gb_gbphy_get_data(gbphy_dev); host 845 drivers/staging/greybus/sdio.c struct gb_connection *connection = host->connection; host 853 drivers/staging/greybus/sdio.c mutex_lock(&host->lock); host 854 drivers/staging/greybus/sdio.c host->removed = true; host 855 drivers/staging/greybus/sdio.c mmc = host->mmc; host 857 drivers/staging/greybus/sdio.c mutex_unlock(&host->lock); host 859 drivers/staging/greybus/sdio.c flush_workqueue(host->mrq_workqueue); host 860 drivers/staging/greybus/sdio.c destroy_workqueue(host->mrq_workqueue); host 630 drivers/staging/mt7621-pci/pci-mt7621.c static int mt7621_pcie_register_host(struct pci_host_bridge *host, host 633 drivers/staging/mt7621-pci/pci-mt7621.c struct mt7621_pcie *pcie = pci_host_bridge_priv(host); host 635 drivers/staging/mt7621-pci/pci-mt7621.c list_splice_init(res, &host->windows); host 636 drivers/staging/mt7621-pci/pci-mt7621.c host->busnr = pcie->busn.start; host 637 drivers/staging/mt7621-pci/pci-mt7621.c host->dev.parent = pcie->dev; host 638 drivers/staging/mt7621-pci/pci-mt7621.c host->ops = &mt7621_pci_ops; host 639 drivers/staging/mt7621-pci/pci-mt7621.c host->map_irq = of_irq_parse_and_map_pci; host 640 drivers/staging/mt7621-pci/pci-mt7621.c host->swizzle_irq = pci_common_swizzle; host 641 drivers/staging/mt7621-pci/pci-mt7621.c host->sysdata = pcie; host 643 drivers/staging/mt7621-pci/pci-mt7621.c return pci_host_probe(host); host 55 drivers/staging/rts5208/rtsx.c static const char *host_info(struct Scsi_Host *host) host 124 drivers/staging/rts5208/rtsx.c struct rtsx_dev *dev = host_to_rtsx(srb->device->host); host 159 drivers/staging/rts5208/rtsx.c struct Scsi_Host *host = srb->device->host; host 160 drivers/staging/rts5208/rtsx.c struct rtsx_dev *dev = host_to_rtsx(host); host 165 drivers/staging/rts5208/rtsx.c scsi_lock(host); host 169 drivers/staging/rts5208/rtsx.c scsi_unlock(host); host 176 drivers/staging/rts5208/rtsx.c scsi_unlock(host); host 190 drivers/staging/rts5208/rtsx.c struct rtsx_dev *dev = host_to_rtsx(srb->device->host); host 372 drivers/staging/rts5208/rtsx.c struct Scsi_Host *host = rtsx_to_host(dev); host 389 drivers/staging/rts5208/rtsx.c scsi_lock(host); host 397 drivers/staging/rts5208/rtsx.c scsi_unlock(host); host 431 drivers/staging/rts5208/rtsx.c scsi_lock(host); host 453 drivers/staging/rts5208/rtsx.c scsi_unlock(host); host 624 drivers/staging/rts5208/rtsx.c struct Scsi_Host *host = rtsx_to_host(dev); host 632 drivers/staging/rts5208/rtsx.c scsi_lock(host); host 634 drivers/staging/rts5208/rtsx.c scsi_unlock(host); host 650 drivers/staging/rts5208/rtsx.c scsi_lock(host); host 653 drivers/staging/rts5208/rtsx.c scsi_unlock(host); host 658 drivers/staging/rts5208/rtsx.c scsi_remove_host(host); host 807 drivers/staging/rts5208/rtsx.c struct Scsi_Host *host; host 831 drivers/staging/rts5208/rtsx.c host = scsi_host_alloc(&rtsx_host_template, sizeof(*dev)); host 832 drivers/staging/rts5208/rtsx.c if (!host) { host 837 drivers/staging/rts5208/rtsx.c dev = host_to_rtsx(host); host 913 drivers/staging/rts5208/rtsx.c host->max_id = 1; host 914 drivers/staging/rts5208/rtsx.c host->max_lun = dev->chip->max_lun; host 925 drivers/staging/rts5208/rtsx.c err = scsi_add_host(host, &pci->dev); host 125 drivers/staging/rts5208/rtsx.h static inline struct rtsx_dev *host_to_rtsx(struct Scsi_Host *host) host 127 drivers/staging/rts5208/rtsx.h return (struct rtsx_dev *)host->hostdata; host 134 drivers/staging/rts5208/rtsx.h #define scsi_unlock(host) spin_unlock_irq(host->host_lock) host 135 drivers/staging/rts5208/rtsx.h #define scsi_lock(host) spin_lock_irq(host->host_lock) host 305 drivers/staging/unisys/visorhba/visorhba_main.c (struct visorhba_devdata *)scsidev->host->hostdata; host 430 drivers/staging/unisys/visorhba/visorhba_main.c shost_for_each_device(scsidev, scsidev->host) { host 511 drivers/staging/unisys/visorhba/visorhba_main.c struct Scsi_Host *scsihost = scsidev->host; host 597 drivers/staging/unisys/visorhba/visorhba_main.c struct Scsi_Host *scsihost = (struct Scsi_Host *)scsidev->host; host 65 drivers/target/loopback/tcm_loop.c static int tcm_loop_show_info(struct seq_file *m, struct Scsi_Host *host) host 109 drivers/target/loopback/tcm_loop.c tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host); host 172 drivers/target/loopback/tcm_loop.c __func__, sc->device->host->host_no, sc->device->id, host 247 drivers/target/loopback/tcm_loop.c tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host); host 267 drivers/target/loopback/tcm_loop.c tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host); host 283 drivers/target/loopback/tcm_loop.c tl_hba = *(struct tcm_loop_hba **)shost_priv(sc->device->host); host 134 drivers/target/target_core_file.c inode = file->f_mapping->host; host 144 drivers/target/target_core_file.c dev_size = (i_size_read(file->f_mapping->host) - host 547 drivers/target/target_core_file.c struct inode *inode = file->f_mapping->host; host 819 drivers/target/target_core_file.c struct inode *i = f->f_mapping->host; host 848 drivers/target/target_core_file.c inode = file->f_mapping->host; host 306 drivers/target/target_core_pscsi.c min_not_zero(sd->host->max_sectors, queue_max_hw_sectors(q)); host 359 drivers/target/target_core_pscsi.c struct Scsi_Host *sh = sd->host; host 403 drivers/target/target_core_pscsi.c struct Scsi_Host *sh = sd->host; host 32 drivers/target/tcm_fc/tfc_sess.c (lport)->host->host_no, \ host 159 drivers/usb/c67x00/c67x00.h #define SIE_TD_OFFSET(host) ((host) ? (SIE_TD_SIZE+SIE_TD_BUF_SIZE) : 0) host 160 drivers/usb/c67x00/c67x00.h #define SIE_BUF_OFFSET(host) (SIE_TD_OFFSET(host) + SIE_TD_SIZE) host 172 drivers/usb/chipidea/host.c otg->host = &hcd->self; host 211 drivers/usb/chipidea/host.c ci->otg.host = NULL; host 514 drivers/usb/chipidea/otg_fsm.c if (!fsm->otg->host) host 517 drivers/usb/chipidea/otg_fsm.c udev = usb_hub_find_child(fsm->otg->host->root_hub, 1); host 132 drivers/usb/common/usb-otg-fsm.c udev = usb_hub_find_child(fsm->otg->host->root_hub, 1); host 134 drivers/usb/common/usb-otg-fsm.c dev_err(fsm->otg->host->controller, host 169 drivers/usb/common/usb-otg-fsm.c if (!fsm->otg->host->b_hnp_enable) { host 177 drivers/usb/common/usb-otg-fsm.c fsm->otg->host->b_hnp_enable = 1; host 247 drivers/usb/common/usb-otg-fsm.c usb_bus_start_enum(fsm->otg->host, host 248 drivers/usb/common/usb-otg-fsm.c fsm->otg->host->otg_port); host 404 drivers/usb/common/usb-otg-fsm.c fsm->otg->host->b_hnp_enable) host 412 drivers/usb/common/usb-otg-fsm.c if (!fsm->b_conn && fsm->otg->host->b_hnp_enable) host 414 drivers/usb/common/usb-otg-fsm.c else if (!fsm->b_conn && !fsm->otg->host->b_hnp_enable) host 573 drivers/usb/dwc2/core.c void dwc2_force_mode(struct dwc2_hsotg *hsotg, bool host) host 579 drivers/usb/dwc2/core.c dev_dbg(hsotg->dev, "Forcing mode to %s\n", host ? "host" : "device"); host 591 drivers/usb/dwc2/core.c if (WARN_ON(host && hsotg->dr_mode == USB_DR_MODE_PERIPHERAL)) host 594 drivers/usb/dwc2/core.c if (WARN_ON(!host && hsotg->dr_mode == USB_DR_MODE_HOST)) host 599 drivers/usb/dwc2/core.c set = host ? GUSBCFG_FORCEHOSTMODE : GUSBCFG_FORCEDEVMODE; host 600 drivers/usb/dwc2/core.c clear = host ? GUSBCFG_FORCEDEVMODE : GUSBCFG_FORCEHOSTMODE; host 606 drivers/usb/dwc2/core.c dwc2_wait_for_mode(hsotg, host); host 1299 drivers/usb/dwc2/core.h void dwc2_force_mode(struct dwc2_hsotg *hsotg, bool host); host 3203 drivers/usb/dwc2/hcd.c goto host; host 3220 drivers/usb/dwc2/hcd.c host: host 224 drivers/usb/gadget/function/storage_common.c size = i_size_read(inode->i_mapping->host); host 675 drivers/usb/gadget/udc/renesas_usb3.c static void usb3_set_mode(struct renesas_usb3 *usb3, bool host) host 677 drivers/usb/gadget/udc/renesas_usb3.c if (host) host 683 drivers/usb/gadget/udc/renesas_usb3.c static void usb3_set_mode_by_role_sw(struct renesas_usb3 *usb3, bool host) host 686 drivers/usb/gadget/udc/renesas_usb3.c usb3->role = host ? USB_ROLE_HOST : USB_ROLE_DEVICE; host 689 drivers/usb/gadget/udc/renesas_usb3.c usb3_set_mode(usb3, host); host 701 drivers/usb/gadget/udc/renesas_usb3.c static void usb3_mode_config(struct renesas_usb3 *usb3, bool host, bool a_dev) host 708 drivers/usb/gadget/udc/renesas_usb3.c usb3_set_mode_by_role_sw(usb3, host); host 712 drivers/usb/gadget/udc/renesas_usb3.c if ((!host && a_dev) || usb3->start_to_connect) host 2359 drivers/usb/gadget/udc/renesas_usb3.c struct device *host = usb3->host_dev; host 2376 drivers/usb/gadget/udc/renesas_usb3.c device_release_driver(host); host 2391 drivers/usb/gadget/udc/renesas_usb3.c if (device_attach(host) < 0) host 2398 drivers/usb/gadget/udc/renesas_usb3.c if (device_attach(host) < 0) host 2411 drivers/usb/gadget/udc/renesas_usb3.c struct device *host = usb3->host_dev; host 2415 drivers/usb/gadget/udc/renesas_usb3.c device_release_driver(host); host 2421 drivers/usb/gadget/udc/renesas_usb3.c if (device_attach(host) < 0) host 481 drivers/usb/host/ehci-tegra.c u_phy->otg->host = hcd_to_bus(hcd); host 335 drivers/usb/image/microtek.c struct mts_desc* desc = (struct mts_desc*)(srb->device->host->hostdata[0]); host 346 drivers/usb/image/microtek.c struct mts_desc* desc = (struct mts_desc*)(srb->device->host->hostdata[0]); host 568 drivers/usb/image/microtek.c struct mts_desc* desc = (struct mts_desc*)(srb->device->host->hostdata[0]); host 762 drivers/usb/image/microtek.c new_desc->host = scsi_host_alloc(&mts_scsi_host_template, host 764 drivers/usb/image/microtek.c if (!new_desc->host) host 767 drivers/usb/image/microtek.c new_desc->host->hostdata[0] = (unsigned long)new_desc; host 768 drivers/usb/image/microtek.c if (scsi_add_host(new_desc->host, &dev->dev)) { host 772 drivers/usb/image/microtek.c scsi_scan_host(new_desc->host); host 778 drivers/usb/image/microtek.c scsi_host_put(new_desc->host); host 796 drivers/usb/image/microtek.c scsi_remove_host(desc->host); host 798 drivers/usb/image/microtek.c scsi_host_put(desc->host); host 42 drivers/usb/image/microtek.h struct Scsi_Host *host; host 2754 drivers/usb/musb/musb_host.c musb->xceiv->otg->host = &hcd->self; host 91 drivers/usb/musb/musb_virthub.c musb->is_active = otg->host->b_hnp_enable; host 100 drivers/usb/musb/musb_virthub.c musb->is_active = otg->host->b_hnp_enable; host 209 drivers/usb/musb/musb_virthub.c if (otg->host->b_hnp_enable) { host 596 drivers/usb/phy/phy-ab8500-usb.c if (!ab->phy.otg->host) host 634 drivers/usb/phy/phy-ab8500-usb.c static int ab8500_usb_set_host(struct usb_otg *otg, struct usb_bus *host) host 643 drivers/usb/phy/phy-ab8500-usb.c ab->phy.otg->host = host; host 650 drivers/usb/phy/phy-ab8500-usb.c if ((ab->mode != USB_IDLE) && !host) { host 271 drivers/usb/phy/phy-fsl-usb.c if (!fsl_otg_dev->phy.otg->host->b_hnp_enable) host 465 drivers/usb/phy/phy-fsl-usb.c if (!otg->host) host 467 drivers/usb/phy/phy-fsl-usb.c dev = otg->host->controller; host 550 drivers/usb/phy/phy-fsl-usb.c static int fsl_otg_set_host(struct usb_otg *otg, struct usb_bus *host) host 561 drivers/usb/phy/phy-fsl-usb.c otg->host = host; host 566 drivers/usb/phy/phy-fsl-usb.c if (host) { host 569 drivers/usb/phy/phy-fsl-usb.c otg->host->otg_port = fsl_otg_initdata.otg_port; host 570 drivers/usb/phy/phy-fsl-usb.c otg->host->is_b_host = otg_dev->fsm.id; host 733 drivers/usb/phy/phy-fsl-usb.c if (otg->host) host 734 drivers/usb/phy/phy-fsl-usb.c otg->host->is_b_host = fsm->id; host 193 drivers/usb/phy/phy-generic.c static int nop_set_host(struct usb_otg *otg, struct usb_bus *host) host 198 drivers/usb/phy/phy-generic.c if (!host) { host 199 drivers/usb/phy/phy-generic.c otg->host = NULL; host 203 drivers/usb/phy/phy-generic.c otg->host = host; host 268 drivers/usb/phy/phy-isp1301-omap.c if (!isp->phy.otg->host) host 274 drivers/usb/phy/phy-isp1301-omap.c dev = isp->phy.otg->host->controller; host 286 drivers/usb/phy/phy-isp1301-omap.c if (!isp->phy.otg->host) host 289 drivers/usb/phy/phy-isp1301-omap.c dev = isp->phy.otg->host->controller; host 333 drivers/usb/phy/phy-isp1301-omap.c if (isp->phy.otg->host) { host 334 drivers/usb/phy/phy-isp1301-omap.c isp->phy.otg->host->is_b_host = 0; host 357 drivers/usb/phy/phy-isp1301-omap.c if (isp->phy.otg->host) { host 358 drivers/usb/phy/phy-isp1301-omap.c isp->phy.otg->host->is_b_host = 1; host 572 drivers/usb/phy/phy-isp1301-omap.c if (!(isp->phy.otg->host)) host 695 drivers/usb/phy/phy-isp1301-omap.c if (!otg->host) host 775 drivers/usb/phy/phy-isp1301-omap.c if (otg->host) { host 801 drivers/usb/phy/phy-isp1301-omap.c usb_bus_start_enum(otg->host, otg->host->otg_port); host 983 drivers/usb/phy/phy-isp1301-omap.c if (otg->host && state == OTG_STATE_A_IDLE) host 1263 drivers/usb/phy/phy-isp1301-omap.c isp1301_set_host(struct usb_otg *otg, struct usb_bus *host) host 1270 drivers/usb/phy/phy-isp1301-omap.c if (!host) { host 1273 drivers/usb/phy/phy-isp1301-omap.c otg->host = NULL; host 1278 drivers/usb/phy/phy-isp1301-omap.c otg->host = host; host 1287 drivers/usb/phy/phy-isp1301-omap.c otg->host = host; host 1340 drivers/usb/phy/phy-isp1301-omap.c if (otg->host) host 1433 drivers/usb/phy/phy-isp1301-omap.c if (otg->default_a && (otg->host == NULL || !otg->host->b_hnp_enable)) host 61 drivers/usb/phy/phy-mv-usb.c struct usb_bus *host) host 63 drivers/usb/phy/phy-mv-usb.c otg->host = host; host 199 drivers/usb/phy/phy-mv-usb.c if (!otg->host) host 204 drivers/usb/phy/phy-mv-usb.c hcd = bus_to_hcd(otg->host); host 192 drivers/usb/phy/phy-tahvo.c static int tahvo_usb_set_host(struct usb_otg *otg, struct usb_bus *host) host 197 drivers/usb/phy/phy-tahvo.c dev_dbg(&tu->pt_dev->dev, "%s %p\n", __func__, host); host 201 drivers/usb/phy/phy-tahvo.c if (host == NULL) { host 204 drivers/usb/phy/phy-tahvo.c otg->host = NULL; host 210 drivers/usb/phy/phy-tahvo.c otg->host = NULL; host 214 drivers/usb/phy/phy-tahvo.c otg->host = host; host 286 drivers/usb/phy/phy-tahvo.c if (tu->phy.otg->host) { host 199 drivers/usb/phy/phy-ulpi.c static int ulpi_set_host(struct usb_otg *otg, struct usb_bus *host) host 204 drivers/usb/phy/phy-ulpi.c if (!host) { host 205 drivers/usb/phy/phy-ulpi.c otg->host = NULL; host 209 drivers/usb/phy/phy-ulpi.c otg->host = host; host 62 drivers/usb/storage/scsiglue.c static const char* host_info(struct Scsi_Host *host) host 64 drivers/usb/storage/scsiglue.c struct us_data *us = host_to_us(host); host 70 drivers/usb/storage/scsiglue.c struct us_data *us = host_to_us(sdev->host); host 94 drivers/usb/storage/scsiglue.c struct us_data *us = host_to_us(sdev->host); host 369 drivers/usb/storage/scsiglue.c struct us_data *us = host_to_us(srb->device->host); host 412 drivers/usb/storage/scsiglue.c struct us_data *us = host_to_us(srb->device->host); host 454 drivers/usb/storage/scsiglue.c struct us_data *us = host_to_us(srb->device->host); host 470 drivers/usb/storage/scsiglue.c struct us_data *us = host_to_us(srb->device->host); host 487 drivers/usb/storage/scsiglue.c struct Scsi_Host *host = us_to_host(us); host 489 drivers/usb/storage/scsiglue.c scsi_report_device_reset(host, 0, 0); host 491 drivers/usb/storage/scsiglue.c for (i = 1; i < host->max_id; ++i) host 492 drivers/usb/storage/scsiglue.c scsi_report_device_reset(host, 0, i); host 503 drivers/usb/storage/scsiglue.c struct Scsi_Host *host = us_to_host(us); host 505 drivers/usb/storage/scsiglue.c scsi_lock(host); host 506 drivers/usb/storage/scsiglue.c scsi_report_bus_reset(host, 0); host 507 drivers/usb/storage/scsiglue.c scsi_unlock(host); host 514 drivers/usb/storage/scsiglue.c static int write_info(struct Scsi_Host *host, char *buffer, int length) host 520 drivers/usb/storage/scsiglue.c static int show_info (struct seq_file *m, struct Scsi_Host *host) host 522 drivers/usb/storage/scsiglue.c struct us_data *us = host_to_us(host); host 526 drivers/usb/storage/scsiglue.c seq_printf(m, " Host scsi%d: usb-storage\n", host->host_no); host 483 drivers/usb/storage/uas.c uas_stat_cmplt, cmnd->device->host); host 648 drivers/usb/storage/uas.c if (cmnd->device->host->host_self_blocked) host 771 drivers/usb/storage/uas.c shost_printk(KERN_ERR, sdev->host, host 776 drivers/usb/storage/uas.c shost_printk(KERN_INFO, sdev->host, "%s start\n", __func__); host 796 drivers/usb/storage/uas.c shost_printk(KERN_INFO, sdev->host, "%s FAILED err %d\n", host 801 drivers/usb/storage/uas.c shost_printk(KERN_INFO, sdev->host, "%s success\n", __func__); host 819 drivers/usb/storage/uas.c (struct uas_dev_info *)sdev->host->hostdata; host 301 drivers/usb/storage/usb.c struct Scsi_Host *host = us_to_host(us); host 315 drivers/usb/storage/usb.c scsi_lock(host); host 320 drivers/usb/storage/usb.c scsi_unlock(host); host 332 drivers/usb/storage/usb.c scsi_unlock(host); host 385 drivers/usb/storage/usb.c scsi_lock(host); host 411 drivers/usb/storage/usb.c scsi_unlock(host); host 842 drivers/usb/storage/usb.c struct Scsi_Host *host = us_to_host(us); host 864 drivers/usb/storage/usb.c scsi_remove_host(host); host 870 drivers/usb/storage/usb.c scsi_lock(host); host 872 drivers/usb/storage/usb.c scsi_unlock(host); host 939 drivers/usb/storage/usb.c struct Scsi_Host *host; host 949 drivers/usb/storage/usb.c host = scsi_host_alloc(sht, sizeof(*us)); host 950 drivers/usb/storage/usb.c if (!host) { host 958 drivers/usb/storage/usb.c host->max_cmd_len = 16; host 959 drivers/usb/storage/usb.c host->sg_tablesize = usb_stor_sg_tablesize(intf); host 960 drivers/usb/storage/usb.c *pus = us = host_to_us(host); host 156 drivers/usb/storage/usb.h static inline struct us_data *host_to_us(struct Scsi_Host *host) { host 157 drivers/usb/storage/usb.h return (struct us_data *) host->hostdata; host 168 drivers/usb/storage/usb.h #define scsi_unlock(host) spin_unlock_irq(host->host_lock) host 169 drivers/usb/storage/usb.h #define scsi_lock(host) spin_lock_irq(host->host_lock) host 140 drivers/video/backlight/apple_bl.c struct pci_dev *host; host 143 drivers/video/backlight/apple_bl.c host = pci_get_domain_bus_and_slot(0, 0, 0); host 145 drivers/video/backlight/apple_bl.c if (!host) { host 150 drivers/video/backlight/apple_bl.c if (host->vendor == PCI_VENDOR_ID_INTEL) host 152 drivers/video/backlight/apple_bl.c else if (host->vendor == PCI_VENDOR_ID_NVIDIA) host 155 drivers/video/backlight/apple_bl.c pci_dev_put(host); host 65 drivers/video/fbdev/mb862xx/mb862xxfb.h void __iomem *host; /* relocatable reg. bases */ host 603 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c reg_ist = inreg(host, GC_IST); host 604 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c mask = inreg(host, GC_IMASK); host 611 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_IST, ~reg_ist); host 631 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c par->host = par->mmio_base; host 641 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c ver = inreg(host, GC_CID); host 655 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_CCF, ccf); host 657 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_MMR, mmr); host 662 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_IST, 0); host 663 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_IMASK, GC_INT_EN); host 767 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_IMASK, 0); host 797 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_IMASK, 0); host 845 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c par->host = par->mmio_base; host 861 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c ver = inreg(host, GC_CID); host 875 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_CCF, GC_CCF_CGE_166 | GC_CCF_COT_133); host 877 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_MMR, GC_MMR_CORALP_EVB_VAL); host 881 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_IST, 0); host 1105 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_IMASK, GC_INT_EN); host 1144 drivers/video/fbdev/mb862xx/mb862xxfbdrv.c outreg(host, GC_IMASK, 0); host 205 fs/9p/cache.c struct inode *inode = page->mapping->host; host 215 fs/9p/cache.c struct inode *inode = page->mapping->host; host 41 fs/9p/vfs_addr.c struct inode *inode = page->mapping->host; host 104 fs/9p/vfs_addr.c inode = mapping->host; host 150 fs/9p/vfs_addr.c struct inode *inode = page->mapping->host; host 208 fs/9p/vfs_addr.c struct inode *inode = page->mapping->host; host 263 fs/9p/vfs_addr.c struct inode *inode = mapping->host; host 296 fs/9p/vfs_addr.c struct inode *inode = page->mapping->host; host 449 fs/9p/vfs_file.c struct inode *inode = filp->f_mapping->host; host 473 fs/9p/vfs_file.c struct inode *inode = filp->f_mapping->host; host 47 fs/adfs/inode.c struct inode *inode = mapping->host; host 62 fs/adfs/inode.c &ADFS_I(mapping->host)->mmu_private); host 384 fs/affs/file.c struct inode *inode = mapping->host; host 397 fs/affs/file.c struct inode *inode = mapping->host; host 424 fs/affs/file.c &AFFS_I(mapping->host)->mmu_private); host 505 fs/affs/file.c struct inode *inode = page->mapping->host; host 613 fs/affs/file.c struct inode *inode = page->mapping->host; host 635 fs/affs/file.c struct inode *inode = mapping->host; host 673 fs/affs/file.c struct inode *inode = mapping->host; host 955 fs/affs/file.c struct inode *inode = filp->f_mapping->host; host 17 fs/affs/symlink.c struct inode *inode = page->mapping->host; host 2019 fs/afs/dir.c struct afs_vnode *dvnode = AFS_FS_I(page->mapping->host); host 2040 fs/afs/dir.c struct afs_vnode *dvnode = AFS_FS_I(page->mapping->host); host 274 fs/afs/file.c struct inode *inode = page->mapping->host; host 399 fs/afs/file.c struct inode *inode = page->mapping->host; host 443 fs/afs/file.c struct afs_vnode *vnode = AFS_FS_I(mapping->host); host 549 fs/afs/file.c key_serial(key), mapping->host->i_ino, nr_pages); host 553 fs/afs/file.c vnode = AFS_FS_I(mapping->host); host 609 fs/afs/file.c struct afs_vnode *vnode = AFS_FS_I(page->mapping->host); host 620 fs/afs/file.c struct afs_vnode *vnode = AFS_FS_I(page->mapping->host); host 644 fs/afs/file.c struct afs_vnode *vnode = AFS_FS_I(page->mapping->host); host 235 fs/afs/write.c struct afs_vnode *vnode = AFS_FS_I(mapping->host); host 278 fs/afs/write.c struct afs_vnode *vnode = AFS_FS_I(mapping->host); host 358 fs/afs/write.c struct afs_vnode *vnode = AFS_FS_I(mapping->host); host 456 fs/afs/write.c struct afs_vnode *vnode = AFS_FS_I(mapping->host); host 853 fs/afs/write.c struct afs_vnode *vnode = AFS_FS_I(mapping->host); host 472 fs/befs/linuxvfs.c struct inode *inode = page->mapping->host; host 165 fs/bfs/file.c struct inode *inode = mapping->host; host 179 fs/block_dev.c return file->f_mapping->host; host 293 fs/block_dev.c struct block_device *bdev = I_BDEV(kiocb->ki_filp->f_mapping->host); host 2025 fs/block_dev.c struct super_block *super = BDEV_I(page->mapping->host)->bdev.bd_super; host 596 fs/btrfs/disk-io.c struct btrfs_root *root = BTRFS_I(page->mapping->host)->root; host 849 fs/btrfs/disk-io.c root = BTRFS_I(bvec->bv_page->mapping->host)->root; host 954 fs/btrfs/disk-io.c fs_info = BTRFS_I(mapping->host)->root->fs_info; host 968 fs/btrfs/disk-io.c tree = &BTRFS_I(page->mapping->host)->io_tree; host 984 fs/btrfs/disk-io.c tree = &BTRFS_I(page->mapping->host)->io_tree; host 988 fs/btrfs/disk-io.c btrfs_warn(BTRFS_I(page->mapping->host)->root->fs_info, host 4111 fs/btrfs/disk-io.c struct inode *btree_inode = buf->pages[0]->mapping->host; host 4140 fs/btrfs/disk-io.c root = BTRFS_I(buf->pages[0]->mapping->host)->root; host 2572 fs/btrfs/extent_io.c struct inode *inode = page->mapping->host; host 2655 fs/btrfs/extent_io.c struct inode *inode = page->mapping->host; host 2726 fs/btrfs/extent_io.c struct inode *inode = page->mapping->host; host 2988 fs/btrfs/extent_io.c bio->bi_write_hint = page->mapping->host->i_write_hint; host 3063 fs/btrfs/extent_io.c struct inode *inode = page->mapping->host; host 3272 fs/btrfs/extent_io.c struct btrfs_inode *inode = BTRFS_I(pages[0]->mapping->host); host 3291 fs/btrfs/extent_io.c struct btrfs_inode *inode = BTRFS_I(page->mapping->host); host 3557 fs/btrfs/extent_io.c struct inode *inode = page->mapping->host; host 3923 fs/btrfs/extent_io.c struct extent_io_tree *tree = &BTRFS_I(mapping->host)->io_tree; host 3931 fs/btrfs/extent_io.c struct btrfs_fs_info *fs_info = BTRFS_I(mapping->host)->root->fs_info; host 4099 fs/btrfs/extent_io.c struct inode *inode = mapping->host; host 4249 fs/btrfs/extent_io.c .tree = &BTRFS_I(page->mapping->host)->io_tree, host 4317 fs/btrfs/extent_io.c .tree = &BTRFS_I(mapping->host)->io_tree, host 4339 fs/btrfs/extent_io.c struct extent_io_tree *tree = &BTRFS_I(mapping->host)->io_tree; host 4391 fs/btrfs/extent_io.c size_t blocksize = page->mapping->host->i_sb->s_blocksize; host 4448 fs/btrfs/extent_io.c struct btrfs_inode *btrfs_inode = BTRFS_I(page->mapping->host); host 4453 fs/btrfs/extent_io.c page->mapping->host->i_size > SZ_16M) { host 3432 fs/btrfs/file.c struct inode *inode = file->f_mapping->host; host 2020 fs/btrfs/inode.c struct inode *inode = page->mapping->host; host 2320 fs/btrfs/inode.c struct inode *inode = page->mapping->host; host 3342 fs/btrfs/inode.c struct inode *inode = page->mapping->host; host 3408 fs/btrfs/inode.c struct inode *inode = page->mapping->host; host 8737 fs/btrfs/inode.c struct inode *inode = file->f_mapping->host; host 8858 fs/btrfs/inode.c tree = &BTRFS_I(page->mapping->host)->io_tree; host 8864 fs/btrfs/inode.c struct inode *inode = page->mapping->host; host 8921 fs/btrfs/inode.c struct inode *inode = page->mapping->host; host 648 fs/buffer.c __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); host 1116 fs/buffer.c __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); host 1946 fs/buffer.c struct inode *inode = page->mapping->host; host 2104 fs/buffer.c struct inode *inode = mapping->host; host 2140 fs/buffer.c struct inode *inode = mapping->host; host 2229 fs/buffer.c struct inode *inode = page->mapping->host; host 2344 fs/buffer.c struct inode *inode = mapping->host; host 2422 fs/buffer.c struct inode *inode = mapping->host; host 2443 fs/buffer.c struct inode *inode = page->mapping->host; host 2550 fs/buffer.c struct inode *inode = mapping->host; host 2690 fs/buffer.c struct inode *inode = page->mapping->host; host 2729 fs/buffer.c struct inode * const inode = page->mapping->host; host 2781 fs/buffer.c struct inode *inode = mapping->host; host 2859 fs/buffer.c struct inode *inode = mapping->host; host 2933 fs/buffer.c struct inode * const inode = page->mapping->host; host 2972 fs/buffer.c struct inode *inode = mapping->host; host 86 fs/ceph/addr.c mapping->host, page, page->index); host 91 fs/ceph/addr.c inode = mapping->host; host 114 fs/ceph/addr.c mapping->host, page, page->index, host 147 fs/ceph/addr.c inode = page->mapping->host; host 175 fs/ceph/addr.c dout("%p releasepage %p idx %lu (%sdirty)\n", page->mapping->host, host 454 fs/ceph/addr.c rc = ceph_readpages_from_fscache(mapping->host, mapping, page_list, host 591 fs/ceph/addr.c inode = page->mapping->host; host 673 fs/ceph/addr.c struct inode *inode = page->mapping->host; host 782 fs/ceph/addr.c struct inode *inode = mapping->host; host 55 fs/ceph/cache.h struct inode* inode = page->mapping->host; host 2231 fs/ceph/caps.c struct inode *inode = file->f_mapping->host; host 623 fs/ceph/dir.c struct inode *inode = file->f_mapping->host; host 1608 fs/ceph/file.c struct inode *inode = file->f_mapping->host; host 229 fs/ceph/locks.c if (__mandatory_lock(file->f_mapping->host) && fl->fl_type != F_UNLCK) host 2104 fs/cifs/file.c if (!mapping || !mapping->host) host 2107 fs/cifs/file.c inode = page->mapping->host; host 2119 fs/cifs/file.c if (offset > mapping->host->i_size) { host 2125 fs/cifs/file.c if (mapping->host->i_size - offset < (loff_t)to) host 2126 fs/cifs/file.c to = (unsigned)(mapping->host->i_size - offset); host 2128 fs/cifs/file.c rc = cifs_get_writable_file(CIFS_I(mapping->host), FIND_WR_ANY, host 2223 fs/cifs/file.c if (page_offset(page) >= i_size_read(mapping->host)) { host 2260 fs/cifs/file.c wdata->tailsz = min(i_size_read(mapping->host) - host 2281 fs/cifs/file.c struct inode *inode = mapping->host; host 2492 fs/cifs/file.c struct inode *inode = mapping->host; host 3186 fs/cifs/file.c struct inode *inode = file->f_mapping->host; host 4114 fs/cifs/file.c cifs_readpage_to_fscache(rdata->mapping->host, page); host 4137 fs/cifs/file.c eof = CIFS_I(rdata->mapping->host)->server_eof; host 4303 fs/cifs/file.c rc = cifs_readpages_from_fscache(mapping->host, mapping, page_list, host 4431 fs/cifs/file.c cifs_fscache_readpages_cancel(mapping->host, page_list); host 4592 fs/cifs/file.c if (CIFS_CACHE_READ(CIFS_I(mapping->host))) { host 4593 fs/cifs/file.c i_size = i_size_read(mapping->host); host 4642 fs/cifs/file.c struct cifsInodeInfo *cifsi = CIFS_I(page->mapping->host); host 4665 fs/cifs/file.c cifs_fscache_invalidate_page(page, page->mapping->host); host 222 fs/cifs/fscache.c struct inode *inode = page->mapping->host; host 25 fs/coda/symlink.c struct inode *inode = page->mapping->host; host 891 fs/coredump.c if (i_size_read(file->f_mapping->host) < offset) host 212 fs/cramfs/inode.c devsize = mapping->host->i_size >> PAGE_SHIFT; host 822 fs/cramfs/inode.c struct inode *inode = page->mapping->host; host 223 fs/crypto/crypto.c const struct inode *inode = page->mapping->host; host 302 fs/crypto/crypto.c const struct inode *inode = page->mapping->host; host 411 fs/dax.c if (S_ISCHR(mapping->host->i_mode)) host 441 fs/dax.c if (S_ISCHR(mapping->host->i_mode)) host 723 fs/dax.c __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); host 926 fs/dax.c trace_dax_writeback_one(mapping->host, index, count); host 943 fs/dax.c struct inode *inode = mapping->host; host 1034 fs/dax.c struct inode *inode = mapping->host; host 1199 fs/dax.c struct inode *inode = mapping->host; host 1251 fs/dax.c struct inode *inode = mapping->host; host 1420 fs/dax.c struct inode *inode = mapping->host; host 1476 fs/dax.c struct inode *inode = mapping->host; host 1684 fs/dax.c trace_dax_insert_pfn_mkwrite_no_entry(mapping->host, vmf, host 1700 fs/dax.c trace_dax_insert_pfn_mkwrite(mapping->host, vmf, ret); host 462 fs/ecryptfs/crypto.c ecryptfs_inode = page->mapping->host; host 530 fs/ecryptfs/crypto.c ecryptfs_inode = page->mapping->host; host 134 fs/ecryptfs/mmap.c page_virt, page->mapping->host); host 156 fs/ecryptfs/mmap.c crypt_stat->extent_size, page->mapping->host); host 183 fs/ecryptfs/mmap.c &ecryptfs_inode_to_private(page->mapping->host)->crypt_stat; host 189 fs/ecryptfs/mmap.c page->mapping->host); host 206 fs/ecryptfs/mmap.c page->mapping->host); host 237 fs/ecryptfs/mmap.c struct inode *inode = page->mapping->host; host 282 fs/ecryptfs/mmap.c &ecryptfs_inode_to_private(mapping->host)->crypt_stat; host 286 fs/ecryptfs/mmap.c page, index, 0, PAGE_SIZE, mapping->host); host 313 fs/ecryptfs/mmap.c mapping->host); host 325 fs/ecryptfs/mmap.c >= i_size_read(page->mapping->host)) { host 345 fs/ecryptfs/mmap.c if (prev_page_end_size > i_size_read(page->mapping->host)) { host 359 fs/ecryptfs/mmap.c if ((i_size_read(mapping->host) == prev_page_end_size) host 470 fs/ecryptfs/mmap.c struct inode *ecryptfs_inode = mapping->host; host 531 fs/ecryptfs/mmap.c inode = (struct inode *)mapping->host; host 21 fs/efivarfs/file.c struct inode *inode = file->f_mapping->host; host 124 fs/efivarfs/file.c struct inode *inode = file->f_mapping->host; host 135 fs/efivarfs/file.c struct inode *inode = file->f_mapping->host; host 19 fs/efs/symlink.c struct inode * inode = page->mapping->host; host 134 fs/erofs/data.c struct inode *const inode = mapping->host; host 293 fs/erofs/data.c trace_erofs_readpages(mapping->host, page, nr_pages, true); host 309 fs/erofs/data.c EROFS_I(mapping->host)->nid); host 346 fs/erofs/data.c struct inode *inode = mapping->host; host 736 fs/erofs/zdata.c sbi = EROFS_SB(page->mapping->host->i_sb); host 1335 fs/erofs/zdata.c struct inode *const inode = page->mapping->host; host 1372 fs/erofs/zdata.c struct inode *const inode = mapping->host; host 1381 fs/erofs/zdata.c trace_erofs_readpages(mapping->host, lru_to_page(pages), host 93 fs/ext2/dir.c struct inode *dir = mapping->host; host 117 fs/ext2/dir.c struct inode *dir = page->mapping->host; host 562 fs/ext2/dir.c struct inode *inode = page->mapping->host; host 35 fs/ext2/file.c struct inode *inode = iocb->ki_filp->f_mapping->host; host 52 fs/ext2/file.c struct inode *inode = file->f_mapping->host; host 153 fs/ext2/file.c struct super_block *sb = file->f_mapping->host->i_sb; host 166 fs/ext2/file.c if (IS_DAX(iocb->ki_filp->f_mapping->host)) host 175 fs/ext2/file.c if (IS_DAX(iocb->ki_filp->f_mapping->host)) host 61 fs/ext2/inode.c struct inode *inode = mapping->host; host 943 fs/ext2/inode.c struct inode *inode = mapping->host; host 964 fs/ext2/inode.c mapping->host->i_sb->s_bdev, wbc); host 371 fs/ext4/dir.c struct inode *inode = file->f_mapping->host; host 373 fs/ext4/file.c struct inode *inode = file->f_mapping->host; host 485 fs/ext4/file.c struct inode *inode = file->f_mapping->host; host 97 fs/ext4/fsync.c struct inode *inode = file->f_mapping->host; host 1176 fs/ext4/inode.c struct inode *inode = page->mapping->host; host 1270 fs/ext4/inode.c struct inode *inode = mapping->host; host 1416 fs/ext4/inode.c struct inode *inode = mapping->host; host 1524 fs/ext4/inode.c struct inode *inode = mapping->host; host 2004 fs/ext4/inode.c struct inode *inode = mapping->host; host 2129 fs/ext4/inode.c struct inode *inode = page->mapping->host; host 2727 fs/ext4/inode.c struct inode *inode = mapping->host; host 2729 fs/ext4/inode.c struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb); host 2763 fs/ext4/inode.c if (unlikely(ext4_forced_shutdown(EXT4_SB(mapping->host->i_sb)) || host 2967 fs/ext4/inode.c struct inode *inode = mapping->host; host 2968 fs/ext4/inode.c struct ext4_sb_info *sbi = EXT4_SB(mapping->host->i_sb); host 3037 fs/ext4/inode.c struct inode *inode = mapping->host; host 3139 fs/ext4/inode.c struct inode *inode = page->mapping->host; host 3159 fs/ext4/inode.c struct inode *inode = mapping->host; host 3271 fs/ext4/inode.c struct inode *inode = mapping->host; host 3327 fs/ext4/inode.c struct inode *inode = page->mapping->host; host 3345 fs/ext4/inode.c struct inode *inode = mapping->host; host 3369 fs/ext4/inode.c journal_t *journal = EXT4_JOURNAL(page->mapping->host); host 3392 fs/ext4/inode.c journal_t *journal = EXT4_JOURNAL(page->mapping->host); host 3679 fs/ext4/inode.c struct inode *inode = file->f_mapping->host; host 3836 fs/ext4/inode.c struct inode *inode = mapping->host; host 3866 fs/ext4/inode.c struct inode *inode = file->f_mapping->host; host 4008 fs/ext4/inode.c struct inode *inode = mapping->host; host 4100 fs/ext4/inode.c struct inode *inode = mapping->host; host 4131 fs/ext4/inode.c struct inode *inode = mapping->host; host 825 fs/ext4/mballoc.c inode = page->mapping->host; host 169 fs/ext4/move_extent.c struct inode *inode = page->mapping->host; host 411 fs/ext4/page-io.c struct inode *inode = page->mapping->host; host 232 fs/ext4/readpage.c struct inode *inode = mapping->host; host 349 fs/f2fs/checkpoint.c trace_f2fs_writepages(mapping->host, wbc, META); host 358 fs/f2fs/checkpoint.c trace_f2fs_writepages(mapping->host, wbc, META); host 43 fs/f2fs/data.c inode = mapping->host; host 61 fs/f2fs/data.c struct inode *inode = mapping->host; host 396 fs/f2fs/data.c if (inode && inode == target->mapping->host) host 1771 fs/f2fs/data.c struct inode *inode = mapping->host; host 1815 fs/f2fs/data.c struct inode *inode = page_file_mapping(page)->host; host 1833 fs/f2fs/data.c struct inode *inode = mapping->host; host 1847 fs/f2fs/data.c struct inode *inode = fio->page->mapping->host; host 1958 fs/f2fs/data.c struct inode *inode = fio->page->mapping->host; host 1969 fs/f2fs/data.c struct inode *inode = page->mapping->host; host 2083 fs/f2fs/data.c struct inode *inode = page->mapping->host; host 2268 fs/f2fs/data.c if (get_dirty_pages(mapping->host) <= host 2270 fs/f2fs/data.c set_inode_flag(mapping->host, FI_HOT_DATA); host 2272 fs/f2fs/data.c clear_inode_flag(mapping->host, FI_HOT_DATA); host 2392 fs/f2fs/data.c f2fs_submit_merged_write_cond(F2FS_M_SB(mapping), mapping->host, host 2422 fs/f2fs/data.c struct inode *inode = mapping->host; host 2450 fs/f2fs/data.c trace_f2fs_writepages(mapping->host, wbc, DATA); host 2482 fs/f2fs/data.c trace_f2fs_writepages(mapping->host, wbc, DATA); host 2489 fs/f2fs/data.c struct inode *inode = mapping->host; host 2498 fs/f2fs/data.c struct inode *inode = mapping->host; host 2519 fs/f2fs/data.c struct inode *inode = page->mapping->host; host 2605 fs/f2fs/data.c struct inode *inode = mapping->host; host 2718 fs/f2fs/data.c struct inode *inode = page->mapping->host; host 2814 fs/f2fs/data.c struct inode *inode = mapping->host; host 2889 fs/f2fs/data.c struct inode *inode = page->mapping->host; host 2932 fs/f2fs/data.c struct inode *inode = page_file_mapping(page)->host; host 2963 fs/f2fs/data.c struct inode *inode = mapping->host; host 2982 fs/f2fs/data.c struct f2fs_inode_info *fi = F2FS_I(mapping->host); host 3037 fs/f2fs/data.c struct inode *inode = mapping->host; host 1509 fs/f2fs/f2fs.h return F2FS_I_SB(mapping->host); host 210 fs/f2fs/file.c struct inode *inode = file->f_mapping->host; host 381 fs/f2fs/file.c struct inode *inode = file->f_mapping->host; host 462 fs/f2fs/file.c struct inode *inode = file->f_mapping->host; host 45 fs/f2fs/inline.c struct inode *inode = page->mapping->host; host 1996 fs/f2fs/node.c trace_f2fs_writepages(mapping->host, wbc, NODE); host 2010 fs/f2fs/node.c trace_f2fs_writepages(mapping->host, wbc, NODE); host 3011 fs/f2fs/segment.c struct inode *inode = fio->page->mapping->host; host 3028 fs/f2fs/segment.c struct inode *inode = fio->page->mapping->host; host 55 fs/f2fs/trace.c struct inode *inode = page->mapping->host; host 98 fs/f2fs/trace.c inode = fio->page->mapping->host; host 196 fs/fat/file.c struct inode *inode = filp->f_mapping->host; host 276 fs/fat/file.c struct inode *inode = file->f_mapping->host; host 220 fs/fat/inode.c struct inode *inode = mapping->host; host 237 fs/fat/inode.c &MSDOS_I(mapping->host)->mmu_private); host 247 fs/fat/inode.c struct inode *inode = mapping->host; host 264 fs/fat/inode.c struct inode *inode = mapping->host; host 325 fs/fat/inode.c down_read(&MSDOS_I(mapping->host)->truncate_lock); host 327 fs/fat/inode.c up_read(&MSDOS_I(mapping->host)->truncate_lock); host 68 fs/freevxfs/vxfs_immed.c struct vxfs_inode_info *vip = VXFS_INO(pp->mapping->host); host 1297 fs/fuse/dir.c struct inode *inode = file->f_mapping->host; host 1321 fs/fuse/dir.c struct fuse_conn *fc = get_fuse_conn(file->f_mapping->host); host 1333 fs/fuse/dir.c struct fuse_conn *fc = get_fuse_conn(file->f_mapping->host); host 1765 fs/fuse/dir.c int err = fuse_readlink_page(page->mapping->host, page); host 484 fs/fuse/file.c struct inode *inode = file->f_mapping->host; host 504 fs/fuse/file.c struct inode *inode = file->f_mapping->host; host 783 fs/fuse/file.c struct inode *inode = page->mapping->host; host 827 fs/fuse/file.c struct inode *inode = page->mapping->host; host 855 fs/fuse/file.c struct inode *inode = mapping->host; host 968 fs/fuse/file.c struct inode *inode = mapping->host; host 1000 fs/fuse/file.c struct inode *inode = iocb->ki_filp->f_mapping->host; host 1144 fs/fuse/file.c struct fuse_conn *fc = get_fuse_conn(mapping->host); host 1217 fs/fuse/file.c struct inode *inode = mapping->host; host 1274 fs/fuse/file.c struct inode *inode = mapping->host; host 1280 fs/fuse/file.c err = fuse_update_attributes(mapping->host, file); host 1427 fs/fuse/file.c struct inode *inode = file->f_mapping->host; host 1817 fs/fuse/file.c struct inode *inode = mapping->host; host 1881 fs/fuse/file.c if (fuse_page_is_writeback(page->mapping->host, page->index)) { host 2128 fs/fuse/file.c struct inode *inode = mapping->host; host 2183 fs/fuse/file.c fuse_wait_on_page_writeback(mapping->host, page->index); host 2191 fs/fuse/file.c fsize = i_size_read(mapping->host); host 2216 fs/fuse/file.c struct inode *inode = page->mapping->host; host 2244 fs/fuse/file.c struct inode *inode = page->mapping->host; host 2472 fs/fuse/file.c struct inode *inode = mapping->host; host 2502 fs/fuse/file.c struct inode *inode = file->f_mapping->host; host 3044 fs/fuse/file.c struct inode *inode = file->f_mapping->host; host 3077 fs/fuse/file.c inode = file->f_mapping->host; host 91 fs/gfs2/aops.c struct inode *inode = page->mapping->host; host 124 fs/gfs2/aops.c struct inode * const inode = page->mapping->host; host 157 fs/gfs2/aops.c struct inode *inode = page->mapping->host; host 183 fs/gfs2/aops.c struct inode *inode = page->mapping->host; host 244 fs/gfs2/aops.c struct inode *inode = mapping->host; host 417 fs/gfs2/aops.c struct gfs2_inode *ip = GFS2_I(mapping->host); host 418 fs/gfs2/aops.c struct gfs2_sbd *sdp = GFS2_SB(mapping->host); host 485 fs/gfs2/aops.c struct gfs2_inode *ip = GFS2_I(page->mapping->host); host 486 fs/gfs2/aops.c struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); host 490 fs/gfs2/aops.c if (i_blocksize(page->mapping->host) == PAGE_SIZE && host 519 fs/gfs2/aops.c struct gfs2_inode *ip = GFS2_I(mapping->host); host 602 fs/gfs2/aops.c struct inode *inode = mapping->host; host 690 fs/gfs2/aops.c struct gfs2_inode *ip = GFS2_I(mapping->host); host 732 fs/gfs2/aops.c struct gfs2_sbd *sdp = GFS2_SB(page->mapping->host); host 58 fs/gfs2/file.c struct gfs2_inode *ip = GFS2_I(file->f_mapping->host); host 105 fs/gfs2/file.c struct inode *dir = file->f_mapping->host; host 424 fs/gfs2/file.c if (gfs2_iomap_get_alloc(page->mapping->host, pos, length, &iomap)) host 574 fs/gfs2/file.c struct gfs2_inode *ip = GFS2_I(file->f_mapping->host); host 713 fs/gfs2/file.c struct inode *inode = mapping->host; host 749 fs/gfs2/file.c struct gfs2_inode *ip = GFS2_I(file->f_mapping->host); host 773 fs/gfs2/file.c struct inode *inode = file->f_mapping->host; host 1090 fs/gfs2/file.c if ((file->f_flags & O_DSYNC) || IS_SYNC(file->f_mapping->host)) host 1162 fs/gfs2/file.c struct gfs2_inode *ip = GFS2_I(out->f_mapping->host); host 1186 fs/gfs2/file.c struct gfs2_inode *ip = GFS2_I(file->f_mapping->host); host 1187 fs/gfs2/file.c struct gfs2_sbd *sdp = GFS2_SB(file->f_mapping->host); host 855 fs/gfs2/glock.c mapping->host = s->s_bdev->bd_inode; host 2053 fs/gfs2/inode.c struct inode *inode = file->f_mapping->host; host 2072 fs/gfs2/inode.c struct inode *inode = file->f_mapping->host; host 42 fs/gfs2/meta_io.h struct inode *inode = mapping->host; host 117 fs/gfs2/ops_fstype.c mapping->host = sb->s_bdev->bd_inode; host 506 fs/gfs2/super.c struct backing_dev_info *bdi = inode_to_bdi(metamapping->host); host 43 fs/hfs/inode.c struct inode *inode = mapping->host; host 60 fs/hfs/inode.c &HFS_I(mapping->host)->phys_size); host 74 fs/hfs/inode.c struct inode *inode = page->mapping->host; host 133 fs/hfs/inode.c struct inode *inode = mapping->host; host 657 fs/hfs/inode.c struct inode *inode = filp->f_mapping->host; host 37 fs/hfsplus/inode.c struct inode *inode = mapping->host; host 54 fs/hfsplus/inode.c &HFSPLUS_I(mapping->host)->phys_size); host 68 fs/hfsplus/inode.c struct inode *inode = page->mapping->host; host 130 fs/hfsplus/inode.c struct inode *inode = mapping->host; host 296 fs/hfsplus/inode.c struct inode *inode = file->f_mapping->host; host 368 fs/hostfs/hostfs_kern.c struct inode *inode = file->f_mapping->host; host 404 fs/hostfs/hostfs_kern.c struct inode *inode = mapping->host; host 480 fs/hostfs/hostfs_kern.c struct inode *inode = mapping->host; host 25 fs/hpfs/file.c struct inode *inode = file->f_mapping->host; host 142 fs/hpfs/file.c struct inode *inode = mapping->host; host 163 fs/hpfs/file.c &hpfs_i(mapping->host)->mmu_private); host 174 fs/hpfs/file.c struct inode *inode = mapping->host; host 481 fs/hpfs/namei.c struct inode *i = page->mapping->host; host 275 fs/hugetlbfs/inode.c struct inode *inode = mapping->host; host 911 fs/hugetlbfs/inode.c struct inode *inode = mapping->host; host 181 fs/inode.c mapping->host = inode; host 124 fs/iomap/buffered-io.c struct inode *inode = page->mapping->host; host 292 fs/iomap/buffered-io.c struct inode *inode = page->mapping->host; host 393 fs/iomap/buffered-io.c ret = iomap_apply(mapping->host, pos, length, 0, ops, host 433 fs/iomap/buffered-io.c struct inode *inode = page->mapping->host; host 652 fs/iomap/buffered-io.c __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); host 822 fs/iomap/buffered-io.c struct inode *inode = iocb->ki_filp->f_mapping->host; host 133 fs/iomap/fiemap.c struct inode *inode = mapping->host; host 143 fs/iomap/swapfile.c struct inode *inode = mapping->host; host 695 fs/isofs/rock.c struct inode *inode = page->mapping->host; host 1004 fs/jbd2/commit.c if (mapping && !sb_is_blkdev_sb(mapping->host->i_sb)) { host 34 fs/jffs2/file.c struct inode *inode = filp->f_mapping->host; host 122 fs/jffs2/file.c struct jffs2_inode_info *f = JFFS2_INODE_INFO(pg->mapping->host); host 126 fs/jffs2/file.c ret = jffs2_do_readpage_unlock(pg->mapping->host, pg); host 136 fs/jffs2/file.c struct inode *inode = mapping->host; host 242 fs/jffs2/file.c struct inode *inode = mapping->host; host 21 fs/jfs/file.c struct inode *inode = file->f_mapping->host; host 307 fs/jfs/inode.c struct inode *inode = mapping->host; host 338 fs/jfs/inode.c struct inode *inode = file->f_mapping->host; host 106 fs/jfs/jfs_metapage.c l2mp_blocks = L2PSIZE - page->mapping->host->i_blkbits; host 118 fs/jfs/jfs_metapage.c int l2mp_blocks = L2PSIZE - page->mapping->host->i_blkbits; host 339 fs/jfs/jfs_metapage.c struct inode *inode = page->mapping->host; host 473 fs/jfs/jfs_metapage.c struct inode *inode = page->mapping->host; host 500 fs/libfs.c struct inode *inode = page->mapping->host; host 998 fs/libfs.c struct inode *inode = file->f_mapping->host; host 1040 fs/libfs.c struct inode *inode = file->f_mapping->host; host 56 fs/lockd/clntlock.c struct nlm_host *host; host 64 fs/lockd/clntlock.c host = nlmclnt_lookup_host(nlm_init->address, nlm_init->addrlen, host 68 fs/lockd/clntlock.c if (host == NULL) host 70 fs/lockd/clntlock.c if (host->h_rpcclnt == NULL && nlm_bind_host(host) == NULL) host 73 fs/lockd/clntlock.c host->h_nlmclnt_ops = nlm_init->nlmclnt_ops; host 74 fs/lockd/clntlock.c return host; host 76 fs/lockd/clntlock.c nlmclnt_release_host(host); host 88 fs/lockd/clntlock.c void nlmclnt_done(struct nlm_host *host) host 90 fs/lockd/clntlock.c struct net *net = host->net; host 92 fs/lockd/clntlock.c nlmclnt_release_host(host); host 100 fs/lockd/clntlock.c struct nlm_wait *nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl) host 106 fs/lockd/clntlock.c block->b_host = host; host 214 fs/lockd/clntlock.c nlmclnt_recovery(struct nlm_host *host) host 218 fs/lockd/clntlock.c if (!host->h_reclaiming++) { host 219 fs/lockd/clntlock.c nlm_get_host(host); host 220 fs/lockd/clntlock.c task = kthread_run(reclaimer, host, "%s-reclaim", host->h_name); host 224 fs/lockd/clntlock.c "(%ld)\n", host->h_name, PTR_ERR(task)); host 231 fs/lockd/clntlock.c struct nlm_host *host = (struct nlm_host *) ptr; host 236 fs/lockd/clntlock.c struct net *net = host->net; host 244 fs/lockd/clntlock.c down_write(&host->h_rwsem); host 247 fs/lockd/clntlock.c dprintk("lockd: reclaiming locks for host %s\n", host->h_name); host 250 fs/lockd/clntlock.c nsmstate = host->h_nsmstate; host 255 fs/lockd/clntlock.c host->h_nextrebind = jiffies; host 256 fs/lockd/clntlock.c nlm_rebind_host(host); host 259 fs/lockd/clntlock.c list_splice_init(&host->h_granted, &host->h_reclaim); host 260 fs/lockd/clntlock.c list_for_each_entry_safe(fl, next, &host->h_reclaim, fl_u.nfs_fl.list) { host 271 fs/lockd/clntlock.c if (nlmclnt_reclaim(host, fl, req) != 0) host 273 fs/lockd/clntlock.c list_add_tail(&fl->fl_u.nfs_fl.list, &host->h_granted); host 274 fs/lockd/clntlock.c if (host->h_nsmstate != nsmstate) { host 280 fs/lockd/clntlock.c host->h_reclaiming = 0; host 281 fs/lockd/clntlock.c up_write(&host->h_rwsem); host 282 fs/lockd/clntlock.c dprintk("NLM: done reclaiming locks for host %s\n", host->h_name); host 287 fs/lockd/clntlock.c if (block->b_host == host) { host 295 fs/lockd/clntlock.c nlmclnt_release_host(host); host 31 fs/lockd/clntproc.c static void nlmclnt_locks_init_private(struct file_lock *fl, struct nlm_host *host); host 59 fs/lockd/clntproc.c if (!refcount_dec_and_lock(&lockowner->count, &lockowner->host->h_lock)) host 62 fs/lockd/clntproc.c spin_unlock(&lockowner->host->h_lock); host 63 fs/lockd/clntproc.c nlmclnt_release_host(lockowner->host); host 67 fs/lockd/clntproc.c static inline int nlm_pidbusy(struct nlm_host *host, uint32_t pid) host 70 fs/lockd/clntproc.c list_for_each_entry(lockowner, &host->h_lockowners, list) { host 77 fs/lockd/clntproc.c static inline uint32_t __nlm_alloc_pid(struct nlm_host *host) host 81 fs/lockd/clntproc.c res = host->h_pidcount++; host 82 fs/lockd/clntproc.c } while (nlm_pidbusy(host, res) < 0); host 86 fs/lockd/clntproc.c static struct nlm_lockowner *__nlmclnt_find_lockowner(struct nlm_host *host, fl_owner_t owner) host 89 fs/lockd/clntproc.c list_for_each_entry(lockowner, &host->h_lockowners, list) { host 97 fs/lockd/clntproc.c static struct nlm_lockowner *nlmclnt_find_lockowner(struct nlm_host *host, fl_owner_t owner) host 101 fs/lockd/clntproc.c spin_lock(&host->h_lock); host 102 fs/lockd/clntproc.c res = __nlmclnt_find_lockowner(host, owner); host 104 fs/lockd/clntproc.c spin_unlock(&host->h_lock); host 106 fs/lockd/clntproc.c spin_lock(&host->h_lock); host 107 fs/lockd/clntproc.c res = __nlmclnt_find_lockowner(host, owner); host 112 fs/lockd/clntproc.c new->pid = __nlm_alloc_pid(host); host 113 fs/lockd/clntproc.c new->host = nlm_get_host(host); host 114 fs/lockd/clntproc.c list_add(&new->list, &host->h_lockowners); host 118 fs/lockd/clntproc.c spin_unlock(&host->h_lock); host 158 fs/lockd/clntproc.c int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl, void *data) host 162 fs/lockd/clntproc.c const struct nlmclnt_operations *nlmclnt_ops = host->h_nlmclnt_ops; host 164 fs/lockd/clntproc.c call = nlm_alloc_call(host); host 171 fs/lockd/clntproc.c nlmclnt_locks_init_private(fl, host); host 202 fs/lockd/clntproc.c struct nlm_rqst *nlm_alloc_call(struct nlm_host *host) host 212 fs/lockd/clntproc.c call->a_host = nlm_get_host(host); host 263 fs/lockd/clntproc.c struct nlm_host *host = req->a_host; host 275 fs/lockd/clntproc.c (int)proc, host->h_name); host 278 fs/lockd/clntproc.c if (host->h_reclaiming && !argp->reclaim) host 282 fs/lockd/clntproc.c if ((clnt = nlm_bind_host(host)) == NULL) host 296 fs/lockd/clntproc.c nlm_rebind_host(host); host 316 fs/lockd/clntproc.c wake_up_all(&host->h_gracewait); host 330 fs/lockd/clntproc.c status = nlm_wait_on_grace(&host->h_gracewait); host 341 fs/lockd/clntproc.c struct nlm_host *host = req->a_host; host 351 fs/lockd/clntproc.c (int)proc, host->h_name); host 354 fs/lockd/clntproc.c clnt = nlm_bind_host(host); host 459 fs/lockd/clntproc.c spin_lock(&fl->fl_u.nfs_fl.owner->host->h_lock); host 462 fs/lockd/clntproc.c list_add_tail(&new->fl_u.nfs_fl.list, &fl->fl_u.nfs_fl.owner->host->h_granted); host 463 fs/lockd/clntproc.c spin_unlock(&fl->fl_u.nfs_fl.owner->host->h_lock); host 468 fs/lockd/clntproc.c spin_lock(&fl->fl_u.nfs_fl.owner->host->h_lock); host 470 fs/lockd/clntproc.c spin_unlock(&fl->fl_u.nfs_fl.owner->host->h_lock); host 479 fs/lockd/clntproc.c static void nlmclnt_locks_init_private(struct file_lock *fl, struct nlm_host *host) host 482 fs/lockd/clntproc.c fl->fl_u.nfs_fl.owner = nlmclnt_find_lockowner(host, fl->fl_owner); host 516 fs/lockd/clntproc.c struct nlm_host *host = req->a_host; host 523 fs/lockd/clntproc.c if (nsm_monitor(host) < 0) host 533 fs/lockd/clntproc.c block = nlmclnt_prepare_block(host, fl); host 542 fs/lockd/clntproc.c fl->fl_u.nfs_fl.state = host->h_state; host 565 fs/lockd/clntproc.c if (nlmclnt_cancel(host, req->a_args.block, fl) == 0) host 570 fs/lockd/clntproc.c down_read(&host->h_rwsem); host 572 fs/lockd/clntproc.c if (fl->fl_u.nfs_fl.state != host->h_state) { host 573 fs/lockd/clntproc.c up_read(&host->h_rwsem); host 580 fs/lockd/clntproc.c up_read(&host->h_rwsem); host 607 fs/lockd/clntproc.c down_read(&host->h_rwsem); host 609 fs/lockd/clntproc.c up_read(&host->h_rwsem); host 620 fs/lockd/clntproc.c nlmclnt_reclaim(struct nlm_host *host, struct file_lock *fl, host 628 fs/lockd/clntproc.c req->a_host = host; host 663 fs/lockd/clntproc.c struct nlm_host *host = req->a_host; host 674 fs/lockd/clntproc.c down_read(&host->h_rwsem); host 676 fs/lockd/clntproc.c up_read(&host->h_rwsem); host 758 fs/lockd/clntproc.c static int nlmclnt_cancel(struct nlm_host *host, int block, struct file_lock *fl) host 766 fs/lockd/clntproc.c req = nlm_alloc_call(host); host 37 fs/lockd/host.c #define for_each_host(host, chain, table) \ host 40 fs/lockd/host.c hlist_for_each_entry((host), (chain), h_hash) host 42 fs/lockd/host.c #define for_each_host_safe(host, next, chain, table) \ host 45 fs/lockd/host.c hlist_for_each_entry_safe((host), (next), \ host 114 fs/lockd/host.c struct nlm_host *host = NULL; host 120 fs/lockd/host.c host = NULL; host 130 fs/lockd/host.c host = kmalloc(sizeof(*host), GFP_KERNEL); host 131 fs/lockd/host.c if (unlikely(host == NULL)) { host 137 fs/lockd/host.c memcpy(nlm_addr(host), ni->sap, ni->salen); host 138 fs/lockd/host.c host->h_addrlen = ni->salen; host 139 fs/lockd/host.c rpc_set_port(nlm_addr(host), 0); host 140 fs/lockd/host.c host->h_srcaddrlen = 0; host 142 fs/lockd/host.c host->h_rpcclnt = NULL; host 143 fs/lockd/host.c host->h_name = nsm->sm_name; host 144 fs/lockd/host.c host->h_version = ni->version; host 145 fs/lockd/host.c host->h_proto = ni->protocol; host 146 fs/lockd/host.c host->h_reclaiming = 0; host 147 fs/lockd/host.c host->h_server = ni->server; host 148 fs/lockd/host.c host->h_noresvport = ni->noresvport; host 149 fs/lockd/host.c host->h_inuse = 0; host 150 fs/lockd/host.c init_waitqueue_head(&host->h_gracewait); host 151 fs/lockd/host.c init_rwsem(&host->h_rwsem); host 152 fs/lockd/host.c host->h_state = 0; host 153 fs/lockd/host.c host->h_nsmstate = 0; host 154 fs/lockd/host.c host->h_pidcount = 0; host 155 fs/lockd/host.c refcount_set(&host->h_count, 1); host 156 fs/lockd/host.c mutex_init(&host->h_mutex); host 157 fs/lockd/host.c host->h_nextrebind = now + NLM_HOST_REBIND; host 158 fs/lockd/host.c host->h_expires = now + NLM_HOST_EXPIRE; host 159 fs/lockd/host.c INIT_LIST_HEAD(&host->h_lockowners); host 160 fs/lockd/host.c spin_lock_init(&host->h_lock); host 161 fs/lockd/host.c INIT_LIST_HEAD(&host->h_granted); host 162 fs/lockd/host.c INIT_LIST_HEAD(&host->h_reclaim); host 163 fs/lockd/host.c host->h_nsmhandle = nsm; host 164 fs/lockd/host.c host->h_addrbuf = nsm->sm_addrbuf; host 165 fs/lockd/host.c host->net = ni->net; host 166 fs/lockd/host.c host->h_cred = get_cred(ni->cred), host 167 fs/lockd/host.c strlcpy(host->nodename, utsname()->nodename, sizeof(host->nodename)); host 170 fs/lockd/host.c return host; host 178 fs/lockd/host.c static void nlm_destroy_host_locked(struct nlm_host *host) host 181 fs/lockd/host.c struct lockd_net *ln = net_generic(host->net, lockd_net_id); host 183 fs/lockd/host.c dprintk("lockd: destroy host %s\n", host->h_name); host 185 fs/lockd/host.c hlist_del_init(&host->h_hash); host 187 fs/lockd/host.c nsm_unmonitor(host); host 188 fs/lockd/host.c nsm_release(host->h_nsmhandle); host 190 fs/lockd/host.c clnt = host->h_rpcclnt; host 193 fs/lockd/host.c put_cred(host->h_cred); host 194 fs/lockd/host.c kfree(host); host 238 fs/lockd/host.c struct nlm_host *host; host 249 fs/lockd/host.c hlist_for_each_entry(host, chain, h_hash) { host 250 fs/lockd/host.c if (host->net != net) host 252 fs/lockd/host.c if (!rpc_cmp_addr(nlm_addr(host), sap)) host 257 fs/lockd/host.c nsm = host->h_nsmhandle; host 259 fs/lockd/host.c if (host->h_proto != protocol) host 261 fs/lockd/host.c if (host->h_version != version) host 264 fs/lockd/host.c nlm_get_host(host); host 266 fs/lockd/host.c host->h_name, host->h_addrbuf); host 270 fs/lockd/host.c host = nlm_alloc_host(&ni, nsm); host 271 fs/lockd/host.c if (unlikely(host == NULL)) host 274 fs/lockd/host.c hlist_add_head(&host->h_hash, chain); host 279 fs/lockd/host.c host->h_name, host->h_addrbuf); host 283 fs/lockd/host.c return host; host 291 fs/lockd/host.c void nlmclnt_release_host(struct nlm_host *host) host 293 fs/lockd/host.c if (host == NULL) host 296 fs/lockd/host.c dprintk("lockd: release client host %s\n", host->h_name); host 298 fs/lockd/host.c WARN_ON_ONCE(host->h_server); host 300 fs/lockd/host.c if (refcount_dec_and_mutex_lock(&host->h_count, &nlm_host_mutex)) { host 301 fs/lockd/host.c WARN_ON_ONCE(!list_empty(&host->h_lockowners)); host 302 fs/lockd/host.c WARN_ON_ONCE(!list_empty(&host->h_granted)); host 303 fs/lockd/host.c WARN_ON_ONCE(!list_empty(&host->h_reclaim)); host 305 fs/lockd/host.c nlm_destroy_host_locked(host); host 333 fs/lockd/host.c struct nlm_host *host = NULL; host 360 fs/lockd/host.c hlist_for_each_entry(host, chain, h_hash) { host 361 fs/lockd/host.c if (host->net != net) host 363 fs/lockd/host.c if (!rpc_cmp_addr(nlm_addr(host), ni.sap)) host 368 fs/lockd/host.c nsm = host->h_nsmhandle; host 370 fs/lockd/host.c if (host->h_proto != ni.protocol) host 372 fs/lockd/host.c if (host->h_version != ni.version) host 374 fs/lockd/host.c if (!rpc_cmp_addr(nlm_srcaddr(host), src_sap)) host 378 fs/lockd/host.c hlist_del(&host->h_hash); host 379 fs/lockd/host.c hlist_add_head(&host->h_hash, chain); host 381 fs/lockd/host.c nlm_get_host(host); host 383 fs/lockd/host.c __func__, host->h_name, host->h_addrbuf); host 387 fs/lockd/host.c host = nlm_alloc_host(&ni, nsm); host 388 fs/lockd/host.c if (unlikely(host == NULL)) host 391 fs/lockd/host.c memcpy(nlm_srcaddr(host), src_sap, src_len); host 392 fs/lockd/host.c host->h_srcaddrlen = src_len; host 393 fs/lockd/host.c hlist_add_head(&host->h_hash, chain); host 397 fs/lockd/host.c refcount_inc(&host->h_count); host 400 fs/lockd/host.c __func__, host->h_name, host->h_addrbuf); host 404 fs/lockd/host.c return host; host 413 fs/lockd/host.c void nlmsvc_release_host(struct nlm_host *host) host 415 fs/lockd/host.c if (host == NULL) host 418 fs/lockd/host.c dprintk("lockd: release server host %s\n", host->h_name); host 420 fs/lockd/host.c WARN_ON_ONCE(!host->h_server); host 421 fs/lockd/host.c refcount_dec(&host->h_count); host 428 fs/lockd/host.c nlm_bind_host(struct nlm_host *host) host 433 fs/lockd/host.c host->h_name, host->h_addrbuf); host 436 fs/lockd/host.c mutex_lock(&host->h_mutex); host 441 fs/lockd/host.c if ((clnt = host->h_rpcclnt) != NULL) { host 442 fs/lockd/host.c if (time_after_eq(jiffies, host->h_nextrebind)) { host 444 fs/lockd/host.c host->h_nextrebind = jiffies + NLM_HOST_REBIND; host 446 fs/lockd/host.c host->h_nextrebind - jiffies); host 457 fs/lockd/host.c .net = host->net, host 458 fs/lockd/host.c .protocol = host->h_proto, host 459 fs/lockd/host.c .address = nlm_addr(host), host 460 fs/lockd/host.c .addrsize = host->h_addrlen, host 462 fs/lockd/host.c .servername = host->h_name, host 464 fs/lockd/host.c .version = host->h_version, host 468 fs/lockd/host.c .cred = host->h_cred, host 476 fs/lockd/host.c if (!host->h_server) host 478 fs/lockd/host.c if (host->h_noresvport) host 480 fs/lockd/host.c if (host->h_srcaddrlen) host 481 fs/lockd/host.c args.saddress = nlm_srcaddr(host); host 485 fs/lockd/host.c host->h_rpcclnt = clnt; host 487 fs/lockd/host.c printk("lockd: couldn't create RPC handle for %s\n", host->h_name); host 492 fs/lockd/host.c mutex_unlock(&host->h_mutex); host 500 fs/lockd/host.c nlm_rebind_host(struct nlm_host *host) host 502 fs/lockd/host.c dprintk("lockd: rebind host %s\n", host->h_name); host 503 fs/lockd/host.c if (host->h_rpcclnt && time_after_eq(jiffies, host->h_nextrebind)) { host 504 fs/lockd/host.c rpc_force_rebind(host->h_rpcclnt); host 505 fs/lockd/host.c host->h_nextrebind = jiffies + NLM_HOST_REBIND; host 512 fs/lockd/host.c struct nlm_host * nlm_get_host(struct nlm_host *host) host 514 fs/lockd/host.c if (host) { host 515 fs/lockd/host.c dprintk("lockd: get host %s\n", host->h_name); host 516 fs/lockd/host.c refcount_inc(&host->h_count); host 517 fs/lockd/host.c host->h_expires = jiffies + NLM_HOST_EXPIRE; host 519 fs/lockd/host.c return host; host 526 fs/lockd/host.c struct nlm_host *host; host 530 fs/lockd/host.c for_each_host(host, chain, cache) { host 531 fs/lockd/host.c if (host->h_nsmhandle == nsm host 532 fs/lockd/host.c && host->h_nsmstate != info->state) { host 533 fs/lockd/host.c host->h_nsmstate = info->state; host 534 fs/lockd/host.c host->h_state++; host 536 fs/lockd/host.c nlm_get_host(host); host 538 fs/lockd/host.c return host; host 557 fs/lockd/host.c struct nlm_host *host; host 568 fs/lockd/host.c while ((host = next_host_state(nlm_server_hosts, nsm, info)) != NULL) { host 569 fs/lockd/host.c nlmsvc_free_host_resources(host); host 570 fs/lockd/host.c nlmsvc_release_host(host); host 572 fs/lockd/host.c while ((host = next_host_state(nlm_client_hosts, nsm, info)) != NULL) { host 573 fs/lockd/host.c nlmclnt_recovery(host); host 574 fs/lockd/host.c nlmclnt_release_host(host); host 583 fs/lockd/host.c struct nlm_host *host; host 601 fs/lockd/host.c for_each_host(host, chain, nlm_server_hosts) { host 602 fs/lockd/host.c if (net && host->net != net) host 605 fs/lockd/host.c host->h_name, refcount_read(&host->h_count), host 606 fs/lockd/host.c host->h_inuse, host->h_expires, host->net->ns.inum); host 614 fs/lockd/host.c struct nlm_host *host; host 621 fs/lockd/host.c for_each_host(host, chain, nlm_server_hosts) { host 622 fs/lockd/host.c if (net && host->net != net) host 624 fs/lockd/host.c host->h_expires = jiffies - 1; host 625 fs/lockd/host.c if (host->h_rpcclnt) { host 626 fs/lockd/host.c rpc_shutdown_client(host->h_rpcclnt); host 627 fs/lockd/host.c host->h_rpcclnt = NULL; host 658 fs/lockd/host.c struct nlm_host *host; host 662 fs/lockd/host.c for_each_host(host, chain, nlm_server_hosts) { host 663 fs/lockd/host.c if (net && host->net != net) host 665 fs/lockd/host.c host->h_inuse = 0; host 671 fs/lockd/host.c for_each_host_safe(host, next, chain, nlm_server_hosts) { host 672 fs/lockd/host.c if (net && host->net != net) host 674 fs/lockd/host.c if (host->h_inuse || time_before(jiffies, host->h_expires)) { host 677 fs/lockd/host.c host->h_name, refcount_read(&host->h_count), host 678 fs/lockd/host.c host->h_inuse, host->h_expires, host 679 fs/lockd/host.c host->net->ns.inum); host 682 fs/lockd/host.c if (refcount_dec_if_one(&host->h_count)) host 683 fs/lockd/host.c nlm_destroy_host_locked(host); host 92 fs/lockd/mon.c const struct nlm_host *host) host 102 fs/lockd/mon.c .nodename = host->nodename, host 111 fs/lockd/mon.c clnt = nsm_create(host->net, host->nodename); host 115 fs/lockd/mon.c host->net->ns.inum); host 148 fs/lockd/mon.c int nsm_monitor(const struct nlm_host *host) host 150 fs/lockd/mon.c struct nsm_handle *nsm = host->h_nsmhandle; host 165 fs/lockd/mon.c status = nsm_mon_unmon(nsm, NSMPROC_MON, &res, host); host 189 fs/lockd/mon.c void nsm_unmonitor(const struct nlm_host *host) host 191 fs/lockd/mon.c struct nsm_handle *nsm = host->h_nsmhandle; host 199 fs/lockd/mon.c status = nsm_mon_unmon(nsm, NSMPROC_UNMON, &res, host); host 26 fs/lockd/svc4proc.c struct nlm_host *host = NULL; host 36 fs/lockd/svc4proc.c if (!(host = nlmsvc_lookup_host(rqstp, lock->caller, lock->len)) host 37 fs/lockd/svc4proc.c || (argp->monitor && nsm_monitor(host) < 0)) host 39 fs/lockd/svc4proc.c *hostp = host; host 51 fs/lockd/svc4proc.c nlmsvc_locks_init_private(&lock->fl, host, (pid_t)lock->svid); host 54 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 62 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 85 fs/lockd/svc4proc.c struct nlm_host *host; host 93 fs/lockd/svc4proc.c if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) host 97 fs/lockd/svc4proc.c resp->status = nlmsvc_testlock(rqstp, file, host, &argp->lock, &resp->lock, &resp->cookie); host 104 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 119 fs/lockd/svc4proc.c struct nlm_host *host; host 128 fs/lockd/svc4proc.c if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) host 138 fs/lockd/svc4proc.c if (host->h_nsmstate && host->h_nsmstate != argp->state) { host 144 fs/lockd/svc4proc.c resp->status = nlmsvc_lock(rqstp, file, host, &argp->lock, host 153 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 168 fs/lockd/svc4proc.c struct nlm_host *host; host 182 fs/lockd/svc4proc.c if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) host 190 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 208 fs/lockd/svc4proc.c struct nlm_host *host; host 222 fs/lockd/svc4proc.c if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) host 230 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 292 fs/lockd/svc4proc.c struct nlm_host *host; host 296 fs/lockd/svc4proc.c host = nlmsvc_lookup_host(rqstp, host 299 fs/lockd/svc4proc.c if (host == NULL) host 302 fs/lockd/svc4proc.c call = nlm_alloc_call(host); host 303 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 357 fs/lockd/svc4proc.c struct nlm_host *host; host 371 fs/lockd/svc4proc.c if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) host 375 fs/lockd/svc4proc.c resp->status = nlmsvc_share_file(host, file, argp); host 379 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 392 fs/lockd/svc4proc.c struct nlm_host *host; host 406 fs/lockd/svc4proc.c if ((resp->status = nlm4svc_retrieve_args(rqstp, argp, &host, &file))) host 410 fs/lockd/svc4proc.c resp->status = nlmsvc_unshare_file(host, file, argp); host 414 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 440 fs/lockd/svc4proc.c struct nlm_host *host; host 443 fs/lockd/svc4proc.c if (nlm4svc_retrieve_args(rqstp, argp, &host, NULL)) host 446 fs/lockd/svc4proc.c nlmsvc_free_host_resources(host); host 447 fs/lockd/svc4proc.c nlmsvc_release_host(host); host 216 fs/lockd/svclock.c nlmsvc_create_block(struct svc_rqst *rqstp, struct nlm_host *host, host 223 fs/lockd/svclock.c call = nlm_alloc_call(host); host 247 fs/lockd/svclock.c block->b_host = host; host 311 fs/lockd/svclock.c void nlmsvc_traverse_blocks(struct nlm_host *host, host 320 fs/lockd/svclock.c if (!match(block->b_host, host)) host 344 fs/lockd/svclock.c if (!refcount_dec_and_lock(&lockowner->count, &lockowner->host->h_lock)) host 347 fs/lockd/svclock.c spin_unlock(&lockowner->host->h_lock); host 348 fs/lockd/svclock.c nlmsvc_release_host(lockowner->host); host 352 fs/lockd/svclock.c static struct nlm_lockowner *__nlmsvc_find_lockowner(struct nlm_host *host, pid_t pid) host 355 fs/lockd/svclock.c list_for_each_entry(lockowner, &host->h_lockowners, list) { host 363 fs/lockd/svclock.c static struct nlm_lockowner *nlmsvc_find_lockowner(struct nlm_host *host, pid_t pid) host 367 fs/lockd/svclock.c spin_lock(&host->h_lock); host 368 fs/lockd/svclock.c res = __nlmsvc_find_lockowner(host, pid); host 371 fs/lockd/svclock.c spin_unlock(&host->h_lock); host 373 fs/lockd/svclock.c spin_lock(&host->h_lock); host 374 fs/lockd/svclock.c res = __nlmsvc_find_lockowner(host, pid); host 380 fs/lockd/svclock.c new->host = nlm_get_host(host); host 381 fs/lockd/svclock.c list_add(&new->list, &host->h_lockowners); host 386 fs/lockd/svclock.c spin_unlock(&host->h_lock); host 414 fs/lockd/svclock.c void nlmsvc_locks_init_private(struct file_lock *fl, struct nlm_host *host, host 417 fs/lockd/svclock.c fl->fl_owner = nlmsvc_find_lockowner(host, pid); host 487 fs/lockd/svclock.c struct nlm_host *host, struct nlm_lock *lock, int wait, host 509 fs/lockd/svclock.c block = nlmsvc_create_block(rqstp, host, file, lock, cookie); host 594 fs/lockd/svclock.c struct nlm_host *host, struct nlm_lock *lock, host 55 fs/lockd/svcproc.c struct nlm_host *host = NULL; host 65 fs/lockd/svcproc.c if (!(host = nlmsvc_lookup_host(rqstp, lock->caller, lock->len)) host 66 fs/lockd/svcproc.c || (argp->monitor && nsm_monitor(host) < 0)) host 68 fs/lockd/svcproc.c *hostp = host; host 81 fs/lockd/svcproc.c nlmsvc_locks_init_private(&lock->fl, host, (pid_t)lock->svid); host 84 fs/lockd/svcproc.c nlmsvc_release_host(host); host 92 fs/lockd/svcproc.c nlmsvc_release_host(host); host 115 fs/lockd/svcproc.c struct nlm_host *host; host 123 fs/lockd/svcproc.c if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) host 127 fs/lockd/svcproc.c resp->status = cast_status(nlmsvc_testlock(rqstp, file, host, &argp->lock, &resp->lock, &resp->cookie)); host 135 fs/lockd/svcproc.c nlmsvc_release_host(host); host 150 fs/lockd/svcproc.c struct nlm_host *host; host 159 fs/lockd/svcproc.c if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) host 169 fs/lockd/svcproc.c if (host->h_nsmstate && host->h_nsmstate != argp->state) { host 175 fs/lockd/svcproc.c resp->status = cast_status(nlmsvc_lock(rqstp, file, host, &argp->lock, host 184 fs/lockd/svcproc.c nlmsvc_release_host(host); host 199 fs/lockd/svcproc.c struct nlm_host *host; host 214 fs/lockd/svcproc.c if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) host 222 fs/lockd/svcproc.c nlmsvc_release_host(host); host 240 fs/lockd/svcproc.c struct nlm_host *host; host 255 fs/lockd/svcproc.c if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) host 263 fs/lockd/svcproc.c nlmsvc_release_host(host); host 333 fs/lockd/svcproc.c struct nlm_host *host; host 337 fs/lockd/svcproc.c host = nlmsvc_lookup_host(rqstp, host 340 fs/lockd/svcproc.c if (host == NULL) host 343 fs/lockd/svcproc.c call = nlm_alloc_call(host); host 344 fs/lockd/svcproc.c nlmsvc_release_host(host); host 400 fs/lockd/svcproc.c struct nlm_host *host; host 414 fs/lockd/svcproc.c if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) host 418 fs/lockd/svcproc.c resp->status = cast_status(nlmsvc_share_file(host, file, argp)); host 422 fs/lockd/svcproc.c nlmsvc_release_host(host); host 435 fs/lockd/svcproc.c struct nlm_host *host; host 449 fs/lockd/svcproc.c if ((resp->status = nlmsvc_retrieve_args(rqstp, argp, &host, &file))) host 453 fs/lockd/svcproc.c resp->status = cast_status(nlmsvc_unshare_file(host, file, argp)); host 457 fs/lockd/svcproc.c nlmsvc_release_host(host); host 483 fs/lockd/svcproc.c struct nlm_host *host; host 486 fs/lockd/svcproc.c if (nlmsvc_retrieve_args(rqstp, argp, &host, NULL)) host 489 fs/lockd/svcproc.c nlmsvc_free_host_resources(host); host 490 fs/lockd/svcproc.c nlmsvc_release_host(host); host 28 fs/lockd/svcshare.c nlmsvc_share_file(struct nlm_host *host, struct nlm_file *file, host 36 fs/lockd/svcshare.c if (share->s_host == host && nlm_cmp_owner(share, oh)) host 53 fs/lockd/svcshare.c share->s_host = host; host 69 fs/lockd/svcshare.c nlmsvc_unshare_file(struct nlm_host *host, struct nlm_file *file, host 77 fs/lockd/svcshare.c if (share->s_host == host && nlm_cmp_owner(share, oh)) { host 93 fs/lockd/svcshare.c void nlmsvc_traverse_shares(struct nlm_host *host, struct nlm_file *file, host 100 fs/lockd/svcshare.c if (match(share->s_host, host)) { host 163 fs/lockd/svcsubs.c nlm_traverse_locks(struct nlm_host *host, struct nlm_file *file, host 183 fs/lockd/svcsubs.c lockhost = ((struct nlm_lockowner *)fl->fl_owner)->host; host 184 fs/lockd/svcsubs.c if (match(lockhost, host)) { host 214 fs/lockd/svcsubs.c nlm_inspect_file(struct nlm_host *host, struct nlm_file *file, nlm_host_match_fn_t match) host 216 fs/lockd/svcsubs.c nlmsvc_traverse_blocks(host, file, match); host 217 fs/lockd/svcsubs.c nlmsvc_traverse_shares(host, file, match); host 218 fs/lockd/svcsubs.c return nlm_traverse_locks(host, file, match); host 333 fs/lockd/svcsubs.c struct nlm_host *host = data; host 336 fs/lockd/svcsubs.c (host->net == hint->net)) host 337 fs/lockd/svcsubs.c host->h_inuse = 1; host 344 fs/lockd/svcsubs.c struct nlm_host *host = data; host 346 fs/lockd/svcsubs.c return host == other; host 352 fs/lockd/svcsubs.c struct nlm_host *host = data; host 354 fs/lockd/svcsubs.c if (host->h_server) { host 359 fs/lockd/svcsubs.c if (host->h_nsmhandle) host 360 fs/lockd/svcsubs.c host->h_nsmhandle->sm_sticky = 1; host 383 fs/lockd/svcsubs.c nlmsvc_free_host_resources(struct nlm_host *host) host 387 fs/lockd/svcsubs.c if (nlm_traverse_files(host, nlmsvc_same_host, NULL)) { host 390 fs/lockd/svcsubs.c host->h_name); host 438 fs/lockd/svcsubs.c nlmsvc_match_ip(void *datap, struct nlm_host *host) host 440 fs/lockd/svcsubs.c return rpc_cmp_addr(nlm_srcaddr(host), datap); host 52 fs/minix/dir.c struct inode *dir = mapping->host; host 291 fs/minix/dir.c struct inode *inode = page->mapping->host; host 415 fs/minix/dir.c struct inode *dir = page->mapping->host; host 459 fs/minix/dir.c struct inode *inode = mapping->host; host 398 fs/minix/inode.c struct inode *inode = mapping->host; host 106 fs/mpage.c struct inode *inode = page->mapping->host; host 159 fs/mpage.c struct inode *inode = page->mapping->host; host 502 fs/mpage.c struct inode *inode = page->mapping->host; host 550 fs/nfs/client.c struct nlm_host *host; host 578 fs/nfs/client.c host = nlmclnt_init(&nlm_init); host 579 fs/nfs/client.c if (IS_ERR(host)) host 580 fs/nfs/client.c return PTR_ERR(host); host 582 fs/nfs/client.c server->nlm_host = host; host 266 fs/nfs/direct.c struct inode *inode = iocb->ki_filp->f_mapping->host; host 546 fs/nfs/direct.c struct inode *inode = mapping->host; host 551 fs/nfs/direct.c nfs_add_stats(mapping->host, NFSIOS_DIRECTREADBYTES, count); host 962 fs/nfs/direct.c struct inode *inode = mapping->host; host 974 fs/nfs/direct.c nfs_add_stats(mapping->host, NFSIOS_DIRECTWRITTENBYTES, count); host 125 fs/nfs/file.c struct inode *inode = filp->f_mapping->host; host 305 fs/nfs/file.c if (pnfs_ld_read_whole_page(file->f_mapping->host)) host 331 fs/nfs/file.c file, mapping->host->i_ino, len, (long long) pos); host 363 fs/nfs/file.c file, mapping->host->i_ino, len, (long long) pos); host 392 fs/nfs/file.c NFS_I(mapping->host)->write_io += copied; host 394 fs/nfs/file.c if (nfs_ctx_key_to_expire(ctx, mapping->host)) { host 395 fs/nfs/file.c status = nfs_wb_all(mapping->host); host 419 fs/nfs/file.c nfs_wb_page_cancel(page_file_mapping(page)->host, page); host 421 fs/nfs/file.c nfs_fscache_invalidate_page(page, page->mapping->host); host 454 fs/nfs/file.c nfsi = NFS_I(mapping->host); host 479 fs/nfs/file.c struct inode *inode = page_file_mapping(page)->host; host 492 fs/nfs/file.c struct rpc_clnt *clnt = NFS_CLIENT(file->f_mapping->host); host 501 fs/nfs/file.c struct rpc_clnt *clnt = NFS_CLIENT(file->f_mapping->host); host 542 fs/nfs/file.c filp, filp->f_mapping->host->i_ino, host 659 fs/nfs/file.c struct inode *inode = filp->f_mapping->host; host 688 fs/nfs/file.c struct inode *inode = filp->f_mapping->host; host 724 fs/nfs/file.c struct inode *inode = filp->f_mapping->host; host 768 fs/nfs/file.c struct inode *inode = filp->f_mapping->host; host 807 fs/nfs/file.c struct inode *inode = filp->f_mapping->host; host 341 fs/nfs/fscache.c struct fscache_cookie *cookie = nfs_i_fscache(page->mapping->host); host 345 fs/nfs/fscache.c cookie, page, NFS_I(page->mapping->host)); host 350 fs/nfs/fscache.c nfs_inc_fscache_stats(page->mapping->host, host 374 fs/nfs/fscache.c nfs_inc_fscache_stats(page->mapping->host, host 396 fs/nfs/fscache.c error = nfs_readpage_async(context, page->mapping->host, page); host 156 fs/nfs/inode.c ret = nfs_wb_all(mapping->host); host 661 fs/nfs/internal.h struct inode *inode = page_file_mapping(page)->host; host 675 fs/nfs/internal.h loff_t i_size = i_size_read(page_file_mapping(page)->host); host 259 fs/nfs/pagelist.c inode = page_file_mapping(req->wb_page)->host; host 313 fs/nfs/read.c struct inode *inode = page_file_mapping(page)->host; host 412 fs/nfs/read.c struct inode *inode = mapping->host; host 188 fs/nfs/write.c struct inode *inode = page_file_mapping(page)->host; host 224 fs/nfs/write.c struct inode *inode = page_file_mapping(page)->host; host 246 fs/nfs/write.c struct inode *inode = mapping->host; host 248 fs/nfs/write.c nfs_zap_mapping(mapping->host, mapping); host 352 fs/nfs/write.c struct inode *inode = page_file_mapping(page)->host; host 365 fs/nfs/write.c struct inode *inode = page_file_mapping(req->wb_page)->host; host 478 fs/nfs/write.c struct inode *inode = page_file_mapping(page)->host; host 650 fs/nfs/write.c nfs_add_stats(page_file_mapping(page)->host, host 680 fs/nfs/write.c struct inode *inode = page_file_mapping(page)->host; host 723 fs/nfs/write.c struct inode *inode = mapping->host; host 794 fs/nfs/write.c struct inode *inode = mapping->host; host 960 fs/nfs/write.c dec_wb_stat(&inode_to_bdi(page_file_mapping(page)->host)->wb, host 1174 fs/nfs/write.c struct inode *inode = page_file_mapping(page)->host; host 1234 fs/nfs/write.c status = nfs_wb_page(page_file_mapping(page)->host, page); host 1368 fs/nfs/write.c struct inode *inode = mapping->host; host 2014 fs/nfs/write.c ret = pnfs_sync_inode(mapping->host, true); host 400 fs/nilfs2/btree.c inode = bh->b_page->mapping->host; host 99 fs/nilfs2/dir.c struct inode *dir = mapping->host; host 118 fs/nilfs2/dir.c struct inode *dir = page->mapping->host; host 541 fs/nilfs2/dir.c struct inode *inode = mapping->host; host 27 fs/nilfs2/file.c struct inode *inode = file->f_mapping->host; host 143 fs/nilfs2/gcinode.c struct inode *inode = bh->b_page->mapping->host; host 165 fs/nilfs2/inode.c struct inode *inode = mapping->host; host 182 fs/nilfs2/inode.c struct inode *inode = page->mapping->host; host 212 fs/nilfs2/inode.c struct inode *inode = page->mapping->host; host 248 fs/nilfs2/inode.c struct inode *inode = mapping->host; host 261 fs/nilfs2/inode.c struct inode *inode = mapping->host; host 280 fs/nilfs2/inode.c struct inode *inode = mapping->host; host 403 fs/nilfs2/mdt.c struct inode *inode = page->mapping->host; host 165 fs/nilfs2/page.c ino = m ? m->host->i_ino : 0; host 388 fs/nilfs2/page.c struct inode *inode = page->mapping->host; host 443 fs/nilfs2/page.c mapping->host = inode; host 1575 fs/nilfs2/segment.c inode = bh->b_page->mapping->host; host 55 fs/ntfs/aops.c vi = page->mapping->host; host 184 fs/ntfs/aops.c vi = page->mapping->host; host 395 fs/ntfs/aops.c vi = page->mapping->host; host 551 fs/ntfs/aops.c vi = page->mapping->host; host 906 fs/ntfs/aops.c struct inode *vi = page->mapping->host; host 1342 fs/ntfs/aops.c struct inode *vi = page->mapping->host; host 1555 fs/ntfs/aops.c ntfs_inode *ni = NTFS_I(mapping->host); host 1717 fs/ntfs/aops.c ntfs_inode *ni = NTFS_I(mapping->host); host 467 fs/ntfs/compress.c ntfs_inode *ni = NTFS_I(mapping->host); host 1489 fs/ntfs/dir.c struct inode *bmp_vi, *vi = filp->f_mapping->host; host 602 fs/ntfs/file.c vi = pages[0]->mapping->host; host 1399 fs/ntfs/file.c vi = pages[0]->mapping->host; host 1559 fs/ntfs/file.c vi = page->mapping->host; host 1734 fs/ntfs/file.c struct inode *vi = mapping->host; host 1973 fs/ntfs/file.c struct inode *vi = filp->f_mapping->host; host 283 fs/ocfs2/aops.c struct inode *inode = page->mapping->host; host 358 fs/ocfs2/aops.c struct inode *inode = mapping->host; host 415 fs/ocfs2/aops.c (unsigned long long)OCFS2_I(page->mapping->host)->ip_blkno, host 462 fs/ocfs2/aops.c struct inode *inode = mapping->host; host 1045 fs/ocfs2/aops.c struct inode *inode = mapping->host; host 1138 fs/ocfs2/aops.c struct inode *inode = mapping->host; host 1241 fs/ocfs2/aops.c struct ocfs2_super *osb = OCFS2_SB(mapping->host->i_sb); host 1667 fs/ocfs2/aops.c struct inode *inode = mapping->host; host 1901 fs/ocfs2/aops.c struct inode *inode = mapping->host; host 1968 fs/ocfs2/aops.c struct inode *inode = mapping->host; host 2082 fs/ocfs2/aops.c struct inode *inode = mapping->host; host 2450 fs/ocfs2/aops.c struct inode *inode = file->f_mapping->host; host 1359 fs/ocfs2/cluster/heartbeat.c i_size_read(file->f_mapping->host)); host 1798 fs/ocfs2/cluster/heartbeat.c inode = igrab(f.file->f_mapping->host); host 1805 fs/ocfs2/cluster/heartbeat.c reg->hr_bdev = I_BDEV(f.file->f_mapping->host); host 477 fs/ocfs2/cluster/netdebug.c i_size_read(file->f_mapping->host)); host 345 fs/ocfs2/dlm/dlmdebug.c i_size_read(file->f_mapping->host)); host 598 fs/ocfs2/dlmglue.c return OCFS2_SB(fp->fp_file->f_mapping->host->i_sb); host 727 fs/ocfs2/dlmglue.c struct inode *inode = fp->fp_file->f_mapping->host; host 1975 fs/ocfs2/dlmglue.c struct ocfs2_super *osb = OCFS2_SB(file->f_mapping->host->i_sb); host 2071 fs/ocfs2/dlmglue.c struct ocfs2_super *osb = OCFS2_SB(file->f_mapping->host->i_sb); host 868 fs/ocfs2/extent_map.c struct inode *inode = file->f_mapping->host; host 170 fs/ocfs2/file.c struct inode *inode = file->f_mapping->host; host 2516 fs/ocfs2/file.c struct inode *inode = file->f_mapping->host; host 101 fs/ocfs2/locks.c struct inode *inode = file->f_mapping->host; host 121 fs/ocfs2/locks.c struct inode *inode = file->f_mapping->host; host 43 fs/ocfs2/mmap.c trace_ocfs2_fault(OCFS2_I(vma->vm_file->f_mapping->host)->ip_blkno, host 370 fs/ocfs2/super.c i_size_read(file->f_mapping->host)); host 59 fs/ocfs2/symlink.c struct inode *inode = page->mapping->host; host 311 fs/omfs/file.c struct inode *inode = mapping->host; host 814 fs/open.c file_ra_state_init(&f->f_ra, f->f_mapping->host->i_mapping); host 440 fs/orangefs/file.c ret = orangefs_inode_getattr(file->f_mapping->host, host 574 fs/orangefs/file.c ret = orangefs_inode_getattr(file->f_mapping->host, host 634 fs/orangefs/file.c struct inode *inode = file->f_mapping->host; host 21 fs/orangefs/inode.c struct inode *inode = page->mapping->host; host 97 fs/orangefs/inode.c struct inode *inode = ow->pages[0]->mapping->host; host 254 fs/orangefs/inode.c struct inode *inode = page->mapping->host; host 449 fs/orangefs/inode.c struct inode *inode = page->mapping->host; host 604 fs/orangefs/inode.c struct inode *inode = file->f_mapping->host; host 146 fs/read_write.c struct inode *inode = file->f_mapping->host; host 34 fs/reiserfs/dir.c struct inode *inode = filp->f_mapping->host; host 153 fs/reiserfs/file.c struct inode *inode = filp->f_mapping->host; host 2530 fs/reiserfs/inode.c struct inode *inode = page->mapping->host; host 2750 fs/reiserfs/inode.c struct inode *inode = page->mapping->host; host 2772 fs/reiserfs/inode.c inode = mapping->host; host 2837 fs/reiserfs/inode.c struct inode *inode = page->mapping->host; host 2899 fs/reiserfs/inode.c struct inode *inode = page->mapping->host; host 3001 fs/reiserfs/inode.c struct inode *inode = page->mapping->host; host 3162 fs/reiserfs/inode.c struct inode *inode = page->mapping->host; host 3213 fs/reiserfs/inode.c struct inode *inode = page->mapping->host; host 3232 fs/reiserfs/inode.c struct inode *inode = page->mapping->host; host 3266 fs/reiserfs/inode.c struct inode *inode = file->f_mapping->host; host 180 fs/reiserfs/tail_conversion.c struct inode *inode = bh->b_page->mapping->host; host 24 fs/romfs/mmap-nommu.c struct inode *inode = file->f_mapping->host; host 104 fs/romfs/super.c struct inode *inode = page->mapping->host; host 385 fs/squashfs/file.c struct inode *inode = page->mapping->host; host 423 fs/squashfs/file.c struct inode *inode = page->mapping->host; host 449 fs/squashfs/file.c struct inode *inode = page->mapping->host; host 23 fs/squashfs/file_cache.c struct inode *i = page->mapping->host; host 29 fs/squashfs/file_direct.c struct inode *inode = target_page->mapping->host; host 147 fs/squashfs/file_direct.c struct inode *i = target_page->mapping->host; host 35 fs/squashfs/symlink.c struct inode *inode = page->mapping->host; host 191 fs/sync.c struct inode *inode = file->f_mapping->host; host 40 fs/sysv/dir.c struct inode *dir = mapping->host; host 232 fs/sysv/dir.c struct inode *inode = page->mapping->host; host 330 fs/sysv/dir.c struct inode *dir = page->mapping->host; host 471 fs/sysv/itree.c struct inode *inode = mapping->host; host 105 fs/ubifs/file.c struct inode *inode = page->mapping->host; host 221 fs/ubifs/file.c struct inode *inode = mapping->host; host 425 fs/ubifs/file.c struct inode *inode = mapping->host; host 540 fs/ubifs/file.c struct inode *inode = mapping->host; host 610 fs/ubifs/file.c struct inode *inode = page->mapping->host; host 722 fs/ubifs/file.c struct inode *inode = mapping->host; host 829 fs/ubifs/file.c struct inode *inode = page->mapping->host; host 908 fs/ubifs/file.c struct inode *inode = page->mapping->host; host 1007 fs/ubifs/file.c struct inode *inode = page->mapping->host; host 1292 fs/ubifs/file.c struct inode *inode = page->mapping->host; host 1312 fs/ubifs/file.c struct inode *inode = file->f_mapping->host; host 1450 fs/ubifs/file.c struct inode *inode = page->mapping->host; host 1487 fs/ubifs/file.c struct inode *inode = page->mapping->host; host 1664 fs/ubifs/journal.c int ubifs_jnl_delete_xattr(struct ubifs_info *c, const struct inode *host, host 1672 fs/ubifs/journal.c int sync = IS_DIRSYNC(host); host 1673 fs/ubifs/journal.c struct ubifs_inode *host_ui = ubifs_inode(host); host 1702 fs/ubifs/journal.c xent_key_init(c, &xent_key, host->i_ino, nm); host 1715 fs/ubifs/journal.c pack_inode(c, ino, host, 1); host 1722 fs/ubifs/journal.c ubifs_wbuf_add_ino_nolock(&c->jheads[BASEHD].wbuf, host->i_ino); host 1752 fs/ubifs/journal.c ino_key_init(c, &key1, host->i_ino); host 1787 fs/ubifs/journal.c const struct inode *host) host 1790 fs/ubifs/journal.c struct ubifs_inode *host_ui = ubifs_inode(host); host 1793 fs/ubifs/journal.c int sync = IS_DIRSYNC(host); host 1797 fs/ubifs/journal.c dbg_jnl("ino %lu, ino %lu", host->i_ino, inode->i_ino); host 1798 fs/ubifs/journal.c ubifs_assert(c, host->i_nlink > 0); host 1818 fs/ubifs/journal.c pack_inode(c, ino, host, 0); host 1831 fs/ubifs/journal.c ubifs_wbuf_add_ino_nolock(wbuf, host->i_ino); host 1840 fs/ubifs/journal.c ino_key_init(c, &key, host->i_ino); host 1785 fs/ubifs/ubifs.h int ubifs_jnl_delete_xattr(struct ubifs_info *c, const struct inode *host, host 2004 fs/ubifs/ubifs.h int ubifs_xattr_set(struct inode *host, const char *name, const void *value, host 2006 fs/ubifs/ubifs.h ssize_t ubifs_xattr_get(struct inode *host, const char *name, void *buf, host 2011 fs/ubifs/ubifs.h int ubifs_purge_xattrs(struct inode *host); host 2015 fs/ubifs/ubifs.h static inline int ubifs_purge_xattrs(struct inode *host) host 81 fs/ubifs/xattr.c static int create_xattr(struct ubifs_info *c, struct inode *host, host 86 fs/ubifs/xattr.c struct ubifs_inode *ui, *host_ui = ubifs_inode(host); host 93 fs/ubifs/xattr.c host->i_ino, host_ui->xattr_cnt); host 105 fs/ubifs/xattr.c host->i_ino, names_len, XATTR_LIST_MAX); host 113 fs/ubifs/xattr.c inode = ubifs_new_inode(c, host, S_IFREG | S_IRWXUGO); host 137 fs/ubifs/xattr.c host->i_ctime = current_time(host); host 152 fs/ubifs/xattr.c err = ubifs_jnl_update(c, host, nm, inode, 0, 1); host 155 fs/ubifs/xattr.c ubifs_set_inode_flags(host); host 190 fs/ubifs/xattr.c static int change_xattr(struct ubifs_info *c, struct inode *host, host 194 fs/ubifs/xattr.c struct ubifs_inode *host_ui = ubifs_inode(host); host 220 fs/ubifs/xattr.c host->i_ctime = current_time(host); host 230 fs/ubifs/xattr.c err = ubifs_jnl_change_xattr(c, inode, host); host 265 fs/ubifs/xattr.c int ubifs_xattr_set(struct inode *host, const char *name, const void *value, host 269 fs/ubifs/xattr.c struct ubifs_info *c = host->i_sb->s_fs_info; host 276 fs/ubifs/xattr.c ubifs_assert(c, inode_is_locked(host)); host 292 fs/ubifs/xattr.c xent_key_init(c, &key, host->i_ino, &nm); host 302 fs/ubifs/xattr.c err = create_xattr(c, host, &nm, value, size); host 318 fs/ubifs/xattr.c err = change_xattr(c, host, inode, value, size); host 326 fs/ubifs/xattr.c ssize_t ubifs_xattr_get(struct inode *host, const char *name, void *buf, host 330 fs/ubifs/xattr.c struct ubifs_info *c = host->i_sb->s_fs_info; host 344 fs/ubifs/xattr.c xent_key_init(c, &key, host->i_ino, &nm); host 360 fs/ubifs/xattr.c ubifs_assert(c, ubifs_inode(host)->xattr_size > ui->data_len); host 399 fs/ubifs/xattr.c struct inode *host = d_inode(dentry); host 400 fs/ubifs/xattr.c struct ubifs_info *c = host->i_sb->s_fs_info; host 401 fs/ubifs/xattr.c struct ubifs_inode *host_ui = ubifs_inode(host); host 406 fs/ubifs/xattr.c dbg_gen("ino %lu ('%pd'), buffer size %zd", host->i_ino, host 420 fs/ubifs/xattr.c lowest_xent_key(c, &key, host->i_ino); host 451 fs/ubifs/xattr.c static int remove_xattr(struct ubifs_info *c, struct inode *host, host 455 fs/ubifs/xattr.c struct ubifs_inode *host_ui = ubifs_inode(host); host 467 fs/ubifs/xattr.c host->i_ctime = current_time(host); host 473 fs/ubifs/xattr.c err = ubifs_jnl_delete_xattr(c, host, inode, nm); host 492 fs/ubifs/xattr.c int ubifs_purge_xattrs(struct inode *host) host 495 fs/ubifs/xattr.c struct ubifs_info *c = host->i_sb->s_fs_info; host 501 fs/ubifs/xattr.c if (ubifs_inode(host)->xattr_cnt < ubifs_xattr_max_cnt(c)) host 505 fs/ubifs/xattr.c host->i_ino); host 507 fs/ubifs/xattr.c lowest_xent_key(c, &key, host->i_ino); host 531 fs/ubifs/xattr.c err = remove_xattr(c, host, xino, &nm); host 577 fs/ubifs/xattr.c static int ubifs_xattr_remove(struct inode *host, const char *name) host 580 fs/ubifs/xattr.c struct ubifs_info *c = host->i_sb->s_fs_info; host 586 fs/ubifs/xattr.c ubifs_assert(c, inode_is_locked(host)); host 595 fs/ubifs/xattr.c xent_key_init(c, &key, host->i_ino, &nm); host 611 fs/ubifs/xattr.c err = remove_xattr(c, host, inode, &nm); host 43 fs/udf/file.c struct inode *inode = page->mapping->host; host 72 fs/udf/file.c struct inode *inode = page->mapping->host; host 118 fs/udf/file.c struct inode *inode = page->mapping->host; host 167 fs/udf/inode.c struct inode *inode = mapping->host; host 220 fs/udf/inode.c struct inode *inode = mapping->host; host 106 fs/udf/symlink.c struct inode *inode = page->mapping->host; host 48 fs/ufs/dir.c struct inode *dir = mapping->host; host 112 fs/ufs/dir.c struct inode *dir = page->mapping->host; host 489 fs/ufs/inode.c struct inode *inode = mapping->host; host 247 fs/ufs/util.c struct inode *inode = mapping->host; host 255 fs/ufs/util.c mapping->host->i_ino, index); host 189 fs/verity/verify.c struct inode *inode = page->mapping->host; host 223 fs/verity/verify.c struct inode *inode = bio_first_page_all(bio)->mapping->host; host 808 fs/xfs/xfs_aops.c trace_xfs_invalidatepage(page->mapping->host, page, offset, length); host 827 fs/xfs/xfs_aops.c struct inode *inode = page->mapping->host; host 985 fs/xfs/xfs_aops.c struct inode *inode = page->mapping->host; host 1109 fs/xfs/xfs_aops.c xfs_iflags_clear(XFS_I(mapping->host), XFS_ITRUNCATED); host 1121 fs/xfs/xfs_aops.c xfs_iflags_clear(XFS_I(mapping->host), XFS_ITRUNCATED); host 1123 fs/xfs/xfs_aops.c xfs_find_bdev_for_inode(mapping->host), wbc); host 1131 fs/xfs/xfs_aops.c trace_xfs_releasepage(page->mapping->host, page, 0, 0); host 1140 fs/xfs/xfs_aops.c struct xfs_inode *ip = XFS_I(mapping->host); host 1163 fs/xfs/xfs_aops.c trace_xfs_vm_readpage(page->mapping->host, 1); host 1174 fs/xfs/xfs_aops.c trace_xfs_vm_readpages(mapping->host, nr_pages); host 82 fs/xfs/xfs_file.c struct xfs_inode *ip = XFS_I(file->f_mapping->host); host 105 fs/xfs/xfs_file.c struct inode *inode = file->f_mapping->host; host 202 fs/xfs/xfs_file.c struct xfs_inode *ip = XFS_I(iocb->ki_filp->f_mapping->host); host 287 fs/xfs/xfs_file.c struct inode *inode = file->f_mapping->host; host 482 fs/xfs/xfs_file.c struct inode *inode = mapping->host; host 575 fs/xfs/xfs_file.c struct inode *inode = iocb->ki_filp->f_mapping->host; host 623 fs/xfs/xfs_file.c struct inode *inode = mapping->host; host 699 fs/xfs/xfs_file.c struct inode *inode = mapping->host; host 1107 fs/xfs/xfs_file.c struct inode *inode = file->f_mapping->host; host 84 include/drm/drm_mipi_dsi.h int (*attach)(struct mipi_dsi_host *host, host 86 include/drm/drm_mipi_dsi.h int (*detach)(struct mipi_dsi_host *host, host 88 include/drm/drm_mipi_dsi.h ssize_t (*transfer)(struct mipi_dsi_host *host, host 104 include/drm/drm_mipi_dsi.h int mipi_dsi_host_register(struct mipi_dsi_host *host); host 105 include/drm/drm_mipi_dsi.h void mipi_dsi_host_unregister(struct mipi_dsi_host *host); host 176 include/drm/drm_mipi_dsi.h struct mipi_dsi_host *host; host 221 include/drm/drm_mipi_dsi.h mipi_dsi_device_register_full(struct mipi_dsi_host *host, host 215 include/linux/backing-dev.h return bdi_cap_writeback_dirty(inode_to_bdi(mapping->host)); host 220 include/linux/backing-dev.h return bdi_cap_account_dirty(inode_to_bdi(mapping->host)); host 54 include/linux/cleancache.h return mapping->host->i_sb->cleancache_poolid >= 0; host 42 include/linux/dax.h struct dax_device *dax_get_by_host(const char *host); host 43 include/linux/dax.h struct dax_device *alloc_dax(void *private, const char *host, host 72 include/linux/dax.h static inline struct dax_device *dax_get_by_host(const char *host) host 76 include/linux/dax.h static inline struct dax_device *alloc_dax(void *private, const char *host, host 132 include/linux/dax.h static inline struct dax_device *fs_dax_get_by_host(const char *host) host 134 include/linux/dax.h return dax_get_by_host(host); host 163 include/linux/dax.h static inline struct dax_device *fs_dax_get_by_host(const char *host) host 190 include/linux/dax.h if (IS_DAX(page->mapping->host)) host 239 include/linux/dax.h return mapping->host && IS_DAX(mapping->host); host 446 include/linux/fs.h struct inode *host; host 3368 include/linux/fs.h return (filp->f_flags & O_DIRECT) || IS_DAX(filp->f_mapping->host); host 3373 include/linux/fs.h return vma->vm_file && IS_DAX(vma->vm_file->f_mapping->host); host 3397 include/linux/fs.h if ((file->f_flags & O_DSYNC) || IS_SYNC(file->f_mapping->host)) host 138 include/linux/host1x.h struct host1x_syncpt *host1x_syncpt_get(struct host1x *host, u32 id); host 721 include/linux/ide.h struct ide_host *host; host 1618 include/linux/ide.h #define ide_host_for_each_port(i, port, host) \ host 1619 include/linux/ide.h for ((i) = 0; ((port) = (host)->ports[i]) || (i) < MAX_HOST_PORTS; (i)++) host 275 include/linux/irqdomain.h extern void irq_set_default_host(struct irq_domain *host); host 375 include/linux/irqdomain.h extern void irq_domain_remove(struct irq_domain *host); host 385 include/linux/irqdomain.h extern unsigned int irq_create_mapping(struct irq_domain *host, host 405 include/linux/irqdomain.h extern unsigned int irq_find_mapping(struct irq_domain *host, host 407 include/linux/irqdomain.h extern unsigned int irq_create_direct_mapping(struct irq_domain *host); host 412 include/linux/irqdomain.h static inline int irq_create_identity_mapping(struct irq_domain *host, host 415 include/linux/irqdomain.h return irq_create_strict_mappings(host, hwirq, hwirq, 1); host 851 include/linux/libata.h struct ata_host *host; host 945 include/linux/libata.h void (*host_stop)(struct ata_host *host); host 1098 include/linux/libata.h extern void ata_host_get(struct ata_host *host); host 1099 include/linux/libata.h extern void ata_host_put(struct ata_host *host); host 1100 include/linux/libata.h extern int ata_host_start(struct ata_host *host); host 1101 include/linux/libata.h extern int ata_host_register(struct ata_host *host, host 1103 include/linux/libata.h extern int ata_host_activate(struct ata_host *host, int irq, host 1106 include/linux/libata.h extern void ata_host_detach(struct ata_host *host); host 1133 include/linux/libata.h extern int ata_host_suspend(struct ata_host *host, pm_message_t mesg); host 1134 include/linux/libata.h extern void ata_host_resume(struct ata_host *host); host 1191 include/linux/libata.h extern void ata_scsi_port_error_handler(struct Scsi_Host *host, struct ata_port *ap); host 1192 include/linux/libata.h extern void ata_scsi_cmd_error_handler(struct Scsi_Host *host, struct ata_port *ap, struct list_head *eh_q); host 1753 include/linux/libata.h static inline struct ata_port *ata_shost_to_port(struct Scsi_Host *host) host 1755 include/linux/libata.h return *(struct ata_port **)&host->hostdata[0]; host 1877 include/linux/libata.h extern int ata_pci_sff_init_host(struct ata_host *host); host 1881 include/linux/libata.h extern int ata_pci_sff_activate_host(struct ata_host *host, host 1916 include/linux/libata.h extern void ata_pci_bmdma_init(struct ata_host *host); host 57 include/linux/lockd/bind.h extern void nlmclnt_done(struct nlm_host *host); host 78 include/linux/lockd/bind.h extern int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl, void *data); host 102 include/linux/lockd/lockd.h static inline struct sockaddr_in *nlm_addr_in(const struct nlm_host *host) host 104 include/linux/lockd/lockd.h return (struct sockaddr_in *)&host->h_addr; host 107 include/linux/lockd/lockd.h static inline struct sockaddr *nlm_addr(const struct nlm_host *host) host 109 include/linux/lockd/lockd.h return (struct sockaddr *)&host->h_addr; host 112 include/linux/lockd/lockd.h static inline struct sockaddr_in *nlm_srcaddr_in(const struct nlm_host *host) host 114 include/linux/lockd/lockd.h return (struct sockaddr_in *)&host->h_srcaddr; host 117 include/linux/lockd/lockd.h static inline struct sockaddr *nlm_srcaddr(const struct nlm_host *host) host 119 include/linux/lockd/lockd.h return (struct sockaddr *)&host->h_srcaddr; host 129 include/linux/lockd/lockd.h struct nlm_host *host; host 210 include/linux/lockd/lockd.h struct nlm_rqst * nlm_alloc_call(struct nlm_host *host); host 214 include/linux/lockd/lockd.h struct nlm_wait * nlmclnt_prepare_block(struct nlm_host *host, struct file_lock *fl); host 251 include/linux/lockd/lockd.h int nsm_monitor(const struct nlm_host *host); host 252 include/linux/lockd/lockd.h void nsm_unmonitor(const struct nlm_host *host); host 253 include/linux/memstick.h struct memstick_host *host; host 286 include/linux/memstick.h void (*request)(struct memstick_host *host); host 288 include/linux/memstick.h int (*set_param)(struct memstick_host *host, host 311 include/linux/memstick.h int memstick_add_host(struct memstick_host *host); host 312 include/linux/memstick.h void memstick_remove_host(struct memstick_host *host); host 313 include/linux/memstick.h void memstick_free_host(struct memstick_host *host); host 314 include/linux/memstick.h void memstick_detect_change(struct memstick_host *host); host 315 include/linux/memstick.h void memstick_suspend_host(struct memstick_host *host); host 316 include/linux/memstick.h void memstick_resume_host(struct memstick_host *host); host 322 include/linux/memstick.h int memstick_next_req(struct memstick_host *host, host 324 include/linux/memstick.h void memstick_new_req(struct memstick_host *host); host 328 include/linux/memstick.h static inline void *memstick_priv(struct memstick_host *host) host 330 include/linux/memstick.h return (void *)host->private; host 107 include/linux/mfd/tmio.h void (*set_pwr)(struct platform_device *host, int state); host 108 include/linux/mfd/tmio.h void (*set_clk_div)(struct platform_device *host, int state); host 244 include/linux/mmc/card.h struct mmc_host *host; /* the host this device belongs to */ host 162 include/linux/mmc/core.h struct mmc_host *host; host 172 include/linux/mmc/core.h void mmc_wait_for_req(struct mmc_host *host, struct mmc_request *mrq); host 173 include/linux/mmc/core.h int mmc_wait_for_cmd(struct mmc_host *host, struct mmc_command *cmd, host 176 include/linux/mmc/core.h int mmc_hw_reset(struct mmc_host *host); host 177 include/linux/mmc/core.h int mmc_sw_reset(struct mmc_host *host); host 91 include/linux/mmc/host.h void (*post_req)(struct mmc_host *host, struct mmc_request *req, host 93 include/linux/mmc/host.h void (*pre_req)(struct mmc_host *host, struct mmc_request *req); host 94 include/linux/mmc/host.h void (*request)(struct mmc_host *host, struct mmc_request *req); host 110 include/linux/mmc/host.h void (*set_ios)(struct mmc_host *host, struct mmc_ios *ios); host 119 include/linux/mmc/host.h int (*get_ro)(struct mmc_host *host); host 128 include/linux/mmc/host.h int (*get_cd)(struct mmc_host *host); host 130 include/linux/mmc/host.h void (*enable_sdio_irq)(struct mmc_host *host, int enable); host 132 include/linux/mmc/host.h void (*ack_sdio_irq)(struct mmc_host *host); host 135 include/linux/mmc/host.h void (*init_card)(struct mmc_host *host, struct mmc_card *card); host 137 include/linux/mmc/host.h int (*start_signal_voltage_switch)(struct mmc_host *host, struct mmc_ios *ios); host 140 include/linux/mmc/host.h int (*card_busy)(struct mmc_host *host); host 143 include/linux/mmc/host.h int (*execute_tuning)(struct mmc_host *host, u32 opcode); host 146 include/linux/mmc/host.h int (*prepare_hs400_tuning)(struct mmc_host *host, struct mmc_ios *ios); host 149 include/linux/mmc/host.h int (*hs400_prepare_ddr)(struct mmc_host *host); host 152 include/linux/mmc/host.h void (*hs400_downgrade)(struct mmc_host *host); host 155 include/linux/mmc/host.h void (*hs400_complete)(struct mmc_host *host); host 158 include/linux/mmc/host.h void (*hs400_enhanced_strobe)(struct mmc_host *host, host 163 include/linux/mmc/host.h void (*hw_reset)(struct mmc_host *host); host 164 include/linux/mmc/host.h void (*card_event)(struct mmc_host *host); host 176 include/linux/mmc/host.h int (*cqe_enable)(struct mmc_host *host, struct mmc_card *card); host 178 include/linux/mmc/host.h void (*cqe_disable)(struct mmc_host *host); host 183 include/linux/mmc/host.h int (*cqe_request)(struct mmc_host *host, struct mmc_request *mrq); host 185 include/linux/mmc/host.h void (*cqe_post_req)(struct mmc_host *host, struct mmc_request *mrq); host 191 include/linux/mmc/host.h void (*cqe_off)(struct mmc_host *host); host 196 include/linux/mmc/host.h int (*cqe_wait_for_idle)(struct mmc_host *host); host 202 include/linux/mmc/host.h bool (*cqe_timeout)(struct mmc_host *host, struct mmc_request *mrq, host 208 include/linux/mmc/host.h void (*cqe_recovery_start)(struct mmc_host *host); host 215 include/linux/mmc/host.h void (*cqe_recovery_finish)(struct mmc_host *host); host 475 include/linux/mmc/host.h int mmc_of_parse(struct mmc_host *host); host 478 include/linux/mmc/host.h static inline void *mmc_priv(struct mmc_host *host) host 480 include/linux/mmc/host.h return (void *)host->private; host 488 include/linux/mmc/host.h #define mmc_host_is_spi(host) ((host)->caps & MMC_CAP_SPI) host 496 include/linux/mmc/host.h void mmc_command_done(struct mmc_host *host, struct mmc_request *mrq); host 498 include/linux/mmc/host.h void mmc_cqe_request_done(struct mmc_host *host, struct mmc_request *mrq); host 504 include/linux/mmc/host.h static inline bool sdio_irq_claimed(struct mmc_host *host) host 506 include/linux/mmc/host.h return host->sdio_irqs > 0; host 509 include/linux/mmc/host.h static inline void mmc_signal_sdio_irq(struct mmc_host *host) host 511 include/linux/mmc/host.h host->ops->enable_sdio_irq(host, 0); host 512 include/linux/mmc/host.h host->sdio_irq_pending = true; host 513 include/linux/mmc/host.h if (host->sdio_irq_thread) host 514 include/linux/mmc/host.h wake_up_process(host->sdio_irq_thread); host 517 include/linux/mmc/host.h void sdio_signal_irq(struct mmc_host *host); host 541 include/linux/mmc/host.h static inline int mmc_card_is_removable(struct mmc_host *host) host 543 include/linux/mmc/host.h return !(host->caps & MMC_CAP_NONREMOVABLE); host 546 include/linux/mmc/host.h static inline int mmc_card_keep_power(struct mmc_host *host) host 548 include/linux/mmc/host.h return host->pm_flags & MMC_PM_KEEP_POWER; host 551 include/linux/mmc/host.h static inline int mmc_card_wake_sdio_irq(struct mmc_host *host) host 553 include/linux/mmc/host.h return host->pm_flags & MMC_PM_WAKE_SDIO_IRQ; host 559 include/linux/mmc/host.h return card->host->ios.timing == MMC_TIMING_SD_HS || host 560 include/linux/mmc/host.h card->host->ios.timing == MMC_TIMING_MMC_HS; host 566 include/linux/mmc/host.h return card->host->ios.timing >= MMC_TIMING_UHS_SDR12 && host 567 include/linux/mmc/host.h card->host->ios.timing <= MMC_TIMING_UHS_DDR50; host 570 include/linux/mmc/host.h void mmc_retune_timer_stop(struct mmc_host *host); host 572 include/linux/mmc/host.h static inline void mmc_retune_needed(struct mmc_host *host) host 574 include/linux/mmc/host.h if (host->can_retune) host 575 include/linux/mmc/host.h host->need_retune = 1; host 578 include/linux/mmc/host.h static inline bool mmc_can_retune(struct mmc_host *host) host 580 include/linux/mmc/host.h return host->can_retune == 1; host 583 include/linux/mmc/host.h static inline bool mmc_doing_retune(struct mmc_host *host) host 585 include/linux/mmc/host.h return host->doing_retune == 1; host 593 include/linux/mmc/host.h int mmc_send_tuning(struct mmc_host *host, u32 opcode, int *cmd_error); host 594 include/linux/mmc/host.h int mmc_abort_tuning(struct mmc_host *host, u32 opcode); host 16 include/linux/mmc/slot-gpio.h int mmc_gpio_get_ro(struct mmc_host *host); host 17 include/linux/mmc/slot-gpio.h int mmc_gpio_get_cd(struct mmc_host *host); host 18 include/linux/mmc/slot-gpio.h int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id, host 21 include/linux/mmc/slot-gpio.h int mmc_gpiod_request_ro(struct mmc_host *host, const char *con_id, host 24 include/linux/mmc/slot-gpio.h void mmc_gpio_set_cd_isr(struct mmc_host *host, host 26 include/linux/mmc/slot-gpio.h int mmc_gpio_set_cd_wake(struct mmc_host *host, bool on); host 27 include/linux/mmc/slot-gpio.h void mmc_gpiod_request_cd_irq(struct mmc_host *host); host 28 include/linux/mmc/slot-gpio.h bool mmc_can_gpio_cd(struct mmc_host *host); host 29 include/linux/mmc/slot-gpio.h bool mmc_can_gpio_ro(struct mmc_host *host); host 26 include/linux/platform_data/usb-pxa3xx-ulpi.h int pxa3xx_u2d_start_hc(struct usb_bus *host); host 28 include/linux/platform_data/usb-pxa3xx-ulpi.h void pxa3xx_u2d_stop_hc(struct usb_bus *host); host 7 include/linux/soc/qcom/smem.h int qcom_smem_alloc(unsigned host, unsigned item, size_t size); host 8 include/linux/soc/qcom/smem.h void *qcom_smem_get(unsigned host, unsigned item, size_t *size); host 10 include/linux/soc/qcom/smem.h int qcom_smem_get_free_space(unsigned host); host 16 include/linux/spi/mxs-spi.h #define ssp_is_old(host) ((host)->devid == IMX23_SSP) host 648 include/linux/spi/spi.h extern struct spi_controller *__spi_alloc_controller(struct device *host, host 651 include/linux/spi/spi.h static inline struct spi_controller *spi_alloc_master(struct device *host, host 654 include/linux/spi/spi.h return __spi_alloc_controller(host, size, false); host 657 include/linux/spi/spi.h static inline struct spi_controller *spi_alloc_slave(struct device *host, host 663 include/linux/spi/spi.h return __spi_alloc_controller(host, size, true); host 22 include/linux/usb/otg.h struct usb_bus *host; host 28 include/linux/usb/otg.h int (*set_host)(struct usb_otg *otg, struct usb_bus *host); host 84 include/linux/usb/otg.h otg_set_host(struct usb_otg *otg, struct usb_bus *host) host 87 include/linux/usb/otg.h return otg->set_host(otg, host); host 181 include/net/nfc/hci.h void nfc_hci_reset_pipes_per_host(struct nfc_hci_dev *hdev, u8 host); host 167 include/net/nfc/nci_core.h u8 host; host 167 include/scsi/fc_encode.h len = strnlen(fc_host_symbolic_name(lport->host), 255); host 172 include/scsi/fc_encode.h fc_host_symbolic_name(lport->host), len); host 177 include/scsi/fc_encode.h len = strnlen(fc_host_symbolic_name(lport->host), 255); host 182 include/scsi/fc_encode.h fc_host_symbolic_name(lport->host), len); host 264 include/scsi/fc_encode.h fc_host_manufacturer(lport->host), host 276 include/scsi/fc_encode.h fc_host_serial_number(lport->host), host 288 include/scsi/fc_encode.h fc_host_model(lport->host), host 300 include/scsi/fc_encode.h fc_host_model_description(lport->host), host 312 include/scsi/fc_encode.h fc_host_hardware_version(lport->host), host 324 include/scsi/fc_encode.h fc_host_driver_version(lport->host), host 336 include/scsi/fc_encode.h fc_host_optionrom_version(lport->host), host 348 include/scsi/fc_encode.h fc_host_firmware_version(lport->host), host 396 include/scsi/fc_encode.h memcpy(&entry->value, fc_host_supported_fc4s(lport->host), host 408 include/scsi/fc_encode.h put_unaligned_be32(fc_host_supported_speeds(lport->host), host 430 include/scsi/fc_encode.h put_unaligned_be32(fc_host_maxframe_size(lport->host), host 443 include/scsi/fc_encode.h dev_name(&lport->host->shost_gendev), host 444 include/scsi/fc_encode.h strnlen(dev_name(&lport->host->shost_gendev), host 455 include/scsi/fc_encode.h if (strlen(fc_host_system_hostname(lport->host))) host 457 include/scsi/fc_encode.h fc_host_system_hostname(lport->host), host 458 include/scsi/fc_encode.h strnlen(fc_host_system_hostname(lport->host), host 694 include/scsi/libfc.h struct Scsi_Host *host; host 869 include/scsi/libfc.h lport->host = shost; host 321 include/scsi/libiscsi.h struct Scsi_Host *host; host 374 include/scsi/libiscsi.h extern int iscsi_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *sc); host 102 include/scsi/scsi_device.h struct Scsi_Host *host; host 331 include/scsi/scsi_device.h extern int scsi_add_device(struct Scsi_Host *host, uint channel, host 750 include/scsi/scsi_host.h static inline int __must_check scsi_add_host(struct Scsi_Host *host, host 753 include/scsi/scsi_host.h return scsi_add_host_with_dma(host, dev, dev); host 81 include/scsi/scsi_transport.h struct Scsi_Host *shost = sdev->host; host 632 include/trace/events/btrfs.h TP_fast_assign_btrfs(btrfs_sb(page->mapping->host->i_sb), host 633 include/trace/events/btrfs.h __entry->ino = btrfs_ino(BTRFS_I(page->mapping->host)); host 639 include/trace/events/btrfs.h BTRFS_I(page->mapping->host)->root->root_key.objectid; host 97 include/trace/events/erofs.h __entry->dev = page->mapping->host->i_sb->s_dev; host 98 include/trace/events/erofs.h __entry->nid = EROFS_I(page->mapping->host)->nid; host 99 include/trace/events/erofs.h __entry->dir = S_ISDIR(page->mapping->host->i_mode); host 537 include/trace/events/ext4.h __entry->dev = page->mapping->host->i_sb->s_dev; host 538 include/trace/events/ext4.h __entry->ino = page->mapping->host->i_ino; host 583 include/trace/events/ext4.h __entry->dev = page->mapping->host->i_sb->s_dev; host 584 include/trace/events/ext4.h __entry->ino = page->mapping->host->i_ino; host 1022 include/trace/events/f2fs.h __entry->dev = page_file_mapping(page)->host->i_sb->s_dev; host 1023 include/trace/events/f2fs.h __entry->ino = page_file_mapping(page)->host->i_ino; host 1210 include/trace/events/f2fs.h __entry->dev = page_file_mapping(page)->host->i_sb->s_dev; host 1211 include/trace/events/f2fs.h __entry->ino = page_file_mapping(page)->host->i_ino; host 1214 include/trace/events/f2fs.h S_ISDIR(page_file_mapping(page)->host->i_mode); host 31 include/trace/events/filemap.h __entry->i_ino = page->mapping->host->i_ino; host 33 include/trace/events/filemap.h if (page->mapping->host->i_sb) host 34 include/trace/events/filemap.h __entry->s_dev = page->mapping->host->i_sb->s_dev; host 36 include/trace/events/filemap.h __entry->s_dev = page->mapping->host->i_rdev; host 69 include/trace/events/filemap.h __entry->i_ino = mapping->host->i_ino; host 71 include/trace/events/filemap.h if (mapping->host->i_sb) host 72 include/trace/events/filemap.h __entry->s_dev = mapping->host->i_sb->s_dev; host 74 include/trace/events/filemap.h __entry->s_dev = mapping->host->i_rdev; host 97 include/trace/events/filemap.h __entry->i_ino = file->f_mapping->host->i_ino; host 98 include/trace/events/filemap.h if (file->f_mapping->host->i_sb) host 100 include/trace/events/filemap.h file->f_mapping->host->i_sb->s_dev; host 103 include/trace/events/filemap.h file->f_mapping->host->i_rdev; host 15 include/trace/events/mmc.h TP_PROTO(struct mmc_host *host, struct mmc_request *mrq), host 17 include/trace/events/mmc.h TP_ARGS(host, mrq), host 44 include/trace/events/mmc.h __string(name, mmc_hostname(host)) host 65 include/trace/events/mmc.h __entry->can_retune = host->can_retune; host 66 include/trace/events/mmc.h __entry->doing_retune = host->doing_retune; host 67 include/trace/events/mmc.h __entry->retune_now = host->retune_now; host 68 include/trace/events/mmc.h __entry->need_retune = host->need_retune; host 69 include/trace/events/mmc.h __entry->hold_retune = host->hold_retune; host 70 include/trace/events/mmc.h __entry->retune_period = host->retune_period; host 71 include/trace/events/mmc.h __assign_str(name, mmc_hostname(host)); host 98 include/trace/events/mmc.h TP_PROTO(struct mmc_host *host, struct mmc_request *mrq), host 100 include/trace/events/mmc.h TP_ARGS(host, mrq), host 125 include/trace/events/mmc.h __string(name, mmc_hostname(host)) host 153 include/trace/events/mmc.h __entry->can_retune = host->can_retune; host 154 include/trace/events/mmc.h __entry->doing_retune = host->doing_retune; host 155 include/trace/events/mmc.h __entry->retune_now = host->retune_now; host 156 include/trace/events/mmc.h __entry->need_retune = host->need_retune; host 157 include/trace/events/mmc.h __entry->hold_retune = host->hold_retune; host 158 include/trace/events/mmc.h __entry->retune_period = host->retune_period; host 159 include/trace/events/mmc.h __assign_str(name, mmc_hostname(host)); host 220 include/trace/events/scsi.h __entry->host_no = cmd->device->host->host_no; host 263 include/trace/events/scsi.h __entry->host_no = cmd->device->host->host_no; host 308 include/trace/events/scsi.h __entry->host_no = cmd->device->host->host_no; host 70 include/trace/events/writeback.h bdi_dev_name(mapping ? inode_to_bdi(mapping->host) : host 72 include/trace/events/writeback.h __entry->ino = mapping ? mapping->host->i_ino : 0; host 255 include/trace/events/writeback.h struct inode *inode = mapping ? mapping->host : NULL; host 730 kernel/futex.c inode = READ_ONCE(mapping->host); host 188 mm/cleancache.c pool_id = page->mapping->host->i_sb->cleancache_poolid; host 192 mm/cleancache.c if (cleancache_get_key(page->mapping->host, &key) < 0) host 226 mm/cleancache.c pool_id = page->mapping->host->i_sb->cleancache_poolid; host 228 mm/cleancache.c cleancache_get_key(page->mapping->host, &key) >= 0) { host 247 mm/cleancache.c int pool_id = mapping->host->i_sb->cleancache_poolid; host 255 mm/cleancache.c if (cleancache_get_key(mapping->host, &key) >= 0) { host 275 mm/cleancache.c int pool_id = mapping->host->i_sb->cleancache_poolid; host 281 mm/cleancache.c if (pool_id >= 0 && cleancache_get_key(mapping->host, &key) >= 0) host 86 mm/debug.c if (mapping->host && mapping->host->i_dentry.first) { host 88 mm/debug.c dentry = container_of(mapping->host->i_dentry.first, struct dentry, d_u.d_alias); host 48 mm/fadvise.c bdi = inode_to_bdi(mapping->host); host 114 mm/fadvise.c if (!inode_write_congested(mapping->host)) host 223 mm/filemap.c account_page_cleaned(page, mapping, inode_to_wb(mapping->host)); host 420 mm/filemap.c wbc_attach_fdatawrite_inode(&wbc, mapping->host); host 2014 mm/filemap.c struct inode *inode = mapping->host; host 2285 mm/filemap.c struct inode *inode = mapping->host; host 2483 mm/filemap.c struct inode *inode = mapping->host; host 2643 mm/filemap.c max_idx = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE); host 2908 mm/filemap.c struct inode *inode = file->f_mapping->host; host 2941 mm/filemap.c struct inode *inode = file->f_mapping->host; host 2979 mm/filemap.c struct inode *inode_in = file_in->f_mapping->host; host 2980 mm/filemap.c struct inode *inode_out = file_out->f_mapping->host; host 3148 mm/filemap.c struct inode *inode = mapping->host; host 3352 mm/filemap.c struct inode *inode = mapping->host; host 3439 mm/filemap.c struct inode *inode = file->f_mapping->host; host 564 mm/huge_memory.c if (!IS_DAX(filp->f_mapping->host) || !IS_ENABLED(CONFIG_FS_DAX_PMD)) host 2528 mm/huge_memory.c shmem_uncharge(head->mapping->host, 1); host 2749 mm/huge_memory.c end = DIV_ROUND_UP(i_size_read(mapping->host), PAGE_SIZE); host 761 mm/hugetlb.c struct inode *inode = mapping->host; host 3887 mm/hugetlb.c struct inode *inode = mapping->host; host 3940 mm/hugetlb.c size = i_size_read(mapping->host) >> huge_page_shift(h); host 4047 mm/hugetlb.c size = i_size_read(mapping->host) >> huge_page_shift(h); host 4313 mm/hugetlb.c size = i_size_read(mapping->host) >> huge_page_shift(h); host 4341 mm/hugetlb.c size = i_size_read(mapping->host) >> huge_page_shift(h); host 1568 mm/khugepaged.c if (!shmem_charge(mapping->host, 1)) { host 1580 mm/khugepaged.c if (shmem_getpage(mapping->host, index, &page, host 1775 mm/khugepaged.c shmem_uncharge(mapping->host, nr_none); host 835 mm/madvise.c if (!f || !f->f_mapping || !f->f_mapping->host) { host 97 mm/memory-failure.c if (mapping == NULL || mapping->host == NULL) host 100 mm/memory-failure.c dev = mapping->host->i_sb->s_dev; host 2205 mm/memory.c IS_SWAPFILE(vmf->vma->vm_file->f_mapping->host)) host 1493 mm/mmap.c if (IS_SWAPFILE(file->f_mapping->host)) host 1866 mm/page-writeback.c struct inode *inode = mapping->host; host 2237 mm/page-writeback.c trace_wbc_writepage(wbc, inode_to_bdi(mapping->host)); host 2414 mm/page-writeback.c struct inode *inode = mapping->host; host 2486 mm/page-writeback.c if (mapping->host) { host 2488 mm/page-writeback.c __mark_inode_dirty(mapping->host, I_DIRTY_PAGES); host 2509 mm/page-writeback.c struct inode *inode = mapping->host; host 2621 mm/page-writeback.c struct inode *inode = mapping->host; host 2661 mm/page-writeback.c struct inode *inode = mapping->host; host 2724 mm/page-writeback.c struct inode *inode = mapping->host; host 2741 mm/page-writeback.c if (mapping->host && !mapping_tagged(mapping, host 2743 mm/page-writeback.c sb_clear_inode_writeback(mapping->host); host 2772 mm/page-writeback.c struct inode *inode = mapping->host; host 2794 mm/page-writeback.c if (mapping->host && !on_wblist) host 2795 mm/page-writeback.c sb_mark_inode_writeback(mapping->host); host 2837 mm/page-writeback.c if (bdi_cap_stable_pages_required(inode_to_bdi(page->mapping->host))) host 151 mm/page_io.c struct inode *inode = mapping->host; host 35 mm/readahead.c ra->ra_pages = inode_to_bdi(mapping->host)->ra_pages; host 159 mm/readahead.c struct inode *inode = mapping->host; host 225 mm/readahead.c struct backing_dev_info *bdi = inode_to_bdi(mapping->host); host 387 mm/readahead.c struct backing_dev_info *bdi = inode_to_bdi(mapping->host); host 567 mm/readahead.c if (inode_read_congested(mapping->host)) host 1305 mm/shmem.c inode = mapping->host; host 2477 mm/shmem.c struct inode *inode = mapping->host; host 2498 mm/shmem.c struct inode *inode = mapping->host; host 2692 mm/shmem.c struct inode *inode = mapping->host; host 4221 mm/shmem.c struct inode *inode = mapping->host; host 559 mm/swap_state.c struct inode *inode = si->swap_file->f_mapping->host; host 2385 mm/swapfile.c struct inode *inode = mapping->host; host 2660 mm/swapfile.c inode = mapping->host; host 3147 mm/swapfile.c inode = mapping->host; host 243 mm/truncate.c if (!S_ISREG(mapping->host->i_mode)) host 863 mm/vmscan.c if (!may_write_to_inode(mapping->host, sc)) host 1187 mm/vmscan.c inode_write_congested(mapping->host)) || host 49 net/nfc/hci/core.c void nfc_hci_reset_pipes_per_host(struct nfc_hci_dev *hdev, u8 host) host 54 net/nfc/hci/core.c if (hdev->pipes[i].dest_host != host) host 250 net/nfc/hci/core.c nfc_hci_reset_pipes_per_host(hdev, cleared_info->host); host 61 net/nfc/hci/hci.h u8 host; host 45 net/nfc/nci/hci.c u8 host; host 116 net/nfc/nci/hci.c hdev->pipes[i].host = NCI_HCI_INVALID_HOST; host 121 net/nfc/nci/hci.c static void nci_hci_reset_pipes_per_host(struct nci_dev *ndev, u8 host) host 126 net/nfc/nci/hci.c if (ndev->hci_dev->pipes[i].host == host) { host 128 net/nfc/nci/hci.c ndev->hci_dev->pipes[i].host = NCI_HCI_INVALID_HOST; host 315 net/nfc/nci/hci.c ndev->hci_dev->pipes[new_pipe].host = host 338 net/nfc/nci/hci.c ndev->hci_dev->pipes[delete_info->pipe].host = host 349 net/nfc/nci/hci.c nci_hci_reset_pipes_per_host(ndev, cleared_info->host); host 696 net/nfc/nci/hci.c ndev->hci_dev->pipes[pipe].host = dest_host; host 1596 net/sched/sch_cake.c u16 flow = 0, host = 0; host 1621 net/sched/sch_cake.c host = TC_H_MAJ(res.classid) >> 16; host 1625 net/sched/sch_cake.c return cake_hash(*t, skb, flow_mode, flow, host) + 1; host 235 net/smc/smc.h static inline void hton24(u8 *net, u32 host) host 239 net/smc/smc.h t = cpu_to_be32(host); host 439 net/vmw_vsock/hyperv_transport.c union hvs_service_id vm, host; host 446 net/vmw_vsock/hyperv_transport.c host.srv_id = srv_id_template; host 447 net/vmw_vsock/hyperv_transport.c host.svm_port = vsk->remote_addr.svm_port; host 448 net/vmw_vsock/hyperv_transport.c h->host_srv_id = host.srv_id; host 1140 security/smack/smackfs.c char *host = (char *)&newname.sin_addr.s_addr; host 1176 security/smack/smackfs.c &host[0], &host[1], &host[2], &host[3], &masks, smack); host 1179 security/smack/smackfs.c &host[0], &host[1], &host[2], &host[3], smack); host 405 sound/soc/sof/pcm.c snd_pcm_uframes_t host, dai; host 420 sound/soc/sof/pcm.c host = bytes_to_frames(substream->runtime, host 426 sound/soc/sof/pcm.c spcm->pcm.pcm_id, substream->stream, host, dai); host 428 sound/soc/sof/pcm.c return host; host 1312 sound/soc/sof/topology.c struct sof_ipc_comp_host *host; host 1315 sound/soc/sof/topology.c host = kzalloc(sizeof(*host), GFP_KERNEL); host 1316 sound/soc/sof/topology.c if (!host) host 1320 sound/soc/sof/topology.c host->comp.hdr.size = sizeof(*host); host 1321 sound/soc/sof/topology.c host->comp.hdr.cmd = SOF_IPC_GLB_TPLG_MSG | SOF_IPC_TPLG_COMP_NEW; host 1322 sound/soc/sof/topology.c host->comp.id = swidget->comp_id; host 1323 sound/soc/sof/topology.c host->comp.type = SOF_COMP_HOST; host 1324 sound/soc/sof/topology.c host->comp.pipeline_id = index; host 1325 sound/soc/sof/topology.c host->direction = dir; host 1326 sound/soc/sof/topology.c host->config.hdr.size = sizeof(host->config); host 1328 sound/soc/sof/topology.c ret = sof_parse_tokens(scomp, host, pcm_tokens, host 1337 sound/soc/sof/topology.c ret = sof_parse_tokens(scomp, &host->config, comp_tokens, host 1347 sound/soc/sof/topology.c sof_dbg_comp_config(scomp, &host->config); host 1349 sound/soc/sof/topology.c swidget->private = host; host 1351 sound/soc/sof/topology.c ret = sof_ipc_tx_message(sdev->ipc, host->comp.hdr.cmd, host, host 1352 sound/soc/sof/topology.c sizeof(*host), r, sizeof(*r)); host 1356 sound/soc/sof/topology.c kfree(host); host 46 sound/soc/spear/spdif_in.c static void spdif_in_configure(struct spdif_in_dev *host) host 52 sound/soc/spear/spdif_in.c writel(ctrl, host->io_base + SPDIF_IN_CTRL); host 53 sound/soc/spear/spdif_in.c writel(0xF, host->io_base + SPDIF_IN_IRQ_MASK); host 58 sound/soc/spear/spdif_in.c struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai); host 60 sound/soc/spear/spdif_in.c host->dma_params_rx.filter_data = &host->dma_params; host 61 sound/soc/spear/spdif_in.c dai->capture_dma_data = &host->dma_params_rx; host 69 sound/soc/spear/spdif_in.c struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai); host 74 sound/soc/spear/spdif_in.c writel(0x0, host->io_base + SPDIF_IN_IRQ_MASK); host 77 sound/soc/spear/spdif_in.c static void spdif_in_format(struct spdif_in_dev *host, u32 format) host 79 sound/soc/spear/spdif_in.c u32 ctrl = readl(host->io_base + SPDIF_IN_CTRL); host 91 sound/soc/spear/spdif_in.c writel(ctrl, host->io_base + SPDIF_IN_CTRL); host 98 sound/soc/spear/spdif_in.c struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai); host 105 sound/soc/spear/spdif_in.c host->saved_params.format = format; host 113 sound/soc/spear/spdif_in.c struct spdif_in_dev *host = snd_soc_dai_get_drvdata(dai); host 124 sound/soc/spear/spdif_in.c clk_enable(host->clk); host 125 sound/soc/spear/spdif_in.c spdif_in_configure(host); host 126 sound/soc/spear/spdif_in.c spdif_in_format(host, host->saved_params.format); host 128 sound/soc/spear/spdif_in.c ctrl = readl(host->io_base + SPDIF_IN_CTRL); host 130 sound/soc/spear/spdif_in.c writel(ctrl, host->io_base + SPDIF_IN_CTRL); host 131 sound/soc/spear/spdif_in.c writel(0xF, host->io_base + SPDIF_IN_IRQ_MASK); host 137 sound/soc/spear/spdif_in.c ctrl = readl(host->io_base + SPDIF_IN_CTRL); host 139 sound/soc/spear/spdif_in.c writel(ctrl, host->io_base + SPDIF_IN_CTRL); host 140 sound/soc/spear/spdif_in.c writel(0x0, host->io_base + SPDIF_IN_IRQ_MASK); host 142 sound/soc/spear/spdif_in.c if (host->reset_perip) host 143 sound/soc/spear/spdif_in.c host->reset_perip(); host 144 sound/soc/spear/spdif_in.c clk_disable(host->clk); host 180 sound/soc/spear/spdif_in.c struct spdif_in_dev *host = (struct spdif_in_dev *)arg; host 182 sound/soc/spear/spdif_in.c u32 irq_status = readl(host->io_base + SPDIF_IN_IRQ); host 188 sound/soc/spear/spdif_in.c dev_err(host->dev, "spdif in: fifo write error"); host 190 sound/soc/spear/spdif_in.c dev_err(host->dev, "spdif in: empty fifo read error"); host 192 sound/soc/spear/spdif_in.c dev_err(host->dev, "spdif in: fifo full error"); host 194 sound/soc/spear/spdif_in.c dev_err(host->dev, "spdif in: out of range error"); host 196 sound/soc/spear/spdif_in.c writel(0, host->io_base + SPDIF_IN_IRQ); host 203 sound/soc/spear/spdif_in.c struct spdif_in_dev *host; host 217 sound/soc/spear/spdif_in.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 218 sound/soc/spear/spdif_in.c if (!host) host 221 sound/soc/spear/spdif_in.c host->io_base = io_base; host 222 sound/soc/spear/spdif_in.c host->irq = platform_get_irq(pdev, 0); host 223 sound/soc/spear/spdif_in.c if (host->irq < 0) { host 224 sound/soc/spear/spdif_in.c dev_warn(&pdev->dev, "failed to get IRQ: %d\n", host->irq); host 225 sound/soc/spear/spdif_in.c return host->irq; host 228 sound/soc/spear/spdif_in.c host->clk = devm_clk_get(&pdev->dev, NULL); host 229 sound/soc/spear/spdif_in.c if (IS_ERR(host->clk)) host 230 sound/soc/spear/spdif_in.c return PTR_ERR(host->clk); host 237 sound/soc/spear/spdif_in.c host->dma_params.data = pdata->dma_params; host 238 sound/soc/spear/spdif_in.c host->dma_params.addr = res_fifo->start; host 239 sound/soc/spear/spdif_in.c host->dma_params.max_burst = 16; host 240 sound/soc/spear/spdif_in.c host->dma_params.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 241 sound/soc/spear/spdif_in.c host->reset_perip = pdata->reset_perip; host 243 sound/soc/spear/spdif_in.c host->dev = &pdev->dev; host 244 sound/soc/spear/spdif_in.c dev_set_drvdata(&pdev->dev, host); host 246 sound/soc/spear/spdif_in.c ret = devm_request_irq(&pdev->dev, host->irq, spdif_in_irq, 0, host 247 sound/soc/spear/spdif_in.c "spdif-in", host); host 258 sound/soc/spear/spdif_in.c return devm_spear_pcm_platform_register(&pdev->dev, &host->config, host 44 sound/soc/spear/spdif_out.c static void spdif_out_configure(struct spdif_out_dev *host) host 46 sound/soc/spear/spdif_out.c writel(SPDIF_OUT_RESET, host->io_base + SPDIF_OUT_SOFT_RST); host 48 sound/soc/spear/spdif_out.c writel(readl(host->io_base + SPDIF_OUT_SOFT_RST) & ~SPDIF_OUT_RESET, host 49 sound/soc/spear/spdif_out.c host->io_base + SPDIF_OUT_SOFT_RST); host 54 sound/soc/spear/spdif_out.c host->io_base + SPDIF_OUT_CFG); host 56 sound/soc/spear/spdif_out.c writel(0x7F, host->io_base + SPDIF_OUT_INT_STA_CLR); host 57 sound/soc/spear/spdif_out.c writel(0x7F, host->io_base + SPDIF_OUT_INT_EN_CLR); host 63 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = snd_soc_dai_get_drvdata(cpu_dai); host 69 sound/soc/spear/spdif_out.c ret = clk_enable(host->clk); host 73 sound/soc/spear/spdif_out.c host->running = true; host 74 sound/soc/spear/spdif_out.c spdif_out_configure(host); host 82 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = snd_soc_dai_get_drvdata(dai); host 87 sound/soc/spear/spdif_out.c clk_disable(host->clk); host 88 sound/soc/spear/spdif_out.c host->running = false; host 91 sound/soc/spear/spdif_out.c static void spdif_out_clock(struct spdif_out_dev *host, u32 core_freq, host 96 sound/soc/spear/spdif_out.c clk_set_rate(host->clk, core_freq); host 97 sound/soc/spear/spdif_out.c divider = DIV_ROUND_CLOSEST(clk_get_rate(host->clk), (rate * 128)); host 99 sound/soc/spear/spdif_out.c ctrl = readl(host->io_base + SPDIF_OUT_CTRL); host 102 sound/soc/spear/spdif_out.c writel(ctrl, host->io_base + SPDIF_OUT_CTRL); host 109 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = snd_soc_dai_get_drvdata(dai); host 144 sound/soc/spear/spdif_out.c spdif_out_clock(host, core_freq, rate); host 145 sound/soc/spear/spdif_out.c host->saved_params.core_freq = core_freq; host 146 sound/soc/spear/spdif_out.c host->saved_params.rate = rate; host 154 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = snd_soc_dai_get_drvdata(dai); host 165 sound/soc/spear/spdif_out.c ctrl = readl(host->io_base + SPDIF_OUT_CTRL); host 167 sound/soc/spear/spdif_out.c if (!host->saved_params.mute) host 172 sound/soc/spear/spdif_out.c writel(ctrl, host->io_base + SPDIF_OUT_CTRL); host 178 sound/soc/spear/spdif_out.c ctrl = readl(host->io_base + SPDIF_OUT_CTRL); host 181 sound/soc/spear/spdif_out.c writel(ctrl, host->io_base + SPDIF_OUT_CTRL); host 193 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = snd_soc_dai_get_drvdata(dai); host 196 sound/soc/spear/spdif_out.c host->saved_params.mute = mute; host 197 sound/soc/spear/spdif_out.c val = readl(host->io_base + SPDIF_OUT_CTRL); host 203 sound/soc/spear/spdif_out.c if (host->running) host 209 sound/soc/spear/spdif_out.c writel(val, host->io_base + SPDIF_OUT_CTRL); host 217 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = snd_soc_dai_get_drvdata(cpu_dai); host 219 sound/soc/spear/spdif_out.c ucontrol->value.integer.value[0] = host->saved_params.mute; host 227 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = snd_soc_dai_get_drvdata(cpu_dai); host 229 sound/soc/spear/spdif_out.c if (host->saved_params.mute == ucontrol->value.integer.value[0]) host 243 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = snd_soc_dai_get_drvdata(dai); host 245 sound/soc/spear/spdif_out.c host->dma_params_tx.filter_data = &host->dma_params; host 246 sound/soc/spear/spdif_out.c dai->playback_dma_data = &host->dma_params_tx; host 279 sound/soc/spear/spdif_out.c struct spdif_out_dev *host; host 284 sound/soc/spear/spdif_out.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 285 sound/soc/spear/spdif_out.c if (!host) host 289 sound/soc/spear/spdif_out.c host->io_base = devm_ioremap_resource(&pdev->dev, res); host 290 sound/soc/spear/spdif_out.c if (IS_ERR(host->io_base)) host 291 sound/soc/spear/spdif_out.c return PTR_ERR(host->io_base); host 293 sound/soc/spear/spdif_out.c host->clk = devm_clk_get(&pdev->dev, NULL); host 294 sound/soc/spear/spdif_out.c if (IS_ERR(host->clk)) host 295 sound/soc/spear/spdif_out.c return PTR_ERR(host->clk); host 299 sound/soc/spear/spdif_out.c host->dma_params.data = pdata->dma_params; host 300 sound/soc/spear/spdif_out.c host->dma_params.addr = res->start + SPDIF_OUT_FIFO_DATA; host 301 sound/soc/spear/spdif_out.c host->dma_params.max_burst = 16; host 302 sound/soc/spear/spdif_out.c host->dma_params.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES; host 304 sound/soc/spear/spdif_out.c dev_set_drvdata(&pdev->dev, host); host 311 sound/soc/spear/spdif_out.c return devm_spear_pcm_platform_register(&pdev->dev, &host->config, host 319 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = dev_get_drvdata(&pdev->dev); host 321 sound/soc/spear/spdif_out.c if (host->running) host 322 sound/soc/spear/spdif_out.c clk_disable(host->clk); host 330 sound/soc/spear/spdif_out.c struct spdif_out_dev *host = dev_get_drvdata(&pdev->dev); host 332 sound/soc/spear/spdif_out.c if (host->running) { host 333 sound/soc/spear/spdif_out.c clk_enable(host->clk); host 334 sound/soc/spear/spdif_out.c spdif_out_configure(host); host 335 sound/soc/spear/spdif_out.c spdif_out_clock(host, host->saved_params.core_freq, host 336 sound/soc/spear/spdif_out.c host->saved_params.rate); host 191 sound/soc/sunxi/sun4i-spdif.c static void sun4i_spdif_configure(struct sun4i_spdif_dev *host) host 193 sound/soc/sunxi/sun4i-spdif.c const struct sun4i_spdif_quirks *quirks = host->quirks; host 196 sound/soc/sunxi/sun4i-spdif.c regmap_write(host->regmap, SUN4I_SPDIF_CTL, SUN4I_SPDIF_CTL_RESET); host 199 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_FCTL, host 203 sound/soc/sunxi/sun4i-spdif.c regmap_write(host->regmap, SUN4I_SPDIF_TXCNT, 0); host 207 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host) host 210 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_TXCFG, host 215 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_TXCFG, host 219 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_INT, host 223 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_CTL, host 228 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host) host 231 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_TXCFG, host 235 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_INT, host 239 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_CTL, host 247 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host = snd_soc_dai_get_drvdata(rtd->cpu_dai); host 252 sound/soc/sunxi/sun4i-spdif.c sun4i_spdif_configure(host); host 267 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host = snd_soc_dai_get_drvdata(cpu_dai); host 268 sound/soc/sunxi/sun4i-spdif.c struct platform_device *pdev = host->pdev; host 315 sound/soc/sunxi/sun4i-spdif.c ret = clk_set_rate(host->spdif_clk, mclk); host 322 sound/soc/sunxi/sun4i-spdif.c regmap_update_bits(host->regmap, SUN4I_SPDIF_FCTL, host 354 sound/soc/sunxi/sun4i-spdif.c regmap_write(host->regmap, SUN4I_SPDIF_TXCFG, reg_val); host 363 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host = snd_soc_dai_get_drvdata(dai); host 372 sound/soc/sunxi/sun4i-spdif.c sun4i_snd_txctrl_on(substream, host); host 378 sound/soc/sunxi/sun4i-spdif.c sun4i_snd_txctrl_off(substream, host); host 390 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host = snd_soc_dai_get_drvdata(dai); host 392 sound/soc/sunxi/sun4i-spdif.c snd_soc_dai_init_dma_data(dai, &host->dma_params_tx, NULL); host 477 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host = dev_get_drvdata(dev); host 479 sound/soc/sunxi/sun4i-spdif.c clk_disable_unprepare(host->spdif_clk); host 480 sound/soc/sunxi/sun4i-spdif.c clk_disable_unprepare(host->apb_clk); host 487 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host = dev_get_drvdata(dev); host 490 sound/soc/sunxi/sun4i-spdif.c ret = clk_prepare_enable(host->spdif_clk); host 493 sound/soc/sunxi/sun4i-spdif.c ret = clk_prepare_enable(host->apb_clk); host 495 sound/soc/sunxi/sun4i-spdif.c clk_disable_unprepare(host->spdif_clk); host 502 sound/soc/sunxi/sun4i-spdif.c struct sun4i_spdif_dev *host; host 510 sound/soc/sunxi/sun4i-spdif.c host = devm_kzalloc(&pdev->dev, sizeof(*host), GFP_KERNEL); host 511 sound/soc/sunxi/sun4i-spdif.c if (!host) host 514 sound/soc/sunxi/sun4i-spdif.c host->pdev = pdev; host 517 sound/soc/sunxi/sun4i-spdif.c memcpy(&host->cpu_dai_drv, &sun4i_spdif_dai, sizeof(sun4i_spdif_dai)); host 518 sound/soc/sunxi/sun4i-spdif.c host->cpu_dai_drv.name = dev_name(&pdev->dev); host 531 sound/soc/sunxi/sun4i-spdif.c host->quirks = quirks; host 533 sound/soc/sunxi/sun4i-spdif.c host->regmap = devm_regmap_init_mmio(&pdev->dev, base, host 537 sound/soc/sunxi/sun4i-spdif.c host->apb_clk = devm_clk_get(&pdev->dev, "apb"); host 538 sound/soc/sunxi/sun4i-spdif.c if (IS_ERR(host->apb_clk)) { host 540 sound/soc/sunxi/sun4i-spdif.c return PTR_ERR(host->apb_clk); host 543 sound/soc/sunxi/sun4i-spdif.c host->spdif_clk = devm_clk_get(&pdev->dev, "spdif"); host 544 sound/soc/sunxi/sun4i-spdif.c if (IS_ERR(host->spdif_clk)) { host 546 sound/soc/sunxi/sun4i-spdif.c return PTR_ERR(host->spdif_clk); host 549 sound/soc/sunxi/sun4i-spdif.c host->dma_params_tx.addr = res->start + quirks->reg_dac_txdata; host 550 sound/soc/sunxi/sun4i-spdif.c host->dma_params_tx.maxburst = 8; host 551 sound/soc/sunxi/sun4i-spdif.c host->dma_params_tx.addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES; host 553 sound/soc/sunxi/sun4i-spdif.c platform_set_drvdata(pdev, host); host 556 sound/soc/sunxi/sun4i-spdif.c host->rst = devm_reset_control_get_optional_exclusive(&pdev->dev, host 558 sound/soc/sunxi/sun4i-spdif.c if (IS_ERR(host->rst) && PTR_ERR(host->rst) == -EPROBE_DEFER) { host 563 sound/soc/sunxi/sun4i-spdif.c if (!IS_ERR(host->rst)) host 564 sound/soc/sunxi/sun4i-spdif.c reset_control_deassert(host->rst); host 340 tools/perf/builtin-kmem.c struct machine *machine = &kmem_session->machines.host; host 390 tools/perf/builtin-kmem.c struct machine *machine = &kmem_session->machines.host; host 994 tools/perf/builtin-kmem.c struct machine *machine = &session->machines.host; host 1055 tools/perf/builtin-kmem.c struct machine *machine = &session->machines.host; host 1104 tools/perf/builtin-kmem.c struct machine *machine = &session->machines.host; host 1459 tools/perf/builtin-kvm.c machine__synthesize_threads(&kvm->session->machines.host, &kvm->opts.target, host 1100 tools/perf/builtin-record.c &rec->session->machines.host, host 1222 tools/perf/builtin-record.c struct machine *machine = &session->machines.host; host 1492 tools/perf/builtin-record.c struct machine *machine = &session->machines.host; host 526 tools/perf/builtin-report.c struct map *kernel_map = machine__kernel_map(&rep->session->machines.host); host 773 tools/perf/builtin-report.c struct machine *machine = &session->machines.host; host 1468 tools/perf/builtin-report.c &session->machines.host) < 0) { host 2802 tools/perf/builtin-sched.c struct machine *m = &session->machines.host; host 3806 tools/perf/builtin-script.c &session->machines.host) < 0) { host 1985 tools/perf/builtin-stat.c &perf_stat.session->machines.host); host 1162 tools/perf/builtin-top.c machine = &session->machines.host; host 1168 tools/perf/builtin-top.c machine = &session->machines.host; host 1185 tools/perf/builtin-top.c machine = &session->machines.host; host 1247 tools/perf/builtin-top.c &top->session->machines.host, host 1252 tools/perf/builtin-top.c machine__synthesize_threads(&top->session->machines.host, &opts->target, host 111 tools/perf/builtin-trace.c struct machine *host; host 1230 tools/perf/builtin-trace.c struct thread *thread = machine__find_thread(trace->host, pid, pid); host 1410 tools/perf/builtin-trace.c trace->host = machine__new_host(); host 1411 tools/perf/builtin-trace.c if (trace->host == NULL) host 1414 tools/perf/builtin-trace.c err = trace_event__register_resolver(trace->host, trace__machine__resolve_kernel_addr); host 1418 tools/perf/builtin-trace.c err = __machine__synthesize_threads(trace->host, &trace->tool, &trace->opts.target, host 1430 tools/perf/builtin-trace.c machine__exit(trace->host); host 1431 tools/perf/builtin-trace.c trace->host = NULL; host 1961 tools/perf/builtin-trace.c thread = machine__findnew_thread(trace->host, sample->pid, sample->tid); host 2037 tools/perf/builtin-trace.c thread = machine__findnew_thread(trace->host, sample->pid, sample->tid); host 2066 tools/perf/builtin-trace.c if (machine__resolve(trace->host, &al, sample) < 0) host 2108 tools/perf/builtin-trace.c thread = machine__findnew_thread(trace->host, sample->pid, sample->tid); host 2194 tools/perf/builtin-trace.c struct thread *child = machine__find_thread(trace->host, ret, ret); host 2230 tools/perf/builtin-trace.c struct thread *thread = machine__findnew_thread(trace->host, sample->pid, sample->tid); host 2293 tools/perf/builtin-trace.c struct thread *thread = machine__findnew_thread(trace->host, host 2364 tools/perf/builtin-trace.c thread = machine__findnew_thread(trace->host, sample->pid, sample->tid); host 2462 tools/perf/builtin-trace.c thread = machine__findnew_thread(trace->host, sample->pid, sample->tid); host 2554 tools/perf/builtin-trace.c thread = machine__findnew_thread(trace->host, sample->pid, sample->tid); host 2685 tools/perf/builtin-trace.c trace__process_event(trace, trace->host, event, sample); host 3162 tools/perf/builtin-trace.c struct thread *thread = machine__find_thread(trace->host, pids[0], pids[0]); host 3165 tools/perf/builtin-trace.c struct thread *parent = machine__find_thread(trace->host, thread->ppid, thread->ppid); host 3603 tools/perf/builtin-trace.c trace->host = &session->machines.host; host 3771 tools/perf/builtin-trace.c DECLARE_RESORT_RB_MACHINE_THREADS(threads, trace->host, i); host 31 tools/perf/tests/thread-mg-share.c machine = &machines.host; host 8 tools/perf/trace/beauty/pid.c struct thread *thread = machine__findnew_thread(trace->host, pid, pid); host 212 tools/perf/util/arm-spe.c spe->machine = &session->machines.host; /* No kvm support */ host 367 tools/perf/util/build-id.c int err = machine__write_buildid_table(&session->machines.host, fd); host 402 tools/perf/util/build-id.c err = machine__hit_all_dsos(&session->machines.host); host 858 tools/perf/util/build-id.c ret = machine__cache_build_ids(&session->machines.host); host 876 tools/perf/util/build-id.c bool ret = machine__read_build_ids(&session->machines.host, with_hits); host 2540 tools/perf/util/cs-etm.c etm->machine = &session->machines.host; host 423 tools/perf/util/evsel.c MOD_PRINT(host, 'H'); host 3545 tools/perf/util/header.c session->machines.host.env = &header->env; host 869 tools/perf/util/intel-bts.c bts->machine = &session->machines.host; /* No kvm support */ host 3104 tools/perf/util/intel-pt.c pt->machine = &session->machines.host; /* No kvm support */ host 250 tools/perf/util/machine.c machine__init(&machines->host, "", HOST_KERNEL_ID); host 256 tools/perf/util/machine.c machine__exit(&machines->host); host 297 tools/perf/util/machine.c machines->host.comm_exec = comm_exec; host 314 tools/perf/util/machine.c return &machines->host; host 382 tools/perf/util/machine.c machines->host.id_hdr_size = id_hdr_size; host 806 tools/perf/util/machine.c size_t ret = __dsos__fprintf(&machines->host.dsos.head, fp); host 826 tools/perf/util/machine.c size_t ret = machine__fprintf_dsos_buildid(&machines->host, fp, skip, parm); host 1180 tools/perf/util/machine.c machine__destroy_kernel_maps(&machines->host); host 2574 tools/perf/util/machine.c rc = machine__for_each_thread(&machines->host, fn, priv); host 143 tools/perf/util/machine.h struct machine host; host 1135 tools/perf/util/s390-cpumsf.c sf->machine = &session->machines.host; /* No kvm support */ host 146 tools/perf/util/session.c int ret = machine__create_kernel_maps(&session->machines.host); host 235 tools/perf/util/session.c session->machines.host.env = &perf_env; host 238 tools/perf/util/session.c session->machines.host.single_address_space = host 239 tools/perf/util/session.c perf_env__single_address_space(session->machines.host.env); host 270 tools/perf/util/session.c machine__delete_threads(&session->machines.host); host 1315 tools/perf/util/session.c return &machines->host; host 1694 tools/perf/util/session.c return machine__findnew_thread(&session->machines.host, -1, pid); host 1709 tools/perf/util/session.c thread = machine__findnew_thread(&session->machines.host, 0, 0); host 2296 tools/perf/util/session.c return machine__fprintf(&session->machines.host, fp); host 306 tools/testing/selftests/net/tcp_mmap.c char *host = NULL; host 326 tools/testing/selftests/net/tcp_mmap.c host = optarg; host 366 tools/testing/selftests/net/tcp_mmap.c setup_sockaddr(cfg_family, host, &listenaddr); host 398 tools/testing/selftests/net/tcp_mmap.c setup_sockaddr(cfg_family, host, &addr); host 187 tools/usb/usbip/libsrc/vhci_driver.c static int read_record(int rhport, char *host, unsigned long host_len, host 230 tools/usb/usbip/libsrc/vhci_driver.c if (sscanf(buffer, "%s %s %s\n", host, port, busid) != 3) { host 429 tools/usb/usbip/libsrc/vhci_driver.c char host[NI_MAXHOST] = "unknown host"; host 438 tools/usb/usbip/libsrc/vhci_driver.c ret = read_record(idev->port, host, sizeof(host), serv, sizeof(serv), host 456 tools/usb/usbip/libsrc/vhci_driver.c host, serv, remote_busid); host 39 tools/usb/usbip/src/usbip_attach.c static int record_connection(char *host, char *port, char *busid, int rhport) host 68 tools/usb/usbip/src/usbip_attach.c host, port, busid); host 174 tools/usb/usbip/src/usbip_attach.c static int attach_device(char *host, char *busid) host 180 tools/usb/usbip/src/usbip_attach.c sockfd = usbip_net_tcp_connect(host, usbip_port_string); host 192 tools/usb/usbip/src/usbip_attach.c rc = record_connection(host, usbip_port_string, busid, rhport); host 209 tools/usb/usbip/src/usbip_attach.c char *host = NULL; host 222 tools/usb/usbip/src/usbip_attach.c host = optarg; host 233 tools/usb/usbip/src/usbip_attach.c if (!host || !busid) host 236 tools/usb/usbip/src/usbip_attach.c ret = attach_device(host, busid); host 43 tools/usb/usbip/src/usbip_list.c static int get_exported_devices(char *host, int sockfd) host 78 tools/usb/usbip/src/usbip_list.c info("no exportable devices found on %s", host); host 84 tools/usb/usbip/src/usbip_list.c printf(" - %s\n", host); host 127 tools/usb/usbip/src/usbip_list.c static int list_exported_devices(char *host) host 132 tools/usb/usbip/src/usbip_list.c sockfd = usbip_net_tcp_connect(host, usbip_port_string); host 134 tools/usb/usbip/src/usbip_list.c err("could not connect to %s:%s: %s", host, host 138 tools/usb/usbip/src/usbip_list.c dbg("connected to %s:%s", host, usbip_port_string); host 140 tools/usb/usbip/src/usbip_list.c rc = get_exported_devices(host, sockfd); host 142 tools/usb/usbip/src/usbip_list.c err("failed to get device list from %s", host); host 313 tools/usb/usbip/src/usbipd.c char host[NI_MAXHOST], port[NI_MAXSERV]; host 324 tools/usb/usbip/src/usbipd.c rc = getnameinfo((struct sockaddr *)&ss, len, host, sizeof(host), host 332 tools/usb/usbip/src/usbipd.c info("denied access from %s", host); host 337 tools/usb/usbip/src/usbipd.c info("connection from %s:%s", host, port); host 426 tools/usb/usbip/src/usbipd.c static struct addrinfo *do_getaddrinfo(char *host, int ai_family) host 436 tools/usb/usbip/src/usbipd.c rc = getaddrinfo(host, usbip_port_string, &hints, &ai_head); host 295 tools/virtio/ringtest/main.c pthread_t host, guest; host 381 tools/virtio/ringtest/main.c ret = pthread_create(&host, NULL, start_host, host_arg); host 388 tools/virtio/ringtest/main.c ret = pthread_join(host, &tret); host 74 tools/virtio/ringtest/ring.c } host; host 95 tools/virtio/ringtest/ring.c host.used_idx = 0; host 96 tools/virtio/ringtest/ring.c host.called_used_idx = -1; host 213 tools/virtio/ringtest/ring.c event->kick_index = host.used_idx; host 221 tools/virtio/ringtest/ring.c unsigned head = (ring_size - 1) & host.used_idx; host 228 tools/virtio/ringtest/ring.c unsigned head = (ring_size - 1) & host.used_idx; host 250 tools/virtio/ringtest/ring.c host.used_idx++; host 263 tools/virtio/ringtest/ring.c host.used_idx, host 264 tools/virtio/ringtest/ring.c host.called_used_idx); host 266 tools/virtio/ringtest/ring.c host.called_used_idx = host.used_idx; host 61 tools/virtio/ringtest/virtio_ring_0_9.c } host; host 87 tools/virtio/ringtest/virtio_ring_0_9.c host.used_idx = 0; host 88 tools/virtio/ringtest/virtio_ring_0_9.c host.called_used_idx = -1; host 252 tools/virtio/ringtest/virtio_ring_0_9.c vring_avail_event(&ring) = host.used_idx; host 260 tools/virtio/ringtest/virtio_ring_0_9.c unsigned head = host.used_idx; host 272 tools/virtio/ringtest/virtio_ring_0_9.c unsigned used_idx = host.used_idx; host 313 tools/virtio/ringtest/virtio_ring_0_9.c host.used_idx++; host 314 tools/virtio/ringtest/virtio_ring_0_9.c ring.used->idx = host.used_idx; host 327 tools/virtio/ringtest/virtio_ring_0_9.c host.used_idx, host 328 tools/virtio/ringtest/virtio_ring_0_9.c host.called_used_idx); host 330 tools/virtio/ringtest/virtio_ring_0_9.c host.called_used_idx = host.used_idx;