[U-Boot] [PATCH 1/2] x86: ich-spi: Remove useless assignment in ich_spi_xfer()

In ich_spi_xfer() when the driver presets control fields, control variable gets assigned twice. Apparently only the last assignment takes effect. Remove the other one.
Signed-off-by: Bin Meng bmeng.cn@gmail.com ---
drivers/spi/ich.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c index 373bc26..5a3d690 100644 --- a/drivers/spi/ich.c +++ b/drivers/spi/ich.c @@ -468,8 +468,6 @@ static int ich_spi_xfer(struct udevice *dev, unsigned int bitlen, }
/* Preset control fields */ - control = ich_readw(ctlr, ctlr->control); - control &= ~SSFC_RESERVED; control = SPIC_SCGO | ((opcode_index & 0x07) << 4);
/* Issue atomic preop cycle if needed */

The atomic preop register can only be written when SPI settings are not locked, otherwise it's read-only.
Signed-off-by: Bin Meng bmeng.cn@gmail.com ---
drivers/spi/ich.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c index 5a3d690..22fc83d 100644 --- a/drivers/spi/ich.c +++ b/drivers/spi/ich.c @@ -563,7 +563,8 @@ static int ich_spi_xfer(struct udevice *dev, unsigned int bitlen, }
/* Clear atomic preop now that xfer is done */ - ich_writew(ctlr, 0, ctlr->preop); + if (!lock) + ich_writew(ctlr, 0, ctlr->preop);
return 0; }

On 27.08.2017 04:22, Bin Meng wrote:
The atomic preop register can only be written when SPI settings are not locked, otherwise it's read-only.
Signed-off-by: Bin Meng bmeng.cn@gmail.com
drivers/spi/ich.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c index 5a3d690..22fc83d 100644 --- a/drivers/spi/ich.c +++ b/drivers/spi/ich.c @@ -563,7 +563,8 @@ static int ich_spi_xfer(struct udevice *dev, unsigned int bitlen, }
/* Clear atomic preop now that xfer is done */
- ich_writew(ctlr, 0, ctlr->preop);
if (!lock)
ich_writew(ctlr, 0, ctlr->preop);
return 0; }
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

On Sun, Aug 27, 2017 at 4:00 PM, Stefan Roese sr@denx.de wrote:
On 27.08.2017 04:22, Bin Meng wrote:
The atomic preop register can only be written when SPI settings are not locked, otherwise it's read-only.
Signed-off-by: Bin Meng bmeng.cn@gmail.com
drivers/spi/ich.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
applied to u-boot-x86, thanks!

On 27.08.2017 04:22, Bin Meng wrote:
In ich_spi_xfer() when the driver presets control fields, control variable gets assigned twice. Apparently only the last assignment takes effect. Remove the other one.
Signed-off-by: Bin Meng bmeng.cn@gmail.com
drivers/spi/ich.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c index 373bc26..5a3d690 100644 --- a/drivers/spi/ich.c +++ b/drivers/spi/ich.c @@ -468,8 +468,6 @@ static int ich_spi_xfer(struct udevice *dev, unsigned int bitlen, }
/* Preset control fields */
control = ich_readw(ctlr, ctlr->control);
control &= ~SSFC_RESERVED; control = SPIC_SCGO | ((opcode_index & 0x07) << 4);
/* Issue atomic preop cycle if needed */
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

On Sun, Aug 27, 2017 at 4:00 PM, Stefan Roese sr@denx.de wrote:
On 27.08.2017 04:22, Bin Meng wrote:
In ich_spi_xfer() when the driver presets control fields, control variable gets assigned twice. Apparently only the last assignment takes effect. Remove the other one.
Signed-off-by: Bin Meng bmeng.cn@gmail.com
drivers/spi/ich.c | 2 -- 1 file changed, 2 deletions(-)
applied to u-boot-x86, thanks!
participants (2)
-
Bin Meng
-
Stefan Roese