All of lore.kernel.org
 help / color / mirror / Atom feed
* [sashal-stable:pending-4.19 88/112] drivers/tty/serial/8250/8250_omap.c:1258:9: error: implicit declaration of function 'cpu_latency_qos_remove_request'; did you mean 'dev_pm_qos_remove_request'?
@ 2023-07-12  6:43 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-07-12  6:43 UTC (permalink / raw)
  To: Sasha Levin; +Cc: oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git pending-4.19
head:   e85697251f8c41a6cc96a7e7b9ec143ebc3f1901
commit: 37ba6795a346e7cf8e91f488ed535ddfbc0260a1 [88/112] serial: 8250: omap: Fix freeing of resources on failed register
config: arm-randconfig-r001-20230712 (https://download.01.org/0day-ci/archive/20230712/202307121445.wVGkoSA4-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230712/202307121445.wVGkoSA4-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/202307121445.wVGkoSA4-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/tty/serial/8250/8250_omap.c: In function 'omap8250_probe':
>> drivers/tty/serial/8250/8250_omap.c:1258:9: error: implicit declaration of function 'cpu_latency_qos_remove_request'; did you mean 'dev_pm_qos_remove_request'? [-Werror=implicit-function-declaration]
    1258 |         cpu_latency_qos_remove_request(&priv->pm_qos_request);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |         dev_pm_qos_remove_request
   cc1: some warnings being treated as errors


vim +1258 drivers/tty/serial/8250/8250_omap.c

  1109	
  1110	static int omap8250_probe(struct platform_device *pdev)
  1111	{
  1112		struct resource *regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  1113		struct resource *irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
  1114		struct omap8250_priv *priv;
  1115		struct uart_8250_port up;
  1116		int ret;
  1117		void __iomem *membase;
  1118	
  1119		if (!regs || !irq) {
  1120			dev_err(&pdev->dev, "missing registers or irq\n");
  1121			return -EINVAL;
  1122		}
  1123	
  1124		priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
  1125		if (!priv)
  1126			return -ENOMEM;
  1127	
  1128		membase = devm_ioremap_nocache(&pdev->dev, regs->start,
  1129					       resource_size(regs));
  1130		if (!membase)
  1131			return -ENODEV;
  1132	
  1133		memset(&up, 0, sizeof(up));
  1134		up.port.dev = &pdev->dev;
  1135		up.port.mapbase = regs->start;
  1136		up.port.membase = membase;
  1137		up.port.irq = irq->start;
  1138		/*
  1139		 * It claims to be 16C750 compatible however it is a little different.
  1140		 * It has EFR and has no FCR7_64byte bit. The AFE (which it claims to
  1141		 * have) is enabled via EFR instead of MCR. The type is set here 8250
  1142		 * just to get things going. UNKNOWN does not work for a few reasons and
  1143		 * we don't need our own type since we don't use 8250's set_termios()
  1144		 * or pm callback.
  1145		 */
  1146		up.port.type = PORT_8250;
  1147		up.port.iotype = UPIO_MEM;
  1148		up.port.flags = UPF_FIXED_PORT | UPF_FIXED_TYPE | UPF_SOFT_FLOW |
  1149			UPF_HARD_FLOW;
  1150		up.port.private_data = priv;
  1151	
  1152		up.port.regshift = 2;
  1153		up.port.fifosize = 64;
  1154		up.tx_loadsz = 64;
  1155		up.capabilities = UART_CAP_FIFO;
  1156	#ifdef CONFIG_PM
  1157		/*
  1158		 * Runtime PM is mostly transparent. However to do it right we need to a
  1159		 * TX empty interrupt before we can put the device to auto idle. So if
  1160		 * PM is not enabled we don't add that flag and can spare that one extra
  1161		 * interrupt in the TX path.
  1162		 */
  1163		up.capabilities |= UART_CAP_RPM;
  1164	#endif
  1165		up.port.set_termios = omap_8250_set_termios;
  1166		up.port.set_mctrl = omap8250_set_mctrl;
  1167		up.port.pm = omap_8250_pm;
  1168		up.port.startup = omap_8250_startup;
  1169		up.port.shutdown = omap_8250_shutdown;
  1170		up.port.throttle = omap_8250_throttle;
  1171		up.port.unthrottle = omap_8250_unthrottle;
  1172		up.port.rs485_config = omap_8250_rs485_config;
  1173	
  1174		if (pdev->dev.of_node) {
  1175			const struct of_device_id *id;
  1176	
  1177			ret = of_alias_get_id(pdev->dev.of_node, "serial");
  1178	
  1179			of_property_read_u32(pdev->dev.of_node, "clock-frequency",
  1180					     &up.port.uartclk);
  1181			priv->wakeirq = irq_of_parse_and_map(pdev->dev.of_node, 1);
  1182	
  1183			id = of_match_device(of_match_ptr(omap8250_dt_ids), &pdev->dev);
  1184			if (id && id->data)
  1185				priv->habit |= *(u8 *)id->data;
  1186		} else {
  1187			ret = pdev->id;
  1188		}
  1189		if (ret < 0) {
  1190			dev_err(&pdev->dev, "failed to get alias/pdev id\n");
  1191			return ret;
  1192		}
  1193		up.port.line = ret;
  1194	
  1195		if (!up.port.uartclk) {
  1196			up.port.uartclk = DEFAULT_CLK_SPEED;
  1197			dev_warn(&pdev->dev,
  1198				 "No clock speed specified: using default: %d\n",
  1199				 DEFAULT_CLK_SPEED);
  1200		}
  1201	
  1202		priv->latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE;
  1203		priv->calc_latency = PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE;
  1204		pm_qos_add_request(&priv->pm_qos_request, PM_QOS_CPU_DMA_LATENCY,
  1205				   priv->latency);
  1206		INIT_WORK(&priv->qos_work, omap8250_uart_qos_work);
  1207	
  1208		spin_lock_init(&priv->rx_dma_lock);
  1209	
  1210		device_init_wakeup(&pdev->dev, true);
  1211		pm_runtime_enable(&pdev->dev);
  1212		pm_runtime_use_autosuspend(&pdev->dev);
  1213		pm_runtime_set_autosuspend_delay(&pdev->dev, -1);
  1214	
  1215		pm_runtime_irq_safe(&pdev->dev);
  1216	
  1217		pm_runtime_get_sync(&pdev->dev);
  1218	
  1219		omap_serial_fill_features_erratas(&up, priv);
  1220		up.port.handle_irq = omap8250_no_handle_irq;
  1221	#ifdef CONFIG_SERIAL_8250_DMA
  1222		if (pdev->dev.of_node) {
  1223			/*
  1224			 * Oh DMA support. If there are no DMA properties in the DT then
  1225			 * we will fall back to a generic DMA channel which does not
  1226			 * really work here. To ensure that we do not get a generic DMA
  1227			 * channel assigned, we have the the_no_dma_filter_fn() here.
  1228			 * To avoid "failed to request DMA" messages we check for DMA
  1229			 * properties in DT.
  1230			 */
  1231			ret = of_property_count_strings(pdev->dev.of_node, "dma-names");
  1232			if (ret == 2) {
  1233				up.dma = &priv->omap8250_dma;
  1234				priv->omap8250_dma.fn = the_no_dma_filter_fn;
  1235				priv->omap8250_dma.tx_dma = omap_8250_tx_dma;
  1236				priv->omap8250_dma.rx_dma = omap_8250_rx_dma;
  1237				priv->omap8250_dma.rx_size = RX_TRIGGER;
  1238				priv->omap8250_dma.rxconf.src_maxburst = RX_TRIGGER;
  1239				priv->omap8250_dma.txconf.dst_maxburst = TX_TRIGGER;
  1240			}
  1241		}
  1242	#endif
  1243		ret = serial8250_register_8250_port(&up);
  1244		if (ret < 0) {
  1245			dev_err(&pdev->dev, "unable to register 8250 port\n");
  1246			goto err;
  1247		}
  1248		priv->line = ret;
  1249		platform_set_drvdata(pdev, priv);
  1250		pm_runtime_mark_last_busy(&pdev->dev);
  1251		pm_runtime_put_autosuspend(&pdev->dev);
  1252		return 0;
  1253	err:
  1254		pm_runtime_dont_use_autosuspend(&pdev->dev);
  1255		pm_runtime_put_sync(&pdev->dev);
  1256		flush_work(&priv->qos_work);
  1257		pm_runtime_disable(&pdev->dev);
> 1258		cpu_latency_qos_remove_request(&priv->pm_qos_request);
  1259		return ret;
  1260	}
  1261	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-07-12  6:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-12  6:43 [sashal-stable:pending-4.19 88/112] drivers/tty/serial/8250/8250_omap.c:1258:9: error: implicit declaration of function 'cpu_latency_qos_remove_request'; did you mean 'dev_pm_qos_remove_request'? kernel test robot

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.