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 |