[RESEND PATCH] ARM :OMAP2+: UART: Remove some of uart default pads

Tony Lindgren tony at atomide.com
Mon Apr 9 16:36:51 EDT 2012


* Russ Dill <russ.dill at gmail.com> [120409 09:59]:
> > From: "Govindraj.R" <govindraj.raja at ti.com>
> > Date: Mon, 9 Apr 2012 15:16:52 +0530
> > Subject: [PATCH] ARM: OMAP2+: UART: Fix usage of default uart pads.

> > -static int __init
> > +int __init
> >  omap_mux_get_by_name(const char *muxname,
> >                        struct omap_mux_partition **found_partition,
> >                        struct omap_mux **found_mux)

This can now be one one line:

int __init omap_mux_get_by_name(const char *muxname,
...


> > +               u16 tx_mode, rx_mode;
> > +
> > +               tx_mode = omap_mux_read(tx_partition, tx_mux->reg_offset);
> > +               rx_mode = omap_mux_read(rx_partition, rx_mux->reg_offset);
> > +
> > +               if (!(rx_mode & 0x07) && !(tx_mode & 0x07)) {
> > +                       default_omap_uart_pads[0].name = rx_pad_name;
> > +                       default_omap_uart_pads[0].flags  =
> > +                               OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP;
> > +                       default_omap_uart_pads[0].enable = OMAP_PIN_INPUT |
> > +                                                               OMAP_MUX_MODE0;
> > +                       default_omap_uart_pads[0].idle = OMAP_PIN_INPUT |
> > +                                                               OMAP_MUX_MODE0;
> > +
> > +                       default_omap_uart_pads[1].name = tx_pad_name;
> > +                       default_omap_uart_pads[1].enable = OMAP_PIN_OUTPUT |
> > +                                                               OMAP_MUX_MODE0;
> > +                       bdata->pads = default_omap_uart_pads;
> 
> You are assigning this variable to a structure on the stack.
> 
> > +                       bdata->pads_cnt = ARRAY_SIZE(default_omap_uart_pads);

Also, maybe make that into a separate function with comments added that
we check that the default pins are muxed to uart rx and tx mode to start
with. Otherwise it's a bit hard to figure out what's going on here.

Then please split it into two patches: First one removes all the unsafe
muxing, then the second one enables wake-up events for the ports already
in uart rx/tx mode.

Regards,

Tony



More information about the linux-arm-kernel mailing list