tpm_infineon.c (692d96552c9a86a919fe6b5b82288a6c77c015a5) tpm_infineon.c (afb5abc262e962089ef2d7c2bbf71bb6f53a2a78)
1/*
2 * Description:
3 * Device Driver for the Infineon Technologies
4 * SLD 9630 TT 1.1 and SLB 9635 TT 1.2 Trusted Platform Module
5 * Specifications at www.trustedcomputinggroup.org
6 *
7 * Copyright (C) 2005, Marcel Selhorst <tpmdd@selhorst.net>
8 * Sirrix AG - security technologies <tpmdd@sirrix.com> and

--- 532 unchanged lines hidden (view full) ---

541 tpm_dev.map_base + tpm_dev.index_off,
542 tpm_dev.iotype == TPM_INF_IO_PORT ?
543 tpm_dev.data_regs :
544 tpm_dev.map_base + tpm_dev.data_regs,
545 version[0], version[1],
546 vendorid[0], vendorid[1],
547 productid[0], productid[1], chipname);
548
1/*
2 * Description:
3 * Device Driver for the Infineon Technologies
4 * SLD 9630 TT 1.1 and SLB 9635 TT 1.2 Trusted Platform Module
5 * Specifications at www.trustedcomputinggroup.org
6 *
7 * Copyright (C) 2005, Marcel Selhorst <tpmdd@selhorst.net>
8 * Sirrix AG - security technologies <tpmdd@sirrix.com> and

--- 532 unchanged lines hidden (view full) ---

541 tpm_dev.map_base + tpm_dev.index_off,
542 tpm_dev.iotype == TPM_INF_IO_PORT ?
543 tpm_dev.data_regs :
544 tpm_dev.map_base + tpm_dev.data_regs,
545 version[0], version[1],
546 vendorid[0], vendorid[1],
547 productid[0], productid[1], chipname);
548
549 if (!(chip = tpm_register_hardware(&dev->dev, &tpm_inf)))
549 chip = tpmm_chip_alloc(&dev->dev, &tpm_inf);
550 if (IS_ERR(chip)) {
551 rc = PTR_ERR(chip);
550 goto err_release_region;
552 goto err_release_region;
553 }
551
554
555 rc = tpm_chip_register(chip);
556 if (rc)
557 goto err_release_region;
558
552 return 0;
553 } else {
554 rc = -ENODEV;
555 goto err_release_region;
556 }
557
558err_release_region:
559 if (tpm_dev.iotype == TPM_INF_IO_PORT) {

--- 7 unchanged lines hidden (view full) ---

567err_last:
568 return rc;
569}
570
571static void tpm_inf_pnp_remove(struct pnp_dev *dev)
572{
573 struct tpm_chip *chip = pnp_get_drvdata(dev);
574
559 return 0;
560 } else {
561 rc = -ENODEV;
562 goto err_release_region;
563 }
564
565err_release_region:
566 if (tpm_dev.iotype == TPM_INF_IO_PORT) {

--- 7 unchanged lines hidden (view full) ---

574err_last:
575 return rc;
576}
577
578static void tpm_inf_pnp_remove(struct pnp_dev *dev)
579{
580 struct tpm_chip *chip = pnp_get_drvdata(dev);
581
575 if (chip) {
576 if (tpm_dev.iotype == TPM_INF_IO_PORT) {
577 release_region(tpm_dev.data_regs, tpm_dev.data_size);
578 release_region(tpm_dev.config_port,
579 tpm_dev.config_size);
580 } else {
581 iounmap(tpm_dev.mem_base);
582 release_mem_region(tpm_dev.map_base, tpm_dev.map_size);
583 }
584 tpm_dev_vendor_release(chip);
585 tpm_remove_hardware(chip->dev);
582 tpm_chip_unregister(chip);
583
584 if (tpm_dev.iotype == TPM_INF_IO_PORT) {
585 release_region(tpm_dev.data_regs, tpm_dev.data_size);
586 release_region(tpm_dev.config_port,
587 tpm_dev.config_size);
588 } else {
589 iounmap(tpm_dev.mem_base);
590 release_mem_region(tpm_dev.map_base, tpm_dev.map_size);
586 }
587}
588
589static int tpm_inf_pnp_suspend(struct pnp_dev *dev, pm_message_t pm_state)
590{
591 struct tpm_chip *chip = pnp_get_drvdata(dev);
592 int rc;
593 if (chip) {

--- 58 unchanged lines hidden ---
591 }
592}
593
594static int tpm_inf_pnp_suspend(struct pnp_dev *dev, pm_message_t pm_state)
595{
596 struct tpm_chip *chip = pnp_get_drvdata(dev);
597 int rc;
598 if (chip) {

--- 58 unchanged lines hidden ---