All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Peter Tsao <peter.tsao@mediatek.com>,
	Marcel Holtmann <marcel@holtmann.org>,
	Johan Hedberg <johan.hedberg@gmail.com>,
	Luiz Von Dentz <luiz.dentz@gmail.com>
Cc: oe-kbuild-all@lists.linux.dev, Sean Wang <sean.wang@mediatek.com>,
	Deren Wu <deren.Wu@mediatek.com>,
	Chris Lu <chris.lu@mediatek.com>,
	Aaron Hou <aaron.hou@mediatek.com>,
	Steve Lee <steve.lee@mediatek.com>,
	linux-bluetooth <linux-bluetooth@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-mediatek <linux-mediatek@lists.infradead.org>,
	Peter Tsao <peter.tsao@mediatek.com>
Subject: Re: [PATCH] Bluetooth: btusb: Fix MT7925 fail to send download patch command
Date: Fri, 29 Dec 2023 13:06:46 +0800	[thread overview]
Message-ID: <202312291253.5LoPimum-lkp@intel.com> (raw)
In-Reply-To: <20231228092014.23184-1-peter.tsao@mediatek.com>

Hi Peter,

kernel test robot noticed the following build errors:

[auto build test ERROR on bluetooth/master]
[also build test ERROR on bluetooth-next/master linus/master v6.7-rc7 next-20231222]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Peter-Tsao/Bluetooth-btusb-Fix-MT7925-fail-to-send-download-patch-command/20231228-172328
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git master
patch link:    https://lore.kernel.org/r/20231228092014.23184-1-peter.tsao%40mediatek.com
patch subject: [PATCH] Bluetooth: btusb: Fix MT7925 fail to send download patch command
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20231229/202312291253.5LoPimum-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231229/202312291253.5LoPimum-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312291253.5LoPimum-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/bluetooth/btusb.c: In function 'btusb_mtk_setup':
>> drivers/bluetooth/btusb.c:3122:63: error: 'val' undeclared (first use in this function)
    3122 |                 btusb_mtk_uhw_reg_read(data, MT7925_SLPPROT, &val);
         |                                                               ^~~
   drivers/bluetooth/btusb.c:3122:63: note: each undeclared identifier is reported only once for each function it appears in


vim +/val +3122 drivers/bluetooth/btusb.c

  3068	
  3069	static int btusb_mtk_setup(struct hci_dev *hdev)
  3070	{
  3071		struct btusb_data *data = hci_get_drvdata(hdev);
  3072		struct btmtk_hci_wmt_params wmt_params;
  3073		ktime_t calltime, delta, rettime;
  3074		struct btmtk_tci_sleep tci_sleep;
  3075		unsigned long long duration;
  3076		struct sk_buff *skb;
  3077		const char *fwname;
  3078		int err, status;
  3079		u32 dev_id = 0;
  3080		char fw_bin_name[64];
  3081		u32 fw_version = 0;
  3082		u8 param;
  3083		struct btmediatek_data *mediatek;
  3084	
  3085		calltime = ktime_get();
  3086	
  3087		err = btusb_mtk_id_get(data, 0x80000008, &dev_id);
  3088		if (err < 0) {
  3089			bt_dev_err(hdev, "Failed to get device id (%d)", err);
  3090			return err;
  3091		}
  3092	
  3093		if (!dev_id || dev_id != 0x7663) {
  3094			err = btusb_mtk_id_get(data, 0x70010200, &dev_id);
  3095			if (err < 0) {
  3096				bt_dev_err(hdev, "Failed to get device id (%d)", err);
  3097				return err;
  3098			}
  3099			err = btusb_mtk_id_get(data, 0x80021004, &fw_version);
  3100			if (err < 0) {
  3101				bt_dev_err(hdev, "Failed to get fw version (%d)", err);
  3102				return err;
  3103			}
  3104		}
  3105	
  3106		mediatek = hci_get_priv(hdev);
  3107		mediatek->dev_id = dev_id;
  3108		mediatek->reset_sync = btusb_mtk_reset;
  3109	
  3110		err = btmtk_register_coredump(hdev, btusb_driver.name, fw_version);
  3111		if (err < 0)
  3112			bt_dev_err(hdev, "Failed to register coredump (%d)", err);
  3113	
  3114		switch (dev_id) {
  3115		case 0x7663:
  3116			fwname = FIRMWARE_MT7663;
  3117			break;
  3118		case 0x7668:
  3119			fwname = FIRMWARE_MT7668;
  3120			break;
  3121		case 0x7925:
> 3122			btusb_mtk_uhw_reg_read(data, MT7925_SLPPROT, &val);
  3123			val |= SLPPROT_BYPASS;
  3124			btusb_mtk_uhw_reg_write(data, MT7925_SLPPROT, val);
  3125			fallthrough;
  3126		case 0x7922:
  3127		case 0x7961:
  3128			if (dev_id == 0x7925)
  3129				snprintf(fw_bin_name, sizeof(fw_bin_name),
  3130					 "mediatek/mt%04x/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",
  3131					 dev_id & 0xffff, dev_id & 0xffff, (fw_version & 0xff) + 1);
  3132			else
  3133				snprintf(fw_bin_name, sizeof(fw_bin_name),
  3134					 "mediatek/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",
  3135					 dev_id & 0xffff, (fw_version & 0xff) + 1);
  3136	
  3137			err = btmtk_setup_firmware_79xx(hdev, fw_bin_name,
  3138							btusb_mtk_hci_wmt_sync);
  3139			if (err < 0) {
  3140				bt_dev_err(hdev, "Failed to set up firmware (%d)", err);
  3141				return err;
  3142			}
  3143	
  3144			/* It's Device EndPoint Reset Option Register */
  3145			btusb_mtk_uhw_reg_write(data, MTK_EP_RST_OPT, MTK_EP_RST_IN_OUT_OPT);
  3146	
  3147			/* Enable Bluetooth protocol */
  3148			param = 1;
  3149			wmt_params.op = BTMTK_WMT_FUNC_CTRL;
  3150			wmt_params.flag = 0;
  3151			wmt_params.dlen = sizeof(param);
  3152			wmt_params.data = &param;
  3153			wmt_params.status = NULL;
  3154	
  3155			err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params);
  3156			if (err < 0) {
  3157				bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err);
  3158				return err;
  3159			}
  3160	
  3161			hci_set_msft_opcode(hdev, 0xFD30);
  3162			hci_set_aosp_capable(hdev);
  3163			goto done;
  3164		default:
  3165			bt_dev_err(hdev, "Unsupported hardware variant (%08x)",
  3166				   dev_id);
  3167			return -ENODEV;
  3168		}
  3169	
  3170		/* Query whether the firmware is already download */
  3171		wmt_params.op = BTMTK_WMT_SEMAPHORE;
  3172		wmt_params.flag = 1;
  3173		wmt_params.dlen = 0;
  3174		wmt_params.data = NULL;
  3175		wmt_params.status = &status;
  3176	
  3177		err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params);
  3178		if (err < 0) {
  3179			bt_dev_err(hdev, "Failed to query firmware status (%d)", err);
  3180			return err;
  3181		}
  3182	
  3183		if (status == BTMTK_WMT_PATCH_DONE) {
  3184			bt_dev_info(hdev, "firmware already downloaded");
  3185			goto ignore_setup_fw;
  3186		}
  3187	
  3188		/* Setup a firmware which the device definitely requires */
  3189		err = btmtk_setup_firmware(hdev, fwname,
  3190					   btusb_mtk_hci_wmt_sync);
  3191		if (err < 0)
  3192			return err;
  3193	
  3194	ignore_setup_fw:
  3195		err = readx_poll_timeout(btusb_mtk_func_query, hdev, status,
  3196					 status < 0 || status != BTMTK_WMT_ON_PROGRESS,
  3197					 2000, 5000000);
  3198		/* -ETIMEDOUT happens */
  3199		if (err < 0)
  3200			return err;
  3201	
  3202		/* The other errors happen in btusb_mtk_func_query */
  3203		if (status < 0)
  3204			return status;
  3205	
  3206		if (status == BTMTK_WMT_ON_DONE) {
  3207			bt_dev_info(hdev, "function already on");
  3208			goto ignore_func_on;
  3209		}
  3210	
  3211		/* Enable Bluetooth protocol */
  3212		param = 1;
  3213		wmt_params.op = BTMTK_WMT_FUNC_CTRL;
  3214		wmt_params.flag = 0;
  3215		wmt_params.dlen = sizeof(param);
  3216		wmt_params.data = &param;
  3217		wmt_params.status = NULL;
  3218	
  3219		err = btusb_mtk_hci_wmt_sync(hdev, &wmt_params);
  3220		if (err < 0) {
  3221			bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err);
  3222			return err;
  3223		}
  3224	
  3225	ignore_func_on:
  3226		/* Apply the low power environment setup */
  3227		tci_sleep.mode = 0x5;
  3228		tci_sleep.duration = cpu_to_le16(0x640);
  3229		tci_sleep.host_duration = cpu_to_le16(0x640);
  3230		tci_sleep.host_wakeup_pin = 0;
  3231		tci_sleep.time_compensation = 0;
  3232	
  3233		skb = __hci_cmd_sync(hdev, 0xfc7a, sizeof(tci_sleep), &tci_sleep,
  3234				     HCI_INIT_TIMEOUT);
  3235		if (IS_ERR(skb)) {
  3236			err = PTR_ERR(skb);
  3237			bt_dev_err(hdev, "Failed to apply low power setting (%d)", err);
  3238			return err;
  3239		}
  3240		kfree_skb(skb);
  3241	
  3242	done:
  3243		rettime = ktime_get();
  3244		delta = ktime_sub(rettime, calltime);
  3245		duration = (unsigned long long)ktime_to_ns(delta) >> 10;
  3246	
  3247		bt_dev_info(hdev, "Device setup in %llu usecs", duration);
  3248	
  3249		return 0;
  3250	}
  3251	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

      parent reply	other threads:[~2023-12-29  5:07 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-12-28  9:20 [PATCH] Bluetooth: btusb: Fix MT7925 fail to send download patch command Peter Tsao
2023-12-28  9:56 ` bluez.test.bot
2023-12-29  0:44 ` [PATCH] " kernel test robot
2023-12-29  5:06 ` kernel test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202312291253.5LoPimum-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=aaron.hou@mediatek.com \
    --cc=chris.lu@mediatek.com \
    --cc=deren.Wu@mediatek.com \
    --cc=johan.hedberg@gmail.com \
    --cc=linux-bluetooth@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=luiz.dentz@gmail.com \
    --cc=marcel@holtmann.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=peter.tsao@mediatek.com \
    --cc=sean.wang@mediatek.com \
    --cc=steve.lee@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.