Re: [PATCH v2] serial/8250: Add support for Exar's XR17V35x family of multi-port PCIe UARTs

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

 



On Thu, Nov 15, 2012 at 2:46 PM, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, 15 Nov 2012 10:14:59 -0600
> Matt Schulte <matts@xxxxxxxxxxxxxxxxxxxx> wrote:
>
>> On Wed, Nov 14, 2012 at 5:05 PM, Matt Schulte
>> <matts@xxxxxxxxxxxxxxxxxxxx> wrote:
>> > On Wed, Nov 14, 2012 at 5:00 PM, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
>> >>> +     /* Fixme: needs tidying up */
>> >>> +     check = serial_in(up, UART_EXAR_DVID);
>> >>> +     if ((check == 0x82) || (check == 0x84) || (check == 0x88))
>> >>> +             p->handle_irq = exar_handle_irq;
>> >>
>> >> Can't you check the port type here rather than re-probing stuff ?
>> >>
>> >>
>> >> Otherwise looks good
>> >
>> > I tried that but in my tests port.type == 0 at this point.
>> >
>>
>> _Should_ the port.type have the correct value inside of set_io_from_upio?
>
> Yes - except possibly if autoconfig changes the port type.
>
> It may in fact be sufficient to set it in serial8250_config_port after
> autoconfig has run. There are far too many different init paths in this
> code 8(

Turns out you were right, it seems to work out if I put it in here:

@@ -2684,10 +2679,14 @@ static void serial8250_config_port(struct
uart_port *port, int flags)

 	if (port->type != PORT_RSA && probeflags & PROBE_RSA)
 		serial8250_release_rsa_resource(up);
 	if (port->type == PORT_UNKNOWN)
 		serial8250_release_std_resource(up);
+
+	/* Fixme: might not be the best place for this */
+	if (port->type == PORT_XR17V35X)
+		port->handle_irq = exar_handle_irq;
 }

This look better?

Matt
--
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