ata: pata_parport-bpck6: move ppc6_send_cmd to bpck6.c and rename
Move ppc6_send_cmd to bpck6.c and rename it to bpck6_send_cmd Signed-off-by: Ondrej Zary <linux@zary.sk> Signed-off-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
This commit is contained in:
parent
82e16f824e
commit
b04062789d
@ -19,11 +19,29 @@
|
|||||||
#include "pata_parport.h"
|
#include "pata_parport.h"
|
||||||
#include "ppc6lnx.c"
|
#include "ppc6lnx.c"
|
||||||
|
|
||||||
|
static void bpck6_send_cmd(struct pi_adapter *pi, u8 cmd)
|
||||||
|
{
|
||||||
|
switch (mode_map[pi->mode]) {
|
||||||
|
case PPCMODE_UNI_SW:
|
||||||
|
case PPCMODE_UNI_FW:
|
||||||
|
case PPCMODE_BI_SW:
|
||||||
|
case PPCMODE_BI_FW:
|
||||||
|
parport_write_data(pi->pardev->port, cmd);
|
||||||
|
parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_AUTOFD);
|
||||||
|
break;
|
||||||
|
case PPCMODE_EPP_BYTE:
|
||||||
|
case PPCMODE_EPP_WORD:
|
||||||
|
case PPCMODE_EPP_DWORD:
|
||||||
|
pi->pardev->port->ops->epp_write_addr(pi->pardev->port, &cmd, 1, 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg)
|
static int bpck6_read_regr(struct pi_adapter *pi, int cont, int reg)
|
||||||
{
|
{
|
||||||
u8 port = cont ? reg | 8 : reg;
|
u8 port = cont ? reg | 8 : reg;
|
||||||
|
|
||||||
ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ);
|
bpck6_send_cmd(pi, port | ACCESS_PORT | ACCESS_READ);
|
||||||
return ppc6_rd_data_byte(pi);
|
return ppc6_rd_data_byte(pi);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,7 +49,7 @@ static void bpck6_write_regr(struct pi_adapter *pi, int cont, int reg, int val)
|
|||||||
{
|
{
|
||||||
u8 port = cont ? reg | 8 : reg;
|
u8 port = cont ? reg | 8 : reg;
|
||||||
|
|
||||||
ppc6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE);
|
bpck6_send_cmd(pi, port | ACCESS_PORT | ACCESS_WRITE);
|
||||||
ppc6_wr_data_byte(pi, val);
|
ppc6_wr_data_byte(pi, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -49,13 +67,13 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len)
|
|||||||
{
|
{
|
||||||
u8 this, last;
|
u8 this, last;
|
||||||
|
|
||||||
ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE);
|
bpck6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE);
|
||||||
ppc6_wr_data_byte(pi, (u8)len);
|
ppc6_wr_data_byte(pi, (u8)len);
|
||||||
ppc6_wr_data_byte(pi, (u8)(len >> 8));
|
ppc6_wr_data_byte(pi, (u8)(len >> 8));
|
||||||
ppc6_wr_data_byte(pi, 0);
|
ppc6_wr_data_byte(pi, 0);
|
||||||
|
|
||||||
ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK);
|
bpck6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK);
|
||||||
ppc6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_WRITE);
|
bpck6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_WRITE);
|
||||||
|
|
||||||
switch (mode_map[pi->mode]) {
|
switch (mode_map[pi->mode]) {
|
||||||
case PPCMODE_UNI_SW:
|
case PPCMODE_UNI_SW:
|
||||||
@ -68,7 +86,7 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len)
|
|||||||
break;
|
break;
|
||||||
case PPCMODE_UNI_FW:
|
case PPCMODE_UNI_FW:
|
||||||
case PPCMODE_BI_FW:
|
case PPCMODE_BI_FW:
|
||||||
ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR);
|
bpck6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_FASTWR);
|
||||||
|
|
||||||
parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE,
|
parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE,
|
||||||
PARPORT_CONTROL_STROBE);
|
PARPORT_CONTROL_STROBE);
|
||||||
@ -92,7 +110,7 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len)
|
|||||||
|
|
||||||
parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE,
|
parport_frob_control(pi->pardev->port, PARPORT_CONTROL_STROBE,
|
||||||
0);
|
0);
|
||||||
ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR);
|
bpck6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_FASTWR);
|
||||||
break;
|
break;
|
||||||
case PPCMODE_EPP_BYTE:
|
case PPCMODE_EPP_BYTE:
|
||||||
pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf,
|
pi->pardev->port->ops->epp_write_data(pi->pardev->port, buf,
|
||||||
@ -111,18 +129,18 @@ static void bpck6_write_block(struct pi_adapter *pi, char *buf, int len)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK);
|
bpck6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len)
|
static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len)
|
||||||
{
|
{
|
||||||
ppc6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE);
|
bpck6_send_cmd(pi, REG_BLKSIZE | ACCESS_REG | ACCESS_WRITE);
|
||||||
ppc6_wr_data_byte(pi, (u8)len);
|
ppc6_wr_data_byte(pi, (u8)len);
|
||||||
ppc6_wr_data_byte(pi, (u8)(len >> 8));
|
ppc6_wr_data_byte(pi, (u8)(len >> 8));
|
||||||
ppc6_wr_data_byte(pi, 0);
|
ppc6_wr_data_byte(pi, 0);
|
||||||
|
|
||||||
ppc6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK);
|
bpck6_send_cmd(pi, CMD_PREFIX_SET | PREFIX_IO16 | PREFIX_BLK);
|
||||||
ppc6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_READ);
|
bpck6_send_cmd(pi, ATA_REG_DATA | ACCESS_PORT | ACCESS_READ);
|
||||||
|
|
||||||
switch (mode_map[pi->mode]) {
|
switch (mode_map[pi->mode]) {
|
||||||
case PPCMODE_UNI_SW:
|
case PPCMODE_UNI_SW:
|
||||||
@ -171,7 +189,7 @@ static void bpck6_read_block(struct pi_adapter *pi, char *buf, int len)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ppc6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK);
|
bpck6_send_cmd(pi, CMD_PREFIX_RESET | PREFIX_IO16 | PREFIX_BLK);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int bpck6_open(struct pi_adapter *pi)
|
static int bpck6_open(struct pi_adapter *pi)
|
||||||
@ -218,10 +236,10 @@ static int bpck6_open(struct pi_adapter *pi)
|
|||||||
|
|
||||||
pi->private = 0;
|
pi->private = 0;
|
||||||
|
|
||||||
ppc6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE);
|
bpck6_send_cmd(pi, ACCESS_REG | ACCESS_WRITE | REG_RAMSIZE);
|
||||||
ppc6_wr_data_byte(pi, RAMSIZE_128K);
|
ppc6_wr_data_byte(pi, RAMSIZE_128K);
|
||||||
|
|
||||||
ppc6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION);
|
bpck6_send_cmd(pi, ACCESS_REG | ACCESS_READ | REG_VERSION);
|
||||||
if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C)
|
if ((ppc6_rd_data_byte(pi) & 0x3F) == 0x0C)
|
||||||
pi->private |= fifo_wait;
|
pi->private |= fifo_wait;
|
||||||
|
|
||||||
@ -252,7 +270,7 @@ static void bpck6_deselect(struct pi_adapter *pi)
|
|||||||
|
|
||||||
static void bpck6_wr_extout(struct pi_adapter *pi, u8 regdata)
|
static void bpck6_wr_extout(struct pi_adapter *pi, u8 regdata)
|
||||||
{
|
{
|
||||||
ppc6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE);
|
bpck6_send_cmd(pi, REG_VERSION | ACCESS_REG | ACCESS_WRITE);
|
||||||
ppc6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6));
|
ppc6_wr_data_byte(pi, (u8)((regdata & 0x03) << 6));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,7 +67,6 @@
|
|||||||
|
|
||||||
//***************************************************************************
|
//***************************************************************************
|
||||||
|
|
||||||
static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd);
|
|
||||||
static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data);
|
static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data);
|
||||||
static u8 ppc6_rd_data_byte(struct pi_adapter *pi);
|
static u8 ppc6_rd_data_byte(struct pi_adapter *pi);
|
||||||
|
|
||||||
@ -78,34 +77,6 @@ int mode_map[] = { PPCMODE_UNI_FW, PPCMODE_BI_FW, PPCMODE_EPP_BYTE,
|
|||||||
|
|
||||||
//***************************************************************************
|
//***************************************************************************
|
||||||
|
|
||||||
static void ppc6_send_cmd(struct pi_adapter *pi, u8 cmd)
|
|
||||||
{
|
|
||||||
switch (mode_map[pi->mode])
|
|
||||||
{
|
|
||||||
case PPCMODE_UNI_SW :
|
|
||||||
case PPCMODE_UNI_FW :
|
|
||||||
case PPCMODE_BI_SW :
|
|
||||||
case PPCMODE_BI_FW :
|
|
||||||
{
|
|
||||||
parport_write_data(pi->pardev->port, cmd);
|
|
||||||
parport_frob_control(pi->pardev->port, 0, PARPORT_CONTROL_AUTOFD);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case PPCMODE_EPP_BYTE :
|
|
||||||
case PPCMODE_EPP_WORD :
|
|
||||||
case PPCMODE_EPP_DWORD :
|
|
||||||
{
|
|
||||||
pi->pardev->port->ops->epp_write_addr(pi->pardev->port, &cmd, 1, 0);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//***************************************************************************
|
|
||||||
|
|
||||||
static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data)
|
static void ppc6_wr_data_byte(struct pi_adapter *pi, u8 data)
|
||||||
{
|
{
|
||||||
switch (mode_map[pi->mode])
|
switch (mode_map[pi->mode])
|
||||||
|
Loading…
Reference in New Issue
Block a user