Re: [PATCH] serial: 8250: Integrate Fintek into pnp

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Peter


On Wed, Jan 27, 2016 at 6:17 PM, Peter Hurley <peter@xxxxxxxxxxxxxxxxxx> wrote:

> The ACPI device definition block is not right.
> I mean, the whole point of ACPI is to _define_ the h/w so the OS
> doesn't h/w probe.
>
> Is this in your firmware that you can update?
>

Unfortunately, it is part of the BIOS blob that I am not in control of.

>
>> I cannot find anything that makes it differentiable form a standard
>> 16550A, but ACPI is definately not my mother tonge :)
>>
>>                     Device (UAR1)
>>                     {
>>                         Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */)  // _HID: Hardware ID
>
> Instead of using an _HID of PNP0501, this device definition should be
> using a Fintek-specific _HID (Fintek has an assigned PNP prefix of "FIT").
>
> Then it could *also* have a _CID of PNP0501, which allows the OS to
> "fallback" to generic uart support in the absence of a "FITxxxx" driver.

I see, but even if I was in control of the ACPI table, which FITxxx
string should I use? The documentation from the chip does not mention
any.

If I chose one myself there is no warrantee that the rest of the world
would follow my decision, resulting in a driver that can be used
exclusively on my board :S.




The approach from this patch is similar to the parport_pc

./drivers/parport/parport_pc.c ->

static void __init parport_pc_find_ports(int autoirq, int autodma)
{
int count = 0, err;

#ifdef CONFIG_PARPORT_PC_SUPERIO
detect_and_report_it87();
detect_and_report_winbond();
detect_and_report_smsc();
#endif


static void detect_and_report_winbond(void)
{
if (verbose_probing)
printk(KERN_DEBUG "Winbond Super-IO detection, now testing ports
3F0,370,250,4E,2E ...\n");
winbond_check(0x3f0, 0x87);
winbond_check(0x370, 0x87);
winbond_check(0x2e , 0x87);
winbond_check(0x4e , 0x87);
winbond_check(0x3f0, 0x86);
winbond_check2(0x250, 0x88);
winbond_check2(0x250, 0x89);
}

Here they probe all those io  ports, including 0x4e and 0x2e like in my chip.


If I have to guess I would say that all the fintek serial ports on the
field are declared only as PNP0501, not only my board :S




Thanks!


-- 
Ricardo Ribalda
--
To unsubscribe from this list: send the line "unsubscribe linux-serial" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux