nfc: s3fwrn5: constify nci_ops
authorKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Sat, 24 Jul 2021 21:47:34 +0000 (23:47 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 25 Jul 2021 08:21:20 +0000 (09:21 +0100)
s3fwrn5 driver modifies static struct nci_ops only to set prop_ops.
Since prop_ops is build time constant with known size, it can be made
const.  This allows to removeo the function setting the prop_ops -
s3fwrn5_nci_get_prop_ops().

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/nfc/s3fwrn5/core.c
drivers/nfc/s3fwrn5/nci.c
drivers/nfc/s3fwrn5/nci.h

index 865d3e3d15286416c611d56a8d25d09ad5c98c9e..1c412007fabb6fd64e1915b64a54d2243c3d0601 100644 (file)
@@ -143,11 +143,13 @@ static int s3fwrn5_nci_post_setup(struct nci_dev *ndev)
        return nci_core_init(info->ndev);
 }
 
-static struct nci_ops s3fwrn5_nci_ops = {
+static const struct nci_ops s3fwrn5_nci_ops = {
        .open = s3fwrn5_nci_open,
        .close = s3fwrn5_nci_close,
        .send = s3fwrn5_nci_send,
        .post_setup = s3fwrn5_nci_post_setup,
+       .prop_ops = s3fwrn5_nci_prop_ops,
+       .n_prop_ops = ARRAY_SIZE(s3fwrn5_nci_prop_ops),
 };
 
 int s3fwrn5_probe(struct nci_dev **ndev, void *phy_id, struct device *pdev,
@@ -167,9 +169,6 @@ int s3fwrn5_probe(struct nci_dev **ndev, void *phy_id, struct device *pdev,
 
        s3fwrn5_set_mode(info, S3FWRN5_MODE_COLD);
 
-       s3fwrn5_nci_get_prop_ops(&s3fwrn5_nci_ops.prop_ops,
-               &s3fwrn5_nci_ops.n_prop_ops);
-
        info->ndev = nci_allocate_device(&s3fwrn5_nci_ops,
                S3FWRN5_NFC_PROTOCOLS, 0, 0);
        if (!info->ndev)
index f042d3eaf8f6e537cec948f0a2e7308f782107e5..819e3474a4373f3622cc0d7897898043b59b9d9f 100644 (file)
@@ -20,7 +20,7 @@ static int s3fwrn5_nci_prop_rsp(struct nci_dev *ndev, struct sk_buff *skb)
        return 0;
 }
 
-static struct nci_driver_ops s3fwrn5_nci_prop_ops[] = {
+struct nci_driver_ops s3fwrn5_nci_prop_ops[4] = {
        {
                .opcode = nci_opcode_pack(NCI_GID_PROPRIETARY,
                                NCI_PROP_SET_RFREG),
@@ -43,12 +43,6 @@ static struct nci_driver_ops s3fwrn5_nci_prop_ops[] = {
        },
 };
 
-void s3fwrn5_nci_get_prop_ops(struct nci_driver_ops **ops, size_t *n)
-{
-       *ops = s3fwrn5_nci_prop_ops;
-       *n = ARRAY_SIZE(s3fwrn5_nci_prop_ops);
-}
-
 #define S3FWRN5_RFREG_SECTION_SIZE 252
 
 int s3fwrn5_nci_rf_configure(struct s3fwrn5_info *info, const char *fw_name)
index a80f0fb082a8deab353d61fa8945cb3f6fede8a5..5c22c5315f79da329d393a11421ad14813798deb 100644 (file)
@@ -50,7 +50,7 @@ struct nci_prop_fw_cfg_rsp {
        __u8 status;
 };
 
-void s3fwrn5_nci_get_prop_ops(struct nci_driver_ops **ops, size_t *n);
+extern struct nci_driver_ops s3fwrn5_nci_prop_ops[4];
 int s3fwrn5_nci_rf_configure(struct s3fwrn5_info *info, const char *fw_name);
 
 #endif /* __LOCAL_S3FWRN5_NCI_H_ */