Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

phy: brcm-sata: Correct MDIO operations for 40nm platforms

The logic to write to MDIO registers on 40nm platforms was wrong
because it would use the port number as an offset from the base address
rather than the bank address of the PHY. This is hardly noticeable
because the only programming we do is enabling SSC or not, which is not
really causing an observable functional change.

Correct that mistake by passing down the struct brcm_sata_port structure
down to the brcm_sata_mdio_wr() and brcm_sata_mdio_rd() functions and do
the proper offsetting for 28nm, respectively 40nm platforms from there.
This means that brcm_sata_pcb_base() is now useless and is therefore
removed.

Fixes: c1602a1a0fbe ("phy: phy_brcmstb_sata: add support for MIPS-based platforms")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>

authored by

Florian Fainelli and committed by
Kishon Vijay Abraham I
0ed41b33 58aa7729

+65 -83
+65 -83
drivers/phy/broadcom/phy-brcm-sata.c
··· 186 186 PHY_CTRL_1_RESET = BIT(0), 187 187 }; 188 188 189 - static inline void __iomem *brcm_sata_pcb_base(struct brcm_sata_port *port) 190 - { 191 - struct brcm_sata_phy *priv = port->phy_priv; 192 - u32 size = 0; 193 - 194 - switch (priv->version) { 195 - case BRCM_SATA_PHY_STB_16NM: 196 - case BRCM_SATA_PHY_STB_28NM: 197 - case BRCM_SATA_PHY_IPROC_NS2: 198 - case BRCM_SATA_PHY_DSL_28NM: 199 - size = SATA_PCB_REG_28NM_SPACE_SIZE; 200 - break; 201 - case BRCM_SATA_PHY_STB_40NM: 202 - size = SATA_PCB_REG_40NM_SPACE_SIZE; 203 - break; 204 - default: 205 - dev_err(priv->dev, "invalid phy version\n"); 206 - break; 207 - } 208 - 209 - return priv->phy_base + (port->portnum * size); 210 - } 211 - 212 189 static inline void __iomem *brcm_sata_ctrl_base(struct brcm_sata_port *port) 213 190 { 214 191 struct brcm_sata_phy *priv = port->phy_priv; ··· 203 226 return priv->ctrl_base + (port->portnum * size); 204 227 } 205 228 206 - static void brcm_sata_phy_wr(void __iomem *pcb_base, u32 bank, 229 + static void brcm_sata_phy_wr(struct brcm_sata_port *port, u32 bank, 207 230 u32 ofs, u32 msk, u32 value) 208 231 { 232 + struct brcm_sata_phy *priv = port->phy_priv; 233 + void __iomem *pcb_base = priv->phy_base; 209 234 u32 tmp; 235 + 236 + if (priv->version == BRCM_SATA_PHY_STB_40NM) 237 + bank += (port->portnum * SATA_PCB_REG_40NM_SPACE_SIZE); 238 + else 239 + pcb_base += (port->portnum * SATA_PCB_REG_28NM_SPACE_SIZE); 210 240 211 241 writel(bank, pcb_base + SATA_PCB_BANK_OFFSET); 212 242 tmp = readl(pcb_base + SATA_PCB_REG_OFFSET(ofs)); ··· 221 237 writel(tmp, pcb_base + SATA_PCB_REG_OFFSET(ofs)); 222 238 } 223 239 224 - static u32 brcm_sata_phy_rd(void __iomem *pcb_base, u32 bank, u32 ofs) 240 + static u32 brcm_sata_phy_rd(struct brcm_sata_port *port, u32 bank, u32 ofs) 225 241 { 242 + struct brcm_sata_phy *priv = port->phy_priv; 243 + void __iomem *pcb_base = priv->phy_base; 244 + 245 + if (priv->version == BRCM_SATA_PHY_STB_40NM) 246 + bank += (port->portnum * SATA_PCB_REG_40NM_SPACE_SIZE); 247 + else 248 + pcb_base += (port->portnum * SATA_PCB_REG_28NM_SPACE_SIZE); 249 + 226 250 writel(bank, pcb_base + SATA_PCB_BANK_OFFSET); 227 251 return readl(pcb_base + SATA_PCB_REG_OFFSET(ofs)); 228 252 } ··· 242 250 243 251 static void brcm_stb_sata_ssc_init(struct brcm_sata_port *port) 244 252 { 245 - void __iomem *base = brcm_sata_pcb_base(port); 246 253 struct brcm_sata_phy *priv = port->phy_priv; 247 254 u32 tmp; 248 255 249 256 /* override the TX spread spectrum setting */ 250 257 tmp = TXPMD_CONTROL1_TX_SSC_EN_FRC_VAL | TXPMD_CONTROL1_TX_SSC_EN_FRC; 251 - brcm_sata_phy_wr(base, TXPMD_REG_BANK, TXPMD_CONTROL1, ~tmp, tmp); 258 + brcm_sata_phy_wr(port, TXPMD_REG_BANK, TXPMD_CONTROL1, ~tmp, tmp); 252 259 253 260 /* set fixed min freq */ 254 - brcm_sata_phy_wr(base, TXPMD_REG_BANK, TXPMD_TX_FREQ_CTRL_CONTROL2, 261 + brcm_sata_phy_wr(port, TXPMD_REG_BANK, TXPMD_TX_FREQ_CTRL_CONTROL2, 255 262 ~TXPMD_TX_FREQ_CTRL_CONTROL2_FMIN_MASK, 256 263 STB_FMIN_VAL_DEFAULT); 257 264 ··· 262 271 tmp = STB_FMAX_VAL_DEFAULT; 263 272 } 264 273 265 - brcm_sata_phy_wr(base, TXPMD_REG_BANK, TXPMD_TX_FREQ_CTRL_CONTROL3, 274 + brcm_sata_phy_wr(port, TXPMD_REG_BANK, TXPMD_TX_FREQ_CTRL_CONTROL3, 266 275 ~TXPMD_TX_FREQ_CTRL_CONTROL3_FMAX_MASK, tmp); 267 276 } 268 277 ··· 271 280 272 281 static int brcm_stb_sata_rxaeq_init(struct brcm_sata_port *port) 273 282 { 274 - void __iomem *base = brcm_sata_pcb_base(port); 275 283 u32 tmp = 0, reg = 0; 276 284 277 285 switch (port->rxaeq_mode) { ··· 291 301 break; 292 302 } 293 303 294 - brcm_sata_phy_wr(base, AEQRX_REG_BANK_0, reg, ~tmp, tmp); 295 - brcm_sata_phy_wr(base, AEQRX_REG_BANK_1, reg, ~tmp, tmp); 304 + brcm_sata_phy_wr(port, AEQRX_REG_BANK_0, reg, ~tmp, tmp); 305 + brcm_sata_phy_wr(port, AEQRX_REG_BANK_1, reg, ~tmp, tmp); 296 306 297 307 return 0; 298 308 } ··· 306 316 307 317 static int brcm_stb_sata_16nm_ssc_init(struct brcm_sata_port *port) 308 318 { 309 - void __iomem *base = brcm_sata_pcb_base(port); 310 319 u32 tmp, value; 311 320 312 321 /* Reduce CP tail current to 1/16th of its default value */ 313 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL6, 0, 0x141); 322 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL6, 0, 0x141); 314 323 315 324 /* Turn off CP tail current boost */ 316 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL8, 0, 0xc006); 325 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL8, 0, 0xc006); 317 326 318 327 /* Set a specific AEQ equalizer value */ 319 328 tmp = AEQ_FRC_EQ_FORCE_VAL | AEQ_FRC_EQ_FORCE; 320 - brcm_sata_phy_wr(base, AEQRX_REG_BANK_0, AEQ_FRC_EQ, 329 + brcm_sata_phy_wr(port, AEQRX_REG_BANK_0, AEQ_FRC_EQ, 321 330 ~(tmp | AEQ_RFZ_FRC_VAL | 322 331 AEQ_FRC_EQ_VAL_MASK << AEQ_FRC_EQ_VAL_SHIFT), 323 332 tmp | 32 << AEQ_FRC_EQ_VAL_SHIFT); ··· 326 337 value = 0x52; 327 338 else 328 339 value = 0; 329 - brcm_sata_phy_wr(base, RXPMD_REG_BANK, RXPMD_RX_CDR_CONTROL1, 340 + brcm_sata_phy_wr(port, RXPMD_REG_BANK, RXPMD_RX_CDR_CONTROL1, 330 341 ~RXPMD_RX_PPM_VAL_MASK, value); 331 342 332 343 /* Set proportional loop bandwith Gen1/2/3 */ ··· 341 352 value = 1 << RXPMD_G1_CDR_PROP_BW_SHIFT | 342 353 1 << RXPMD_G2_CDR_PROP_BW_SHIFT | 343 354 1 << RXPMD_G3_CDR_PROB_BW_SHIFT; 344 - brcm_sata_phy_wr(base, RXPMD_REG_BANK, RXPMD_RX_CDR_CDR_PROP_BW, ~tmp, 355 + brcm_sata_phy_wr(port, RXPMD_REG_BANK, RXPMD_RX_CDR_CDR_PROP_BW, ~tmp, 345 356 value); 346 357 347 358 /* Set CDR integral loop acquisition bandwidth for Gen1/2/3 */ ··· 354 365 1 << RXPMD_G3_CDR_ACQ_INT_BW_SHIFT; 355 366 else 356 367 value = 0; 357 - brcm_sata_phy_wr(base, RXPMD_REG_BANK, RXPMD_RX_CDR_CDR_ACQ_INTEG_BW, 368 + brcm_sata_phy_wr(port, RXPMD_REG_BANK, RXPMD_RX_CDR_CDR_ACQ_INTEG_BW, 358 369 ~tmp, value); 359 370 360 371 /* Set CDR integral loop locking bandwidth to 1 for Gen 1/2/3 */ ··· 367 378 1 << RXPMD_G3_CDR_LOCK_INT_BW_SHIFT; 368 379 else 369 380 value = 0; 370 - brcm_sata_phy_wr(base, RXPMD_REG_BANK, RXPMD_RX_CDR_CDR_LOCK_INTEG_BW, 381 + brcm_sata_phy_wr(port, RXPMD_REG_BANK, RXPMD_RX_CDR_CDR_LOCK_INTEG_BW, 371 382 ~tmp, value); 372 383 373 384 /* Set no guard band and clamp CDR */ ··· 376 387 value = 0x51; 377 388 else 378 389 value = 0; 379 - brcm_sata_phy_wr(base, RXPMD_REG_BANK, RXPMD_RX_FREQ_MON_CONTROL1, 390 + brcm_sata_phy_wr(port, RXPMD_REG_BANK, RXPMD_RX_FREQ_MON_CONTROL1, 380 391 ~tmp, RXPMD_MON_CORRECT_EN | value); 381 392 382 393 /* Turn on/off SSC */ 383 - brcm_sata_phy_wr(base, TX_REG_BANK, TX_ACTRL5, ~TX_ACTRL5_SSC_EN, 394 + brcm_sata_phy_wr(port, TX_REG_BANK, TX_ACTRL5, ~TX_ACTRL5_SSC_EN, 384 395 port->ssc_en ? TX_ACTRL5_SSC_EN : 0); 385 396 386 397 return 0; ··· 400 411 { 401 412 int try; 402 413 unsigned int val; 403 - void __iomem *base = brcm_sata_pcb_base(port); 404 414 void __iomem *ctrl_base = brcm_sata_ctrl_base(port); 405 415 struct device *dev = port->phy_priv->dev; 406 416 ··· 409 421 val |= (0x4 << OOB_CTRL1_BURST_MIN_SHIFT); 410 422 val |= (0x9 << OOB_CTRL1_WAKE_IDLE_MAX_SHIFT); 411 423 val |= (0x3 << OOB_CTRL1_WAKE_IDLE_MIN_SHIFT); 412 - brcm_sata_phy_wr(base, OOB_REG_BANK, OOB_CTRL1, 0x0, val); 424 + brcm_sata_phy_wr(port, OOB_REG_BANK, OOB_CTRL1, 0x0, val); 413 425 val = 0x0; 414 426 val |= (0x1b << OOB_CTRL2_RESET_IDLE_MAX_SHIFT); 415 427 val |= (0x2 << OOB_CTRL2_BURST_CNT_SHIFT); 416 428 val |= (0x9 << OOB_CTRL2_RESET_IDLE_MIN_SHIFT); 417 - brcm_sata_phy_wr(base, OOB_REG_BANK, OOB_CTRL2, 0x0, val); 429 + brcm_sata_phy_wr(port, OOB_REG_BANK, OOB_CTRL2, 0x0, val); 418 430 419 431 /* Configure PHY PLL register bank 1 */ 420 432 val = NS2_PLL1_ACTRL2_MAGIC; 421 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL2, 0x0, val); 433 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL2, 0x0, val); 422 434 val = NS2_PLL1_ACTRL3_MAGIC; 423 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL3, 0x0, val); 435 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL3, 0x0, val); 424 436 val = NS2_PLL1_ACTRL4_MAGIC; 425 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL4, 0x0, val); 437 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL4, 0x0, val); 426 438 427 439 /* Configure PHY BLOCK0 register bank */ 428 440 /* Set oob_clk_sel to refclk/2 */ 429 - brcm_sata_phy_wr(base, BLOCK0_REG_BANK, BLOCK0_SPARE, 441 + brcm_sata_phy_wr(port, BLOCK0_REG_BANK, BLOCK0_SPARE, 430 442 ~BLOCK0_SPARE_OOB_CLK_SEL_MASK, 431 443 BLOCK0_SPARE_OOB_CLK_SEL_REFBY2); 432 444 ··· 439 451 /* Wait for PHY PLL lock by polling pll_lock bit */ 440 452 try = 50; 441 453 while (try) { 442 - val = brcm_sata_phy_rd(base, BLOCK0_REG_BANK, 454 + val = brcm_sata_phy_rd(port, BLOCK0_REG_BANK, 443 455 BLOCK0_XGXSSTATUS); 444 456 if (val & BLOCK0_XGXSSTATUS_PLL_LOCK) 445 457 break; ··· 459 471 460 472 static int brcm_nsp_sata_init(struct brcm_sata_port *port) 461 473 { 462 - struct brcm_sata_phy *priv = port->phy_priv; 463 474 struct device *dev = port->phy_priv->dev; 464 - void __iomem *base = priv->phy_base; 465 475 unsigned int oob_bank; 466 476 unsigned int val, try; 467 477 ··· 476 490 val |= (0x06 << OOB_CTRL1_BURST_MIN_SHIFT); 477 491 val |= (0x0f << OOB_CTRL1_WAKE_IDLE_MAX_SHIFT); 478 492 val |= (0x06 << OOB_CTRL1_WAKE_IDLE_MIN_SHIFT); 479 - brcm_sata_phy_wr(base, oob_bank, OOB_CTRL1, 0x0, val); 493 + brcm_sata_phy_wr(port, oob_bank, OOB_CTRL1, 0x0, val); 480 494 481 495 val = 0x0; 482 496 val |= (0x2e << OOB_CTRL2_RESET_IDLE_MAX_SHIFT); 483 497 val |= (0x02 << OOB_CTRL2_BURST_CNT_SHIFT); 484 498 val |= (0x16 << OOB_CTRL2_RESET_IDLE_MIN_SHIFT); 485 - brcm_sata_phy_wr(base, oob_bank, OOB_CTRL2, 0x0, val); 499 + brcm_sata_phy_wr(port, oob_bank, OOB_CTRL2, 0x0, val); 486 500 487 501 488 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_ACTRL2, 502 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_ACTRL2, 489 503 ~(PLL_ACTRL2_SELDIV_MASK << PLL_ACTRL2_SELDIV_SHIFT), 490 504 0x0c << PLL_ACTRL2_SELDIV_SHIFT); 491 505 492 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_CAP_CONTROL, 506 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_CAP_CONTROL, 493 507 0xff0, 0x4f0); 494 508 495 509 val = PLLCONTROL_0_FREQ_DET_RESTART | PLLCONTROL_0_FREQ_MONITOR; 496 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 510 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 497 511 ~val, val); 498 512 val = PLLCONTROL_0_SEQ_START; 499 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 513 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 500 514 ~val, 0); 501 515 mdelay(10); 502 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 516 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 503 517 ~val, val); 504 518 505 519 /* Wait for pll_seq_done bit */ 506 520 try = 50; 507 521 while (--try) { 508 - val = brcm_sata_phy_rd(base, BLOCK0_REG_BANK, 522 + val = brcm_sata_phy_rd(port, BLOCK0_REG_BANK, 509 523 BLOCK0_XGXSSTATUS); 510 524 if (val & BLOCK0_XGXSSTATUS_PLL_LOCK) 511 525 break; ··· 532 546 533 547 static int brcm_sr_sata_init(struct brcm_sata_port *port) 534 548 { 535 - struct brcm_sata_phy *priv = port->phy_priv; 536 549 struct device *dev = port->phy_priv->dev; 537 - void __iomem *base = priv->phy_base; 538 550 unsigned int val, try; 539 551 540 552 /* Configure PHY PLL register bank 1 */ 541 553 val = SR_PLL1_ACTRL2_MAGIC; 542 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL2, 0x0, val); 554 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL2, 0x0, val); 543 555 val = SR_PLL1_ACTRL3_MAGIC; 544 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL3, 0x0, val); 556 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL3, 0x0, val); 545 557 val = SR_PLL1_ACTRL4_MAGIC; 546 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL4, 0x0, val); 558 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL4, 0x0, val); 547 559 548 560 /* Configure PHY PLL register bank 0 */ 549 561 val = SR_PLL0_ACTRL6_MAGIC; 550 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_ACTRL6, 0x0, val); 562 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_ACTRL6, 0x0, val); 551 563 552 564 /* Wait for PHY PLL lock by polling pll_lock bit */ 553 565 try = 50; 554 566 do { 555 - val = brcm_sata_phy_rd(base, BLOCK0_REG_BANK, 567 + val = brcm_sata_phy_rd(port, BLOCK0_REG_BANK, 556 568 BLOCK0_XGXSSTATUS); 557 569 if (val & BLOCK0_XGXSSTATUS_PLL_LOCK) 558 570 break; ··· 565 581 } 566 582 567 583 /* Invert Tx polarity */ 568 - brcm_sata_phy_wr(base, TX_REG_BANK, TX_ACTRL0, 584 + brcm_sata_phy_wr(port, TX_REG_BANK, TX_ACTRL0, 569 585 ~TX_ACTRL0_TXPOL_FLIP, TX_ACTRL0_TXPOL_FLIP); 570 586 571 587 /* Configure OOB control to handle 100MHz reference clock */ ··· 573 589 (0x4 << OOB_CTRL1_BURST_MIN_SHIFT) | 574 590 (0x8 << OOB_CTRL1_WAKE_IDLE_MAX_SHIFT) | 575 591 (0x3 << OOB_CTRL1_WAKE_IDLE_MIN_SHIFT)); 576 - brcm_sata_phy_wr(base, OOB_REG_BANK, OOB_CTRL1, 0x0, val); 592 + brcm_sata_phy_wr(port, OOB_REG_BANK, OOB_CTRL1, 0x0, val); 577 593 val = ((0x1b << OOB_CTRL2_RESET_IDLE_MAX_SHIFT) | 578 594 (0x2 << OOB_CTRL2_BURST_CNT_SHIFT) | 579 595 (0x9 << OOB_CTRL2_RESET_IDLE_MIN_SHIFT)); 580 - brcm_sata_phy_wr(base, OOB_REG_BANK, OOB_CTRL2, 0x0, val); 596 + brcm_sata_phy_wr(port, OOB_REG_BANK, OOB_CTRL2, 0x0, val); 581 597 582 598 return 0; 583 599 } 584 600 585 601 static int brcm_dsl_sata_init(struct brcm_sata_port *port) 586 602 { 587 - void __iomem *base = brcm_sata_pcb_base(port); 588 603 struct device *dev = port->phy_priv->dev; 589 604 unsigned int try; 590 605 u32 tmp; 591 606 592 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL7, 0, 0x873); 607 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL7, 0, 0x873); 593 608 594 - brcm_sata_phy_wr(base, PLL1_REG_BANK, PLL1_ACTRL6, 0, 0xc000); 609 + brcm_sata_phy_wr(port, PLL1_REG_BANK, PLL1_ACTRL6, 0, 0xc000); 595 610 596 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 611 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 597 612 0, 0x3089); 598 613 usleep_range(1000, 2000); 599 614 600 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 615 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_REG_BANK_0_PLLCONTROL_0, 601 616 0, 0x3088); 602 617 usleep_range(1000, 2000); 603 618 604 - brcm_sata_phy_wr(base, AEQRX_REG_BANK_1, AEQRX_SLCAL0_CTRL0, 619 + brcm_sata_phy_wr(port, AEQRX_REG_BANK_1, AEQRX_SLCAL0_CTRL0, 605 620 0, 0x3000); 606 621 607 - brcm_sata_phy_wr(base, AEQRX_REG_BANK_1, AEQRX_SLCAL1_CTRL0, 622 + brcm_sata_phy_wr(port, AEQRX_REG_BANK_1, AEQRX_SLCAL1_CTRL0, 608 623 0, 0x3000); 609 624 usleep_range(1000, 2000); 610 625 611 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_CAP_CHARGE_TIME, 0, 0x32); 626 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_CAP_CHARGE_TIME, 0, 0x32); 612 627 613 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_VCO_CAL_THRESH, 0, 0xa); 628 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_VCO_CAL_THRESH, 0, 0xa); 614 629 615 - brcm_sata_phy_wr(base, PLL_REG_BANK_0, PLL_FREQ_DET_TIME, 0, 0x64); 630 + brcm_sata_phy_wr(port, PLL_REG_BANK_0, PLL_FREQ_DET_TIME, 0, 0x64); 616 631 usleep_range(1000, 2000); 617 632 618 633 /* Acquire PLL lock */ 619 634 try = 50; 620 635 while (try) { 621 - tmp = brcm_sata_phy_rd(base, BLOCK0_REG_BANK, 636 + tmp = brcm_sata_phy_rd(port, BLOCK0_REG_BANK, 622 637 BLOCK0_XGXSSTATUS); 623 638 if (tmp & BLOCK0_XGXSSTATUS_PLL_LOCK) 624 639 break; ··· 670 687 671 688 static void brcm_stb_sata_calibrate(struct brcm_sata_port *port) 672 689 { 673 - void __iomem *base = brcm_sata_pcb_base(port); 674 690 u32 tmp = BIT(8); 675 691 676 - brcm_sata_phy_wr(base, RXPMD_REG_BANK, RXPMD_RX_FREQ_MON_CONTROL1, 692 + brcm_sata_phy_wr(port, RXPMD_REG_BANK, RXPMD_RX_FREQ_MON_CONTROL1, 677 693 ~tmp, tmp); 678 694 } 679 695