[PATCH 2/2] serial: msm: Add support for UARTDM cores

Stepan Moskovchenko stepanm at codeaurora.org
Wed Jan 19 19:11:30 EST 2011

On 1/19/2011 2:24 PM, Russell King - ARM Linux wrote:
> On Wed, Jan 19, 2011 at 02:08:29PM -0800, Stepan Moskovchenko wrote:
>>>> +		/* Mask conditions we're ignorning. */
>>>> +		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;
>>> It doesn't look like the flag is used anywhere after it has been
>>> assigned.
>> An artifact of an old driver. Removed.
> But still required to support proper error signalling.
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.
Should I be using tty_insert_flip_string_fixed_flag here?

>>>>    static void msm_init_clock(struct uart_port *port)
>>>>    {
>>>>    	struct msm_port *msm_port = UART_TO_MSM(port);
>>>>    	clk_enable(msm_port->clk);
>>>> +	if (msm_port->pclk)
>>>> +		clk_enable(msm_port->pclk);
>>> NULL is a valid clk, so this should really be something like
>>> 	if (!IS_ERR(mem_port->pclk)
>>> 		clk_enable(...);
>> I don't think that will have the correct behavior. The clock is already
>> 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.
> Don't invent new ways to do things.  As far as drivers are concerned,
> 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().
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.


More information about the linux-arm-kernel mailing list