Commit a5392e91 authored by Christophe RICARD's avatar Christophe RICARD Committed by Jarkko Sakkinen

tpm/st33zp24/spi: Remove field spi_xfer from st33zp24_spi_phy structure

Remove spi_xfer from st33zp24_spi_phy structure and declare local spi_xfer
when needed instead.
Signed-off-by: default avatarChristophe Ricard <christophe-h.ricard@st.com>
Reviewed-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
parent d34306e2
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
struct st33zp24_spi_phy { struct st33zp24_spi_phy {
struct spi_device *spi_device; struct spi_device *spi_device;
struct spi_transfer spi_xfer;
u8 tx_buf[ST33ZP24_SPI_BUFFER_SIZE]; u8 tx_buf[ST33ZP24_SPI_BUFFER_SIZE];
u8 rx_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, ...@@ -113,28 +113,30 @@ static int st33zp24_spi_send(void *phy_id, u8 tpm_register, u8 *tpm_data,
int total_length = 0, ret = 0; int total_length = 0, ret = 0;
struct st33zp24_spi_phy *phy = phy_id; struct st33zp24_spi_phy *phy = phy_id;
struct spi_device *dev = phy->spi_device; struct spi_device *dev = phy->spi_device;
u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf; struct spi_transfer spi_xfer = {
u8 *rx_buf = phy->spi_xfer.rx_buf; .tx_buf = phy->tx_buf,
.rx_buf = phy->rx_buf,
};
/* Pre-Header */ /* Pre-Header */
tx_buf[total_length++] = TPM_WRITE_DIRECTION | LOCALITY0; phy->tx_buf[total_length++] = TPM_WRITE_DIRECTION | LOCALITY0;
tx_buf[total_length++] = tpm_register; phy->tx_buf[total_length++] = tpm_register;
if (tpm_size > 0 && tpm_register == TPM_DATA_FIFO) { if (tpm_size > 0 && tpm_register == TPM_DATA_FIFO) {
tx_buf[total_length++] = tpm_size >> 8; phy->tx_buf[total_length++] = tpm_size >> 8;
tx_buf[total_length++] = tpm_size; 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; 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) 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); return st33zp24_status_to_errno(ret);
} /* st33zp24_spi_send() */ } /* st33zp24_spi_send() */
...@@ -154,24 +156,26 @@ static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data, ...@@ -154,24 +156,26 @@ static int st33zp24_spi_read8_reg(void *phy_id, u8 tpm_register, u8 *tpm_data,
int total_length = 0, ret; int total_length = 0, ret;
struct st33zp24_spi_phy *phy = phy_id; struct st33zp24_spi_phy *phy = phy_id;
struct spi_device *dev = phy->spi_device; struct spi_device *dev = phy->spi_device;
u8 *tx_buf = (u8 *)phy->spi_xfer.tx_buf; struct spi_transfer spi_xfer = {
u8 *rx_buf = phy->spi_xfer.rx_buf; .tx_buf = phy->tx_buf,
.rx_buf = phy->rx_buf,
};
/* Pre-Header */ /* Pre-Header */
tx_buf[total_length++] = LOCALITY0; phy->tx_buf[total_length++] = LOCALITY0;
tx_buf[total_length++] = tpm_register; phy->tx_buf[total_length++] = tpm_register;
memset(&tx_buf[total_length], TPM_DUMMY_BYTE, memset(&phy->tx_buf[total_length], TPM_DUMMY_BYTE,
phy->latency + tpm_size); 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 */ /* 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) { 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); tpm_size);
} }
...@@ -328,9 +332,6 @@ static int st33zp24_spi_probe(struct spi_device *dev) ...@@ -328,9 +332,6 @@ static int st33zp24_spi_probe(struct spi_device *dev)
return ret; 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); phy->latency = st33zp24_spi_evaluate_latency(phy);
if (phy->latency <= 0) if (phy->latency <= 0)
return -ENODEV; return -ENODEV;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment