Skip to content

Commit 20b291f

Browse files
tsk-lieacuiherbertx
authored andcommitted
crypto: hisilicon - refactor module parameter pf_q_num related code
put q_num_set similar code into qm to reduce the redundancy. Signed-off-by: Shukun Tan <[email protected]> Reviewed-by: Zhou Wang <[email protected]> Signed-off-by: Herbert Xu <[email protected]>
1 parent cfd66a6 commit 20b291f

File tree

4 files changed

+49
-97
lines changed

4 files changed

+49
-97
lines changed

drivers/crypto/hisilicon/hpre/hpre_main.c

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -159,44 +159,19 @@ static const struct debugfs_reg32 hpre_com_dfx_regs[] = {
159159
{"INT_STATUS ", HPRE_INT_STATUS},
160160
};
161161

162-
static int hpre_pf_q_num_set(const char *val, const struct kernel_param *kp)
162+
static int pf_q_num_set(const char *val, const struct kernel_param *kp)
163163
{
164-
struct pci_dev *pdev;
165-
u32 n, q_num;
166-
u8 rev_id;
167-
int ret;
168-
169-
if (!val)
170-
return -EINVAL;
171-
172-
pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI, HPRE_PCI_DEVICE_ID, NULL);
173-
if (!pdev) {
174-
q_num = HPRE_QUEUE_NUM_V2;
175-
pr_info("No device found currently, suppose queue number is %d\n",
176-
q_num);
177-
} else {
178-
rev_id = pdev->revision;
179-
if (rev_id != QM_HW_V2)
180-
return -EINVAL;
181-
182-
q_num = HPRE_QUEUE_NUM_V2;
183-
}
184-
185-
ret = kstrtou32(val, 10, &n);
186-
if (ret != 0 || n == 0 || n > q_num)
187-
return -EINVAL;
188-
189-
return param_set_int(val, kp);
164+
return q_num_set(val, kp, HPRE_PCI_DEVICE_ID);
190165
}
191166

192167
static const struct kernel_param_ops hpre_pf_q_num_ops = {
193-
.set = hpre_pf_q_num_set,
168+
.set = pf_q_num_set,
194169
.get = param_get_int,
195170
};
196171

197-
static u32 hpre_pf_q_num = HPRE_PF_DEF_Q_NUM;
198-
module_param_cb(hpre_pf_q_num, &hpre_pf_q_num_ops, &hpre_pf_q_num, 0444);
199-
MODULE_PARM_DESC(hpre_pf_q_num, "Number of queues in PF of CS(1-1024)");
172+
static u32 pf_q_num = HPRE_PF_DEF_Q_NUM;
173+
module_param_cb(pf_q_num, &hpre_pf_q_num_ops, &pf_q_num, 0444);
174+
MODULE_PARM_DESC(pf_q_num, "Number of queues in PF of CS(1-1024)");
200175

201176
static const struct kernel_param_ops vfs_num_ops = {
202177
.set = vfs_num_set,
@@ -688,7 +663,7 @@ static int hpre_qm_init(struct hisi_qm *qm, struct pci_dev *pdev)
688663

689664
if (pdev->is_physfn) {
690665
qm->qp_base = HPRE_PF_DEF_Q_BASE;
691-
qm->qp_num = hpre_pf_q_num;
666+
qm->qp_num = pf_q_num;
692667
}
693668
qm->use_dma_api = true;
694669

drivers/crypto/hisilicon/qm.h

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#include <linux/module.h>
99
#include <linux/pci.h>
1010

11+
#define QM_QNUM_V1 4096
12+
#define QM_QNUM_V2 1024
1113
#define QM_MAX_VFS_NUM_V2 63
1214

1315
/* qm user domain */
@@ -252,6 +254,43 @@ struct hisi_qp {
252254
struct uacce_queue *uacce_q;
253255
};
254256

257+
static inline int q_num_set(const char *val, const struct kernel_param *kp,
258+
unsigned int device)
259+
{
260+
struct pci_dev *pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI,
261+
device, NULL);
262+
u32 n, q_num;
263+
u8 rev_id;
264+
int ret;
265+
266+
if (!val)
267+
return -EINVAL;
268+
269+
if (!pdev) {
270+
q_num = min_t(u32, QM_QNUM_V1, QM_QNUM_V2);
271+
pr_info("No device found currently, suppose queue number is %d\n",
272+
q_num);
273+
} else {
274+
rev_id = pdev->revision;
275+
switch (rev_id) {
276+
case QM_HW_V1:
277+
q_num = QM_QNUM_V1;
278+
break;
279+
case QM_HW_V2:
280+
q_num = QM_QNUM_V2;
281+
break;
282+
default:
283+
return -EINVAL;
284+
}
285+
}
286+
287+
ret = kstrtou32(val, 10, &n);
288+
if (ret || !n || n > q_num)
289+
return -EINVAL;
290+
291+
return param_set_int(val, kp);
292+
}
293+
255294
static inline int vfs_num_set(const char *val, const struct kernel_param *kp)
256295
{
257296
u32 n;

drivers/crypto/hisilicon/sec2/sec_main.c

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -136,45 +136,14 @@ static const struct debugfs_reg32 sec_dfx_regs[] = {
136136

137137
static int sec_pf_q_num_set(const char *val, const struct kernel_param *kp)
138138
{
139-
struct pci_dev *pdev;
140-
u32 n, q_num;
141-
u8 rev_id;
142-
int ret;
143-
144-
if (!val)
145-
return -EINVAL;
146-
147-
pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI,
148-
SEC_PF_PCI_DEVICE_ID, NULL);
149-
if (!pdev) {
150-
q_num = min_t(u32, SEC_QUEUE_NUM_V1, SEC_QUEUE_NUM_V2);
151-
pr_info("No device, suppose queue number is %d!\n", q_num);
152-
} else {
153-
rev_id = pdev->revision;
154-
155-
switch (rev_id) {
156-
case QM_HW_V1:
157-
q_num = SEC_QUEUE_NUM_V1;
158-
break;
159-
case QM_HW_V2:
160-
q_num = SEC_QUEUE_NUM_V2;
161-
break;
162-
default:
163-
return -EINVAL;
164-
}
165-
}
166-
167-
ret = kstrtou32(val, 10, &n);
168-
if (ret || !n || n > q_num)
169-
return -EINVAL;
170-
171-
return param_set_int(val, kp);
139+
return q_num_set(val, kp, SEC_PF_PCI_DEVICE_ID);
172140
}
173141

174142
static const struct kernel_param_ops sec_pf_q_num_ops = {
175143
.set = sec_pf_q_num_set,
176144
.get = param_get_int,
177145
};
146+
178147
static u32 pf_q_num = SEC_PF_DEF_Q_NUM;
179148
module_param_cb(pf_q_num, &sec_pf_q_num_ops, &pf_q_num, 0444);
180149
MODULE_PARM_DESC(pf_q_num, "Number of queues in PF(v1 0-4096, v2 0-1024)");

drivers/crypto/hisilicon/zip/zip_main.c

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -192,38 +192,7 @@ static const struct debugfs_reg32 hzip_dfx_regs[] = {
192192

193193
static int pf_q_num_set(const char *val, const struct kernel_param *kp)
194194
{
195-
struct pci_dev *pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI,
196-
PCI_DEVICE_ID_ZIP_PF, NULL);
197-
u32 n, q_num;
198-
u8 rev_id;
199-
int ret;
200-
201-
if (!val)
202-
return -EINVAL;
203-
204-
if (!pdev) {
205-
q_num = min_t(u32, HZIP_QUEUE_NUM_V1, HZIP_QUEUE_NUM_V2);
206-
pr_info("No device found currently, suppose queue number is %d\n",
207-
q_num);
208-
} else {
209-
rev_id = pdev->revision;
210-
switch (rev_id) {
211-
case QM_HW_V1:
212-
q_num = HZIP_QUEUE_NUM_V1;
213-
break;
214-
case QM_HW_V2:
215-
q_num = HZIP_QUEUE_NUM_V2;
216-
break;
217-
default:
218-
return -EINVAL;
219-
}
220-
}
221-
222-
ret = kstrtou32(val, 10, &n);
223-
if (ret != 0 || n > q_num || n == 0)
224-
return -EINVAL;
225-
226-
return param_set_int(val, kp);
195+
return q_num_set(val, kp, PCI_DEVICE_ID_ZIP_PF);
227196
}
228197

229198
static const struct kernel_param_ops pf_q_num_ops = {

0 commit comments

Comments
 (0)