Messages in this thread | | | Subject | Re: [PATCH RESEND 1/1] serial: 8250_pci: Fix real serial port count for F81504/508/512 | From | Peter Hung <> | Date | Tue, 15 Dec 2015 10:56:08 +0800 |
| |
Hello,
Andy Shevchenko 於 2015/12/13 上午 09:08 寫道: > On Tue, Dec 1, 2015 at 8:54 AM, Peter Hung <hpeter@gmail.com> wrote:
> First of all, maybe you can consider to split this part of the driver > to separate one? (Like we did for 8250_mid.c). It seems 8250_pci is > too bloated. But it's just an idea, maybe for future.
It's a good idea. Our PCI-to-UART device is a multifunctional (GPIO/UART) board, I need try to split it from 8250_pci.c to implements all functions.
>> >> +/* The device is multi-function with UART & GPIO */ >> +static u8 fintek_gpio_mapping[] = {2, 3, 8, 9, 10, 11}; > > Clearly you have bit combination here > Bit 1: 1 > Bit 3: 1 > > So, mask as 0x0a shall cover this IIAC.
IMO, It maybe wrong. If we checked only with 0x0a mask, the 0x06 & 0x07 will be passed.
I had try with k-map to reduce from 0~11 (12~15 for don't care). The final boolean value is a + c b(bar) for a is MSB.
>> - config_base = 0x40 + 0x08 * idx; >> + switch (pdev->device) { >> + case 0x1104: /* 4 ports */ > > Maybe you can introduce constants for IDs.
I'll make the magic numbers with #define marco.
Thanks for your advices. -- With Best Regards, Peter Hung
| |