diff --git a/abi_gki_aarch64_724ffa0096.xml b/abi_gki_aarch64_724ffa0096.xml index 0833bd44fcf2..b2ec40c7fbaf 100644 --- a/abi_gki_aarch64_724ffa0096.xml +++ b/abi_gki_aarch64_724ffa0096.xml @@ -558,6 +558,8 @@ + + @@ -17687,6 +17689,16 @@ + + + + + + + + + + @@ -23125,7 +23137,7 @@ - + @@ -23134,7 +23146,7 @@ - + @@ -24016,7 +24028,7 @@ - + @@ -29161,7 +29173,6 @@ - @@ -29280,18 +29291,27 @@ - + - + - + - - + + - - + + + + + + + + + + + @@ -29335,27 +29355,26 @@ - + + + + + + + + + - + - + - - + + - - - - - - - - - - - + + @@ -29577,6 +29596,7 @@ + @@ -29596,7 +29616,7 @@ - + @@ -29604,7 +29624,7 @@ - + @@ -30225,7 +30245,7 @@ - + @@ -30374,6 +30394,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -30469,14 +30539,6 @@ - - - - - - - - @@ -30486,6 +30548,7 @@ + @@ -30630,7 +30693,7 @@ - + @@ -33788,13 +33851,13 @@ - + - + @@ -34344,7 +34407,7 @@ - + @@ -34410,7 +34473,7 @@ - + @@ -34447,7 +34510,7 @@ - + @@ -34631,7 +34694,7 @@ - + @@ -35524,10 +35587,10 @@ - + - + @@ -36037,10 +36100,10 @@ - + - + @@ -36747,7 +36810,7 @@ - + @@ -36756,7 +36819,7 @@ - + @@ -38768,7 +38831,7 @@ - + @@ -39436,7 +39499,7 @@ - + @@ -39603,7 +39666,7 @@ - + @@ -39621,7 +39684,7 @@ - + @@ -39654,7 +39717,7 @@ - + @@ -39672,7 +39735,7 @@ - + @@ -41129,6 +41192,8 @@ + + @@ -41141,7 +41206,7 @@ - + @@ -41194,7 +41259,7 @@ - + @@ -41261,7 +41326,6 @@ - @@ -41574,7 +41638,6 @@ - @@ -46770,41 +46833,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -46841,7 +46869,6 @@ - @@ -46879,9 +46906,9 @@ - + - + @@ -47235,7 +47262,7 @@ - + @@ -47853,7 +47880,7 @@ - + @@ -47974,117 +48001,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -48120,14 +48036,7 @@ - - - - - - - @@ -48156,6 +48065,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -48183,69 +48188,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -48681,7 +48623,7 @@ - + @@ -48689,7 +48631,7 @@ - + @@ -48808,10 +48750,10 @@ - + - + @@ -50920,7 +50862,7 @@ - + @@ -50968,7 +50910,7 @@ - + @@ -51175,7 +51117,7 @@ - + @@ -58509,7 +58451,7 @@ - + @@ -58531,10 +58473,10 @@ - + - + @@ -58573,7 +58515,7 @@ - + @@ -58664,7 +58606,7 @@ - + @@ -58986,7 +58928,7 @@ - + @@ -59125,7 +59067,7 @@ - + @@ -59235,7 +59177,7 @@ - + @@ -59250,7 +59192,7 @@ - + @@ -59315,7 +59257,7 @@ - + @@ -60208,7 +60150,7 @@ - + @@ -60312,7 +60254,7 @@ - + @@ -60321,7 +60263,7 @@ - + @@ -60516,14 +60458,6 @@ - - - - - - - - @@ -60561,6 +60495,14 @@ + + + + + + + + @@ -60913,10 +60855,10 @@ - + - + @@ -60955,7 +60897,7 @@ - + @@ -60967,7 +60909,7 @@ - + @@ -61059,10 +61001,10 @@ - + - + @@ -61664,7 +61606,7 @@ - + @@ -62642,7 +62584,7 @@ - + @@ -62663,7 +62605,7 @@ - + @@ -63508,7 +63450,7 @@ - + @@ -63555,7 +63497,7 @@ - + @@ -63620,10 +63562,10 @@ - + - + @@ -63632,7 +63574,7 @@ - + @@ -63785,10 +63727,10 @@ - + - + @@ -63836,7 +63778,7 @@ - + @@ -63855,10 +63797,10 @@ - + - + @@ -65454,6 +65396,22 @@ + + + + + + + + + + + + + + + + @@ -67426,7 +67384,7 @@ - + @@ -67434,7 +67392,7 @@ - + @@ -67466,7 +67424,7 @@ - + @@ -67474,7 +67432,7 @@ - + @@ -67533,7 +67491,7 @@ - + @@ -69018,7 +68976,7 @@ - + @@ -69081,7 +69039,7 @@ - + @@ -69610,7 +69568,7 @@ - + @@ -70460,7 +70418,7 @@ - + @@ -70518,7 +70476,7 @@ - + @@ -72035,7 +71993,7 @@ - + @@ -72221,7 +72179,7 @@ - + @@ -72479,7 +72437,7 @@ - + @@ -73266,10 +73224,10 @@ - + - + @@ -77287,7 +77245,7 @@ - + @@ -77752,7 +77710,7 @@ - + @@ -77797,7 +77755,7 @@ - + @@ -78591,7 +78549,7 @@ - + @@ -79632,7 +79590,7 @@ - + @@ -79641,7 +79599,7 @@ - + @@ -80280,10 +80238,10 @@ - + - + @@ -80723,10 +80681,10 @@ - + - + @@ -80964,7 +80922,7 @@ - + @@ -81073,7 +81031,7 @@ - + @@ -81114,7 +81072,7 @@ - + @@ -81144,7 +81102,7 @@ - + @@ -81255,7 +81213,7 @@ - + @@ -81679,10 +81637,10 @@ - + - + @@ -81693,7 +81651,7 @@ - + @@ -82390,7 +82348,7 @@ - + @@ -82443,7 +82401,7 @@ - + @@ -82451,7 +82409,7 @@ - + @@ -82459,7 +82417,7 @@ - + @@ -83685,7 +83643,7 @@ - + @@ -83773,6 +83731,25 @@ + + + + + + + + + + + + + + + + + + + @@ -83826,25 +83803,6 @@ - - - - - - - - - - - - - - - - - - - @@ -84182,7 +84140,7 @@ - + @@ -84327,7 +84285,7 @@ - + @@ -84397,8 +84355,8 @@ - - + + @@ -84663,7 +84621,7 @@ - + @@ -84682,6 +84640,14 @@ + + + + + + + + @@ -85420,7 +85386,7 @@ - + @@ -85436,7 +85402,7 @@ - + @@ -85637,7 +85603,7 @@ - + @@ -85885,6 +85851,17 @@ + + + + + + + + + + + @@ -86485,7 +86462,7 @@ - + @@ -86509,7 +86486,7 @@ - + @@ -86756,7 +86733,7 @@ - + @@ -86778,18 +86755,7 @@ - - - - - - - - - - - - + @@ -86797,10 +86763,10 @@ - + - + @@ -87214,7 +87180,7 @@ - + @@ -87972,14 +87938,6 @@ - - - - - - - - @@ -88997,7 +88955,7 @@ - + @@ -89005,7 +88963,7 @@ - + @@ -93527,7 +93485,7 @@ - + @@ -93535,7 +93493,7 @@ - + @@ -93559,7 +93517,7 @@ - + @@ -93567,7 +93525,7 @@ - + @@ -93583,7 +93541,7 @@ - + @@ -93591,7 +93549,26 @@ - + + + + + + + + + + + + + + + + + + + + @@ -93605,7 +93582,7 @@ - + @@ -93616,7 +93593,7 @@ - + @@ -93624,7 +93601,7 @@ - + @@ -93635,7 +93612,7 @@ - + @@ -93646,7 +93623,7 @@ - + @@ -93654,7 +93631,7 @@ - + @@ -93662,15 +93639,7 @@ - - - - - - - - - + @@ -93678,7 +93647,7 @@ - + @@ -93686,7 +93655,7 @@ - + @@ -93694,7 +93663,7 @@ - + @@ -93702,7 +93671,7 @@ - + @@ -93710,7 +93679,7 @@ - + @@ -94297,7 +94266,7 @@ - + @@ -94305,7 +94274,7 @@ - + @@ -94313,7 +94282,7 @@ - + @@ -95427,17 +95396,17 @@ - + - + - + @@ -95490,7 +95459,7 @@ - + @@ -95507,7 +95476,7 @@ - + @@ -95516,7 +95485,7 @@ - + @@ -95524,10 +95493,10 @@ - + - + @@ -95549,7 +95518,7 @@ - + @@ -95557,7 +95526,7 @@ - + @@ -95658,13 +95627,13 @@ - + - + @@ -97473,7 +97442,7 @@ - + @@ -97700,10 +97669,10 @@ - + - + @@ -99080,7 +99049,7 @@ - + @@ -100747,7 +100716,7 @@ - + diff --git a/abi_gki_aarch64_qcom_whitelist b/abi_gki_aarch64_qcom_whitelist index 46f6a113ea17..45cf42805d25 100644 --- a/abi_gki_aarch64_qcom_whitelist +++ b/abi_gki_aarch64_qcom_whitelist @@ -398,6 +398,8 @@ devm_clk_register dev_mc_sync_multiple dev_mc_unsync + devm_device_add_group + devm_device_remove_group devm_extcon_dev_allocate devm_extcon_dev_register devm_extcon_register_notifier diff --git a/drivers/net/wireless/cnss2/main.c b/drivers/net/wireless/cnss2/main.c index eef8058e4638..f528e73b6538 100644 --- a/drivers/net/wireless/cnss2/main.c +++ b/drivers/net/wireless/cnss2/main.c @@ -1985,11 +1985,11 @@ static void cnss_unregister_bus_scale(struct cnss_plat_data *plat_priv) icc_put(bus_bw_info->cnss_path); } -static ssize_t shutdown_store(struct kobject *kobj, - struct kobj_attribute *attr, +static ssize_t shutdown_store(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) { - struct cnss_plat_data *plat_priv = cnss_get_plat_priv(NULL); + struct cnss_plat_data *plat_priv = dev_get_drvdata(dev); if (plat_priv) { set_bit(CNSS_IN_REBOOT, &plat_priv->driver_state); @@ -2046,54 +2046,66 @@ static ssize_t fs_ready_store(struct device *dev, return count; } -static struct kobj_attribute shutdown_attribute = __ATTR_WO(shutdown); static DEVICE_ATTR_WO(fs_ready); +static DEVICE_ATTR_WO(shutdown); -static int cnss_create_shutdown_sysfs(struct cnss_plat_data *plat_priv) +static struct attribute *cnss_attrs[] = { + &dev_attr_fs_ready.attr, + &dev_attr_shutdown.attr, + NULL, +}; + +static struct attribute_group cnss_attr_group = { + .attrs = cnss_attrs, +}; + +static int cnss_create_sysfs_link(struct cnss_plat_data *plat_priv) { - int ret = 0; + struct device *dev = &plat_priv->plat_dev->dev; + int ret; - plat_priv->shutdown_kobj = kobject_create_and_add("shutdown_wlan", - kernel_kobj); - if (!plat_priv->shutdown_kobj) { - cnss_pr_err("Failed to create shutdown_wlan kernel object\n"); - return -ENOMEM; - } - - ret = sysfs_create_file(plat_priv->shutdown_kobj, - &shutdown_attribute.attr); + ret = sysfs_create_link(kernel_kobj, &dev->kobj, "cnss"); if (ret) { - cnss_pr_err("Failed to create sysfs shutdown file, err = %d\n", + cnss_pr_err("Failed to create cnss link, err = %d\n", ret); - kobject_put(plat_priv->shutdown_kobj); - plat_priv->shutdown_kobj = NULL; + goto out; } + /* This is only for backward compatibility. */ + ret = sysfs_create_link(kernel_kobj, &dev->kobj, "shutdown_wlan"); + if (ret) { + cnss_pr_err("Failed to create shutdown_wlan link, err = %d\n", + ret); + goto rm_cnss_link; + } + + return 0; + +rm_cnss_link: + sysfs_remove_link(kernel_kobj, "cnss"); +out: return ret; } -static void cnss_remove_shutdown_sysfs(struct cnss_plat_data *plat_priv) +static void cnss_remove_sysfs_link(struct cnss_plat_data *plat_priv) { - if (plat_priv->shutdown_kobj) { - sysfs_remove_file(plat_priv->shutdown_kobj, - &shutdown_attribute.attr); - kobject_put(plat_priv->shutdown_kobj); - plat_priv->shutdown_kobj = NULL; - } + sysfs_remove_link(kernel_kobj, "shutdown_wlan"); + sysfs_remove_link(kernel_kobj, "cnss"); } static int cnss_create_sysfs(struct cnss_plat_data *plat_priv) { int ret = 0; - ret = device_create_file(&plat_priv->plat_dev->dev, &dev_attr_fs_ready); + ret = devm_device_add_group(&plat_priv->plat_dev->dev, + &cnss_attr_group); if (ret) { - cnss_pr_err("Failed to create device fs_ready file, err = %d\n", + cnss_pr_err("Failed to create cnss device group, err = %d\n", ret); goto out; } - cnss_create_shutdown_sysfs(plat_priv); + cnss_create_sysfs_link(plat_priv); return 0; out: @@ -2102,8 +2114,8 @@ out: static void cnss_remove_sysfs(struct cnss_plat_data *plat_priv) { - cnss_remove_shutdown_sysfs(plat_priv); - device_remove_file(&plat_priv->plat_dev->dev, &dev_attr_fs_ready); + cnss_remove_sysfs_link(plat_priv); + devm_device_remove_group(&plat_priv->plat_dev->dev, &cnss_attr_group); } static int cnss_event_work_init(struct cnss_plat_data *plat_priv) diff --git a/drivers/net/wireless/cnss2/main.h b/drivers/net/wireless/cnss2/main.h index 8d0a94092b19..2a352b61e65b 100644 --- a/drivers/net/wireless/cnss2/main.h +++ b/drivers/net/wireless/cnss2/main.h @@ -400,7 +400,6 @@ struct cnss_plat_data { bool cbc_enabled; u8 use_nv_mac; u8 set_wlaon_pwr_ctrl; - struct kobject *shutdown_kobj; }; #ifdef CONFIG_ARCH_QCOM