On Wed, Jan 19, 2011 at 02:08:29PM -0800, Stepan Moskovchenko wrote:I am not very familiar with the TTY subsystem, so I am not really sure what to do with the flag when using tty_insert_flip_string.But still required to support proper error signalling.An artifact of an old driver. Removed.+ /* Mask conditions we're ignorning. */It doesn't look like the flag is used anywhere after it has been
+ sr&= port->read_status_mask;
+ if (sr& UART_SR_RX_BREAK)
+ flag = TTY_BREAK;
+ else if (sr& UART_SR_PAR_FRAME_ERR)
+ flag = TTY_FRAME;
assigned.
Very well. If I know that clock will not be needed, I will assign ERR_PTR(-ENOENT) instead of null to it and then check for IS_ERR.Don't invent new ways to do things. As far as drivers are concerned,I don't think that will have the correct behavior. The clock is alreadystatic void msm_init_clock(struct uart_port *port)NULL is a valid clk, so this should really be something like
{
struct msm_port *msm_port = UART_TO_MSM(port);
clk_enable(msm_port->clk);
+ if (msm_port->pclk)
+ clk_enable(msm_port->pclk);
if (!IS_ERR(mem_port->pclk)
clk_enable(...);
checked with IS_ERR in the probe function, so we could not get here if
the clk_get returned an error. Depending on the unit, there may or may
not be a pclk associated with it. Thus, I use NULL to indicate that a
pclk does not exist and should not be turned on. Regardless, at least in
the MSM clock driver (and in drivers/clkdev) NULL is not a valid clock,
I think this should be fine as is.
struct clk pointers are cookies. The only thing they can interpret from
them is whether they're IS_ERR() and then what the error is. They must
assume every other value is valid.
So, if you want "clock not present" assign ERR_PTR(-ENOENT) to it or
just assign the return value from the failed clk_get().