summaryrefslogtreecommitdiffstats
path: root/drivers
Commit message (Collapse)AuthorAgeFilesLines
* sparc: video drivers: add facility levelRobert Reif2008-04-278-8/+8
| | | | | | | Add KERN_ facility level to sparc video drivers. Signed-off-by: Robert Reif <reif@earthlink.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc: tcx.c make tcx_init and tcx_exit staticRobert Reif2008-04-271-2/+2
| | | | | | | Make tcx_init and tcx_exit static. Signed-off-by: Robert Reif <reif@earthlink.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc: ffb.c make ffb_init and ffb_exit staticRobert Reif2008-04-271-3/+2
| | | | | | | | Make ffb_init and ffb_exit static. Remove unnecessary function prototype. Signed-off-by: Robert Reif <reif@earthlink.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc: cg14.c make cg14_init and cg15_exit staticRobert Reif2008-04-271-2/+2
| | | | | | | Make cg14_init and cg14_exit static. Signed-off-by: Robert Reif <reif@earthlink.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc: bw2.c fix bw2_exitRobert Reif2008-04-271-2/+1
| | | | | | | Fix void function bw2_exit returning value. Signed-off-by: Robert Reif <reif@earthlink.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc: sunzilog.c remove unused argumentRobert Reif2008-04-261-2/+2
| | | | | | | Remove unused argument in function call. Signed-off-by: Robert Reif <reif@earthlink.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* sparc: fix drivers/video/tcx.c warningRobert Reif2008-04-261-2/+2
| | | | | | | | | | | | | | | | Fix compile warning: CC drivers/video/tcx.o drivers/video/tcx.c: In function ‘tcx_init_one’: drivers/video/tcx.c:477: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 4 has type ‘resource_size_t’ This was the only sparc driver to use the resource directly in the printk so I changed it to physbase like the other drivers. Boot tested on SS4. Signed-off-by: Robert Reif <reif@earthlink.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* input: Rewrite sparcspkr device probing.David S. Miller2008-04-261-78/+184
| | | | | | | | | | | Remove all dependencies on EBUS and ISA bus layers, which we'd like to remove as they are superfluous. While we're here, add support for proper frequency changing on BBC beep devices. Unlike the comments that were here, this device can in fact use a programmable frequency. Signed-off-by: David S. Miller <davem@davemloft.net>
* ide: constify struct ide_dma_opsBartlomiej Zolnierkiewicz2008-04-2620-52/+125
| | | | | | | | | | | | | | | | | * Export ide_dma_exec_cmd() and __ide_dma_test_irq(). * Constify struct ide_dma_ops. * Always set hwif->dma_ops to &sff_dma_ops in ide_setup_dma() (it is later overriden by ide_init_port() if needed) and drop 'const struct ide_port_info *d' argument. While at it: * Rename __ide_dma_test_irq() to ide_dma_test_irq(). Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add struct ide_dma_ops (take 3)Bartlomiej Zolnierkiewicz2008-04-2630-340/+352
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add struct ide_dma_ops and convert core code + drivers to use it. While at it: * Drop "ide_" prefix from ->ide_dma_end and ->ide_dma_test_irq methods. * Drop "ide_" "infixes" from DMA methods. * au1xxx-ide.c: - use auide_dma_{test_irq,end}() directly in auide_dma_timeout() * pdc202xx_old.c: - drop "old_" "infixes" from DMA methods * siimage.c: - add siimage_dma_test_irq() helper - print SATA warning in siimage_init_one() * Remove no longer needed ->init_hwif implementations. v2: * Changes based on review from Sergei: - s/siimage_ide_dma_test_irq/siimage_dma_test_irq/ - s/drive->hwif/hwif/ in idefloppy_pc_intr(). - fix patch description w.r.t. au1xxx-ide changes - fix au1xxx-ide build - fix naming for cmd64*_dma_ops - drop "ide_" and "old_" infixes - s/hpt3xxx_dma_ops/hpt37x_dma_ops/ - s/hpt370x_dma_ops/hpt370_dma_ops/ - use correct DMA ops for HPT302/N, HPT371/N and HPT374 - s/it821x_smart_dma_ops/it821x_pass_through_dma_ops/ v3: * Two bugs slipped in v2 (noticed by Sergei): - use correct DMA ops for HPT374 (for real this time) - handle HPT370/HPT370A properly Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add IDE_HFLAG_SERIALIZE_DMA host flagBartlomiej Zolnierkiewicz2008-04-262-5/+7
| | | | | | | | | * Add IDE_HFLAG_SERIALIZE_DMA host flag to serialize ports if DMA is available and handle it in ide_init_port(). * Convert sl82c105 host driver to use this new flag. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* sl82c105: check bridge revision in sl82c105_init_one()Bartlomiej Zolnierkiewicz2008-04-261-18/+17
| | | | | | | | | | | | * Make sl82c105_bridge_revision() return 'u8' instead of 'unsigned long'. * Check bridge revision in sl82c105_init_one(). While at: * Use proper KERN_ level for printk(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* au1xxx-ide: use ->init_dma methodBartlomiej Zolnierkiewicz2008-04-261-9/+6
| | | | | | | | | | | | * Pass 'ide_hwif_t *hwif' instead of '_auide_hwif *auide' to auide_ddma_init(). * Add 'const struct ide_port_info *d' argument to auide_ddma_init(). * Convert the driver to use ->init_dma method. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* palm_bk3710: use ->init_dma methodBartlomiej Zolnierkiewicz2008-04-261-6/+17
| | | | | | | | | | * Move DMA setup to palm_bk3710_init_dma(). * Convert the driver to use ->init_dma method. Cc: Anton Vorontsov <avorontsov@ru.mvista.com> Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* sgiioc4: use ->init_dma methodBartlomiej Zolnierkiewicz2008-04-261-17/+12
| | | | | | | | | | | | | | | | | | | * Move dma_base check from sgiioc4_ide_setup_pci_device() to ide_dma_sgiioc4(). * Replace ide_dma_sgiioc4() 'unsigned long dma_base' argument by 'const struct ide_port_info *d'. * Move hwif->INB setup from ide_init_sgiioc4() to sgiioc4_ide_setup_pci_device(). * Move ide_init_sgiioc4() call from sgiioc4_ide_setup_pci_device() to ide_dma_sgiioc4(). * Convert the driver to use ->init_dma method. Cc: Jeremy Higdon <jeremy@sgi.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* icside: use ->init_dma methodBartlomiej Zolnierkiewicz2008-04-261-8/+11
| | | | | | | | | | | | * Add 'const struct ide_port_info *d' argument to icside_dma_init(). * Make icside_dma_init() return an error value and add icside_dma_off_init() (->init_dma implementation for case when DMA cannot be enabled). * Convert the driver to use ->init_dma method. Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide-pmac: use ->init_dma methodBartlomiej Zolnierkiewicz2008-04-261-8/+12
| | | | | | | | | | | | | | * Move pmif->dma_regs check from pmac_ide_setup_device() to pmac_ide_init_dma(). * Get 'pmif' from 'hwif->hwif_data' in pmac_ide_init_dma() and replace 'pmac_ide_hwif_t *pmif' argument by 'const struct ide_port_info *d'. * Add pmac_ide_init_dma() implementation for CONFIG_BLK_DEV_IDEDMA_PMAC=n case and convert the driver to use ->init_dma method. Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: do complete DMA setup in ->init_dma method (take 2)Bartlomiej Zolnierkiewicz2008-04-264-35/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Make ide_hwif_setup_dma() return an error value. * Pass 'const struct ide_port_info *d' instead of 'unsigned long dmabase' to ->init_dma method and make it return an error value. * Rename ide_get_or_set_dma_base() to ide_pci_dma_base(), change ordering of its arguments and then export it. * Export ide_pci_set_master(). * Do complete DMA setup inside ->init_dma method and update ->init_dma users accordingly. * Sanitize code for DMA setup in ide_init_port(). v2: * Fix for CONFIG_BLK_DEV_IDEDMA_PCI=n configs (from Jiri Slaby <jirislaby@gmail.com>): Fix following compiler warning by returning EINVAL: In file included from ANYTHING-INCLUDING-IDE.H:45: include/linux/ide.h: In function ‘ide_hwif_setup_dma’: include/linux/ide.h:1022: warning: no return statement in function returning non-void Cc: Jiri Slaby <jirislaby@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* au1xxx-ide: fix MWDMA supportBartlomiej Zolnierkiewicz2008-04-261-47/+2
| | | | | | | | | Always use "fast" MWDMA support and remove dma_{black,white}_list (they were based on completely bogus ->ide_dma_check implementation which didn't set neither the host controller timings nor the device for the desired transfer mode). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: cleanup ide_setup_dma()Bartlomiej Zolnierkiewicz2008-04-263-18/+17
| | | | | | | | | | | * There is no need to call ide_release_dma_engine(). * Move the code up to (and including) ide_allocate_dma_engine() call to the callers of ide_setup_dma(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: factor out setting PCI bus-mastering from ide_hwif_setup_dma()Bartlomiej Zolnierkiewicz2008-04-261-24/+37
| | | | | | | | | | | | | | | Factor out setting PCI bus-mastering from ide_hwif_setup_dma() to ide_pci_set_master() helper. While at it: * don't read PCI Command register if not necessary * use PCI device name instead of hwif->name * cleanup ide_hwif_setup_dma() a bit Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: export ide_allocate_dma_engine()Bartlomiej Zolnierkiewicz2008-04-262-8/+4
| | | | | | | Export ide_allocate_dma_engine() and use it in trm290 host driver. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: move ide_setup_dma() call out from ->init_dma methodBartlomiej Zolnierkiewicz2008-04-263-7/+3
| | | | | | | There should be no functional changes caused by this patch. Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* alim15x3: skip DMA initialization completely on revs < 0x20Bartlomiej Zolnierkiewicz2008-04-261-2/+4
| | | | | | | | | Skip DMA initialization completely on revs < 0x20 by setting IDE_HFLAG_NO_DMA host flag and resetting DMA host masks in alim15x3_init_one() (currently ide_hwif_setup_dma() will try to obtain DMA base and setup PCI bus-mastering but init_dma_ali15x3() will fail). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* pdc202xx_old: remove init_dma_pdc202xx()Bartlomiej Zolnierkiewicz2008-04-261-16/+7
| | | | | | | Do PDC202xx specific DMA initialization in init_chipset_pdc202xx() and remove no longer needed init_dma_pdc202xx(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: don't display "BIOS" settings in ide_setup_dma()Bartlomiej Zolnierkiewicz2008-04-261-9/+2
| | | | | | | | | | | Nowadays BIOS info is not very useful and only confuses users since: - IDE always tries to use DMA - BIOS info may not be accurate with modular IDE/libata Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: remove ->cds field from ide_hwif_t (take 2)Bartlomiej Zolnierkiewicz2008-04-264-5/+4
| | | | | | | | | | | | | | | | | | | * Use hwif->name instead of cds->name in ide_allocate_dma_engine(). * Use pci_name(dev) instead of cds->name in init_dma_pdc202xx(). * Remove no longer needed ->cds field from ide_hwif_t. v2: * scc_pata.c also needs to be updated now (noticed by Stephen Rothwell). There should be no functional changes caused by this patch. Cc: Kou Ishizaki <kou.ishizaki@toshiba.co.jp> Cc: Akira Iguchi <akira2.iguchi@toshiba.co.jp> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: remove ide_dma_iobase()Bartlomiej Zolnierkiewicz2008-04-261-27/+7
| | | | | | | | | | | | | | * ide_mapped_mmio_dma() and ide_iomio_dma() are called only by ide_dma_iobase() so inline them there. * ide_dma_iobase() is called only by ide_setup_dma() so inline it there. * Setup hwif->extra_base also if hwif->mmio flag is set. There should be no functional changes casued by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: remove ->extra field from struct ide_port_infoBartlomiej Zolnierkiewicz2008-04-264-12/+1
| | | | | | | | | Always setup hwif->extra_base in ide_iomio_dma() and remove no longer needed ->extra field from struct ide_port_info. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: replace remaining __FUNCTION__ occurrencesHarvey Harrison2008-04-2616-46/+46
| | | | | | | | | | __FUNCTION__ is gcc-specific, use __func__ [bart: fix checkpatch.pl errors in ide-lib.c and ppc/mpc8xx.c while at it] Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide-tape: remove idetape_pipeline_active()Borislav Petkov2008-04-261-18/+11
| | | | | | | | This function was simply a wrapper for a test_bit() macro so remove it and use the macro instead. Signed-off-by: Borislav Petkov <petkovbb@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: cleanup setting hwif->mmio flagBartlomiej Zolnierkiewicz2008-04-2623-32/+2
| | | | | | | | | | It is no longer needed to set hwif->mmio flag to tell IDE layer to not manage resources so cleanup host drivers that used hwif->mmio flag only for this purpose. Ditto for ide_legacy_init_one(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: remove ide_hwif_request_regions()Bartlomiej Zolnierkiewicz2008-04-261-50/+0
| | | | | | Remove no longer used ide_hwif_request_regions() and hwif_request_region(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: manage resources for PCI devices in ide_pci_enable() (take 3)Bartlomiej Zolnierkiewicz2008-04-266-82/+28
| | | | | | | | | | | | | | | | | | | | * Reserve PCI BARs 0-3 (0-1 for single port controllers) in ide_pci_enable() and remove ide_hwif_request_regions() call from ide_device_add_all() (also cleanup resource management in scc_pata host driver). * Fix handling of PCI BAR 4 in ide_pci_enable(), then cleanup ide_iomio_dma() (+ init_hwif_trm290() in trm290 host driver) and remove ide_release[_iomio]_dma(). v2: * Fixup trm290 host driver. v3: * Because of scc_pata host driver changes we need to call pci_request_selected_regions() also in setup_mmio_scc(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* cmd640: manage I/O resources in driverBartlomiej Zolnierkiewicz2008-04-261-3/+34
| | | | | | | | | | * Tell IDE layer to not manage resources by setting hwif->mmio flag. * Use {request,release}_region() for resources management. * Use driver name for resources management. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: manage I/O resources in ide_legacy_init_one()Bartlomiej Zolnierkiewicz2008-04-266-0/+27
| | | | | | | | | | | * Tell IDE layer to not manage resources by setting hwif->mmio flag. * Use {request,release}_region() for resources management. * Set ->name field of 'struct ide_port_info' instances in legacy VLB host drivers and use driver name for resources management. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add ide_legacy_init_one() helperBartlomiej Zolnierkiewicz2008-04-261-23/+33
| | | | | | | | | Move the common code for primary/seconary port setup from ide_legacy_device_add() to ide_legacy_init_one(). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide_arm: manage I/O resources in driverBartlomiej Zolnierkiewicz2008-04-261-1/+18
| | | | | | | | | | * Tell IDE layer to not manage resources by setting hwif->mmio flag. * Use {request,release}_region() for resources management. * Use driver name for resources management. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide-4drives: manage I/O resources in driverBartlomiej Zolnierkiewicz2008-04-262-3/+20
| | | | | | | | | | | | | * Tell IDE layer to not manage resources by setting hwif->mmio flag. * Use {request,release}_region() for resources management. * Use driver name for resources management. * Remove no longer needed 'hwif->chipset == ide_4drives' handling from ide_device_add_all(). Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide-generic: manage I/O resources in driverBartlomiej Zolnierkiewicz2008-04-261-2/+19
| | | | | | | | | | * Tell IDE layer to not manage resources by setting hwif->mmio flag. * Use {request,release}_region() for resources management. * Use driver name for resources management. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: remove ide_hwif_release_regions()Bartlomiej Zolnierkiewicz2008-04-261-25/+0
| | | | | | | | | All host drivers using ide_unregister()/module_exit() have been fixed to manage resources themselves so this function can be removed now. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: register ports with non-present devices (for warm-plug)Bartlomiej Zolnierkiewicz2008-04-261-20/+17
| | | | Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide-cs: manage I/O resources in driverBartlomiej Zolnierkiewicz2008-04-261-22/+48
| | | | | | | | | | | | | | | | | | * Make idecs_register() return pointer to hwif structure instead of hwif's index. * Store pointer to hwif structure instead of hwif's index in ide_info_t (fixes ide-cs for IDE[6-9]_MAJOR major numbers). * Remove no longer needed ide_major[]. * Tell IDE layer to not manage resources by setting hwif->mmio flag. * Use {request,release}_region() for resources management. * Use driver name for resources management. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide-pnp: manage I/O resources in driverBartlomiej Zolnierkiewicz2008-04-261-2/+27
| | | | | | | | | | * Tell IDE layer to not manage resources by setting hwif->mmio flag. * Use {request,release}_region() for resources management. * Use driver name for resources management. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* qd65xx: cleanup qd_probe()Bartlomiej Zolnierkiewicz2008-04-261-35/+17
| | | | | | | | | | * Replace 'if ()'-s by 'switch ()' block. * Merge common code for QD6500/QD6580A/QD6580B. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: use ide_legacy_device_add() for qd65xx (take 2)Bartlomiej Zolnierkiewicz2008-04-266-60/+25
| | | | | | | | | | | | | | | | | | | | * Add 'unsigned long config' argument to ide_legacy_device_add() for setting hwif->config_data. * Use ide_find_port_slot() instead of ide_find_port() in ide_legacy_device_add(). * Handle IDE_HFLAG_QD_2ND_PORT and IDE_HFLAG_SINGLE host flags in ide_legacy_device_add(). * Convert qd65xx host driver to use ide_legacy_device_add(). v2: * Update ali14xx, dtc2278, ht6560b and umc8672 host drivers. There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: add ide_legacy_device_add() helperBartlomiej Zolnierkiewicz2008-04-265-106/+36
| | | | | | | | | Add ide_legacy_device_add() helper for use by legacy VLB host drivers (+ convert them to use it). There should be no functional changes caused by this patch. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide: remove ->noprobe field from ide_hwif_tBartlomiej Zolnierkiewicz2008-04-265-13/+11
| | | | | | | | | | Update IDE PMAC host driver to use drive->noprobe instead of hwif->noprobe and remove hwif->noprobe completely (it is always set to zero now). There should be no functional changes caused by this patch. Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide-cd: fix remaining checkpatch.pl issuesBorislav Petkov2008-04-261-19/+17
| | | | | | | | | | | | | Some of them are: WARNING: braces {} are not necessary for single statement blocks CHECK: multiple assignments should be avoided WARNING: printk() should include KERN_ facility level WARNING: no space between function name and open parenthesis '(' [bart: minor fixups] Signed-off-by: Borislav Petkov <petkovbb@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
* ide-cd: shorten lines longer than 80 columnsBorislav Petkov2008-04-261-23/+46
| | | | | | | [bart: minor fixups] Signed-off-by: Borislav Petkov <petkovbb@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
OpenPOWER on IntegriCloud