aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sata_mv.c
diff options
context:
space:
mode:
authorJeff Garzik <jgarzik@pobox.com>2005-11-12 19:08:48 -0500
committerJeff Garzik <jgarzik@pobox.com>2005-11-12 19:08:48 -0500
commitba3fe8fb6a469390a14379519915f3c39a973d99 (patch)
treec71db8064e18ea641015053444fb5c2cb87b7195 /drivers/scsi/sata_mv.c
parentbca1c4eb9411533d613123618c0d127fae532595 (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.c96
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
1246static void mv_cfg_signal5(struct mv_host_priv *hpriv, int idx,
1247 void __iomem *mmio)
1248{
1249 /* FIXME */
1250}
1251
1252static void mv_enable_leds5(struct mv_host_priv *hpriv, void __iomem *mmio)
1253{
1254 /* FIXME */
1255}
1256
1246static void mv_phy_errata5(struct ata_port *ap) 1257static void mv_phy_errata5(struct ata_port *ap)
1247{ 1258{
1248 /* FIXME */ 1259 /* FIXME */
1249} 1260}
1250 1261
1262static 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
1290static 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
1251static void mv_phy_errata6(struct ata_port *ap) 1299static 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
1476static void mv_enable_leds5(struct mv_host_priv *hpriv, void __iomem *mmio)
1477{
1478 /* FIXME */
1479}
1480
1481static 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
1490static void mv_enable_leds(struct mv_host_priv *hpriv, void __iomem *mmio) 1524static 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
1498static void mv_cfg_signal5(struct mv_host_priv *hpriv, int idx,
1499 void __iomem *mmio)
1500{
1501 /* FIXME */
1502}
1503
1504static 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
1532static int mv_cfg_errata(struct pci_dev *pdev, struct mv_host_priv *hpriv, 1532static 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{