Message ID | CAP3oF7BNR-z2dPsUn-B=MMGs2h8mGLYvM+2ZQ0U8aJhnpO0JOQ@mail.gmail.com |
---|---|
State | New |
Headers | show |
I'm sorry, I sent that to the wrong email list. Please disregard, I will submit it properly shortly. On Thu, Jun 4, 2015 at 4:50 AM Joel Croteau <jcroteau@google.com> wrote: > And one more patch to look at. If you're wondering, I've been rebuilding > the kernel for my Ubuntu system at home, and these patches are all to > address various build errors I ran into while doing so. > > Setting a local version name appears to cause errors when packaging, > so fix that by enforcing leaving it unset. > --- > debian.master/config/annotations | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/debian.master/config/annotations > b/debian.master/config/annotations > index 4250196..9e5f1c8 100644 > --- a/debian.master/config/annotations > +++ b/debian.master/config/annotations > @@ -2742,7 +2742,7 @@ CONFIG_KERNEL_MODE_NEON p > policy<{'arm64': 'y', 'armhf': 'y'}> > # Menu: General setup > CONFIG_CROSS_COMPILE "" > CONFIG_COMPILE_TEST n > -CONFIG_LOCALVERSION "" > +CONFIG_LOCALVERSION "" mark<ENFORCED> > note<triggers packaging failures> > CONFIG_LOCALVERSION_AUTO n > CONFIG_DEFAULT_HOSTNAME "(none)" > CONFIG_VERSION_SIGNATURE "" > -- > 2.1.4 > > On Thu, Jun 4, 2015 at 2:46 AM <kernel-team-request@lists.ubuntu.com> > wrote: > >> Send kernel-team mailing list submissions to >> kernel-team@lists.ubuntu.com >> >> To subscribe or unsubscribe via the World Wide Web, visit >> https://lists.ubuntu.com/mailman/listinfo/kernel-team >> or, via email, send a message with subject or body 'help' to >> kernel-team-request@lists.ubuntu.com >> >> You can reach the person managing the list at >> kernel-team-owner@lists.ubuntu.com >> >> When replying, please edit your Subject line so it is more specific >> than "Re: Contents of kernel-team digest..." >> >> >> Today's Topics: >> >> 1. [PATCH][Vivid] ahci: avoton port-disable reset-quirk >> (Rafael David Tinoco) >> 2. Mainline Build v2.6.32.67 (Mainline Builds) >> 3. [Vivid][SRU][PATCH] powerpc/powernv: Check image loaded or >> not before calling flash (Chris J Arges) >> 4. The Daily Bug Report for Wednesday, 03. June 2015 22:30 UTC >> (brad.figg@canonical.com) >> 5. [Trusty][SRU][PATCH] LP#1461730 -- xfs: avoid false >> quotacheck after unclean shutdown (Seyeong Kim) >> 6. [Trusty][SRU][PATCH] xfs: avoid false quotacheck after >> unclean shutdown (Seyeong Kim) >> 7. [Vivid][PATCH 1/6] Bluetooth: btusb: support public address >> configuration for ath3012 (Wen-chien Jesse Sung) >> 8. [Vivid][PATCH 2/6] Bluetooth: btusb: Add setup callback for >> chip init on USB (Wen-chien Jesse Sung) >> >> >> ---------------------------------------------------------------------- >> >> Message: 1 >> Date: Wed, 3 Jun 2015 11:44:06 -0300 >> From: Rafael David Tinoco <inaddy@inaddy.org> >> To: kernel-team@lists.canonical.com >> Subject: [PATCH][Vivid] ahci: avoton port-disable reset-quirk >> Message-ID: >> <1433342646-15003-3-git-send-email-rafael.tinoco@canonical.com> >> >> BugLink: https://bugs.launchpad.net/bugs/1458617 >> >> Avoton AHCI occasionally sees drive probe timeouts at driver load time. >> When this happens SCR_STATUS indicates device detected, but no D2H FIS >> reception. Reset the internal link state machines by bouncing >> port-enable in the PCS register when this occurs. >> >> OriginalAuthor: Dan Williams <dan.j.williams@intel.com> >> Signed-off-by: Dan Williams <dan.j.williams@intel.com> >> (backported from commit dbfe8ef5599a5370abc441fcdbb382b656563eb4 upstream) >> Signed-off-by: Tejun Heo <tj@kernel.org> >> Signed-off-by: Rafael David Tinoco <rafael.tinoco@canonical.com> >> --- >> drivers/ata/ahci.c | 103 >> ++++++++++++++++++++++++++++++++++++++++++++++++----- >> 1 file changed, 95 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c >> index 3b18399..8e7574a 100644 >> --- a/drivers/ata/ahci.c >> +++ b/drivers/ata/ahci.c >> @@ -66,6 +66,7 @@ enum board_ids { >> board_ahci_yes_fbs, >> >> /* board IDs for specific chipsets in alphabetical order */ >> + board_ahci_avn, >> board_ahci_mcp65, >> board_ahci_mcp77, >> board_ahci_mcp89, >> @@ -84,6 +85,8 @@ enum board_ids { >> static int ahci_init_one(struct pci_dev *pdev, const struct >> pci_device_id *ent); >> static int ahci_vt8251_hardreset(struct ata_link *link, unsigned int >> *class, >> unsigned long deadline); >> +static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class, >> + unsigned long deadline); >> static void ahci_mcp89_apple_enable(struct pci_dev *pdev); >> static bool is_mcp89_apple(struct pci_dev *pdev); >> static int ahci_p5wdh_hardreset(struct ata_link *link, unsigned int >> *class, >> @@ -107,6 +110,11 @@ static struct ata_port_operations ahci_p5wdh_ops = { >> .hardreset = ahci_p5wdh_hardreset, >> }; >> >> +static struct ata_port_operations ahci_avn_ops = { >> + .inherits = &ahci_ops, >> + .hardreset = ahci_avn_hardreset, >> +}; >> + >> static const struct ata_port_info ahci_port_info[] = { >> /* by features */ >> [board_ahci] = { >> @@ -151,6 +159,12 @@ static const struct ata_port_info ahci_port_info[] = >> { >> .port_ops = &ahci_ops, >> }, >> /* by chipsets */ >> + [board_ahci_avn] = { >> + .flags = AHCI_FLAG_COMMON, >> + .pio_mask = ATA_PIO4, >> + .udma_mask = ATA_UDMA6, >> + .port_ops = &ahci_avn_ops, >> + }, >> [board_ahci_mcp65] = { >> AHCI_HFLAGS (AHCI_HFLAG_NO_FPDMA_AA | >> AHCI_HFLAG_NO_PMP | >> AHCI_HFLAG_YES_NCQ), >> @@ -290,14 +304,14 @@ static const struct pci_device_id ahci_pci_tbl[] = { >> { PCI_VDEVICE(INTEL, 0x1f27), board_ahci }, /* Avoton RAID */ >> { PCI_VDEVICE(INTEL, 0x1f2e), board_ahci }, /* Avoton RAID */ >> { PCI_VDEVICE(INTEL, 0x1f2f), board_ahci }, /* Avoton RAID */ >> - { PCI_VDEVICE(INTEL, 0x1f32), board_ahci }, /* Avoton AHCI */ >> - { PCI_VDEVICE(INTEL, 0x1f33), board_ahci }, /* Avoton AHCI */ >> - { PCI_VDEVICE(INTEL, 0x1f34), board_ahci }, /* Avoton RAID */ >> - { PCI_VDEVICE(INTEL, 0x1f35), board_ahci }, /* Avoton RAID */ >> - { PCI_VDEVICE(INTEL, 0x1f36), board_ahci }, /* Avoton RAID */ >> - { PCI_VDEVICE(INTEL, 0x1f37), board_ahci }, /* Avoton RAID */ >> - { PCI_VDEVICE(INTEL, 0x1f3e), board_ahci }, /* Avoton RAID */ >> - { PCI_VDEVICE(INTEL, 0x1f3f), board_ahci }, /* Avoton RAID */ >> + { PCI_VDEVICE(INTEL, 0x1f32), board_ahci_avn }, /* Avoton AHCI */ >> + { PCI_VDEVICE(INTEL, 0x1f33), board_ahci_avn }, /* Avoton AHCI */ >> + { PCI_VDEVICE(INTEL, 0x1f34), board_ahci_avn }, /* Avoton RAID */ >> + { PCI_VDEVICE(INTEL, 0x1f35), board_ahci_avn }, /* Avoton RAID */ >> + { PCI_VDEVICE(INTEL, 0x1f36), board_ahci_avn }, /* Avoton RAID */ >> + { PCI_VDEVICE(INTEL, 0x1f37), board_ahci_avn }, /* Avoton RAID */ >> + { PCI_VDEVICE(INTEL, 0x1f3e), board_ahci_avn }, /* Avoton RAID */ >> + { PCI_VDEVICE(INTEL, 0x1f3f), board_ahci_avn }, /* Avoton RAID */ >> { PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Wellsburg RAID */ >> { PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* Wellsburg RAID */ >> { PCI_VDEVICE(INTEL, 0x8d02), board_ahci }, /* Wellsburg AHCI */ >> @@ -675,6 +689,79 @@ static int ahci_p5wdh_hardreset(struct ata_link >> *link, unsigned int *class, >> return rc; >> } >> >> +/* >> + * ahci_avn_hardreset - attempt more aggressive recovery of Avoton ports. >> + * >> + * It has been observed with some SSDs that the timing of events in the >> + * link synchronization phase can leave the port in a state that can not >> + * be recovered by a SATA-hard-reset alone. The failing signature is >> + * SStatus.DET stuck at 1 ("Device presence detected but Phy >> + * communication not established"). It was found that unloading and >> + * reloading the driver when this problem occurs allows the drive >> + * connection to be recovered (DET advanced to 0x3). The critical >> + * component of reloading the driver is that the port state machines are >> + * reset by bouncing "port enable" in the AHCI PCS configuration >> + * register. So, reproduce that effect by bouncing a port whenever we >> + * see DET==1 after a reset. >> + */ >> +static int ahci_avn_hardreset(struct ata_link *link, unsigned int *class, >> + unsigned long deadline) >> +{ >> + const unsigned long *timing = >> sata_ehc_deb_timing(&link->eh_context); >> + struct ata_port *ap = link->ap; >> + struct ahci_port_priv *pp = ap->private_data; >> + struct ahci_host_priv *hpriv = ap->host->private_data; >> + u8 *d2h_fis = pp->rx_fis + RX_FIS_D2H_REG; >> + unsigned long tmo = deadline - jiffies; >> + struct ata_taskfile tf; >> + bool online; >> + int rc, i; >> + >> + DPRINTK("ENTER\n"); >> + >> + ahci_stop_engine(ap); >> + >> + for (i = 0; i < 2; i++) { >> + u16 val; >> + u32 sstatus; >> + int port = ap->port_no; >> + struct ata_host *host = ap->host; >> + struct pci_dev *pdev = to_pci_dev(host->dev); >> + >> + /* clear D2H reception area to properly wait for D2H FIS >> */ >> + ata_tf_init(link->device, &tf); >> + tf.command = ATA_BUSY; >> + ata_tf_to_fis(&tf, 0, 0, d2h_fis); >> + >> + rc = sata_link_hardreset(link, timing, deadline, &online, >> + ahci_check_ready); >> + >> + if (sata_scr_read(link, SCR_STATUS, &sstatus) != 0 || >> + (sstatus & 0xf) != 1) >> + break; >> + >> + ata_link_printk(link, KERN_INFO, "avn bounce port%d\n", >> + port); >> + >> + pci_read_config_word(pdev, 0x92, &val); >> + val &= ~(1 << port); >> + pci_write_config_word(pdev, 0x92, val); >> + ata_msleep(ap, 1000); >> + val |= 1 << port; >> + pci_write_config_word(pdev, 0x92, val); >> + deadline += tmo; >> + } >> + >> + hpriv->start_engine(ap); >> + >> + if (online) >> + *class = ahci_dev_classify(ap); >> + >> + DPRINTK("EXIT, rc=%d, class=%u\n", rc, *class); >> + return rc; >> +} >> + >> + >> #ifdef CONFIG_PM >> static int ahci_pci_device_suspend(struct pci_dev *pdev, pm_message_t >> mesg) >> { >> -- >> 2.1.4 >> >> >> >> >> ------------------------------ >> >> Message: 2 >> From: Mainline Builds <kernel-team@lists.ubuntu.com> >> To: Kernel Team <kernel-team@lists.ubuntu.com> >> Subject: Mainline Build v2.6.32.67 >> Message-ID: >> <mailman.12555.1433411172.18832.kernel-team@lists.ubuntu.com> >> >> The mainline build for v2.6.32.67 is now complete and available at the URL >> below: >> >> http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.67-lucid/ >> >> See the CHANGES file for the list of changes from the previous version: >> >> >> http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.32.67-lucid/CHANGES >> >> Note that these builds do not contain any Ubuntu specific patches and >> are not supported. >> >> Kernel Team >> >> >> >> ------------------------------ >> >> Message: 3 >> Date: Wed, 3 Jun 2015 17:47:44 -0500 >> From: Chris J Arges <chris.j.arges@canonical.com> >> To: kernel-team@lists.ubuntu.com >> Subject: [Vivid][SRU][PATCH] powerpc/powernv: Check image loaded or >> not before calling flash >> Message-ID: >> <1433371664-8490-1-git-send-email-chris.j.arges@canonical.com> >> >> From: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> >> >> BugLink: http://bugs.launchpad.net/bugs/1461553 >> >> Present code checks for update_flash_data in opal_flash_term_callback(). >> update_flash_data has been statically initialized to zero, and that >> is the value of FLASH_IMG_READY. Also code update initialization happens >> during subsys init. >> >> So if reboot is issued before the subsys init stage then we endup >> displaying >> "Flashing new firmware" message.. which may confuse end user. >> >> This patch fixes above described issue by initializes update_flash status >> to invalid state. >> >> Reported-by: Sam Bobroff <sam.bobroff@au1.ibm.com> >> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> >> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> >> (cherry picked from commit 3f77df7f81526c932ef681eda56eeaa75d0617da) >> Signed-off-by: Chris J Arges <chris.j.arges@canonical.com> >> --- >> arch/powerpc/platforms/powernv/opal-flash.c | 6 +++++- >> 1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/arch/powerpc/platforms/powernv/opal-flash.c >> b/arch/powerpc/platforms/powernv/opal-flash.c >> index 5c21d9c..0ff07ff 100644 >> --- a/arch/powerpc/platforms/powernv/opal-flash.c >> +++ b/arch/powerpc/platforms/powernv/opal-flash.c >> @@ -120,7 +120,11 @@ static struct image_header_t image_header; >> static struct image_data_t image_data; >> static struct validate_flash_t validate_flash_data; >> static struct manage_flash_t manage_flash_data; >> -static struct update_flash_t update_flash_data; >> + >> +/* Initialize update_flash_data status to No Operation */ >> +static struct update_flash_t update_flash_data = { >> + .status = FLASH_NO_OP, >> +}; >> >> static DEFINE_MUTEX(image_data_mutex); >> >> -- >> 1.9.1 >> >> >> >> >> ------------------------------ >> >> Message: 4 >> From: brad.figg@canonical.com >> To: kernel-team@lists.ubuntu.com >> Subject: The Daily Bug Report for Wednesday, 03. June 2015 22:30 UTC >> Message-ID: >> <mailman.12556.1433411172.18832.kernel-team@lists.ubuntu.com> >> Content-Type: text/plain; charset="us-ascii" >> >> The Daily Bug Report >> Wednesday, 03. June 2015 22:30 UTC >> >> The linux package acquired 4 new bugs in the last 24 hrs. >> >> Bug Title >> Series Importance Status Assignee >> ------- ------------------------------------------------------------ >> -------- ------------ ------------- --------------------- >> 1461320 first resume fails after suspend >> vivid Medium Confirmed Unassigned >> 1461463 package linux-image-3.16.0-36-generic (not installed) fai... >> utopic Low Incomplete Unassigned >> 1461599 Trying to install Ubuntu 14.04, but system rebootin again... >> trusty Undecided Incomplete Unassigned >> 1461700 package linux-image-3.13.0-53-generic 3.13.0-53.89 failed... >> trusty Undecided New Unassigned >> >> An online version of this report can be found at: >> http://kernel.ubuntu.com/sru/1-day-new.html >> The full Kernel Team Host List can be found at: >> http://people.canonical.com/~kernel/reports/_kernel_hot_.html >> >> >> >> ------------------------------ >> >> Message: 5 >> Date: Thu, 4 Jun 2015 17:43:53 +0900 >> From: Seyeong Kim <seyeong.kim@canonical.com> >> To: kernel-team@lists.ubuntu.com >> Subject: [Trusty][SRU][PATCH] LP#1461730 -- xfs: avoid false >> quotacheck after unclean shutdown >> Message-ID: >> <1433407434-32622-1-git-send-email-seyeong.kim@canonical.com> >> >> BugLink: http://bugs.launchpad.net/bugs/1461730 >> >> [Impact] >> >> XFS quota doesn't work after rebooting because of crash or force reboot. >> You can see msg on dmesg. >> [ 12.309146] XFS (sdb): Failed to initialize disk quotas. >> >> [Fix] >> >> Upstream development >> 5ef828c41527 ("xfs: avoid false quotacheck after unclean shutdown") >> >> It's affected under 3.17 kernel. >> >> * fixed directory mismatch >> >> There was no libxfs directory on fs/xfs/, I modified upstream >> fs/xfs/libxfs/xfs_sb.c to proper position /fs/xfs/xfs_sb.c on ubuntu. >> >> [Testcase] >> >> mkfs.xfs for your extra storage, set the quota 2G with it. Using the >> command "dd if=/dev/zero of=test bs=1M count=3000", You can see that they >> have quota 2G at first. But after force rebooting, you can see that they >> don't limit quota. You can make 3G on 2G quota set directory. >> >> Eric Sandeen (1): >> xfs: avoid false quotacheck after unclean shutdown >> >> fs/xfs/xfs_mount.c | 1 - >> fs/xfs/xfs_sb.c | 26 ++++++++++++++++++++++---- >> 2 files changed, 22 insertions(+), 5 deletions(-) >> >> -- >> 2.1.4 >> >> >> >> >> ------------------------------ >> >> Message: 6 >> Date: Thu, 4 Jun 2015 17:43:54 +0900 >> From: Seyeong Kim <seyeong.kim@canonical.com> >> To: kernel-team@lists.ubuntu.com >> Subject: [Trusty][SRU][PATCH] xfs: avoid false quotacheck after >> unclean shutdown >> Message-ID: >> <1433407434-32622-2-git-send-email-seyeong.kim@canonical.com> >> >> From: Eric Sandeen <sandeen@sandeen.net> >> >> BugLink: http://bugs.launchpad.net/bugs/1461730 >> >> The commit >> >> 83e782e xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD >> >> added a new function xfs_sb_quota_from_disk() which swaps >> on-disk XFS_OQUOTA_* flags for in-core XFS_GQUOTA_* and XFS_PQUOTA_* >> flags after the superblock is read. >> >> However, if log recovery is required, the superblock is read again, >> and the modified in-core flags are re-read from disk, so we have >> XFS_OQUOTA_* flags in memory again. This causes the >> XFS_QM_NEED_QUOTACHECK() test to be true, because the XFS_OQUOTA_CHKD >> is still set, and not XFS_GQUOTA_CHKD or XFS_PQUOTA_CHKD. >> >> Change xfs_sb_from_disk to call xfs_sb_quota_from disk and always >> convert the disk flags to in-memory flags. >> >> Add a lower-level function which can be called with "false" to >> not convert the flags, so that the sb verifier can verify >> exactly what was on disk, per Brian Foster's suggestion. >> >> Reported-by: Cyril B. <cbay@excellency.fr> >> Signed-off-by: Eric Sandeen <sandeen@redhat.com> >> >> (backported from commit 5ef828c4152726f56751c78ea844f08d2b2a4fa3) >> Signed-off-by: Seyeong Kim <seyeong.kim@canonical.com> >> >> Conflicts: >> fs/xfs/libxfs/xfs_sb.c >> fs/xfs/xfs_mount.c >> --- >> fs/xfs/xfs_mount.c | 1 - >> fs/xfs/xfs_sb.c | 26 ++++++++++++++++++++++---- >> 2 files changed, 22 insertions(+), 5 deletions(-) >> >> diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c >> index 02df7b4..e853572 100644 >> --- a/fs/xfs/xfs_mount.c >> +++ b/fs/xfs/xfs_mount.c >> @@ -314,7 +314,6 @@ reread: >> * Initialize the mount structure from the superblock. >> */ >> xfs_sb_from_disk(&mp->m_sb, XFS_BUF_TO_SBP(bp)); >> - xfs_sb_quota_from_disk(&mp->m_sb); >> >> /* >> * We must be able to do sector-sized and sector-aligned IO. >> diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c >> index b7c9aea..6301f33 100644 >> --- a/fs/xfs/xfs_sb.c >> +++ b/fs/xfs/xfs_sb.c >> @@ -398,10 +398,13 @@ xfs_sb_quota_from_disk(struct xfs_sb *sbp) >> } >> } >> >> -void >> -xfs_sb_from_disk( >> + >> + >> +static void >> +__xfs_sb_from_disk( >> struct xfs_sb *to, >> - xfs_dsb_t *from) >> + xfs_dsb_t *from, >> + bool convert_xquota) >> { >> to->sb_magicnum = be32_to_cpu(from->sb_magicnum); >> to->sb_blocksize = be32_to_cpu(from->sb_blocksize); >> @@ -457,6 +460,17 @@ xfs_sb_from_disk( >> to->sb_pad = 0; >> to->sb_pquotino = be64_to_cpu(from->sb_pquotino); >> to->sb_lsn = be64_to_cpu(from->sb_lsn); >> + /* Convert on-disk flags to in-memory flags? */ >> + if (convert_xquota) >> + xfs_sb_quota_from_disk(to); >> +} >> + >> +void >> +xfs_sb_from_disk( >> + struct xfs_sb *to, >> + xfs_dsb_t *from) >> +{ >> + __xfs_sb_from_disk(to, from, true); >> } >> >> static inline void >> @@ -572,7 +586,11 @@ xfs_sb_verify( >> struct xfs_mount *mp = bp->b_target->bt_mount; >> struct xfs_sb sb; >> >> - xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp)); >> + /* >> + * Use call variant which doesn't convert quota flags from disk >> + * format, because xfs_mount_validate_sb checks the on-disk flags. >> + */ >> + __xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp), false); >> >> /* >> * Only check the in progress field for the primary superblock as >> -- >> 2.1.4 >> >> >> >> >> ------------------------------ >> >> Message: 7 >> Date: Thu, 4 Jun 2015 17:45:52 +0800 >> From: Wen-chien Jesse Sung <jesse.sung@canonical.com> >> To: kernel-team@lists.ubuntu.com >> Subject: [Vivid][PATCH 1/6] Bluetooth: btusb: support public address >> configuration for ath3012 >> Message-ID: >> <1433411157-26049-1-git-send-email-jesse.sung@canonical.com> >> >> From: Toshi Kikuchi <toshik@chromium.org> >> >> BugLink: https://launchpad.net/bugs/1459937 >> >> Set hdev->set_bdaddr handler for ath3012. It sends the vendor specific HCI >> command to change the public address. The change doesn't persist across >> power cycle. >> >> Signed-off-by: Toshi Kikuchi <toshik@chromium.org> >> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> >> (cherry picked from commit 5859223e0c4f69ab36dd931ea7058c3b1b2abb41) >> Signed-off-by: Wen-chien Jesse Sung <jesse.sung@canonical.com> >> --- >> drivers/bluetooth/btusb.c | 28 ++++++++++++++++++++++++++++ >> 1 file changed, 28 insertions(+) >> >> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c >> index b0449bb..7134171 100644 >> --- a/drivers/bluetooth/btusb.c >> +++ b/drivers/bluetooth/btusb.c >> @@ -1953,6 +1953,31 @@ static int btusb_set_bdaddr_bcm(struct hci_dev >> *hdev, const bdaddr_t *bdaddr) >> return 0; >> } >> >> +static int btusb_set_bdaddr_ath3012(struct hci_dev *hdev, >> + const bdaddr_t *bdaddr) >> +{ >> + struct sk_buff *skb; >> + u8 buf[10]; >> + long ret; >> + >> + buf[0] = 0x01; >> + buf[1] = 0x01; >> + buf[2] = 0x00; >> + buf[3] = sizeof(bdaddr_t); >> + memcpy(buf + 4, bdaddr, sizeof(bdaddr_t)); >> + >> + skb = __hci_cmd_sync(hdev, 0xfc0b, sizeof(buf), buf, >> HCI_INIT_TIMEOUT); >> + if (IS_ERR(skb)) { >> + ret = PTR_ERR(skb); >> + BT_ERR("%s: Change address command failed (%ld)", >> + hdev->name, ret); >> + return ret; >> + } >> + kfree_skb(skb); >> + >> + return 0; >> +} >> + >> static int btusb_probe(struct usb_interface *intf, >> const struct usb_device_id *id) >> { >> @@ -2068,6 +2093,9 @@ static int btusb_probe(struct usb_interface *intf, >> if (id->driver_info & BTUSB_INTEL_BOOT) >> set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks); >> >> + if (id->driver_info & BTUSB_ATH3012) >> + hdev->set_bdaddr = btusb_set_bdaddr_ath3012; >> + >> /* Interface numbers are hardcoded in the specification */ >> data->isoc = usb_ifnum_to_if(data->udev, 1); >> >> -- >> 2.1.4 >> >> >> >> >> ------------------------------ >> >> Message: 8 >> Date: Thu, 4 Jun 2015 17:45:53 +0800 >> From: Wen-chien Jesse Sung <jesse.sung@canonical.com> >> To: kernel-team@lists.ubuntu.com >> Subject: [Vivid][PATCH 2/6] Bluetooth: btusb: Add setup callback for >> chip init on USB >> Message-ID: >> <1433411157-26049-2-git-send-email-jesse.sung@canonical.com> >> >> From: "Kim, Ben Young Tae" <ytkim@qca.qualcomm.com> >> >> BugLink: https://launchpad.net/bugs/1459937 >> >> Some of chipset does not allow to send a patch or config files through >> HCI VS channel at early stage as well as they don't support to send >> USB patch files to other channel except USB bulk path. >> >> New callback added is for initialization of BT controller through USB >> >> Signed-off-by: Ben Young Tae Kim <ytkim@qca.qualcomm.com> >> Signed-off-by: Marcel Holtmann <marcel@holtmann.org> >> (cherry picked from commit ace31982585a323afb194f56b9e0486f7bc6570c) >> Signed-off-by: Wen-chien Jesse Sung <jesse.sung@canonical.com> >> --- >> drivers/bluetooth/btusb.c | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c >> index 7134171..1677d8e 100644 >> --- a/drivers/bluetooth/btusb.c >> +++ b/drivers/bluetooth/btusb.c >> @@ -316,6 +316,8 @@ struct btusb_data { >> int suspend_count; >> >> int (*recv_bulk)(struct btusb_data *data, void *buffer, int >> count); >> + >> + int (*setup_on_usb)(struct hci_dev *hdev); >> }; >> >> static inline void btusb_free_frags(struct btusb_data *data) >> @@ -857,6 +859,15 @@ static int btusb_open(struct hci_dev *hdev) >> >> BT_DBG("%s", hdev->name); >> >> + /* Patching USB firmware files prior to starting any URBs of HCI >> path >> + * It is more safe to use USB bulk channel for downloading USB >> patch >> + */ >> + if (data->setup_on_usb) { >> + err = data->setup_on_usb(hdev); >> + if (err <0) >> + return err; >> + } >> + >> err = usb_autopm_get_interface(data->intf); >> if (err < 0) >> return err; >> -- >> 2.1.4 >> >> >> >> >> ------------------------------ >> >> -- >> kernel-team mailing list >> kernel-team@lists.ubuntu.com >> https://lists.ubuntu.com/mailman/listinfo/kernel-team >> >> >> End of kernel-team Digest, Vol 125, Issue 9 >> ******************************************* >> >
diff --git a/debian.master/config/annotations b/debian.master/config/annotat ions index 4250196..9e5f1c8 100644 --- a/debian.master/config/annotations +++ b/debian.master/config/annotations @@ -2742,7 +2742,7 @@ CONFIG_KERNEL_MODE_NEON p policy<{'arm64': 'y', 'armhf': 'y'}> # Menu: General setup CONFIG_CROSS_COMPILE "" CONFIG_COMPILE_TEST n -CONFIG_LOCALVERSION "" +CONFIG_LOCALVERSION "" mark<ENFORCED> note<triggers packaging failures> CONFIG_LOCALVERSION_AUTO n