Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1355044 > unrolled thread

[PATCH 1/3] dm9601: enable EP3 interrupt

Started byJoseph CHANG <josright123@gmail.com>
First post2016-03-10 12:30 +0100
Last post2016-03-11 12:00 +0100
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 1/3] dm9601: enable EP3 interrupt Joseph CHANG <josright123@gmail.com> - 2016-03-10 12:30 +0100
    Re: [PATCH 1/3] dm9601: enable EP3 interrupt Peter Korsgaard <peter@korsgaard.com> - 2016-03-10 23:00 +0100
      RE: [PATCH 1/3] dm9601: enable EP3 interrupt "Joseph Chang" <joseph_chang@davicom.com.tw> - 2016-03-11 12:00 +0100

#1355044 — [PATCH 1/3] dm9601: enable EP3 interrupt

FromJoseph CHANG <josright123@gmail.com>
Date2016-03-10 12:30 +0100
Subject[PATCH 1/3] dm9601: enable EP3 interrupt
Message-ID<rb6X0-6lf-19@gated-at.bofh.it>
Enable chip's EP3 interrupt to get the link-up notify soon
immediately.

Signed-off-by: Joseph CHANG <josright123@gmail.com>
---
 drivers/net/usb/dm9601.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/usb/dm9601.c b/drivers/net/usb/dm9601.c
index 0b4bdd3..520de4f 100644
--- a/drivers/net/usb/dm9601.c
+++ b/drivers/net/usb/dm9601.c
@@ -46,6 +46,9 @@
 #define DM_GPR_DATA	0x1f
 #define DM_CHIP_ID	0x2c
 #define DM_MODE_CTRL	0x91	/* only on dm9620 */
+#define	DM_USB_CTRL	0xf4
+
+#define	USB_CTRL_EP3ACK	0x20
 
 /* chip id values */
 #define ID_DM9601	0
@@ -414,6 +417,9 @@ static int dm9601_bind(struct usbnet *dev, struct usb_interface *intf)
 			goto out;
 		}
 		dm_write_reg(dev, DM_MODE_CTRL, mode & 0x7f);
+
+		/* Always return 8-bytes data to host per interrupt-interval */
+		dm_write_reg(dev, DM_USB_CTRL, USB_CTRL_EP3ACK);
 	}
 
 	/* power up phy */
-- 
2.1.4

[toc] | [next] | [standalone]


#1355422

FromPeter Korsgaard <peter@korsgaard.com>
Date2016-03-10 23:00 +0100
Message-ID<rbgMG-4AF-5@gated-at.bofh.it>
In reply to#1355044
>>>>> "Joseph" == Joseph CHANG <josright123@gmail.com> writes:

 > Enable chip's EP3 interrupt to get the link-up notify soon
 > immediately.

Sorry, what do you mean about 'soon immediately'?

 > +
 > +		/* Always return 8-bytes data to host per interrupt-interval */
 > +		dm_write_reg(dev, DM_USB_CTRL, USB_CTRL_EP3ACK);

Why would we want to do that instead of the current setup that afaik
only returns data when the link status changes?

-- 
Bye, Peter Korsgaard

[toc] | [prev] | [next] | [standalone]


#1355810

From"Joseph Chang" <joseph_chang@davicom.com.tw>
Date2016-03-11 12:00 +0100
Message-ID<rbsXw-4QJ-21@gated-at.bofh.it>
In reply to#1355422
After check more.
I think this is also to fix the bug to dm962x chip too. 

If keep no patch below:
 > +
 > +		/* Always return 8-bytes data to host per interrupt-interval */
 > +		dm_write_reg(dev, DM_USB_CTRL, USB_CTRL_EP3ACK);

 When attach dm962x to linux USB host, 
 The reg 'DM_USB_CTRL' get default value 0x00   
 This means the USB interrupt routine below,
   .status		= dm9601_status,
 will be called by events (they are: RX data found, TX complete, link change)
 Unfortunately, the link change CAN not work to trigger this event call.

 So I do
 > +		dm_write_reg(dev, DM_USB_CTRL, USB_CTRL_EP3ACK);

 That 
   .status		= dm9601_status,
  will be called by time interval.

 * ".status		= dm9601_status" is the way to tell the kernel new link
state,
  I can find it is bt 'usbnet_link_change( xx)' in ".status		=
dm9601_status".

Information:  
--------------------------------------------------------------------------------
--------
In my [PATCH 2/3], 

+#define	DM_EP3I_VAL	0x07
+	/* Render eeprom if need, WORD12 render, need 0x0007 */
+	dm_eeprom_render(dev, 12, DM_EP3I_VAL, 0xffff); }

It can determine the above time interval.

If user define
+#define	DM_EP3I_VAL	0x0f

The time interval will be around 1 second.
Note: Must reset the device once to get effect. 
--------------------------------------------------------------------------------
--------

Best Regards,
Joseph CHANG
System Application Engineering Division
Davicom Semiconductor, Inc.
No. 6 Li-Hsin 6th Rd., Science-Based Park,
Hsin-Chu, Taiwan.
Tel: 886-3-5798797 Ex 8534
Fax: 886-3-5646929
Web: http://www.davicom.com.tw


-----Original Message-----
From: Peter Korsgaard [mailto:jacmet@gmail.com] On Behalf Of Peter Korsgaard
Sent: Friday, March 11, 2016 5:55 AM
To: Joseph CHANG
Cc: Peter Korsgaard; netdev@vger.kernel.org; linux-usb@vger.kernel.org;
linux-kernel@vger.kernel.org; Joseph Chang
Subject: Re: [PATCH 1/3] dm9601: enable EP3 interrupt

>>>>> "Joseph" == Joseph CHANG <josright123@gmail.com> writes:

 > Enable chip's EP3 interrupt to get the link-up notify soon
 > immediately.

Sorry, what do you mean about 'soon immediately'?

 > +
 > +		/* Always return 8-bytes data to host per interrupt-interval */
 > +		dm_write_reg(dev, DM_USB_CTRL, USB_CTRL_EP3ACK);

Why would we want to do that instead of the current setup that afaik
only returns data when the link status changes?

-- 
Bye, Peter Korsgaard

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web