From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755418Ab2IFIVp (ORCPT ); Thu, 6 Sep 2012 04:21:45 -0400 Received: from cantor2.suse.de ([195.135.220.15]:42905 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752743Ab2IFIVl (ORCPT ); Thu, 6 Sep 2012 04:21:41 -0400 Date: Thu, 06 Sep 2012 10:21:39 +0200 Message-ID: From: Takashi Iwai To: Markus Trippelsdorf Cc: Daniel Mack , Linus Torvalds , linux-kernel@vger.kernel.org, alsa-devel@alsa-project.org, Pierre-Louis Bossart Subject: Re: snd-usb: "delay: estimated 0, actual 352" In-Reply-To: References: <20120906060220.GA252@x4> <504843BA.2040808@gmail.com> <20120906065340.GA257@x4> <50484BEB.4020103@gmail.com> <20120906071757.GB257@x4> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.1 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org At Thu, 06 Sep 2012 09:35:26 +0200, Takashi Iwai wrote: > > At Thu, 6 Sep 2012 09:17:57 +0200, > Markus Trippelsdorf wrote: > > > > On 2012.09.06 at 09:08 +0200, Daniel Mack wrote: > > > On 06.09.2012 08:53, Markus Trippelsdorf wrote: > > > > On 2012.09.06 at 08:48 +0200, Takashi Iwai wrote: > > > >> At Thu, 06 Sep 2012 08:33:30 +0200, > > > >> Daniel Mack wrote: > > > >>> > > > >>> On 06.09.2012 08:02, Markus Trippelsdorf wrote: > > > >>>> On 2012.09.04 at 16:40 +0200, Takashi Iwai wrote: > > > >>>>> ---------------------------------------------------------------- > > > >>>>> Sound fixes for 3.6-rc5 > > > >>>>> > > > >>>>> There are nothing scaring, contains only small fixes for HD-audio and > > > >>>>> USB-audio: > > > >>>>> - EPSS regression fix and GPIO fix for HD-audio IDT codecs > > > >>>>> - A series of USB-audio regression fixes that are found since 3.5 kernel > > > >>>>> > > > >>>>> ---------------------------------------------------------------- > > > >>>>> Daniel Mack (4): > > > >>>>> ALSA: snd-usb: Fix URB cancellation at stream start > > > >>>>> ALSA: snd-usb: restore delay information > > > >>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > >>>> The commit fbcfbf5f above causes the following lines to be printed > > > >>>> whenever I start a new song: > > > >>> > > > >>> Copied Pierre-Louis Bossart - he wrote the code in 294c4fb8 which this > > > >>> patch (fbcfbf5f) brings back now. > > > >>> > > > >>>> delay: estimated 0, actual 352 > > > >>>> delay: estimated 353, actual 705 > > > >>>> > > > >>>> (44.1 * 8 = 352.8) > > > >>>> > > > >>>> This happens with an USB-DAC that identifies itself as "C-Media USB > > > >>>> Headphone Set". > > > >>> > > > >>> And you didn't you see these lines with 3.4? > > > >> > > > >> Maybe the difference of start condition? > > > >> > > > >> Markus, does the patch below fix anything? > > > > > > > > Unfortunately no. > > > > However reverting the following fixes the problem: > > > > > > > > commit 245baf983cc39524cce39c24d01b276e6e653c9e > > > > Author: Daniel Mack > > > > Date: Thu Aug 30 18:52:30 2012 +0200 > > > > > > > > ALSA: snd-usb: fix calls to next_packet_size > > > > > > > > > > No, this one certainly fixes a problem and does the right thing by > > > restoring the original code. > > > > > > If you wouldn't state that you didn't see the same effect with 3.4(!), > > > before the refactoring done in 3.5, I would believe the device is simply > > > slightly off in its feedback rate and the tighter delay code complains > > > about it while compensating, just as it did before. > > > > > > Are there any more than these two lines? And is audio working at all? Is > > > it distorted in any way? > > > > There are only these two lines (printed whenever sound starts). Audio is > > working just fine with no distortions. > > > > I did see similar lines before when the system load was very high > > (happend during "make check" when building glibc). > > > > Here is what Pierre-Louis wrote in November 2011: > > > > »This was supposed to be an informational message, I thought it was only > > enabled for debug. Regular users don't really need to know.« > > I guess the problem is that the new endpoint scheme doesn't count the > last_delay update unless the stream is triggered. In the old code, > retire_playback_urb is always called even before the trigger(START) is > set. And, there retire_playback_urb() does nothing but updating the > delay information. > > In the new code, retire_playback_urb is set only at > snd_usb_substream_playback_trigger(). Thus at the very first shot, > the delay account got confused. In short, a patch like below may fix the issue (note: completely untested!) Takashi --- diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index fd5e982..928a4f7 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -528,6 +528,9 @@ static int snd_usb_hw_free(struct snd_pcm_substream *substream) return snd_pcm_lib_free_vmalloc_buffer(substream); } +static void retire_playback_urb(struct snd_usb_substream *subs, + struct urb *urb); + /* * prepare callback * @@ -561,8 +564,10 @@ static int snd_usb_pcm_prepare(struct snd_pcm_substream *substream) /* for playback, submit the URBs now; otherwise, the first hwptr_done * updates for all URBs would happen at the same time when starting */ - if (subs->direction == SNDRV_PCM_STREAM_PLAYBACK) + if (subs->direction == SNDRV_PCM_STREAM_PLAYBACK) { + subs->data_endpoint->retire_data_urb = retire_playback_urb; return start_endpoints(subs, 1); + } return 0; } @@ -1190,7 +1195,6 @@ static int snd_usb_substream_playback_trigger(struct snd_pcm_substream *substrea case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: subs->data_endpoint->prepare_data_urb = prepare_playback_urb; - subs->data_endpoint->retire_data_urb = retire_playback_urb; subs->running = 1; return 0; case SNDRV_PCM_TRIGGER_STOP: @@ -1199,7 +1203,6 @@ static int snd_usb_substream_playback_trigger(struct snd_pcm_substream *substrea return 0; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: subs->data_endpoint->prepare_data_urb = NULL; - subs->data_endpoint->retire_data_urb = NULL; subs->running = 0; return 0; } From mboxrd@z Thu Jan 1 00:00:00 1970 From: Takashi Iwai Subject: Re: snd-usb: "delay: estimated 0, actual 352" Date: Thu, 06 Sep 2012 10:21:39 +0200 Message-ID: References: <20120906060220.GA252@x4> <504843BA.2040808@gmail.com> <20120906065340.GA257@x4> <50484BEB.4020103@gmail.com> <20120906071757.GB257@x4> Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by alsa0.perex.cz (Postfix) with ESMTP id 50D332602F4 for ; Thu, 6 Sep 2012 10:21:40 +0200 (CEST) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org To: Markus Trippelsdorf Cc: Pierre-Louis Bossart , alsa-devel@alsa-project.org, Linus Torvalds , linux-kernel@vger.kernel.org, Daniel Mack List-Id: alsa-devel@alsa-project.org QXQgVGh1LCAwNiBTZXAgMjAxMiAwOTozNToyNiArMDIwMCwKVGFrYXNoaSBJd2FpIHdyb3RlOgo+ IAo+IEF0IFRodSwgNiBTZXAgMjAxMiAwOToxNzo1NyArMDIwMCwKPiBNYXJrdXMgVHJpcHBlbHNk b3JmIHdyb3RlOgo+ID4gCj4gPiBPbiAyMDEyLjA5LjA2IGF0IDA5OjA4ICswMjAwLCBEYW5pZWwg TWFjayB3cm90ZToKPiA+ID4gT24gMDYuMDkuMjAxMiAwODo1MywgTWFya3VzIFRyaXBwZWxzZG9y ZiB3cm90ZToKPiA+ID4gPiBPbiAyMDEyLjA5LjA2IGF0IDA4OjQ4ICswMjAwLCBUYWthc2hpIEl3 YWkgd3JvdGU6Cj4gPiA+ID4+IEF0IFRodSwgMDYgU2VwIDIwMTIgMDg6MzM6MzAgKzAyMDAsCj4g PiA+ID4+IERhbmllbCBNYWNrIHdyb3RlOgo+ID4gPiA+Pj4KPiA+ID4gPj4+IE9uIDA2LjA5LjIw MTIgMDg6MDIsIE1hcmt1cyBUcmlwcGVsc2RvcmYgd3JvdGU6Cj4gPiA+ID4+Pj4gT24gMjAxMi4w OS4wNCBhdCAxNjo0MCArMDIwMCwgVGFrYXNoaSBJd2FpIHdyb3RlOgo+ID4gPiA+Pj4+PiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gPiA+ID4+Pj4+IFNvdW5kIGZpeGVzIGZvciAzLjYtcmM1Cj4gPiA+ID4+Pj4+Cj4gPiA+ ID4+Pj4+IFRoZXJlIGFyZSBub3RoaW5nIHNjYXJpbmcsIGNvbnRhaW5zIG9ubHkgc21hbGwgZml4 ZXMgZm9yIEhELWF1ZGlvIGFuZAo+ID4gPiA+Pj4+PiBVU0ItYXVkaW86Cj4gPiA+ID4+Pj4+IC0g RVBTUyByZWdyZXNzaW9uIGZpeCBhbmQgR1BJTyBmaXggZm9yIEhELWF1ZGlvIElEVCBjb2RlY3MK PiA+ID4gPj4+Pj4gLSBBIHNlcmllcyBvZiBVU0ItYXVkaW8gcmVncmVzc2lvbiBmaXhlcyB0aGF0 IGFyZSBmb3VuZCBzaW5jZSAzLjUga2VybmVsCj4gPiA+ID4+Pj4+Cj4gPiA+ID4+Pj4+IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPiA+ID4gPj4+Pj4gRGFuaWVsIE1hY2sgKDQpOgo+ID4gPiA+Pj4+PiAgICAgICBBTFNBOiBz bmQtdXNiOiBGaXggVVJCIGNhbmNlbGxhdGlvbiBhdCBzdHJlYW0gc3RhcnQKPiA+ID4gPj4+Pj4g ICAgICAgQUxTQTogc25kLXVzYjogcmVzdG9yZSBkZWxheSBpbmZvcm1hdGlvbgo+ID4gPiA+Pj4+ ICAgICAgICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXiAKPiA+ID4g Pj4+PiBUaGUgY29tbWl0IGZiY2ZiZjVmIGFib3ZlIGNhdXNlcyB0aGUgZm9sbG93aW5nIGxpbmVz IHRvIGJlIHByaW50ZWQKPiA+ID4gPj4+PiB3aGVuZXZlciBJIHN0YXJ0IGEgbmV3IHNvbmc6Cj4g PiA+ID4+Pgo+ID4gPiA+Pj4gQ29waWVkIFBpZXJyZS1Mb3VpcyBCb3NzYXJ0IC0gaGUgd3JvdGUg dGhlIGNvZGUgaW4gMjk0YzRmYjggd2hpY2ggdGhpcwo+ID4gPiA+Pj4gcGF0Y2ggKGZiY2ZiZjVm KSBicmluZ3MgYmFjayBub3cuCj4gPiA+ID4+Pgo+ID4gPiA+Pj4+IGRlbGF5OiBlc3RpbWF0ZWQg MCwgYWN0dWFsIDM1Mgo+ID4gPiA+Pj4+IGRlbGF5OiBlc3RpbWF0ZWQgMzUzLCBhY3R1YWwgNzA1 Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiAoNDQuMSAqIDggPSAzNTIuOCkKPiA+ID4gPj4+Pgo+ID4g PiA+Pj4+IFRoaXMgaGFwcGVucyB3aXRoIGFuIFVTQi1EQUMgdGhhdCBpZGVudGlmaWVzIGl0c2Vs ZiBhcyAiQy1NZWRpYSBVU0IKPiA+ID4gPj4+PiBIZWFkcGhvbmUgU2V0Ii4KPiA+ID4gPj4+Cj4g PiA+ID4+PiBBbmQgeW91IGRpZG4ndCB5b3Ugc2VlIHRoZXNlIGxpbmVzIHdpdGggMy40Pwo+ID4g PiA+Pgo+ID4gPiA+PiBNYXliZSB0aGUgZGlmZmVyZW5jZSBvZiBzdGFydCBjb25kaXRpb24/Cj4g PiA+ID4+Cj4gPiA+ID4+IE1hcmt1cywgZG9lcyB0aGUgcGF0Y2ggYmVsb3cgZml4IGFueXRoaW5n Pwo+ID4gPiA+IAo+ID4gPiA+IFVuZm9ydHVuYXRlbHkgbm8uCj4gPiA+ID4gSG93ZXZlciByZXZl cnRpbmcgdGhlIGZvbGxvd2luZyBmaXhlcyB0aGUgcHJvYmxlbToKPiA+ID4gPiAKPiA+ID4gPiBj b21taXQgMjQ1YmFmOTgzY2MzOTUyNGNjZTM5YzI0ZDAxYjI3NmU2ZTY1M2M5ZQo+ID4gPiA+IEF1 dGhvcjogRGFuaWVsIE1hY2sgPHpvbnF1ZUBnbWFpbC5jb20+Cj4gPiA+ID4gRGF0ZTogICBUaHUg QXVnIDMwIDE4OjUyOjMwIDIwMTIgKzAyMDAKPiA+ID4gPiAKPiA+ID4gPiAgICAgQUxTQTogc25k LXVzYjogZml4IGNhbGxzIHRvIG5leHRfcGFja2V0X3NpemUKPiA+ID4gPiAKPiA+ID4gCj4gPiA+ IE5vLCB0aGlzIG9uZSBjZXJ0YWlubHkgZml4ZXMgYSBwcm9ibGVtIGFuZCBkb2VzIHRoZSByaWdo dCB0aGluZyBieQo+ID4gPiByZXN0b3JpbmcgdGhlIG9yaWdpbmFsIGNvZGUuCj4gPiA+IAo+ID4g PiBJZiB5b3Ugd291bGRuJ3Qgc3RhdGUgdGhhdCB5b3UgZGlkbid0IHNlZSB0aGUgc2FtZSBlZmZl Y3Qgd2l0aCAzLjQoISksCj4gPiA+IGJlZm9yZSB0aGUgcmVmYWN0b3JpbmcgZG9uZSBpbiAzLjUs IEkgd291bGQgYmVsaWV2ZSB0aGUgZGV2aWNlIGlzIHNpbXBseQo+ID4gPiBzbGlnaHRseSBvZmYg aW4gaXRzIGZlZWRiYWNrIHJhdGUgYW5kIHRoZSB0aWdodGVyIGRlbGF5IGNvZGUgY29tcGxhaW5z Cj4gPiA+IGFib3V0IGl0IHdoaWxlIGNvbXBlbnNhdGluZywganVzdCBhcyBpdCBkaWQgYmVmb3Jl Lgo+ID4gPiAKPiA+ID4gQXJlIHRoZXJlIGFueSBtb3JlIHRoYW4gdGhlc2UgdHdvIGxpbmVzPyBB bmQgaXMgYXVkaW8gd29ya2luZyBhdCBhbGw/IElzCj4gPiA+IGl0IGRpc3RvcnRlZCBpbiBhbnkg d2F5Pwo+ID4gCj4gPiBUaGVyZSBhcmUgb25seSB0aGVzZSB0d28gbGluZXMgKHByaW50ZWQgd2hl bmV2ZXIgc291bmQgc3RhcnRzKS4gQXVkaW8gaXMKPiA+IHdvcmtpbmcganVzdCBmaW5lIHdpdGgg bm8gZGlzdG9ydGlvbnMuCj4gPiAKPiA+IEkgZGlkIHNlZSBzaW1pbGFyIGxpbmVzIGJlZm9yZSB3 aGVuIHRoZSBzeXN0ZW0gbG9hZCB3YXMgdmVyeSBoaWdoCj4gPiAoaGFwcGVuZCBkdXJpbmcgIm1h a2UgY2hlY2siIHdoZW4gYnVpbGRpbmcgZ2xpYmMpLgo+ID4gCj4gPiBIZXJlIGlzIHdoYXQgUGll cnJlLUxvdWlzIHdyb3RlIGluIE5vdmVtYmVyIDIwMTE6Cj4gPiAKPiA+IMOCwrtUaGlzIHdhcyBz dXBwb3NlZCB0byBiZSBhbiBpbmZvcm1hdGlvbmFsIG1lc3NhZ2UsIEkgdGhvdWdodCBpdCB3YXMg b25seQo+ID4gZW5hYmxlZCBmb3IgZGVidWcuIFJlZ3VsYXIgdXNlcnMgZG9uJ3QgcmVhbGx5IG5l ZWQgdG8ga25vdy7DgsKrCj4gCj4gSSBndWVzcyB0aGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBuZXcg ZW5kcG9pbnQgc2NoZW1lIGRvZXNuJ3QgY291bnQgdGhlCj4gbGFzdF9kZWxheSB1cGRhdGUgdW5s ZXNzIHRoZSBzdHJlYW0gaXMgdHJpZ2dlcmVkLiAgSW4gdGhlIG9sZCBjb2RlLAo+IHJldGlyZV9w bGF5YmFja191cmIgaXMgYWx3YXlzIGNhbGxlZCBldmVuIGJlZm9yZSB0aGUgdHJpZ2dlcihTVEFS VCkgaXMKPiBzZXQuICBBbmQsIHRoZXJlIHJldGlyZV9wbGF5YmFja191cmIoKSBkb2VzIG5vdGhp bmcgYnV0IHVwZGF0aW5nIHRoZQo+IGRlbGF5IGluZm9ybWF0aW9uLgo+IAo+IEluIHRoZSBuZXcg Y29kZSwgcmV0aXJlX3BsYXliYWNrX3VyYiBpcyBzZXQgb25seSBhdAo+IHNuZF91c2Jfc3Vic3Ry ZWFtX3BsYXliYWNrX3RyaWdnZXIoKS4gIFRodXMgYXQgdGhlIHZlcnkgZmlyc3Qgc2hvdCwKPiB0 aGUgZGVsYXkgYWNjb3VudCBnb3QgY29uZnVzZWQuCgpJbiBzaG9ydCwgYSBwYXRjaCBsaWtlIGJl bG93IG1heSBmaXggdGhlIGlzc3VlIChub3RlOiBjb21wbGV0ZWx5CnVudGVzdGVkISkKCgpUYWth c2hpCgotLS0KCmRpZmYgLS1naXQgYS9zb3VuZC91c2IvcGNtLmMgYi9zb3VuZC91c2IvcGNtLmMK aW5kZXggZmQ1ZTk4Mi4uOTI4YTRmNyAxMDA2NDQKLS0tIGEvc291bmQvdXNiL3BjbS5jCisrKyBi L3NvdW5kL3VzYi9wY20uYwpAQCAtNTI4LDYgKzUyOCw5IEBAIHN0YXRpYyBpbnQgc25kX3VzYl9o d19mcmVlKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWFtKQogCXJldHVybiBzbmRf cGNtX2xpYl9mcmVlX3ZtYWxsb2NfYnVmZmVyKHN1YnN0cmVhbSk7CiB9CiAKK3N0YXRpYyB2b2lk IHJldGlyZV9wbGF5YmFja191cmIoc3RydWN0IHNuZF91c2Jfc3Vic3RyZWFtICpzdWJzLAorCQkJ CXN0cnVjdCB1cmIgKnVyYik7CisKIC8qCiAgKiBwcmVwYXJlIGNhbGxiYWNrCiAgKgpAQCAtNTYx LDggKzU2NCwxMCBAQCBzdGF0aWMgaW50IHNuZF91c2JfcGNtX3ByZXBhcmUoc3RydWN0IHNuZF9w Y21fc3Vic3RyZWFtICpzdWJzdHJlYW0pCiAKIAkvKiBmb3IgcGxheWJhY2ssIHN1Ym1pdCB0aGUg VVJCcyBub3c7IG90aGVyd2lzZSwgdGhlIGZpcnN0IGh3cHRyX2RvbmUKIAkgKiB1cGRhdGVzIGZv ciBhbGwgVVJCcyB3b3VsZCBoYXBwZW4gYXQgdGhlIHNhbWUgdGltZSB3aGVuIHN0YXJ0aW5nICov Ci0JaWYgKHN1YnMtPmRpcmVjdGlvbiA9PSBTTkRSVl9QQ01fU1RSRUFNX1BMQVlCQUNLKQorCWlm IChzdWJzLT5kaXJlY3Rpb24gPT0gU05EUlZfUENNX1NUUkVBTV9QTEFZQkFDSykgeworCQlzdWJz LT5kYXRhX2VuZHBvaW50LT5yZXRpcmVfZGF0YV91cmIgPSByZXRpcmVfcGxheWJhY2tfdXJiOwog CQlyZXR1cm4gc3RhcnRfZW5kcG9pbnRzKHN1YnMsIDEpOworCX0KIAogCXJldHVybiAwOwogfQpA QCAtMTE5MCw3ICsxMTk1LDYgQEAgc3RhdGljIGludCBzbmRfdXNiX3N1YnN0cmVhbV9wbGF5YmFj a190cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0cmVhbSAqc3Vic3RyZWEKIAljYXNlIFNORFJW X1BDTV9UUklHR0VSX1NUQVJUOgogCWNhc2UgU05EUlZfUENNX1RSSUdHRVJfUEFVU0VfUkVMRUFT RToKIAkJc3Vicy0+ZGF0YV9lbmRwb2ludC0+cHJlcGFyZV9kYXRhX3VyYiA9IHByZXBhcmVfcGxh eWJhY2tfdXJiOwotCQlzdWJzLT5kYXRhX2VuZHBvaW50LT5yZXRpcmVfZGF0YV91cmIgPSByZXRp cmVfcGxheWJhY2tfdXJiOwogCQlzdWJzLT5ydW5uaW5nID0gMTsKIAkJcmV0dXJuIDA7CiAJY2Fz ZSBTTkRSVl9QQ01fVFJJR0dFUl9TVE9QOgpAQCAtMTE5OSw3ICsxMjAzLDYgQEAgc3RhdGljIGlu dCBzbmRfdXNiX3N1YnN0cmVhbV9wbGF5YmFja190cmlnZ2VyKHN0cnVjdCBzbmRfcGNtX3N1YnN0 cmVhbSAqc3Vic3RyZWEKIAkJcmV0dXJuIDA7CiAJY2FzZSBTTkRSVl9QQ01fVFJJR0dFUl9QQVVT RV9QVVNIOgogCQlzdWJzLT5kYXRhX2VuZHBvaW50LT5wcmVwYXJlX2RhdGFfdXJiID0gTlVMTDsK LQkJc3Vicy0+ZGF0YV9lbmRwb2ludC0+cmV0aXJlX2RhdGFfdXJiID0gTlVMTDsKIAkJc3Vicy0+ cnVubmluZyA9IDA7CiAJCXJldHVybiAwOwogCX0KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KQWxzYS1kZXZlbCBtYWlsaW5nIGxpc3QKQWxzYS1kZXZlbEBh bHNhLXByb2plY3Qub3JnCmh0dHA6Ly9tYWlsbWFuLmFsc2EtcHJvamVjdC5vcmcvbWFpbG1hbi9s aXN0aW5mby9hbHNhLWRldmVsCg==