diff mbox

[U-Boot,1/2] usb: r8a66597: Fix initialization hub that using, R8A66597_MAX_ROOT_HUB

Message ID 534F8750.70201@renesas.com
State Superseded
Delegated to: Marek Vasut
Headers show

Commit Message

yasuhisa umano April 17, 2014, 7:48 a.m. UTC
This driver is processed as two USB hub despite one.
The number of root hub is defined in R8A66597_MAX_ROOT_HUB.
This fixes that register is accessed by using the definition
of R8A66597_MAX_ROOT_HUB.

Signed-off-by: Yasuhisa Umano <yasuhisa.umano.zc@renesas.com>
---
 drivers/usb/host/r8a66597-hcd.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Marek Vasut April 17, 2014, 10:47 a.m. UTC | #1
On Thursday, April 17, 2014 at 09:48:32 AM, yasuhisa umano wrote:
> This driver is processed as two USB hub despite one.
> The number of root hub is defined in R8A66597_MAX_ROOT_HUB.
> This fixes that register is accessed by using the definition
> of R8A66597_MAX_ROOT_HUB.
> 
> Signed-off-by: Yasuhisa Umano <yasuhisa.umano.zc@renesas.com>

Is there any reason why those two patches were sent twice please ? They seem the 
same in both cases.

Otherwise, I'm fine with those patches.

Best regards,
Marek Vasut
Marek Vasut April 17, 2014, 2:07 p.m. UTC | #2
On Thursday, April 17, 2014 at 09:48:32 AM, yasuhisa umano wrote:
> This driver is processed as two USB hub despite one.
> The number of root hub is defined in R8A66597_MAX_ROOT_HUB.
> This fixes that register is accessed by using the definition
> of R8A66597_MAX_ROOT_HUB.
> 
> Signed-off-by: Yasuhisa Umano <yasuhisa.umano.zc@renesas.com>
> ---
>  drivers/usb/host/r8a66597-hcd.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/host/r8a66597-hcd.c
> b/drivers/usb/host/r8a66597-hcd.c index dfe5423..c58d2a9 100644
> --- a/drivers/usb/host/r8a66597-hcd.c
> +++ b/drivers/usb/host/r8a66597-hcd.c
> @@ -164,8 +164,8 @@ static int enable_controller(struct r8a66597 *r8a66597)
> 
>  	r8a66597_bset(r8a66597, INTL, SOFCFG);
>  	r8a66597_write(r8a66597, 0, INTENB0);
> -	r8a66597_write(r8a66597, 0, INTENB1);
> -	r8a66597_write(r8a66597, 0, INTENB2);
> +	for (port = 0; port < R8A66597_MAX_ROOT_HUB; port++)
> +		r8a66597_write(r8a66597, 0, get_intenb_reg(port));

Hmm, looking at get_intenb_reg(), this is slightly dangerous, but I will trust 
you you know what you are doing . I am a bit worried someone might set 
R8A66597_MAX_ROOT_HUB to value >2 and will wonder why doesn't it work.

Anyway, I will apply this and if you feel my rant is valid, submit subsequent 
patch.

Best regards,
Marek Vasut
yasuhisa umano April 18, 2014, 2:25 a.m. UTC | #3
Hi

Sorry.
I failed to send patchs to ML by setting of MUA.

Best regards,
Yasuhisa

(2014/04/17 19:47), Marek Vasut wrote:
> On Thursday, April 17, 2014 at 09:48:32 AM, yasuhisa umano wrote:
>> This driver is processed as two USB hub despite one.
>> The number of root hub is defined in R8A66597_MAX_ROOT_HUB.
>> This fixes that register is accessed by using the definition
>> of R8A66597_MAX_ROOT_HUB.
>>
>> Signed-off-by: Yasuhisa Umano <yasuhisa.umano.zc@renesas.com>
>
> Is there any reason why those two patches were sent twice please ? They seem the
> same in both cases.
>
> Otherwise, I'm fine with those patches.
>
> Best regards,
> Marek Vasut
>
yasuhisa umano April 18, 2014, 2:25 a.m. UTC | #4
Hi,
Thanks for your comment.

(2014/04/17 23:07), Marek Vasut wrote:
> On Thursday, April 17, 2014 at 09:48:32 AM, yasuhisa umano wrote:
>> This driver is processed as two USB hub despite one.
>> The number of root hub is defined in R8A66597_MAX_ROOT_HUB.
>> This fixes that register is accessed by using the definition
>> of R8A66597_MAX_ROOT_HUB.
>>
>> Signed-off-by: Yasuhisa Umano <yasuhisa.umano.zc@renesas.com>
>> ---
>>   drivers/usb/host/r8a66597-hcd.c |    4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/usb/host/r8a66597-hcd.c
>> b/drivers/usb/host/r8a66597-hcd.c index dfe5423..c58d2a9 100644
>> --- a/drivers/usb/host/r8a66597-hcd.c
>> +++ b/drivers/usb/host/r8a66597-hcd.c
>> @@ -164,8 +164,8 @@ static int enable_controller(struct r8a66597 *r8a66597)
>>
>>   	r8a66597_bset(r8a66597, INTL, SOFCFG);
>>   	r8a66597_write(r8a66597, 0, INTENB0);
>> -	r8a66597_write(r8a66597, 0, INTENB1);
>> -	r8a66597_write(r8a66597, 0, INTENB2);
>> +	for (port = 0; port < R8A66597_MAX_ROOT_HUB; port++)
>> +		r8a66597_write(r8a66597, 0, get_intenb_reg(port));
>
> Hmm, looking at get_intenb_reg(), this is slightly dangerous, but I will trust
> you you know what you are doing . I am a bit worried someone might set
> R8A66597_MAX_ROOT_HUB to value >2 and will wonder why doesn't it work.

I understood your point.
Certainly, current device drivers support only the initialization of 1 or 2 
interrupt for hub.
If this driver has a hub of more future, I will send the patch.

>
> Anyway, I will apply this and if you feel my rant is valid, submit subsequent
> patch.

Thank you.
>
> Best regards,
> Marek Vasut
>

Best regards,
Yasuhisa
Marek Vasut April 18, 2014, 1:57 p.m. UTC | #5
On Friday, April 18, 2014 at 04:25:41 AM, Yasuhisa Umano wrote:
> Hi,
> Thanks for your comment.
> 
> (2014/04/17 23:07), Marek Vasut wrote:
> > On Thursday, April 17, 2014 at 09:48:32 AM, yasuhisa umano wrote:
> >> This driver is processed as two USB hub despite one.
> >> The number of root hub is defined in R8A66597_MAX_ROOT_HUB.
> >> This fixes that register is accessed by using the definition
> >> of R8A66597_MAX_ROOT_HUB.
> >> 
> >> Signed-off-by: Yasuhisa Umano <yasuhisa.umano.zc@renesas.com>
> >> ---
> >> 
> >>   drivers/usb/host/r8a66597-hcd.c |    4 ++--
> >>   1 file changed, 2 insertions(+), 2 deletions(-)
> >> 
> >> diff --git a/drivers/usb/host/r8a66597-hcd.c
> >> b/drivers/usb/host/r8a66597-hcd.c index dfe5423..c58d2a9 100644
> >> --- a/drivers/usb/host/r8a66597-hcd.c
> >> +++ b/drivers/usb/host/r8a66597-hcd.c
> >> @@ -164,8 +164,8 @@ static int enable_controller(struct r8a66597
> >> *r8a66597)
> >> 
> >>   	r8a66597_bset(r8a66597, INTL, SOFCFG);
> >>   	r8a66597_write(r8a66597, 0, INTENB0);
> >> 
> >> -	r8a66597_write(r8a66597, 0, INTENB1);
> >> -	r8a66597_write(r8a66597, 0, INTENB2);
> >> +	for (port = 0; port < R8A66597_MAX_ROOT_HUB; port++)
> >> +		r8a66597_write(r8a66597, 0, get_intenb_reg(port));
> > 
> > Hmm, looking at get_intenb_reg(), this is slightly dangerous, but I will
> > trust you you know what you are doing . I am a bit worried someone might
> > set R8A66597_MAX_ROOT_HUB to value >2 and will wonder why doesn't it
> > work.
> 
> I understood your point.
> Certainly, current device drivers support only the initialization of 1 or 2
> interrupt for hub.
> If this driver has a hub of more future, I will send the patch.

Thanks

Best regards,
Marek Vasut
diff mbox

Patch

diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c
index dfe5423..c58d2a9 100644
--- a/drivers/usb/host/r8a66597-hcd.c
+++ b/drivers/usb/host/r8a66597-hcd.c
@@ -164,8 +164,8 @@  static int enable_controller(struct r8a66597 *r8a66597)

 	r8a66597_bset(r8a66597, INTL, SOFCFG);
 	r8a66597_write(r8a66597, 0, INTENB0);
-	r8a66597_write(r8a66597, 0, INTENB1);
-	r8a66597_write(r8a66597, 0, INTENB2);
+	for (port = 0; port < R8A66597_MAX_ROOT_HUB; port++)
+		r8a66597_write(r8a66597, 0, get_intenb_reg(port));

 	r8a66597_bset(r8a66597, CONFIG_R8A66597_ENDIAN & BIGEND, CFIFOSEL);
 	r8a66597_bset(r8a66597, CONFIG_R8A66597_ENDIAN & BIGEND, D0FIFOSEL);