From nobody Thu Mar 13 21:09:27 2025 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0E315221541 for ; Fri, 14 Feb 2025 11:47:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739533660; cv=none; b=HSW3SdgTA/xBXgcZKqCg7p0PWJo1klljEq6bt9Sg6qFfwNR15i6zL85zWiht1lBDhhhGD4SOhwhPSzNCaDadQ8rkD7fJkeutQe8g3u5j3Ql4EwfF+ewwjgmJMxbdJMpOKn8D0AyT2grA4Zi0X8A8wyPZ9Vo/23GuXQk2K4SHrn0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739533660; c=relaxed/simple; bh=IxVDIkctP1LUMSVUoc9gQ/ewcLPPyAT3NhvZ6AqIyHQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=txIkIYaVinF5vdoToKsEmJZvsDck5X/mLY6QxHh3j1smpDg8DYG6MRio1usFI2S374cN7WUAxDmwZh9KQQ+eAS5IFyJoO12S5xulFSUcGXjCD92VyxJuJK+TMgG2QQE/+Gqjjn7eAWsIAlmYsqWWbPeAP1lLE2Roa4eHpx4Dhyg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=GCethhNZ; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GCethhNZ" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-38a25d4b9d4so1303484f8f.0 for ; Fri, 14 Feb 2025 03:47:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739533655; x=1740138455; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=9+PfXfsN0oUC9XPd2q+9CqEOtHstDCBn84q4ujRv4eQ=; b=GCethhNZDzt2fXEDrQRgDI1owekzqD864dZU8ZM+DPJT7D8iqGzxateKE7zQewGlix XRuYNdFsbWZ1spY0iRydvNZXb6SOkM18T/3KQS2jFLzXnYJoYZK2RFn9X1O6Uvi+Gbdt Oc9jMIjDVLc/9PrNZf1c40p2GVszpD+5fn5mCX68DE5NUTY/qe8S/fpnE12cpIMz1uU9 vcaSjXQH3JVzmdA6cGpzLo7zsboftsPKNfcqzr6KIwzIpEwtJzxYTY8Yx3rIjvw68mYI 8lbNo1SO/sxcgWkZQ5YLgEZxHxeJypqFr1f9iQcZJqUpCgxCKSif7OOqdxySIM82fTl8 dfcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739533655; x=1740138455; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9+PfXfsN0oUC9XPd2q+9CqEOtHstDCBn84q4ujRv4eQ=; b=fC+LMTMvjyc/XUcyexbHHb8Bj+xk0pbvZ0JNl4BnfBmDDPzX7REnkW7tSXK3VIdUxD fY4mKROvSs2N95NZSFa73ranPmX5WgOzzZdSolCwUCNM1vQCFBiiR++pkhP88pSBdTJ2 ajqq5LR2pzyU9054H+VhvjHv4H2TFWaVd3yzrWFE7ZeYRfF1n9RLwWi0X/AgAKqOTGhc F4eMAV9iR7DtFn+z+nIHBoc0nX9jvIn4ozR0hWmnzBeKlKG0I0VELY6WfOLAD6UJ/aEV sgh6MVS/kwzuM8vNxpTb5VWZ4Z9krBBNPk+r5r1B4rtmCwvPqrXN7eMzZLYfX3cpGgAw MSEQ== X-Forwarded-Encrypted: i=1; AJvYcCVNGlI6H/ggNiUHIpUryywNplHaI6MVCqw6fQr+qL2T9GhakL1Bq+z6i+Pvz3Sdm+6PJOcDXgzq8WYWPss=@vger.kernel.org X-Gm-Message-State: AOJu0YxdzJ1xtoNtg6nK2M0ELw8ctVU9gzP28G+UsmEHd+6Q+bGFKaJo pcogTSE6XqNTaLxdGy5l81ze0Q1mUdH5fl2eODXN2XhC4PE1wKx1sVzDqsTR X-Gm-Gg: ASbGnct2aOTx10MtjXIbtiQBjBQNR51aAQyBeIbnduR8zRDcMtx67ri64HBpeg9Mn9I 2PG01PRZPQDYao10b4eKTIwBuQmlKBC6ff4282zxWXfKQdi3FymbaEOyBnWXpZKilTxVlpwrQb9 SFG+KY9bsU4kADJMfae/SqRYJJwa6AHimh3YrohznFOCyWW0/xwNRCq8Qlu1jS8CzsHAw7PcWS6 d/D5D40d3/o+dSrxlftGVuZIgGry36ZVgr4KUjnZjxfroMx6SAPdUqrBKeAcH5bSkQib83V9JQI UNTnO9/gLnvn3LGMAPv8KgmLQj5fM6PqerLnFQCXpJ0dpPmHl0I= X-Google-Smtp-Source: AGHT+IGGhlAqZSXicyA/P0eISacPel4A1xiGkKuGp01T18eRpqdUUUNLOk5XeXNSsRonjT1jUamuXw== X-Received: by 2002:a05:6000:178b:b0:38d:c55e:ebcf with SMTP id ffacd0b85a97d-38f2451a511mr8136567f8f.52.1739533654770; Fri, 14 Feb 2025 03:47:34 -0800 (PST) Received: from localhost.localdomain (82-64-73-52.subs.proxad.net. [82.64.73.52]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-439617fccfesm41945245e9.11.2025.02.14.03.47.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Feb 2025 03:47:33 -0800 (PST) From: Dave Penkler To: gregkh@linuxfoundation.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Cc: Dave Penkler Subject: [PATCH 02/17] staging: gpib: agilent usb console messaging cleanup Date: Fri, 14 Feb 2025 12:46:53 +0100 Message-ID: <20250214114708.28947-3-dpenkler@gmail.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250214114708.28947-1-dpenkler@gmail.com> References: <20250214114708.28947-1-dpenkler@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Enable module name to be printed in pr_xxx and dev_xxx Use DRV_NAME defined as KBUILD_MODNAME instead of hard coded string in usb_driver struct. Remove __func__ parameter in dev_dbg messages as this can be enabled with dynamic debug. Remove __func__ parameter in dev_err messages as they are not needed. The module name is sufficient. Change pr_info to dev_dbg where needed and remove the rest where possible. Remove test and error messages for buffer over run in write and read_registers as these are just trying to catch bugs in the driver. Remove agilent_82357a string prefix in error messages. Return -EIO for too many reads in read_registers instead of continuing after printing an error message. Change pr_warn to dev_warn. Remove warning on calls for unsupported functionality. Remove test and message for buffer overflow in agilent_82357_init and agilent_82357a_go_idle which are just checking for a driver bug. Use actual indeces in the array instead of i and then incrementing i so that the code is clear and there is no need to check for overflow or print a message. Signed-off-by: Dave Penkler --- .../gpib/agilent_82357a/agilent_82357a.c | 359 +++++++----------- 1 file changed, 143 insertions(+), 216 deletions(-) diff --git a/drivers/staging/gpib/agilent_82357a/agilent_82357a.c b/drivers= /staging/gpib/agilent_82357a/agilent_82357a.c index 69f0e490d401..7ebebe00dc48 100644 --- a/drivers/staging/gpib/agilent_82357a/agilent_82357a.c +++ b/drivers/staging/gpib/agilent_82357a/agilent_82357a.c @@ -7,6 +7,10 @@ =20 #define _GNU_SOURCE =20 +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#define dev_fmt pr_fmt +#define DRV_NAME KBUILD_MODNAME + #include #include #include @@ -79,14 +83,12 @@ static int agilent_82357a_send_bulk_msg(struct agilent_= 82357a_priv *a_priv, void =20 retval =3D usb_submit_urb(a_priv->bulk_urb, GFP_KERNEL); if (retval) { - dev_err(&usb_dev->dev, "%s: failed to submit bulk out urb, retval=3D%i\n= ", - __func__, retval); + dev_err(&usb_dev->dev, "failed to submit bulk out urb, retval=3D%i\n", r= etval); mutex_unlock(&a_priv->bulk_alloc_lock); goto cleanup; } mutex_unlock(&a_priv->bulk_alloc_lock); if (down_interruptible(&context->complete)) { - dev_err(&usb_dev->dev, "%s: interrupted\n", __func__); retval =3D -ERESTARTSYS; goto cleanup; } @@ -149,14 +151,12 @@ static int agilent_82357a_receive_bulk_msg(struct agi= lent_82357a_priv *a_priv, v =20 retval =3D usb_submit_urb(a_priv->bulk_urb, GFP_KERNEL); if (retval) { - dev_err(&usb_dev->dev, "%s: failed to submit bulk out urb, retval=3D%i\n= ", - __func__, retval); + dev_err(&usb_dev->dev, "failed to submit bulk in urb, retval=3D%i\n", re= tval); mutex_unlock(&a_priv->bulk_alloc_lock); goto cleanup; } mutex_unlock(&a_priv->bulk_alloc_lock); if (down_interruptible(&context->complete)) { - dev_err(&usb_dev->dev, "%s: interrupted\n", __func__); retval =3D -ERESTARTSYS; goto cleanup; } @@ -205,7 +205,6 @@ static int agilent_82357a_receive_control_msg(struct ag= ilent_82357a_priv *a_priv =20 static void agilent_82357a_dump_raw_block(const u8 *raw_data, int length) { - pr_info("hex block dump\n"); print_hex_dump(KERN_INFO, "", DUMP_PREFIX_NONE, 8, 1, raw_data, length, t= rue); } =20 @@ -225,7 +224,7 @@ static int agilent_82357a_write_registers(struct agilen= t_82357a_priv *a_priv, static const int max_writes =3D 31; =20 if (num_writes > max_writes) { - dev_err(&usb_dev->dev, "%s: bug! num_writes=3D%i too large\n", __func__,= num_writes); + dev_err(&usb_dev->dev, "bug! num_writes=3D%i too large\n", num_writes); return -EIO; } out_data_length =3D num_writes * bytes_per_write + header_length; @@ -239,8 +238,7 @@ static int agilent_82357a_write_registers(struct agilen= t_82357a_priv *a_priv, out_data[i++] =3D writes[j].address; out_data[i++] =3D writes[j].value; } - if (i > out_data_length) - dev_err(&usb_dev->dev, "%s: bug! buffer overrun\n", __func__); + retval =3D mutex_lock_interruptible(&a_priv->bulk_transfer_lock); if (retval) { kfree(out_data); @@ -249,8 +247,8 @@ static int agilent_82357a_write_registers(struct agilen= t_82357a_priv *a_priv, retval =3D agilent_82357a_send_bulk_msg(a_priv, out_data, i, &bytes_writt= en, 1000); kfree(out_data); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_send_bulk_msg returned %i, by= tes_written=3D%i, i=3D%i\n", - __func__, retval, bytes_written, i); + dev_err(&usb_dev->dev, "send_bulk_msg returned %i, bytes_written=3D%i, i= =3D%i\n", + retval, bytes_written, i); mutex_unlock(&a_priv->bulk_transfer_lock); return retval; } @@ -265,20 +263,19 @@ static int agilent_82357a_write_registers(struct agil= ent_82357a_priv *a_priv, mutex_unlock(&a_priv->bulk_transfer_lock); =20 if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_receive_bulk_msg returned %i,= bytes_read=3D%i\n", - __func__, retval, bytes_read); + dev_err(&usb_dev->dev, "receive_bulk_msg returned %i, bytes_read=3D%i\n", + retval, bytes_read); agilent_82357a_dump_raw_block(in_data, bytes_read); kfree(in_data); return -EIO; } if (in_data[0] !=3D (0xff & ~DATA_PIPE_CMD_WR_REGS)) { - dev_err(&usb_dev->dev, "%s: error, bulk command=3D0x%x !=3D ~DATA_PIPE_C= MD_WR_REGS\n", - __func__, in_data[0]); + dev_err(&usb_dev->dev, "bulk command=3D0x%x !=3D ~DATA_PIPE_CMD_WR_REGS\= n", in_data[0]); return -EIO; } if (in_data[1]) { - dev_err(&usb_dev->dev, "%s: nonzero error code 0x%x in DATA_PIPE_CMD_WR_= REGS response\n", - __func__, in_data[1]); + dev_err(&usb_dev->dev, "nonzero error code 0x%x in DATA_PIPE_CMD_WR_REGS= response\n", + in_data[1]); return -EIO; } kfree(in_data); @@ -299,9 +296,10 @@ static int agilent_82357a_read_registers(struct agilen= t_82357a_priv *a_priv, static const int header_length =3D 2; static const int max_reads =3D 62; =20 - if (num_reads > max_reads) - dev_err(&usb_dev->dev, "%s: bug! num_reads=3D%i too large\n", __func__, = num_reads); - + if (num_reads > max_reads) { + dev_err(&usb_dev->dev, "bug! num_reads=3D%i too large\n", num_reads); + return -EIO; + } out_data_length =3D num_reads + header_length; out_data =3D kmalloc(out_data_length, GFP_KERNEL); if (!out_data) @@ -311,8 +309,7 @@ static int agilent_82357a_read_registers(struct agilent= _82357a_priv *a_priv, out_data[i++] =3D num_reads; for (j =3D 0; j < num_reads; j++) out_data[i++] =3D reads[j].address; - if (i > out_data_length) - dev_err(&usb_dev->dev, "%s: bug! buffer overrun\n", __func__); + if (blocking) { retval =3D mutex_lock_interruptible(&a_priv->bulk_transfer_lock); if (retval) { @@ -329,8 +326,8 @@ static int agilent_82357a_read_registers(struct agilent= _82357a_priv *a_priv, retval =3D agilent_82357a_send_bulk_msg(a_priv, out_data, i, &bytes_writt= en, 1000); kfree(out_data); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_send_bulk_msg returned %i, by= tes_written=3D%i, i=3D%i\n", - __func__, retval, bytes_written, i); + dev_err(&usb_dev->dev, "send_bulk_msg returned %i, bytes_written=3D%i, i= =3D%i\n", + retval, bytes_written, i); mutex_unlock(&a_priv->bulk_transfer_lock); return retval; } @@ -345,21 +342,20 @@ static int agilent_82357a_read_registers(struct agile= nt_82357a_priv *a_priv, mutex_unlock(&a_priv->bulk_transfer_lock); =20 if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_receive_bulk_msg returned %i,= bytes_read=3D%i\n", - __func__, retval, bytes_read); + dev_err(&usb_dev->dev, "receive_bulk_msg returned %i, bytes_read=3D%i\n", + retval, bytes_read); agilent_82357a_dump_raw_block(in_data, bytes_read); kfree(in_data); return -EIO; } i =3D 0; if (in_data[i++] !=3D (0xff & ~DATA_PIPE_CMD_RD_REGS)) { - dev_err(&usb_dev->dev, "%s: error, bulk command=3D0x%x !=3D ~DATA_PIPE_C= MD_RD_REGS\n", - __func__, in_data[0]); + dev_err(&usb_dev->dev, "bulk command=3D0x%x !=3D ~DATA_PIPE_CMD_RD_REGS\= n", in_data[0]); return -EIO; } if (in_data[i++]) { - dev_err(&usb_dev->dev, "%s: nonzero error code 0x%x in DATA_PIPE_CMD_RD_= REGS response\n", - __func__, in_data[1]); + dev_err(&usb_dev->dev, "nonzero error code 0x%x in DATA_PIPE_CMD_RD_REGS= response\n", + in_data[1]); return -EIO; } for (j =3D 0; j < num_reads; j++) @@ -390,14 +386,13 @@ static int agilent_82357a_abort(struct agilent_82357a= _priv *a_priv, int flush) wIndex, status_data, status_data_len, 100); if (receive_control_retval < 0) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_receive_control_msg() returne= d %i\n", - __func__, receive_control_retval); + dev_err(&usb_dev->dev, "82357a_receive_control_msg() returned %i\n", + receive_control_retval); retval =3D -EIO; goto cleanup; } if (status_data[0] !=3D (~XFER_ABORT & 0xff)) { - dev_err(&usb_dev->dev, "%s: error, major code=3D0x%x !=3D ~XFER_ABORT\n", - __func__, status_data[0]); + dev_err(&usb_dev->dev, "major code=3D0x%x !=3D ~XFER_ABORT\n", status_da= ta[0]); retval =3D -EIO; goto cleanup; } @@ -413,8 +408,7 @@ static int agilent_82357a_abort(struct agilent_82357a_p= riv *a_priv, int flush) fallthrough; case UGP_ERR_FLUSHING_ALREADY: default: - dev_err(&usb_dev->dev, "%s: abort returned error code=3D0x%x\n", - __func__, status_data[1]); + dev_err(&usb_dev->dev, "abort returned error code=3D0x%x\n", status_data= [1]); retval =3D -EIO; break; } @@ -469,8 +463,8 @@ static int agilent_82357a_read(gpib_board_t *board, uin= t8_t *buffer, size_t leng retval =3D agilent_82357a_send_bulk_msg(a_priv, out_data, i, &bytes_writt= en, msec_timeout); kfree(out_data); if (retval || bytes_written !=3D i) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_send_bulk_msg returned %i, by= tes_written=3D%i, i=3D%i\n", - __func__, retval, bytes_written, i); + dev_err(&usb_dev->dev, "send_bulk_msg returned %i, bytes_written=3D%i, i= =3D%i\n", + retval, bytes_written, i); mutex_unlock(&a_priv->bulk_transfer_lock); if (retval < 0) return retval; @@ -501,19 +495,19 @@ static int agilent_82357a_read(gpib_board_t *board, u= int8_t *buffer, size_t leng &extra_bytes_read, 100); bytes_read +=3D extra_bytes_read; if (extra_bytes_retval) { - dev_err(&usb_dev->dev, "%s: extra_bytes_retval=3D%i, bytes_read=3D%i\n", - __func__, extra_bytes_retval, bytes_read); + dev_err(&usb_dev->dev, "extra_bytes_retval=3D%i, bytes_read=3D%i\n", + extra_bytes_retval, bytes_read); agilent_82357a_abort(a_priv, 0); } } else if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_receive_bulk_msg returned %i,= bytes_read=3D%i\n", - __func__, retval, bytes_read); + dev_err(&usb_dev->dev, "receive_bulk_msg returned %i, bytes_read=3D%i\n", + retval, bytes_read); agilent_82357a_abort(a_priv, 0); } mutex_unlock(&a_priv->bulk_transfer_lock); if (bytes_read > length + 1) { bytes_read =3D length + 1; - pr_warn("%s: bytes_read > length? truncating", __func__); + dev_warn(&usb_dev->dev, "bytes_read > length? truncating"); } =20 if (bytes_read >=3D 1) { @@ -584,8 +578,8 @@ static ssize_t agilent_82357a_generic_write(gpib_board_= t *board, uint8_t *buffer kfree(out_data); if (retval || raw_bytes_written !=3D i) { agilent_82357a_abort(a_priv, 0); - dev_err(&usb_dev->dev, "%s: agilent_82357a_send_bulk_msg returned %i, ra= w_bytes_written=3D%i, i=3D%i\n", - __func__, retval, raw_bytes_written, i); + dev_err(&usb_dev->dev, "send_bulk_msg returned %i, raw_bytes_written=3D%= i, i=3D%i\n", + retval, raw_bytes_written, i); mutex_unlock(&a_priv->bulk_transfer_lock); if (retval < 0) return retval; @@ -597,7 +591,7 @@ static ssize_t agilent_82357a_generic_write(gpib_board_= t *board, uint8_t *buffer &a_priv->interrupt_flags) || test_bit(TIMO_NUM, &board->status)); if (retval) { - dev_err(&usb_dev->dev, "%s: wait write complete interrupted\n", __func__= ); + dev_dbg(&usb_dev->dev, "wait write complete interrupted\n"); agilent_82357a_abort(a_priv, 0); mutex_unlock(&a_priv->bulk_transfer_lock); return -ERESTARTSYS; @@ -614,8 +608,7 @@ static ssize_t agilent_82357a_generic_write(gpib_board_= t *board, uint8_t *buffer read_reg.address =3D BSR; retval =3D agilent_82357a_read_registers(a_priv, &read_reg, 1, 1); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_read_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "read_registers() returned error\n"); return -ETIMEDOUT; } =20 @@ -632,8 +625,7 @@ static ssize_t agilent_82357a_generic_write(gpib_board_= t *board, uint8_t *buffer read_reg.address =3D ADSR; retval =3D agilent_82357a_read_registers(a_priv, &read_reg, 1, 1); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_read_registers() returned e= rror\n", - __func__); + dev_err(&usb_dev->dev, "read_registers() returned error\n"); return -ETIMEDOUT; } adsr =3D read_reg.value; @@ -659,8 +651,7 @@ static ssize_t agilent_82357a_generic_write(gpib_board_= t *board, uint8_t *buffer 100); mutex_unlock(&a_priv->bulk_transfer_lock); if (retval < 0) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_receive_control_msg() returne= d %i\n", - __func__, retval); + dev_err(&usb_dev->dev, "receive_control_msg() returned %i\n", retval); kfree(status_data); return -EIO; } @@ -699,8 +690,7 @@ int agilent_82357a_take_control_internal(gpib_board_t *= board, int synchronous) write.value =3D AUX_TCA; retval =3D agilent_82357a_write_registers(a_priv, &write, 1); if (retval) - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); =20 return retval; } @@ -741,8 +731,7 @@ static int agilent_82357a_go_to_standby(gpib_board_t *b= oard) write.value =3D AUX_GTS; retval =3D agilent_82357a_write_registers(a_priv, &write, 1); if (retval) - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return 0; } =20 @@ -771,8 +760,7 @@ static void agilent_82357a_request_system_control(gpib_= board_t *board, int reque ++i; retval =3D agilent_82357a_write_registers(a_priv, writes, i); if (retval) - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return;// retval; } =20 @@ -791,8 +779,7 @@ static void agilent_82357a_interface_clear(gpib_board_t= *board, int assert) } retval =3D agilent_82357a_write_registers(a_priv, &write, 1); if (retval) - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); } =20 static void agilent_82357a_remote_enable(gpib_board_t *board, int enable) @@ -808,8 +795,7 @@ static void agilent_82357a_remote_enable(gpib_board_t *= board, int enable) write.value |=3D AUX_CS; retval =3D agilent_82357a_write_registers(a_priv, &write, 1); if (retval) - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); a_priv->ren_state =3D enable; return;// 0; } @@ -818,10 +804,9 @@ static int agilent_82357a_enable_eos(gpib_board_t *boa= rd, uint8_t eos_byte, int { struct agilent_82357a_priv *a_priv =3D board->private_data; =20 - if (compare_8_bits =3D=3D 0) { - pr_warn("%s: hardware only supports 8-bit EOS compare", __func__); + if (compare_8_bits =3D=3D 0) return -EOPNOTSUPP; - } + a_priv->eos_char =3D eos_byte; a_priv->eos_mode =3D REOS | BIN; return 0; @@ -850,8 +835,7 @@ static unsigned int agilent_82357a_update_status(gpib_b= oard_t *board, unsigned i retval =3D agilent_82357a_read_registers(a_priv, &address_status, 1, 0); if (retval) { if (retval !=3D -EAGAIN) - dev_err(&usb_dev->dev, "%s: agilent_82357a_read_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "read_registers() returned error\n"); return board->status; } // check for remote/local @@ -883,8 +867,7 @@ static unsigned int agilent_82357a_update_status(gpib_b= oard_t *board, unsigned i retval =3D agilent_82357a_read_registers(a_priv, &bus_status, 1, 0); if (retval) { if (retval !=3D -EAGAIN) - dev_err(&usb_dev->dev, "%s: agilent_82357a_read_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "read_registers() returned error\n"); return board->status; } if (bus_status.value & BSR_SRQ_BIT) @@ -907,8 +890,7 @@ static int agilent_82357a_primary_address(gpib_board_t = *board, unsigned int addr write.value =3D address & ADDRESS_MASK; retval =3D agilent_82357a_write_registers(a_priv, &write, 1); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return retval; } return retval; @@ -917,8 +899,8 @@ static int agilent_82357a_primary_address(gpib_board_t = *board, unsigned int addr static int agilent_82357a_secondary_address(gpib_board_t *board, unsigned = int address, int enable) { if (enable) - pr_warn("%s: warning: assigning a secondary address not supported\n", __= func__); - return -EOPNOTSUPP; + return -EOPNOTSUPP; + return 0; } =20 static int agilent_82357a_parallel_poll(gpib_board_t *board, uint8_t *resu= lt) @@ -936,16 +918,14 @@ static int agilent_82357a_parallel_poll(gpib_board_t = *board, uint8_t *result) writes[1].value =3D a_priv->hw_control_bits & ~NOT_PARALLEL_POLL; retval =3D agilent_82357a_write_registers(a_priv, writes, 2); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return retval; } udelay(2); //silly, since usb write will take way longer read.address =3D CPTR; retval =3D agilent_82357a_read_registers(a_priv, &read, 1, 1); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_read_registers() returned err= or\n", - __func__); + dev_err(&usb_dev->dev, "read_registers() returned error\n"); return retval; } *result =3D read.value; @@ -956,8 +936,7 @@ static int agilent_82357a_parallel_poll(gpib_board_t *b= oard, uint8_t *result) writes[1].value =3D AUX_RPP; retval =3D agilent_82357a_write_registers(a_priv, writes, 2); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return retval; } return 0; @@ -1005,8 +984,7 @@ static int agilent_82357a_line_status(const gpib_board= _t *board) retval =3D agilent_82357a_read_registers(a_priv, &bus_status, 1, 0); if (retval) { if (retval !=3D -EAGAIN) - dev_err(&usb_dev->dev, "%s: agilent_82357a_read_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "read_registers() returned error\n"); return retval; } if (bus_status.value & BSR_REN_BIT) @@ -1055,8 +1033,7 @@ static unsigned int agilent_82357a_t1_delay(gpib_boar= d_t *board, unsigned int na write.value =3D nanosec_to_fast_talker_bits(&nanosec); retval =3D agilent_82357a_write_registers(a_priv, &write, 1); if (retval) - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return nanosec; } =20 @@ -1081,7 +1058,7 @@ static void agilent_82357a_interrupt_complete(struct = urb *urb) default: /* other error, resubmit */ retval =3D usb_submit_urb(a_priv->interrupt_urb, GFP_ATOMIC); if (retval) - dev_err(&usb_dev->dev, "%s: failed to resubmit interrupt urb\n", __func= __); + dev_err(&usb_dev->dev, "failed to resubmit interrupt urb\n"); return; } =20 @@ -1097,7 +1074,7 @@ static void agilent_82357a_interrupt_complete(struct = urb *urb) =20 retval =3D usb_submit_urb(a_priv->interrupt_urb, GFP_ATOMIC); if (retval) - dev_err(&usb_dev->dev, "%s: failed to resubmit interrupt urb\n", __func_= _); + dev_err(&usb_dev->dev, "failed to resubmit interrupt urb\n"); } =20 static int agilent_82357a_setup_urbs(gpib_board_t *board) @@ -1133,8 +1110,7 @@ static int agilent_82357a_setup_urbs(gpib_board_t *bo= ard) if (retval) { usb_free_urb(a_priv->interrupt_urb); a_priv->interrupt_urb =3D NULL; - dev_err(&usb_dev->dev, "%s: failed to submit first interrupt urb, retval= =3D%i\n", - __func__, retval); + dev_err(&usb_dev->dev, "failed to submit first interrupt urb, retval=3D%= i\n", retval); goto setup_exit; } mutex_unlock(&a_priv->interrupt_alloc_lock); @@ -1184,108 +1160,78 @@ static void agilent_82357a_free_private(gpib_board= _t *board) { kfree(board->private_data); board->private_data =3D NULL; - } =20 +#define INIT_NUM_REG_WRITES 18 static int agilent_82357a_init(gpib_board_t *board) { struct agilent_82357a_priv *a_priv =3D board->private_data; struct usb_device *usb_dev =3D interface_to_usbdev(a_priv->bus_interface); struct agilent_82357a_register_pairlet hw_control; - struct agilent_82357a_register_pairlet writes[0x20]; + struct agilent_82357a_register_pairlet writes[INIT_NUM_REG_WRITES]; int retval; - int i; unsigned int nanosec; =20 - i =3D 0; - writes[i].address =3D LED_CONTROL; - writes[i].value =3D FAIL_LED_ON; - ++i; - writes[i].address =3D RESET_TO_POWERUP; - writes[i].value =3D RESET_SPACEBALL; - ++i; - retval =3D agilent_82357a_write_registers(a_priv, writes, i); + writes[0].address =3D LED_CONTROL; + writes[0].value =3D FAIL_LED_ON; + writes[1].address =3D RESET_TO_POWERUP; + writes[1].value =3D RESET_SPACEBALL; + retval =3D agilent_82357a_write_registers(a_priv, writes, 2); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return -EIO; } set_current_state(TASK_INTERRUPTIBLE); if (schedule_timeout(usec_to_jiffies(2000))) return -ERESTARTSYS; - i =3D 0; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_NBAF; - ++i; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_HLDE; - ++i; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_TON; - ++i; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_LON; - ++i; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_RSV2; - ++i; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_INVAL; - ++i; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_RPP; - ++i; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_STDL; - ++i; - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_VSTDL; - ++i; - writes[i].address =3D FAST_TALKER_T1; + writes[0].address =3D AUXCR; + writes[0].value =3D AUX_NBAF; + writes[1].address =3D AUXCR; + writes[1].value =3D AUX_HLDE; + writes[2].address =3D AUXCR; + writes[2].value =3D AUX_TON; + writes[3].address =3D AUXCR; + writes[3].value =3D AUX_LON; + writes[4].address =3D AUXCR; + writes[4].value =3D AUX_RSV2; + writes[5].address =3D AUXCR; + writes[5].value =3D AUX_INVAL; + writes[6].address =3D AUXCR; + writes[6].value =3D AUX_RPP; + writes[7].address =3D AUXCR; + writes[7].value =3D AUX_STDL; + writes[8].address =3D AUXCR; + writes[8].value =3D AUX_VSTDL; + writes[9].address =3D FAST_TALKER_T1; nanosec =3D board->t1_nano_sec; - writes[i].value =3D nanosec_to_fast_talker_bits(&nanosec); + writes[9].value =3D nanosec_to_fast_talker_bits(&nanosec); board->t1_nano_sec =3D nanosec; - ++i; - writes[i].address =3D ADR; - writes[i].value =3D board->pad & ADDRESS_MASK; - ++i; - writes[i].address =3D PPR; - writes[i].value =3D 0; - ++i; - writes[i].address =3D SPMR; - writes[i].value =3D 0; - ++i; - writes[i].address =3D PROTOCOL_CONTROL; - writes[i].value =3D WRITE_COMPLETE_INTERRUPT_EN; - ++i; - writes[i].address =3D IMR0; - writes[i].value =3D HR_BOIE | HR_BIIE; - ++i; - writes[i].address =3D IMR1; - writes[i].value =3D HR_SRQIE; - ++i; + writes[10].address =3D ADR; + writes[10].value =3D board->pad & ADDRESS_MASK; + writes[11].address =3D PPR; + writes[11].value =3D 0; + writes[12].address =3D SPMR; + writes[12].value =3D 0; + writes[13].address =3D PROTOCOL_CONTROL; + writes[13].value =3D WRITE_COMPLETE_INTERRUPT_EN; + writes[14].address =3D IMR0; + writes[14].value =3D HR_BOIE | HR_BIIE; + writes[15].address =3D IMR1; + writes[15].value =3D HR_SRQIE; // turn off reset state - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_CHIP_RESET; - ++i; - writes[i].address =3D LED_CONTROL; - writes[i].value =3D FIRMWARE_LED_CONTROL; - ++i; - if (i > ARRAY_SIZE(writes)) { - dev_err(&usb_dev->dev, "%s: bug! writes[] overflow\n", __func__); - return -EFAULT; - } - retval =3D agilent_82357a_write_registers(a_priv, writes, i); + writes[16].address =3D AUXCR; + writes[16].value =3D AUX_CHIP_RESET; + writes[17].address =3D LED_CONTROL; + writes[17].value =3D FIRMWARE_LED_CONTROL; + retval =3D agilent_82357a_write_registers(a_priv, writes, INIT_NUM_REG_WR= ITES); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return -EIO; } hw_control.address =3D HW_CONTROL; retval =3D agilent_82357a_read_registers(a_priv, &hw_control, 1, 1); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_read_registers() returned err= or\n", - __func__); + dev_err(&usb_dev->dev, "read_registers() returned error\n"); return -EIO; } a_priv->hw_control_bits =3D (hw_control.value & ~0x7) | NOT_TI_RESET | NO= T_PARALLEL_POLL; @@ -1336,7 +1282,7 @@ static int agilent_82357a_attach(gpib_board_t *board,= const gpib_board_config_t } if (i =3D=3D MAX_NUM_82357A_INTERFACES) { dev_err(board->gpib_dev, - "No Agilent 82357 gpib adapters found, have you loaded its firmware?\n"= ); + "No supported adapters found, have you loaded its firmware?\n"); retval =3D -ENODEV; goto attach_fail; } @@ -1372,8 +1318,7 @@ static int agilent_82357a_attach(gpib_board_t *board,= const gpib_board_config_t goto attach_fail; } =20 - dev_info(&usb_dev->dev, - "bus %d dev num %d attached to gpib minor %d, agilent usb interface %i\= n", + dev_info(&usb_dev->dev, "bus %d dev num %d attached to gpib%d, interface = %i\n", usb_dev->bus->busnum, usb_dev->devnum, board->minor, i); mutex_unlock(&agilent_82357a_hotplug_lock); return retval; @@ -1390,37 +1335,24 @@ static int agilent_82357a_go_idle(gpib_board_t *boa= rd) struct usb_device *usb_dev =3D interface_to_usbdev(a_priv->bus_interface); struct agilent_82357a_register_pairlet writes[0x20]; int retval; - int i; =20 - i =3D 0; // turn on tms9914 reset state - writes[i].address =3D AUXCR; - writes[i].value =3D AUX_CS | AUX_CHIP_RESET; - ++i; + writes[0].address =3D AUXCR; + writes[0].value =3D AUX_CS | AUX_CHIP_RESET; a_priv->hw_control_bits &=3D ~NOT_TI_RESET; - writes[i].address =3D HW_CONTROL; - writes[i].value =3D a_priv->hw_control_bits; - ++i; - writes[i].address =3D PROTOCOL_CONTROL; - writes[i].value =3D 0; - ++i; - writes[i].address =3D IMR0; - writes[i].value =3D 0; - ++i; - writes[i].address =3D IMR1; - writes[i].value =3D 0; - ++i; - writes[i].address =3D LED_CONTROL; - writes[i].value =3D 0; - ++i; - if (i > ARRAY_SIZE(writes)) { - dev_err(&usb_dev->dev, "%s: bug! writes[] overflow\n", __func__); - return -EFAULT; - } - retval =3D agilent_82357a_write_registers(a_priv, writes, i); + writes[1].address =3D HW_CONTROL; + writes[1].value =3D a_priv->hw_control_bits; + writes[2].address =3D PROTOCOL_CONTROL; + writes[2].value =3D 0; + writes[3].address =3D IMR0; + writes[3].value =3D 0; + writes[4].address =3D IMR1; + writes[4].value =3D 0; + writes[5].address =3D LED_CONTROL; + writes[5].value =3D 0; + retval =3D agilent_82357a_write_registers(a_priv, writes, 6); if (retval) { - dev_err(&usb_dev->dev, "%s: agilent_82357a_write_registers() returned er= ror\n", - __func__); + dev_err(&usb_dev->dev, "write_registers() returned error\n"); return -EIO; } return 0; @@ -1445,7 +1377,6 @@ static void agilent_82357a_detach(gpib_board_t *board) agilent_82357a_release_urbs(a_priv); agilent_82357a_free_private(board); } - dev_info(board->gpib_dev, "%s: detached\n", __func__); mutex_unlock(&agilent_82357a_hotplug_lock); } =20 @@ -1510,8 +1441,7 @@ static int agilent_82357a_driver_probe(struct usb_int= erface *interface, if (i =3D=3D MAX_NUM_82357A_INTERFACES) { usb_put_dev(usb_dev); mutex_unlock(&agilent_82357a_hotplug_lock); - dev_err(&usb_dev->dev, "%s: out of space in agilent_82357a_driver_interf= aces[]\n", - __func__); + dev_err(&usb_dev->dev, "out of space in agilent_82357a_driver_interfaces= []\n"); return -1; } path =3D kmalloc(path_length, GFP_KERNEL); @@ -1552,13 +1482,12 @@ static void agilent_82357a_driver_disconnect(struct= usb_interface *interface) mutex_unlock(&a_priv->control_alloc_lock); } } - dev_dbg(&usb_dev->dev, "nulled agilent_82357a_driver_interfaces[%i]\n",= i); agilent_82357a_driver_interfaces[i] =3D NULL; break; } } if (i =3D=3D MAX_NUM_82357A_INTERFACES) - dev_err(&usb_dev->dev, "unable to find interface in agilent_82357a_drive= r_interfaces[]? bug?\n"); + dev_err(&usb_dev->dev, "unable to find interface - bug?\n"); usb_put_dev(usb_dev); =20 mutex_unlock(&agilent_82357a_hotplug_lock); @@ -1583,18 +1512,18 @@ static int agilent_82357a_driver_suspend(struct usb= _interface *interface, pm_mes agilent_82357a_abort(a_priv, 0); retval =3D agilent_82357a_go_idle(board); if (retval) { - dev_err(&usb_dev->dev, "%s: failed to go idle, retval=3D%i\n", - __func__, retval); + dev_err(&usb_dev->dev, "failed to go idle, retval=3D%i\n", + retval); mutex_unlock(&agilent_82357a_hotplug_lock); return retval; } mutex_lock(&a_priv->interrupt_alloc_lock); agilent_82357a_cleanup_urbs(a_priv); mutex_unlock(&a_priv->interrupt_alloc_lock); - dev_info(&usb_dev->dev, - "bus %d dev num %d gpib minor %d, agilent usb interface %i suspend= ed\n", - usb_dev->bus->busnum, usb_dev->devnum, - board->minor, i); + dev_dbg(&usb_dev->dev, + "bus %d dev num %d gpib %d, interface %i suspended\n", + usb_dev->bus->busnum, usb_dev->devnum, + board->minor, i); } } break; @@ -1631,8 +1560,8 @@ static int agilent_82357a_driver_resume(struct usb_in= terface *interface) mutex_lock(&a_priv->interrupt_alloc_lock); retval =3D usb_submit_urb(a_priv->interrupt_urb, GFP_KERNEL); if (retval) { - dev_err(&usb_dev->dev, "%s: failed to resubmit interrupt urb, retval= =3D%i\n", - __func__, retval); + dev_err(&usb_dev->dev, "failed to resubmit interrupt urb in resume, re= tval=3D%i\n", + retval); mutex_unlock(&a_priv->interrupt_alloc_lock); mutex_unlock(&agilent_82357a_hotplug_lock); return retval; @@ -1655,9 +1584,9 @@ static int agilent_82357a_driver_resume(struct usb_in= terface *interface) // assert/unassert REN agilent_82357a_remote_enable(board, a_priv->ren_state); =20 - dev_info(&usb_dev->dev, - "bus %d dev num %d gpib minor %d, agilent usb interface %i resumed\n", - usb_dev->bus->busnum, usb_dev->devnum, board->minor, i); + dev_dbg(&usb_dev->dev, + "bus %d dev num %d gpib%d, interface %i resumed\n", + usb_dev->bus->busnum, usb_dev->devnum, board->minor, i); } =20 resume_exit: @@ -1667,7 +1596,7 @@ static int agilent_82357a_driver_resume(struct usb_in= terface *interface) } =20 static struct usb_driver agilent_82357a_bus_driver =3D { - .name =3D "agilent_82357a_gpib", + .name =3D DRV_NAME, .probe =3D agilent_82357a_driver_probe, .disconnect =3D agilent_82357a_driver_disconnect, .suspend =3D agilent_82357a_driver_suspend, @@ -1680,19 +1609,18 @@ static int __init agilent_82357a_init_module(void) int i; int ret; =20 - pr_info("agilent_82357a_gpib driver loading"); for (i =3D 0; i < MAX_NUM_82357A_INTERFACES; ++i) agilent_82357a_driver_interfaces[i] =3D NULL; =20 ret =3D usb_register(&agilent_82357a_bus_driver); if (ret) { - pr_err("agilent_82357a: usb_register failed: error =3D %d\n", ret); + pr_err("usb_register failed: error =3D %d\n", ret); return ret; } =20 ret =3D gpib_register_driver(&agilent_82357a_gpib_interface, THIS_MODULE); if (ret) { - pr_err("agilent_82357a: gpib_register_driver failed: error =3D %d\n", re= t); + pr_err("gpib_register_driver failed: error =3D %d\n", ret); usb_deregister(&agilent_82357a_bus_driver); return ret; } @@ -1702,7 +1630,6 @@ static int __init agilent_82357a_init_module(void) =20 static void __exit agilent_82357a_exit_module(void) { - pr_info("agilent_82357a_gpib driver unloading"); gpib_unregister_driver(&agilent_82357a_gpib_interface); usb_deregister(&agilent_82357a_bus_driver); } --=20 2.48.1