Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

OMAPDSS: set suppress_bind_attrs

omapdss drivers cannot handle devices being unbound while the devices
are part of a connected display pipeline. Module refcounts are used to
prevent unloading the modules, but one can still manually unbind the
devices via sysfs, causing crash.

Set suppress_bind_attrs to disable the bind/unbind support via sysfs.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

+22
+1
drivers/video/fbdev/omap2/displays-new/connector-analog-tv.c
··· 308 308 .name = "connector-analog-tv", 309 309 .owner = THIS_MODULE, 310 310 .of_match_table = tvc_of_match, 311 + .suppress_bind_attrs = true, 311 312 }, 312 313 }; 313 314
+1
drivers/video/fbdev/omap2/displays-new/connector-dvi.c
··· 391 391 .name = "connector-dvi", 392 392 .owner = THIS_MODULE, 393 393 .of_match_table = dvic_of_match, 394 + .suppress_bind_attrs = true, 394 395 }, 395 396 }; 396 397
+1
drivers/video/fbdev/omap2/displays-new/connector-hdmi.c
··· 437 437 .name = "connector-hdmi", 438 438 .owner = THIS_MODULE, 439 439 .of_match_table = hdmic_of_match, 440 + .suppress_bind_attrs = true, 440 441 }, 441 442 }; 442 443
+1
drivers/video/fbdev/omap2/displays-new/encoder-tfp410.c
··· 298 298 .name = "tfp410", 299 299 .owner = THIS_MODULE, 300 300 .of_match_table = tfp410_of_match, 301 + .suppress_bind_attrs = true, 301 302 }, 302 303 }; 303 304
+1
drivers/video/fbdev/omap2/displays-new/encoder-tpd12s015.c
··· 461 461 .name = "tpd12s015", 462 462 .owner = THIS_MODULE, 463 463 .of_match_table = tpd_of_match, 464 + .suppress_bind_attrs = true, 464 465 }, 465 466 }; 466 467
+1
drivers/video/fbdev/omap2/displays-new/panel-dpi.c
··· 327 327 .name = "panel-dpi", 328 328 .owner = THIS_MODULE, 329 329 .of_match_table = panel_dpi_of_match, 330 + .suppress_bind_attrs = true, 330 331 }, 331 332 }; 332 333
+1
drivers/video/fbdev/omap2/displays-new/panel-dsi-cm.c
··· 1378 1378 .name = "panel-dsi-cm", 1379 1379 .owner = THIS_MODULE, 1380 1380 .of_match_table = dsicm_of_match, 1381 + .suppress_bind_attrs = true, 1381 1382 }, 1382 1383 }; 1383 1384
+1
drivers/video/fbdev/omap2/displays-new/panel-lgphilips-lb035q02.c
··· 394 394 .name = "panel_lgphilips_lb035q02", 395 395 .owner = THIS_MODULE, 396 396 .of_match_table = lb035q02_of_match, 397 + .suppress_bind_attrs = true, 397 398 }, 398 399 }; 399 400
+1
drivers/video/fbdev/omap2/displays-new/panel-nec-nl8048hl11.c
··· 424 424 .owner = THIS_MODULE, 425 425 .pm = NEC_8048_PM_OPS, 426 426 .of_match_table = nec_8048_of_match, 427 + .suppress_bind_attrs = true, 427 428 }, 428 429 .probe = nec_8048_probe, 429 430 .remove = nec_8048_remove,
+1
drivers/video/fbdev/omap2/displays-new/panel-sharp-ls037v7dw01.c
··· 410 410 .name = "panel-sharp-ls037v7dw01", 411 411 .owner = THIS_MODULE, 412 412 .of_match_table = sharp_ls_of_match, 413 + .suppress_bind_attrs = true, 413 414 }, 414 415 }; 415 416
+1
drivers/video/fbdev/omap2/displays-new/panel-sony-acx565akm.c
··· 904 904 .name = "acx565akm", 905 905 .owner = THIS_MODULE, 906 906 .of_match_table = acx565akm_of_match, 907 + .suppress_bind_attrs = true, 907 908 }, 908 909 .probe = acx565akm_probe, 909 910 .remove = acx565akm_remove,
+1
drivers/video/fbdev/omap2/displays-new/panel-tpo-td028ttec1.c
··· 500 500 .name = "panel-tpo-td028ttec1", 501 501 .owner = THIS_MODULE, 502 502 .of_match_table = td028ttec1_of_match, 503 + .suppress_bind_attrs = true, 503 504 }, 504 505 }; 505 506
+1
drivers/video/fbdev/omap2/displays-new/panel-tpo-td043mtea1.c
··· 673 673 .owner = THIS_MODULE, 674 674 .pm = &tpo_td043_spi_pm, 675 675 .of_match_table = tpo_td043_of_match, 676 + .suppress_bind_attrs = true, 676 677 }, 677 678 .probe = tpo_td043_probe, 678 679 .remove = tpo_td043_remove,
+1
drivers/video/fbdev/omap2/dss/dispc.c
··· 3843 3843 .owner = THIS_MODULE, 3844 3844 .pm = &dispc_pm_ops, 3845 3845 .of_match_table = dispc_of_match, 3846 + .suppress_bind_attrs = true, 3846 3847 }, 3847 3848 }; 3848 3849
+1
drivers/video/fbdev/omap2/dss/dpi.c
··· 720 720 .driver = { 721 721 .name = "omapdss_dpi", 722 722 .owner = THIS_MODULE, 723 + .suppress_bind_attrs = true, 723 724 }, 724 725 }; 725 726
+1
drivers/video/fbdev/omap2/dss/dsi.c
··· 5754 5754 .owner = THIS_MODULE, 5755 5755 .pm = &dsi_pm_ops, 5756 5756 .of_match_table = dsi_of_match, 5757 + .suppress_bind_attrs = true, 5757 5758 }, 5758 5759 }; 5759 5760
+1
drivers/video/fbdev/omap2/dss/dss.c
··· 966 966 .owner = THIS_MODULE, 967 967 .pm = &dss_pm_ops, 968 968 .of_match_table = dss_of_match, 969 + .suppress_bind_attrs = true, 969 970 }, 970 971 }; 971 972
+1
drivers/video/fbdev/omap2/dss/hdmi4.c
··· 781 781 .owner = THIS_MODULE, 782 782 .pm = &hdmi_pm_ops, 783 783 .of_match_table = hdmi_of_match, 784 + .suppress_bind_attrs = true, 784 785 }, 785 786 }; 786 787
+1
drivers/video/fbdev/omap2/dss/hdmi5.c
··· 806 806 .owner = THIS_MODULE, 807 807 .pm = &hdmi_pm_ops, 808 808 .of_match_table = hdmi_of_match, 809 + .suppress_bind_attrs = true, 809 810 }, 810 811 }; 811 812
+1
drivers/video/fbdev/omap2/dss/rfbi.c
··· 1044 1044 .name = "omapdss_rfbi", 1045 1045 .owner = THIS_MODULE, 1046 1046 .pm = &rfbi_pm_ops, 1047 + .suppress_bind_attrs = true, 1047 1048 }, 1048 1049 }; 1049 1050
+1
drivers/video/fbdev/omap2/dss/sdi.c
··· 377 377 .driver = { 378 378 .name = "omapdss_sdi", 379 379 .owner = THIS_MODULE, 380 + .suppress_bind_attrs = true, 380 381 }, 381 382 }; 382 383
+1
drivers/video/fbdev/omap2/dss/venc.c
··· 966 966 .owner = THIS_MODULE, 967 967 .pm = &venc_pm_ops, 968 968 .of_match_table = venc_of_match, 969 + .suppress_bind_attrs = true, 969 970 }, 970 971 }; 971 972