Skip to content

Commit

Permalink
spi/spi-bfin-sport: move word length setup to transfer handler
Browse files Browse the repository at this point in the history
Each transfer may have its own bits per word.

Signed-off-by: Scott Jiang <scott.jiang.linux@gmail.com>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
  • Loading branch information
Scott Jiang authored and Grant Likely committed Apr 27, 2012
1 parent 22ac3e8 commit 488e1a9
Showing 1 changed file with 3 additions and 4 deletions.
7 changes: 3 additions & 4 deletions drivers/spi/spi-bfin-sport.c
Original file line number Diff line number Diff line change
Expand Up @@ -252,19 +252,15 @@ static void
bfin_sport_spi_restore_state(struct bfin_sport_spi_master_data *drv_data)
{
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);
dev_dbg(drv_data->dev, "restoring spi ctl state\n");

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->tfsdiv, bits);
SSYNC();

bfin_write(&drv_data->regs->rcr1, chip->ctl_reg & ~(ITCLK | ITFS));
bfin_write(&drv_data->regs->rcr2, bits);
SSYNC();

bfin_sport_spi_cs_active(chip);
Expand Down Expand Up @@ -425,6 +421,9 @@ bfin_sport_spi_pump_transfers(unsigned long data)
drv_data->ops = &bfin_sport_transfer_ops_u8;
else
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;

Expand Down

0 comments on commit 488e1a9

Please sign in to comment.