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