Re: [PATCH v2] x86: i8237: Register based on FADT legacy boot flag

From: Thomas Gleixner
Date: Wed Mar 14 2018 - 11:08:04 EST


On Wed, 14 Mar 2018, Rajneesh Bhardwaj wrote:
> static int __init i8237A_init_ops(void)
> {
> + /*
> + * From SKL PCH onwards, the port 0x61 bit 4 would stop toggle and

s/would stop toggle/stops toggling/

You are describing a fact, right?

> + * the legacy DMA device is removed in which the I/O ports (81h-83h,
> + * 87h, 89h-8Bh, 8Fh) related to it are removed as well. All
> + * removed ports must return 0xff for a inb() request.
> + *
> + * Note: DMA_PAGE_2 (port 0x81) should not be checked for detecting
> + * the presence of DMA device since it may be used by BIOS to decode
> + * LPC traffic for POST codes. Original LPC only decodes one byte of
> + * port 0x80 but some BIOS may choose to enhance PCH LPC port 0x8x
> + * decoding.
> + */
> + if (dma_inb(DMA_PAGE_0) == 0xFF)
> + return -ENODEV;
> +
> + /*
> + * It should be OK to not load this driver as newer SoC may not

Should? Is this based on facts or hope?

> + * support 8237 DMA or bus mastering from LPC. Platform firmware
> + * must announce the support for such legacy devices via
> + * ACPI_FADT_LEGACY_DEVICES field in FADT table.
> + */
> + if (!x86_platform.legacy.devices.pnpbios && dmi_get_bios_year() >= 2017)

Please use arch_pnpbios_disabled() and explain why you need that year
check. If there is no pnpbios then why is the year interesting and why
would anyone trust something which comes from BIOS?

Thanks,

tglx