On 11/21/2012 03:52 PM, Felipe Balbi wrote:
> On Thu, Nov 15, 2012 at 04:34:08PM +0200, Roger Quadros wrote:
>> OMAPs till date can have upto 3 ports. We need to initialize
> 
> s/upto/up to/
> 
>> the port mode in HOSTCONFIG register for all of them.
> 
> why *all* of them ? Isn't it enough to initialize only the ones we're
> going to use ? If not, why ?
> 
>> Signed-off-by: Roger Quadros <rog...@ti.com>
>> ---
>>  drivers/mfd/omap-usb-host.c |   31 ++++++++++++-------------------
>>  1 files changed, 12 insertions(+), 19 deletions(-)
>>
>> diff --git a/drivers/mfd/omap-usb-host.c b/drivers/mfd/omap-usb-host.c
>> index c20234b..0d39bd7 100644
>> --- a/drivers/mfd/omap-usb-host.c
>> +++ b/drivers/mfd/omap-usb-host.c
>> @@ -67,12 +67,9 @@
>>  #define OMAP4_UHH_SYSCONFIG_NOSTDBY                 (1 << 4)
>>  #define OMAP4_UHH_SYSCONFIG_SOFTRESET                       (1 << 0)
>>  
>> -#define OMAP4_P1_MODE_CLEAR                         (3 << 16)
>> +#define OMAP4_P1_MODE_MASK                          (3 << 16)
> 
> changing this name isn't part of $SUBJECT.
> 
>>  #define OMAP4_P1_MODE_TLL                           (1 << 16)
>>  #define OMAP4_P1_MODE_HSIC                          (3 << 16)
>> -#define OMAP4_P2_MODE_CLEAR                         (3 << 18)
>> -#define OMAP4_P2_MODE_TLL                           (1 << 18)
>> -#define OMAP4_P2_MODE_HSIC                          (3 << 18)
> 
> why do you delete these ? Also not part of $SUBJECT.
> 
>>  
>>  #define     OMAP_UHH_DEBUG_CSR                              (0x44)
>>  
>> @@ -343,6 +340,7 @@ static void omap_usbhs_init(struct device *dev)
>>      struct usbhs_omap_platform_data *pdata = omap->pdata;
>>      unsigned long                   flags;
>>      unsigned                        reg;
>> +    int i;
>>  
>>      dev_dbg(dev, "starting TI HSUSB Controller\n");
>>  
>> @@ -403,21 +401,16 @@ static void omap_usbhs_init(struct device *dev)
>>                              reg |= OMAP_UHH_HOSTCONFIG_ULPI_P3_BYPASS;
>>              }
>>      } else if (is_omap_usbhs_rev2(omap)) {
>> -            /* Clear port mode fields for PHY mode*/
>> -            reg &= ~OMAP4_P1_MODE_CLEAR;
>> -            reg &= ~OMAP4_P2_MODE_CLEAR;
>> -
>> -            if (is_ehci_tll_mode(pdata->port_mode[0]) ||
>> -                    (is_ohci_port(pdata->port_mode[0])))
>> -                    reg |= OMAP4_P1_MODE_TLL;
>> -            else if (is_ehci_hsic_mode(pdata->port_mode[0]))
>> -                    reg |= OMAP4_P1_MODE_HSIC;
>> -
>> -            if (is_ehci_tll_mode(pdata->port_mode[1]) ||
>> -                    (is_ohci_port(pdata->port_mode[1])))
>> -                    reg |= OMAP4_P2_MODE_TLL;
>> -            else if (is_ehci_hsic_mode(pdata->port_mode[1]))
>> -                    reg |= OMAP4_P2_MODE_HSIC;
>> +            for (i = 0; i < omap->nports; i++) {
>> +                    /* Clear port mode fields for PHY mode*/
>> +                    reg &= ~(OMAP4_P1_MODE_MASK << 2*i);
> 
> add spaces around '*' operator.
> 
>> +                    if (is_ehci_tll_mode(pdata->port_mode[i]) ||
>> +                            (is_ohci_port(pdata->port_mode[i])))
>> +                            reg |= OMAP4_P1_MODE_TLL << 2*i;
> 
> ditto
> 
>> +                    else if (is_ehci_hsic_mode(pdata->port_mode[i]))
>> +                            reg |= OMAP4_P1_MODE_HSIC << 2*i;
> 
> ditto
> 
> in fact, I would convert this construct into a switch which would look
> like:
> 
> reg &= ~(OMAP4_P1_MODE_MASK << i * 2);
> 
> switch (port_mode[i]) {
> case OMAP4_P1_MODE_TLL:
>       reg |= OMAP4_P1_MODE_TLL << i * 2;
>       break;
> case OMAP_P1_MODE_HSIC:
>       reg |= OMAP4_P1_MODE_HSIC << i * 2;
>       break;
> }
> 

Just realized that is_ohci_port() takes care of 10 cases, so I'll leave
it the way it was with if statement.

> Also, it looks like the whoel for loop with port mode settings could be
> re-factored to a separate function to aid readability.
> 

it seems that the purpose of omap_usbhs_init() is to initialize
HOSTCONFIG so I see no point in adding another function for it. I can
clean it up for better readability though.

--
cheers,
-roger
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to