From patchwork Sun Mar 20 19:34:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Ricard X-Patchwork-Id: 599890 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.sourceforge.net (lists.sourceforge.net [216.34.181.88]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3qSq1B1nWKz9s9G for ; Mon, 21 Mar 2016 06:35:10 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=sfs-ml-4.v29.ch3.sourceforge.com) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1ahj7x-0004qO-3Q; Sun, 20 Mar 2016 19:35:05 +0000 Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1ahj7w-0004qD-7w for tpmdd-devel@lists.sourceforge.net; Sun, 20 Mar 2016 19:35:04 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com designates 74.125.82.43 as permitted sender) client-ip=74.125.82.43; envelope-from=christophe.ricard@gmail.com; helo=mail-wm0-f43.google.com; Received: from mail-wm0-f43.google.com ([74.125.82.43]) by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1ahj7u-00079n-V2 for tpmdd-devel@lists.sourceforge.net; Sun, 20 Mar 2016 19:35:04 +0000 Received: by mail-wm0-f43.google.com with SMTP id r129so27216209wmr.1 for ; Sun, 20 Mar 2016 12:35:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=yF0qDq8+VFJIBv/UpzBckTdaxF1hBjJG3kSnzImkvfU=; b=adZgrwyRWCw03k0dKIOqfV5mLyeAyygo1KXO8rBL9Cq6x/kkHk2ejgKam1KzgxR7p6 g55p+zH14Ey5tXPcxxiHFaKnd52crqOJsIxE6u8twbix0o+JwcJjLIS0G/qnIiAyieco TI3Om6s2hPK/5uZlUsrk1XOuaE3/LYo18wb4lQ5SOPB9ttrA31dq38K/BV5N7bg+J9yb RfcMxyYxwQNzKqTkVnbhw9yQEHKVADudagx7dlRpCy9wDZyIeDMGcb2cYQgAO7+hGMFR 3EgWOlttyIHBDsV+Vi8EvB5XjtU43dNfOHNTS/SZA5RlNQkn3MqouunsyAZjFOoJ5BqF aqVQ== X-Gm-Message-State: AD7BkJIGLunLs9mcGq7bJqD/ZLcMKDapFh5TmkmoXFCZrMHCq9lNY2LuUX0zVJM+bHSzng== X-Received: by 10.28.14.140 with SMTP id 134mr9586507wmo.39.1458502496969; Sun, 20 Mar 2016 12:34:56 -0700 (PDT) Received: from localhost.localdomain (AMarseille-654-1-498-218.w86-210.abo.wanadoo.fr. [86.210.138.218]) by smtp.gmail.com with ESMTPSA id w203sm7560646wmg.14.2016.03.20.12.34.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 20 Mar 2016 12:34:55 -0700 (PDT) From: Christophe Ricard X-Google-Original-From: Christophe Ricard To: jarkko.sakkinen@linux.intel.com Date: Sun, 20 Mar 2016 20:34:36 +0100 Message-Id: <1458502483-16887-6-git-send-email-christophe-h.ricard@st.com> X-Mailer: git-send-email 2.5.0 In-Reply-To: <1458502483-16887-1-git-send-email-christophe-h.ricard@st.com> References: <1458502483-16887-1-git-send-email-christophe-h.ricard@st.com> X-Spam-Score: -1.6 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (christophe.ricard[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1ahj7u-00079n-V2 Cc: jean-luc.blanc@st.com, ashley@ashleylai.com, tpmdd-devel@lists.sourceforge.net, christophe-h.ricard@st.com, benoit.houyere@st.com Subject: [tpmdd-devel] [PATCH 05/12] tpm: Add tpm_set_vendordata and tpm_get_vendordata X-BeenThere: tpmdd-devel@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: Tpm Device Driver maintainance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: tpmdd-devel-bounces@lists.sourceforge.net Remove TPM_VPRIV macro and replace with tpm_set_vendordata and tpm_get_vendordata. Signed-off-by: Christophe Ricard --- drivers/char/tpm/st33zp24/st33zp24.c | 26 +++++++++++++------------- drivers/char/tpm/tpm.h | 12 ++++++++++-- drivers/char/tpm/tpm_ibmvtpm.c | 8 ++++---- drivers/char/tpm/tpm_tis.c | 2 +- drivers/char/tpm/xen-tpmfront.c | 14 +++++++------- 5 files changed, 35 insertions(+), 27 deletions(-) diff --git a/drivers/char/tpm/st33zp24/st33zp24.c b/drivers/char/tpm/st33zp24/st33zp24.c index 9e91ca7..dc2d0f3 100644 --- a/drivers/char/tpm/st33zp24/st33zp24.c +++ b/drivers/char/tpm/st33zp24/st33zp24.c @@ -105,7 +105,7 @@ static void st33zp24_cancel(struct tpm_chip *chip) struct st33zp24_dev *tpm_dev; u8 data; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); data = TPM_STS_COMMAND_READY; tpm_dev->ops->send(tpm_dev->phy_id, TPM_STS, &data, 1); @@ -121,7 +121,7 @@ static u8 st33zp24_status(struct tpm_chip *chip) struct st33zp24_dev *tpm_dev; u8 data; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); tpm_dev->ops->recv(tpm_dev->phy_id, TPM_STS, &data, 1); return data; @@ -138,7 +138,7 @@ static int check_locality(struct tpm_chip *chip) u8 data; u8 status; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); status = tpm_dev->ops->recv(tpm_dev->phy_id, TPM_ACCESS, &data, 1); if (status && (data & @@ -164,7 +164,7 @@ static int request_locality(struct tpm_chip *chip) if (check_locality(chip) == chip->vendor.locality) return chip->vendor.locality; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); data = TPM_ACCESS_REQUEST_USE; ret = tpm_dev->ops->send(tpm_dev->phy_id, TPM_ACCESS, &data, 1); @@ -193,7 +193,7 @@ static void release_locality(struct tpm_chip *chip) struct st33zp24_dev *tpm_dev; u8 data; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); data = TPM_ACCESS_ACTIVE_LOCALITY; tpm_dev->ops->send(tpm_dev->phy_id, TPM_ACCESS, &data, 1); @@ -211,7 +211,7 @@ static int get_burstcount(struct tpm_chip *chip) u8 temp; struct st33zp24_dev *tpm_dev; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); stop = jiffies + chip->vendor.timeout_d; do { @@ -279,7 +279,7 @@ static int wait_for_stat(struct tpm_chip *chip, u8 mask, unsigned long timeout, u8 status; struct st33zp24_dev *tpm_dev; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); /* check current status */ status = st33zp24_status(chip); @@ -340,7 +340,7 @@ static int recv_data(struct tpm_chip *chip, u8 *buf, size_t count) int size = 0, burstcnt, len, ret; struct st33zp24_dev *tpm_dev; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); while (size < count && wait_for_stat(chip, @@ -372,7 +372,7 @@ static irqreturn_t tpm_ioserirq_handler(int irq, void *dev_id) struct tpm_chip *chip = dev_id; struct st33zp24_dev *tpm_dev; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); tpm_dev->intrs++; wake_up_interruptible(&chip->vendor.read_queue); @@ -404,7 +404,7 @@ static int st33zp24_send(struct tpm_chip *chip, unsigned char *buf, if (len < TPM_HEADER_SIZE) return -EBUSY; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); ret = request_locality(chip); if (ret < 0) @@ -565,7 +565,7 @@ int st33zp24_probe(void *phy_id, const struct st33zp24_phy_ops *ops, if (!tpm_dev) return -ENOMEM; - TPM_VPRIV(chip) = tpm_dev; + tpm_set_vendordata(chip, tpm_dev); tpm_dev->phy_id = phy_id; tpm_dev->ops = ops; @@ -653,7 +653,7 @@ int st33zp24_pm_suspend(struct device *dev) struct st33zp24_dev *tpm_dev; int ret = 0; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); if (gpio_is_valid(tpm_dev->io_lpcpd)) gpio_set_value(tpm_dev->io_lpcpd, 0); @@ -675,7 +675,7 @@ int st33zp24_pm_resume(struct device *dev) struct st33zp24_dev *tpm_dev; int ret = 0; - tpm_dev = (struct st33zp24_dev *)TPM_VPRIV(chip); + tpm_dev = (struct st33zp24_dev *)tpm_get_vendordata(chip); if (gpio_is_valid(tpm_dev->io_lpcpd)) { gpio_set_value(tpm_dev->io_lpcpd, 1); diff --git a/drivers/char/tpm/tpm.h b/drivers/char/tpm/tpm.h index 28a0c17..6a973b9 100644 --- a/drivers/char/tpm/tpm.h +++ b/drivers/char/tpm/tpm.h @@ -157,8 +157,6 @@ struct tpm_vendor_specific { u16 manufacturer_id; }; -#define TPM_VPRIV(c) ((c)->vendor.priv) - #define TPM_VID_INTEL 0x8086 #define TPM_VID_WINBOND 0x1050 #define TPM_VID_STM 0x104A @@ -203,6 +201,16 @@ struct tpm_chip { #define to_tpm_chip(d) container_of(d, struct tpm_chip, dev) +static inline void tpm_set_vendordata(struct tpm_chip *chip, void *data) +{ + chip->vendor.priv = data; +} + +static inline void *tpm_get_vendordata(struct tpm_chip *chip) +{ + return chip->vendor.priv; +} + static inline int tpm_read_index(int base, int index) { outb(index, base); diff --git a/drivers/char/tpm/tpm_ibmvtpm.c b/drivers/char/tpm/tpm_ibmvtpm.c index b0a9a9e..c8b1643 100644 --- a/drivers/char/tpm/tpm_ibmvtpm.c +++ b/drivers/char/tpm/tpm_ibmvtpm.c @@ -64,7 +64,7 @@ static struct ibmvtpm_dev *ibmvtpm_get_data(const struct device *dev) { struct tpm_chip *chip = dev_get_drvdata(dev); if (chip) - return (struct ibmvtpm_dev *)TPM_VPRIV(chip); + return (struct ibmvtpm_dev *)tpm_get_vendordata(chip); return NULL; } @@ -83,7 +83,7 @@ static int tpm_ibmvtpm_recv(struct tpm_chip *chip, u8 *buf, size_t count) u16 len; int sig; - ibmvtpm = (struct ibmvtpm_dev *)TPM_VPRIV(chip); + ibmvtpm = (struct ibmvtpm_dev *)tpm_get_vendordata(chip); if (!ibmvtpm->rtce_buf) { dev_err(ibmvtpm->dev, "ibmvtpm device is not ready\n"); @@ -127,7 +127,7 @@ static int tpm_ibmvtpm_send(struct tpm_chip *chip, u8 *buf, size_t count) __be64 *word = (__be64 *)&crq; int rc, sig; - ibmvtpm = (struct ibmvtpm_dev *)TPM_VPRIV(chip); + ibmvtpm = (struct ibmvtpm_dev *)tpm_get_vendordata(chip); if (!ibmvtpm->rtce_buf) { dev_err(ibmvtpm->dev, "ibmvtpm device is not ready\n"); @@ -643,7 +643,7 @@ static int tpm_ibmvtpm_probe(struct vio_dev *vio_dev, crq_q->index = 0; - TPM_VPRIV(chip) = (void *)ibmvtpm; + tpm_set_vendordata(chip, (void *)ibmvtpm); spin_lock_init(&ibmvtpm->rtce_lock); diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c index eed3bf5..607fa3f 100644 --- a/drivers/char/tpm/tpm_tis.c +++ b/drivers/char/tpm/tpm_tis.c @@ -678,7 +678,7 @@ static int tpm_tis_init(struct device *dev, struct tpm_info *tpm_info, if (IS_ERR(chip)) return PTR_ERR(chip); - chip->vendor.priv = priv; + tpm_set_vendordata(chip, priv); #ifdef CONFIG_ACPI chip->acpi_dev_handle = acpi_dev_handle; #endif diff --git a/drivers/char/tpm/xen-tpmfront.c b/drivers/char/tpm/xen-tpmfront.c index 3111f27..c472fd8 100644 --- a/drivers/char/tpm/xen-tpmfront.c +++ b/drivers/char/tpm/xen-tpmfront.c @@ -39,7 +39,7 @@ enum status_bits { static u8 vtpm_status(struct tpm_chip *chip) { - struct tpm_private *priv = TPM_VPRIV(chip); + struct tpm_private *priv = tpm_get_vendordata(chip); switch (priv->shr->state) { case VTPM_STATE_IDLE: return VTPM_STATUS_IDLE | VTPM_STATUS_CANCELED; @@ -60,7 +60,7 @@ static bool vtpm_req_canceled(struct tpm_chip *chip, u8 status) static void vtpm_cancel(struct tpm_chip *chip) { - struct tpm_private *priv = TPM_VPRIV(chip); + struct tpm_private *priv = tpm_get_vendordata(chip); priv->shr->state = VTPM_STATE_CANCEL; wmb(); notify_remote_via_evtchn(priv->evtchn); @@ -73,7 +73,7 @@ static unsigned int shr_data_offset(struct vtpm_shared_page *shr) static int vtpm_send(struct tpm_chip *chip, u8 *buf, size_t count) { - struct tpm_private *priv = TPM_VPRIV(chip); + struct tpm_private *priv = tpm_get_vendordata(chip); struct vtpm_shared_page *shr = priv->shr; unsigned int offset = shr_data_offset(shr); @@ -115,7 +115,7 @@ static int vtpm_send(struct tpm_chip *chip, u8 *buf, size_t count) static int vtpm_recv(struct tpm_chip *chip, u8 *buf, size_t count) { - struct tpm_private *priv = TPM_VPRIV(chip); + struct tpm_private *priv = tpm_get_vendordata(chip); struct vtpm_shared_page *shr = priv->shr; unsigned int offset = shr_data_offset(shr); size_t length = shr->length; @@ -182,7 +182,7 @@ static int setup_chip(struct device *dev, struct tpm_private *priv) init_waitqueue_head(&chip->vendor.read_queue); priv->chip = chip; - TPM_VPRIV(chip) = priv; + tpm_set_vendordata(chip, priv); return 0; } @@ -318,10 +318,10 @@ static int tpmfront_probe(struct xenbus_device *dev, static int tpmfront_remove(struct xenbus_device *dev) { struct tpm_chip *chip = dev_get_drvdata(&dev->dev); - struct tpm_private *priv = TPM_VPRIV(chip); + struct tpm_private *priv = tpm_get_vendordata(chip); tpm_chip_unregister(chip); ring_free(priv); - TPM_VPRIV(chip) = NULL; + tpm_set_vendordata(chip, NULL); return 0; }