[PATCH 1/2] x86: queensbay: Optimize disable_igd() a little

Initialize igd and sdvo to NULL so that we don't need to test the return value of dm_pci_bus_find_bdf() later.
Signed-off-by: Bin Meng bmeng.cn@gmail.com ---
arch/x86/cpu/queensbay/tnc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/x86/cpu/queensbay/tnc.c b/arch/x86/cpu/queensbay/tnc.c index 782ed863fe..e38c0198e4 100644 --- a/arch/x86/cpu/queensbay/tnc.c +++ b/arch/x86/cpu/queensbay/tnc.c @@ -18,18 +18,15 @@
static int __maybe_unused disable_igd(void) { - struct udevice *igd, *sdvo; + struct udevice *igd = NULL; + struct udevice *sdvo = NULL; int ret;
ret = dm_pci_bus_find_bdf(TNC_IGD, &igd); - if (ret) - return ret; if (!igd) return 0;
ret = dm_pci_bus_find_bdf(TNC_SDVO, &sdvo); - if (ret) - return ret; if (!sdvo) return 0;

The board routes the Integrated Graphics Device (IGD) to an LVDS panel, which is less popular than a PCIe based graphics card.
Disable the IGD so that it does not show up in the PCI configuration space as a VGA display controller, so we can use an external PCIe graphics card with whatever cable we have.
Signed-off-by: Bin Meng bmeng.cn@gmail.com ---
configs/crownbay_defconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig index 1208aad42f..d7ee0fe45e 100644 --- a/configs/crownbay_defconfig +++ b/configs/crownbay_defconfig @@ -8,9 +8,8 @@ CONFIG_MAX_CPUS=2 CONFIG_DEFAULT_DEVICE_TREE="crownbay" CONFIG_VENDOR_INTEL=y CONFIG_TARGET_CROWNBAY=y +CONFIG_DISABLE_IGD=y CONFIG_SMP=y -CONFIG_HAVE_VGA_BIOS=y -CONFIG_VGA_BIOS_ADDR=0xfffa0000 CONFIG_GENERATE_PIRQ_TABLE=y CONFIG_GENERATE_MP_TABLE=y CONFIG_FIT=y

On Sat, 31 Jul 2021 at 07:17, Bin Meng bmeng.cn@gmail.com wrote:
The board routes the Integrated Graphics Device (IGD) to an LVDS panel, which is less popular than a PCIe based graphics card.
Disable the IGD so that it does not show up in the PCI configuration space as a VGA display controller, so we can use an external PCIe graphics card with whatever cable we have.
diff --git a/configs/crownbay_defconfig b/configs/crownbay_defconfig index 1208aad42f..d7ee0fe45e 100644 --- a/configs/crownbay_defconfig +++ b/configs/crownbay_defconfig @@ -8,9 +8,8 @@ CONFIG_MAX_CPUS=2 CONFIG_DEFAULT_DEVICE_TREE="crownbay" CONFIG_VENDOR_INTEL=y CONFIG_TARGET_CROWNBAY=y +CONFIG_DISABLE_IGD=y CONFIG_SMP=y -CONFIG_HAVE_VGA_BIOS=y -CONFIG_VGA_BIOS_ADDR=0xfffa0000 CONFIG_GENERATE_PIRQ_TABLE=y CONFIG_GENERATE_MP_TABLE=y CONFIG_FIT=y -- 2.25.1
Signed-off-by: Bin Meng bmeng.cn@gmail.com
configs/crownbay_defconfig | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org

Hi Bin,
On Sat, 31 Jul 2021 at 07:17, Bin Meng bmeng.cn@gmail.com wrote:
Initialize igd and sdvo to NULL so that we don't need to test the return value of dm_pci_bus_find_bdf() later.
Signed-off-by: Bin Meng bmeng.cn@gmail.com
arch/x86/cpu/queensbay/tnc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/x86/cpu/queensbay/tnc.c b/arch/x86/cpu/queensbay/tnc.c index 782ed863fe..e38c0198e4 100644 --- a/arch/x86/cpu/queensbay/tnc.c +++ b/arch/x86/cpu/queensbay/tnc.c @@ -18,18 +18,15 @@
static int __maybe_unused disable_igd(void) {
struct udevice *igd, *sdvo;
struct udevice *igd = NULL;
struct udevice *sdvo = NULL; int ret; ret = dm_pci_bus_find_bdf(TNC_IGD, &igd);
if (ret)
return ret; if (!igd) return 0;
This is backwards. If ret returns 0 then we know igd is non-NULL. So check the return value. That is what it is for. You can drop the check of igd. Same below.
ret = dm_pci_bus_find_bdf(TNC_SDVO, &sdvo);
if (ret)
return ret; if (!sdvo) return 0;
-- 2.25.1
Regards, Simon

Hi Simon,
On Mon, Aug 2, 2021 at 3:19 AM Simon Glass sjg@chromium.org wrote:
Hi Bin,
On Sat, 31 Jul 2021 at 07:17, Bin Meng bmeng.cn@gmail.com wrote:
Initialize igd and sdvo to NULL so that we don't need to test the return value of dm_pci_bus_find_bdf() later.
Signed-off-by: Bin Meng bmeng.cn@gmail.com
arch/x86/cpu/queensbay/tnc.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/arch/x86/cpu/queensbay/tnc.c b/arch/x86/cpu/queensbay/tnc.c index 782ed863fe..e38c0198e4 100644 --- a/arch/x86/cpu/queensbay/tnc.c +++ b/arch/x86/cpu/queensbay/tnc.c @@ -18,18 +18,15 @@
static int __maybe_unused disable_igd(void) {
struct udevice *igd, *sdvo;
struct udevice *igd = NULL;
struct udevice *sdvo = NULL; int ret; ret = dm_pci_bus_find_bdf(TNC_IGD, &igd);
if (ret)
return ret; if (!igd) return 0;
This is backwards. If ret returns 0 then we know igd is non-NULL. So check the return value. That is what it is for. You can drop the check of igd. Same below.
Ah, yes. I remembered why the original codes were written like this. Actually the codes tried to be compatible that if the device is already disabled it should not return error. I will reword the commit message and add some comments here.
Regards, Bin
participants (2)
-
Bin Meng
-
Simon Glass