From: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
To: Christophe Ricard
<christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Jean-Luc BLANC <jean-luc.blanc-qxv4g6HH51o@public.gmane.org>,
"ashley-fm2HMyfA2y6tG0bUXCXiUA@public.gmane.org"
<ashley-fm2HMyfA2y6tG0bUXCXiUA@public.gmane.org>,
"tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org"
<tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>,
Christophe RICARD
<christophe-h.ricard-qxv4g6HH51o@public.gmane.org>,
Benoit HOUYERE <benoit.houyere-qxv4g6HH51o@public.gmane.org>
Subject: Re: [PATCH 05/12] tpm: Add tpm_set_vendordata and tpm_get_vendordata
Date: Thu, 24 Mar 2016 15:27:32 +0200 [thread overview]
Message-ID: <20160324132732.GF8452@intel.com> (raw)
In-Reply-To: <CALD+uuxj2NHd0-LpDZpnfkfMHwY6ke0FPPqmR0FKzrC4BJmFNQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Wed, Mar 23, 2016 at 02:11:26PM +0100, Christophe Ricard wrote:
> Hi Jarkko,
>
> Just coming back to you on this one. My intention was mainly align the
> "code style" from my eyes with other similar functions from other
> subsystems.
> For example and coming to my mind:
> i2c: i2c_get_clientdata/i2c_set_clientdata
> spi: spi_get_drvdata/spi_set_drvdata
> nfc: nfc_get_drvdata/nfc_set_drvdata
>
> In the mean time when trying to cleanup the code i found helpers with the
> exact same purpose in tpm_atmel.h (atmel_get_priv) or tpm_nsc.c
> (tpm_nsc_get_priv).
>
> When working on the tpm_vendor_specific cleanup, i came also through the
> conclusion that moving priv from tpm_vendor_specific to tpm_chip structure
> would the most
> simple and appropriate solution in short term.
>
> ...priv field may be renamed data...
> Do you see anything against a serie removing atmel_get_priv and
> tpm_nsc_get_priv and with a common helper replacing TPM_VPRIV ?
Yes I do. The current problem is that HW specific stuff lives in the
framework and not in the drivers for that HW. I would like to see HW
drivers to use priv for their internal and get rid off
tpm_vendor_specific completely.
/Jarkko
> Best Regards
> Christophe
> 2016-03-22 7:20 GMT+01:00 Jarkko Sakkinen
> <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>:
>
> On Sun, Mar 20, 2016 at 08:34:36PM +0100, Christophe Ricard wrote:
> > Remove TPM_VPRIV macro and replace with tpm_set_vendordata and
> > tpm_get_vendordata.
>
> NAK. These unnecessary wrapper functions make code just harder to read.
> I'd rather accept a patch that would drop TPM_VPRIV and not introduce
> new clutter.
> /Jarkko
> > Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
> > ---
> >Â 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;
> >Â }
> >
> > --
> > 2.5.0
> >
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785351&iu=/4140
next prev parent reply other threads:[~2016-03-24 13:27 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-20 19:34 [PATCH 00/12] Few minnor fixes, rework of tpm_tis to support tcg spi and i2c Christophe Ricard
[not found] ` <1458502483-16887-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-03-20 19:34 ` [PATCH 01/12] tpm/st33zp24/i2c: Drop two useless checks in ACPI probe path Christophe Ricard
2016-03-20 19:34 ` [PATCH 02/12] tpm/st33zp24/spi: " Christophe Ricard
[not found] ` <1458502483-16887-3-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-03-22 5:10 ` Jarkko Sakkinen
2016-03-20 19:34 ` [PATCH 03/12] tpm: Add include guards in tpm.h Christophe Ricard
[not found] ` <1458502483-16887-4-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-03-22 5:13 ` Jarkko Sakkinen
2016-03-20 19:34 ` [PATCH 04/12] tpm/st33zp24: Remove unneeded tpm_reg in get_burstcount Christophe Ricard
[not found] ` <1458502483-16887-5-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-03-22 6:16 ` Jarkko Sakkinen
[not found] ` <20160322061650.GA4058-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-22 6:21 ` Christophe Ricard
2016-03-20 19:34 ` [PATCH 05/12] tpm: Add tpm_set_vendordata and tpm_get_vendordata Christophe Ricard
[not found] ` <1458502483-16887-6-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-03-22 6:20 ` Jarkko Sakkinen
[not found] ` <20160322062001.GB4058-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-22 15:58 ` Jason Gunthorpe
[not found] ` <20160322155824.GA25600-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-03-22 16:00 ` Christophe Ricard
2016-03-23 13:11 ` Christophe Ricard
[not found] ` <CALD+uuxj2NHd0-LpDZpnfkfMHwY6ke0FPPqmR0FKzrC4BJmFNQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-23 16:48 ` Jason Gunthorpe
2016-03-24 13:27 ` Jarkko Sakkinen [this message]
[not found] ` <20160324132732.GF8452-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-03-24 13:30 ` Christophe Ricard
[not found] ` <CALD+uuwVG_84dY4rCOjecZXxS4LZoE+Kh=CyhmVwyT2U0bAMrg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-24 16:18 ` Jason Gunthorpe
[not found] ` <20160324161819.GA5263-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-03-24 16:31 ` Christophe Ricard
[not found] ` <CALD+uux0-nbwJfsHFHqPrZwWt=vEy73oi_djNrrY5QeiWwCq9A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-03-24 17:10 ` Jason Gunthorpe
[not found] ` <20160324171032.GA27978-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-03-24 23:04 ` Christophe Ricard
2016-03-20 19:34 ` [PATCH 06/12] devicetree: Add infineon to vendor-prefix.txt Christophe Ricard
2016-03-20 19:34 ` [PATCH 07/12] devicetree: Add Trusted Computing Group " Christophe Ricard
2016-03-20 19:34 ` [PATCH 08/12] tpm/tpm_tis: Split tpm_tis driver into a core and TCG TIS compliant phy Christophe Ricard
[not found] ` <1458502483-16887-9-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-03-21 1:32 ` Jason Gunthorpe
[not found] ` <20160321013243.GA9417-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-03-21 22:35 ` Christophe Ricard
[not found] ` <56F0774F.7040707-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-03-21 23:26 ` Jason Gunthorpe
2016-03-22 6:23 ` Jarkko Sakkinen
2016-03-20 19:34 ` [PATCH 09/12] tpm/tpm_tis: Rework interrupt management for phy compatibility Christophe Ricard
[not found] ` <1458502483-16887-10-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-03-21 1:37 ` Jason Gunthorpe
[not found] ` <20160321013722.GB9417-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-03-21 17:45 ` Christophe Ricard
2016-03-20 19:34 ` [PATCH 10/12] tpm/tpm_tis_spi: Add support for spi phy Christophe Ricard
2016-03-20 19:34 ` [PATCH 11/12] tpm: Add check_data handle to tpm_class_ops in order to check data integrity Christophe Ricard
[not found] ` <1458502483-16887-12-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-03-21 1:39 ` Jason Gunthorpe
[not found] ` <20160321013933.GC9417-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2016-03-21 17:44 ` Christophe Ricard
2016-03-20 19:34 ` [PATCH 12/12] tpm/tpm_tis_i2c: Add support for i2c phy Christophe Ricard
2016-03-20 21:59 ` [PATCH 00/12] Few minnor fixes, rework of tpm_tis to support tcg spi and i2c Peter Huewe
2016-03-21 11:13 ` Jarkko Sakkinen
2016-03-22 5:17 ` Jarkko Sakkinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160324132732.GF8452@intel.com \
--to=jarkko.sakkinen-vuqaysv1563yd54fqh9/ca@public.gmane.org \
--cc=ashley-fm2HMyfA2y6tG0bUXCXiUA@public.gmane.org \
--cc=benoit.houyere-qxv4g6HH51o@public.gmane.org \
--cc=christophe-h.ricard-qxv4g6HH51o@public.gmane.org \
--cc=christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=jean-luc.blanc-qxv4g6HH51o@public.gmane.org \
--cc=tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).