Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 38211
b: refs/heads/master
c: f3d1068
h: refs/heads/master
i:
  38209: 0664c35
  38207: 31a7bb4
v: v3
  • Loading branch information
Russell King authored and Russell King committed Oct 1, 2006
1 parent be64b33 commit dffe712
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 20f130495c07cd01fb423c3dec7f045038118dec
refs/heads/master: f3d106881b06a423455f95916e666acebe6503f2
20 changes: 20 additions & 0 deletions trunk/drivers/serial/serial_cs.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ struct serial_quirk {
unsigned int prodid;
int multi; /* 1 = multifunction, > 1 = # ports */
void (*config)(struct pcmcia_device *);
void (*setup)(struct pcmcia_device *, struct uart_port *);
void (*wakeup)(struct pcmcia_device *);
int (*post)(struct pcmcia_device *);
};
Expand All @@ -108,6 +109,16 @@ struct serial_cfg_mem {
u_char buf[256];
};

/*
* vers_1 5.0, "Brain Boxes", "2-Port RS232 card", "r6"
* manfid 0x0160, 0x0104
* This card appears to have a 14.7456MHz clock.
*/
static void quirk_setup_brainboxes_0104(struct pcmcia_device *link, struct uart_port *port)
{
port->uartclk = 14745600;
}

static int quirk_post_ibm(struct pcmcia_device *link)
{
conf_reg_t reg = { 0, CS_READ, 0x800, 0 };
Expand Down Expand Up @@ -192,6 +203,11 @@ static void quirk_config_socket(struct pcmcia_device *link)

static const struct serial_quirk quirks[] = {
{
.manfid = 0x0160,
.prodid = 0x0104,
.multi = -1,
.setup = quirk_setup_brainboxes_0104,
}, {
.manfid = MANFID_IBM,
.prodid = ~0,
.multi = -1,
Expand Down Expand Up @@ -386,6 +402,10 @@ static int setup_serial(struct pcmcia_device *handle, struct serial_info * info,
port.dev = &handle_to_dev(handle);
if (buggy_uart)
port.flags |= UPF_BUGGY_UART;

if (info->quirk && info->quirk->setup)
info->quirk->setup(handle, &port);

line = serial8250_register_port(&port);
if (line < 0) {
printk(KERN_NOTICE "serial_cs: serial8250_register_port() at "
Expand Down

0 comments on commit dffe712

Please sign in to comment.