
Hi Simon,
On Tue, Jan 22, 2019 at 9:14 AM Simon Glass sjg@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@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@gmail.com
Regards, Bin