Commit 488e1a9d authored by Scott Jiang's avatar Scott Jiang Committed by Grant Likely

spi/spi-bfin-sport: move word length setup to transfer handler

Each transfer may have its own bits per word.
Signed-off-by: default avatarScott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
parent 22ac3e82
...@@ -252,19 +252,15 @@ static void ...@@ -252,19 +252,15 @@ static void
bfin_sport_spi_restore_state(struct bfin_sport_spi_master_data *drv_data) bfin_sport_spi_restore_state(struct bfin_sport_spi_master_data *drv_data)
{ {
struct bfin_sport_spi_slave_data *chip = drv_data->cur_chip; struct bfin_sport_spi_slave_data *chip = drv_data->cur_chip;
unsigned int bits = (drv_data->ops == &bfin_sport_transfer_ops_u8 ? 7 : 15);
bfin_sport_spi_disable(drv_data); bfin_sport_spi_disable(drv_data);
dev_dbg(drv_data->dev, "restoring spi ctl state\n"); dev_dbg(drv_data->dev, "restoring spi ctl state\n");
bfin_write(&drv_data->regs->tcr1, chip->ctl_reg); bfin_write(&drv_data->regs->tcr1, chip->ctl_reg);
bfin_write(&drv_data->regs->tcr2, bits);
bfin_write(&drv_data->regs->tclkdiv, chip->baud); bfin_write(&drv_data->regs->tclkdiv, chip->baud);
bfin_write(&drv_data->regs->tfsdiv, bits);
SSYNC(); SSYNC();
bfin_write(&drv_data->regs->rcr1, chip->ctl_reg & ~(ITCLK | ITFS)); bfin_write(&drv_data->regs->rcr1, chip->ctl_reg & ~(ITCLK | ITFS));
bfin_write(&drv_data->regs->rcr2, bits);
SSYNC(); SSYNC();
bfin_sport_spi_cs_active(chip); bfin_sport_spi_cs_active(chip);
...@@ -425,6 +421,9 @@ bfin_sport_spi_pump_transfers(unsigned long data) ...@@ -425,6 +421,9 @@ bfin_sport_spi_pump_transfers(unsigned long data)
drv_data->ops = &bfin_sport_transfer_ops_u8; drv_data->ops = &bfin_sport_transfer_ops_u8;
else else
drv_data->ops = &bfin_sport_transfer_ops_u16; drv_data->ops = &bfin_sport_transfer_ops_u16;
bfin_write(&drv_data->regs->tcr2, bits_per_word - 1);
bfin_write(&drv_data->regs->tfsdiv, bits_per_word - 1);
bfin_write(&drv_data->regs->rcr2, bits_per_word - 1);
drv_data->state = RUNNING_STATE; drv_data->state = RUNNING_STATE;
......
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