mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: [PATCH v6 10/12] usb: dbc: add handshake between debug target and host
       [not found] <201601261754.HqYDuGWL%fengguang.wu@intel.com>
@ 2016-01-26 10:40 ` Julia Lawall
  2016-01-26 11:01   ` Lu Baolu
  0 siblings, 1 reply; 3+ messages in thread
From: Julia Lawall @ 2016-01-26 10:40 UTC (permalink / raw)
  To: Lu Baolu; +Cc: kbuild-all, Greg Kroah-Hartman, linux-usb, linux-kernel

Please check.  As far as I can see, the call to early_xdbc_read ends up at
xdbc_bulk_transfer, which return negative error codes on failure.

julia

On Tue, 26 Jan 2016, kbuild test robot wrote:

> CC: kbuild-all@01.org
> In-Reply-To: <1453781665-4714-11-git-send-email-baolu.lu@linux.intel.com>
> TO: Lu Baolu <baolu.lu@linux.intel.com>
> CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> CC: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Lu Baolu <baolu.lu@linux.intel.com>
>
> Hi Lu,
>
> [auto build test WARNING on usb/usb-testing]
> [also build test WARNING on v4.5-rc1 next-20160125]
> [if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
>
> url:    https://github.com/0day-ci/linux/commits/Lu-Baolu/usb-early-add-support-for-early-printk-through-USB3-debug-port/20160126-122049
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
> :::::: branch date: 5 hours ago
> :::::: commit date: 5 hours ago
>
> >> drivers/usb/early/xhci-dbc.c:917:6-10: WARNING: Unsigned expression compared with zero: size > 0
>
> git remote add linux-review https://github.com/0day-ci/linux
> git remote update linux-review
> git checkout cdae956781925bbc269faa7f40c931a2825be11a
> vim +917 drivers/usb/early/xhci-dbc.c
>
> 5319db53 Lu Baolu 2016-01-26  901
> 5319db53 Lu Baolu 2016-01-26  902  	/* hand over the owner of host from BIOS */
> 5319db53 Lu Baolu 2016-01-26  903  	xdbc_bios_handoff();
> 5319db53 Lu Baolu 2016-01-26  904
> 5319db53 Lu Baolu 2016-01-26  905  	ret = xdbc_setup();
> 5319db53 Lu Baolu 2016-01-26  906  	if (ret < 0) {
> 5319db53 Lu Baolu 2016-01-26  907  		pr_notice("failed to setup xHCI DbC connection\n");
> 5319db53 Lu Baolu 2016-01-26  908  		xdbcp->xhci_base = NULL;
> 5319db53 Lu Baolu 2016-01-26  909  		xdbcp->xdbc_reg = NULL;
> 12cd5775 Lu Baolu 2016-01-26  910  		xdbc_dump_debug_buffer();
> 5319db53 Lu Baolu 2016-01-26  911  		return ret;
> 5319db53 Lu Baolu 2016-01-26  912  	}
> 5319db53 Lu Baolu 2016-01-26  913
> cdae9567 Lu Baolu 2016-01-26  914  	while (retry > 0) {
> cdae9567 Lu Baolu 2016-01-26  915  		early_xdbc_write(NULL, ping, strlen(ping));
> cdae9567 Lu Baolu 2016-01-26  916  		size = early_xdbc_read(NULL, pong, 64);
> cdae9567 Lu Baolu 2016-01-26 @917  		if (size > 0) {
> cdae9567 Lu Baolu 2016-01-26  918  			xdbc_trace("%s: pong message: %s\n", __func__, pong);
> cdae9567 Lu Baolu 2016-01-26  919  			if (pong[0] == 'Y' || pong[0] == 'y')
> cdae9567 Lu Baolu 2016-01-26  920  				break;
> cdae9567 Lu Baolu 2016-01-26  921  		} else {
> cdae9567 Lu Baolu 2016-01-26  922  			xdbc_trace("%s: pong message error %d\n",
> cdae9567 Lu Baolu 2016-01-26  923  				__func__, size);
> cdae9567 Lu Baolu 2016-01-26  924  		}
> cdae9567 Lu Baolu 2016-01-26  925
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v6 10/12] usb: dbc: add handshake between debug target and host
  2016-01-26 10:40 ` [PATCH v6 10/12] usb: dbc: add handshake between debug target and host Julia Lawall
@ 2016-01-26 11:01   ` Lu Baolu
  0 siblings, 0 replies; 3+ messages in thread
From: Lu Baolu @ 2016-01-26 11:01 UTC (permalink / raw)
  To: Julia Lawall; +Cc: kbuild-all, Greg Kroah-Hartman, linux-usb, linux-kernel



On 01/26/2016 06:40 PM, Julia Lawall wrote:
> Please check.  As far as I can see, the call to early_xdbc_read ends up at
> xdbc_bulk_transfer, which return negative error codes on failure.

Good catch. Thank you. I will correct it.

>
> julia
>
> On Tue, 26 Jan 2016, kbuild test robot wrote:
>
>> CC: kbuild-all@01.org
>> In-Reply-To: <1453781665-4714-11-git-send-email-baolu.lu@linux.intel.com>
>> TO: Lu Baolu <baolu.lu@linux.intel.com>
>> CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>> CC: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Lu Baolu <baolu.lu@linux.intel.com>
>>
>> Hi Lu,
>>
>> [auto build test WARNING on usb/usb-testing]
>> [also build test WARNING on v4.5-rc1 next-20160125]
>> [if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
>>
>> url:    https://github.com/0day-ci/linux/commits/Lu-Baolu/usb-early-add-support-for-early-printk-through-USB3-debug-port/20160126-122049
>> base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing
>> :::::: branch date: 5 hours ago
>> :::::: commit date: 5 hours ago
>>
>>>> drivers/usb/early/xhci-dbc.c:917:6-10: WARNING: Unsigned expression compared with zero: size > 0
>> git remote add linux-review https://github.com/0day-ci/linux
>> git remote update linux-review
>> git checkout cdae956781925bbc269faa7f40c931a2825be11a
>> vim +917 drivers/usb/early/xhci-dbc.c
>>
>> 5319db53 Lu Baolu 2016-01-26  901
>> 5319db53 Lu Baolu 2016-01-26  902  	/* hand over the owner of host from BIOS */
>> 5319db53 Lu Baolu 2016-01-26  903  	xdbc_bios_handoff();
>> 5319db53 Lu Baolu 2016-01-26  904
>> 5319db53 Lu Baolu 2016-01-26  905  	ret = xdbc_setup();
>> 5319db53 Lu Baolu 2016-01-26  906  	if (ret < 0) {
>> 5319db53 Lu Baolu 2016-01-26  907  		pr_notice("failed to setup xHCI DbC connection\n");
>> 5319db53 Lu Baolu 2016-01-26  908  		xdbcp->xhci_base = NULL;
>> 5319db53 Lu Baolu 2016-01-26  909  		xdbcp->xdbc_reg = NULL;
>> 12cd5775 Lu Baolu 2016-01-26  910  		xdbc_dump_debug_buffer();
>> 5319db53 Lu Baolu 2016-01-26  911  		return ret;
>> 5319db53 Lu Baolu 2016-01-26  912  	}
>> 5319db53 Lu Baolu 2016-01-26  913
>> cdae9567 Lu Baolu 2016-01-26  914  	while (retry > 0) {
>> cdae9567 Lu Baolu 2016-01-26  915  		early_xdbc_write(NULL, ping, strlen(ping));
>> cdae9567 Lu Baolu 2016-01-26  916  		size = early_xdbc_read(NULL, pong, 64);
>> cdae9567 Lu Baolu 2016-01-26 @917  		if (size > 0) {
>> cdae9567 Lu Baolu 2016-01-26  918  			xdbc_trace("%s: pong message: %s\n", __func__, pong);
>> cdae9567 Lu Baolu 2016-01-26  919  			if (pong[0] == 'Y' || pong[0] == 'y')
>> cdae9567 Lu Baolu 2016-01-26  920  				break;
>> cdae9567 Lu Baolu 2016-01-26  921  		} else {
>> cdae9567 Lu Baolu 2016-01-26  922  			xdbc_trace("%s: pong message error %d\n",
>> cdae9567 Lu Baolu 2016-01-26  923  				__func__, size);
>> cdae9567 Lu Baolu 2016-01-26  924  		}
>> cdae9567 Lu Baolu 2016-01-26  925
>>
>> ---
>> 0-DAY kernel test infrastructure                Open Source Technology Center
>> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
>>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH v6 10/12] usb: dbc: add handshake between debug target and host
  2016-01-26  4:14 [PATCH v6 00/12] usb: early: add support for early printk through USB3 debug port Lu Baolu
@ 2016-01-26  4:14 ` Lu Baolu
  0 siblings, 0 replies; 3+ messages in thread
From: Lu Baolu @ 2016-01-26  4:14 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: linux-usb, linux-kernel, Lu Baolu

After DbC setup, debug target needs to wait until tty driver and
application (e.g. mincom) on debug taget start.  Otherwise, out
messages might be ignored.

This patch adds a ping/pong mechanism between debug target and
host. Debug target will be waiting there until user presses 'Y'
or 'y' in the tty application.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
---
 drivers/usb/early/xhci-dbc.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/drivers/usb/early/xhci-dbc.c b/drivers/usb/early/xhci-dbc.c
index 6c24ba0..37c5c87 100644
--- a/drivers/usb/early/xhci-dbc.c
+++ b/drivers/usb/early/xhci-dbc.c
@@ -32,6 +32,9 @@
 static struct xdbc_state xdbc_stat;
 static struct xdbc_state *xdbcp = &xdbc_stat;
 
+static int early_xdbc_read(struct console *con, char *str, unsigned n);
+static void early_xdbc_write(struct console *con, const char *str, u32 n);
+
 #ifdef DBC_DEBUG
 #define	XDBC_DEBUG_BUF_SIZE	(PAGE_SIZE * 32)
 #define	MSG_MAX_LINE		128
@@ -860,8 +863,12 @@ int __init early_xdbc_init(char *s)
 {
 	u32 bus = 0, dev = 0, func = 0;
 	unsigned long dbgp_num = 0;
+	char *ping = "Press Y to continue...\n";
+	char pong[64];
+	size_t size;
 	u32 offset;
 	int ret;
+	int retry = 20;
 
 	if (!early_pci_allowed())
 		return -EPERM;
@@ -904,6 +911,21 @@ int __init early_xdbc_init(char *s)
 		return ret;
 	}
 
+	while (retry > 0) {
+		early_xdbc_write(NULL, ping, strlen(ping));
+		size = early_xdbc_read(NULL, pong, 64);
+		if (size > 0) {
+			xdbc_trace("%s: pong message: %s\n", __func__, pong);
+			if (pong[0] == 'Y' || pong[0] == 'y')
+				break;
+		} else {
+			xdbc_trace("%s: pong message error %d\n",
+				__func__, size);
+		}
+
+		retry--;
+	}
+
 	return 0;
 }
 
@@ -1325,6 +1347,11 @@ int xdbc_bulk_write(const char *bytes, int size)
  * Start a bulk-in or bulk-out transfer, wait until transfer completion
  * or error. Return the count of actually transferred bytes or error.
  */
+static int early_xdbc_read(struct console *con, char *str, unsigned n)
+{
+	return xdbc_bulk_read(str, n, 0);
+}
+
 static void early_xdbc_write(struct console *con, const char *str, u32 n)
 {
 	int chunk, ret;
-- 
2.1.4

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-01-26 11:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <201601261754.HqYDuGWL%fengguang.wu@intel.com>
2016-01-26 10:40 ` [PATCH v6 10/12] usb: dbc: add handshake between debug target and host Julia Lawall
2016-01-26 11:01   ` Lu Baolu
2016-01-26  4:14 [PATCH v6 00/12] usb: early: add support for early printk through USB3 debug port Lu Baolu
2016-01-26  4:14 ` [PATCH v6 10/12] usb: dbc: add handshake between debug target and host Lu Baolu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome