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/