Re: 8250 serial driver and PM

From: Vitaly Wool
Date: Wed Aug 31 2005 - 06:00:28 EST


Hi Grigory,
it's unclear from your letter where you take pnx4008_uart_pm from. Can you please elaborate?

What I would think of if I were you is adding a field 'pm' to struct plat_serial8250_port which is filled in in the architecture-specific part and setting up->pm accrodingly.
I'll send a patch that may be of a help for you shortly.

Best regards,
Vitaly


Grigory Tolstolytkin wrote:

Hi,

I'm working on power management support for a particular ARM based board and I've got a question:
I want to add a board specific power management for standard uart driver (serial8250). For this purpose there is a special hook defined in uart_8250_port structure (drivers/serial/8250.c):
...
> /*
> * We provide a per-port pm hook.
> */
> void (*pm)(struct uart_port *port,
> unsigned int state, unsigned int old);
...

When driver goes into suspend/resume, serial8250_pm() function is called and it checks for the hook and executes it if it exists. But I didn't find a proper way to assign my own function to this hook.
How this hook is supposed to be changed? Is there a way to correctly initialize it and how it should be done?
Whether it's a good way to initialize it, for example, in serial8250_isa_init_ports():
...
up->mcr_mask = ~ALPHA_KLUDGE_MCR;
up->mcr_force = ALPHA_KLUDGE_MCR;

up->port.ops = &serial8250_pops;

#ifdef CONFIG_ARCH_XXX
up->pm = pnx4008_uart_pm;
#endif
}
...

Or it's a bad manner?

Any help appreciated,

Thanks,
Grigory.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/