MdeModulePkg SataControllerDxe: Calculate ChannelCount based on PI value
authorStar Zeng <star.zeng@intel.com>
Wed, 27 Jun 2018 06:10:45 +0000 (14:10 +0800)
committerStar Zeng <star.zeng@intel.com>
Mon, 2 Jul 2018 08:38:13 +0000 (16:38 +0800)
commitaa4240edff41034d709938a15b42cf4fd3214386
treecbb4e9f78c100f523311d14201193430bcfe5198
parente9f4a2a934b1d6a0b9a0747f6858c005126d5ae9
MdeModulePkg SataControllerDxe: Calculate ChannelCount based on PI value

Current code calculates ChannelCount based on CAP(NP) value.
It only works when the ports implemented number are <= CAP(NP),
for example, platform has CAP(NP) = 5 (means 6 ports) and ports
implemented are 0, 1, 2, 3, 4 and 5.

But we have some platform that has CAP(NP) = 1 (means 2 ports) and
ports implemented are 1 and 2, and has no port 0 implemented, then
current code does not work.

This patch updates the code to calculate ChannelCount based on PI value.

Cc: Amy Chan <amy.chan@intel.com>
Cc: Hong-chihX Hsueh <hong-chihx.hsueh@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Hao Wu <hao.a.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
Tested-by: Hong-chihX Hsueh <hong-chihx.hsueh@intel.com>
MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.c
MdeModulePkg/Bus/Pci/SataControllerDxe/SataController.h