[U-Boot] [PATCH 18/33] x86: ivybridge: Add a way to get the HDA config setting

Bin Meng bmeng.cn at gmail.com
Wed Feb 13 09:38:38 UTC 2019


Hi Simon,

On Tue, Jan 22, 2019 at 9:14 AM Simon Glass <sjg at chromium.org> wrote:
>
> Add a way check to whether HD audio is enabled. Use ioctl() to avoid
> adding too many unusual operations to PCH.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  arch/x86/cpu/ivybridge/bd82x6x.c | 19 +++++++++++++++++++
>  include/pch.h                    |  3 +++
>  2 files changed, 22 insertions(+)
>
> diff --git a/arch/x86/cpu/ivybridge/bd82x6x.c b/arch/x86/cpu/ivybridge/bd82x6x.c
> index a78bb02544..7d16294a5e 100644
> --- a/arch/x86/cpu/ivybridge/bd82x6x.c
> +++ b/arch/x86/cpu/ivybridge/bd82x6x.c
> @@ -212,10 +212,29 @@ static int bd82x6x_get_gpio_base(struct udevice *dev, u32 *gbasep)
>         return 0;
>  }
>
> +static int bd82x6x_ioctl(struct udevice *dev, enum pch_req_t req, void *data,
> +                        int size)
> +{
> +       u32 rcba, val;
> +
> +       switch (req) {
> +       case PCH_REQ_HDA_CONFIG:
> +               dm_pci_read_config32(dev, PCH_RCBA, &rcba);
> +               val = readl(rcba + 0x2030);

nits: macro for 0x2030?

> +               if (!(val & (1U << 31)))

nits: use BIT(31) and another macro here?

> +                       return -ENOENT;
> +
> +               return val & 0xfe;
> +       default:
> +               return -ENOSYS;
> +       }
> +}
> +
>  static const struct pch_ops bd82x6x_pch_ops = {
>         .get_spi_base   = bd82x6x_pch_get_spi_base,
>         .set_spi_protect = bd82x6x_set_spi_protect,
>         .get_gpio_base  = bd82x6x_get_gpio_base,
> +       .ioctl          = bd82x6x_ioctl,
>  };
>

Other than above,
Reviewed-by: Bin Meng <bmeng.cn at gmail.com>

Regards,
Bin


More information about the U-Boot mailing list