All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support
@ 2016-02-09  9:26 Christophe Ricard
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  0 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Hi Peter, Jarko,

Please find in the following serie:
- a set of code style or sanity cleanup
- acpi device probing support for i2c and spi phys.

This serie applies on top of jarkko tree:
b64f343cb02b2a2a009b3805a8331425dd4a8611 tpm: fix rollback/cleanup before tpm_chip_register()

Best Regards
Christophe 

Christophe Ricard (12):
  tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
  tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
  tpm/st33zp24/spi: Remove useless use of memcpy.
  tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy
    structure
  tpm/st33zp24: Remove unneeded CONFIG_OF switches
  tpm/st33zp24: Auto-select core module
  tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
  tpm/st33zp24: Extend Copyright headers
  tpm/st33zp24: Add support for acpi probing for i2c device.
  tpm: st33zp24: Add support for acpi probing for spi device.
  tpm/st33zp24/i2c: Change xxx_request_resources header
  tpm/st33zp24/spi: Change xxx_request_resources header

 drivers/char/tpm/st33zp24/Kconfig      |  11 +-
 drivers/char/tpm/st33zp24/i2c.c        |  76 ++++++++++---
 drivers/char/tpm/st33zp24/spi.c        | 190 ++++++++++++++++++++-------------
 drivers/char/tpm/st33zp24/st33zp24.c   |   2 +-
 drivers/char/tpm/st33zp24/st33zp24.h   |   2 +-
 include/linux/platform_data/st33zp24.h |   2 +-
 6 files changed, 182 insertions(+), 101 deletions(-)

-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [PATCH 01/12] tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-2-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 02/12] tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix Christophe Ricard
                     ` (11 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

nbr_dummy_bytes variable could be easily replaced by phy->latency in
st33zp24_spi_send and st33zp24_spi_recv.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/spi.c | 20 +++++++++-----------
 1 file changed, 9 insertions(+), 11 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index f974c94..74c5fcc 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -111,7 +111,7 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
 			     int tpm_size)
 {
 	u8 data = 0;
-	int total_length = 0, nbr_dummy_bytes = 0, ret = 0;
+	int total_length = 0, ret = 0;
 	struct st33zp24_spi_phy *phy = phy_id;
 	struct spi_device *dev = phy->spi_device;
 	u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf;
@@ -133,14 +133,13 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
 	memcpy(&tx_buf[total_length], tpm_data, tpm_size);
 	total_length += tpm_size;
 
-	nbr_dummy_bytes = phy->latency;
-	memset(&tx_buf[total_length], TPM_DUMMY_BYTE, nbr_dummy_bytes);
+	memset(&tx_buf[total_length], TPM_DUMMY_BYTE, phy->latency);
 
-	phy->spi_xfer.len = total_length + nbr_dummy_bytes;
+	phy->spi_xfer.len = total_length + phy->latency;
 
 	ret = spi_sync_transfer(dev, &phy->spi_xfer, 1);
 	if (ret == 0)
-		ret = rx_buf[total_length + nbr_dummy_bytes - 1];
+		ret = rx_buf[total_length + phy->latency - 1];
 
 	return st33zp24_status_to_errno(ret);
 } /* st33zp24_spi_send() */
@@ -157,7 +156,7 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
 static int read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size)
 {
 	u8 data = 0;
-	int total_length = 0, nbr_dummy_bytes, ret;
+	int total_length = 0, ret;
 	struct st33zp24_spi_phy *phy = phy_id;
 	struct spi_device *dev = phy->spi_device;
 	u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf;
@@ -171,18 +170,17 @@ static int read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size)
 	memcpy(tx_buf + total_length, &data, sizeof(data));
 	total_length++;
 
-	nbr_dummy_bytes = phy->latency;
 	memset(&tx_buf[total_length], TPM_DUMMY_BYTE,
-	       nbr_dummy_bytes + tpm_size);
+	       phy->latency + tpm_size);
 
-	phy->spi_xfer.len = total_length + nbr_dummy_bytes + tpm_size;
+	phy->spi_xfer.len = total_length + phy->latency + tpm_size;
 
 	/* header + status byte + size of the data + status byte */
 	ret = spi_sync_transfer(dev, &phy->spi_xfer, 1);
 	if (tpm_size > 0 && ret == 0) {
-		ret = rx_buf[total_length + nbr_dummy_bytes - 1];
+		ret = rx_buf[total_length + phy->latency - 1];
 
-		memcpy(tpm_data, rx_buf + total_length + nbr_dummy_bytes,
+		memcpy(tpm_data, rx_buf + total_length + phy->latency,
 		       tpm_size);
 	}
 
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 02/12] tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 01/12] tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-3-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 03/12] tpm/st33zp24/spi: Remove useless use of memcpy Christophe Ricard
                     ` (10 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Make sure every function name use st33zp24_spi_ prefix.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/spi.c | 45 +++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index 74c5fcc..f42c443 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -145,7 +145,7 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
 } /* st33zp24_spi_send() */
 
 /*
- * read8_recv
+ * st33zp24_spi_read8_recv
  * Recv byte from the TIS register according to the ST33ZP24 SPI protocol.
  * @param: phy_id, the phy description
  * @param: tpm_register, the tpm tis register where the data should be read
@@ -153,7 +153,8 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
  * @param: tpm_size, tpm TPM response size to read.
  * @return: should be zero if success else a negative error code.
  */
-static int read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size)
+static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
+				  int tpm_size)
 {
 	u8 data = 0;
 	int total_length = 0, ret;
@@ -185,7 +186,7 @@ static int read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size)
 	}
 
 	return ret;
-} /* read8_reg() */
+} /* st33zp24_spi_read8_reg() */
 
 /*
  * st33zp24_spi_recv
@@ -201,13 +202,13 @@ static int st33zp24_spi_recv(void *phy_id, u8 tpm_register, u8 *tpm_data,
 {
 	int ret;
 
-	ret = read8_reg(phy_id, tpm_register, tpm_data, tpm_size);
+	ret = st33zp24_spi_read8_reg(phy_id, tpm_register, tpm_data, tpm_size);
 	if (!st33zp24_status_to_errno(ret))
 		return tpm_size;
 	return ret;
 } /* st33zp24_spi_recv() */
 
-static int evaluate_latency(void *phy_id)
+static int st33zp24_spi_evaluate_latency(void *phy_id)
 {
 	struct st33zp24_spi_phy *phy = phy_id;
 	int latency = 1, status = 0;
@@ -215,7 +216,8 @@ static int evaluate_latency(void *phy_id)
 
 	while (!status && latency < MAX_SPI_LATENCY) {
 		phy->latency = latency;
-		status = read8_reg(phy_id, TPM_INTF_CAPABILITY, &data, 1);
+		status = st33zp24_spi_read8_reg(phy_id, TPM_INTF_CAPABILITY,
+						&data, 1);
 		latency++;
 	}
 	return latency - 1;
@@ -227,7 +229,7 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
 };
 
 #ifdef CONFIG_OF
-static int tpm_stm_spi_of_request_resources(struct st33zp24_spi_phy *phy)
+static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
 {
 	struct device_node *pp;
 	struct spi_device *dev = phy->spi_device;
@@ -265,14 +267,14 @@ static int tpm_stm_spi_of_request_resources(struct st33zp24_spi_phy *phy)
 	return 0;
 }
 #else
-static int tpm_stm_spi_of_request_resources(struct st33zp24_spi_phy *phy)
+static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
 {
 	return -ENODEV;
 }
 #endif
 
-static int tpm_stm_spi_request_resources(struct spi_device *dev,
-					 struct st33zp24_spi_phy *phy)
+static int st33zp24_spi_request_resources(struct spi_device *dev,
+					  struct st33zp24_spi_phy *phy)
 {
 	struct st33zp24_platform_data *pdata;
 	int ret;
@@ -301,13 +303,12 @@ static int tpm_stm_spi_request_resources(struct spi_device *dev,
 }
 
 /*
- * tpm_st33_spi_probe initialize the TPM device
+ * st33zp24_spi_probe initialize the TPM device
  * @param: dev, the spi_device drescription (TPM SPI description).
  * @return: 0 in case of success.
  *	 or a negative value describing the error.
  */
-static int
-tpm_st33_spi_probe(struct spi_device *dev)
+static int st33zp24_spi_probe(struct spi_device *dev)
 {
 	int ret;
 	struct st33zp24_platform_data *pdata;
@@ -328,11 +329,11 @@ tpm_st33_spi_probe(struct spi_device *dev)
 	phy->spi_device = dev;
 	pdata = dev->dev.platform_data;
 	if (!pdata && dev->dev.of_node) {
-		ret = tpm_stm_spi_of_request_resources(phy);
+		ret = st33zp24_spi_of_request_resources(phy);
 		if (ret)
 			return ret;
 	} else if (pdata) {
-		ret = tpm_stm_spi_request_resources(dev, phy);
+		ret = st33zp24_spi_request_resources(dev, phy);
 		if (ret)
 			return ret;
 	}
@@ -340,7 +341,7 @@ tpm_st33_spi_probe(struct spi_device *dev)
 	phy->spi_xfer.tx_buf = phy->tx_buf;
 	phy->spi_xfer.rx_buf = phy->rx_buf;
 
-	phy->latency = evaluate_latency(phy);
+	phy->latency = st33zp24_spi_evaluate_latency(phy);
 	if (phy->latency <= 0)
 		return -ENODEV;
 
@@ -349,11 +350,11 @@ tpm_st33_spi_probe(struct spi_device *dev)
 }
 
 /*
- * tpm_st33_spi_remove remove the TPM device
+ * st33zp24_spi_remove remove the TPM device
  * @param: client, the spi_device drescription (TPM SPI description).
  * @return: 0 in case of success.
  */
-static int tpm_st33_spi_remove(struct spi_device *dev)
+static int st33zp24_spi_remove(struct spi_device *dev)
 {
 	struct tpm_chip *chip = spi_get_drvdata(dev);
 
@@ -377,18 +378,18 @@ MODULE_DEVICE_TABLE(of, of_st33zp24_spi_match);
 static SIMPLE_DEV_PM_OPS(st33zp24_spi_ops, st33zp24_pm_suspend,
 			 st33zp24_pm_resume);
 
-static struct spi_driver tpm_st33_spi_driver = {
+static struct spi_driver st33zp24_spi_driver = {
 	.driver = {
 		.name = TPM_ST33_SPI,
 		.pm = &st33zp24_spi_ops,
 		.of_match_table = of_match_ptr(of_st33zp24_spi_match),
 	},
-	.probe = tpm_st33_spi_probe,
-	.remove = tpm_st33_spi_remove,
+	.probe = st33zp24_spi_probe,
+	.remove = st33zp24_spi_remove,
 	.id_table = st33zp24_spi_id,
 };
 
-module_spi_driver(tpm_st33_spi_driver);
+module_spi_driver(st33zp24_spi_driver);
 
 MODULE_AUTHOR("TPM support (TPMsupport-nkJGhpqTU55BDgjK7y7TUQ@public.gmane.org)");
 MODULE_DESCRIPTION("STM TPM 1.2 SPI ST33 Driver");
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 03/12] tpm/st33zp24/spi: Remove useless use of memcpy.
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 01/12] tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage Christophe Ricard
  2016-02-09  9:26   ` [PATCH 02/12] tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-4-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 04/12] tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure Christophe Ricard
                     ` (9 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

An affectation is enough when copying 1 byte. Remove memcpy usage where
possible.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/spi.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index f42c443..08ffbfe 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -110,7 +110,6 @@ static int st33zp24_status_to_errno(u8 code)
 static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
 			     int tpm_size)
 {
-	u8 data = 0;
 	int total_length = 0, ret = 0;
 	struct st33zp24_spi_phy *phy = phy_id;
 	struct spi_device *dev = phy->spi_device;
@@ -118,12 +117,8 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
 	u8 *rx_buf = phy->spi_xfer.rx_buf;
 
 	/* Pre-Header */
-	data = TPM_WRITE_DIRECTION | LOCALITY0;
-	memcpy(tx_buf + total_length, &data, sizeof(data));
-	total_length++;
-	data = tpm_register;
-	memcpy(tx_buf + total_length, &data, sizeof(data));
-	total_length++;
+	tx_buf[total_length++] = TPM_WRITE_DIRECTION | LOCALITY0;
+	tx_buf[total_length++] = tpm_register;
 
 	if (tpm_size > 0 && tpm_register == TPM_DATA_FIFO) {
 		tx_buf[total_length++] = tpm_size >> 8;
@@ -156,7 +151,6 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
 static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
 				  int tpm_size)
 {
-	u8 data = 0;
 	int total_length = 0, ret;
 	struct st33zp24_spi_phy *phy = phy_id;
 	struct spi_device *dev = phy->spi_device;
@@ -164,12 +158,8 @@ static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
 	u8 *rx_buf = phy->spi_xfer.rx_buf;
 
 	/* Pre-Header */
-	data = LOCALITY0;
-	memcpy(tx_buf + total_length, &data, sizeof(data));
-	total_length++;
-	data = tpm_register;
-	memcpy(tx_buf + total_length, &data, sizeof(data));
-	total_length++;
+	tx_buf[total_length++] = LOCALITY0;
+	tx_buf[total_length++] = tpm_register;
 
 	memset(&tx_buf[total_length], TPM_DUMMY_BYTE,
 	       phy->latency + tpm_size);
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 04/12] tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (2 preceding siblings ...)
  2016-02-09  9:26   ` [PATCH 03/12] tpm/st33zp24/spi: Remove useless use of memcpy Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-5-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 05/12] tpm/st33zp24: Remove unneeded CONFIG_OF switches Christophe Ricard
                     ` (8 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Remove spi_xfer from st33zp24_spi_phy structure and declare local spi_xfer
when needed instead.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/spi.c | 50 ++++++++++++++++++++---------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index 08ffbfe..41c11c9 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -66,7 +66,7 @@
 
 struct st33zp24_spi_phy {
 	struct spi_device *spi_device;
-	struct spi_transfer spi_xfer;
+
 	u8 tx_buf[ST33ZP24_SPI_BUFFER_SIZE];
 	u8 rx_buf[ST33ZP24_SPI_BUFFER_SIZE];
 
@@ -113,28 +113,30 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
 	int total_length = 0, ret = 0;
 	struct st33zp24_spi_phy *phy = phy_id;
 	struct spi_device *dev = phy->spi_device;
-	u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf;
-	u8 *rx_buf = phy->spi_xfer.rx_buf;
+	struct spi_transfer spi_xfer = {
+		.tx_buf = phy->tx_buf,
+		.rx_buf = phy->rx_buf,
+	};
 
 	/* Pre-Header */
-	tx_buf[total_length++] = TPM_WRITE_DIRECTION | LOCALITY0;
-	tx_buf[total_length++] = tpm_register;
+	phy->tx_buf[total_length++] = TPM_WRITE_DIRECTION | LOCALITY0;
+	phy->tx_buf[total_length++] = tpm_register;
 
 	if (tpm_size > 0 && tpm_register == TPM_DATA_FIFO) {
-		tx_buf[total_length++] = tpm_size >> 8;
-		tx_buf[total_length++] = tpm_size;
+		phy->tx_buf[total_length++] = tpm_size >> 8;
+		phy->tx_buf[total_length++] = tpm_size;
 	}
 
-	memcpy(&tx_buf[total_length], tpm_data, tpm_size);
+	memcpy(&phy->tx_buf[total_length], tpm_data, tpm_size);
 	total_length += tpm_size;
 
-	memset(&tx_buf[total_length], TPM_DUMMY_BYTE, phy->latency);
+	memset(&phy->tx_buf[total_length], TPM_DUMMY_BYTE, phy->latency);
 
-	phy->spi_xfer.len = total_length + phy->latency;
+	spi_xfer.len = total_length + phy->latency;
 
-	ret = spi_sync_transfer(dev, &phy->spi_xfer, 1);
+	ret = spi_sync_transfer(dev, &spi_xfer, 1);
 	if (ret == 0)
-		ret = rx_buf[total_length + phy->latency - 1];
+		ret = phy->rx_buf[total_length + phy->latency - 1];
 
 	return st33zp24_status_to_errno(ret);
 } /* st33zp24_spi_send() */
@@ -154,24 +156,25 @@ static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
 	int total_length = 0, ret;
 	struct st33zp24_spi_phy *phy = phy_id;
 	struct spi_device *dev = phy->spi_device;
-	u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf;
-	u8 *rx_buf = phy->spi_xfer.rx_buf;
+	struct spi_transfer spi_xfer = {
+		.tx_buf = phy->tx_buf,
+		.rx_buf = phy->rx_buf,
+	};
 
 	/* Pre-Header */
-	tx_buf[total_length++] = LOCALITY0;
-	tx_buf[total_length++] = tpm_register;
+	phy->tx_buf[total_length++] = LOCALITY0;
+	phy->tx_buf[total_length++] = tpm_register;
 
-	memset(&tx_buf[total_length], TPM_DUMMY_BYTE,
-	       phy->latency + tpm_size);
+	memset(&phy->tx_buf[total_length], TPM_DUMMY_BYTE, phy->latency + tpm_size);
 
-	phy->spi_xfer.len = total_length + phy->latency + tpm_size;
+	spi_xfer.len = total_length + phy->latency + tpm_size;
 
 	/* header + status byte + size of the data + status byte */
-	ret = spi_sync_transfer(dev, &phy->spi_xfer, 1);
+	ret = spi_sync_transfer(dev, &spi_xfer, 1);
 	if (tpm_size > 0 && ret == 0) {
-		ret = rx_buf[total_length + phy->latency - 1];
+		ret = phy->rx_buf[total_length + phy->latency - 1];
 
-		memcpy(tpm_data, rx_buf + total_length + phy->latency,
+		memcpy(tpm_data, phy->rx_buf + total_length + phy->latency,
 		       tpm_size);
 	}
 
@@ -328,9 +331,6 @@ static int st33zp24_spi_probe(struct spi_device *dev)
 			return ret;
 	}
 
-	phy->spi_xfer.tx_buf = phy->tx_buf;
-	phy->spi_xfer.rx_buf = phy->rx_buf;
-
 	phy->latency = st33zp24_spi_evaluate_latency(phy);
 	if (phy->latency <= 0)
 		return -ENODEV;
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 05/12] tpm/st33zp24: Remove unneeded CONFIG_OF switches
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (3 preceding siblings ...)
  2016-02-09  9:26   ` [PATCH 04/12] tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-6-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 06/12] tpm/st33zp24: Auto-select core module Christophe Ricard
                     ` (7 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

DT headers already define NOOP routines when CONFIG_OF is not defined.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/i2c.c | 9 ---------
 drivers/char/tpm/st33zp24/spi.c | 9 ---------
 2 files changed, 18 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c
index 309d276..a05fbd8 100644
--- a/drivers/char/tpm/st33zp24/i2c.c
+++ b/drivers/char/tpm/st33zp24/i2c.c
@@ -108,7 +108,6 @@ static const struct st33zp24_phy_ops i2c_phy_ops = {
 	.recv = st33zp24_i2c_recv,
 };
 
-#ifdef CONFIG_OF
 static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
 {
 	struct device_node *pp;
@@ -146,12 +145,6 @@ static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
 
 	return 0;
 }
-#else
-static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
-{
-	return -ENODEV;
-}
-#endif
 
 static int st33zp24_i2c_request_resources(struct i2c_client *client,
 					  struct st33zp24_i2c_phy *phy)
@@ -245,13 +238,11 @@ static const struct i2c_device_id st33zp24_i2c_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, st33zp24_i2c_id);
 
-#ifdef CONFIG_OF
 static const struct of_device_id of_st33zp24_i2c_match[] = {
 	{ .compatible = "st,st33zp24-i2c", },
 	{}
 };
 MODULE_DEVICE_TABLE(of, of_st33zp24_i2c_match);
-#endif
 
 static SIMPLE_DEV_PM_OPS(st33zp24_i2c_ops, st33zp24_pm_suspend,
 			 st33zp24_pm_resume);
diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index 41c11c9..0af836a 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -221,7 +221,6 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
 	.recv = st33zp24_spi_recv,
 };
 
-#ifdef CONFIG_OF
 static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
 {
 	struct device_node *pp;
@@ -259,12 +258,6 @@ static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
 
 	return 0;
 }
-#else
-static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
-{
-	return -ENODEV;
-}
-#endif
 
 static int st33zp24_spi_request_resources(struct spi_device *dev,
 					  struct st33zp24_spi_phy *phy)
@@ -357,13 +350,11 @@ static const struct spi_device_id st33zp24_spi_id[] = {
 };
 MODULE_DEVICE_TABLE(spi, st33zp24_spi_id);
 
-#ifdef CONFIG_OF
 static const struct of_device_id of_st33zp24_spi_match[] = {
 	{ .compatible = "st,st33zp24-spi", },
 	{}
 };
 MODULE_DEVICE_TABLE(of, of_st33zp24_spi_match);
-#endif
 
 static SIMPLE_DEV_PM_OPS(st33zp24_spi_ops, st33zp24_pm_suspend,
 			 st33zp24_pm_resume);
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 06/12] tpm/st33zp24: Auto-select core module
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (4 preceding siblings ...)
  2016-02-09  9:26   ` [PATCH 05/12] tpm/st33zp24: Remove unneeded CONFIG_OF switches Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-7-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 07/12] tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency Christophe Ricard
                     ` (6 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

The core st33zp24 module is useless without either the I2C or the
SPI access module. So hide NFC_ST_NCI and select it automatically
if either TCG_TIS_ST33ZP24_I2C or TCG_TIS_ST33ZP24_SPI is selected.

This avoids presenting TCG_TIS_ST33ZP24 when neither TCG_TIS_ST33ZP24_I2C
nor TCG_TIS_ST33ZP24_SPI can be selected.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/Kconfig | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/Kconfig b/drivers/char/tpm/st33zp24/Kconfig
index 19c0074..e74c6f2 100644
--- a/drivers/char/tpm/st33zp24/Kconfig
+++ b/drivers/char/tpm/st33zp24/Kconfig
@@ -1,6 +1,5 @@
 config TCG_TIS_ST33ZP24
-	tristate "STMicroelectronics TPM Interface Specification 1.2 Interface"
-	depends on GPIOLIB || COMPILE_TEST
+	tristate
 	---help---
 	  STMicroelectronics ST33ZP24 core driver. It implements the core
 	  TPM1.2 logic and hooks into the TPM kernel APIs. Physical layers will
@@ -10,9 +9,9 @@ config TCG_TIS_ST33ZP24
 	  tpm_st33zp24.
 
 config TCG_TIS_ST33ZP24_I2C
-	tristate "TPM 1.2 ST33ZP24 I2C support"
-	depends on TCG_TIS_ST33ZP24
+	tristate "STMicroelectronics TPM Interface Specification 1.2 Interface (I2C)"
 	depends on I2C
+	select TCG_TIS_ST33ZP24
 	---help---
 	  This module adds support for the STMicroelectronics TPM security chip
 	  ST33ZP24 with i2c interface.
@@ -20,9 +19,9 @@ config TCG_TIS_ST33ZP24_I2C
 	  called tpm_st33zp24_i2c.
 
 config TCG_TIS_ST33ZP24_SPI
-	tristate "TPM 1.2 ST33ZP24 SPI support"
-	depends on TCG_TIS_ST33ZP24
+	tristate "STMicroelectronics TPM Interface Specification 1.2 Interface (SPI)"
 	depends on SPI
+	select TCG_TIS_ST33ZP24
 	---help---
 	  This module adds support for the STMicroelectronics TPM security chip
 	  ST33ZP24 with spi interface.
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 07/12] tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (5 preceding siblings ...)
  2016-02-09  9:26   ` [PATCH 06/12] tpm/st33zp24: Auto-select core module Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-8-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 08/12] tpm/st33zp24: Extend Copyright headers Christophe Ricard
                     ` (5 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Add check in st33zp24_spi_evaluate_latency helping to diagnose if the chip
is present or in a bad state.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/spi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index 0af836a..7cabf1d 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -213,6 +213,11 @@ static int st33zp24_spi_evaluate_latency(void *phy_id)
 						&data, 1);
 		latency++;
 	}
+	if (status < 0)
+		return status;
+	if (latency == MAX_SPI_LATENCY)
+		return -ENODEV;
+
 	return latency - 1;
 } /* evaluate_latency() */
 
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 08/12] tpm/st33zp24: Extend Copyright headers
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (6 preceding siblings ...)
  2016-02-09  9:26   ` [PATCH 07/12] tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-9-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 09/12] tpm/st33zp24: Add support for acpi probing for i2c device Christophe Ricard
                     ` (4 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Extend copyright header to 2016

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/i2c.c        | 2 +-
 drivers/char/tpm/st33zp24/spi.c        | 2 +-
 drivers/char/tpm/st33zp24/st33zp24.c   | 2 +-
 drivers/char/tpm/st33zp24/st33zp24.h   | 2 +-
 include/linux/platform_data/st33zp24.h | 2 +-
 5 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c
index a05fbd8..a49b6f1 100644
--- a/drivers/char/tpm/st33zp24/i2c.c
+++ b/drivers/char/tpm/st33zp24/i2c.c
@@ -1,6 +1,6 @@
 /*
  * STMicroelectronics TPM I2C Linux driver for TPM ST33ZP24
- * Copyright (C) 2009 - 2015 STMicroelectronics
+ * Copyright (C) 2009 - 2016 STMicroelectronics
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index 7cabf1d..34cdee1 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -1,6 +1,6 @@
 /*
  * STMicroelectronics TPM SPI Linux driver for TPM ST33ZP24
- * Copyright (C) 2009 - 2015  STMicroelectronics
+ * Copyright (C) 2009 - 2016 STMicroelectronics
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/drivers/char/tpm/st33zp24/st33zp24.c b/drivers/char/tpm/st33zp24/st33zp24.c
index 8d62678..944d279 100644
--- a/drivers/char/tpm/st33zp24/st33zp24.c
+++ b/drivers/char/tpm/st33zp24/st33zp24.c
@@ -1,6 +1,6 @@
 /*
  * STMicroelectronics TPM Linux driver for TPM ST33ZP24
- * Copyright (C) 2009 - 2015 STMicroelectronics
+ * Copyright (C) 2009 - 2016 STMicroelectronics
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/drivers/char/tpm/st33zp24/st33zp24.h b/drivers/char/tpm/st33zp24/st33zp24.h
index c207ceb..bcbd5ff 100644
--- a/drivers/char/tpm/st33zp24/st33zp24.h
+++ b/drivers/char/tpm/st33zp24/st33zp24.h
@@ -1,6 +1,6 @@
 /*
  * STMicroelectronics TPM Linux driver for TPM ST33ZP24
- * Copyright (C) 2009 - 2015  STMicroelectronics
+ * Copyright (C) 2009 - 2016  STMicroelectronics
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms and conditions of the GNU General Public License,
diff --git a/include/linux/platform_data/st33zp24.h b/include/linux/platform_data/st33zp24.h
index 817dfdb..6f0fb6e 100644
--- a/include/linux/platform_data/st33zp24.h
+++ b/include/linux/platform_data/st33zp24.h
@@ -1,6 +1,6 @@
 /*
  * STMicroelectronics TPM Linux driver for TPM 1.2 ST33ZP24
- * Copyright (C) 2009 - 2015  STMicroelectronics
+ * Copyright (C) 2009 - 2016  STMicroelectronics
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 09/12] tpm/st33zp24: Add support for acpi probing for i2c device.
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (7 preceding siblings ...)
  2016-02-09  9:26   ` [PATCH 08/12] tpm/st33zp24: Extend Copyright headers Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-10-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:26   ` [PATCH 10/12] tpm: st33zp24: Add support for acpi probing for spi device Christophe Ricard
                     ` (3 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Add support for acpi probing. SMO3324 is used for st33zp24.
It has been tested with the following acpi node on Minnowboard:

Device (TPM1)
{
	Name (_ADR, Zero)  // _ADR: Address
	Name (_HID, "SMO3324")  // _HID: Hardware ID
	Name (_CID, "SMO3324")  // _CID: Compatible ID
	Name (_DDN, "SMO TPM")  // _DDN: DOS Device Name
	Name (_UID, One)  // _UID: Unique ID
	Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
	{
		Name (SBUF, ResourceTemplate ()
		{
			I2cSerialBus (0x0013, ControllerInitiated, 400000,
				      AddressingMode7Bit, "\\_SB.I2C7",
				      0x00, ResourceConsumer, ,)
			GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
				 "\\_SB.GPO2", 0x00, ResourceConsumer, ,)
			{   	// Pin list
				0x0001
			}
			GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
				"\\_SB.GPO2", 0x00, ResourceConsumer, ,)
			{	// Pin list
				0x0002,
			}
		})
		Return (SBUF) /* \_SB_.I2C7.TPM1._CRS.SBUF */
	}

	Method (_STA, 0, NotSerialized)  // _STA: Status
	{
		Return (0x0F)
	}
}

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/i2c.c | 50 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c
index a49b6f1..b20cc2b 100644
--- a/drivers/char/tpm/st33zp24/i2c.c
+++ b/drivers/char/tpm/st33zp24/i2c.c
@@ -19,8 +19,10 @@
 #include <linux/module.h>
 #include <linux/i2c.h>
 #include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
 #include <linux/of_irq.h>
 #include <linux/of_gpio.h>
+#include <linux/acpi.h>
 #include <linux/tpm.h>
 #include <linux/platform_data/st33zp24.h>
 
@@ -108,6 +110,43 @@ static const struct st33zp24_phy_ops i2c_phy_ops = {
 	.recv = st33zp24_i2c_recv,
 };
 
+static int st33zp24_i2c_acpi_request_resources(struct st33zp24_i2c_phy *phy)
+{
+	struct i2c_client *client = phy->client;
+	const struct acpi_device_id *id;
+	struct gpio_desc *gpiod_lpcpd;
+	struct device *dev;
+
+	if (!client)
+		return -EINVAL;
+
+	dev = &client->dev;
+
+	/* Match the struct device against a given list of ACPI IDs */
+	id = acpi_match_device(dev->driver->acpi_match_table, dev);
+	if (!id)
+		return -ENODEV;
+
+	/* Get LPCPD GPIO from ACPI */
+	gpiod_lpcpd = devm_gpiod_get_index(dev, "TPM IO LPCPD", 1,
+					   GPIOD_OUT_HIGH);
+	if (IS_ERR(gpiod_lpcpd)) {
+		dev_err(&client->dev,
+			"Failed to retrieve lpcpd-gpios from acpi.\n");
+		phy->io_lpcpd = -1;
+		/*
+		 * lpcpd pin is not specified. This is not an issue as
+		 * power management can be also managed by TPM specific
+		 * commands. So leave with a success status code.
+		 */
+		return 0;
+	}
+
+	phy->io_lpcpd = desc_to_gpio(gpiod_lpcpd);
+
+	return 0;
+}
+
 static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
 {
 	struct device_node *pp;
@@ -214,6 +253,10 @@ static int st33zp24_i2c_probe(struct i2c_client *client,
 		ret = st33zp24_i2c_request_resources(client, phy);
 		if (ret)
 			return ret;
+	} else if (ACPI_HANDLE(&client->dev)) {
+		ret = st33zp24_i2c_acpi_request_resources(phy);
+		if (ret)
+			return ret;
 	}
 
 	return st33zp24_probe(phy, &i2c_phy_ops, &client->dev, client->irq,
@@ -244,6 +287,12 @@ static const struct of_device_id of_st33zp24_i2c_match[] = {
 };
 MODULE_DEVICE_TABLE(of, of_st33zp24_i2c_match);
 
+static const struct acpi_device_id st33zp24_i2c_acpi_match[] = {
+	{"SMO3324"},
+	{}
+};
+MODULE_DEVICE_TABLE(acpi, st33zp24_i2c_acpi_match);
+
 static SIMPLE_DEV_PM_OPS(st33zp24_i2c_ops, st33zp24_pm_suspend,
 			 st33zp24_pm_resume);
 
@@ -252,6 +301,7 @@ static struct i2c_driver st33zp24_i2c_driver = {
 		.name = TPM_ST33_I2C,
 		.pm = &st33zp24_i2c_ops,
 		.of_match_table = of_match_ptr(of_st33zp24_i2c_match),
+		.acpi_match_table = ACPI_PTR(st33zp24_i2c_acpi_match),
 	},
 	.probe = st33zp24_i2c_probe,
 	.remove = st33zp24_i2c_remove,
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 10/12] tpm: st33zp24: Add support for acpi probing for spi device.
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (8 preceding siblings ...)
  2016-02-09  9:26   ` [PATCH 09/12] tpm/st33zp24: Add support for acpi probing for i2c device Christophe Ricard
@ 2016-02-09  9:26   ` Christophe Ricard
       [not found]     ` <1455010021-21927-11-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:27   ` [PATCH 11/12] tpm/st33zp24/i2c: Change xxx_request_resources header Christophe Ricard
                     ` (2 subsequent siblings)
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:26 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Add support for acpi probing. SMO3324 is used for st33zp24.
It has been tested with the following acpi node on Minnowboard:

Device (TPM1)
{
	Name (_ADR, Zero)  // _ADR: Address
	Name (_HID, "SMO3324")  // _HID: Hardware ID
	Name (_CID, "SMO3324")  // _CID: Compatible ID
	Name (_DDN, "SMO TPM")  // _DDN: DOS Device Name
	Name (_UID, One)  // _UID: Unique ID
	Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
	{
		Name (SBUF, ResourceTemplate ()
		{
			SpiSerialBus (0, PolarityLow, FourWireMode, 8,
				      ControllerInitiated, 10000000, ClockPolarityLow,
				      ClockPhaseFirst, "\\_SB.SPI1",
				      0x00, ResourceConsumer, ,)
			GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
				 "\\_SB.GPO2", 0x00, ResourceConsumer, ,)
			{       // Pin list
				0x0001
			}
			GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
				"\\_SB.GPO2", 0x00, ResourceConsumer, ,)
			{       // Pin list
				0x0002,
			}
		})
		Return (SBUF) /* \_SB_.SPI1.TPM1._CRS.SBUF */
	}
	Method (_STA, 0, NotSerialized)  // _STA: Status
	{
		Return (0x0F)
	}
}

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/spi.c | 50 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index 34cdee1..b9b74ae 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -19,8 +19,10 @@
 #include <linux/module.h>
 #include <linux/spi/spi.h>
 #include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
 #include <linux/of_irq.h>
 #include <linux/of_gpio.h>
+#include <linux/acpi.h>
 #include <linux/tpm.h>
 #include <linux/platform_data/st33zp24.h>
 
@@ -226,6 +228,43 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
 	.recv = st33zp24_spi_recv,
 };
 
+static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
+{
+	struct spi_device *spi_dev = phy->spi_device;
+	const struct acpi_device_id *id;
+	struct gpio_desc *gpiod_lpcpd;
+	struct device *dev;
+
+	if (!spi_dev)
+		return -EINVAL;
+
+	dev = &spi_dev->dev;
+
+	/* Match the struct device against a given list of ACPI IDs */
+	id = acpi_match_device(dev->driver->acpi_match_table, dev);
+	if (!id)
+		return -ENODEV;
+
+	/* Get LPCPD GPIO from ACPI */
+	gpiod_lpcpd = devm_gpiod_get_index(dev, "TPM IO LPCPD", 1,
+					   GPIOD_OUT_HIGH);
+	if (IS_ERR(gpiod_lpcpd)) {
+		dev_err(&client->dev,
+			"Failed to retrieve lpcpd-gpios from acpi.\n");
+		phy->io_lpcpd = -1;
+		/*
+		 * lpcpd pin is not specified. This is not an issue as
+		 * power management can be also managed by TPM specific
+		 * commands. So leave with a success status code.
+		 */
+		return 0;
+	}
+
+	phy->io_lpcpd = desc_to_gpio(gpiod_lpcpd);
+
+	return 0;
+}
+
 static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
 {
 	struct device_node *pp;
@@ -327,6 +366,10 @@ static int st33zp24_spi_probe(struct spi_device *dev)
 		ret = st33zp24_spi_request_resources(dev, phy);
 		if (ret)
 			return ret;
+	} else if (ACPI_HANDLE(&dev->dev)) {
+		ret = st33zp24_spi_acpi_request_resources(phy);
+		if (ret)
+			return ret;
 	}
 
 	phy->latency = st33zp24_spi_evaluate_latency(phy);
@@ -361,6 +404,12 @@ static const struct of_device_id of_st33zp24_spi_match[] = {
 };
 MODULE_DEVICE_TABLE(of, of_st33zp24_spi_match);
 
+static const struct acpi_device_id st33zp24_spi_acpi_match[] = {
+	{"SMO3324"},
+	{}
+};
+MODULE_DEVICE_TABLE(acpi, st33zp24_spi_acpi_match);
+
 static SIMPLE_DEV_PM_OPS(st33zp24_spi_ops, st33zp24_pm_suspend,
 			 st33zp24_pm_resume);
 
@@ -369,6 +418,7 @@ static struct spi_driver st33zp24_spi_driver = {
 		.name = TPM_ST33_SPI,
 		.pm = &st33zp24_spi_ops,
 		.of_match_table = of_match_ptr(of_st33zp24_spi_match),
+		.acpi_match_table = ACPI_PTR(st33zp24_spi_acpi_match),
 	},
 	.probe = st33zp24_spi_probe,
 	.remove = st33zp24_spi_remove,
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 11/12] tpm/st33zp24/i2c: Change xxx_request_resources header
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (9 preceding siblings ...)
  2016-02-09  9:26   ` [PATCH 10/12] tpm: st33zp24: Add support for acpi probing for spi device Christophe Ricard
@ 2016-02-09  9:27   ` Christophe Ricard
       [not found]     ` <1455010021-21927-12-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-09  9:27   ` [PATCH 12/12] tpm/st33zp24/spi: " Christophe Ricard
  2016-02-14  9:11   ` [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support Jarkko Sakkinen
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:27 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Simplify st33zp24_i2c_acpi_request_resources, st33zp24_i2c_of_request_resources
and st33zp24_i2c_request_resources to have the same prototype and using
i2c_get_clientdata.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/i2c.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c
index b20cc2b..f179aad 100644
--- a/drivers/char/tpm/st33zp24/i2c.c
+++ b/drivers/char/tpm/st33zp24/i2c.c
@@ -110,9 +110,9 @@ static const struct st33zp24_phy_ops i2c_phy_ops = {
 	.recv = st33zp24_i2c_recv,
 };
 
-static int st33zp24_i2c_acpi_request_resources(struct st33zp24_i2c_phy *phy)
+static int st33zp24_i2c_acpi_request_resources(struct i2c_client *client)
 {
-	struct i2c_client *client = phy->client;
+	struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
 	const struct acpi_device_id *id;
 	struct gpio_desc *gpiod_lpcpd;
 	struct device *dev;
@@ -147,10 +147,10 @@ static int st33zp24_i2c_acpi_request_resources(struct st33zp24_i2c_phy *phy)
 	return 0;
 }
 
-static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
+static int st33zp24_i2c_of_request_resources(struct i2c_client *client)
 {
+	struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
 	struct device_node *pp;
-	struct i2c_client *client = phy->client;
 	int gpio;
 	int ret;
 
@@ -185,10 +185,10 @@ static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
 	return 0;
 }
 
-static int st33zp24_i2c_request_resources(struct i2c_client *client,
-					  struct st33zp24_i2c_phy *phy)
+static int st33zp24_i2c_request_resources(struct i2c_client *client)
 {
 	struct st33zp24_platform_data *pdata;
+	struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
 	int ret;
 
 	pdata = client->dev.platform_data;
@@ -244,17 +244,20 @@ static int st33zp24_i2c_probe(struct i2c_client *client,
 		return -ENOMEM;
 
 	phy->client = client;
+
+	i2c_set_clientdata(client, phy);
+
 	pdata = client->dev.platform_data;
 	if (!pdata && client->dev.of_node) {
-		ret = st33zp24_i2c_of_request_resources(phy);
+		ret = st33zp24_i2c_of_request_resources(client);
 		if (ret)
 			return ret;
 	} else if (pdata) {
-		ret = st33zp24_i2c_request_resources(client, phy);
+		ret = st33zp24_i2c_request_resources(client);
 		if (ret)
 			return ret;
 	} else if (ACPI_HANDLE(&client->dev)) {
-		ret = st33zp24_i2c_acpi_request_resources(phy);
+		ret = st33zp24_i2c_acpi_request_resources(client);
 		if (ret)
 			return ret;
 	}
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* [PATCH 12/12] tpm/st33zp24/spi: Change xxx_request_resources header
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (10 preceding siblings ...)
  2016-02-09  9:27   ` [PATCH 11/12] tpm/st33zp24/i2c: Change xxx_request_resources header Christophe Ricard
@ 2016-02-09  9:27   ` Christophe Ricard
       [not found]     ` <1455010021-21927-13-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
  2016-02-14  9:11   ` [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support Jarkko Sakkinen
  12 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-09  9:27 UTC (permalink / raw)
  To: jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA, peterhuewe-Mmb7MZpHnFY
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	christophe.ricard-Re5JQEeQqe8AvxtiuMwx3w,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Simplify st33zp24_spi_acpi_request_resources, st33zp24_spi_of_request_resources
and st33zp24_spi_request_resources to have the same prototype and using
spi_get_drvdata.

Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
---
 drivers/char/tpm/st33zp24/spi.c | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
index b9b74ae..f725d39 100644
--- a/drivers/char/tpm/st33zp24/spi.c
+++ b/drivers/char/tpm/st33zp24/spi.c
@@ -228,9 +228,9 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
 	.recv = st33zp24_spi_recv,
 };
 
-static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
+static int st33zp24_spi_acpi_request_resources(struct spi_device *spi_dev)
 {
-	struct spi_device *spi_dev = phy->spi_device;
+	struct st33zp24_spi_phy *phy = spi_get_drvdata(spi_dev);
 	const struct acpi_device_id *id;
 	struct gpio_desc *gpiod_lpcpd;
 	struct device *dev;
@@ -249,7 +249,7 @@ static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
 	gpiod_lpcpd = devm_gpiod_get_index(dev, "TPM IO LPCPD", 1,
 					   GPIOD_OUT_HIGH);
 	if (IS_ERR(gpiod_lpcpd)) {
-		dev_err(&client->dev,
+		dev_err(dev,
 			"Failed to retrieve lpcpd-gpios from acpi.\n");
 		phy->io_lpcpd = -1;
 		/*
@@ -265,23 +265,23 @@ static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
 	return 0;
 }
 
-static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
+static int st33zp24_spi_of_request_resources(struct spi_device *spi_dev)
 {
+	struct st33zp24_spi_phy *phy = spi_get_drvdata(spi_dev);
 	struct device_node *pp;
-	struct spi_device *dev = phy->spi_device;
 	int gpio;
 	int ret;
 
-	pp = dev->dev.of_node;
+	pp = spi_dev->dev.of_node;
 	if (!pp) {
-		dev_err(&dev->dev, "No platform data\n");
+		dev_err(&spi_dev->dev, "No platform data\n");
 		return -ENODEV;
 	}
 
 	/* Get GPIO from device tree */
 	gpio = of_get_named_gpio(pp, "lpcpd-gpios", 0);
 	if (gpio < 0) {
-		dev_err(&dev->dev,
+		dev_err(&spi_dev->dev,
 			"Failed to retrieve lpcpd-gpios from dts.\n");
 		phy->io_lpcpd = -1;
 		/*
@@ -292,10 +292,10 @@ static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
 		return 0;
 	}
 	/* GPIO request and configuration */
-	ret = devm_gpio_request_one(&dev->dev, gpio,
+	ret = devm_gpio_request_one(&spi_dev->dev, gpio,
 			GPIOF_OUT_INIT_HIGH, "TPM IO LPCPD");
 	if (ret) {
-		dev_err(&dev->dev, "Failed to request lpcpd pin\n");
+		dev_err(&spi_dev->dev, "Failed to request lpcpd pin\n");
 		return -ENODEV;
 	}
 	phy->io_lpcpd = gpio;
@@ -303,9 +303,9 @@ static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
 	return 0;
 }
 
-static int st33zp24_spi_request_resources(struct spi_device *dev,
-					  struct st33zp24_spi_phy *phy)
+static int st33zp24_spi_request_resources(struct spi_device *dev)
 {
+	struct st33zp24_spi_phy *phy = spi_get_drvdata(dev);
 	struct st33zp24_platform_data *pdata;
 	int ret;
 
@@ -357,13 +357,16 @@ static int st33zp24_spi_probe(struct spi_device *dev)
 		return -ENOMEM;
 
 	phy->spi_device = dev;
+
+	spi_set_drvdata(dev, phy);
+
 	pdata = dev->dev.platform_data;
 	if (!pdata && dev->dev.of_node) {
-		ret = st33zp24_spi_of_request_resources(phy);
+		ret = st33zp24_spi_of_request_resources(dev);
 		if (ret)
 			return ret;
 	} else if (pdata) {
-		ret = st33zp24_spi_request_resources(dev, phy);
+		ret = st33zp24_spi_request_resources(dev);
 		if (ret)
 			return ret;
 	} else if (ACPI_HANDLE(&dev->dev)) {
-- 
2.5.0


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply related	[flat|nested] 31+ messages in thread

* Re: [PATCH 01/12] tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
       [not found]     ` <1455010021-21927-2-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 13:48       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 13:48 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:50AM +0100, Christophe Ricard wrote:
> nbr_dummy_bytes variable could be easily replaced by phy->latency in
> st33zp24_spi_send and st33zp24_spi_recv.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/spi.c | 20 +++++++++-----------
>  1 file changed, 9 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index f974c94..74c5fcc 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -111,7 +111,7 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  			     int tpm_size)
>  {
>  	u8 data = 0;
> -	int total_length = 0, nbr_dummy_bytes = 0, ret = 0;
> +	int total_length = 0, ret = 0;
>  	struct st33zp24_spi_phy *phy = phy_id;
>  	struct spi_device *dev = phy->spi_device;
>  	u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf;
> @@ -133,14 +133,13 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  	memcpy(&tx_buf[total_length], tpm_data, tpm_size);
>  	total_length += tpm_size;
>  
> -	nbr_dummy_bytes = phy->latency;
> -	memset(&tx_buf[total_length], TPM_DUMMY_BYTE, nbr_dummy_bytes);
> +	memset(&tx_buf[total_length], TPM_DUMMY_BYTE, phy->latency);
>  
> -	phy->spi_xfer.len = total_length + nbr_dummy_bytes;
> +	phy->spi_xfer.len = total_length + phy->latency;
>  
>  	ret = spi_sync_transfer(dev, &phy->spi_xfer, 1);
>  	if (ret == 0)
> -		ret = rx_buf[total_length + nbr_dummy_bytes - 1];
> +		ret = rx_buf[total_length + phy->latency - 1];
>  
>  	return st33zp24_status_to_errno(ret);
>  } /* st33zp24_spi_send() */
> @@ -157,7 +156,7 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  static int read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size)
>  {
>  	u8 data = 0;
> -	int total_length = 0, nbr_dummy_bytes, ret;
> +	int total_length = 0, ret;
>  	struct st33zp24_spi_phy *phy = phy_id;
>  	struct spi_device *dev = phy->spi_device;
>  	u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf;
> @@ -171,18 +170,17 @@ static int read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size)
>  	memcpy(tx_buf + total_length, &data, sizeof(data));
>  	total_length++;
>  
> -	nbr_dummy_bytes = phy->latency;
>  	memset(&tx_buf[total_length], TPM_DUMMY_BYTE,
> -	       nbr_dummy_bytes + tpm_size);
> +	       phy->latency + tpm_size);
>  
> -	phy->spi_xfer.len = total_length + nbr_dummy_bytes + tpm_size;
> +	phy->spi_xfer.len = total_length + phy->latency + tpm_size;
>  
>  	/* header + status byte + size of the data + status byte */
>  	ret = spi_sync_transfer(dev, &phy->spi_xfer, 1);
>  	if (tpm_size > 0 && ret == 0) {
> -		ret = rx_buf[total_length + nbr_dummy_bytes - 1];
> +		ret = rx_buf[total_length + phy->latency - 1];
>  
> -		memcpy(tpm_data, rx_buf + total_length + nbr_dummy_bytes,
> +		memcpy(tpm_data, rx_buf + total_length + phy->latency,
>  		       tpm_size);
>  	}
>  
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 02/12] tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
       [not found]     ` <1455010021-21927-3-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 13:50       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 13:50 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:51AM +0100, Christophe Ricard wrote:
> Make sure every function name use st33zp24_spi_ prefix.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/spi.c | 45 +++++++++++++++++++++--------------------
>  1 file changed, 23 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index 74c5fcc..f42c443 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -145,7 +145,7 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  } /* st33zp24_spi_send() */
>  
>  /*
> - * read8_recv
> + * st33zp24_spi_read8_recv
>   * Recv byte from the TIS register according to the ST33ZP24 SPI protocol.
>   * @param: phy_id, the phy description
>   * @param: tpm_register, the tpm tis register where the data should be read
> @@ -153,7 +153,8 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>   * @param: tpm_size, tpm TPM response size to read.
>   * @return: should be zero if success else a negative error code.
>   */
> -static int read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size)
> +static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
> +				  int tpm_size)
>  {
>  	u8 data = 0;
>  	int total_length = 0, ret;
> @@ -185,7 +186,7 @@ static int read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, int tpm_size)
>  	}
>  
>  	return ret;
> -} /* read8_reg() */
> +} /* st33zp24_spi_read8_reg() */
>  
>  /*
>   * st33zp24_spi_recv
> @@ -201,13 +202,13 @@ static int st33zp24_spi_recv(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  {
>  	int ret;
>  
> -	ret = read8_reg(phy_id, tpm_register, tpm_data, tpm_size);
> +	ret = st33zp24_spi_read8_reg(phy_id, tpm_register, tpm_data, tpm_size);
>  	if (!st33zp24_status_to_errno(ret))
>  		return tpm_size;
>  	return ret;
>  } /* st33zp24_spi_recv() */
>  
> -static int evaluate_latency(void *phy_id)
> +static int st33zp24_spi_evaluate_latency(void *phy_id)
>  {
>  	struct st33zp24_spi_phy *phy = phy_id;
>  	int latency = 1, status = 0;
> @@ -215,7 +216,8 @@ static int evaluate_latency(void *phy_id)
>  
>  	while (!status && latency < MAX_SPI_LATENCY) {
>  		phy->latency = latency;
> -		status = read8_reg(phy_id, TPM_INTF_CAPABILITY, &data, 1);
> +		status = st33zp24_spi_read8_reg(phy_id, TPM_INTF_CAPABILITY,
> +						&data, 1);
>  		latency++;
>  	}
>  	return latency - 1;
> @@ -227,7 +229,7 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
>  };
>  
>  #ifdef CONFIG_OF
> -static int tpm_stm_spi_of_request_resources(struct st33zp24_spi_phy *phy)
> +static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  {
>  	struct device_node *pp;
>  	struct spi_device *dev = phy->spi_device;
> @@ -265,14 +267,14 @@ static int tpm_stm_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  	return 0;
>  }
>  #else
> -static int tpm_stm_spi_of_request_resources(struct st33zp24_spi_phy *phy)
> +static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  {
>  	return -ENODEV;
>  }
>  #endif
>  
> -static int tpm_stm_spi_request_resources(struct spi_device *dev,
> -					 struct st33zp24_spi_phy *phy)
> +static int st33zp24_spi_request_resources(struct spi_device *dev,
> +					  struct st33zp24_spi_phy *phy)
>  {
>  	struct st33zp24_platform_data *pdata;
>  	int ret;
> @@ -301,13 +303,12 @@ static int tpm_stm_spi_request_resources(struct spi_device *dev,
>  }
>  
>  /*
> - * tpm_st33_spi_probe initialize the TPM device
> + * st33zp24_spi_probe initialize the TPM device
>   * @param: dev, the spi_device drescription (TPM SPI description).
>   * @return: 0 in case of success.
>   *	 or a negative value describing the error.
>   */
> -static int
> -tpm_st33_spi_probe(struct spi_device *dev)
> +static int st33zp24_spi_probe(struct spi_device *dev)
>  {
>  	int ret;
>  	struct st33zp24_platform_data *pdata;
> @@ -328,11 +329,11 @@ tpm_st33_spi_probe(struct spi_device *dev)
>  	phy->spi_device = dev;
>  	pdata = dev->dev.platform_data;
>  	if (!pdata && dev->dev.of_node) {
> -		ret = tpm_stm_spi_of_request_resources(phy);
> +		ret = st33zp24_spi_of_request_resources(phy);
>  		if (ret)
>  			return ret;
>  	} else if (pdata) {
> -		ret = tpm_stm_spi_request_resources(dev, phy);
> +		ret = st33zp24_spi_request_resources(dev, phy);
>  		if (ret)
>  			return ret;
>  	}
> @@ -340,7 +341,7 @@ tpm_st33_spi_probe(struct spi_device *dev)
>  	phy->spi_xfer.tx_buf = phy->tx_buf;
>  	phy->spi_xfer.rx_buf = phy->rx_buf;
>  
> -	phy->latency = evaluate_latency(phy);
> +	phy->latency = st33zp24_spi_evaluate_latency(phy);
>  	if (phy->latency <= 0)
>  		return -ENODEV;
>  
> @@ -349,11 +350,11 @@ tpm_st33_spi_probe(struct spi_device *dev)
>  }
>  
>  /*
> - * tpm_st33_spi_remove remove the TPM device
> + * st33zp24_spi_remove remove the TPM device
>   * @param: client, the spi_device drescription (TPM SPI description).
>   * @return: 0 in case of success.
>   */
> -static int tpm_st33_spi_remove(struct spi_device *dev)
> +static int st33zp24_spi_remove(struct spi_device *dev)
>  {
>  	struct tpm_chip *chip = spi_get_drvdata(dev);
>  
> @@ -377,18 +378,18 @@ MODULE_DEVICE_TABLE(of, of_st33zp24_spi_match);
>  static SIMPLE_DEV_PM_OPS(st33zp24_spi_ops, st33zp24_pm_suspend,
>  			 st33zp24_pm_resume);
>  
> -static struct spi_driver tpm_st33_spi_driver = {
> +static struct spi_driver st33zp24_spi_driver = {
>  	.driver = {
>  		.name = TPM_ST33_SPI,
>  		.pm = &st33zp24_spi_ops,
>  		.of_match_table = of_match_ptr(of_st33zp24_spi_match),
>  	},
> -	.probe = tpm_st33_spi_probe,
> -	.remove = tpm_st33_spi_remove,
> +	.probe = st33zp24_spi_probe,
> +	.remove = st33zp24_spi_remove,
>  	.id_table = st33zp24_spi_id,
>  };
>  
> -module_spi_driver(tpm_st33_spi_driver);
> +module_spi_driver(st33zp24_spi_driver);
>  
>  MODULE_AUTHOR("TPM support (TPMsupport-nkJGhpqTU55BDgjK7y7TUQ@public.gmane.org)");
>  MODULE_DESCRIPTION("STM TPM 1.2 SPI ST33 Driver");
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 03/12] tpm/st33zp24/spi: Remove useless use of memcpy.
       [not found]     ` <1455010021-21927-4-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 13:54       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 13:54 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:52AM +0100, Christophe Ricard wrote:
> An affectation is enough when copying 1 byte. Remove memcpy usage where
> possible.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/spi.c | 18 ++++--------------
>  1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index f42c443..08ffbfe 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -110,7 +110,6 @@ static int st33zp24_status_to_errno(u8 code)
>  static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  			     int tpm_size)
>  {
> -	u8 data = 0;
>  	int total_length = 0, ret = 0;
>  	struct st33zp24_spi_phy *phy = phy_id;
>  	struct spi_device *dev = phy->spi_device;
> @@ -118,12 +117,8 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  	u8 *rx_buf = phy->spi_xfer.rx_buf;
>  
>  	/* Pre-Header */
> -	data = TPM_WRITE_DIRECTION | LOCALITY0;
> -	memcpy(tx_buf + total_length, &data, sizeof(data));
> -	total_length++;
> -	data = tpm_register;
> -	memcpy(tx_buf + total_length, &data, sizeof(data));
> -	total_length++;
> +	tx_buf[total_length++] = TPM_WRITE_DIRECTION | LOCALITY0;
> +	tx_buf[total_length++] = tpm_register;
>  
>  	if (tpm_size > 0 && tpm_register == TPM_DATA_FIFO) {
>  		tx_buf[total_length++] = tpm_size >> 8;
> @@ -156,7 +151,6 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  				  int tpm_size)
>  {
> -	u8 data = 0;
>  	int total_length = 0, ret;
>  	struct st33zp24_spi_phy *phy = phy_id;
>  	struct spi_device *dev = phy->spi_device;
> @@ -164,12 +158,8 @@ static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  	u8 *rx_buf = phy->spi_xfer.rx_buf;
>  
>  	/* Pre-Header */
> -	data = LOCALITY0;
> -	memcpy(tx_buf + total_length, &data, sizeof(data));
> -	total_length++;
> -	data = tpm_register;
> -	memcpy(tx_buf + total_length, &data, sizeof(data));
> -	total_length++;
> +	tx_buf[total_length++] = LOCALITY0;
> +	tx_buf[total_length++] = tpm_register;
>  
>  	memset(&tx_buf[total_length], TPM_DUMMY_BYTE,
>  	       phy->latency + tpm_size);
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 04/12] tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure
       [not found]     ` <1455010021-21927-5-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:06       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:06 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:53AM +0100, Christophe Ricard wrote:
> Remove spi_xfer from st33zp24_spi_phy structure and declare local spi_xfer
> when needed instead.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/spi.c | 50 ++++++++++++++++++++---------------------
>  1 file changed, 25 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index 08ffbfe..41c11c9 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -66,7 +66,7 @@
>  
>  struct st33zp24_spi_phy {
>  	struct spi_device *spi_device;
> -	struct spi_transfer spi_xfer;
> +
>  	u8 tx_buf[ST33ZP24_SPI_BUFFER_SIZE];
>  	u8 rx_buf[ST33ZP24_SPI_BUFFER_SIZE];
>  
> @@ -113,28 +113,30 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  	int total_length = 0, ret = 0;
>  	struct st33zp24_spi_phy *phy = phy_id;
>  	struct spi_device *dev = phy->spi_device;
> -	u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf;
> -	u8 *rx_buf = phy->spi_xfer.rx_buf;
> +	struct spi_transfer spi_xfer = {
> +		.tx_buf = phy->tx_buf,
> +		.rx_buf = phy->rx_buf,
> +	};
>  
>  	/* Pre-Header */
> -	tx_buf[total_length++] = TPM_WRITE_DIRECTION | LOCALITY0;
> -	tx_buf[total_length++] = tpm_register;
> +	phy->tx_buf[total_length++] = TPM_WRITE_DIRECTION | LOCALITY0;
> +	phy->tx_buf[total_length++] = tpm_register;
>  
>  	if (tpm_size > 0 && tpm_register == TPM_DATA_FIFO) {
> -		tx_buf[total_length++] = tpm_size >> 8;
> -		tx_buf[total_length++] = tpm_size;
> +		phy->tx_buf[total_length++] = tpm_size >> 8;
> +		phy->tx_buf[total_length++] = tpm_size;
>  	}
>  
> -	memcpy(&tx_buf[total_length], tpm_data, tpm_size);
> +	memcpy(&phy->tx_buf[total_length], tpm_data, tpm_size);
>  	total_length += tpm_size;
>  
> -	memset(&tx_buf[total_length], TPM_DUMMY_BYTE, phy->latency);
> +	memset(&phy->tx_buf[total_length], TPM_DUMMY_BYTE, phy->latency);
>  
> -	phy->spi_xfer.len = total_length + phy->latency;
> +	spi_xfer.len = total_length + phy->latency;
>  
> -	ret = spi_sync_transfer(dev, &phy->spi_xfer, 1);
> +	ret = spi_sync_transfer(dev, &spi_xfer, 1);
>  	if (ret == 0)
> -		ret = rx_buf[total_length + phy->latency - 1];
> +		ret = phy->rx_buf[total_length + phy->latency - 1];
>  
>  	return st33zp24_status_to_errno(ret);
>  } /* st33zp24_spi_send() */
> @@ -154,24 +156,25 @@ static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
>  	int total_length = 0, ret;
>  	struct st33zp24_spi_phy *phy = phy_id;
>  	struct spi_device *dev = phy->spi_device;
> -	u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf;
> -	u8 *rx_buf = phy->spi_xfer.rx_buf;
> +	struct spi_transfer spi_xfer = {
> +		.tx_buf = phy->tx_buf,
> +		.rx_buf = phy->rx_buf,
> +	};
>  
>  	/* Pre-Header */
> -	tx_buf[total_length++] = LOCALITY0;
> -	tx_buf[total_length++] = tpm_register;
> +	phy->tx_buf[total_length++] = LOCALITY0;
> +	phy->tx_buf[total_length++] = tpm_register;
>  
> -	memset(&tx_buf[total_length], TPM_DUMMY_BYTE,
> -	       phy->latency + tpm_size);
> +	memset(&phy->tx_buf[total_length], TPM_DUMMY_BYTE, phy->latency + tpm_size);
>  
> -	phy->spi_xfer.len = total_length + phy->latency + tpm_size;
> +	spi_xfer.len = total_length + phy->latency + tpm_size;
>  
>  	/* header + status byte + size of the data + status byte */
> -	ret = spi_sync_transfer(dev, &phy->spi_xfer, 1);
> +	ret = spi_sync_transfer(dev, &spi_xfer, 1);
>  	if (tpm_size > 0 && ret == 0) {
> -		ret = rx_buf[total_length + phy->latency - 1];
> +		ret = phy->rx_buf[total_length + phy->latency - 1];
>  
> -		memcpy(tpm_data, rx_buf + total_length + phy->latency,
> +		memcpy(tpm_data, phy->rx_buf + total_length + phy->latency,
>  		       tpm_size);
>  	}
>  
> @@ -328,9 +331,6 @@ static int st33zp24_spi_probe(struct spi_device *dev)
>  			return ret;
>  	}
>  
> -	phy->spi_xfer.tx_buf = phy->tx_buf;
> -	phy->spi_xfer.rx_buf = phy->rx_buf;
> -
>  	phy->latency = st33zp24_spi_evaluate_latency(phy);
>  	if (phy->latency <= 0)
>  		return -ENODEV;
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 05/12] tpm/st33zp24: Remove unneeded CONFIG_OF switches
       [not found]     ` <1455010021-21927-6-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:10       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:10 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:54AM +0100, Christophe Ricard wrote:
> DT headers already define NOOP routines when CONFIG_OF is not defined.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

Yeah, I do actually read the diffs even though my replies are fairly
monotonic. You can see it from varying times between replies :)
Nothing bad to say. That's all.

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/i2c.c | 9 ---------
>  drivers/char/tpm/st33zp24/spi.c | 9 ---------
>  2 files changed, 18 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c
> index 309d276..a05fbd8 100644
> --- a/drivers/char/tpm/st33zp24/i2c.c
> +++ b/drivers/char/tpm/st33zp24/i2c.c
> @@ -108,7 +108,6 @@ static const struct st33zp24_phy_ops i2c_phy_ops = {
>  	.recv = st33zp24_i2c_recv,
>  };
>  
> -#ifdef CONFIG_OF
>  static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
>  {
>  	struct device_node *pp;
> @@ -146,12 +145,6 @@ static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
>  
>  	return 0;
>  }
> -#else
> -static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
> -{
> -	return -ENODEV;
> -}
> -#endif
>  
>  static int st33zp24_i2c_request_resources(struct i2c_client *client,
>  					  struct st33zp24_i2c_phy *phy)
> @@ -245,13 +238,11 @@ static const struct i2c_device_id st33zp24_i2c_id[] = {
>  };
>  MODULE_DEVICE_TABLE(i2c, st33zp24_i2c_id);
>  
> -#ifdef CONFIG_OF
>  static const struct of_device_id of_st33zp24_i2c_match[] = {
>  	{ .compatible = "st,st33zp24-i2c", },
>  	{}
>  };
>  MODULE_DEVICE_TABLE(of, of_st33zp24_i2c_match);
> -#endif
>  
>  static SIMPLE_DEV_PM_OPS(st33zp24_i2c_ops, st33zp24_pm_suspend,
>  			 st33zp24_pm_resume);
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index 41c11c9..0af836a 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -221,7 +221,6 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
>  	.recv = st33zp24_spi_recv,
>  };
>  
> -#ifdef CONFIG_OF
>  static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  {
>  	struct device_node *pp;
> @@ -259,12 +258,6 @@ static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  
>  	return 0;
>  }
> -#else
> -static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
> -{
> -	return -ENODEV;
> -}
> -#endif
>  
>  static int st33zp24_spi_request_resources(struct spi_device *dev,
>  					  struct st33zp24_spi_phy *phy)
> @@ -357,13 +350,11 @@ static const struct spi_device_id st33zp24_spi_id[] = {
>  };
>  MODULE_DEVICE_TABLE(spi, st33zp24_spi_id);
>  
> -#ifdef CONFIG_OF
>  static const struct of_device_id of_st33zp24_spi_match[] = {
>  	{ .compatible = "st,st33zp24-spi", },
>  	{}
>  };
>  MODULE_DEVICE_TABLE(of, of_st33zp24_spi_match);
> -#endif
>  
>  static SIMPLE_DEV_PM_OPS(st33zp24_spi_ops, st33zp24_pm_suspend,
>  			 st33zp24_pm_resume);
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 06/12] tpm/st33zp24: Auto-select core module
       [not found]     ` <1455010021-21927-7-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:18       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:18 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:55AM +0100, Christophe Ricard wrote:
> The core st33zp24 module is useless without either the I2C or the
> SPI access module. So hide NFC_ST_NCI and select it automatically
> if either TCG_TIS_ST33ZP24_I2C or TCG_TIS_ST33ZP24_SPI is selected.
> 
> This avoids presenting TCG_TIS_ST33ZP24 when neither TCG_TIS_ST33ZP24_I2C
> nor TCG_TIS_ST33ZP24_SPI can be selected.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/Kconfig | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/Kconfig b/drivers/char/tpm/st33zp24/Kconfig
> index 19c0074..e74c6f2 100644
> --- a/drivers/char/tpm/st33zp24/Kconfig
> +++ b/drivers/char/tpm/st33zp24/Kconfig
> @@ -1,6 +1,5 @@
>  config TCG_TIS_ST33ZP24
> -	tristate "STMicroelectronics TPM Interface Specification 1.2 Interface"
> -	depends on GPIOLIB || COMPILE_TEST
> +	tristate
>  	---help---
>  	  STMicroelectronics ST33ZP24 core driver. It implements the core
>  	  TPM1.2 logic and hooks into the TPM kernel APIs. Physical layers will
> @@ -10,9 +9,9 @@ config TCG_TIS_ST33ZP24
>  	  tpm_st33zp24.
>  
>  config TCG_TIS_ST33ZP24_I2C
> -	tristate "TPM 1.2 ST33ZP24 I2C support"
> -	depends on TCG_TIS_ST33ZP24
> +	tristate "STMicroelectronics TPM Interface Specification 1.2 Interface (I2C)"
>  	depends on I2C
> +	select TCG_TIS_ST33ZP24
>  	---help---
>  	  This module adds support for the STMicroelectronics TPM security chip
>  	  ST33ZP24 with i2c interface.
> @@ -20,9 +19,9 @@ config TCG_TIS_ST33ZP24_I2C
>  	  called tpm_st33zp24_i2c.
>  
>  config TCG_TIS_ST33ZP24_SPI
> -	tristate "TPM 1.2 ST33ZP24 SPI support"
> -	depends on TCG_TIS_ST33ZP24
> +	tristate "STMicroelectronics TPM Interface Specification 1.2 Interface (SPI)"
>  	depends on SPI
> +	select TCG_TIS_ST33ZP24
>  	---help---
>  	  This module adds support for the STMicroelectronics TPM security chip
>  	  ST33ZP24 with spi interface.
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 07/12] tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
       [not found]     ` <1455010021-21927-8-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:22       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:22 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:56AM +0100, Christophe Ricard wrote:
> Add check in st33zp24_spi_evaluate_latency helping to diagnose if the chip
> is present or in a bad state.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/spi.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index 0af836a..7cabf1d 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -213,6 +213,11 @@ static int st33zp24_spi_evaluate_latency(void *phy_id)
>  						&data, 1);
>  		latency++;
>  	}
> +	if (status < 0)
> +		return status;
> +	if (latency == MAX_SPI_LATENCY)
> +		return -ENODEV;
> +
>  	return latency - 1;
>  } /* evaluate_latency() */
>  
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 08/12] tpm/st33zp24: Extend Copyright headers
       [not found]     ` <1455010021-21927-9-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:22       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:22 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:57AM +0100, Christophe Ricard wrote:
> Extend copyright header to 2016
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/i2c.c        | 2 +-
>  drivers/char/tpm/st33zp24/spi.c        | 2 +-
>  drivers/char/tpm/st33zp24/st33zp24.c   | 2 +-
>  drivers/char/tpm/st33zp24/st33zp24.h   | 2 +-
>  include/linux/platform_data/st33zp24.h | 2 +-
>  5 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c
> index a05fbd8..a49b6f1 100644
> --- a/drivers/char/tpm/st33zp24/i2c.c
> +++ b/drivers/char/tpm/st33zp24/i2c.c
> @@ -1,6 +1,6 @@
>  /*
>   * STMicroelectronics TPM I2C Linux driver for TPM ST33ZP24
> - * Copyright (C) 2009 - 2015 STMicroelectronics
> + * Copyright (C) 2009 - 2016 STMicroelectronics
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License as published by
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index 7cabf1d..34cdee1 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -1,6 +1,6 @@
>  /*
>   * STMicroelectronics TPM SPI Linux driver for TPM ST33ZP24
> - * Copyright (C) 2009 - 2015  STMicroelectronics
> + * Copyright (C) 2009 - 2016 STMicroelectronics
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License as published by
> diff --git a/drivers/char/tpm/st33zp24/st33zp24.c b/drivers/char/tpm/st33zp24/st33zp24.c
> index 8d62678..944d279 100644
> --- a/drivers/char/tpm/st33zp24/st33zp24.c
> +++ b/drivers/char/tpm/st33zp24/st33zp24.c
> @@ -1,6 +1,6 @@
>  /*
>   * STMicroelectronics TPM Linux driver for TPM ST33ZP24
> - * Copyright (C) 2009 - 2015 STMicroelectronics
> + * Copyright (C) 2009 - 2016 STMicroelectronics
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License as published by
> diff --git a/drivers/char/tpm/st33zp24/st33zp24.h b/drivers/char/tpm/st33zp24/st33zp24.h
> index c207ceb..bcbd5ff 100644
> --- a/drivers/char/tpm/st33zp24/st33zp24.h
> +++ b/drivers/char/tpm/st33zp24/st33zp24.h
> @@ -1,6 +1,6 @@
>  /*
>   * STMicroelectronics TPM Linux driver for TPM ST33ZP24
> - * Copyright (C) 2009 - 2015  STMicroelectronics
> + * Copyright (C) 2009 - 2016  STMicroelectronics
>   *
>   * This program is free software; you can redistribute it and/or modify it
>   * under the terms and conditions of the GNU General Public License,
> diff --git a/include/linux/platform_data/st33zp24.h b/include/linux/platform_data/st33zp24.h
> index 817dfdb..6f0fb6e 100644
> --- a/include/linux/platform_data/st33zp24.h
> +++ b/include/linux/platform_data/st33zp24.h
> @@ -1,6 +1,6 @@
>  /*
>   * STMicroelectronics TPM Linux driver for TPM 1.2 ST33ZP24
> - * Copyright (C) 2009 - 2015  STMicroelectronics
> + * Copyright (C) 2009 - 2016  STMicroelectronics
>   *
>   * This program is free software; you can redistribute it and/or modify
>   * it under the terms of the GNU General Public License as published by
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 09/12] tpm/st33zp24: Add support for acpi probing for i2c device.
       [not found]     ` <1455010021-21927-10-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:28       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:28 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:58AM +0100, Christophe Ricard wrote:
> Add support for acpi probing. SMO3324 is used for st33zp24.
> It has been tested with the following acpi node on Minnowboard:
> 
> Device (TPM1)
> {
> 	Name (_ADR, Zero)  // _ADR: Address
> 	Name (_HID, "SMO3324")  // _HID: Hardware ID
> 	Name (_CID, "SMO3324")  // _CID: Compatible ID
> 	Name (_DDN, "SMO TPM")  // _DDN: DOS Device Name
> 	Name (_UID, One)  // _UID: Unique ID
> 	Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
> 	{
> 		Name (SBUF, ResourceTemplate ()
> 		{
> 			I2cSerialBus (0x0013, ControllerInitiated, 400000,
> 				      AddressingMode7Bit, "\\_SB.I2C7",
> 				      0x00, ResourceConsumer, ,)
> 			GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
> 				 "\\_SB.GPO2", 0x00, ResourceConsumer, ,)
> 			{   	// Pin list
> 				0x0001
> 			}
> 			GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
> 				"\\_SB.GPO2", 0x00, ResourceConsumer, ,)
> 			{	// Pin list
> 				0x0002,
> 			}
> 		})
> 		Return (SBUF) /* \_SB_.I2C7.TPM1._CRS.SBUF */
> 	}
> 
> 	Method (_STA, 0, NotSerialized)  // _STA: Status
> 	{
> 		Return (0x0F)
> 	}
> }
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/i2c.c | 50 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c
> index a49b6f1..b20cc2b 100644
> --- a/drivers/char/tpm/st33zp24/i2c.c
> +++ b/drivers/char/tpm/st33zp24/i2c.c
> @@ -19,8 +19,10 @@
>  #include <linux/module.h>
>  #include <linux/i2c.h>
>  #include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
>  #include <linux/of_irq.h>
>  #include <linux/of_gpio.h>
> +#include <linux/acpi.h>
>  #include <linux/tpm.h>
>  #include <linux/platform_data/st33zp24.h>
>  
> @@ -108,6 +110,43 @@ static const struct st33zp24_phy_ops i2c_phy_ops = {
>  	.recv = st33zp24_i2c_recv,
>  };
>  
> +static int st33zp24_i2c_acpi_request_resources(struct st33zp24_i2c_phy *phy)
> +{
> +	struct i2c_client *client = phy->client;
> +	const struct acpi_device_id *id;
> +	struct gpio_desc *gpiod_lpcpd;
> +	struct device *dev;
> +
> +	if (!client)
> +		return -EINVAL;
> +
> +	dev = &client->dev;
> +
> +	/* Match the struct device against a given list of ACPI IDs */
> +	id = acpi_match_device(dev->driver->acpi_match_table, dev);
> +	if (!id)
> +		return -ENODEV;
> +
> +	/* Get LPCPD GPIO from ACPI */
> +	gpiod_lpcpd = devm_gpiod_get_index(dev, "TPM IO LPCPD", 1,
> +					   GPIOD_OUT_HIGH);
> +	if (IS_ERR(gpiod_lpcpd)) {
> +		dev_err(&client->dev,
> +			"Failed to retrieve lpcpd-gpios from acpi.\n");
> +		phy->io_lpcpd = -1;
> +		/*
> +		 * lpcpd pin is not specified. This is not an issue as
> +		 * power management can be also managed by TPM specific
> +		 * commands. So leave with a success status code.
> +		 */
> +		return 0;
> +	}
> +
> +	phy->io_lpcpd = desc_to_gpio(gpiod_lpcpd);
> +
> +	return 0;
> +}
> +
>  static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
>  {
>  	struct device_node *pp;
> @@ -214,6 +253,10 @@ static int st33zp24_i2c_probe(struct i2c_client *client,
>  		ret = st33zp24_i2c_request_resources(client, phy);
>  		if (ret)
>  			return ret;
> +	} else if (ACPI_HANDLE(&client->dev)) {
> +		ret = st33zp24_i2c_acpi_request_resources(phy);
> +		if (ret)
> +			return ret;
>  	}
>  
>  	return st33zp24_probe(phy, &i2c_phy_ops, &client->dev, client->irq,
> @@ -244,6 +287,12 @@ static const struct of_device_id of_st33zp24_i2c_match[] = {
>  };
>  MODULE_DEVICE_TABLE(of, of_st33zp24_i2c_match);
>  
> +static const struct acpi_device_id st33zp24_i2c_acpi_match[] = {
> +	{"SMO3324"},
> +	{}
> +};
> +MODULE_DEVICE_TABLE(acpi, st33zp24_i2c_acpi_match);
> +
>  static SIMPLE_DEV_PM_OPS(st33zp24_i2c_ops, st33zp24_pm_suspend,
>  			 st33zp24_pm_resume);
>  
> @@ -252,6 +301,7 @@ static struct i2c_driver st33zp24_i2c_driver = {
>  		.name = TPM_ST33_I2C,
>  		.pm = &st33zp24_i2c_ops,
>  		.of_match_table = of_match_ptr(of_st33zp24_i2c_match),
> +		.acpi_match_table = ACPI_PTR(st33zp24_i2c_acpi_match),
>  	},
>  	.probe = st33zp24_i2c_probe,
>  	.remove = st33zp24_i2c_remove,
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 10/12] tpm: st33zp24: Add support for acpi probing for spi device.
       [not found]     ` <1455010021-21927-11-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:29       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:29 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:59AM +0100, Christophe Ricard wrote:
> Add support for acpi probing. SMO3324 is used for st33zp24.
> It has been tested with the following acpi node on Minnowboard:
> 
> Device (TPM1)
> {
> 	Name (_ADR, Zero)  // _ADR: Address
> 	Name (_HID, "SMO3324")  // _HID: Hardware ID
> 	Name (_CID, "SMO3324")  // _CID: Compatible ID
> 	Name (_DDN, "SMO TPM")  // _DDN: DOS Device Name
> 	Name (_UID, One)  // _UID: Unique ID
> 	Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
> 	{
> 		Name (SBUF, ResourceTemplate ()
> 		{
> 			SpiSerialBus (0, PolarityLow, FourWireMode, 8,
> 				      ControllerInitiated, 10000000, ClockPolarityLow,
> 				      ClockPhaseFirst, "\\_SB.SPI1",
> 				      0x00, ResourceConsumer, ,)
> 			GpioInt (Edge, ActiveHigh, ExclusiveAndWake, PullNone, 0x0000,
> 				 "\\_SB.GPO2", 0x00, ResourceConsumer, ,)
> 			{       // Pin list
> 				0x0001
> 			}
> 			GpioIo (Exclusive, PullDefault, 0x0000, 0x0000, IoRestrictionOutputOnly,
> 				"\\_SB.GPO2", 0x00, ResourceConsumer, ,)
> 			{       // Pin list
> 				0x0002,
> 			}
> 		})
> 		Return (SBUF) /* \_SB_.SPI1.TPM1._CRS.SBUF */
> 	}
> 	Method (_STA, 0, NotSerialized)  // _STA: Status
> 	{
> 		Return (0x0F)
> 	}
> }
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/spi.c | 50 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 50 insertions(+)
> 
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index 34cdee1..b9b74ae 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -19,8 +19,10 @@
>  #include <linux/module.h>
>  #include <linux/spi/spi.h>
>  #include <linux/gpio.h>
> +#include <linux/gpio/consumer.h>
>  #include <linux/of_irq.h>
>  #include <linux/of_gpio.h>
> +#include <linux/acpi.h>
>  #include <linux/tpm.h>
>  #include <linux/platform_data/st33zp24.h>
>  
> @@ -226,6 +228,43 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
>  	.recv = st33zp24_spi_recv,
>  };
>  
> +static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
> +{
> +	struct spi_device *spi_dev = phy->spi_device;
> +	const struct acpi_device_id *id;
> +	struct gpio_desc *gpiod_lpcpd;
> +	struct device *dev;
> +
> +	if (!spi_dev)
> +		return -EINVAL;
> +
> +	dev = &spi_dev->dev;
> +
> +	/* Match the struct device against a given list of ACPI IDs */
> +	id = acpi_match_device(dev->driver->acpi_match_table, dev);
> +	if (!id)
> +		return -ENODEV;
> +
> +	/* Get LPCPD GPIO from ACPI */
> +	gpiod_lpcpd = devm_gpiod_get_index(dev, "TPM IO LPCPD", 1,
> +					   GPIOD_OUT_HIGH);
> +	if (IS_ERR(gpiod_lpcpd)) {
> +		dev_err(&client->dev,
> +			"Failed to retrieve lpcpd-gpios from acpi.\n");
> +		phy->io_lpcpd = -1;
> +		/*
> +		 * lpcpd pin is not specified. This is not an issue as
> +		 * power management can be also managed by TPM specific
> +		 * commands. So leave with a success status code.
> +		 */
> +		return 0;
> +	}
> +
> +	phy->io_lpcpd = desc_to_gpio(gpiod_lpcpd);
> +
> +	return 0;
> +}
> +
>  static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  {
>  	struct device_node *pp;
> @@ -327,6 +366,10 @@ static int st33zp24_spi_probe(struct spi_device *dev)
>  		ret = st33zp24_spi_request_resources(dev, phy);
>  		if (ret)
>  			return ret;
> +	} else if (ACPI_HANDLE(&dev->dev)) {
> +		ret = st33zp24_spi_acpi_request_resources(phy);
> +		if (ret)
> +			return ret;
>  	}
>  
>  	phy->latency = st33zp24_spi_evaluate_latency(phy);
> @@ -361,6 +404,12 @@ static const struct of_device_id of_st33zp24_spi_match[] = {
>  };
>  MODULE_DEVICE_TABLE(of, of_st33zp24_spi_match);
>  
> +static const struct acpi_device_id st33zp24_spi_acpi_match[] = {
> +	{"SMO3324"},
> +	{}
> +};
> +MODULE_DEVICE_TABLE(acpi, st33zp24_spi_acpi_match);
> +
>  static SIMPLE_DEV_PM_OPS(st33zp24_spi_ops, st33zp24_pm_suspend,
>  			 st33zp24_pm_resume);
>  
> @@ -369,6 +418,7 @@ static struct spi_driver st33zp24_spi_driver = {
>  		.name = TPM_ST33_SPI,
>  		.pm = &st33zp24_spi_ops,
>  		.of_match_table = of_match_ptr(of_st33zp24_spi_match),
> +		.acpi_match_table = ACPI_PTR(st33zp24_spi_acpi_match),
>  	},
>  	.probe = st33zp24_spi_probe,
>  	.remove = st33zp24_spi_remove,
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 11/12] tpm/st33zp24/i2c: Change xxx_request_resources header
       [not found]     ` <1455010021-21927-12-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:36       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:36 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:27:00AM +0100, Christophe Ricard wrote:
> Simplify st33zp24_i2c_acpi_request_resources, st33zp24_i2c_of_request_resources
> and st33zp24_i2c_request_resources to have the same prototype and using
> i2c_get_clientdata.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/i2c.c | 21 ++++++++++++---------
>  1 file changed, 12 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/i2c.c b/drivers/char/tpm/st33zp24/i2c.c
> index b20cc2b..f179aad 100644
> --- a/drivers/char/tpm/st33zp24/i2c.c
> +++ b/drivers/char/tpm/st33zp24/i2c.c
> @@ -110,9 +110,9 @@ static const struct st33zp24_phy_ops i2c_phy_ops = {
>  	.recv = st33zp24_i2c_recv,
>  };
>  
> -static int st33zp24_i2c_acpi_request_resources(struct st33zp24_i2c_phy *phy)
> +static int st33zp24_i2c_acpi_request_resources(struct i2c_client *client)
>  {
> -	struct i2c_client *client = phy->client;
> +	struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
>  	const struct acpi_device_id *id;
>  	struct gpio_desc *gpiod_lpcpd;
>  	struct device *dev;
> @@ -147,10 +147,10 @@ static int st33zp24_i2c_acpi_request_resources(struct st33zp24_i2c_phy *phy)
>  	return 0;
>  }
>  
> -static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
> +static int st33zp24_i2c_of_request_resources(struct i2c_client *client)
>  {
> +	struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
>  	struct device_node *pp;
> -	struct i2c_client *client = phy->client;
>  	int gpio;
>  	int ret;
>  
> @@ -185,10 +185,10 @@ static int st33zp24_i2c_of_request_resources(struct st33zp24_i2c_phy *phy)
>  	return 0;
>  }
>  
> -static int st33zp24_i2c_request_resources(struct i2c_client *client,
> -					  struct st33zp24_i2c_phy *phy)
> +static int st33zp24_i2c_request_resources(struct i2c_client *client)
>  {
>  	struct st33zp24_platform_data *pdata;
> +	struct st33zp24_i2c_phy *phy = i2c_get_clientdata(client);
>  	int ret;
>  
>  	pdata = client->dev.platform_data;
> @@ -244,17 +244,20 @@ static int st33zp24_i2c_probe(struct i2c_client *client,
>  		return -ENOMEM;
>  
>  	phy->client = client;
> +
> +	i2c_set_clientdata(client, phy);
> +
>  	pdata = client->dev.platform_data;
>  	if (!pdata && client->dev.of_node) {
> -		ret = st33zp24_i2c_of_request_resources(phy);
> +		ret = st33zp24_i2c_of_request_resources(client);
>  		if (ret)
>  			return ret;
>  	} else if (pdata) {
> -		ret = st33zp24_i2c_request_resources(client, phy);
> +		ret = st33zp24_i2c_request_resources(client);
>  		if (ret)
>  			return ret;
>  	} else if (ACPI_HANDLE(&client->dev)) {
> -		ret = st33zp24_i2c_acpi_request_resources(phy);
> +		ret = st33zp24_i2c_acpi_request_resources(client);
>  		if (ret)
>  			return ret;
>  	}
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 12/12] tpm/st33zp24/spi: Change xxx_request_resources header
       [not found]     ` <1455010021-21927-13-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
@ 2016-02-11 14:44       ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-11 14:44 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:27:01AM +0100, Christophe Ricard wrote:
> Simplify st33zp24_spi_acpi_request_resources, st33zp24_spi_of_request_resources
> and st33zp24_spi_request_resources to have the same prototype and using
> spi_get_drvdata.
> 
> Signed-off-by: Christophe Ricard <christophe-h.ricard-qxv4g6HH51o@public.gmane.org>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>

/Jarkko

> ---
>  drivers/char/tpm/st33zp24/spi.c | 31 +++++++++++++++++--------------
>  1 file changed, 17 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/char/tpm/st33zp24/spi.c b/drivers/char/tpm/st33zp24/spi.c
> index b9b74ae..f725d39 100644
> --- a/drivers/char/tpm/st33zp24/spi.c
> +++ b/drivers/char/tpm/st33zp24/spi.c
> @@ -228,9 +228,9 @@ static const struct st33zp24_phy_ops spi_phy_ops = {
>  	.recv = st33zp24_spi_recv,
>  };
>  
> -static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
> +static int st33zp24_spi_acpi_request_resources(struct spi_device *spi_dev)
>  {
> -	struct spi_device *spi_dev = phy->spi_device;
> +	struct st33zp24_spi_phy *phy = spi_get_drvdata(spi_dev);
>  	const struct acpi_device_id *id;
>  	struct gpio_desc *gpiod_lpcpd;
>  	struct device *dev;
> @@ -249,7 +249,7 @@ static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
>  	gpiod_lpcpd = devm_gpiod_get_index(dev, "TPM IO LPCPD", 1,
>  					   GPIOD_OUT_HIGH);
>  	if (IS_ERR(gpiod_lpcpd)) {
> -		dev_err(&client->dev,
> +		dev_err(dev,
>  			"Failed to retrieve lpcpd-gpios from acpi.\n");
>  		phy->io_lpcpd = -1;
>  		/*
> @@ -265,23 +265,23 @@ static int st33zp24_spi_acpi_request_resources(struct st33zp24_i2c_phy *phy)
>  	return 0;
>  }
>  
> -static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
> +static int st33zp24_spi_of_request_resources(struct spi_device *spi_dev)
>  {
> +	struct st33zp24_spi_phy *phy = spi_get_drvdata(spi_dev);
>  	struct device_node *pp;
> -	struct spi_device *dev = phy->spi_device;
>  	int gpio;
>  	int ret;
>  
> -	pp = dev->dev.of_node;
> +	pp = spi_dev->dev.of_node;
>  	if (!pp) {
> -		dev_err(&dev->dev, "No platform data\n");
> +		dev_err(&spi_dev->dev, "No platform data\n");
>  		return -ENODEV;
>  	}
>  
>  	/* Get GPIO from device tree */
>  	gpio = of_get_named_gpio(pp, "lpcpd-gpios", 0);
>  	if (gpio < 0) {
> -		dev_err(&dev->dev,
> +		dev_err(&spi_dev->dev,
>  			"Failed to retrieve lpcpd-gpios from dts.\n");
>  		phy->io_lpcpd = -1;
>  		/*
> @@ -292,10 +292,10 @@ static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  		return 0;
>  	}
>  	/* GPIO request and configuration */
> -	ret = devm_gpio_request_one(&dev->dev, gpio,
> +	ret = devm_gpio_request_one(&spi_dev->dev, gpio,
>  			GPIOF_OUT_INIT_HIGH, "TPM IO LPCPD");
>  	if (ret) {
> -		dev_err(&dev->dev, "Failed to request lpcpd pin\n");
> +		dev_err(&spi_dev->dev, "Failed to request lpcpd pin\n");
>  		return -ENODEV;
>  	}
>  	phy->io_lpcpd = gpio;
> @@ -303,9 +303,9 @@ static int st33zp24_spi_of_request_resources(struct st33zp24_spi_phy *phy)
>  	return 0;
>  }
>  
> -static int st33zp24_spi_request_resources(struct spi_device *dev,
> -					  struct st33zp24_spi_phy *phy)
> +static int st33zp24_spi_request_resources(struct spi_device *dev)
>  {
> +	struct st33zp24_spi_phy *phy = spi_get_drvdata(dev);
>  	struct st33zp24_platform_data *pdata;
>  	int ret;
>  
> @@ -357,13 +357,16 @@ static int st33zp24_spi_probe(struct spi_device *dev)
>  		return -ENOMEM;
>  
>  	phy->spi_device = dev;
> +
> +	spi_set_drvdata(dev, phy);
> +
>  	pdata = dev->dev.platform_data;
>  	if (!pdata && dev->dev.of_node) {
> -		ret = st33zp24_spi_of_request_resources(phy);
> +		ret = st33zp24_spi_of_request_resources(dev);
>  		if (ret)
>  			return ret;
>  	} else if (pdata) {
> -		ret = st33zp24_spi_request_resources(dev, phy);
> +		ret = st33zp24_spi_request_resources(dev);
>  		if (ret)
>  			return ret;
>  	} else if (ACPI_HANDLE(&dev->dev)) {
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support
       [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
                     ` (11 preceding siblings ...)
  2016-02-09  9:27   ` [PATCH 12/12] tpm/st33zp24/spi: " Christophe Ricard
@ 2016-02-14  9:11   ` Jarkko Sakkinen
       [not found]     ` <20160214091106.GA18761-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
  12 siblings, 1 reply; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-14  9:11 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Tue, Feb 09, 2016 at 10:26:49AM +0100, Christophe Ricard wrote:
> Hi Peter, Jarko,
> 
> Please find in the following serie:
> - a set of code style or sanity cleanup
> - acpi device probing support for i2c and spi phys.

How big coverage could I get to these patches if I tested them with a
Minnowboard?

/Jarkko

> This serie applies on top of jarkko tree:
> b64f343cb02b2a2a009b3805a8331425dd4a8611 tpm: fix rollback/cleanup before tpm_chip_register()
> 
> Best Regards
> Christophe 
> 
> Christophe Ricard (12):
>   tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
>   tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
>   tpm/st33zp24/spi: Remove useless use of memcpy.
>   tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy
>     structure
>   tpm/st33zp24: Remove unneeded CONFIG_OF switches
>   tpm/st33zp24: Auto-select core module
>   tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
>   tpm/st33zp24: Extend Copyright headers
>   tpm/st33zp24: Add support for acpi probing for i2c device.
>   tpm: st33zp24: Add support for acpi probing for spi device.
>   tpm/st33zp24/i2c: Change xxx_request_resources header
>   tpm/st33zp24/spi: Change xxx_request_resources header
> 
>  drivers/char/tpm/st33zp24/Kconfig      |  11 +-
>  drivers/char/tpm/st33zp24/i2c.c        |  76 ++++++++++---
>  drivers/char/tpm/st33zp24/spi.c        | 190 ++++++++++++++++++++-------------
>  drivers/char/tpm/st33zp24/st33zp24.c   |   2 +-
>  drivers/char/tpm/st33zp24/st33zp24.h   |   2 +-
>  include/linux/platform_data/st33zp24.h |   2 +-
>  6 files changed, 182 insertions(+), 101 deletions(-)
> 
> -- 
> 2.5.0
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support
       [not found]     ` <20160214091106.GA18761-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
@ 2016-02-14  9:41       ` Christophe Ricard
  2016-02-18  7:12       ` Christophe Ricard
  1 sibling, 0 replies; 31+ messages in thread
From: Christophe Ricard @ 2016-02-14  9:41 UTC (permalink / raw)
  To: Jarkko Sakkinen
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Hi Jarkko,

I am not sure to understand correctly your question.
But from my testings on Minnowboard with ACPI, i got the same 
functionnal behavior compare to
a Beagleboard xM using devicetree.

Best Regards
Christophe

On 14/02/2016 10:11, Jarkko Sakkinen wrote:
> On Tue, Feb 09, 2016 at 10:26:49AM +0100, Christophe Ricard wrote:
>> Hi Peter, Jarko,
>>
>> Please find in the following serie:
>> - a set of code style or sanity cleanup
>> - acpi device probing support for i2c and spi phys.
> How big coverage could I get to these patches if I tested them with a
> Minnowboard?
>
> /Jarkko
>
>> This serie applies on top of jarkko tree:
>> b64f343cb02b2a2a009b3805a8331425dd4a8611 tpm: fix rollback/cleanup before tpm_chip_register()
>>
>> Best Regards
>> Christophe
>>
>> Christophe Ricard (12):
>>    tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
>>    tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
>>    tpm/st33zp24/spi: Remove useless use of memcpy.
>>    tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy
>>      structure
>>    tpm/st33zp24: Remove unneeded CONFIG_OF switches
>>    tpm/st33zp24: Auto-select core module
>>    tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
>>    tpm/st33zp24: Extend Copyright headers
>>    tpm/st33zp24: Add support for acpi probing for i2c device.
>>    tpm: st33zp24: Add support for acpi probing for spi device.
>>    tpm/st33zp24/i2c: Change xxx_request_resources header
>>    tpm/st33zp24/spi: Change xxx_request_resources header
>>
>>   drivers/char/tpm/st33zp24/Kconfig      |  11 +-
>>   drivers/char/tpm/st33zp24/i2c.c        |  76 ++++++++++---
>>   drivers/char/tpm/st33zp24/spi.c        | 190 ++++++++++++++++++++-------------
>>   drivers/char/tpm/st33zp24/st33zp24.c   |   2 +-
>>   drivers/char/tpm/st33zp24/st33zp24.h   |   2 +-
>>   include/linux/platform_data/st33zp24.h |   2 +-
>>   6 files changed, 182 insertions(+), 101 deletions(-)
>>
>> -- 
>> 2.5.0
>>


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support
       [not found]     ` <20160214091106.GA18761-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
  2016-02-14  9:41       ` Christophe Ricard
@ 2016-02-18  7:12       ` Christophe Ricard
       [not found]         ` <56C56EED.1070801-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  1 sibling, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-18  7:12 UTC (permalink / raw)
  To: Jarkko Sakkinen
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Hi Jarkko,

Do you expect anything more on this serie from me ?
Do you think it will reach 4.6 release ?

Best Regards
Christophe


On 14/02/2016 10:11, Jarkko Sakkinen wrote:
> On Tue, Feb 09, 2016 at 10:26:49AM +0100, Christophe Ricard wrote:
>> Hi Peter, Jarko,
>>
>> Please find in the following serie:
>> - a set of code style or sanity cleanup
>> - acpi device probing support for i2c and spi phys.
> How big coverage could I get to these patches if I tested them with a
> Minnowboard?
>
> /Jarkko
>
>> This serie applies on top of jarkko tree:
>> b64f343cb02b2a2a009b3805a8331425dd4a8611 tpm: fix rollback/cleanup before tpm_chip_register()
>>
>> Best Regards
>> Christophe
>>
>> Christophe Ricard (12):
>>    tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
>>    tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
>>    tpm/st33zp24/spi: Remove useless use of memcpy.
>>    tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy
>>      structure
>>    tpm/st33zp24: Remove unneeded CONFIG_OF switches
>>    tpm/st33zp24: Auto-select core module
>>    tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
>>    tpm/st33zp24: Extend Copyright headers
>>    tpm/st33zp24: Add support for acpi probing for i2c device.
>>    tpm: st33zp24: Add support for acpi probing for spi device.
>>    tpm/st33zp24/i2c: Change xxx_request_resources header
>>    tpm/st33zp24/spi: Change xxx_request_resources header
>>
>>   drivers/char/tpm/st33zp24/Kconfig      |  11 +-
>>   drivers/char/tpm/st33zp24/i2c.c        |  76 ++++++++++---
>>   drivers/char/tpm/st33zp24/spi.c        | 190 ++++++++++++++++++++-------------
>>   drivers/char/tpm/st33zp24/st33zp24.c   |   2 +-
>>   drivers/char/tpm/st33zp24/st33zp24.h   |   2 +-
>>   include/linux/platform_data/st33zp24.h |   2 +-
>>   6 files changed, 182 insertions(+), 101 deletions(-)
>>
>> -- 
>> 2.5.0
>>


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support
       [not found]         ` <56C56EED.1070801-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2016-02-18 14:46           ` Jarkko Sakkinen
       [not found]             ` <20160218144651.GA8472-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-18 14:46 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Thu, Feb 18, 2016 at 08:12:45AM +0100, Christophe Ricard wrote:
> Hi Jarkko,
> 
> Do you expect anything more on this serie from me ?
> Do you think it will reach 4.6 release ?

Your first series (that you sent earlier than this) is going in 100%
certainty. I'll review this as soon as possible.

The problem has been that there was a latency to get my second pull
request for 4.5 and I still have some fixes that we need for that
release (and need to send a pull request).

> Best Regards
> Christophe

/Jarkko

> 
> 
> On 14/02/2016 10:11, Jarkko Sakkinen wrote:
> >On Tue, Feb 09, 2016 at 10:26:49AM +0100, Christophe Ricard wrote:
> >>Hi Peter, Jarko,
> >>
> >>Please find in the following serie:
> >>- a set of code style or sanity cleanup
> >>- acpi device probing support for i2c and spi phys.
> >How big coverage could I get to these patches if I tested them with a
> >Minnowboard?
> >
> >/Jarkko
> >
> >>This serie applies on top of jarkko tree:
> >>b64f343cb02b2a2a009b3805a8331425dd4a8611 tpm: fix rollback/cleanup before tpm_chip_register()
> >>
> >>Best Regards
> >>Christophe
> >>
> >>Christophe Ricard (12):
> >>   tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
> >>   tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
> >>   tpm/st33zp24/spi: Remove useless use of memcpy.
> >>   tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy
> >>     structure
> >>   tpm/st33zp24: Remove unneeded CONFIG_OF switches
> >>   tpm/st33zp24: Auto-select core module
> >>   tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
> >>   tpm/st33zp24: Extend Copyright headers
> >>   tpm/st33zp24: Add support for acpi probing for i2c device.
> >>   tpm: st33zp24: Add support for acpi probing for spi device.
> >>   tpm/st33zp24/i2c: Change xxx_request_resources header
> >>   tpm/st33zp24/spi: Change xxx_request_resources header
> >>
> >>  drivers/char/tpm/st33zp24/Kconfig      |  11 +-
> >>  drivers/char/tpm/st33zp24/i2c.c        |  76 ++++++++++---
> >>  drivers/char/tpm/st33zp24/spi.c        | 190 ++++++++++++++++++++-------------
> >>  drivers/char/tpm/st33zp24/st33zp24.c   |   2 +-
> >>  drivers/char/tpm/st33zp24/st33zp24.h   |   2 +-
> >>  include/linux/platform_data/st33zp24.h |   2 +-
> >>  6 files changed, 182 insertions(+), 101 deletions(-)
> >>
> >>-- 
> >>2.5.0
> >>
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support
       [not found]             ` <20160218144651.GA8472-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
@ 2016-02-18 21:03               ` Christophe Ricard
       [not found]                 ` <56C631A7.5040604-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 31+ messages in thread
From: Christophe Ricard @ 2016-02-18 21:03 UTC (permalink / raw)
  To: Jarkko Sakkinen
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

Hi Jarkko,

Thanks for your feedback :)

On 18/02/2016 15:46, Jarkko Sakkinen wrote:
> On Thu, Feb 18, 2016 at 08:12:45AM +0100, Christophe Ricard wrote:
>> Hi Jarkko,
>>
>> Do you expect anything more on this serie from me ?
>> Do you think it will reach 4.6 release ?
> Your first series (that you sent earlier than this) is going in 100%
> certainty. I'll review this as soon as possible.
Just to save your time and to be a bit more precise on the cover-letter,
The only change in v2 serie (the latest) bring a small fix in PATCH 12:
...

- ret = st33zp24_spi_acpi_request_resources(phy);
+ ret = st33zp24_spi_acpi_request_resources(dev); ...

> The problem has been that there was a latency to get my second pull
> request for 4.5 and I still have some fixes that we need for that
> release (and need to send a pull request).
No problem on my side. I understand i will wait.

Best Regards
Christophe
>> Best Regards
>> Christophe
> /Jarkko
>
>>
>> On 14/02/2016 10:11, Jarkko Sakkinen wrote:
>>> On Tue, Feb 09, 2016 at 10:26:49AM +0100, Christophe Ricard wrote:
>>>> Hi Peter, Jarko,
>>>>
>>>> Please find in the following serie:
>>>> - a set of code style or sanity cleanup
>>>> - acpi device probing support for i2c and spi phys.
>>> How big coverage could I get to these patches if I tested them with a
>>> Minnowboard?
>>>
>>> /Jarkko
>>>
>>>> This serie applies on top of jarkko tree:
>>>> b64f343cb02b2a2a009b3805a8331425dd4a8611 tpm: fix rollback/cleanup before tpm_chip_register()
>>>>
>>>> Best Regards
>>>> Christophe
>>>>
>>>> Christophe Ricard (12):
>>>>    tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
>>>>    tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
>>>>    tpm/st33zp24/spi: Remove useless use of memcpy.
>>>>    tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy
>>>>      structure
>>>>    tpm/st33zp24: Remove unneeded CONFIG_OF switches
>>>>    tpm/st33zp24: Auto-select core module
>>>>    tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
>>>>    tpm/st33zp24: Extend Copyright headers
>>>>    tpm/st33zp24: Add support for acpi probing for i2c device.
>>>>    tpm: st33zp24: Add support for acpi probing for spi device.
>>>>    tpm/st33zp24/i2c: Change xxx_request_resources header
>>>>    tpm/st33zp24/spi: Change xxx_request_resources header
>>>>
>>>>   drivers/char/tpm/st33zp24/Kconfig      |  11 +-
>>>>   drivers/char/tpm/st33zp24/i2c.c        |  76 ++++++++++---
>>>>   drivers/char/tpm/st33zp24/spi.c        | 190 ++++++++++++++++++++-------------
>>>>   drivers/char/tpm/st33zp24/st33zp24.c   |   2 +-
>>>>   drivers/char/tpm/st33zp24/st33zp24.h   |   2 +-
>>>>   include/linux/platform_data/st33zp24.h |   2 +-
>>>>   6 files changed, 182 insertions(+), 101 deletions(-)
>>>>
>>>> -- 
>>>> 2.5.0
>>>>


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support
       [not found]                 ` <56C631A7.5040604-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2016-02-19 15:03                   ` Jarkko Sakkinen
  0 siblings, 0 replies; 31+ messages in thread
From: Jarkko Sakkinen @ 2016-02-19 15:03 UTC (permalink / raw)
  To: Christophe Ricard
  Cc: jean-luc.blanc-qxv4g6HH51o, ashley-fm2HMyfA2y6tG0bUXCXiUA,
	tpmdd-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f,
	christophe-h.ricard-qxv4g6HH51o, benoit.houyere-qxv4g6HH51o

On Thu, Feb 18, 2016 at 10:03:35PM +0100, Christophe Ricard wrote:
> Hi Jarkko,
> 
> Thanks for your feedback :)
> 
> On 18/02/2016 15:46, Jarkko Sakkinen wrote:
> >On Thu, Feb 18, 2016 at 08:12:45AM +0100, Christophe Ricard wrote:
> >>Hi Jarkko,
> >>
> >>Do you expect anything more on this serie from me ?
> >>Do you think it will reach 4.6 release ?
> >Your first series (that you sent earlier than this) is going in 100%
> >certainty. I'll review this as soon as possible.
> Just to save your time and to be a bit more precise on the cover-letter,
> The only change in v2 serie (the latest) bring a small fix in PATCH 12:
> ...
> 
> - ret = st33zp24_spi_acpi_request_resources(phy);
> + ret = st33zp24_spi_acpi_request_resources(dev); ...

OK thanks! I can do this change.

/Jarkko


> 
> >The problem has been that there was a latency to get my second pull
> >request for 4.5 and I still have some fixes that we need for that
> >release (and need to send a pull request).
> No problem on my side. I understand i will wait.
> 
> Best Regards
> Christophe
> >>Best Regards
> >>Christophe
> >/Jarkko
> >
> >>
> >>On 14/02/2016 10:11, Jarkko Sakkinen wrote:
> >>>On Tue, Feb 09, 2016 at 10:26:49AM +0100, Christophe Ricard wrote:
> >>>>Hi Peter, Jarko,
> >>>>
> >>>>Please find in the following serie:
> >>>>- a set of code style or sanity cleanup
> >>>>- acpi device probing support for i2c and spi phys.
> >>>How big coverage could I get to these patches if I tested them with a
> >>>Minnowboard?
> >>>
> >>>/Jarkko
> >>>
> >>>>This serie applies on top of jarkko tree:
> >>>>b64f343cb02b2a2a009b3805a8331425dd4a8611 tpm: fix rollback/cleanup before tpm_chip_register()
> >>>>
> >>>>Best Regards
> >>>>Christophe
> >>>>
> >>>>Christophe Ricard (12):
> >>>>   tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage
> >>>>   tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix
> >>>>   tpm/st33zp24/spi: Remove useless use of memcpy.
> >>>>   tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy
> >>>>     structure
> >>>>   tpm/st33zp24: Remove unneeded CONFIG_OF switches
> >>>>   tpm/st33zp24: Auto-select core module
> >>>>   tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency
> >>>>   tpm/st33zp24: Extend Copyright headers
> >>>>   tpm/st33zp24: Add support for acpi probing for i2c device.
> >>>>   tpm: st33zp24: Add support for acpi probing for spi device.
> >>>>   tpm/st33zp24/i2c: Change xxx_request_resources header
> >>>>   tpm/st33zp24/spi: Change xxx_request_resources header
> >>>>
> >>>>  drivers/char/tpm/st33zp24/Kconfig      |  11 +-
> >>>>  drivers/char/tpm/st33zp24/i2c.c        |  76 ++++++++++---
> >>>>  drivers/char/tpm/st33zp24/spi.c        | 190 ++++++++++++++++++++-------------
> >>>>  drivers/char/tpm/st33zp24/st33zp24.c   |   2 +-
> >>>>  drivers/char/tpm/st33zp24/st33zp24.h   |   2 +-
> >>>>  include/linux/platform_data/st33zp24.h |   2 +-
> >>>>  6 files changed, 182 insertions(+), 101 deletions(-)
> >>>>
> >>>>-- 
> >>>>2.5.0
> >>>>
> 

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2016-02-19 15:03 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-09  9:26 [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support Christophe Ricard
     [not found] ` <1455010021-21927-1-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-09  9:26   ` [PATCH 01/12] tpm/st33zp24/spi: Remove nbr_dummy_bytes variable usage Christophe Ricard
     [not found]     ` <1455010021-21927-2-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 13:48       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 02/12] tpm/st33zp24/spi: Use functions name with st33zp24_spi_ prefix Christophe Ricard
     [not found]     ` <1455010021-21927-3-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 13:50       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 03/12] tpm/st33zp24/spi: Remove useless use of memcpy Christophe Ricard
     [not found]     ` <1455010021-21927-4-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 13:54       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 04/12] tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure Christophe Ricard
     [not found]     ` <1455010021-21927-5-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:06       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 05/12] tpm/st33zp24: Remove unneeded CONFIG_OF switches Christophe Ricard
     [not found]     ` <1455010021-21927-6-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:10       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 06/12] tpm/st33zp24: Auto-select core module Christophe Ricard
     [not found]     ` <1455010021-21927-7-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:18       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 07/12] tpm/st33zp24/spi: Improve st33zp24_spi_evaluate_latency Christophe Ricard
     [not found]     ` <1455010021-21927-8-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:22       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 08/12] tpm/st33zp24: Extend Copyright headers Christophe Ricard
     [not found]     ` <1455010021-21927-9-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:22       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 09/12] tpm/st33zp24: Add support for acpi probing for i2c device Christophe Ricard
     [not found]     ` <1455010021-21927-10-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:28       ` Jarkko Sakkinen
2016-02-09  9:26   ` [PATCH 10/12] tpm: st33zp24: Add support for acpi probing for spi device Christophe Ricard
     [not found]     ` <1455010021-21927-11-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:29       ` Jarkko Sakkinen
2016-02-09  9:27   ` [PATCH 11/12] tpm/st33zp24/i2c: Change xxx_request_resources header Christophe Ricard
     [not found]     ` <1455010021-21927-12-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:36       ` Jarkko Sakkinen
2016-02-09  9:27   ` [PATCH 12/12] tpm/st33zp24/spi: " Christophe Ricard
     [not found]     ` <1455010021-21927-13-git-send-email-christophe-h.ricard-qxv4g6HH51o@public.gmane.org>
2016-02-11 14:44       ` Jarkko Sakkinen
2016-02-14  9:11   ` [PATCH 00/12] tpm/st33zp24: Few code style and sanity fixes + acpi device probing support Jarkko Sakkinen
     [not found]     ` <20160214091106.GA18761-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-02-14  9:41       ` Christophe Ricard
2016-02-18  7:12       ` Christophe Ricard
     [not found]         ` <56C56EED.1070801-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-18 14:46           ` Jarkko Sakkinen
     [not found]             ` <20160218144651.GA8472-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-02-18 21:03               ` Christophe Ricard
     [not found]                 ` <56C631A7.5040604-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-02-19 15:03                   ` Jarkko Sakkinen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.