diff options
author | Jeff Garzik <jgarzik@pobox.com> | 2005-11-12 19:08:48 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-11-12 19:08:48 -0500 |
commit | ba3fe8fb6a469390a14379519915f3c39a973d99 (patch) | |
tree | c71db8064e18ea641015053444fb5c2cb87b7195 /drivers/scsi/sata_mv.c | |
parent | bca1c4eb9411533d613123618c0d127fae532595 (diff) |
[libata sata_mv] move code around
No content change, just prepping up future mv_hw_ops modularization.
Diffstat (limited to 'drivers/scsi/sata_mv.c')
-rw-r--r-- | drivers/scsi/sata_mv.c | 96 |
1 files changed, 48 insertions, 48 deletions
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c index b1696e353dd4..9d116d00273d 100644 --- a/drivers/scsi/sata_mv.c +++ b/drivers/scsi/sata_mv.c | |||
@@ -1243,11 +1243,59 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance, | |||
1243 | return IRQ_RETVAL(handled); | 1243 | return IRQ_RETVAL(handled); |
1244 | } | 1244 | } |
1245 | 1245 | ||
1246 | static void mv_cfg_signal5(struct mv_host_priv *hpriv, int idx, | ||
1247 | void __iomem *mmio) | ||
1248 | { | ||
1249 | /* FIXME */ | ||
1250 | } | ||
1251 | |||
1252 | static void mv_enable_leds5(struct mv_host_priv *hpriv, void __iomem *mmio) | ||
1253 | { | ||
1254 | /* FIXME */ | ||
1255 | } | ||
1256 | |||
1246 | static void mv_phy_errata5(struct ata_port *ap) | 1257 | static void mv_phy_errata5(struct ata_port *ap) |
1247 | { | 1258 | { |
1248 | /* FIXME */ | 1259 | /* FIXME */ |
1249 | } | 1260 | } |
1250 | 1261 | ||
1262 | static void mv_cfg_signal6(struct mv_host_priv *hpriv, int idx, | ||
1263 | void __iomem *mmio) | ||
1264 | { | ||
1265 | void __iomem *port_mmio; | ||
1266 | u32 tmp; | ||
1267 | |||
1268 | if (hpriv->hp_flags & MV_HP_ERRATA_60X1A1) { | ||
1269 | hpriv->signal[idx].amps = 0x5 << 8; | ||
1270 | hpriv->signal[idx].pre = 0x3 << 5; | ||
1271 | return; | ||
1272 | } | ||
1273 | |||
1274 | assert (hpriv->hp_flags & MV_HP_ERRATA_60X1B0); | ||
1275 | |||
1276 | tmp = readl(mmio + MV_RESET_CFG); | ||
1277 | if ((tmp & (1 << 0)) == 0) { | ||
1278 | hpriv->signal[idx].amps = 0x4 << 8; | ||
1279 | hpriv->signal[idx].pre = 0x1 << 5; | ||
1280 | return; | ||
1281 | } | ||
1282 | |||
1283 | port_mmio = mv_port_base(mmio, idx); | ||
1284 | tmp = readl(port_mmio + PHY_MODE2); | ||
1285 | |||
1286 | hpriv->signal[idx].amps = tmp & 0x700; /* bits 10:8 */ | ||
1287 | hpriv->signal[idx].pre = tmp & 0xe0; /* bits 7:5 */ | ||
1288 | } | ||
1289 | |||
1290 | static void mv_enable_leds6(struct mv_host_priv *hpriv, void __iomem *mmio) | ||
1291 | { | ||
1292 | if (hpriv->hp_flags & MV_HP_ERRATA_60X1A1) | ||
1293 | writel(0x00020060, mmio + MV_GPIO_PORT_CTL); | ||
1294 | |||
1295 | else if (hpriv->hp_flags & MV_HP_ERRATA_60X1B0) | ||
1296 | writel(0x00000060, mmio + MV_GPIO_PORT_CTL); | ||
1297 | } | ||
1298 | |||
1251 | static void mv_phy_errata6(struct ata_port *ap) | 1299 | static void mv_phy_errata6(struct ata_port *ap) |
1252 | { | 1300 | { |
1253 | struct mv_host_priv *hpriv = ap->host_set->private_data; | 1301 | struct mv_host_priv *hpriv = ap->host_set->private_data; |
@@ -1473,20 +1521,6 @@ static void mv_port_init(struct ata_ioports *port, void __iomem *port_mmio) | |||
1473 | readl(port_mmio + EDMA_ERR_IRQ_MASK_OFS)); | 1521 | readl(port_mmio + EDMA_ERR_IRQ_MASK_OFS)); |
1474 | } | 1522 | } |
1475 | 1523 | ||
1476 | static void mv_enable_leds5(struct mv_host_priv *hpriv, void __iomem *mmio) | ||
1477 | { | ||
1478 | /* FIXME */ | ||
1479 | } | ||
1480 | |||
1481 | static void mv_enable_leds6(struct mv_host_priv *hpriv, void __iomem *mmio) | ||
1482 | { | ||
1483 | if (hpriv->hp_flags & MV_HP_ERRATA_60X1A1) | ||
1484 | writel(0x00020060, mmio + MV_GPIO_PORT_CTL); | ||
1485 | |||
1486 | else if (hpriv->hp_flags & MV_HP_ERRATA_60X1B0) | ||
1487 | writel(0x00000060, mmio + MV_GPIO_PORT_CTL); | ||
1488 | } | ||
1489 | |||
1490 | static void mv_enable_leds(struct mv_host_priv *hpriv, void __iomem *mmio) | 1524 | static void mv_enable_leds(struct mv_host_priv *hpriv, void __iomem *mmio) |
1491 | { | 1525 | { |
1492 | if (IS_50XX(hpriv)) | 1526 | if (IS_50XX(hpriv)) |
@@ -1495,40 +1529,6 @@ static void mv_enable_leds(struct mv_host_priv *hpriv, void __iomem *mmio) | |||
1495 | mv_enable_leds6(hpriv, mmio); | 1529 | mv_enable_leds6(hpriv, mmio); |
1496 | } | 1530 | } |
1497 | 1531 | ||
1498 | static void mv_cfg_signal5(struct mv_host_priv *hpriv, int idx, | ||
1499 | void __iomem *mmio) | ||
1500 | { | ||
1501 | /* FIXME */ | ||
1502 | } | ||
1503 | |||
1504 | static void mv_cfg_signal6(struct mv_host_priv *hpriv, int idx, | ||
1505 | void __iomem *mmio) | ||
1506 | { | ||
1507 | void __iomem *port_mmio; | ||
1508 | u32 tmp; | ||
1509 | |||
1510 | if (hpriv->hp_flags & MV_HP_ERRATA_60X1A1) { | ||
1511 | hpriv->signal[idx].amps = 0x5 << 8; | ||
1512 | hpriv->signal[idx].pre = 0x3 << 5; | ||
1513 | return; | ||
1514 | } | ||
1515 | |||
1516 | assert (hpriv->hp_flags & MV_HP_ERRATA_60X1B0); | ||
1517 | |||
1518 | tmp = readl(mmio + MV_RESET_CFG); | ||
1519 | if ((tmp & (1 << 0)) == 0) { | ||
1520 | hpriv->signal[idx].amps = 0x4 << 8; | ||
1521 | hpriv->signal[idx].pre = 0x1 << 5; | ||
1522 | return; | ||
1523 | } | ||
1524 | |||
1525 | port_mmio = mv_port_base(mmio, idx); | ||
1526 | tmp = readl(port_mmio + PHY_MODE2); | ||
1527 | |||
1528 | hpriv->signal[idx].amps = tmp & 0x700; /* bits 10:8 */ | ||
1529 | hpriv->signal[idx].pre = tmp & 0xe0; /* bits 7:5 */ | ||
1530 | } | ||
1531 | |||
1532 | static int mv_cfg_errata(struct pci_dev *pdev, struct mv_host_priv *hpriv, | 1532 | static int mv_cfg_errata(struct pci_dev *pdev, struct mv_host_priv *hpriv, |
1533 | unsigned int board_idx) | 1533 | unsigned int board_idx) |
1534 | { | 1534 | { |