[omap:droid4-pending-mdm-v5.0 5/12] drivers/mfd/motorola-mdm.c:1186: undefined reference to `gsm_serdev_unregister_device'

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

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git droid4-pending-mdm-v5.0
head:   6695f4ec8a19f6fbfcfdccb9928ad31a614fab40
commit: c4ec0e060c3f106099f24b4c978269d429c523b3 [5/12] mfd: motmdm: Add Motorola TS 27.010 serdev driver for devices like droid4
config: x86_64-randconfig-s3-03071354 (attached as .config)
compiler: gcc-8 (Debian 8.3.0-2) 8.3.0
reproduce:
        git checkout c4ec0e060c3f106099f24b4c978269d429c523b3
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   ld: drivers/mfd/motorola-mdm.o: in function `motmdm_remove':
>> drivers/mfd/motorola-mdm.c:1186: undefined reference to `gsm_serdev_unregister_device'
   ld: drivers/mfd/motorola-mdm.o: in function `motmdm_probe':
>> drivers/mfd/motorola-mdm.c:1098: undefined reference to `gsm_serdev_register_device'
>> ld: drivers/mfd/motorola-mdm.c:1164: undefined reference to `gsm_serdev_unregister_device'

vim +1186 drivers/mfd/motorola-mdm.c

  1056	
  1057	static int motmdm_probe(struct serdev_device *serdev)
  1058	{
  1059		struct device *dev = &serdev->dev;
  1060		const struct of_device_id *match;
  1061		struct gsm_serdev *gsd;
  1062		struct motmdm *ddata;
  1063		int err;
  1064	
  1065		match = of_match_device(of_match_ptr(motmdm_id_table), dev);
  1066		if (!match)
  1067			return -ENODEV;
  1068	
  1069		ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
  1070		if (!ddata)
  1071			return -ENOMEM;
  1072	
  1073		ddata->dev = dev;
  1074		ddata->cfg = match->data;
  1075	
  1076		INIT_LIST_HEAD(&ddata->dlcis);
  1077		INIT_LIST_HEAD(&ddata->cdevs);
  1078		gsd = &ddata->gsd;
  1079		gsd->serdev = serdev;
  1080		gsd->output = motmdm_output;
  1081		serdev_device_set_drvdata(serdev, gsd);
  1082		gsm_serdev_set_drvdata(dev, ddata);
  1083	
  1084		err = motmdm_init_phy(dev);
  1085		if (err)
  1086			return err;
  1087	
  1088		pm_runtime_set_autosuspend_delay(dev, 50);
  1089		pm_runtime_use_autosuspend(dev);
  1090		pm_runtime_enable(dev);
  1091		err = pm_runtime_get_sync(dev);
  1092		if (err < 0) {
  1093			pm_runtime_put_noidle(dev);
  1094	
  1095			return err;
  1096		}
  1097	
> 1098		err = gsm_serdev_register_device(gsd);
  1099		if (err)
  1100			goto disable;
  1101	
  1102		err = serdev_device_open(gsd->serdev);
  1103		if (err)
  1104			goto disable;
  1105	
  1106		serdev_device_set_baudrate(gsd->serdev, 115200);
  1107		serdev_device_set_rts(gsd->serdev, true);
  1108		serdev_device_set_flow_control(gsd->serdev, true);
  1109	
  1110		/*
  1111		 * Getting dlci0 connected quirk: We set initial retransmissions
  1112		 * value high to get n_gsm to send SABM packets. Then after about
  1113		 * three seconds we'll get a "reassembly overrun" error from firmware
  1114		 * on dlci0 followed by DM(P) packets and then we're connected in ADM
  1115		 * mode. Note we will set the retransmissions back to default value
  1116		 * later on.
  1117		 */
  1118		err = motmdm_set_config(dev, MOTMDM_C_N2 * 10);
  1119		if (err)
  1120			goto close;
  1121	
  1122		msleep(3000);
  1123	
  1124		err = motmdm_check_revision(dev);
  1125		if (err)
  1126			goto close;
  1127	
  1128		msleep(500);
  1129	
  1130		err = motmdm_cdev_init(dev);
  1131		if (err)
  1132			goto close;
  1133	
  1134		pm_runtime_put_sync(dev);
  1135	
  1136		err = devm_mfd_add_devices(dev, 0, motmdm_mfd_devices,
  1137					   ARRAY_SIZE(motmdm_mfd_devices),
  1138					   NULL, 0, NULL);
  1139		if (err)
  1140			goto cdev_cleanup;
  1141	
  1142		/* Set initial retransmissions back to default value */
  1143		err = motmdm_set_config(dev, MOTMDM_C_N2);
  1144		if (err)
  1145			goto cdev_cleanup;
  1146	
  1147		if (ddata->cfg->aggressive_pm) {
  1148			pm_runtime_set_autosuspend_delay(&serdev->ctrl->dev, 50);
  1149			pm_runtime_put(&serdev->ctrl->dev);
  1150		}
  1151	
  1152		return 0;
  1153	
  1154	cdev_cleanup:
  1155		motmdm_cdev_cleanup(dev);
  1156	
  1157	close:
  1158		serdev_device_close(serdev);
  1159	
  1160	disable:
  1161		pm_runtime_put_sync(dev);
  1162		pm_runtime_disable(dev);
  1163		pm_runtime_dont_use_autosuspend(dev);
> 1164		gsm_serdev_unregister_device(gsd);
  1165	
  1166		return err;
  1167	}
  1168	
  1169	static void motmdm_remove(struct serdev_device *serdev)
  1170	{
  1171		struct gsm_serdev *gsd = serdev_device_get_drvdata(serdev);
  1172		struct device *dev = &serdev->dev;
  1173		struct motmdm *ddata = gsm_serdev_get_drvdata(dev);
  1174		int err;
  1175	
  1176		/* Balance the put done in probe for UART */
  1177		if (ddata->cfg->aggressive_pm)
  1178			pm_runtime_get(&serdev->ctrl->dev);
  1179	
  1180		err = pm_runtime_get_sync(dev);
  1181		if (err < 0)
  1182			dev_warn(dev, "%s: PM runtime: %i\n", __func__, err);
  1183	
  1184		motmdm_cdev_cleanup(dev);
  1185		serdev_device_close(serdev);
> 1186		gsm_serdev_unregister_device(gsd);
  1187	
  1188		pm_runtime_put_sync(dev);
  1189		pm_runtime_disable(dev);
  1190		pm_runtime_dont_use_autosuspend(dev);
  1191	}
  1192	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux