diff options
| -rw-r--r-- | drivers/ntb/ntb_hw.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/ntb/ntb_hw.c b/drivers/ntb/ntb_hw.c index fa97948e66ad..391c377a5d38 100644 --- a/drivers/ntb/ntb_hw.c +++ b/drivers/ntb/ntb_hw.c | |||
| @@ -689,6 +689,12 @@ static int ntb_xeon_setup(struct ntb_device *ndev) | |||
| 689 | */ | 689 | */ |
| 690 | writeq(ndev->mw[1].bar_sz + 0x1000, ndev->reg_base + | 690 | writeq(ndev->mw[1].bar_sz + 0x1000, ndev->reg_base + |
| 691 | SNB_PBAR4LMT_OFFSET); | 691 | SNB_PBAR4LMT_OFFSET); |
| 692 | /* HW errata on the Limit registers. They can only be | ||
| 693 | * written when the base register is 4GB aligned and | ||
| 694 | * < 32bit. This should already be the case based on the | ||
| 695 | * driver defaults, but write the Limit registers first | ||
| 696 | * just in case. | ||
| 697 | */ | ||
| 692 | } else { | 698 | } else { |
| 693 | ndev->limits.max_mw = SNB_MAX_MW; | 699 | ndev->limits.max_mw = SNB_MAX_MW; |
| 694 | 700 | ||
| @@ -707,6 +713,12 @@ static int ntb_xeon_setup(struct ntb_device *ndev) | |||
| 707 | * something silly | 713 | * something silly |
| 708 | */ | 714 | */ |
| 709 | writeq(0, ndev->reg_base + SNB_PBAR4LMT_OFFSET); | 715 | writeq(0, ndev->reg_base + SNB_PBAR4LMT_OFFSET); |
| 716 | /* HW errata on the Limit registers. They can only be | ||
| 717 | * written when the base register is 4GB aligned and | ||
| 718 | * < 32bit. This should already be the case based on the | ||
| 719 | * driver defaults, but write the Limit registers first | ||
| 720 | * just in case. | ||
| 721 | */ | ||
| 710 | } | 722 | } |
| 711 | 723 | ||
| 712 | /* The Xeon errata workaround requires setting SBAR Base | 724 | /* The Xeon errata workaround requires setting SBAR Base |
