RE: [PATCH v5] Bluetooth: NXP: Add protocol support for NXP Bluetooth chipsets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sherry

> ......
> 
> > +static u8 *nxp_get_fw_name_from_chipid(struct hci_dev *hdev, u16
> > +chipid) {
> > +	u8 *fw_name = NULL;
> > +
> > +	switch (chipid) {
> > +	case CHIP_ID_W9098:
> > +		fw_name = FIRMWARE_W9098;
> > +		break;
> > +	case CHIP_ID_IW416:
> > +		fw_name = FIRMWARE_IW416;
> > +		break;
> > +	case CHIP_ID_IW612:
> > +		fw_name = FIRMWARE_IW612;
> 
> Suppose for each V3 BT chips, you not only need to update the fw_name, but
> also fw_dnld_use_high_baudrate. Don't use the default value in drv_data for
> all chips here.
fw_dnld_use_high_baudrate is not used in the V3 download mechanism, neither do we need it as of now in V3.

> > +
> > +	set_bit(BTNXPUART_FW_DOWNLOADING, &nxpdev->tx_state);
> > +	init_waitqueue_head(&nxpdev->suspend_wait_q);
> > +
> > +	if (!serdev_device_get_cts(nxpdev->serdev)) {
> > +		bt_dev_dbg(hdev, "CTS high. Need FW Download");
> 
> I don't think it's a good idea to use CTS status to determine the BT FW status,
> because many uart drivers only support auto hardware flow control, and
> cannot return the CTS line state.
> Such as for LPUART, serdev_device_get_cts() will always return TIOCM_CTS,
> so here FW may never be downloaded.
I have reworked this part of code and we are now waiting for 1 second to see if we are receiving any bootloader signature from the chip, and downloading FW or moving ahead accordingly.

Please check the v6 patch for the changes.

Thanks,
Neeraj




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux