summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/atmel-sha.c
AgeCommit message (Expand)Author
2019-11-08crypto: atmel - Fix remaining endianess warningsHerbert Xu
2019-11-08crypto: atmel - Fix authenc support when it is set to mHerbert Xu
2019-08-09crypto: drivers - Remove dev_err() usage after platform_get_irq()Stephen Boyd
2018-09-04crypto: atmel - switch to SPDX license identifiersTudor Ambarus
2018-07-09crypto: remove redundant type flags from tfm allocationEric Biggers
2018-02-22crypto: atmel - Delete error messages for a failed memory allocation in six f...Markus Elfring
2017-11-03crypto: atmel - remove useless irq initTudor-Dan Ambarus
2017-11-03crypto: atmel - return appropriate error codeTudor-Dan Ambarus
2017-08-03crypto: atmel-sha - remove unnecessary static in atmel_sha_remove()Gustavo A. R. Silva
2017-07-12crypto: atmel - only treat EBUSY as transient if backlogGilad Ben-Yossef
2017-02-15crypto: atmel-sha - fix error management in atmel_sha_start()Cyrille Pitchen
2017-02-15crypto: atmel-sha - fix missing "return" instructionsCyrille Pitchen
2017-02-11crypto: atmel - fix 64-bit build warningsArnd Bergmann
2017-02-03crypto: atmel-sha - add verbose debug facilities to print hw register namesCyrille Pitchen
2017-02-03crypto: atmel-authenc - add support to authenc(hmac(shaX), Y(aes)) modesCyrille Pitchen
2017-02-03crypto: atmel-sha - add support to hmac(shaX)Cyrille Pitchen
2017-02-03crypto: atmel-sha - add simple DMA transfersCyrille Pitchen
2017-02-03crypto: atmel-sha - add atmel_sha_cpu_start()Cyrille Pitchen
2017-02-03crypto: atmel-sha - add atmel_sha_wait_for_data_ready()Cyrille Pitchen
2017-02-03crypto: atmel-sha - redefine SHA_FLAGS_SHA* flags to match SHA_MR_ALGO_SHA*Cyrille Pitchen
2017-02-03crypto: atmel-sha - make atmel_sha_done_task more genericCyrille Pitchen
2017-02-03crypto: atmel-sha - update request queue management to make it more genericCyrille Pitchen
2017-02-03crypto: atmel-sha - create function to get an Atmel SHA deviceCyrille Pitchen
2016-03-17Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert...Linus Torvalds
2016-03-11crypto: atmel - fix checks of error code returned by devm_ioremap_resource()Vladimir Zapolskiy
2016-02-17crypto: atmel-sha - fix race in atmel_sha_final()Cyrille Pitchen
2016-02-17crypto: atmel-sha - fix .import()/.export() implementationCyrille Pitchen
2016-02-06crypto: atmel-sha - remove calls of clk_prepare() from atomic contextsCyrille Pitchen
2016-02-06crypto: atmel-sha - fix atmel_sha_remove()Cyrille Pitchen
2016-01-30crypto: atmel-sha - fix algorihtm registrationCyrille Pitchen
2016-01-25crypto: atmel-sha - fix context switchesCyrille Pitchen
2016-01-25crypto: atmel-sha - add support of sama5d2x SoCsCyrille Pitchen
2016-01-25crypto: atmel-sha - fix a race between the 'done' tasklet and the crypto clientCyrille Pitchen
2016-01-25crypto: atmel-sha - fix crash when computing digest on empty messageCyrille Pitchen
2015-12-17crypto: atmel-sha - Removed unused variable "err"Rahul Pathak
2015-10-14crypto: atmel - use devm_xxx() managed functionLABBE Corentin
2015-10-08crypto: atmel - Check for clk_prepare_enable() return valueLABBE Corentin
2015-04-08crypto: atmel-sha - correct the max burst sizeLeilei Zhao
2015-04-08crypto: atmel-sha - initialize spinlock in probeLeilei Zhao
2015-04-08crypto: atmel-sha - fix sg list managementLeilei Zhao
2015-04-08crypto: atmel-sha - correct the way data are splitLudovic Desroches
2015-04-08crypto: atmel-sha - add new versionLeilei Zhao
2015-03-04crypto: atmel - fix typo in dev_err error messageColin Ian King
2014-12-22crypto: atmel_sha - remove unused shash fallback instance.Svenning Sørensen
2014-10-20crypto: drop owner assignment from platform_driversWolfram Sang
2014-08-01crypto: atmel-sha - Switch to managed version of kzallocPramod Gurav
2013-12-12crypto: atmel-sha - add sha information to the logNicolas Ferre
2013-12-12crypto: atmel-sha - add support for Device TreeNicolas Ferre
2013-03-10crypto: atmel-sha - add support for latest release of the IP (0x410)Nicolas Royer
2013-01-03Drivers: crypto: remove __dev* attributes.Greg Kroah-Hartman
t offsets from the base */ #define GAYLE_IRQ_4000 0xdd3020 /* MSB = 1, Harddisk is source of */ #define GAYLE_IRQ_1200 0xda9000 /* interrupt */ /* * Offset of the secondary port for IDE doublers * Note that GAYLE_CONTROL is NOT available then! */ #define GAYLE_NEXT_PORT 0x1000 #define GAYLE_NUM_HWIFS 2 #define GAYLE_NUM_PROBE_HWIFS (ide_doubler ? GAYLE_NUM_HWIFS : \ GAYLE_NUM_HWIFS-1) #define GAYLE_HAS_CONTROL_REG (!ide_doubler) static bool ide_doubler; module_param_named(doubler, ide_doubler, bool, 0); MODULE_PARM_DESC(doubler, "enable support for IDE doublers"); /* * Check and acknowledge the interrupt status */ static int gayle_test_irq(ide_hwif_t *hwif) { unsigned char ch; ch = z_readb(hwif->io_ports.irq_addr); if (!(ch & GAYLE_IRQ_IDE)) return 0; return 1; } static void gayle_a1200_clear_irq(ide_drive_t *drive) { ide_hwif_t *hwif = drive->hwif; (void)z_readb(hwif->io_ports.status_addr); z_writeb(0x7c, hwif->io_ports.irq_addr); } static void __init gayle_setup_ports(struct ide_hw *hw, unsigned long base, unsigned long ctl, unsigned long irq_port) { int i; memset(hw, 0, sizeof(*hw)); hw->io_ports.data_addr = base; for (i = 1; i < 8; i++) hw->io_ports_array[i] = base + 2 + i * 4; hw->io_ports.ctl_addr = ctl; hw->io_ports.irq_addr = irq_port; hw->irq = IRQ_AMIGA_PORTS; } static const struct ide_port_ops gayle_a4000_port_ops = { .test_irq = gayle_test_irq, }; static const struct ide_port_ops gayle_a1200_port_ops = { .clear_irq = gayle_a1200_clear_irq, .test_irq = gayle_test_irq, }; static const struct ide_port_info gayle_port_info = { .host_flags = IDE_HFLAG_MMIO | IDE_HFLAG_SERIALIZE | IDE_HFLAG_NO_DMA, .irq_flags = IRQF_SHARED, .chipset = ide_generic, }; /* * Probe for a Gayle IDE interface (and optionally for an IDE doubler) */ static int __init amiga_gayle_ide_probe(struct platform_device *pdev) { struct resource *res; struct gayle_ide_platform_data *pdata; unsigned long base, ctrlport, irqport; unsigned int i; int error; struct ide_hw hw[GAYLE_NUM_HWIFS], *hws[GAYLE_NUM_HWIFS]; struct ide_port_info d = gayle_port_info; struct ide_host *host; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return -ENODEV; if (!request_mem_region(res->start, resource_size(res), "IDE")) return -EBUSY; pdata = dev_get_platdata(&pdev->dev); pr_info("ide: Gayle IDE controller (A%u style%s)\n", pdata->explicit_ack ? 1200 : 4000, ide_doubler ? ", IDE doubler" : ""); base = (unsigned long)ZTWO_VADDR(pdata->base); ctrlport = 0; irqport = (unsigned long)ZTWO_VADDR(pdata->irqport); if (pdata->explicit_ack) d.port_ops = &gayle_a1200_port_ops; else d.port_ops = &gayle_a4000_port_ops; for (i = 0; i < GAYLE_NUM_PROBE_HWIFS; i++, base += GAYLE_NEXT_PORT) { if (GAYLE_HAS_CONTROL_REG) ctrlport = base + GAYLE_CONTROL; gayle_setup_ports(&hw[i], base, ctrlport, irqport); hws[i] = &hw[i]; } error = ide_host_add(&d, hws, i, &host); if (error) goto out; platform_set_drvdata(pdev, host); return 0; out: release_mem_region(res->start, resource_size(res)); return error; } static int __exit amiga_gayle_ide_remove(struct platform_device *pdev) { struct ide_host *host = platform_get_drvdata(pdev); struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); ide_host_remove(host); release_mem_region(res->start, resource_size(res)); return 0; } static struct platform_driver amiga_gayle_ide_driver = { .remove = __exit_p(amiga_gayle_ide_remove), .driver = { .name = "amiga-gayle-ide", }, }; module_platform_driver_probe(amiga_gayle_ide_driver, amiga_gayle_ide_probe); MODULE_LICENSE("GPL"); MODULE_ALIAS("platform:amiga-gayle-ide");